From owner-freebsd-current Fri Jul 25 08:54:03 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id IAA09493 for current-outgoing; Fri, 25 Jul 1997 08:54:03 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id IAA09485 for ; Fri, 25 Jul 1997 08:53:57 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.5/8.6.9) id BAA10315; Sat, 26 Jul 1997 01:49:38 +1000 Date: Sat, 26 Jul 1997 01:49:38 +1000 From: Bruce Evans Message-Id: <199707251549.BAA10315@godzilla.zeta.org.au> To: bde@zeta.org.au, reg@shale.csir.co.za Subject: Re: make world failure Cc: current@FreeBSD.ORG, mrcpu@cdsnet.net, msmith@atrad.adelaide.edu.au Sender: owner-freebsd-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >> Running `make depend' is not a requirement for building sources, at >> least for the first build. Makefiles that require it are broken. > >The only two places where make depend doesn't work are: Thanks, I started to test this, but got context-switched after `make obj'. >*** ./lib/libedit/Makefile.orig Mon Jun 30 17:10:47 1997 >--- ./lib/libedit/Makefile Fri Jul 25 11:21:52 1997 >*************** >*** 55,62 **** > help.h: ${ASRC} makelist > sh ${.CURDIR}/makelist -bh ${ASRC} > ${.TARGET} > >! editline.c: ${OSRCS} >! sh ${.CURDIR}/makelist -e ${.ALLSRC:T} > ${.TARGET} > > .depend: vi.h emacs.h common.h fcns.h help.h help.c > >--- 55,62 ---- > help.h: ${ASRC} makelist > sh ${.CURDIR}/makelist -bh ${ASRC} > ${.TARGET} > >! editline.c: ${OSRCS} help.h >! sh ${.CURDIR}/makelist -e ${OSRCS} > ${.TARGET} > > .depend: vi.h emacs.h common.h fcns.h help.h help.c > >(You could change the .depend > beforedepend) and... Hmm, this only takes a line or two to fix because the build process is disgusting (editline.c includes most of the other .c file, so only editline.o depends on the generated headers). Your fix isn't quite right. It's editline.o, not editline.c, that depends on the generated headers, and it depends on all of them, so the fix should be to add a line: --- editline.o: vi.h emacs.h common.h fcns.h help.h --- The headers here are in the same order as in the .depend line. It is the same as the build order for `make -j1', but the first 3 generated headers are independent so it would be more natural to put them in alphabetical order. Bruce