summaryrefslogtreecommitdiffstats
path: root/release/Makefile
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 /release/Makefile
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.
Diffstat (limited to 'release/Makefile')
-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