diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2011-03-02 14:39:26 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2011-03-02 14:39:26 +0000 |
commit | a8c9f18299da1bf825c6a1fdbce273c58137524f (patch) | |
tree | 7614655486ed54841482c8143b6c735f775ce4b0 | |
parent | 8eacafea122b877adb3f474b46942309a1303f68 (diff) | |
download | FreeBSD-src-a8c9f18299da1bf825c6a1fdbce273c58137524f.zip FreeBSD-src-a8c9f18299da1bf825c6a1fdbce273c58137524f.tar.gz |
Improve the distributeworld target in Makefile.inc1 and update the release
infrastructure to use it. make distributeworld can now be used without
preparing its environment first and installs games into its distribution
using the regular make distribute logic instead of post-processing with
a script.
Also add two new targets, packageworld and packagekernel, that tar up the
results of distributeworld and distributekernel (also new), respectively.
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | Makefile.inc1 | 46 | ||||
-rw-r--r-- | games/Makefile.inc | 1 | ||||
-rw-r--r-- | release/Makefile | 8 | ||||
-rwxr-xr-x | release/scripts/games-make.sh | 37 | ||||
-rw-r--r-- | release/scripts/lib32-make.sh | 8 |
6 files changed, 54 insertions, 52 deletions
@@ -89,9 +89,11 @@ TGTS= all all-man buildenv buildenvvars buildkernel buildworld \ check-old check-old-dirs check-old-files check-old-libs \ checkdpadd clean cleandepend cleandir \ delete-old delete-old-dirs delete-old-files delete-old-libs \ - depend distribute distributeworld distrib-dirs distribution doxygen \ + depend distribute distributekernel distributekernel.debug \ + distributeworld distrib-dirs distribution doxygen \ everything hierarchy install installcheck installkernel \ - installkernel.debug reinstallkernel reinstallkernel.debug \ + installkernel.debug packagekernel packageworld \ + reinstallkernel reinstallkernel.debug \ installworld kernel-toolchain libraries lint maninstall \ obj objlink regress rerelease showconfig tags toolchain update \ _worldtmp _legacy _bootstrap-tools _cleanobj _obj \ diff --git a/Makefile.inc1 b/Makefile.inc1 index e30de3e..4723d14 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -631,6 +631,13 @@ ITOOLS= [ awk cap_mkdb cat chflags chmod chown \ # # Installs everything compiled by a 'buildworld'. # + +# Non-base distributions produced by the base system +EXTRA_DISTRIBUTIONS= doc games +.if defined(LIB32TMP) && ${MK_LIB32} != "no" +EXTRA_DISTRIBUTIONS+= lib32 +.endif + distributeworld installworld: installcheck mkdir -p ${INSTALLTMP} progs=$$(for prog in ${ITOOLS}; do \ @@ -653,8 +660,33 @@ distributeworld installworld: installcheck done); \ cp $$libs $$progs ${INSTALLTMP} cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale +.if make(distributeworld) +.for dist in ${EXTRA_DISTRIBUTIONS} + -mkdir ${DESTDIR}/${DISTDIR}/${dist} + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.root.dist \ + -p ${DESTDIR}/${DISTDIR}/${dist} >/dev/null + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ + -p ${DESTDIR}/${DISTDIR}/${dist}/usr/include >/dev/null +.endfor + -mkdir ${DESTDIR}/${DISTDIR}/base + ${_+_}cd ${.CURDIR}; ${IMAKE} distrib-dirs \ + DESTDIR=${DESTDIR}/${DISTDIR}/base +.endif ${_+_}cd ${.CURDIR}; ${IMAKE} re${.TARGET:S/world$//}; \ ${IMAKEENV} rm -rf ${INSTALLTMP} +.if make(distributeworld) +.for dist in ${EXTRA_DISTRIBUTIONS} + find ${DESTDIR}/${DISTDIR}/${dist} -empty -delete +.endfor +.endif + +packageworld: +.for dist in base ${EXTRA_DISTRIBUTIONS} + ${_+_}cd ${DESTDIR}/${DISTDIR}/${dist}; \ + tar cvJf ${DESTDIR}/${DISTDIR}/${dist}.txz . +.endfor # # reinstall @@ -840,6 +872,20 @@ reinstallkernel reinstallkernel.debug: installcheck ${CROSSENV} PATH=${TMPPATH} \ ${MAKE} KERNEL=${INSTKERNNAME} ${.TARGET:S/kernel//} +distributekernel distributekernel.debug: +.if empty(INSTALLKERNEL) + @echo "ERROR: No kernel \"${KERNCONF}\" to install."; \ + false +.endif + cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \ + ${CROSSENV} PATH=${TMPPATH} ${MAKE} KERNEL=${INSTKERNNAME} \ + DESTDIR=${DESTDIR}/${DISTDIR}/kernel \ + ${.TARGET:S/distributekernel/install/} + +packagekernel: + ${_+_}cd ${DESTDIR}/${DISTDIR}/kernel; \ + tar cvJf ${DESTDIR}/${DISTDIR}/kernel.txz . + # # doxygen # diff --git a/games/Makefile.inc b/games/Makefile.inc index 6e4b6f1..2695d83 100644 --- a/games/Makefile.inc +++ b/games/Makefile.inc @@ -4,3 +4,4 @@ BINDIR?= /usr/games FILESDIR?= ${SHAREDIR}/games WARNS?= 6 +DISTRIBUTION?= games diff --git a/release/Makefile b/release/Makefile index c95b8f4..30b61b0 100644 --- a/release/Makefile +++ b/release/Makefile @@ -194,8 +194,8 @@ DIST_DOCS_ARCH_DEP= # Things which without too much trouble can be considered variables # BASE_DISTS are special in that they get full /etc installation sets. # -OTHER_DISTS?= catpages manpages games proflibs dict info doc ${ARCH_DISTS} -BASE_DISTS?= base +OTHER_DISTS?= catpages manpages proflibs dict info +BASE_DISTS?= base doc games ${ARCH_DISTS} .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" ARCH_DISTS?= lib32 .endif @@ -647,9 +647,7 @@ release.1: mtree -deU -f ${MTREEFILES}/BSD.usr.dist \ -p ${RD}/trees/$$i/usr > /dev/null && \ mtree -deU -f ${MTREEFILES}/BSD.include.dist \ - -p ${RD}/trees/$$i/usr/include > /dev/null && \ - mtree -deU -f ${MTREEFILES}/BSD.var.dist \ - -p ${RD}/trees/$$i/var > /dev/null ; \ + -p ${RD}/trees/$$i/usr/include > /dev/null; \ done mkdir ${RD}/kernels for i in ${KERNELS_BASE} ${KERNELS}; do \ diff --git a/release/scripts/games-make.sh b/release/scripts/games-make.sh deleted file mode 100755 index 6e83d14..0000000 --- a/release/scripts/games-make.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ -# - -# Move all the games out to their own dist -if [ -d ${RD}/trees/base/usr/games ]; then - tar -cf - -C ${RD}/trees/base/usr/games . | - tar -xpf - -C ${RD}/trees/games/usr/games && - rm -rf ${RD}/trees/base/usr/games; -fi - -if [ -d ${RD}/trees/base/usr/share/games ]; then - tar -cf - -C ${RD}/trees/base/usr/share/games . | - tar -xpf - -C ${RD}/trees/games/usr/share/games && - rm -rf ${RD}/trees/base/usr/share/games; -fi - -if [ -d ${RD}/trees/base/var/games ]; then - tar -cf - -C ${RD}/trees/base/var/games . | - tar -xpf - -C ${RD}/trees/games/var/games && - rm -rf ${RD}/trees/base/var/games; -fi - -if [ -d ${RD}/trees/manpages/usr/share/man/man6 ]; then - mkdir -p ${RD}/trees/games/usr/share/man/man6 - tar -cf - -C ${RD}/trees/manpages/usr/share/man/man6 . | - tar -xpf - -C ${RD}/trees/games/usr/share/man/man6 && - rm -rf ${RD}/trees/manpages/usr/share/man/man6 -fi - -if [ -d ${RD}/trees/catpages/usr/share/man/cat6 ]; then - mkdir -p ${RD}/trees/games/usr/share/man/cat6 - tar -cf - -C ${RD}/trees/catpages/usr/share/man/cat6 . | - tar -xpf - -C ${RD}/trees/games/usr/share/man/cat6 && - rm -rf ${RD}/trees/catpages/usr/share/man/cat6 -fi diff --git a/release/scripts/lib32-make.sh b/release/scripts/lib32-make.sh deleted file mode 100644 index 99bbee4..0000000 --- a/release/scripts/lib32-make.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ -# - -# Clean the dust. -cd ${RD}/trees/lib32 && \ - find . '(' -path '*/usr/share/*' -or -path '*/usr/lib/*' ')' -delete |