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 retrieving revision 1.289.2.3 retrieving revision 1.290 diff -u -p -r1.289.2.3 -r1.290 --- src/Makefile 2012/10/30 18:46:03 1.289.2.3 +++ src/Makefile 2012/01/22 03:53:32 1.290 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.289.2.3 2012/10/30 18:46:03 yamt Exp $ +# $NetBSD: Makefile,v 1.290 2012/01/22 03:53:32 tsutsui Exp $ # # This is the top-level makefile for building NetBSD. For an outline of @@ -48,7 +48,7 @@ # installworld: # Install the distribution from DESTDIR to INSTALLWORLDDIR (which # defaults to the root directory). Ensures that INSTALLWORLDDIR -# is not the root directory if cross compiling. +# is the not root directory if cross compiling. # release: # Does a `make distribution', and then tars up the DESTDIR files # into ${RELEASEDIR}/${RELEASEMACHINEDIR}, in release(7) format. @@ -92,9 +92,27 @@ # includes: installs include files. # do-tools-compat: builds the "libnbcompat" library; needed for some # random host tool programs in the source tree. -# do-lib: builds and installs prerequisites from lib +# do-lib-csu: builds and installs prerequisites from lib/csu. +# do-libgcc: builds and installs prerequisites from +# gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and +# gnu/lib/libgcc${LIBGCC_EXT}. +# do-libpcc: builds and install prerequisites from +# external/bsd/pcc/crtstuff (if necessary) and +# external/bsd/pcc/libpcc. +# do-lib-libc: builds and installs prerequisites from lib/libc. +# do-lib: builds and installs prerequisites from lib. +# do-sys-rump-dev-lib: builds and installs prerequisites from sys/rump/dev/lib +# do-sys-rump-fs-lib: builds and installs prerequisites from sys/rump/fs/lib +# do-sys-rump-kern-lib: builds and installs prereq. from sys/rump/kern/lib +# do-sys-rump-net-lib: builds and installs prerequisites from sys/rump/net/lib +# do-sys-modules: builds and installs kernel modules (used by rump binaries) +# do-ld.so: builds and installs prerequisites from libexec/ld.*_so. +# do-compat-lib-csu: builds and installs prerequisites from compat/lib/csu # if ${MKCOMPAT} != "no". -# do-compat-lib: builds and installs prerequisites from compat/lib +# do-compat-libgcc: builds and installs prerequisites from +# compat/gnu/lib/crtstuff${LIBGCC_EXT} (if necessary) and +# compat/gnu/lib/libgcc${LIBGCC_EXT} if ${MKCOMPAT} != "no". +# do-compat-lib-libc: builds and installs prerequisites from compat/lib/libc # if ${MKCOMPAT} != "no". # do-build: builds and installs the entire system. # do-x11: builds and installs X11 if ${MKX11} != "no"; either @@ -170,27 +188,20 @@ afterinstall: .PHONY .MAKE .endif _POSTINSTALL= ${.CURDIR}/usr.sbin/postinstall/postinstall -_POSTINSTALL_ENV= \ - AWK=${TOOL_AWK:Q} \ - DB=${TOOL_DB:Q} \ - HOST_SH=${HOST_SH:Q} \ - MAKE=${MAKE:Q} \ - PWD_MKDB=${TOOL_PWD_MKDB:Q} \ - STAT=${TOOL_STAT:Q} postinstall-check: .PHONY @echo " === Post installation checks ===" - ${_POSTINSTALL_ENV} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ check; if [ $$? -gt 1 ]; then exit 1; fi + AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ check; if [ $$? -gt 1 ]; then exit 1; fi @echo " ================================" postinstall-fix: .NOTMAIN .PHONY @echo " === Post installation fixes ===" - ${_POSTINSTALL_ENV} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix + AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix @echo " ===============================" postinstall-fix-obsolete: .NOTMAIN .PHONY @echo " === Removing obsolete files ===" - ${_POSTINSTALL_ENV} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix obsolete + AWK=${TOOL_AWK:Q} MAKE=${MAKE:Q} ${HOST_SH} ${_POSTINSTALL} -s ${.CURDIR} -d ${DESTDIR}/ fix obsolete @echo " ===============================" @@ -232,8 +243,27 @@ BUILDTARGETS+= do-distrib-dirs .if !defined(NOINCLUDES) BUILDTARGETS+= includes .endif +BUILDTARGETS+= do-tools-compat +BUILDTARGETS+= do-lib-csu +.if ${MKGCC} != "no" +BUILDTARGETS+= do-libgcc +.endif +.if ${MKPCC} != "no" +BUILDTARGET+= do-libpcc +.endif +BUILDTARGETS+= do-lib-libc BUILDTARGETS+= do-lib -BUILDTARGETS+= do-compat-lib +.if ${MKKMOD} != "no" +BUILDTARGETS+= do-sys-modules +.endif +BUILDTARGETS+= do-sys-rump-dev-lib do-sys-rump-fs-lib +BUILDTARGETS+= do-sys-rump-kern-lib do-sys-rump-net-lib +.if ${MKCOMPAT} != "no" +BUILDTARGETS+= do-compat-lib-csu +BUILDTARGETS+= do-compat-libgcc +BUILDTARGETS+= do-compat-lib-libc +.endif +BUILDTARGETS+= do-ld.so BUILDTARGETS+= do-build .if ${MKX11} != "no" BUILDTARGETS+= do-x11 @@ -432,18 +462,32 @@ do-${targ}: .PHONY ${targ} @true .endfor -.for dir in tools tools/compat +.if defined(HAVE_GCC) +.if ${USE_COMPILERCRTSTUFF} == "yes" +BUILD_CC_LIB= ${BUILD_CC_LIB_BASEDIR}/crtstuff${LIBGCC_EXT} +.endif +BUILD_CC_LIB+= ${BUILD_CC_LIB_BASEDIR}/libgcc${LIBGCC_EXT} +.elif defined(HAVE_PCC) +BUILD_CC_LIB+= external/bsd/pcc/crtstuff +BUILD_CC_LIB+= external/bsd/pcc/libpcc +.endif + +.for dir in tools tools/compat lib/csu ${BUILD_CC_LIB} lib/libc lib sys/rump/dev/lib sys/rump/fs/lib sys/rump/kern/lib sys/rump/net/lib sys/modules do-${dir:S/\//-/g}: .PHONY .MAKE .for targ in dependall install ${MAKEDIRTARGET} ${dir} ${targ} .endfor .endfor -do-lib: .PHONY .MAKE - ${MAKEDIRTARGET} lib build_install - -do-compat-lib: .PHONY .MAKE - ${MAKEDIRTARGET} compat build_install BOOTSTRAP_SUBDIRS="../../../lib" +.if ${MKCOMPAT} != "no" +COMPAT_SUBDIR_LIST=lib/csu ${BUILD_CC_LIB} lib/libc +.for dir in ${COMPAT_SUBDIR_LIST} +do-compat-${dir:S/\//-/g}: .PHONY .MAKE +.for targ in dependall install + ${MAKEDIRTARGET} compat ${targ} BOOTSTRAP_SUBDIRS="../../../${dir}" +.endfor +.endfor +.endif do-top-obj: .PHONY .MAKE ${MAKEDIRTARGET} . obj NOSUBDIR= @@ -451,6 +495,41 @@ do-top-obj: .PHONY .MAKE do-tools-obj: .PHONY .MAKE ${MAKEDIRTARGET} tools obj +do-libgcc: .PHONY .MAKE +.if defined(HAVE_GCC) +.if ${MKGCC} != "no" +.if ${USE_COMPILERCRTSTUFF} == "yes" + ${MAKEDIRTARGET} . do-${BUILD_CC_LIB_BASETARGET}-crtstuff${LIBGCC_EXT} +.endif + ${MAKEDIRTARGET} . do-${BUILD_CC_LIB_BASETARGET}-libgcc${LIBGCC_EXT} +.endif +.endif + +do-compat-libgcc: .PHONY .MAKE +.if defined(HAVE_GCC) +.if ${MKGCC} != "no" +.if ${USE_COMPILERCRTSTUFF} == "yes" + ${MAKEDIRTARGET} . do-compat-${BUILD_CC_LIB_BASETARGET}-crtstuff${LIBGCC_EXT} +.endif + ${MAKEDIRTARGET} . do-compat-${BUILD_CC_LIB_BASETARGET}-libgcc${LIBGCC_EXT} +.endif +.endif + +do-libpcc: .PHONY .MAKE +.if defined(HAVE_PCC) +.if ${MKPCC} != "no" +.if ${USE_COMPILERCRTSTUFF} == "yes" + ${MAKEDIRTARGET} . do-pcc-lib-crtstuff +.endif + ${MAKEDIRTARGET} . do-pcc-lib-libpcc +.endif +.endif + +do-ld.so: .PHONY .MAKE +.for targ in dependall install + ${MAKEDIRTARGET} libexec/ld.elf_so ${targ} +.endfor + do-build: .PHONY .MAKE .for targ in dependall install ${MAKEDIRTARGET} . ${targ} BUILD_tools=no BUILD_lib=no @@ -484,7 +563,7 @@ do-obsolete: .PHONY .MAKE # (Tells not to recurse for them.) # -.for dir in bin etc distrib games libexec regress sbin usr.bin usr.sbin tools +.for dir in bin etc distrib games libexec regress sbin usr.sbin tools includes-${dir}: .PHONY @true .endfor