summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-03-02 14:39:26 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-03-02 14:39:26 +0000
commit99ad39c822aa9bfa14167e101fce67e6d996dd42 (patch)
tree7614655486ed54841482c8143b6c735f775ce4b0
parent7b9758e3085cad9b8ebc7ab8d42f8a34947ecbe7 (diff)
downloadsrc-test2-99ad39c822aa9bfa14167e101fce67e6d996dd42.tar.gz
src-test2-99ad39c822aa9bfa14167e101fce67e6d996dd42.zip
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.
Notes
Notes: svn path=/head/; revision=219177
-rw-r--r--Makefile6
-rw-r--r--Makefile.inc146
-rw-r--r--games/Makefile.inc1
-rw-r--r--release/Makefile8
-rwxr-xr-xrelease/scripts/games-make.sh37
-rw-r--r--release/scripts/lib32-make.sh8
6 files changed, 54 insertions, 52 deletions
diff --git a/Makefile b/Makefile
index 1f67ddbed416..579a4b15d938 100644
--- a/Makefile
+++ b/Makefile
@@ -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 e30de3e4eaa5..4723d142bf48 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 6e4b6f10429b..2695d834d2a8 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 c95b8f445dd1..30b61b0065f3 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 6e83d1474737..000000000000
--- 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 99bbee4172eb..000000000000
--- 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