[comp.sys.amiga.tech] LMK details

jimm@amiga.UUCP (Jim Mackraz) (02/10/89)

Dear friends,

   Thank you for the many kind letters explaining that LMK will
indeed recompile a touched .c file.

   I'd like to change my description of my problems with LMK to
the following:

    "While I am very fond of the Lattice 5.0 development environment
     and am certain that LMK is a useful tool for many programmers,
     I find that it is insufficiently compatible with the make
     programs to which I am accustomed, and am therefore looking
     for alternatives."

Here's an example makefile that it can't handle.  The several big
problems I've had are all relating to the include dependency line.
If I remove it, I think I can use LMK in the interim.  (Note that
I'm working on some projects considerably more complicated than
hello.c ;^)

I've reported all problems and their support is extremely responsive,
but I don't anticipate a fix to this problem soon.

	jimm

# lattice development test makefile

LC1FLAGS=-iINCLUDE: -d

.c.o:
	lc1 $(LC1FLAGS) -oquad:$*.q $* 
	go quad:$*.q
	lc2 -o$*.o quad:$*.q 

.o.lst:
	omd >$*.lst $*.o $*.c

LIBS=lib:lc.lib

OBJS=hello.o foo.o

hello: $(OBJS)
	blink FROM lib:c.o $(OBJS) LIB $(LIBS) TO $@

hello.lst: hello.o

# this is what confuses LMK, keeping it from updating hello.o when
# hello.c is changed.  Also, if you touch foo.c, it recompiles hello.c.
# I had this line once when foo.o was created from foo.asm.
# In that case, I think it tried to compile hello.asm when foo.asm
# was touched.
#
# I reported this behavior and the response was that contrary
# to my assertion, this was not the standard way of making
# dependencies on include files.

foo.o hello.o: hello.h

-- 
Jim Mackraz, I and I Computing	   	"Like you said when we crawled down
{cbmvax,well,oliveb}!amiga!jimm          from the trees: We're in transition."
							- Gang of Four
Opinions are my own.  Comments are not to be taken as Commodore official policy.

phil@titan.rice.edu (William LeFebvre) (02/11/89)

In article <3324@amiga.UUCP> jimm@amiga.UUCP (Jim Mackraz) writes:
>Dear friends,
>...
># this is what confuses LMK, keeping it from updating hello.o when
># hello.c is changed.  Also, if you touch foo.c, it recompiles hello.c.
># I had this line once when foo.o was created from foo.asm.
># In that case, I think it tried to compile hello.asm when foo.asm
># was touched.
>#
># I reported this behavior and the response was that contrary
># to my assertion, this was not the standard way of making
># dependencies on include files.
>
>foo.o hello.o: hello.h

#define HEAVY_SARCASM

Oh wow.  Well, someone had better tell that guy who wrote the paper
"Make - a Program for Maintaining Computer Programs".  You know, that
paper that gets distributed with some versions of Unix?  The author
put in a example using an include file called "defs", and he sure used the
dependency "y.o: y.c defs".  He even went further that that:  he defined a
whole set of object files and used the dependency "$(OBJECTS): defs".
Guess that's all wrong, then, since that isn't "the standard way of making
dependencies on include files".  After all, what does Stu Feldman (the
author of that paper) know about "make"?

#undef HEAVY_SARCASM

			William LeFebvre
			Department of Computer Science
			Rice University
			<phil@Rice.edu>

#define FOOTNOTE
For those that don't catch the sarcasm, Stu Feldman wrote the very first
"make" for Unix.  Many Unix implementations still use that program, or
some derivative of it, for "make".  He was also, by the way, severely
chastised by his cohorts for using a name that contained as many as
four letters.  Apparently, everyone else wanted just 2 or 3 letters.
#undef FOOTNOTE