summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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