Date: Thu, 28 May 1998 19:41:26 +1000 From: Bruce Evans <bde@zeta.org.au> To: bde@zeta.org.au, kuku@gilberto.physik.RWTH-Aachen.DE Cc: eivind@FreeBSD.ORG, freebsd-current@freefall.cdrom.com Subject: Re: help! - nodes.h where is it? Message-ID: <199805280941.TAA31697@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> 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. Bruce 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?199805280941.TAA31697>