Date: Thu, 28 May 1998 14:30:32 +0200 From: Christoph Kukulies <kuku@gilberto.physik.RWTH-Aachen.DE> To: Bruce Evans <bde@zeta.org.au> Cc: kuku@gilberto.physik.RWTH-Aachen.DE, eivind@FreeBSD.ORG, freebsd-current@freefall.cdrom.com Subject: Re: help! - nodes.h where is it? Message-ID: <19980528143032.44069@gil.physik.rwth-aachen.de> In-Reply-To: <199805280941.TAA31697@godzilla.zeta.org.au>; from Bruce Evans on Thu, May 28, 1998 at 07:41:26PM %2B1000 References: <199805280941.TAA31697@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 28, 1998 at 07:41:26PM +1000, Bruce Evans wrote:
> >> It looks like your src/share/mk/bsd.prog.mk is broken.
> >
> >make mk doesn't work anymore, btw.
>
> It went away about a year ago.
>
> >OK, I overwrote all my /usr/share/mk files with the
> >new ones,
> >went into /usr/src/bin/sh
> ># make clean
> >rm -f mkinit mkinit.o mknodes mknodes.o mksyntax mksyntax.o builtins.c init.c nodes.c syntax.c builtins.h nodes.h syntax.h token.h y.tab.h sh alias.o arith.o arith_lex.o cd.o echo.o error.o eval.o exec.o expand.o histedit.o input.o jobs.o mail.o main.o memalloc.o miscbltin.o mystring.o options.o output.o parser.o printf.o redir.o show.o trap.o var.o builtins.o init.o nodes.o syntax.o sh.1.gz sh.1.cat.gz arith_lex.c arith.c y.tab.c y.tab.h
> ># make
> >cc -O2 -m486 -pipe -DSHELL -I. -I/a/src/bin/sh -c /a/src/bin/sh/alias.c
> >yacc -d /a/src/bin/sh/arith.y
> >cp y.tab.c arith.c
> >...
>
> With the current `mk' files and Makefiles, `make' should begin with:
>
> cc -O -pipe -DSHELL -I. -I/usr/src/bin/sh -c /usr/src/bin/sh/mknodes.c
> cc -O -pipe -DSHELL -I. -I/usr/src/bin/sh -static mknodes.o -o mknodes
> ./mknodes /usr/src/bin/sh/nodetypes /usr/src/bin/sh/nodes.c.pat
> cc -O -pipe -DSHELL -I. -I/usr/src/bin/sh -c /usr/src/bin/sh/mksyntax.c
> cc -O -pipe -DSHELL -I. -I/usr/src/bin/sh -static mksyntax.o -o mksyntax
> ./mksyntax
> sh /usr/src/bin/sh/mktokens
> yacc -d /usr/src/bin/sh/arith.y
> cp y.tab.c arith.c
> ...
>
> It builds all the headers first, as it must to satisfy the following rule
> in bsd.prog.mk:
>
> .if defined(PROG) && !exists(${DEPENDFILE})
> ${OBJS}: ${SRCS:M*.h}
> .endif
>
> I think understand this now. This rule doesn't apply if .depend already
> exists, and if .depend already exists then it must have full dependencies
> on nodes.h to work properly. You probably have a stale .depend file in
> the source directory. A stale .depend file in the obj directory would
> be always be deleted by `make world'.
>
> A stale .depend file in the source directory would only sometimes be
> deleted by `make world'. This is another bug in `make world', like
> the libgmp/mp* one. Even if the current directory is readonly,
> `make world' will only attempt to change it if there is certain
> garbage in it.
I removed my /a/obj tree also. There were no .depend files left in
either src nor obj tree. I copied all mk files in place:
$Id: bsd.dep.mk,v 1.24 1998/05/15 09:34:48 bde Exp $
$Id: bsd.doc.mk,v 1.44 1998/05/06 18:44:00 bde Exp $
$Id: bsd.info.mk,v 1.50 1998/05/06 18:44:01 bde Exp $
$Id: bsd.kern.mk,v 1.9 1998/05/01 18:13:37 bde Exp $
$Id: bsd.kmod.mk,v 1.48 1998/03/19 13:22:46 bde Exp $
$Id: bsd.lib.mk,v 1.72 1998/05/15 09:34:48 bde Exp $
$Id: bsd.libnames.mk,v 1.12 1998/05/15 09:34:48 bde Exp $
$Id: bsd.man.mk,v 1.27 1998/04/27 15:08:07 bde Exp $
$Id: bsd.obj.mk,v 1.24 1998/05/06 18:44:03 bde Exp $
$Id: bsd.own.mk,v 1.13 1998/03/19 13:32:43 bde Exp $
$Id: bsd.port.mk,v 1.276 1998/05/20 22:27:18 jkh Exp $
$Id: bsd.port.subdir.mk,v 1.23 1997/11/20 05:31:44 asami Exp $
$Id: bsd.prog.mk,v 1.74 1998/05/15 09:34:48 bde Exp $
$Id: bsd.sgml.mk,v 1.25 1998/05/18 16:57:10 wosch Exp $
$Id: bsd.subdir.mk,v 1.24 1998/05/06 16:53:53 wosch Exp $
$Id: sys.mk,v 1.33 1998/05/15 09:34:48 bde Exp $
I rebuilt and installed make, I copied make.conf in place.
cd /a/src/bin/sh
make clean
make
yields:
Warning: Object directory not changed from original /a/src/bin/sh
cc -O -pipe -DSHELL -I. -I/a/src/bin/sh -c alias.c
yacc -d arith.y
cp y.tab.c arith.c
cc -O -pipe -DSHELL -I. -I/a/src/bin/sh -c arith.c
lex -t -8 arith_lex.l > arith_lex.c
cc -O -pipe -DSHELL -I. -I/a/src/bin/sh -c arith_lex.c
cc -O -pipe -DSHELL -I. -I/a/src/bin/sh -c cd.c
cd.c:58: nodes.h: No such file or directory
*** Error code 1
Stop.
Doing a make depend first then helped. Sorry, maybe it's just that I
forgot make depend. But should make do it anyway when no .depend
file exists?
>
> Bruce
--
Chris Christoph P. U. Kukulies kuku@gil.physik.rwth-aachen.de
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980528143032.44069>
