summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc1191
1 files changed, 51 insertions, 140 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 584766e..220bd3c 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -187,8 +187,7 @@ COMPILER_ENV= BISON_SIMPLE=${TOOLROOT}/usr/share/misc/bison.simple \
LD_LIBRARY_PATH=${TOOLROOT}${SHLIBDIR} \
LIBRARY_PATH=${WORLDTMP}${SHLIBDIR}:${WORLDTMP}/usr/lib
-BMAKEENV= ${COMPILER_ENV} NOEXTRADEPEND=t PATH=${TMPPATH} \
- OBJFORMAT_PATH=${TOOLROOT}/usr/libexec:/usr/libexec
+BMAKEENV= NOEXTRADEPEND=t
XTMAKEENV= NOEXTRADEPEND=t
.if defined(TARGET)
XMAKEENV= PATH=${TMPPATH}
@@ -200,11 +199,6 @@ XMAKEENV+= ${COMPILER_ENV} \
OBJFORMAT_PATH=${TOOLROOT}/usr/libexec \
CFLAGS="-nostdinc ${CFLAGS}" # XXX -nostdlib
-# used to compile and install 'make' in temporary build tree
-MAKETMP= ${WORLDTMP}/make
-IBMAKE= ${BMAKEENV} MAKEOBJDIR=${MAKETMP} ${MAKE} DESTDIR=${WORLDTMP}
-
-.if defined(NOTOOLS)
# cross tools make
XTMAKE= ${XTMAKEENV} ${MAKE} DESTDIR=${WORLDTMP}
# bootstrap make
@@ -213,16 +207,6 @@ BMAKE= ${BMAKEENV} ${MAKE} DESTDIR=${WORLDTMP}
XMAKE= ${XMAKEENV} ${MAKE} DESTDIR=${WORLDTMP}
# cross make used for final installation
IXMAKE= ${XMAKEENV} ${MAKE}
-.else
-# cross tools make
-XTMAKE= ${XTMAKEENV} ${WORLDTMP}/usr/bin/make DESTDIR=${WORLDTMP}
-# bootstrap make
-BMAKE= ${BMAKEENV} ${WORLDTMP}/usr/bin/make DESTDIR=${WORLDTMP}
-# cross make used for compilation
-XMAKE= ${XMAKEENV} ${WORLDTMP}/usr/bin/make DESTDIR=${WORLDTMP}
-# cross make used for final installation
-IXMAKE= ${XMAKEENV} ${WORLDTMP}/usr/bin/make
-.endif
#
# buildworld
@@ -245,13 +229,14 @@ buildworld: check-objformat
@echo "--------------------------------------------------------------"
@echo ">>> Making make"
@echo "--------------------------------------------------------------"
- mkdir -p ${WORLDTMP}/usr/bin ${MAKETMP}
+ mkdir -p ${WORLDTMP}/usr/bin ${WORLDTMP}/make
( \
cd ${.CURDIR}/usr.bin/make; \
MAKEOBJDIRPREFIX=""; unset MAKEOBJDIRPREFIX; \
- ${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} all; \
- ${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} install; \
- ${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} clean \
+ export MAKEOBJDIR=${WORLDTMP}/make; \
+ ${BMAKE} ${MK_FLAGS} all; \
+ ${BMAKE} ${MK_FLAGS} install; \
+ ${BMAKE} ${MK_FLAGS} clean \
)
@echo
@echo "--------------------------------------------------------------"
@@ -297,22 +282,7 @@ buildworld: check-objformat
@echo ">>> Rebuilding ${OBJFORMAT} bootstrap tools"
@echo "--------------------------------------------------------------"
cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 bootstrap
- @echo
- @echo "--------------------------------------------------------------"
- @echo ">>> Rebuilding tools necessary to build the include files"
- @echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 include-tools
.endif
- @echo
- @echo "--------------------------------------------------------------"
- @echo ">>> Rebuilding ${DESTDIR}/usr/include"
- @echo "--------------------------------------------------------------"
- cd ${.CURDIR}; SHARED=copies ${BMAKE} -f Makefile.inc1 includes
- @echo
- @echo "--------------------------------------------------------------"
- @echo ">>> Rebuilding bootstrap libraries"
- @echo "--------------------------------------------------------------"
- cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 bootstrap-libraries
.if !defined(NOTOOLS)
@echo
@echo "--------------------------------------------------------------"
@@ -325,6 +295,11 @@ buildworld: check-objformat
@echo "--------------------------------------------------------------"
cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 build-tools
.endif
+ @echo
+ @echo "--------------------------------------------------------------"
+ @echo ">>> Rebuilding ${DESTDIR}/usr/include"
+ @echo "--------------------------------------------------------------"
+ cd ${.CURDIR}; SHARED=copies ${BMAKE} -f Makefile.inc1 includes
.if !defined(_NODEPEND)
@echo
@echo "--------------------------------------------------------------"
@@ -490,15 +465,6 @@ hierarchy:
# for the dependency information to be gathered from.
#
bootstrap:
-.if defined(DESTDIR)
- rm -f ${DESTDIR}/usr/src/sys
- ln -s ${.CURDIR}/sys ${DESTDIR}/usr/src
- cd ${.CURDIR}/include; ${MAKE} all
- cd ${.CURDIR}/include; ${MAKE} beforeinstall
-.endif
- cd ${.CURDIR}/usr.bin/make; ${MAKE} ${MK_FLAGS} ${_DEPEND}; \
- ${MAKE} ${MK_FLAGS} all; \
- ${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/usr.bin/xinstall; ${MAKE} ${MK_FLAGS} ${_DEPEND}; \
${MAKE} ${MK_FLAGS} all; \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
@@ -508,30 +474,15 @@ bootstrap:
cd ${.CURDIR}/usr.bin/lex; ${MAKE} bootstrap; \
${MAKE} ${MK_FLAGS} ${_DEPEND}; \
${MAKE} ${MK_FLAGS} -DNOLIB all; \
- ${MAKE} ${MK_FLAGS} -DNOLIB -B install ${CLEANDIR}
- cd ${.CURDIR}/usr.bin/lex; ${MAKE} ${OBJDIR}
- cd ${.CURDIR}/usr.sbin/mtree; ${MAKE} ${MK_FLAGS} ${_DEPEND}; \
+ ${MAKE} ${MK_FLAGS} -DNOLIB -B install ${CLEANDIR} ${OBJDIR}
+ cd ${.CURDIR}/usr.bin/compile_et; ${MAKE} cleandepend; \
+ ${MAKE} ${MK_FLAGS} ${_DEPEND}; \
${MAKE} ${MK_FLAGS} all; \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
-.if defined(DESTDIR)
- cd ${.CURDIR}/include && ${MAKE} copies
-.endif
-
-#
-# include-tools - generally the same as 'bootstrap', except that it's for
-# things that are specifically needed to generate include files.
-#
-# XXX should be merged with bootstrap, it's not worth keeeping them separate.
-# Well, maybe it is now. We force 'cleandepend' here to avoid dependencies
-# on cleaned away headers in ${WORLDTMP}.
-#
-include-tools:
-.for d in usr.bin/compile_et usr.bin/rpcgen
- cd ${.CURDIR}/$d; ${MAKE} cleandepend; \
+ cd ${.CURDIR}/usr.bin/rpcgen; ${MAKE} cleandepend; \
${MAKE} ${MK_FLAGS} ${_DEPEND}; \
${MAKE} ${MK_FLAGS} all; \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
-.endfor
#
# includes - possibly generate and install the include files.
@@ -649,44 +600,48 @@ lib-tools:
.endfor
#
-# We have to know too much about ordering and subdirs in the lib trees:
-#
-# To satisfy shared library linkage when only the libraries being built
-# are visible:
-#
-# csu must be built before all shared libaries for ELF.
-# libcom_err must be built before libss and libkrb.
-# libcrypt must be built before libkrb and libskey.
-# libdes must be built before libpam.
-# libkrb must be built before libpam.
-# libm must be built before libstdc++.
-# libmd must be built before libatm, libcrypt, libopie, libradius, libskey,
-# and libtacplus.
-# libncurses must be built before libdialog, libedit and libreadline.
-# libradius must be built before libpam.
-# libskey must be built before libpam.
-# libtacplus must be built before libpam.
+# libraries - build all libraries, and install them under ${DESTDIR}.
#
-# Some libraries are built conditionally and/or are in inconsistently
-# named directories:
+# The following dependencies exist between the libraries:
+#
+# lib*: csu
+# libatm: libmd
+# libcrypt: libmd
+# libdialog: libmytinfo libncurses
+# libedit: libncurses
+# libg++: libm
+# libkrb: libcrypt
+# libopie: libmd
+# libpam: libcom_err libcrypt libdes libgcc_pic libkrb libradius libskey \
+# libtacplus libutil
+# libradius: libmd
+# libreadline: libncurses
+# libskey: libcrypt libmd
+# libss: libcom_err
+# libstc++: libm
+# libtacplus: libmd
+#
+# Across directories this comes down to (rougly):
+#
+# gnu/lib: lib/libm lib/libmytinfo lib/libncurses
+# kerberosIV/lib: lib/libcrypt
+# lib/libpam: secure/lib/libdes kerberosIV/lib/libkrb
+# secure/lib: lib/libmd
#
.if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}.pcc)
-_csu=lib/csu/${MACHINE_ARCH}.pcc
+_csu= lib/csu/${MACHINE_ARCH}.pcc
.elif ${MACHINE_ARCH} == "i386" && ${OBJFORMAT} == "elf"
-_csu=lib/csu/i386-elf
+_csu= lib/csu/i386-elf
.else
-_csu=lib/csu/${MACHINE_ARCH}
+_csu= lib/csu/${MACHINE_ARCH}
.endif
.if !defined(NOSECURE) && !defined(NOCRYPT)
-_libcrypt= lib/libcrypt secure/lib/libcrypt
_secure_lib= secure/lib
-.else
-_libcrypt= lib/libcrypt
.endif
.if !defined(NOCRYPT) && defined(MAKE_KERBEROS4)
-_kerberosIV_lib=kerberosIV/lib
+_kerberosIV_lib= kerberosIV/lib
.endif
.if defined(WANT_CSRG_LIBM)
@@ -696,49 +651,14 @@ _libm= lib/msun
.endif
.if !defined(NOPERL)
-_libperl= gnu/usr.bin/perl/libperl
-.endif
-
-#
-# bootstrap-libraries - build just enough libraries for the bootstrap
-# tools, and install them under ${WORLDTMP}.
-#
-# Build csu early so that some tools get linked to the new
-# version (too late for the main tools, however). Then build the
-# necessary prerequisite libraries.
-#
-# This is mostly wrong. The build tools must run on the host system,
-# so they should use host libraries. We depend on the target being
-# similar enough to the host for new target libraries to work on the
-# host.
-#
-bootstrap-libraries:
-.for _lib in ${_csu} lib/libc lib/libncurses \
- gnu/lib/libregex gnu/lib/libreadline \
- lib/libedit ${_libm} \
- lib/libmd lib/libcrypt lib/libutil lib/libz usr.bin/lex/lib \
- ${_libperl}
-.if exists(${.CURDIR}/${_lib})
- cd ${.CURDIR}/${_lib}; \
- ${MAKE} ${MK_FLAGS} ${_DEPEND}; \
- ${MAKE} ${MK_FLAGS} all; \
- ${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
+_libperl= gnu/usr.bin/perl/libperl
.endif
-.endfor
-#
-# libraries - build all libraries, and install them under ${DESTDIR}.
-#
-# The ordering is not as special as for bootstrap-libraries. Build
-# the prerequisites first, then build almost everything else in
-# alphabetical order.
-#
libraries:
-.for _lib in ${_csu} lib/libcom_err ${_libm} lib/libmd ${_libcrypt} \
- lib/libradius lib/libskey lib/libtacplus \
- ${_secure_lib} ${_kerberosIV_lib} \
- gnu/lib ${_libperl} lib usr.bin/lex/lib \
- usr.sbin/pcvt/keycap
+.for _lib in ${_csu} lib/libmd lib/libcrypt ${_secure_lib} ${_kerberosIV_lib} \
+ lib/libcom_err ${_libm} lib/libmytinfo lib/libncurses lib/libradius \
+ lib/libskey lib/libtacplus lib/libutil lib gnu/lib ${_libperl} \
+ usr.bin/lex/lib usr.sbin/pcvt/keycap
.if exists(${.CURDIR}/${_lib})
cd ${.CURDIR}/${_lib}; ${MAKE} all; ${MAKE} -B install
.endif
@@ -763,12 +683,6 @@ _scrnmaps= share/syscons/scrnmaps
.if ${MACHINE_ARCH} == alpha
_elf2exe= usr.sbin/elf2exe
.endif
-.if ${MACHINE_ARCH} == i386
-_kldlinux= sys/modules/linux
-.endif
-.if ${OBJFORMAT} == "aout"
-_netboot= sys/${MACHINE_ARCH}/boot/netboot
-.endif
BTMAKEFLAGS= ${MK_FLAGS} -D_BUILD_TOOLS
@@ -863,10 +777,7 @@ build-tools:
${_hack} \
${_phantasia} \
gnu/usr.bin/cc/cc_tools \
- ${_linux} \
- ${_kldlinux} \
- ${_scrnmaps} \
- ${_netboot}
+ ${_scrnmaps}
cd ${.CURDIR}/$d; ${MAKE} ${BTMAKEFLAGS} build-tools
.endfor
OpenPOWER on IntegriCloud