Home | History | Annotate | Line # | Download | only in sets
Makefile revision 1.63.2.1.2.1
      1  1.63.2.1.2.1   bouyer #	$NetBSD: Makefile,v 1.63.2.1.2.1 2009/10/04 11:50:27 bouyer Exp $
      2           1.1  thorpej 
      3           1.1  thorpej # The `all' target must appear before bsd.own.mk is pulled in.
      4           1.1  thorpej all:
      5           1.1  thorpej 	@echo "Please understand what you are doing, first."
      6           1.1  thorpej 	@false
      7           1.1  thorpej 
      8           1.1  thorpej .include <bsd.own.mk>
      9          1.15    lukem .include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
     10          1.51      apb GREP?= grep
     11           1.1  thorpej 
     12          1.43    lukem SETSCMD=	cd ${.CURDIR} && \
     13          1.43    lukem 		DESTDIR=${DESTDIR:Q} \
     14           1.6    lukem 		MACHINE=${MACHINE:Q} MACHINE_ARCH=${MACHINE_ARCH:Q} \
     15          1.62      apb 		AWK=${TOOL_AWK:Q} \
     16          1.49      apb 		CKSUM=${TOOL_CKSUM:Q} \
     17          1.49      apb 		DB=${TOOL_DB:Q} \
     18          1.49      apb 		HOST_SH=${HOST_SH:Q} \
     19          1.49      apb 		MAKE=${MAKE:Q} \
     20          1.49      apb 		MKTEMP=${TOOL_MKTEMP:Q} \
     21          1.49      apb 		MTREE=${TOOL_MTREE:Q} \
     22          1.49      apb 		PAX=${TOOL_PAX:Q} \
     23          1.63      apb 		SED=${TOOL_SED:Q} \
     24          1.49      apb 		TSORT=${TSORT:Q} \
     25          1.43    lukem 		${HOST_SH}
     26          1.30     tron 
     27          1.57    lukem MAKETARS_FLAGS=
     28      1.63.2.1      snj .if ${MKX11} != "no"
     29          1.40    lukem MAKEFLIST_FLAGS=	-b
     30          1.48      jmc MAKESRCTARS_FLAGS=	-x ${X11SRCDIR} -N ${NETBSDSRCDIR}/etc
     31          1.40    lukem .else
     32          1.40    lukem MAKEFLIST_FLAGS=
     33          1.48      jmc MAKESRCTARS_FLAGS= 	-N ${NETBSDSRCDIR}/etc
     34          1.40    lukem .endif
     35          1.40    lukem 
     36          1.57    lukem .if ${MAKEVERBOSE} != 2
     37          1.57    lukem MAKETARS_FLAGS+=	-q
     38          1.57    lukem MAKESRCTARS_FLAGS+= 	-q
     39          1.57    lukem .endif
     40          1.57    lukem 
     41          1.33      jmc .if !defined(MAKETARSETS)
     42          1.43    lukem MAKETARSETS!= ${SETSCMD} ./makeflist -l ${MAKEFLIST_FLAGS}
     43          1.33      jmc .endif
     44          1.33      jmc 
     45          1.52      mrg print_have_gcc: .PHONY
     46          1.52      mrg 	@echo ${HAVE_GCC}
     47           1.6    lukem 
     48           1.3  thorpej print_machine: .PHONY
     49           1.3  thorpej 	@echo ${MACHINE}
     50           1.3  thorpej 
     51           1.3  thorpej print_machine_arch: .PHONY
     52           1.3  thorpej 	@echo ${MACHINE_ARCH}
     53           1.3  thorpej 
     54           1.3  thorpej print_machine_cpu: .PHONY
     55           1.3  thorpej 	@echo ${MACHINE_CPU}
     56           1.3  thorpej 
     57           1.3  thorpej print_object_fmt: .PHONY
     58           1.3  thorpej 	@echo ${OBJECT_FMT}
     59           1.3  thorpej 
     60          1.17    lukem print_toolchain_missing: .PHONY
     61          1.17    lukem 	@echo "${TOOLCHAIN_MISSING}"
     62          1.29      mrg 
     63           1.3  thorpej # This target has debugging value only, really.
     64          1.44     heas makeflist: .PHONY .PRECIOUS check_DESTDIR
     65          1.43    lukem 	${SETSCMD} ./makeflist ${MAKEFLIST_FLAGS}
     66           1.3  thorpej 
     67           1.1  thorpej #
     68           1.1  thorpej # SET BUILDING TARGETS
     69           1.1  thorpej #
     70           1.1  thorpej 
     71          1.46       cl TARDIR=		${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets
     72          1.43    lukem SOURCETARDIR=	${RELEASEDIR}/source/sets
     73          1.43    lukem 
     74          1.27    lukem .if ${MKUNPRIVED} == "no"
     75          1.27    lukem METALOG.unpriv=
     76          1.49      apb METALOG.sanitised.unpriv=
     77          1.27    lukem .else
     78          1.27    lukem METALOG.unpriv=	-M ${METALOG}
     79          1.49      apb METALOG.sanitised= ${METALOG}.sanitised
     80          1.49      apb METALOG.sanitised.unpriv= -M ${METALOG.sanitised}
     81          1.27    lukem .endif
     82          1.27    lukem 
     83          1.49      apb .if ${MKUNPRIVED} == "no"
     84          1.49      apb sanitise_METALOG: .PHONY
     85          1.49      apb 	@true
     86          1.49      apb .else
     87          1.49      apb sanitise_METALOG: .PHONY ${METALOG.sanitised}
     88          1.49      apb ${METALOG.sanitised}: ${METALOG}
     89          1.51      apb 	( cat ${NETBSDSRCDIR}/etc/mtree/NetBSD.dist ; \
     90          1.51      apb 		echo '/unset all' ; \
     91          1.51      apb 		cat ${METALOG} ) \
     92          1.54       he 	| ${TOOL_MTREE} -C -k all -N ${NETBSDSRCDIR}/etc > ${METALOG}.new && \
     93          1.54       he 		( rm -f ${METALOG} ; \
     94          1.54       he 		mv ${METALOG}.new ${METALOG} )
     95          1.54       he 	cat ${METALOG} | ${GREP} -v " optional" > ${.TARGET}
     96          1.49      apb .endif
     97          1.49      apb 
     98          1.49      apb .if defined(DESTDIR) && ${DESTDIR} != ""
     99          1.49      apb checkflist_if_DESTDIR: checkflist
    100          1.49      apb .else
    101          1.49      apb checkflist_if_DESTDIR:
    102          1.49      apb .endif
    103          1.43    lukem 
    104          1.49      apb checkflist: .PRECIOUS .PHONY check_DESTDIR sanitise_METALOG
    105          1.49      apb 	${SETSCMD} ${.CURDIR}/checkflist \
    106          1.49      apb 	    ${MAKEFLIST_FLAGS} ${CHECKFLIST_FLAGS} ${METALOG.sanitised.unpriv}
    107           1.4      mrg 
    108          1.41    lukem checkflist-x11: .PHONY check_DESTDIR
    109          1.43    lukem 	${SETSCMD} ./checkflist -x ${CHECKFLIST_FLAGS}
    110          1.43    lukem 
    111           1.1  thorpej 
    112          1.58      apb # If MAKETARS_SERIAL is set to "YES" or "yes", then the tar sets will be
    113          1.58      apb # made in series, even if make's "-j" flag requests multiple parallel
    114          1.58      apb # jobs.  This is useful on systems that exhibit poor performance when
    115          1.58      apb # running multiple parallel disk-intensive operations.  The default is
    116          1.58      apb # MAKETARS_SERIAL=NO, which will obey the "-j" flag passed to the make
    117          1.58      apb # command.
    118          1.58      apb #
    119          1.58      apb MAKETARS_SERIAL?= NO
    120          1.58      apb .if empty(MAKETARS_SERIAL:M[Yy][Ee][Ss])
    121          1.58      apb _MAKETARS_WAIT= # empty
    122          1.58      apb .else
    123          1.58      apb _MAKETARS_WAIT= .WAIT
    124          1.58      apb .endif
    125          1.58      apb 
    126          1.49      apb maketars: .PRECIOUS .PHONY check_DESTDIR check_RELEASEDIR \
    127          1.49      apb 		sanitise_METALOG checkflist_if_DESTDIR .WAIT \
    128          1.58      apb 		maketarsetup .WAIT \
    129          1.58      apb 		${MAKETARSETS:@.TARS.@${_MAKETARS_WAIT} do-${.TARS.}@}
    130          1.33      jmc 	@true
    131          1.33      jmc 
    132          1.43    lukem maketarsetup: .EXEC
    133          1.23    veego .if defined(DESTDIR) && ${DESTDIR} != ""
    134          1.43    lukem 	${_MKMSG} "execute  checkflist"
    135          1.32    lukem 	${MAKE} checkflist
    136          1.16    lukem .endif
    137          1.43    lukem 	mkdir -p ${TARDIR}
    138  1.63.2.1.2.1   bouyer 	for i in MD5 SHA512; do \
    139          1.43    lukem 		rm -f ${TARDIR}/$$i ${TARDIR}/$$i.tmp; \
    140          1.43    lukem 	done
    141          1.43    lukem 
    142          1.43    lukem makesetfiles: .PHONY
    143          1.43    lukem 	${_MKMSG_CREATE} "set lists"
    144          1.43    lukem 	${SETSCMD} ./maketars -S -d ${DESTDIR:S,^$,/,} ${METALOG.unpriv} \
    145          1.57    lukem 	    ${MAKETARS_FLAGS} \
    146          1.43    lukem 	    -N ${NETBSDSRCDIR}/etc ${MAKEFLIST_FLAGS} -t ${TARDIR}
    147          1.43    lukem 
    148          1.33      jmc .for tar in ${MAKETARSETS}
    149          1.55      apb do-${tar}: .PHONY sanitise_METALOG
    150          1.57    lukem 	${_MKMSG_CREATE} "${tar}.tgz"
    151          1.57    lukem 	${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} ${MAKETARS_FLAGS} \
    152          1.55      apb 	    ${METALOG.sanitised.unpriv} \
    153          1.43    lukem 	    -N ${NETBSDSRCDIR}/etc -t ${TARDIR} ${tar} \
    154          1.43    lukem 	|| rm -f ${TARDIR}/${tar}.tgz
    155          1.33      jmc .endfor
    156           1.1  thorpej 
    157          1.43    lukem 
    158          1.41    lukem makesrctars: .PRECIOUS .PHONY check_RELEASEDIR
    159          1.57    lukem 	${_MKMSG_CREATE} "source tar files"
    160          1.43    lukem 	mkdir -p ${SOURCETARDIR}
    161          1.45    lukem 	${SETSCMD} ./makesrctars ${MAKESRCTARS_FLAGS} \
    162          1.45    lukem 	    ${NETBSDSRCDIR} ${SOURCETARDIR}
    163          1.43    lukem 
    164          1.25    lukem 
    165          1.41    lukem makesums: .PRECIOUS .PHONY check_RELEASEDIR .WAIT \
    166          1.41    lukem 		${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@}
    167  1.63.2.1.2.1   bouyer 	for i in MD5 SHA512; do \
    168          1.43    lukem 		mv ${TARDIR}/$$i.tmp ${TARDIR}/$$i; \
    169          1.43    lukem 	done
    170          1.33      jmc 
    171          1.33      jmc .for tar in ${MAKETARSETS}
    172          1.39      jmc do-sum-${tar}: .PHONY do-${tar}
    173          1.57    lukem 	${_MKMSG_CREATE} "${tar} checksums"
    174          1.43    lukem 	${MAKESUMS} -t ${TARDIR} ${tar}.tgz
    175  1.63.2.1.2.1   bouyer 	for i in MD5 SHA512; do \
    176          1.43    lukem 		${TOOL_CAT} ${TARDIR}/$$i >> ${TARDIR}/$$i.tmp; \
    177          1.35      jmc 	done
    178          1.33      jmc .endfor
    179          1.37      jmc .ORDER: ${MAKETARSETS:@.TARS.@do-sum-${.TARS.}@}
    180          1.18    lukem 
    181          1.43    lukem 
    182          1.49      apb installsets: .PHONY check_DESTDIR sanitise_METALOG
    183          1.18    lukem .if !defined(INSTALLDIR)
    184          1.18    lukem 	@echo "setenv INSTALLDIR before doing that!"
    185          1.18    lukem 	@false
    186          1.18    lukem .endif
    187          1.57    lukem 	${SETSCMD} ./maketars -d ${DESTDIR:S,^$,/,} ${MAKETARS_FLAGS} \
    188          1.49      apb 	    ${METALOG.sanitised.unpriv} -N ${NETBSDSRCDIR}/etc \
    189          1.49      apb 	    ${MAKEFLIST_FLAGS} -i ${INSTALLDIR} ${INSTALLSETS}
    190          1.49      apb 
    191          1.49      apb # Should we ignore errors like extra or missing files in the flists?
    192          1.49      apb SLOPPY_FLIST?= NO
    193          1.49      apb .if !empty(SLOPPY_FLIST:M[Yy][Ee][Ss])
    194          1.49      apb CHECKFLIST_FLAGS+=	-e -m
    195          1.49      apb REGPKG.sloppy=		-m
    196          1.49      apb .endif
    197           1.1  thorpej 
    198          1.49      apb .if ${MAKEVERBOSE} == 0
    199          1.49      apb REGPKG.verbose?= -q
    200          1.49      apb .elif ${MAKEVERBOSE} == 1
    201          1.49      apb REGPKG.verbose?=
    202          1.49      apb .else	# MAKEVERBOSE == 2
    203          1.49      apb REGPKG.verbose?= -v
    204          1.49      apb .endif
    205          1.49      apb REGPKG.force?=		# -f, or empty
    206          1.49      apb REGPKG.cache?= -c	# -c, or empty
    207          1.49      apb REGPKG.update:= ${MKUPDATE:tl:Nno:C/..*/-u/}
    208          1.49      apb SYSPKGSETS?= all
    209          1.49      apb makesyspkgs: .PHONY check_DESTDIR check_RELEASEDIR \
    210          1.49      apb 		sanitise_METALOG checkflist_if_DESTDIR
    211          1.59     matt 	mkdir -p ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/syspkgs
    212          1.49      apb 	${SETSCMD} ${.CURDIR}/regpkgset \
    213          1.49      apb 	    ${REGPKG.verbose} ${REGPKG.force} ${REGPKG.sloppy} \
    214          1.49      apb 	    ${REGPKG.cache} ${REGPKG.update} \
    215          1.49      apb 	    -d ${DESTDIR:S,^$,/,} ${METALOG.sanitised.unpriv} \
    216          1.49      apb 	    -N ${NETBSDSRCDIR}/etc \
    217          1.59     matt 	    -t ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/syspkgs ${SYSPKGSETS}
    218          1.49      apb 
    219          1.49      apb makesyspkgsums: .PHONY check_RELEASEDIR
    220          1.59     matt 	${MAKESUMS} -t ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/syspkgs
    221          1.43    lukem 
    222          1.50      apb # Update the "deps" file.
    223          1.50      apb # XXX: Why is "deps" checked in to the source tree, instead of
    224          1.50      apb # just being created as necessary?
    225          1.50      apb makedeps: .PHONY
    226          1.50      apb 	${SETSCMD} ./syspkgdeps all >${.CURDIR}/deps
    227          1.50      apb 
    228           1.1  thorpej #
    229           1.1  thorpej # MAIN ENTRY POINTS
    230           1.1  thorpej #
    231           1.1  thorpej 
    232          1.49      apb syspkgs: .PHONY makesyspkgs .WAIT makesyspkgsums
    233          1.49      apb 	@true
    234          1.49      apb 
    235          1.41    lukem sets: .PHONY maketars .WAIT makesums
    236          1.25    lukem 	@true
    237          1.25    lukem 
    238          1.41    lukem sourcesets: .PHONY makesrctars
    239           1.1  thorpej 	@true
    240           1.8    lukem 
    241           1.8    lukem .include <bsd.sys.mk>
    242