Subject: Re: Error cross-compiling lib/libc/rpc/svc_vc.c
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: James Chacon <jmc@NetBSD.org>
List: port-vax
Date: 12/13/2005 09:15:34
On Tue, Dec 13, 2005 at 02:37:34AM -0500, der Mouse wrote:
> > This is completly false.  It never did a depend pass and then an all
> > pass from anything I can ever remember.  It's always done dependall.
> 
> > If it did this, it was a short short period and most likely in error.
> 
> Sorry to inject a little fact into such a good argument, but....
> 
> Quoted from 1.0's /usr/src/Makefile (Makefile,v 1.19):
> 
> build:
> 	(cd include && ${MAKE} install)
> 	${MAKE} cleandir
> 	(cd lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> 	(cd gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> .if exists(kerberosIV)
> 	(cd kerberosIV && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> .endif
> 	${MAKE} depend && ${MAKE} && ${MAKE} install
> 
> Quoting from 1.1's /usr/src/Makefile (Makefile,v 1.25):
> 
> build:
> 	(cd ${.CURDIR}/include && ${MAKE} install)
> 	${MAKE} cleandir
> 	(cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> 	(cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> .if exists(domestic)
> 	(cd ${.CURDIR}/domestic/libcrypt && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> .endif
> .if exists(kerberosIV)
> 	(cd ${.CURDIR}/kerberosIV && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> .endif
> 	${MAKE} depend && ${MAKE} && ${MAKE} install
> 
> and 1.2's (Makefile,v 1.35):
> 
> build:
> 	(cd ${.CURDIR}/share/mk && ${MAKE} install)
> 	${MAKE} includes
> 	${MAKE} cleandir
> 	(cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> 	(cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> .if exists(domestic) && !defined(EXPORTABLE_SYSTEM)
> 	# XXX should do the whole of domestic/lib
> 	(cd ${.CURDIR}/domestic/lib/libcrypt && ${MAKE} depend && ${MAKE} && \
> 	    ${MAKE} install)
> .endif
> 	${MAKE} depend && ${MAKE} && ${MAKE} install
> 
> 1.3's (Makefile,v 1.42.2.1):
> 
> build: beforeinstall
> 	(cd ${.CURDIR}/share/mk && ${MAKE} install)
> 	${MAKE} includes
> .if !defined(UPDATE)
> 	${MAKE} cleandir
> .endif
> 	(cd ${.CURDIR}/lib/csu && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> 	(cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> 	(cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
> .if exists(domestic) && !defined(EXPORTABLE_SYSTEM)
> 	(cd ${.CURDIR}/domestic/lib/ && ${MAKE} depend && ${MAKE} && \
> 	    ${MAKE} install)
> .endif
> 	${MAKE} depend && ${MAKE} && ${MAKE} install
> 
> With 1.4 (Makefile,v 1.95), the build target gets longer than I want to
> quote in full, but the "build the world" line is
> 
> 	${MAKE} depend && ${MAKE} ${_J} && ${MAKE} _BUILD= install
> 
> 1.5 (Makefile,v 1.118.2.1) seems to be when dependall came in.

Ok, I stand corrected (and do vaguely remember this now).

But...this even proves the point more...The current stuff does less
passes then the past did by combining the steps. There's no "in the good old
days when we did less passes"....

> 
> > [...], but that's why there are hooks for building a much leaner
> > system than the default.
> 
> Where are these hooks?  Where are they documented?  I just had a look
> at -current's /usr/src/BUILDING and I see only very coarse-grained
> control, and mostly type-of-thing control (eg, MKMAN to control
> manpages) rather than functional-area control (eg, a way to suppress
> UUCP, or IPv6, or Kerberos, support).  MKTTINTERP and MKX11, and
> possibly MKNLS (I'm not entirely sure what the latter controls), are
> the only functional-area controls I see.

man mk.conf 

That has most of them and if some are missing we should add them in.

MKX11 would make no sense. You have to trigger X builds explicitly with
build.sh -x or by building inside of xsrc yourself.

James