Makefile revision 1.50
1# $NetBSD: Makefile,v 1.50 2006/01/04 15:11:07 apb Exp $ 2 3# The `all' target must appear before bsd.own.mk is pulled in. 4all: 5 @echo "Please understand what you are doing, first." 6 @false 7 8.include <bsd.own.mk> 9.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib" 10 11SETSCMD= cd ${.CURDIR} && \ 12 DESTDIR=${DESTDIR:Q} \ 13 MACHINE=${MACHINE:Q} MACHINE_ARCH=${MACHINE_ARCH:Q} \ 14 CKSUM=${TOOL_CKSUM:Q} \ 15 DB=${TOOL_DB:Q} \ 16 HOST_SH=${HOST_SH:Q} \ 17 MAKE=${MAKE:Q} \ 18 MKTEMP=${TOOL_MKTEMP:Q} \ 19 MTREE=${TOOL_MTREE:Q} \ 20 PAX=${TOOL_PAX:Q} \ 21 TSORT=${TSORT:Q} \ 22 ${HOST_SH} 23 24.if ${MKX11} != "no" 25MAKEFLIST_FLAGS= -b 26MAKESRCTARS_FLAGS= -x ${X11SRCDIR} -N ${NETBSDSRCDIR}/etc 27.else 28MAKEFLIST_FLAGS= 29MAKESRCTARS_FLAGS= -N ${NETBSDSRCDIR}/etc 30.endif 31 32.if !defined(MAKETARSETS) 33MAKETARSETS!= ${SETSCMD} ./makeflist -l ${MAKEFLIST_FLAGS} 34.endif 35 36print_have_gcc3: .PHONY 37 @echo ${HAVE_GCC3} 38 39print_machine: .PHONY 40 @echo ${MACHINE} 41 42print_machine_arch: .PHONY 43 @echo ${MACHINE_ARCH} 44 45print_machine_cpu: .PHONY 46 @echo ${MACHINE_CPU} 47 48print_object_fmt: .PHONY 49 @echo ${OBJECT_FMT} 50 51print_toolchain_missing: .PHONY 52 @echo "${TOOLCHAIN_MISSING}" 53 54print_use_tools_toolchain: .PHONY 55 @echo "${USE_TOOLS_TOOLCHAIN}" 56 57print_x11_version: .PHONY 58 ${HOST_SH} -c '. ${.CURDIR}/sets.subr; echo $$x11_version' 59 60# This target has debugging value only, really. 61makeflist: .PHONY .PRECIOUS check_DESTDIR 62 ${SETSCMD} ./makeflist ${MAKEFLIST_FLAGS} 63 64# 65# SET BUILDING TARGETS 66# 67 68TARDIR= ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets 69SOURCETARDIR= ${RELEASEDIR}/source/sets 70 71.if ${MKUNPRIVED} == "no" 72METALOG.unpriv= 73METALOG.sanitised.unpriv= 74.else 75METALOG.unpriv= -M ${METALOG} 76METALOG.sanitised= ${METALOG}.sanitised 77METALOG.sanitised.unpriv= -M ${METALOG.sanitised} 78.endif 79 80.if ${MKUNPRIVED} == "no" 81sanitise_METALOG: .PHONY 82 @true 83.else 84sanitise_METALOG: .PHONY ${METALOG.sanitised} 85${METALOG.sanitised}: ${METALOG} 86 ${TOOL_MTREE} -C -k all -N ${NETBSDSRCDIR}/etc <${METALOG} >${.TARGET} 87.endif 88 89.if defined(DESTDIR) && ${DESTDIR} != "" 90checkflist_if_DESTDIR: checkflist 91.else 92checkflist_if_DESTDIR: 93.endif 94 95checkflist: .PRECIOUS .PHONY check_DESTDIR sanitise_METALOG 96 ${SETSCMD} ${.CURDIR}/checkflist \ 97 ${MAKEFLIST_FLAGS} ${CHECKFLIST_FLAGS} ${METALOG.sanitised.unpriv} 98 99checkflist-x11: .PHONY check_DESTDIR 100 ${SETSCMD} ./checkflist -x ${CHECKFLIST_FLAGS} 101 102 103maketars: .PRECIOUS .PHONY check_DESTDIR check_RELEASEDIR \ 104 sanitise_METALOG checkflist_if_DESTDIR .WAIT \ 105 maketarsetup .WAIT ${MAKETARSETS:@.TARS.@do-${.TARS.}@} 106 @true 107 108maketarsetup: .EXEC 109.if defined(DESTDIR) && ${DESTDIR} != "" 110 ${_MKMSG} "execute checkflist" 111 ${MAKE} checkflist 112.endif 113 mkdir -p ${TARDIR} 114 for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 115 rm -f ${TARDIR}/$$i ${TARDIR}/$$i.tmp; \ 116 done 117 118makesetfiles: .PHONY 119 ${_MKMSG_CREATE} "set lists" 120 ${SETSCMD} ./maketars -S -d ${DESTDIR:S,^$,/,} ${METALOG.unpriv} \ 121 -N ${NETBSDSRCDIR}/etc ${MAKEFLIST_FLAGS} -t ${TARDIR} 122 123.for tar in ${MAKETARSETS} 124do-${tar}: .PHONY 125 ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 126 ${METALOG.sanitised.unpriv} \ 127 -N ${NETBSDSRCDIR}/etc -t ${TARDIR} ${tar} \ 128 || rm -f ${TARDIR}/${tar}.tgz 129.endfor 130 131 132makesrctars: .PRECIOUS .PHONY check_RELEASEDIR 133 mkdir -p ${SOURCETARDIR} 134 ${SETSCMD} ./makesrctars ${MAKESRCTARS_FLAGS} \ 135 ${NETBSDSRCDIR} ${SOURCETARDIR} 136 137 138makesums: .PRECIOUS .PHONY check_RELEASEDIR .WAIT \ 139 ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 140 for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 141 mv ${TARDIR}/$$i.tmp ${TARDIR}/$$i; \ 142 done 143 144.for tar in ${MAKETARSETS} 145do-sum-${tar}: .PHONY do-${tar} 146 ${MAKESUMS} -t ${TARDIR} ${tar}.tgz 147 for i in BSDSUM CKSUM MD5 SHA512 SYSVSUM; do \ 148 ${TOOL_CAT} ${TARDIR}/$$i >> ${TARDIR}/$$i.tmp; \ 149 done 150.endfor 151.ORDER: ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@} 152 153 154installsets: .PHONY check_DESTDIR sanitise_METALOG 155.if !defined(INSTALLDIR) 156 @echo "setenv INSTALLDIR before doing that!" 157 @false 158.endif 159 ${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} \ 160 ${METALOG.sanitised.unpriv} -N ${NETBSDSRCDIR}/etc \ 161 ${MAKEFLIST_FLAGS} -i ${INSTALLDIR} ${INSTALLSETS} 162 163# Should we ignore errors like extra or missing files in the flists? 164SLOPPY_FLIST?= NO 165.if !empty(SLOPPY_FLIST:M[Yy][Ee][Ss]) 166CHECKFLIST_FLAGS+= -e -m 167REGPKG.sloppy= -m 168.endif 169 170.if ${MAKEVERBOSE} == 0 171REGPKG.verbose?= -q 172.elif ${MAKEVERBOSE} == 1 173REGPKG.verbose?= 174.else # MAKEVERBOSE == 2 175REGPKG.verbose?= -v 176.endif 177REGPKG.force?= # -f, or empty 178REGPKG.cache?= -c # -c, or empty 179REGPKG.update:= ${MKUPDATE:tl:Nno:C/..*/-u/} 180SYSPKGSETS?= all 181makesyspkgs: .PHONY check_DESTDIR check_RELEASEDIR \ 182 sanitise_METALOG checkflist_if_DESTDIR 183 mkdir -p ${RELEASEDIR}/${MACHINE}/binary/syspkgs 184 ${SETSCMD} ${.CURDIR}/regpkgset \ 185 ${REGPKG.verbose} ${REGPKG.force} ${REGPKG.sloppy} \ 186 ${REGPKG.cache} ${REGPKG.update} \ 187 -d ${DESTDIR:S,^$,/,} ${METALOG.sanitised.unpriv} \ 188 -N ${NETBSDSRCDIR}/etc \ 189 -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs ${SYSPKGSETS} 190 191makesyspkgsums: .PHONY check_RELEASEDIR 192 ${MAKESUMS} -t ${RELEASEDIR}/${MACHINE}/binary/syspkgs 193 194# Update the "deps" file. 195# XXX: Why is "deps" checked in to the source tree, instead of 196# just being created as necessary? 197makedeps: .PHONY 198 ${SETSCMD} ./syspkgdeps all >${.CURDIR}/deps 199 200# 201# MAIN ENTRY POINTS 202# 203 204syspkgs: .PHONY makesyspkgs .WAIT makesyspkgsums 205 @true 206 207sets: .PHONY maketars .WAIT makesums 208 @true 209 210sourcesets: .PHONY makesrctars 211 @true 212 213.include <bsd.sys.mk> 214