[comp.sys.amiga] Egad makefile

mic@ut-ngp.UUCP (Mic Kaczmarczik) (12/16/86)

In article <1072@tekigm.UUCP> phils@tekigm.UUCP (Phil Staub) writes:
>Now, regarding a problem I was having with the makefile for Egad. I
>was attempting to get EGad compiled, and make crashed the machine. 
>Being naive enough not to believe that Manx would ship with that kind of an 
>obvious flaw in "make", I did some experimenting. What I found was truly 
>enlightening.
>
>One of the makefile targets is a pre-compiled symbol table file generated by
>running cc with the +h switch on a .h file which contains all of the include
>files ever requested by any of the other modules. The command line looked
>like this:
>
>gt.dmp:
>	cc +hgt.dmp -a +D +l head.h
>
>where head.h contained a #include line for each include file used.
>
>Typing "make gt.dmp" caused the Amiga to hang when everything was complete.
>So I got rid of a few options. First the -a. Still crashed. Then the +D and 
>+l. Still no luck. So I edited head.h and got rid of all but one include, 
>in the event that the problem was being caused by something in one of the 
>include files. Nope. Then I changed the name of head.h to head.c, updated the 
>Makefile, and re-ran it. Eureka! apparently, the .h extension was somehow 
>crashing make! 
[...]
>-------------------------------------------------------------------------------
>Phil Staub              tektronix!tekigm!phils    (206) 253-5634
>Tektronix, Inc., ISI Engineering
>P.O.Box 3500, M/S C1-904, Vancouver, Washington  98668

Um, I don't know about that...  I was able to "make" Egad with Manx
3.20a using the supplied Makefile with no changes to the rules, but
only after I had removed all the extraneous spaces.  For example,
let's say you have some lines that look like:

foo:	foo.o
	cc $(CFLAGS) foo.c
____<-spaces

Manx's make consistently crashes right after compiling foo.c, probably
because it's trying to fexec() the line with nothing but spaces on it,
thinking it part of the rule for making foo.  When I removed the
spaces from the blank lines in the Egad makefile, I had no problems
(at least with the Makefile).

--mic--

UUCP:	...!ihnp4!seismo!ut-sally!ut-ngp!mic
ARPA:	mic@ngp.utexas.edu
BITNET:	ccep001@utadnx.bitnet

Disclaimers:
Your mileage may vary. This opinion void in the following states:
[a-z]*. The check is in the mail.  It's not my fault if it crashes, I
just designed it... ;-)

phils@tekigm.UUCP (Phil Staub) (12/17/86)

In article <4437@ut-ngp.UUCP> mic@ngp.UUCP (Mic Kaczmarczik) writes:
>In article <1072@tekigm.UUCP> phils@tekigm.UUCP (Phil Staub) writes:
>>...problem I was having with the makefile for Egad. I
>>was attempting to get EGad compiled, and make crashed the machine. 
...
>> Eureka! apparently, the .h extension was somehow 
>>crashing make! 
>[...]
>Um, I don't know about that...  I was able to "make" Egad with Manx
>3.20a using the supplied Makefile with no changes to the rules, but
>only after I had removed all the extraneous spaces.
...
>  When I removed the
>spaces from the blank lines in the Egad makefile, I had no problems
>(at least with the Makefile).

Thanks for the info. This was the problem, though it did indeed work
when I used "head.c" and crashed when I changed it back to "head.h".
Strange.

What threw me off was the fact that I never had the problem until I went 
to WB 1.2 with Manx 3.20a. Then I changed to Manx Beta 3.30c, and the 
problem was still there, though slightly changed (I got a "Software Error,
Task Held" requester on 3.20a, but the machine just froze up under 3.30c.
Characters would still echo, but had no effect). I felt that somehow 1.2 was 
causing it.

Now I've been warned. I'll not take makefiles at face value any more.

Phil
-- 
-------------------------------------------------------------------------------
Phil Staub              tektronix!tekigm!phils    (206) 253-5634
Tektronix, Inc., ISI Engineering
P.O.Box 3500, M/S C1-904, Vancouver, Washington  98668