Skip site navigation (1)Skip section navigation (2)
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>