Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 01 Sep 1997 01:24:53 +0800
From:      Peter Wemm <peter@spinner.dialix.com.au>
To:        "Jonathan M. Bresler" <jmb@FreeBSD.ORG>
Cc:        max@wide.ad.jp (Masafumi NAKANE/=?ISO-2022-JP?B?GyRCQ2Y6LDJtSjgbKEI=?=), peter@FreeBSD.ORG, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-share@FreeBSD.ORG
Subject:   Re: cvs commit: src/share/mk bsd.lib.mk bsd.prog.mk sys.mk 
Message-ID:  <199708311724.BAA21480@spinner.dialix.com.au>
In-Reply-To: Your message of "Sun, 31 Aug 1997 06:44:26 MST." <199708311344.GAA05145@hub.freebsd.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
"Jonathan M. Bresler" wrote:
> Masafumi NAKANE/=?ISO-2022-JP?B?GyRCQ2Y6LDJtSjgbKEI=?= wrote:
> > 
> > 
> > # make buildworld
> > --------------------------------------------------------------
> >  Making make
> > --------------------------------------------------------------
> > mkdir -p /usr/obj/usr/src/tmp/usr/bin
> [snip]
> > "/usr/src/share/mk/bsd.prog.mk", line 149: Malformed conditional (${BINFORM
    AT} != aout)
> > "/usr/src/share/mk/bsd.prog.mk", line 151: if-less endif
> > "/usr/src/share/mk/bsd.prog.mk", line 151: Need an operator
> > make: fatal errors encountered -- cannot continue
> > *** Error code 1
> 
> 
> 	either sys.mk should be included before bsd.prog.mk is used
> 	(sys.mk will define BINFORMAT) or both bsd.prog.mk (1
> 	occurance) and bsd.lib.mk (5 occurances) have to be changed
> 	to "conditionalize" BINFORMAT test.

I don't understand what's going wrong there.  It seems to be working fine 
for me.

sys.mk is implicitly included by make *before* reading the user Makefile.  
bsd.prog.mk should always be able to see it.  Remember, sys.mk includes
/etc/make.conf, which bsd.prog.mk refers to.

> 	i'll let someone that is more expert in out make system
> 	determine the "right thing".
> 
> bsd.prog.mk:
> *** 147,151 ****
>   .endif
>   
> ! .if ${BINFORMAT} != aout
>   .include <bsd.libnames.mk>
>   .endif
> --- 147,151 ----
>   .endif
>   
> ! .if defined(BINFORMAT) && (${BINFORMAT} != aout)
>   .include <bsd.libnames.mk>
>   .endif

Does this sort of thing fix the problem?  (Just asking, because I've not
been able to duplicate it yet)

peter@beast[1:12am]~src/share/mk-240> cvs update
cvs update: Updating .
peter@beast[1:13am]~src/share/mk-241> diff -ru . /usr/share/mk
Only in .: CVS
Only in .: Makefile
peter@beast[1:13am]~src/share/mk-242> cd ../../sbin/dmesg
peter@beast[1:13am]~src/sbin/dmesg-243> make clean
rm -f a.out Errs errs mklog dmesg dmesg.o dmesg.8.gz dmesg.8.cat.gz
peter@beast[1:13am]~src/sbin/dmesg-244> make
cc -O -pipe   -c /home/src/sbin/dmesg/dmesg.c
cc -O -pipe    -static -o dmesg dmesg.o  -lkvm
gzip -c /home/src/sbin/dmesg/dmesg.8 > dmesg.8.gz

[note, BINFORMAT is not presently defined on this system in /etc/make.conf]

peter@beast[1:13am]~src/sbin/dmesg-245> grep BINFORMAT /etc/make.conf
#BINFORMAT=             elf
peter@beast[1:13am]~src/sbin/dmesg-246> grep BINFORMAT /usr/share/mk/*
/usr/share/mk/bsd.lib.mk:.if ${BINFORMAT} == aout
/usr/share/mk/bsd.lib.mk:.if ${BINFORMAT} == aout
/usr/share/mk/bsd.lib.mk:.if ${BINFORMAT} == aout
/usr/share/mk/bsd.lib.mk:.if ${BINFORMAT} == aout
/usr/share/mk/bsd.lib.mk:.if ${BINFORMAT} == aout
/usr/share/mk/bsd.prog.mk:.if ${BINFORMAT} == aout
/usr/share/mk/bsd.prog.mk:.if ${BINFORMAT} != aout
/usr/share/mk/sys.mk:BINFORMAT?=        aout
peter@beast[1:13am]~src/sbin/dmesg-247>

The only thing I can think of is if the 'make install' in share/mk got 
interrupted somehow and only some of the .mk files got installed..  That 
goes for both /usr/share/mk or /usr/obj/<srcdir>/tmp/usr/share/mk.

A buildworld gets well past that point of failure for me, but fails for
other reasons..  (This is a pure ELF system that has not had all the
tools integrated yet, and buildworld doesn't like not having 'ld' installed
by the bmakefiles into ${DESTDIR} very much..)

> jmb
> 

Cheers,
-Peter





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708311724.BAA21480>