[comp.sys.amiga.tech] Makefiles and rebooting

rbrown@ernie.Berkeley.EDU (Robert Brown) (08/03/88)

Hi!  I'm trying to port JOVE to my Amiga.  But I had a weird problem with
the Makefile.  This line:

	@sed -e 's;TMPDIR;$(TMPDIR);' \
	     -e 's;LIBDIR;$(LIBDIR);' \
	     -e 's;BINDIR;$(BINDIR);' \
	     -e 's;SHELL;$(SHELL);' tune.template >> tune.c

in the Makefile causes my Amiga to consistently GURU.  (I'm using Manx's
make.)  (I have the PD version of sed, although I don't know if it's
complete enough to handle something like this; I tried doing some simply
stuff by hand and it seems to work.)

Anyway, that's very annoying.  I ended up just ignoring the problem and
"hardcoding" tune.c to have the right values.

But what's bad is that when the system reboots the hard disk is, like,
infinitely slow.  (Slight exaggeration...)  After I do an
"AddBuffers dh0: 40" a couple of times, it begins to run at normal speed.

So, does anyone know what the scoop is?

Robert

acphssrw@csuna.UUCP (Stephen R. Walton) (08/04/88)

In article <25414@ucbvax.BERKELEY.EDU> rbrown@ernie.Berkeley.EDU.UUCP
(Robert Brown) writes:

>Hi!  I'm trying to port JOVE to my Amiga.  But I had a weird problem with
>the Makefile.  This line:
>
>	@sed -e 's;TMPDIR;$(TMPDIR);' \
>	     -e 's;LIBDIR;$(LIBDIR);' \
>	     -e 's;BINDIR;$(BINDIR);' \
>	     -e 's;SHELL;$(SHELL);' tune.template >> tune.c

Robert then mentions he's using Manx make.  I don't know why it Guru's,
but the above Makefile line won't work as it does under Un*x.  The
reason is that Manx's make executes sed directly via the fexecv()
function, but the code to do command line redirection (like the >>
above) is in the CLI.  Un*x gets around this by using the system()
call, which actually calls up a new shell which executes the line from
the Makefile as if it had been typed by the user.

I've been thinking about a system() call for the Amiga which would do
something similar to the Unix version based on the environment
variable SHELL (set to "csh -c " for the Dillon/Drew shell, "newwsh
CMD" for WShell, etc.).  To do this requires support from the shells,
though.  In particular, the shell must exit with exit status equal to
the exit status of the command which was passed to it.  Version 2.7M
of csh doesn't do this with its internal commands: if you do a "csh -c
cp file1 file2" and file1 doesn't exist, csh does not exit with an
error. 

How does this look to people?

Stephen Walton, representing myself		swalton@solar.stanford.edu
Cal State, Northridge				rckg01m@calstate.BITNET

limonce@pilot.njin.net (Tom Limoncelli) (08/05/88)

In article <25414@ucbvax.BERKELEY.EDU> rbrown@ernie.Berkeley.EDU
(Robert Brown) writes:

[ Basically, a Makefile under Manx's Make is causing a Guru ]

I have found that Manx forgot to turn on stack checking when creating
the Make program (an assumption... doesn't everyone ship code with
such checking on? :-) because certain recursive definitions in the
makefile will cause it to Guru due to a stack overflow.

Now I always check for things like that when importing foreign
makefiles.  

Tom
-- 
Tom Limoncelli

Currently using crutches and in great pain, but still available at:
limonce@pilot.njin.net		"Remember all the great times we had?"
tlimonce@drew.bitnet		"Yeah... was that *you*?"
tlimonce%drew@cunyvm.cuny.edu
"The opinions expressed above are mine... just mine."
(Hey Eric!  Remember when I was so proud to finally be on a net and your 
reply was, "Bitnet?  Ok... tell me when you get on a real net"?  Well,
look at the new signature!  A real net!  Right on the internet!  See! See!
It's also reachable via limonce@njin.rutgers.edu.  Ok Eric?  )