10058a4f2b
non-root cross-building. o Makefile.inc0 is not used anymore. o The legacy aout build has been removed. o Selectively build tools *before* building includes/libraries. o Avoid using mtree to populate the obj tree.
511 lines
16 KiB
Makefile
511 lines
16 KiB
Makefile
#
|
|
# $FreeBSD$
|
|
#
|
|
# Make command line options:
|
|
# -DMAKE_KERBEROS4 to build KerberosIV
|
|
# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
|
|
# -DNOCLEAN do not clean at all
|
|
# -DNOCRYPT will prevent building of crypt versions
|
|
# -DNOPROFILE do not build profiled libraries
|
|
# -DNOSECURE do not go into secure subdir
|
|
# -DNOGAMES do not go into games subdir
|
|
# -DNOSHARE do not go into share subdir
|
|
# -DNOINFO do not make or install info files
|
|
# -DNOLIBC_R do not build libc_r.
|
|
# -DNO_FORTRAN do not build g77 and related libraries.
|
|
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
|
|
|
|
#
|
|
# The intended user-driven targets are:
|
|
# buildworld - rebuild *everything*, including glue to help do upgrades
|
|
# installworld- install everything built by "buildworld"
|
|
# update - convenient way to update your source tree (eg: sup/cvs)
|
|
# most - build user commands, no libraries or include files
|
|
# installmost - install user commands, no libraries or include files
|
|
#
|
|
# Standard targets (not defined here) are documented in the makefiles in
|
|
# /usr/share/mk. These include:
|
|
# obj depend all install clean cleandepend cleanobj
|
|
|
|
# Put initial settings here.
|
|
SUBDIR=
|
|
|
|
# We must do share/info early so that installation of info `dir'
|
|
# entries works correctly. Do it first since it is less likely to
|
|
# grow dependencies on include and lib than vice versa.
|
|
.if exists(${.CURDIR}/share/info)
|
|
SUBDIR+= share/info
|
|
.endif
|
|
|
|
# We must do include and lib early so that the perl *.ph generation
|
|
# works correctly as it uses the header files installed by this.
|
|
.if exists(${.CURDIR}/include)
|
|
SUBDIR+= include
|
|
.endif
|
|
.if exists(${.CURDIR}/lib)
|
|
SUBDIR+= lib
|
|
.endif
|
|
|
|
.if exists(${.CURDIR}/bin)
|
|
SUBDIR+= bin
|
|
.endif
|
|
.if exists(${.CURDIR}/games) && !defined(NOGAMES)
|
|
SUBDIR+= games
|
|
.endif
|
|
.if exists(${.CURDIR}/gnu)
|
|
SUBDIR+= gnu
|
|
.endif
|
|
.if exists(${.CURDIR}/kerberosIV) && exists(${.CURDIR}/crypto) && \
|
|
!defined(NOCRYPT) && defined(MAKE_KERBEROS4)
|
|
SUBDIR+= kerberosIV
|
|
.endif
|
|
.if exists(${.CURDIR}/libexec)
|
|
SUBDIR+= libexec
|
|
.endif
|
|
.if exists(${.CURDIR}/sbin)
|
|
SUBDIR+= sbin
|
|
.endif
|
|
.if exists(${.CURDIR}/share) && !defined(NOSHARE)
|
|
SUBDIR+= share
|
|
.endif
|
|
.if exists(${.CURDIR}/sys)
|
|
SUBDIR+= sys
|
|
.endif
|
|
.if exists(${.CURDIR}/usr.bin)
|
|
SUBDIR+= usr.bin
|
|
.endif
|
|
.if exists(${.CURDIR}/usr.sbin)
|
|
SUBDIR+= usr.sbin
|
|
.endif
|
|
.if exists(${.CURDIR}/secure) && !defined(NOCRYPT) && !defined(NOSECURE)
|
|
SUBDIR+= secure
|
|
.endif
|
|
|
|
# etc must be last for "distribute" to work
|
|
.if exists(${.CURDIR}/etc)
|
|
SUBDIR+= etc
|
|
.endif
|
|
|
|
# These are last, since it is nice to at least get the base system
|
|
# rebuilt before you do them.
|
|
.if defined(LOCAL_DIRS)
|
|
.for _DIR in ${LOCAL_DIRS}
|
|
.if exists(${.CURDIR}/${_DIR}) & exists(${.CURDIR}/${_DIR}/Makefile)
|
|
SUBDIR+= ${_DIR}
|
|
.endif
|
|
.endfor
|
|
.endif
|
|
|
|
.if defined(NOCLEANDIR)
|
|
CLEANDIR= clean cleandepend
|
|
.else
|
|
CLEANDIR= cleandir
|
|
.endif
|
|
|
|
SUP?= cvsup
|
|
SUPFLAGS?= -g -L 2 -P -
|
|
|
|
#
|
|
# Define the location of the temporary installation directory. Note that
|
|
# MAKEOBJDIRPREFIX normally isn't defined so if the current directory is
|
|
# /usr/src, then the world temporary directory is /usr/obj/usr/src/tmp.
|
|
#
|
|
# During the transition from aout to elf format on i386, MAKEOBJDIRPREFIX
|
|
# is set by the parent makefile (Makefile.inc0) to be /usr/obj/${OBJFORMAT}
|
|
# in order to keep aout and elf format files apart.
|
|
#
|
|
.if defined(MAKEOBJDIRPREFIX)
|
|
WORLDTMP= ${MAKEOBJDIRPREFIX}${.CURDIR}/tmp
|
|
.else
|
|
WORLDTMP= /usr/obj${.CURDIR}/tmp
|
|
.endif
|
|
|
|
STRICTTMPPATH= ${WORLDTMP}/bin:${WORLDTMP}/usr/bin
|
|
TMPPATH= ${STRICTTMPPATH}:${PATH}
|
|
|
|
BUILD_ARCH!= sysctl -n hw.machine_arch
|
|
|
|
BMAKEENV= INSTALL="sh ${.CURDIR}/tools/install.sh" \
|
|
TARGET_ARCH=${MACHINE_ARCH} \
|
|
MACHINE_ARCH=${BUILD_ARCH} \
|
|
PATH=${TMPPATH}
|
|
|
|
XMAKEENV= COMPILER_PATH=${WORLDTMP}/usr/libexec:${WORLDTMP}/usr/bin \
|
|
LIBRARY_PATH=${WORLDTMP}${SHLIBDIR}:${WORLDTMP}/usr/lib \
|
|
OBJFORMAT_PATH=${WORLDTMP}/usr/libexec \
|
|
CFLAGS="-nostdinc ${CFLAGS}" \
|
|
PERL5LIB=${DESTDIR}/usr/libdata/perl/5.00503 \
|
|
PATH=${TMPPATH}
|
|
|
|
# bootstrap make
|
|
BMAKE= ${BMAKEENV} ${MAKE} DESTDIR=${WORLDTMP} -DNOMAN -DNOINFO
|
|
# cross make used for compilation
|
|
XMAKE= ${XMAKEENV} ${MAKE} DESTDIR=${WORLDTMP} \
|
|
INSTALL="sh ${.CURDIR}/tools/install.sh"
|
|
|
|
# cross make used for final installation
|
|
IXMAKE= ${XMAKEENV} ${MAKE}
|
|
|
|
#
|
|
# buildworld
|
|
#
|
|
# Attempt to rebuild the entire system, with reasonable chance of
|
|
# success, regardless of how old your existing system is.
|
|
#
|
|
USRDIRS= usr/bin usr/lib/compat usr/games usr/libdata/ldscripts \
|
|
usr/libexec/${OBJFORMAT} usr/share/misc
|
|
|
|
INCDIRS= arpa cam/scsi g++/std isofs/cd9660 machine msdosfs net \
|
|
netatalk netatm netgraph netinet netinet6 netipx netkey \
|
|
netncp netns nfs ntfs nwfs objc pccard posix4 protocols \
|
|
readline rpc rpcsvc security ss sys ufs/ffs ufs/mfs ufs/ufs vm
|
|
|
|
buildworld:
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Cleaning up the temporary build tree"
|
|
@echo "--------------------------------------------------------------"
|
|
rm -rf ${WORLDTMP}
|
|
.for _dir in ${USRDIRS}
|
|
mkdir -p ${WORLDTMP}/${_dir}
|
|
.endfor
|
|
.for _dir in ${INCDIRS}
|
|
mkdir -p ${WORLDTMP}/usr/include/${_dir}
|
|
.endfor
|
|
.if !defined(NOCLEAN)
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Cleaning up the object tree"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 ${CLEANDIR:S/^/par-/}
|
|
.endif
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Rebuilding the object tree"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 par-obj
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Rebuilding tools"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 -DNOINFO -DNOMAN tools
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Rebuilding ${DESTDIR}/usr/include"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${XMAKE} -f Makefile.inc1 includes
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Rebuilding dependencies"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${XMAKE} -f Makefile.inc1 par-depend
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Building libraries"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${XMAKE} -DNOINFO -DNOMAN -f Makefile.inc1 libraries
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Building everything.."
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${XMAKE} -f Makefile.inc1 all
|
|
|
|
everything:
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Building everything.."
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${XMAKE} -f Makefile.inc1 all
|
|
|
|
#
|
|
# installworld
|
|
#
|
|
# Installs everything compiled by a 'buildworld'.
|
|
#
|
|
installworld:
|
|
cd ${.CURDIR}; ${IXMAKE} -f Makefile.inc1 reinstall
|
|
|
|
#
|
|
# reinstall
|
|
#
|
|
# If you have a build server, you can NFS mount the source and obj directories
|
|
# and do a 'make reinstall' on the *client* to install new binaries from the
|
|
# most recent server build.
|
|
#
|
|
reinstall:
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Making hierarchy"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 hierarchy
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Installing everything.."
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install
|
|
.if !defined(NOMAN)
|
|
@echo
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Rebuilding man page indices"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}/share/man; ${MAKE} makedb
|
|
.endif
|
|
|
|
#
|
|
# update
|
|
#
|
|
# Update the source tree, by running sup and/or running cvs to update to the
|
|
# latest copy.
|
|
#
|
|
update:
|
|
.if defined(SUP_UPDATE)
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Running ${SUP}"
|
|
@echo "--------------------------------------------------------------"
|
|
@${SUP} ${SUPFLAGS} ${SUPFILE}
|
|
.if defined(SUPFILE1)
|
|
@${SUP} ${SUPFLAGS} ${SUPFILE1}
|
|
.endif
|
|
.if defined(SUPFILE2)
|
|
@${SUP} ${SUPFLAGS} ${SUPFILE2}
|
|
.endif
|
|
.if defined(PORTSSUPFILE)
|
|
@${SUP} ${SUPFLAGS} ${PORTSSUPFILE}
|
|
.endif
|
|
.endif
|
|
.if defined(CVS_UPDATE)
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Updating ${.CURDIR} from cvs repository" ${CVSROOT}
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}; cvs -q update -P -d
|
|
.endif
|
|
|
|
#
|
|
# most
|
|
#
|
|
# Build most of the user binaries on the existing system libs and includes.
|
|
#
|
|
most:
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Building programs only"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}/bin; ${MAKE} all
|
|
cd ${.CURDIR}/sbin; ${MAKE} all
|
|
cd ${.CURDIR}/libexec; ${MAKE} all
|
|
cd ${.CURDIR}/usr.bin; ${MAKE} all
|
|
cd ${.CURDIR}/usr.sbin; ${MAKE} all
|
|
cd ${.CURDIR}/gnu/libexec; ${MAKE} all
|
|
cd ${.CURDIR}/gnu/usr.bin; ${MAKE} all
|
|
cd ${.CURDIR}/gnu/usr.sbin; ${MAKE} all
|
|
#.if defined(MAKE_KERBEROS4) && !defined(NOCRYPT)
|
|
# cd ${.CURDIR}/kerberosIV; ${MAKE} most
|
|
#.endif
|
|
#.if !defined(NOSECURE) && !defined(NOCRYPT)
|
|
# cd ${.CURDIR}/secure; ${MAKE} most
|
|
#.endif
|
|
|
|
#
|
|
# installmost
|
|
#
|
|
# Install the binaries built by the 'most' target. This does not include
|
|
# libraries or include files.
|
|
#
|
|
installmost:
|
|
@echo "--------------------------------------------------------------"
|
|
@echo ">>> Installing programs only"
|
|
@echo "--------------------------------------------------------------"
|
|
cd ${.CURDIR}/bin; ${MAKE} install
|
|
cd ${.CURDIR}/sbin; ${MAKE} install
|
|
cd ${.CURDIR}/libexec; ${MAKE} install
|
|
cd ${.CURDIR}/usr.bin; ${MAKE} install
|
|
cd ${.CURDIR}/usr.sbin; ${MAKE} install
|
|
cd ${.CURDIR}/gnu/libexec; ${MAKE} install
|
|
cd ${.CURDIR}/gnu/usr.bin; ${MAKE} install
|
|
cd ${.CURDIR}/gnu/usr.sbin; ${MAKE} install
|
|
#.if defined(MAKE_KERBEROS4) && !defined(NOCRYPT)
|
|
# cd ${.CURDIR}/kerberosIV; ${MAKE} installmost
|
|
#.endif
|
|
#.if !defined(NOSECURE) && !defined(NOCRYPT)
|
|
# cd ${.CURDIR}/secure; ${MAKE} installmost
|
|
#.endif
|
|
|
|
#
|
|
# ------------------------------------------------------------------------
|
|
#
|
|
# From here onwards are utility targets used by the 'make world' and
|
|
# related targets. If your 'world' breaks, you may like to try to fix
|
|
# the problem and manually run the following targets to attempt to
|
|
# complete the build. Beware, this is *not* guaranteed to work, you
|
|
# need to have a pretty good grip on the current state of the system
|
|
# to attempt to manually finish it. If in doubt, 'make world' again.
|
|
#
|
|
|
|
#
|
|
# tools - Build tools needed to run the actual build.
|
|
#
|
|
tools:
|
|
.for _tool in games/fortune/strfile gnu/usr.bin/binutils usr.bin/objformat \
|
|
usr.bin/yacc gnu/usr.bin/bison gnu/usr.bin/cc
|
|
cd ${.CURDIR}/${_tool}; \
|
|
${MAKE} depend; \
|
|
${MAKE} all; \
|
|
${MAKE} install; \
|
|
${MAKE} cleandir; \
|
|
${MAKE} obj
|
|
.endfor
|
|
|
|
#
|
|
# hierarchy - ensure that all the needed directories are present
|
|
#
|
|
hierarchy:
|
|
cd ${.CURDIR}/etc; ${MAKE} distrib-dirs
|
|
|
|
#
|
|
# includes - possibly generate and install the include files.
|
|
#
|
|
includes:
|
|
cd ${.CURDIR}/include; ${MAKE} -B all install
|
|
cd ${.CURDIR}/gnu/include; ${MAKE} install
|
|
cd ${.CURDIR}/gnu/lib/libmp; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/gnu/lib/libobjc; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/gnu/lib/libreadline; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/gnu/lib/libregex; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/gnu/lib/libstdc++; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/gnu/lib/libdialog; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/gnu/lib/libgmp; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/gnu/usr.bin/cc/cc1plus; ${MAKE} beforeinstall
|
|
.if exists(${.CURDIR}/secure) && !defined(NOCRYPT)
|
|
cd ${.CURDIR}/secure/lib/libdes; ${MAKE} beforeinstall
|
|
.endif
|
|
.if exists(${.CURDIR}/kerberosIV) && !defined(NOCRYPT) && \
|
|
defined(MAKE_KERBEROS4)
|
|
cd ${.CURDIR}/kerberosIV/lib/libacl; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/kerberosIV/lib/libkadm; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/kerberosIV/lib/libkafs; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/kerberosIV/lib/libkdb; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/kerberosIV/lib/libkrb; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/kerberosIV/lib/libtelnet; ${MAKE} beforeinstall
|
|
.else
|
|
cd ${.CURDIR}/lib/libtelnet; ${MAKE} beforeinstall
|
|
.endif
|
|
.if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH})
|
|
cd ${.CURDIR}/lib/csu/${MACHINE_ARCH}; ${MAKE} beforeinstall
|
|
.endif
|
|
cd ${.CURDIR}/lib/libalias; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libatm; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libdevstat; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libc; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libcalendar; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libcam; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libdisk; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libedit; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libftpio; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libkvm; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libmd; ${MAKE} beforeinstall
|
|
.if !defined(WANT_CSRG_LIBM)
|
|
cd ${.CURDIR}/lib/msun; ${MAKE} beforeinstall
|
|
.endif
|
|
cd ${.CURDIR}/lib/libncp; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libncurses; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libnetgraph; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libopie; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libpam/libpam; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libpcap; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libradius; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/librpcsvc; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libskey; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libstand; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libtacplus; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libcom_err; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libss; ${MAKE} -B hdrs beforeinstall
|
|
cd ${.CURDIR}/lib/libutil; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libvgl; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libwrap; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/lib/libz; ${MAKE} beforeinstall
|
|
cd ${.CURDIR}/usr.bin/lex; ${MAKE} beforeinstall
|
|
|
|
#
|
|
# libraries - build all libraries, and install them under ${DESTDIR}.
|
|
#
|
|
# The following dependencies exist between the libraries:
|
|
#
|
|
# lib*: csu
|
|
# libatm: libmd
|
|
# libcrypt: libmd
|
|
# libdialog: 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/libncurses
|
|
# kerberosIV/lib: lib/libcrypt
|
|
# lib/libpam: secure/lib/libdes kerberosIV/lib/libkrb gnu/lib/libgcc
|
|
# secure/lib: lib/libmd
|
|
#
|
|
.if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}.pcc)
|
|
_csu= lib/csu/${MACHINE_ARCH}.pcc
|
|
.elif ${MACHINE_ARCH} == "i386" && ${OBJFORMAT} == "elf"
|
|
_csu= lib/csu/i386-elf
|
|
.else
|
|
_csu= lib/csu/${MACHINE_ARCH}
|
|
.endif
|
|
|
|
.if !defined(NOSECURE) && !defined(NOCRYPT)
|
|
_secure_lib= secure/lib
|
|
.endif
|
|
|
|
.if !defined(NOCRYPT) && defined(MAKE_KERBEROS4)
|
|
_kerberosIV_lib= kerberosIV/lib
|
|
.endif
|
|
|
|
.if defined(WANT_CSRG_LIBM)
|
|
_libm= lib/libm
|
|
.else
|
|
_libm= lib/msun
|
|
.endif
|
|
|
|
.if !defined(NOPERL)
|
|
_libperl= gnu/usr.bin/perl/libperl
|
|
.endif
|
|
|
|
libraries:
|
|
.for _lib in ${_csu} lib/libmd lib/libcrypt ${_secure_lib} ${_kerberosIV_lib} \
|
|
gnu/lib/libgcc lib/libcom_err ${_libm} 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} depend; \
|
|
${MAKE} all; \
|
|
${MAKE} install
|
|
.endif
|
|
.endfor
|
|
|
|
.for __target in clean cleandepend cleandir depend obj
|
|
.for entry in ${SUBDIR}
|
|
${entry}.${__target}__D: .PHONY
|
|
@if test -d ${.CURDIR}/${entry}.${MACHINE_ARCH}; then \
|
|
${ECHODIR} "===> ${DIRPRFX}${entry}.${MACHINE_ARCH}"; \
|
|
edir=${entry}.${MACHINE_ARCH}; \
|
|
cd ${.CURDIR}/$${edir}; \
|
|
else \
|
|
${ECHODIR} "===> ${DIRPRFX}${entry}"; \
|
|
edir=${entry}; \
|
|
cd ${.CURDIR}/$${edir}; \
|
|
fi; \
|
|
${MAKE} ${__target} DIRPRFX=${DIRPRFX}$${edir}/
|
|
.endfor
|
|
par-${__target}: ${SUBDIR:S/$/.${__target}__D/}
|
|
.endfor
|
|
|
|
.include <bsd.subdir.mk>
|