HardenedBSD/Makefile.alpha
John Birrell 012f11e8dd With the exception of tools that should come from GNU binutils,
this makefile will bootstrap all libraries and tools needed to build
the system.
1998-02-19 07:25:03 +00:00

547 lines
20 KiB
Makefile

# $Id: Makefile.alpha,v 1.1 1998/01/11 04:46:02 jb Exp $
#
# NOTE:
#
# This is a makefile for use while porting FreeBSD to the Alpha
# architecture. It is based on src/Makefile and is included by
# it rather than filling it with a lot of temporary crud.
#
# To use this Makefile on a NetBSD/Alpha 1.3 system, load the
# entire FreeBSD source tree, or mount /usr/src via NFS. From
# /usr/src type:
#
# make -m /usr/src/share/mk buildworld
#
# and you're away. Don't expect the build to complete. It will fail
# where the porting effort is up to. This will be somewhere in the
# build of the bootstrap libraries that are needed for the second
# set of bootstrap tools. The build will deliberately skip the
# build of libc because that involves considerable porting effort.
# The build will also create symbolic links to several of the GNU
# tools that are currently being ported/imported to FreeBSD.
#
# Warning: This build is not supposed to clobber anything on the
# ======= system you are building on, but you should consider what
# ======= you would do if that happened.
#
SUBDIR = share/info lib bin gnu libexec sbin share sys usr.bin \
usr.sbin secure
OBJDIR = obj
CLEANDIR= cleandir
.MAKEFLAGS:= ${.MAKEFLAGS} -m ${.CURDIR}/share/mk
#
# While building tools for bootstrapping, we dont need to waste time on
# profiled libraries or man pages. This speeds things up somewhat.
#
MK_FLAGS= -DNOINFO -DNOMAN -DNOPROFILE
.if defined(MAKEOBJDIRPREFIX)
WORLDTMP= ${MAKEOBJDIRPREFIX}${.CURDIR}/tmp
.else
WORLDTMP= /usr/obj${.CURDIR}/tmp
.endif
STRICTTMPPATH= ${WORLDTMP}/sbin:${WORLDTMP}/usr/sbin:${WORLDTMP}/bin:${WORLDTMP}/usr/bin
TMPPATH= ${STRICTTMPPATH}:${PATH}
# XXX COMPILER_PATH is needed for finding cc1, ld and as
# XXX GCC_EXEC_PREFIX is for *crt.o. It is probably unnecssary now
# tbat LIBRARY_PATH is set. We still can't use -nostdlib, since gcc
# wouldn't link *crt.o or libgcc if it were used.
# XXX LD_LIBRARY_PATH is for ld.so. It is also used by ld, although we don't
# want that - all compile-time library paths should be resolved by gcc.
# It fails for set[ug]id executables (are any used?).
COMPILER_ENV= BISON_SIMPLE=${WORLDTMP}/usr/share/misc/bison.simple \
COMPILER_PATH=${WORLDTMP}/usr/libexec:${WORLDTMP}/usr/bin \
GCC_EXEC_PREFIX=${WORLDTMP}/usr/lib/ \
LD_LIBRARY_PATH=${WORLDTMP}${SHLIBDIR} \
LIBRARY_PATH=${WORLDTMP}${SHLIBDIR}:${WORLDTMP}/usr/lib
BMAKEENV= PATH=${TMPPATH} ${COMPILER_ENV} NOEXTRADEPEND=t
LMAKEENV= PATH=${TMPPATH} ${COMPILER_ENV} CC='cc -nostdinc' \
MKDEP_CPP='${WORLDTMP}/usr/bin/cc -E -nostdinc'
XMAKEENV= PATH=${STRICTTMPPATH} ${COMPILER_ENV} \
CC='cc -nostdinc' MKDEP_CPP='${WORLDTMP}/usr/bin/cc -nostdinc -E'
# used to compile and install 'make' in temporary build tree
IBMAKE= ${BMAKEENV} ${MAKE} DESTDIR=${WORLDTMP}
# bootstrap make
BMAKE= ${BMAKEENV} ${WORLDTMP}/usr/bin/${MAKE} DESTDIR=${WORLDTMP}
# library make
LMAKE= ${LMAKEENV} ${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}
#
# buildworld
#
# Attempt to rebuild the entire system, with reasonable chance of
# success, regardless of how old your existing system is.
#
buildworld:
@echo " Warning: This build is not supposed to clobber anything on the"
@echo " ======= system you are building on, but you should consider what"
@echo " ======= you would do if that happened."
@echo
@echo " ABORT NOW IF UNSURE!"
@sleep 10
@echo " OK, here we go......"
mkdir -p ${WORLDTMP}
@echo "--------------------------------------------------------------"
@echo " Cleaning up the temporary build tree"
@echo "--------------------------------------------------------------"
chflags -R noschg ${WORLDTMP}/
rm -rf ${WORLDTMP}
@echo
@echo "--------------------------------------------------------------"
@echo " Install the FreeBSD mkdep ('cause the NetBSD one isn't good enough!)"
@echo "--------------------------------------------------------------"
mkdir -p ${WORLDTMP}/usr/bin
@cd ${.CURDIR}/usr.bin/mkdep && \
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} install
@echo
@echo
@echo "--------------------------------------------------------------"
@echo " Making a FreeBSD make using the NetBSD one"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR}/usr.bin/make && \
${IBMAKE} -I${.CURDIR}/share/mk ${CLEANDIR} ${OBJDIR}
@cd ${.CURDIR}/usr.bin/make && \
${IBMAKE} -I${.CURDIR}/share/mk depend && \
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} all && \
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} install && \
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} ${CLEANDIR} ${OBJDIR}
@echo
@echo "--------------------------------------------------------------"
@echo " Making a FreeBSD find which knows the -L argument"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR}/usr.bin/find && \
${IBMAKE} -I${.CURDIR}/share/mk ${CLEANDIR} ${OBJDIR}
@cd ${.CURDIR}/usr.bin/find && \
${IBMAKE} -I${.CURDIR}/share/mk depend && \
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} all && \
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} install && \
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} ${CLEANDIR} ${OBJDIR}
@echo
@echo "--------------------------------------------------------------"
@echo " Making hierarchy like normal"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${BMAKE} hierarchy
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding the obj tree like normal"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${BMAKE} par-obj
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding FreeBSD bootstrap tools using the NetBSD ones"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${BMAKE} bootstrap
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding FreeBSD tools necessary to build the include files"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${BMAKE} include-tools
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding FreeBSD tools needed to build the libraries"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${BMAKE} lib-tools
@echo
@echo "--------------------------------------------------------------"
@echo " AT THIS POINT, THE TEMPORARY TREE IS SUPPOSED TO HAVE ALL"
@echo " THE TOOLS TO BUILD THE ENTIRE FreeBSD TREE USING FreeBSD"
@echo " HEADER FILES"
@echo
@echo " Rebuilding /usr/include"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && SHARED=copies ${BMAKE} includes
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding /usr/lib"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${LMAKE} libraries
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding all other tools needed to build the world"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${LMAKE} build-tools
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding dependencies"
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${XMAKE} par-depend
.if IHAVELOTSOFDISKSPACE
@echo
@echo "--------------------------------------------------------------"
@echo " Building everything.."
@echo "--------------------------------------------------------------"
@cd ${.CURDIR} && ${XMAKE} all && ${XMAKE} install
.else
@echo "Now build specific directories: export DIRS=foo; make dirs"
.endif
dirs:
@echo DIRS = ${DIRS}
.for d in ${DIRS}
cd ${.CURDIR}/$d && ${XMAKE} obj && \
${XMAKE} depend && \
${XMAKE} all && \
${XMAKE} install ${CLEANDIR} ${OBJDIR}
.endfor
#
# ------------------------------------------------------------------------
#
# 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.
#
#
# heirarchy - ensure that all the needed directories are present
#
hierarchy:
cd ${.CURDIR}/etc && ${MAKE} distrib-dirs
#
# bootstrap - [re]build tools needed to run the actual build, this includes
# tools needed by 'make depend', as some tools are needed to generate source
# for the dependency information to be gathered from.
#
bootstrap:
cd ${.CURDIR}/usr.bin/make && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/usr.bin/xinstall && ${MAKE} ${OBJDIR} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/usr.bin/lex && ${MAKE} ${OBJDIR} bootstrap && \
${MAKE} depend && \
${MAKE} ${MK_FLAGS} -DNOLIB all && \
${MAKE} ${MK_FLAGS} -DNOLIB -B install ${CLEANDIR}
cd ${.CURDIR}/usr.bin/lex && ${MAKE} obj
#
# 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:
cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} -B cleandepend depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
#
# 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/libg++ && ${MAKE} beforeinstall
cd ${.CURDIR}/gnu/lib/libdialog && ${MAKE} beforeinstall
cd ${.CURDIR}/gnu/lib/libgmp && ${MAKE} beforeinstall
.if exists(secure) && !defined(NOCRYPT)
cd ${.CURDIR}/secure/lib/libdes && ${MAKE} beforeinstall
.endif
.if exists(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})
cd ${.CURDIR}/lib/csu/${MACHINE} && ${MAKE} beforeinstall
.endif
cd ${.CURDIR}/lib/libalias && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libdisk && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libftpio && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libmd && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libmytinfo && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libncurses && ${MAKE} beforeinstall
.if !defined(WANT_CSRG_LIBM)
cd ${.CURDIR}/lib/msun && ${MAKE} beforeinstall
.endif
cd ${.CURDIR}/lib/libopie && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libpcap && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libskey && ${MAKE} beforeinstall
.if !defined(NOTCL) && exists (${.CURDIR}/contrib/tcl) && \
exists(${.CURDIR}/usr.bin/tclsh) && exists (${.CURDIR}/lib/libtcl)
cd ${.CURDIR}/lib/libtcl && ${MAKE} installhdrs
.endif
cd ${.CURDIR}/lib/libtermcap && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libcom_err && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libss && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libscsi && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libutil && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libvgl && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libz && ${MAKE} beforeinstall
cd ${.CURDIR}/usr.bin/f2c && ${MAKE} beforeinstall
cd ${.CURDIR}/usr.bin/lex && ${MAKE} beforeinstall
#
# lib-tools - build tools to compile and install the libraries.
#
# XXX gperf is required for cc
# XXX a new ld and tsort is required for cc
lib-tools:
@echo "--------------------------------------------------------------"
@echo " Link to GNU binutils we haven't imported yet..."
@echo "--------------------------------------------------------------"
@-rm -f ${WORLDTMP}/usr/bin/ld
@-rm -f ${WORLDTMP}/usr/bin/as
@-rm -f ${WORLDTMP}/usr/bin/nm
@-rm -f ${WORLDTMP}/usr/bin/ranlib
@-rm -f ${WORLDTMP}/usr/bin/ar
@-rm -f ${WORLDTMP}/usr/bin/tsort
@-rm -f ${WORLDTMP}/usr/bin/lorder
@-rm -f ${WORLDTMP}/usr/bin/groff
@-rm -f ${WORLDTMP}/usr/bin/troff
@-rm -f ${WORLDTMP}/usr/bin/grotty
@-rm -f ${WORLDTMP}/usr/bin/pic
@-rm -f ${WORLDTMP}/usr/bin/tbl
ln -s /usr/local/bin/as ${WORLDTMP}/usr/bin/as
ln -s /usr/local/bin/nm ${WORLDTMP}/usr/bin/nm
ln -s /usr/local/bin/ranlib ${WORLDTMP}/usr/bin/ranlib
ln -s /usr/local/bin/ar ${WORLDTMP}/usr/bin/ar
ln -s /usr/bin/lorder ${WORLDTMP}/usr/bin/lorder
ln -s /usr/bin/tsort ${WORLDTMP}/usr/bin/tsort
ln -s /usr/bin/groff ${WORLDTMP}/usr/bin/groff
ln -s /usr/bin/troff ${WORLDTMP}/usr/bin/troff
ln -s /usr/bin/grotty ${WORLDTMP}/usr/bin/grotty
ln -s /usr/bin/pic ${WORLDTMP}/usr/bin/pic
ln -s /usr/bin/tbl ${WORLDTMP}/usr/bin/tbl
.if ${MACHINE} == "alpha"
ln -s /usr/local/bin/ld ${WORLDTMP}/usr/bin/ld
.else
cd ${.CURDIR}/gnu/usr.bin/ld && ${MAKE} obj depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.for d in \
gnu/usr.bin/gperf \
gnu/usr.bin/bison \
gnu/usr.bin/cc \
usr.bin/compile_et \
usr.bin/lex/lib \
usr.bin/mk_cmds \
usr.bin/uudecode
cd ${.CURDIR}/$d && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endfor
#
# libraries - build and install the libraries
#
libraries:
.if exists(lib/csu/${MACHINE})
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib/csu/${MACHINE}"
@cd ${.CURDIR}/lib/csu/${MACHINE} && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib/libc"
@cd ${.CURDIR}/lib/libc && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.if exists(lib/libcompat)
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib/libcompat"
@cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib/libutil)
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib/libutil"
@cd ${.CURDIR}/lib/libutil && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib/libmytinfo)
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib/libmytinfo"
@cd ${.CURDIR}/lib/libmytinfo && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib/libncurses)
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib/libncurses"
@cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib/libtermcap)
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib/libtermcap"
@cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(gnu)
@echo "-----------------------"
@echo "Making ${.CURDIR}/gnu/lib"
@cd ${.CURDIR}/gnu/lib && ${MAKE} ${CLEANDIR} ${OBJDIR} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
@echo "-----------------------"
@echo "Making ${.CURDIR}/secure/lib"
@cd ${.CURDIR}/secure/lib && ${MAKE} ${OBJDIR} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(lib)
@echo "-----------------------"
@echo "Making ${.CURDIR}/lib"
@cd ${.CURDIR}/lib && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(usr.bin/lex/lib)
@echo "-----------------------"
@echo "Making ${.CURDIR}/usr.bin/lex/lib"
@cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(kerberosIV) && !defined(NOCRYPT) && defined(MAKE_KERBEROS4)
@echo "-----------------------"
@echo "Making ${.CURDIR}/kerberosIV/lib"
@cd ${.CURDIR}/kerberosIV/lib && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
.if exists(usr.sbin/pcvt/keycap)
@echo "-----------------------"
@echo "Making ${.CURDIR}/usr.sbin/pcvt/keycap"
@cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endif
#
# build-tools - build and install any other tools needed to complete the
# compile and install.
# ifdef stale
# bc and cpp are required to build groff. Otherwise, the order here is
# mostly historical, i.e., bogus.
# chmod is used to build gcc's tmpmultilib[2] at obscure times.
# endif stale
# XXX uname is a bug - the target should not depend on the host.
#
# gnu/usr.bin/awk
# gnu/usr.bin/groff
# bin/sh
# usr.bin/size
# usr.bin/strip
# usr.bin/symorder
build-tools:
@-rm -f ${WORLDTMP}/usr/bin/awk
@-rm -f ${WORLDTMP}/bin/sh
ln -s /usr/bin/awk ${WORLDTMP}/usr/bin/awk
ln -s /bin/sh ${WORLDTMP}/bin/sh
.for d in \
bin/cat \
bin/chmod \
bin/cp \
bin/date \
bin/dd \
bin/echo \
bin/expr \
bin/hostname \
bin/ln \
bin/ls \
bin/mkdir \
bin/mv \
bin/rm \
bin/test \
share/info \
usr.bin/basename \
usr.bin/cap_mkdb \
usr.bin/chflags \
usr.bin/cmp \
usr.bin/col \
usr.bin/cpp \
usr.bin/expand \
usr.bin/file2c \
usr.bin/find \
usr.bin/gencat \
usr.bin/m4 \
usr.bin/mkdep \
usr.bin/paste \
usr.bin/printf \
usr.bin/sed \
usr.bin/soelim \
usr.bin/touch \
usr.bin/tr \
usr.bin/true \
usr.bin/uname \
usr.bin/uuencode \
usr.bin/vgrind \
usr.bin/vi \
usr.bin/wc \
usr.bin/yacc \
usr.sbin/chown \
usr.sbin/mtree \
usr.sbin/zic \
gnu/usr.bin/grep \
gnu/usr.bin/gzip \
gnu/usr.bin/sort \
gnu/usr.bin/texinfo
@echo "---------------------------"
@echo "Making ${.CURDIR}/$d"
@cd ${.CURDIR}/$d && ${MAKE} ${CLEANDIR} ${OBJDIR} && \
${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
.endfor
.for __target in clean cleandir obj depend
.for entry in ${SUBDIR}
${entry}.${__target}__D: .PHONY
if test -d ${.CURDIR}/${entry}.${MACHINE}; then \
${ECHODIR} "===> ${DIRPRFX}${entry}.${MACHINE}"; \
edir=${entry}.${MACHINE}; \
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