Don't build shared libraries twice for `make world'. This reduces
`make world' times by about 10%. Use a new `bootstrap-libraries'
target to build just enough (static) libraries to bootstrap the
tools, and delay building of shared libraries until all the tools
have been built.
Fixed `/usr/bin/make world'. The version of `make' that we buildis
nand use is named "make", not ${MAKE}.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# $Id: Makefile,v 1.168 1998/03/26 17:32:24 markm Exp $
|
# $Id: Makefile,v 1.169 1998/04/19 13:44:52 dt Exp $
|
||||||
#
|
#
|
||||||
# While porting to the another architecture include the bootstrap instead
|
# While porting to the another architecture include the bootstrap instead
|
||||||
# of the normal build.
|
# of the normal build.
|
||||||
@@ -73,7 +73,8 @@ SUBDIR+= games
|
|||||||
.if exists(gnu)
|
.if exists(gnu)
|
||||||
SUBDIR+= gnu
|
SUBDIR+= gnu
|
||||||
.endif
|
.endif
|
||||||
.if exists(kerberosIV) && exists(crypto) && !defined(NOCRYPT) && defined(MAKE_KERBEROS4)
|
.if exists(kerberosIV) && exists(crypto) && !defined(NOCRYPT) && \
|
||||||
|
defined(MAKE_KERBEROS4)
|
||||||
SUBDIR+= kerberosIV
|
SUBDIR+= kerberosIV
|
||||||
.endif
|
.endif
|
||||||
.if exists(libexec)
|
.if exists(libexec)
|
||||||
@@ -146,7 +147,7 @@ SUPFLAGS?= -v
|
|||||||
.if defined(NOCLEAN)
|
.if defined(NOCLEAN)
|
||||||
MK_FLAGS= -DNOINFO -DNOMAN -DNOPROFILE
|
MK_FLAGS= -DNOINFO -DNOMAN -DNOPROFILE
|
||||||
.else
|
.else
|
||||||
MK_FLAGS= -DNOINFO -DNOMAN -DNOPROFILE -DNOSHARED
|
MK_FLAGS= -DNOINFO -DNOMAN -DNOPIC -DNOPROFILE -DNOSHARED
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -211,11 +212,11 @@ XMAKEENV= PATH=${STRICTTMPPATH} ${COMPILER_ENV} \
|
|||||||
MAKETMP= ${WORLDTMP}/make
|
MAKETMP= ${WORLDTMP}/make
|
||||||
IBMAKE= ${BMAKEENV} MAKEOBJDIR=${MAKETMP} ${MAKE} DESTDIR=${WORLDTMP}
|
IBMAKE= ${BMAKEENV} MAKEOBJDIR=${MAKETMP} ${MAKE} DESTDIR=${WORLDTMP}
|
||||||
# bootstrap make
|
# bootstrap make
|
||||||
BMAKE= ${BMAKEENV} ${WORLDTMP}/usr/bin/${MAKE} DESTDIR=${WORLDTMP}
|
BMAKE= ${BMAKEENV} ${WORLDTMP}/usr/bin/make DESTDIR=${WORLDTMP}
|
||||||
# cross make used for compilation
|
# cross make used for compilation
|
||||||
XMAKE= ${XMAKEENV} ${WORLDTMP}/usr/bin/${MAKE} DESTDIR=${WORLDTMP}
|
XMAKE= ${XMAKEENV} ${WORLDTMP}/usr/bin/make DESTDIR=${WORLDTMP}
|
||||||
# cross make used for final installation
|
# cross make used for final installation
|
||||||
IXMAKE= ${XMAKEENV} ${WORLDTMP}/usr/bin/${MAKE}
|
IXMAKE= ${XMAKEENV} ${WORLDTMP}/usr/bin/make
|
||||||
|
|
||||||
#
|
#
|
||||||
# buildworld
|
# buildworld
|
||||||
@@ -286,15 +287,15 @@ buildworld:
|
|||||||
.if !defined(NOTOOLS)
|
.if !defined(NOTOOLS)
|
||||||
@echo
|
@echo
|
||||||
@echo "--------------------------------------------------------------"
|
@echo "--------------------------------------------------------------"
|
||||||
@echo " Rebuilding tools needed to build the libraries"
|
@echo " Rebuilding tools needed to build the bootstrap libraries"
|
||||||
@echo "--------------------------------------------------------------"
|
@echo "--------------------------------------------------------------"
|
||||||
cd ${.CURDIR} && ${BMAKE} lib-tools
|
cd ${.CURDIR} && ${BMAKE} lib-tools
|
||||||
.endif
|
.endif
|
||||||
@echo
|
@echo
|
||||||
@echo "--------------------------------------------------------------"
|
@echo "--------------------------------------------------------------"
|
||||||
@echo " Rebuilding ${DESTDIR}/usr/lib"
|
@echo " Rebuilding bootstrap libraries"
|
||||||
@echo "--------------------------------------------------------------"
|
@echo "--------------------------------------------------------------"
|
||||||
cd ${.CURDIR} && ${BMAKE} libraries
|
cd ${.CURDIR} && ${BMAKE} bootstrap-libraries
|
||||||
.if !defined(NOTOOLS)
|
.if !defined(NOTOOLS)
|
||||||
@echo
|
@echo
|
||||||
@echo "--------------------------------------------------------------"
|
@echo "--------------------------------------------------------------"
|
||||||
@@ -309,6 +310,11 @@ buildworld:
|
|||||||
cd ${.CURDIR} && ${XMAKE} par-depend
|
cd ${.CURDIR} && ${XMAKE} par-depend
|
||||||
@echo
|
@echo
|
||||||
@echo "--------------------------------------------------------------"
|
@echo "--------------------------------------------------------------"
|
||||||
|
@echo " Building libraries"
|
||||||
|
@echo "--------------------------------------------------------------"
|
||||||
|
cd ${.CURDIR} && ${XMAKE} libraries
|
||||||
|
@echo
|
||||||
|
@echo "--------------------------------------------------------------"
|
||||||
@echo " Building everything.."
|
@echo " Building everything.."
|
||||||
@echo "--------------------------------------------------------------"
|
@echo "--------------------------------------------------------------"
|
||||||
cd ${.CURDIR} && ${XMAKE} all
|
cd ${.CURDIR} && ${XMAKE} all
|
||||||
@@ -574,29 +580,10 @@ lib-tools:
|
|||||||
.endfor
|
.endfor
|
||||||
|
|
||||||
#
|
#
|
||||||
# libraries - build and install the libraries
|
# 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
|
||||||
# We have to know too much about botches in the lib tree:
|
# are visible:
|
||||||
.if exists(csu/${MACHINE}.pcc)
|
|
||||||
_csu=csu/${MACHINE}.pcc
|
|
||||||
.else
|
|
||||||
_csu=csu/${MACHINE}
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if defined(WANT_CSRG_LIBM)
|
|
||||||
_libm= libm
|
|
||||||
.else
|
|
||||||
_libm= msun
|
|
||||||
.endif
|
|
||||||
|
|
||||||
libraries:
|
|
||||||
#
|
|
||||||
# Build csu early so that some tools get linked to the new version (too
|
|
||||||
# late for the main tools, however).
|
|
||||||
#
|
|
||||||
# To satisfy shared library or ELF linkage when only the libraries being
|
|
||||||
# built are visible:
|
|
||||||
#
|
#
|
||||||
# libcom_err must be built before libss.
|
# libcom_err must be built before libss.
|
||||||
# libcrypt and libmd must be built before libskey.
|
# libcrypt and libmd must be built before libskey.
|
||||||
@@ -605,16 +592,45 @@ libraries:
|
|||||||
# libncurses must be built before libdialog.
|
# libncurses must be built before libdialog.
|
||||||
# libtermcap must be built before libcurses, libedit and libreadline.
|
# libtermcap must be built before libcurses, libedit and libreadline.
|
||||||
#
|
#
|
||||||
.for _lib in ${_csu} libcom_err libcrypt ${_libm} libmytinfo \
|
# Some libraries are built conditionally and/or are in inconsistently
|
||||||
libncurses libtermcap
|
# named directories:
|
||||||
.if exists(${.CURDIR}/lib/${_lib})
|
#
|
||||||
cd ${.CURDIR}/lib/${_lib} && \
|
.if exists(lib/csu/${MACHINE}.pcc)
|
||||||
${MAKE} ${MK_FLAGS:S/-DNOPIC//} depend && \
|
_csu=lib/csu/${MACHINE}.pcc
|
||||||
${MAKE} ${MK_FLAGS:S/-DNOPIC//} all && \
|
.else
|
||||||
${MAKE} ${MK_FLAGS:S/-DNOPIC//} -B install
|
_csu=lib/csu/${MACHINE}
|
||||||
.endif
|
.endif
|
||||||
.endfor
|
|
||||||
.for _lib in gnu/lib lib usr.bin/lex/lib usr.sbin/pcvt/keycap
|
_libcrypt= lib/libcrypt
|
||||||
|
.if !defined(NOSECURE) && !defined(NOCRYPT)
|
||||||
|
_libcrypt+= secure/lib/libcrypt
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.if defined(WANT_CSRG_LIBM)
|
||||||
|
_libm= lib/libm
|
||||||
|
.else
|
||||||
|
_libm= lib/msun
|
||||||
|
.endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# bootstrap-libraries - build just enough libraries for the bootstrap
|
||||||
|
# tools, and install them under ${WORLDTMP}.
|
||||||
|
#
|
||||||
|
# Build csu and libgcc early so that some tools get linked to the new
|
||||||
|
# versions (too late for the main tools, however). Then build the
|
||||||
|
# necessary prerequisite libraries (libtermcap just needs to be before
|
||||||
|
# libcurses, and this only matters for the NOCLEAN case when NOPIC is
|
||||||
|
# not set).
|
||||||
|
#
|
||||||
|
# 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} gnu/usr.bin/cc/libgcc lib/libtermcap \
|
||||||
|
gnu/lib/libregex lib/libc lib/libcurses lib/libedit ${_libm} \
|
||||||
|
lib/libmd lib/libutil lib/libz usr.bin/lex/lib
|
||||||
.if exists(${.CURDIR}/${_lib})
|
.if exists(${.CURDIR}/${_lib})
|
||||||
cd ${.CURDIR}/${_lib} && \
|
cd ${.CURDIR}/${_lib} && \
|
||||||
${MAKE} ${MK_FLAGS} depend && \
|
${MAKE} ${MK_FLAGS} depend && \
|
||||||
@@ -622,16 +638,28 @@ libraries:
|
|||||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
||||||
.endif
|
.endif
|
||||||
.endfor
|
.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 lib/libcom_err ${_libcrypt} ${_libm} lib/libmytinfo \
|
||||||
|
lib/libncurses lib/libtermcap \
|
||||||
|
gnu/lib gnu/usr.bin/cc/libgcc lib usr.bin/lex/lib usr.sbin/pcvt/keycap
|
||||||
|
.if exists(${.CURDIR}/${_lib})
|
||||||
|
cd ${.CURDIR}/${_lib} && ${MAKE} all && ${MAKE} -B install
|
||||||
|
.endif
|
||||||
|
.endfor
|
||||||
.if exists(${.CURDIR}/secure/lib) && !defined(NOCRYPT) && !defined(NOSECURE)
|
.if exists(${.CURDIR}/secure/lib) && !defined(NOCRYPT) && !defined(NOSECURE)
|
||||||
cd ${.CURDIR}/secure/lib && ${MAKE} ${MK_FLAGS} depend && \
|
cd ${.CURDIR}/secure/lib && ${MAKE} all && ${MAKE} -B install
|
||||||
${MAKE} ${MK_FLAGS} all && \
|
|
||||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
|
||||||
.endif
|
.endif
|
||||||
.if exists(${.CURDIR}/kerberosIV/lib) && !defined(NOCRYPT) && \
|
.if exists(${.CURDIR}/kerberosIV/lib) && !defined(NOCRYPT) && \
|
||||||
defined(MAKE_KERBEROS4)
|
defined(MAKE_KERBEROS4)
|
||||||
cd ${.CURDIR}/kerberosIV/lib && ${MAKE} ${MK_FLAGS} depend && \
|
cd ${.CURDIR}/kerberosIV/lib && ${MAKE} all && ${MAKE} -B install
|
||||||
${MAKE} ${MK_FLAGS} all && \
|
|
||||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
Reference in New Issue
Block a user