Subject: Re: more adventures in tracking -current....
To: NetBSD-current Discussion List <current-users@netbsd.org>
From: Greg A. Woods <woods@weird.com>
List: current-users
Date: 04/08/2001 14:13:10
[ On Sunday, April 8, 2001 at 15:43:53 (+0200), Manuel Bouyer wrote: ]
> Subject: Re: more adventures in tracking -current....
>
> On Sat, Apr 07, 2001 at 01:46:30PM -0400, Greg A. Woods wrote:
> > [ On Saturday, April 7, 2001 at 11:48:50 (+0200), Manuel Bouyer wrote: ]
> > > Subject: Re: more adventures in tracking -current....
> > >
> > > On Fri, Apr 06, 2001 at 02:15:14PM -0400, Greg A. Woods wrote:
> > > > ! 	their corresponding .endif's.  WARNING:  Makefile.boot is
> > > > ! 	currently broken and will not work!
> > > 
> > > In which way ? I just tried, it produced me a working bmake binary.
> > > You just have to install bmake as /usr/bin/make by hand.
> > 
> > 13:46 [150] $ make -f Makefile.boot
> > gcc -O -I. -DTARGET_MACHINE=\"sun\"  -DTARGET_MACHINE_ARCH=\"sparc\"  -DMACHINE=\"sun\"  -DMAKE_BOOTSTRAP -c /work/woods/NetBSD-src/usr.bin/make/lst.lib/lstAppend.c -o lst.lib/lstAppend.o
> > In file included from /work/woods/NetBSD-src/usr.bin/make/lst.lib/lstAppend.c:57:
> > /work/woods/NetBSD-src/usr.bin/make/lst.lib/lstInt.h:48: make.h: No such file or directory
> > /work/woods/NetBSD-src/usr.bin/make/lst.lib/lstInt.h:49: lst.h: No such file or directory
> > *** Error code 1
> 
> Hum, I have make.h and lst.h in usr.bin/make. Have they been removed recently ?
> My source tree is 2 weeks old ...

No, that's not the problem at all....

I probably should also have pointed out that Makefile.boot is incomplete
and doesn't work with "make -r" either (at least not with NetBSD's make):

13:59 [53] $ make -r -f Makefile.boot 
gcc -O -I. -DTARGET_MACHINE=\"sun\"  -DTARGET_MACHINE_ARCH=\"sparc\"  -DMACHINE=\"sun\"  -DMAKE_BOOTSTRAP -c  -o .c.o
gcc: No input files
*** Error code 1

Stop.


It does work just fine however with GNU Make.

The problem of course is that BSD Make is pretty useless and
incompatible with even V7 Make when it doesn't have it's system rules in
place; but with it's system rules in place it sees things like "obj"
directories and tries to make use of them.  Since there's no attempt at
adding "-I${.CURDIR}" to the command line (which of course wouldn't be
portable), the attempt to build the lst.lib/* files out-of-place fails.

The best solution would probably be to write a lst.lib/Makefile.boot and
then have Makefile.boot do a recursive make.  All makes will support
this notion and all support "-f".

(Unfortunately the comments at the top of Makefile.boot are
inappropriate and misleading too....)

If/when I encounter this problem again I'll try to take the time to
implement a recursive makefile.boot for lst.lib and write more helpful
documentation.

-- 
							Greg A. Woods

+1 416 218-0098      VE3TCP      <gwoods@acm.org>     <woods@robohack.ca>
Planix, Inc. <woods@planix.com>;   Secrets of the Weird <woods@weird.com>