summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1997-06-21 15:41:55 +0000
committerjkh <jkh@FreeBSD.org>1997-06-21 15:41:55 +0000
commitdd6c0a48e7d0e9df9a65d18cf0b6e3f1e2f73f44 (patch)
treecd71aa9d7d7597fcca89c590f7911e0c24ab5d3b
parenta8bb7ab7de8839eb216a36d0b906898fffa59372 (diff)
downloadFreeBSD-src-dd6c0a48e7d0e9df9a65d18cf0b6e3f1e2f73f44.zip
FreeBSD-src-dd6c0a48e7d0e9df9a65d18cf0b6e3f1e2f73f44.tar.gz
Change the way distributions are built such that they can be built
either in the Makefile or by an external script. Move some of the existing stuff into scripts.
-rw-r--r--release/Makefile108
1 files changed, 33 insertions, 75 deletions
diff --git a/release/Makefile b/release/Makefile
index 7f1adf6..14175b6 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.298 1997/06/12 09:18:29 jkh Exp $
+# $Id: Makefile,v 1.299 1997/06/12 09:23:54 jkh Exp $
#
# make release CHROOTDIR=/some/dir BUILDNAME=somename [ RELEASETAG=tag ]
#
@@ -26,11 +26,13 @@ BUILDNAME=${BASE}-${DATE}-SNAP
#RELEASETAG=RELENG_2_2
# Things which without too much trouble can be considered variables
-
+# BIN_DISTS are special in that they get full /etc installation sets.
+#
COMPAT_DISTS= compat1x compat20 compat21
EXPORT_DISTS= games manpages catpages proflibs dict info doc ${COMPAT_DISTS}
-EXTRA_DISTS= krb des ${EXPORT_DISTS}
-ALL_DISTS= bin ${EXTRA_DISTS}
+EXTRA_DISTS= krb des
+BIN_DISTS?= bin
+ALL_DISTS?= ${BIN_DISTS} ${EXPORT_DISTS} ${EXTRA_DISTS}
KERNELS?= GENERIC
# Extra source tarballs; each argument is a pair of source dir and
@@ -56,8 +58,8 @@ MFSINODE= 7000
FIXITINODE= 2000
BOOTINODE= 100000
-# Things which will get you into trouble if you change them
-DISTRIBUTIONS= ${ALL_DISTS}
+# Things which may get you into trouble if you change them
+DISTRIBUTIONS?= ${ALL_DISTS}
MTREEFILES= ${.CURDIR}/../etc/mtree
RD= /R/stage
FD= /R/ftp
@@ -80,8 +82,8 @@ BOOTSTRAPUTILS= /sbin/mount /sbin/umount
# 3.0 cpio tries to reference lchown(2) which is not available in 2.2
BOOTSTRAPUTILS+= /usr/bin/cpio
-.if !defined(WHICH_CRUNCH)
-WHICH_CRUNCH= boot fixit
+.if !defined(CRUNCH_TARGETS)
+CRUNCH_TARGETS= boot fixit
.endif
REDO?= sysinstall
@@ -151,6 +153,7 @@ rerelease release:
.endif
.endif
.endif
+ # Add version information to those things that need it.
( cd ${CHROOTDIR}/usr/src/sys/conf && \
mv newvers.sh foo && \
sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh&& rm foo )
@@ -162,6 +165,7 @@ rerelease release:
echo "#!/bin/sh" > ${CHROOTDIR}/mk
echo "set -ex" >> ${CHROOTDIR}/mk
echo "export CFLAGS='-O2 -pipe'" >> ${CHROOTDIR}/mk
+ echo "export DISTRIBUTIONS=\"${DISTRIBUTIONS}\"" >> ${CHROOTDIR}/mk
echo "export BUILDNAME=${BUILDNAME}" >> ${CHROOTDIR}/mk
.if defined(RELEASETAG)
echo "export RELEASETAG=${RELEASETAG}" >> ${CHROOTDIR}/mk
@@ -203,10 +207,6 @@ rerelease release:
chmod 755 ${CHROOTDIR}/mk
chroot ${CHROOTDIR} /mk
-whap:
- ( cd ${CHROOTDIR}/usr/src/release/sysinstall && \
- sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && mv version.h.new version.h )
-
clean:
rm -rf boot_crunch release.[0-9]
@@ -220,7 +220,7 @@ release.1:
mkdir ${RD}/trees
mkdir ${RD}/dists
mkdir ${RD}/kernels
- for i in ${ALL_DISTS} ; do \
+ for i in ${DISTRIBUTIONS} ; do \
mkdir ${RD}/trees/$$i && \
mkdir ${RD}/dists/$$i && \
mtree -deU -f ${MTREEFILES}/BSD.root.dist \
@@ -236,9 +236,11 @@ release.1:
# Install the system into the various distributions.
release.2:
- cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin
+ for i in ${BIN_DISTS}; do \
+ cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/$$i; \
+ done
cd ${.CURDIR}/.. && make distribute DISTDIR=${RD}/trees
-.if exists(${.CURDIR}/../eBones)
+.if exists(${.CURDIR}/../eBones) && !defined(NOKERBEROS)
cd ${.CURDIR}/../eBones && ( \
make bootstrap &&\
make obj all help-distribute DISTDIR=${RD}/trees &&\
@@ -265,11 +267,11 @@ release.3:
# NB: the "RELEASE_BUILD_FIXIT" magic prevents vi from including the
# Tcl and Perl APIs. See also /usr/src/usr.bin/vi/Makefile.
release.4:
- cd ${.CURDIR}/sysinstall && make depend all
+ cd ${.CURDIR}/sysinstall && make obj depend all
rm -rf ${RD}/crunch
mkdir -p ${RD}/crunch
export RELEASE_BUILD_FIXIT=noway ; \
- for j in ${WHICH_CRUNCH} ; do \
+ for j in ${CRUNCH_TARGETS} ; do \
rm -rf $${j}_crunch && \
mkdir $${j}_crunch && \
( cd $${j}_crunch && \
@@ -291,60 +293,15 @@ release.5:
make -DNOCRYPT clean all distribute DISTDIR=${RD}/trees ) ; \
done
- # Move all the manpages out to their own dist
- if [ -d ${RD}/trees/bin/usr/share/man ] ; then \
- ( cd ${RD}/trees/bin/usr/share/man; \
- find . | cpio -dumpl ${RD}/trees/manpages/usr/share/man ) && \
- rm -rf ${RD}/trees/bin/usr/share/man; \
- fi
- # Create the catpages
- if [ -d ${RD}/trees/manpages/usr/share/man ] ; then \
- su -m man -c 'catman ${RD}/trees/manpages/usr/share/man'; \
- ( cd ${RD}/trees/manpages/usr/share/man; \
- find cat* | cpio -dumpl ${RD}/trees/catpages/usr/share/man ) && \
- rm -rf ${RD}/trees/manpages/usr/share/man/cat*; \
- fi
- # Move all the games out to their own dist
- if [ -d ${RD}/trees/bin/usr/games ] ; then \
- tar -cf - -C ${RD}/trees/bin/usr/games . | \
- tar -xf - -C ${RD}/trees/games/usr/games && \
- rm -rf ${RD}/trees/bin/usr/games; \
- fi
- if [ -d ${RD}/trees/bin/usr/share/games ] ; then \
- tar -cf - -C ${RD}/trees/bin/usr/share/games . | \
- tar -xf - -C ${RD}/trees/games/usr/share/games && \
- rm -rf ${RD}/trees/bin/usr/share/games; \
- fi
- if [ -d ${RD}/trees/bin/var/games ] ; then \
- tar -cf - -C ${RD}/trees/bin/var/games . | \
- tar -xf - -C ${RD}/trees/games/var/games && \
- rm -rf ${RD}/trees/bin/var/games; \
- fi
- # Move the dict out to their own dist
- if [ -d ${RD}/trees/bin/usr/share/dict ] ; then \
- tar -cf - -C ${RD}/trees/bin/usr/share/dict . | \
- tar -xf - -C ${RD}/trees/dict/usr/share/dict && \
- rm -rf ${RD}/trees/bin/usr/share/dict; \
- fi
- for i in airport birthtoken flowers na.phone zipcodes ; do \
- if [ -f ${RD}/trees/bin/usr/share/misc/$$i ] ; then \
- mv ${RD}/trees/bin/usr/share/misc/$$i \
- ${RD}/trees/dict/usr/share/misc; \
- fi ; \
- done
- # Move the info files out to their own dist
- if [ -d ${RD}/trees/bin/usr/share/info ] ; then \
- tar -cf - -C ${RD}/trees/bin/usr/share/info . | \
- tar -xf - -C ${RD}/trees/info/usr/share/info && \
- rm -rf ${RD}/trees/bin/usr/share/info; \
- fi
- # Move the profiled libraries out to their own dist
- for i in ${RD}/trees/bin/usr/lib/*_p.a ; do \
- if [ -f $$i ] ; then \
- mv $$i \
- ${RD}/trees/proflibs/usr/lib ; \
- fi ; \
- done
+ # Create any "synthetic dists" now.
+ @for i in ${DISTRIBUTIONS}; do \
+ if [ -f ${.CURDIR}/scripts/$${i}-make.sh ]; then \
+ echo -n "Running $$i dist creation script... "; \
+ env RD=${RD} sh ${.CURDIR}/scripts/$${i}-make.sh || echo "$$i distribution script returned bad status." ; \
+ echo "Done."
+ fi \
+ done \
+
# Create symlinks for the MD5-based crypt lib, too. The
# automatically created links still point to the DES stuff,
# which went into its own distribution.
@@ -358,11 +315,11 @@ release.5:
cd ${RD}/trees/bin/usr/share/misc && rm -f termcap.db vgrindefs.db
# Remove all the directories we don't need.
-cd ${RD}/trees && \
- find ${EXTRA_DISTS} -depth -type d -print | xargs rmdir
+ find ${EXPORT_DISTS} ${EXTRA_DISTS} -depth -type d -print | xargs rmdir
touch release.5
#
-# --==## Make binary dists ##==--
+# --==## Package up the tarballs from assembled trees ##==--
#
release.6:
rm -rf ${RD}/dists
@@ -376,6 +333,7 @@ release.6:
echo "$${i} distribution is finished."; \
fi ; \
done
+ # More munition braindeadness.
( cd ${RD}/dists && \
if [ -f krb/krb.aa ] ; then mv krb/* des && rmdir krb ; fi )
touch release.6
@@ -602,11 +560,11 @@ floppies:
boot.flp:
rm -f release.4 release.8
- cd ${.CURDIR} && ${MAKE} release.4 release.8 WHICH_CRUNCH=boot
+ cd ${.CURDIR} && ${MAKE} release.4 release.8 CRUNCH_TARGETS=boot
fixit.flp:
rm -f release.4 release.9
- cd ${.CURDIR} && ${MAKE} release.4 release.9 WHICH_CRUNCH=fixit
+ cd ${.CURDIR} && ${MAKE} release.4 release.9 CRUNCH_TARGETS=fixit
write_mfs_in_kernel: ${.CURDIR}/write_mfs_in_kernel.c
${CC} ${CFLAGS} -o write_mfs_in_kernel ${.CURDIR}/write_mfs_in_kernel.c
OpenPOWER on IntegriCloud