Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/Makefile,v rcsdiff: /ftp/cvs/cvsroot/src/Makefile,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.196 retrieving revision 1.213 diff -u -p -r1.196 -r1.213 --- src/Makefile 2003/01/03 15:34:30 1.196 +++ src/Makefile 2003/07/18 02:15:17 1.213 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.196 2003/01/03 15:34:30 lukem Exp $ +# $NetBSD: Makefile,v 1.213 2003/07/18 02:15:17 lukem Exp $ # # This is the top-level makefile for building NetBSD. For an outline of @@ -52,6 +52,10 @@ # (See etc/Makefile for more information on this.) # regression-tests: # Runs the regression tests in "regress" on this host. +# sets: +# Populate ${RELEASEDIR}/${MACHINE}/binary/sets from ${DESTDIR} +# sourcesets: +# Populate ${RELEASEDIR}/source/sets from ${NETBSDSRCDIR} # # Targets invoked by `make build,' in order: # cleandir: cleans the tree. @@ -59,12 +63,16 @@ # do-tools: builds host toolchain. # do-distrib-dirs: creates the distribution directories. # includes: installs include files. +# do-tools-compat: builds the "libnbcompat" library; needed for some +# random host tool programs in the source tree. +# do-gnu-lib-libgcc: builds and installs prerequisites from gnu/lib/libgcc # do-lib-csu: builds and installs prerequisites from lib/csu. # do-lib-libc: builds and installs prerequisites from lib/libc. # do-lib: builds and installs prerequisites from lib. # do-gnu-lib: builds and installs prerequisites from gnu/lib. # do-ld.so: builds and installs prerequisites from libexec/ld.*_so. # do-build: builds and installs the entire system. +# do-obsolete: builds and installs the entire system. # .if ${.MAKEFLAGS:M${.CURDIR}/share/mk} == "" @@ -97,7 +105,7 @@ _SRC_TOP_OBJ_= .endif _SUBDIR= tools lib include gnu bin games libexec sbin usr.bin -_SUBDIR+= usr.sbin share rescue sys etc distrib regress +_SUBDIR+= usr.sbin share rescue sys etc .WAIT distrib regress # # Weed out directories that don't exist. @@ -132,13 +140,18 @@ afterinstall: postinstall-check: @echo " === Post installation checks ===" - sh ${.CURDIR}/etc/postinstall -s ${.CURDIR} -d ${DESTDIR}/ check + ${HOST_SH} ${.CURDIR}/etc/postinstall -s ${.CURDIR} -d ${DESTDIR}/ check @echo " ================================" postinstall-fix: .NOTMAIN @echo " === Post installation fixes ===" - sh ${.CURDIR}/etc/postinstall -s ${.CURDIR} -d ${DESTDIR}/ fix - @echo " ================================" + ${HOST_SH} ${.CURDIR}/etc/postinstall -s ${.CURDIR} -d ${DESTDIR}/ fix + @echo " ===============================" + +postinstall-fix-obsolete: .NOTMAIN + @echo " === Removing obsolete files ===" + ${HOST_SH} ${.CURDIR}/etc/postinstall -s ${.CURDIR} -d ${DESTDIR}/ fix obsolete + @echo " ===============================" # @@ -161,7 +174,12 @@ BUILDTARGETS+= do-distrib-dirs .if !defined(NOINCLUDES) BUILDTARGETS+= includes .endif +BUILDTARGETS+= do-tools-compat +.if ${MKGCC} != "no" +BUILDTARGETS+= do-gnu-lib-libgcc +.endif BUILDTARGETS+= do-lib-csu do-lib-libc do-lib do-gnu-lib do-ld.so do-build +BUILDTARGETS+= do-obsolete # # Enforce proper ordering of some rules. @@ -203,6 +221,7 @@ distribution buildworld: (cd ${.CURDIR} && ${MAKE} NOPOSTINSTALL=1 build) (cd ${.CURDIR}/etc && ${MAKE} INSTALL_DONE=1 distribution) .if defined(DESTDIR) && ${DESTDIR} != "" && ${DESTDIR} != "/" + ${MAKE} postinstall-fix-obsolete (cd ${.CURDIR}/distrib/sets && ${MAKE} checkflist) .endif @echo "make ${.TARGET} started at: ${START_TIME}" @@ -241,6 +260,15 @@ installworld: @printf "make ${.TARGET} finished at: " && date # +# Create sets from $DESTDIR or $NETBSDSRCDIR into $RELEASEDIR +# + +.for tgt in sets sourcesets +${tgt}: + (cd ${.CURDIR}/distrib/sets && ${MAKE} $@) +.endfor + +# # Build a release or snapshot (implies "make build"). Note that # in this case, the set lists will be checked before the tar files # are made. @@ -279,8 +307,8 @@ do-${targ}: ${targ} @true .endfor -.for dir in tools lib/csu lib/libc lib gnu/lib -do-${dir:S/\//-/}: +.for dir in tools tools/compat lib/csu gnu/lib/libgcc lib/libc lib gnu/lib +do-${dir:S/\//-/g}: .for targ in dependall install (cd ${.CURDIR}/${dir} && ${MAKE} ${targ}) .endfor @@ -301,6 +329,9 @@ do-build: (cd ${.CURDIR} && ${MAKE} ${targ} BUILD_tools=no BUILD_lib=no) .endfor +do-obsolete: + (cd ${.CURDIR}/etc && ${MAKE} install-obsolete-lists) + # # Speedup stubs for some subtrees that don't need to run these rules. # (Tells not to recurse for them.) @@ -322,31 +353,29 @@ install-${dir}: dependall-distrib depend-distrib all-distrib: @true -# -# we don't want the obj target in etc invoked as part of the normal -# course of events because that makes it too early. therefore, define -# a neutral version of the target that bsd.subdir.mk would create. -# -obj-etc: - @true - +.include .include +.include .include -# -# now, make a "real" target that will recurse into etc to enact the -# obj target, and .USE it onto the end of the obj handling for the -# current directory. note that this is only done if we already have -# commands for the obj target (we won't if we're not making objdirs), -# and only if etc is a target subdirectory. -# -.if commands(obj) && (${SUBDIR:Metc} == "etc") -real-obj-etc: .USE - @(echo "obj ===> etc"; \ - cd ${.CURDIR}/etc && ${MAKE} obj) -obj: real-obj-etc -.endif - build-docs: ${.CURDIR}/BUILDING ${.CURDIR}/BUILDING: doc/BUILDING.mdoc - groff -mdoc -Tascii -P-b -P-u -P-o $> >$@ + ${TOOL_GROFF} -mdoc -Tascii -P-cbou $> >$@ + + +# +# Display current make(1) parameters +# +params: +.for var in BSDSRCDIR BSDOBJDIR BUILDID DESTDIR EXTERNAL_TOOLCHAIN \ + KERNARCHDIR KERNCONFDIR KERNOBJDIR KERNSRCDIR \ + MACHINE MACHINE_ARCH MAKECONF MAKEFLAGS \ + MAKEOBJDIR MAKEOBJDIRPREFIX MKOBJDIRS \ + RELEASEDIR TOOLCHAIN_MISSING TOOLDIR \ + UNPRIVED UPDATE USETOOLS +.if defined(${var}) + @printf "%20s = '%-s'\n" ${var} ${${var}:Q} +.else + @printf "%20s = (undefined)\n" ${var} +.endif +.endfor