With the exception of tools that should come from GNU binutils,

this makefile will bootstrap all libraries and tools needed to build
the system.
This commit is contained in:
John Birrell 1998-02-19 07:25:03 +00:00
parent d4060348f4
commit 012f11e8dd

View file

@ -1,4 +1,4 @@
# $Id$
# $Id: Makefile.alpha,v 1.1 1998/01/11 04:46:02 jb Exp $
#
# NOTE:
#
@ -24,10 +24,13 @@
# ======= 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
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
#
@ -59,9 +62,9 @@ COMPILER_ENV= BISON_SIMPLE=${WORLDTMP}/usr/share/misc/bison.simple \
BMAKEENV= PATH=${TMPPATH} ${COMPILER_ENV} NOEXTRADEPEND=t
LMAKEENV= PATH=${TMPPATH} ${COMPILER_ENV} CC='cc -nostdinc' \
MKDEP_CPP='cc -E -nostdinc'
MKDEP_CPP='${WORLDTMP}/usr/bin/cc -E -nostdinc'
XMAKEENV= PATH=${STRICTTMPPATH} ${COMPILER_ENV} \
CC='cc -nostdinc' MKDEP_CPP='cc -nostdinc -E'
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}
@ -88,10 +91,10 @@ buildworld:
@echo " ABORT NOW IF UNSURE!"
@sleep 10
@echo " OK, here we go......"
mkdir -p ${WORLDTMP}
@echo "--------------------------------------------------------------"
@echo " Cleaning up the temporary build tree"
@echo "--------------------------------------------------------------"
mkdir -p ${WORLDTMP}
chflags -R noschg ${WORLDTMP}/
rm -rf ${WORLDTMP}
@echo
@ -99,56 +102,56 @@ buildworld:
@echo " Install the FreeBSD mkdep ('cause the NetBSD one isn't good enough!)"
@echo "--------------------------------------------------------------"
mkdir -p ${WORLDTMP}/usr/bin
cd ${.CURDIR}/usr.bin/mkdep && \
@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 && \
@cd ${.CURDIR}/usr.bin/make && \
${IBMAKE} -I${.CURDIR}/share/mk ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/usr.bin/make && \
@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} clean cleandepend
${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 && \
@cd ${.CURDIR}/usr.bin/find && \
${IBMAKE} -I${.CURDIR}/share/mk ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/usr.bin/find && \
@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} clean cleandepend
${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} ${CLEANDIR} ${OBJDIR}
@echo
@echo "--------------------------------------------------------------"
@echo " Making hierarchy like normal"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${BMAKE} hierarchy
@cd ${.CURDIR} && ${BMAKE} hierarchy
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding the obj tree like normal"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${BMAKE} par-obj
@cd ${.CURDIR} && ${BMAKE} par-obj
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding FreeBSD bootstrap tools using the NetBSD ones"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${BMAKE} bootstrap
@cd ${.CURDIR} && ${BMAKE} bootstrap
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding FreeBSD tools necessary to build the include files"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${BMAKE} include-tools
@cd ${.CURDIR} && ${BMAKE} include-tools
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding FreeBSD tools needed to build the libraries"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${BMAKE} lib-tools
@cd ${.CURDIR} && ${BMAKE} lib-tools
@echo
@echo "--------------------------------------------------------------"
@echo " AT THIS POINT, THE TEMPORARY TREE IS SUPPOSED TO HAVE ALL"
@ -157,27 +160,41 @@ buildworld:
@echo
@echo " Rebuilding /usr/include"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && SHARED=copies ${BMAKE} includes
@cd ${.CURDIR} && SHARED=copies ${BMAKE} includes
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding /usr/lib"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${LMAKE} libraries
@cd ${.CURDIR} && ${LMAKE} libraries
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding all other tools needed to build the world"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${LMAKE} build-tools
@cd ${.CURDIR} && ${LMAKE} build-tools
@echo
@echo "--------------------------------------------------------------"
@echo " Rebuilding dependencies"
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${XMAKE} par-depend
@cd ${.CURDIR} && ${XMAKE} par-depend
.if IHAVELOTSOFDISKSPACE
@echo
@echo "--------------------------------------------------------------"
@echo " Building everything.."
@echo "--------------------------------------------------------------"
cd ${.CURDIR} && ${XMAKE} all
@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
#
# ------------------------------------------------------------------------
@ -205,10 +222,11 @@ 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} depend && \
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} bootstrap && ${MAKE} depend && \
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
@ -291,29 +309,44 @@ includes:
#
# XXX gperf is required for cc
# XXX a new ld and tsort is required for cc
# gnu/usr.bin/ld
# gnu/usr.bin/as
# gnu/usr.bin/cc
lib-tools:
cd ${.CURDIR}/lib/csu/alpha && ${MAKE} depend && \
${MAKE} ${MK_FLAGS} all && \
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
@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/g++
@-rm -f ${WORLDTMP}/usr/bin/nm
@-rm -f ${WORLDTMP}/usr/bin/ranlib
ln -s /usr/local/bin/ld ${WORLDTMP}/usr/bin/ld
ln -s /usr/local/bin/as ${WORLDTMP}/usr/bin/as
ln -s /usr/local/bin/g++ ${WORLDTMP}/usr/bin/g++
ln -s /usr/local/bin/nm ${WORLDTMP}/usr/bin/nm
ln -s /usr/local/bin/ranlib ${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 \
usr.bin/tsort \
gnu/usr.bin/bison \
gnu/usr.bin/cc \
usr.bin/ar \
usr.bin/compile_et \
usr.bin/lex/lib \
usr.bin/mk_cmds \
@ -328,60 +361,91 @@ lib-tools:
#
libraries:
.if exists(lib/csu/${MACHINE})
cd ${.CURDIR}/lib/csu/${MACHINE} && ${MAKE} depend && \
@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
cd ${.CURDIR}/lib/libc && ${MAKE} depend && \
@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)
cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
@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)
cd ${.CURDIR}/lib/libmytinfo && ${MAKE} depend && \
@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)
cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
@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)
cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
@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)
cd ${.CURDIR}/gnu/lib && ${MAKE} depend && \
@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)
cd ${.CURDIR}/secure/lib && ${MAKE} depend && \
@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)
cd ${.CURDIR}/lib && ${MAKE} depend && \
@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)
cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
@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)
cd ${.CURDIR}/kerberosIV/lib && ${MAKE} depend && \
@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)
cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
@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
@ -396,64 +460,69 @@ libraries:
# 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:
.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/sh \
bin/test \
gnu/usr.bin/awk \
gnu/usr.bin/bc \
gnu/usr.bin/grep \
gnu/usr.bin/groff \
gnu/usr.bin/gzip \
gnu/usr.bin/man/makewhatis \
gnu/usr.bin/sort \
gnu/usr.bin/texinfo \
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/lorder \
usr.bin/m4 \
usr.bin/mkdep \
usr.bin/paste \
usr.bin/sed \
usr.bin/size \
usr.bin/soelim \
usr.bin/strip \
usr.bin/symorder \
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
cd ${.CURDIR}/$d && ${MAKE} depend && \
@-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