xref: /freebsd/release/Makefile (revision 281e052e367dc9a8b0eee714aea61b1a00d78fe9)
1281e052eSJordan K. Hubbard#	$Id: Makefile,v 1.298 1997/06/12 09:18:29 jkh Exp $
20202c140SRodney W. Grimes#
3aeb6d603SJordan K. Hubbard# make release CHROOTDIR=/some/dir BUILDNAME=somename [ RELEASETAG=tag ]
4bd668f6fSPoul-Henning Kamp#
5aeb6d603SJordan K. Hubbard# Where "/some/dir" is the pathname of a directory on a some
6aeb6d603SJordan K. Hubbard# filesystem with at least 600MB of free space, "somename" is what
7aeb6d603SJordan K. Hubbard# you want the release to call itself and, optionally, which CVS "tag"
8aeb6d603SJordan K. Hubbard# name should be used when checking out the sources to build the release
9aeb6d603SJordan K. Hubbard# (default is HEAD).
10bd668f6fSPoul-Henning Kamp#
11aeb6d603SJordan K. Hubbard# Please note: the vn driver must also be compiled into your kernel,
12f1a03fb6SAndreas Klemm# otherwise the target 'release.8' and possibly others will fail.
13f1a03fb6SAndreas Klemm#
14aeb6d603SJordan K. Hubbard# Set these, release builder!
15d013a27bSJoerg Wunsch#
16d013a27bSJoerg Wunsch# Fixed version:
17d013a27bSJoerg Wunsch#BUILDNAME=2.2-RELEASE
18d013a27bSJoerg Wunsch#
19d013a27bSJoerg Wunsch# Automatic SNAP versioning:
20d013a27bSJoerg WunschDATE != date +%y%m%d
21d013a27bSJoerg WunschBASE = 3.0
22d013a27bSJoerg WunschBUILDNAME=${BASE}-${DATE}-SNAP
23d013a27bSJoerg Wunsch#
24fe85fe95SJordan K. Hubbard#CHROOTDIR=/junk/release
25ab0e9cdcSPoul-Henning Kamp# If this is a RELEASE, then set
26fbc6f9e0SJoerg Wunsch#RELEASETAG=RELENG_2_2
27ab0e9cdcSPoul-Henning Kamp
28bd668f6fSPoul-Henning Kamp# Things which without too much trouble can be considered variables
29785bd4b4SPoul-Henning Kamp
30ec1ef765SPeter WemmCOMPAT_DISTS=	compat1x compat20 compat21
3138597f2bSJordan K. HubbardEXPORT_DISTS=	games manpages catpages proflibs dict info doc ${COMPAT_DISTS}
32d3628763SRodney W. GrimesEXTRA_DISTS=	krb des ${EXPORT_DISTS}
33518a1d34SPoul-Henning KampALL_DISTS=	bin ${EXTRA_DISTS}
3416c61233SJordan K. HubbardKERNELS?=	GENERIC
35785bd4b4SPoul-Henning Kamp
3640b0c0d9SPeter Wemm# Extra source tarballs; each argument is a pair of source dir and
3740b0c0d9SPeter Wemm# distribution name.  The dist name should not exceed 7 characters
3840b0c0d9SPeter Wemm# (another "s" for "source" will be prepended).
3940b0c0d9SPeter WemmEXTRA_SRC+=	usr.sbin/sendmail/cf smailcf
4040b0c0d9SPeter Wemm
41aeb6d603SJordan K. HubbardBOOT1=	etc/protocols etc/rc.conf
421cdab3d4SJordan K. Hubbard
437c474103SPoul-Henning Kamp# mountpoint for filesystems.
447c474103SPoul-Henning KampMNT=			/mnt
45518a1d34SPoul-Henning Kamp
46518a1d34SPoul-Henning Kamp# other floppy parameters.
4732dc5e88SJordan K. HubbardFDSIZE=			1440
4832dc5e88SJordan K. HubbardFDLABEL=		fd1440
490202c140SRodney W. Grimes
5000063f88SPoul-Henning KampZIPNSPLIT=		gzip --no-name -9 -c | split -b 240640 -
5100063f88SPoul-Henning Kamp
52288fe4dbSPoul-Henning Kamp# Upper size for the mfs in the boot.flp kernel.
53ae33fac5SJordan K. Hubbard# These are adjusted down to the minimum needed by doFS.sh.
5432dc5e88SJordan K. HubbardBOOTMFSSIZE=		1440
55571240d7SJoerg WunschMFSINODE=		7000
56571240d7SJoerg WunschFIXITINODE=		2000
57b386088bSJordan K. HubbardBOOTINODE=		100000
58d5cf6f60SAndrey A. Chernov
59bd668f6fSPoul-Henning Kamp# Things which will get you into trouble if you change them
600209d367SJordan K. HubbardDISTRIBUTIONS=		${ALL_DISTS}
6148327bc9SPoul-Henning KampMTREEFILES=		${.CURDIR}/../etc/mtree
62fbc6f9e0SJoerg WunschRD=			/R/stage
63fbc6f9e0SJoerg WunschFD=			/R/ftp
64fbc6f9e0SJoerg WunschCD=			/R/cdrom
651bac119bSJordan K. HubbardCD_DISC1=		${CD}/disc1
661bac119bSJordan K. HubbardCD_DISC2=		${CD}/disc2
6748327bc9SPoul-Henning Kamp
68571240d7SJoerg Wunsch# ${BOOTSTRAPDIR} is for those utilities that refer to the hosting
699c3b2346SDaniel O'Callaghan# environment, rather than the target environment.  This is specifically
709c3b2346SDaniel O'Callaghan# intended for kernel-dependent utilities that are used during the build.
71571240d7SJoerg Wunsch#
72571240d7SJoerg Wunsch# ${BOOTSTRAPDIR} is actually being used by prepending it to the normal
73571240d7SJoerg Wunsch# ${PATH}.  Thus, it's also available to outside utilities like doFS.sh.
74571240d7SJoerg WunschBOOTSTRAPDIR=	/bootstrap
75571240d7SJoerg Wunsch#
76571240d7SJoerg Wunsch# The mount subsystem has been changed between 2.2 and 3.0 by the
77571240d7SJoerg Wunsch# Lite2 import.
78571240d7SJoerg WunschBOOTSTRAPUTILS=	/sbin/mount /sbin/umount
79571240d7SJoerg Wunsch#
80571240d7SJoerg Wunsch# 3.0 cpio tries to reference lchown(2) which is not available in 2.2
81571240d7SJoerg WunschBOOTSTRAPUTILS+= /usr/bin/cpio
82571240d7SJoerg Wunsch
833525074dSPoul-Henning Kamp.if !defined(WHICH_CRUNCH)
84b53e8a34SJordan K. HubbardWHICH_CRUNCH=	boot fixit
853525074dSPoul-Henning Kamp.endif
863525074dSPoul-Henning Kamp
8716c61233SJordan K. HubbardREDO?=		sysinstall
8816c61233SJordan K. HubbardREDOSED=	sed -e 's/dirs/release.1/' -e 's/trees/release.2/' \
8916c61233SJordan K. Hubbard		    -e 's/kerns/release.3/' -e 's/sysinstall/release.4/' \
9016c61233SJordan K. Hubbard		    -e 's/fixup/release.5/' -e 's/tarbin/release.6/' \
9116c61233SJordan K. Hubbard		    -e 's/tarsrc/release.7/' -e 's/boot\.flp/release.8/' \
9216c61233SJordan K. Hubbard		    -e 's/fixit\.flp/release.9/' -e 's/ftp/ftp.1/' \
9316c61233SJordan K. Hubbard		    -e 's/cdrom/cdrom.1/'
9416c61233SJordan K. Hubbard
9516c61233SJordan K. HubbardREDOREDO!=	echo ${REDO} | ${REDOSED}
9616c61233SJordan K. Hubbard
97288fe4dbSPoul-Henning Kamprerelease release:
9820e5d523SJordan K. Hubbard.if !defined(CHROOTDIR) || !defined(BUILDNAME)
9920e5d523SJordan K. Hubbard	@echo "To make a release you must set CHROOTDIR and BUILDNAME" && false
1007eb11201SPoul-Henning Kamp.endif
101288fe4dbSPoul-Henning Kamp.if make(release)
102682078bdSRodney W. Grimes.if exists(${CHROOTDIR})
103bd668f6fSPoul-Henning Kamp	chflags -R noschg ${CHROOTDIR}/.
104b7738481SJoerg Wunsch	-rm -rf ${CHROOTDIR}
105682078bdSRodney W. Grimes.endif
106b7738481SJoerg Wunsch	-mkdir -p ${CHROOTDIR}
107288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../etc && ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR}
108288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../etc && ${MAKE} distribution DESTDIR=${CHROOTDIR}
109849635f6SPoul-Henning Kamp	cd ${.CURDIR}/.. && ${MAKE} install DESTDIR=${CHROOTDIR} NOMAN=1
110571240d7SJoerg Wunsch	mkdir ${CHROOTDIR}/${BOOTSTRAPDIR}
111571240d7SJoerg Wunsch	for i in ${BOOTSTRAPUTILS} ; do \
112571240d7SJoerg Wunsch		cp -p ${CHROOTDIR}$$i ${CHROOTDIR}/${BOOTSTRAPDIR} ; \
113571240d7SJoerg Wunsch	done
114bd668f6fSPoul-Henning Kamp.if !defined(RELEASETAG)
11562bb2153SPaul Traina	cd ${CHROOTDIR}/usr && rm -rf src && \
11662bb2153SPaul Traina		cvs -d ${CVSROOT} co -P src
1173acfee7cSPaul Traina.if defined(INTCVSROOT)
1183acfee7cSPaul Traina	cd ${CHROOTDIR}/usr && \
1193acfee7cSPaul Traina	    cvs -d ${INTCVSROOT} co -P src/secure src/eBones
1203acfee7cSPaul Traina.endif
121bd668f6fSPoul-Henning Kamp.else
12262bb2153SPaul Traina	cd ${CHROOTDIR}/usr && rm -rf src && \
123ba99b43eSJoerg Wunsch		cvs -d ${CVSROOT} co -P -r ${RELEASETAG} src
1243acfee7cSPaul Traina.if defined(INTCVSROOT)
1253acfee7cSPaul Traina	cd ${CHROOTDIR}/usr && \
1263acfee7cSPaul Traina	    cvs -d ${INTCVSROOT} co -P -r ${RELEASETAG} src/secure src/eBones
1273acfee7cSPaul Traina.endif
128288fe4dbSPoul-Henning Kamp.endif
12962bb2153SPaul Traina.if defined(LOCAL_PATCHES) && exists(${LOCAL_PATCHES})
13062bb2153SPaul Traina	cd ${CHROOTDIR}/usr/src && patch --silent < ${LOCAL_PATCHES}
13162bb2153SPaul Traina.endif
13297febce7SJoerg Wunsch.if !defined(NOPORTS)
1332b243d29SJordan K. Hubbard	cd ${CHROOTDIR}/usr && rm -rf ports && cvs -d ${CVSROOT} co -P ports && cd ports && make readmes
1346e5cd2d2SJordan K. Hubbard.endif
135aeb6d603SJordan K. Hubbard.if !defined(NODOC)
136aeb6d603SJordan K. Hubbard	cd ${CHROOTDIR}/usr && rm -rf doc && cvs -d ${CVSROOT} co -P doc
137aeb6d603SJordan K. Hubbard.endif
138288fe4dbSPoul-Henning Kamp.endif
139288fe4dbSPoul-Henning Kamp.if make(rerelease)
140288fe4dbSPoul-Henning Kamp.if !defined(RELEASENOUPDATE)
141288fe4dbSPoul-Henning Kamp.if !defined(RELEASETAG)
142d4983966SPaul Traina	cd ${CHROOTDIR}/usr/src && cvs -q update -P -d
143288fe4dbSPoul-Henning Kamp.else
144d4983966SPaul Traina	cd ${CHROOTDIR}/usr/src && cvs -q update -P -d -r ${RELEASETAG}
145288fe4dbSPoul-Henning Kamp.endif
14697febce7SJoerg Wunsch.if !defined(NOPORTS)
1476e5cd2d2SJordan K. Hubbard	cd ${CHROOTDIR}/usr/ports && cvs -q update -P -d
1486e5cd2d2SJordan K. Hubbard.endif
149aeb6d603SJordan K. Hubbard.if !defined(NODOC)
150aeb6d603SJordan K. Hubbard	cd ${CHROOTDIR}/usr/doc && cvs -q update -P -d
151aeb6d603SJordan K. Hubbard.endif
152288fe4dbSPoul-Henning Kamp.endif
153bd668f6fSPoul-Henning Kamp.endif
154ab0e9cdcSPoul-Henning Kamp	( cd ${CHROOTDIR}/usr/src/sys/conf && \
155288fe4dbSPoul-Henning Kamp	  mv newvers.sh foo && \
156288fe4dbSPoul-Henning Kamp	  sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh&& rm foo )
15740b0c0d9SPeter Wemm	( cd ${CHROOTDIR}/usr/src/release/sysinstall && \
158288fe4dbSPoul-Henning Kamp	  sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && \
15946a7b813SJordan K. Hubbard	  mv version.h.new version.h && \
16046a7b813SJordan K. Hubbard	  echo XXXX )
161d4983966SPaul Traina	-test -f install.cfg && cp install.cfg ${CHROOTDIR}/usr/src/release
16220e5d523SJordan K. Hubbard	echo "#!/bin/sh"			> ${CHROOTDIR}/mk
16320e5d523SJordan K. Hubbard	echo "set -ex"				>> ${CHROOTDIR}/mk
164571240d7SJoerg Wunsch	echo "export CFLAGS='-O2 -pipe'"	>> ${CHROOTDIR}/mk
16546e90709SJoerg Wunsch	echo "export BUILDNAME=${BUILDNAME}"	>> ${CHROOTDIR}/mk
16646e90709SJoerg Wunsch.if defined(RELEASETAG)
16737ca025aSJoerg Wunsch	echo "export RELEASETAG=${RELEASETAG}"	>> ${CHROOTDIR}/mk
16846e90709SJoerg Wunsch.endif
16997febce7SJoerg Wunsch.if defined(NOPORTS)
17097febce7SJoerg Wunsch	echo "export NOPORTS=${NOPORTS}"	>> ${CHROOTDIR}/mk
17137ca025aSJoerg Wunsch.endif
17243276d06SJoerg Wunsch	# Don't remove this, or the build will fall over!
17343276d06SJoerg Wunsch	echo "export RELEASEDIR=/R"		>> ${CHROOTDIR}/mk
174b650e5b9SJoerg Wunsch	echo "export PATH=${BOOTSTRAPDIR}:$${PATH}" >> ${CHROOTDIR}/mk
17520e5d523SJordan K. Hubbard	echo "cd /usr/src"			>> ${CHROOTDIR}/mk
176288fe4dbSPoul-Henning Kamp.if make(release)
1772c8bf35aSJoerg Wunsch	# This eases bootstrapping from a more recent hosting environment:
1782c8bf35aSJoerg Wunsch	echo "mkdir -p /usr/lib/compat"		>> ${CHROOTDIR}/mk
1792c8bf35aSJoerg Wunsch	echo "chflags noschg /usr/lib/lib*.so.*" >> ${CHROOTDIR}/mk
1802c8bf35aSJoerg Wunsch	echo "mv /usr/lib/lib*.so.* /usr/lib/compat" >> ${CHROOTDIR}/mk
1812c8bf35aSJoerg Wunsch	echo "ldconfig /usr/lib /usr/lib/compat" >> ${CHROOTDIR}/mk
182c70e52b1SBrian Somers	echo "(cd include; make all install)"   >> ${CHROOTDIR}/mk
183288fe4dbSPoul-Henning Kamp	echo "make world"			>> ${CHROOTDIR}/mk
1843603ee30SJoerg Wunsch	echo "(cd etc; make distribution)"	>> ${CHROOTDIR}/mk
1852c8bf35aSJoerg Wunsch	# Now we've got our own shared libs, remove the bootstrapping
1862c8bf35aSJoerg Wunsch	# libs again.
1872c8bf35aSJoerg Wunsch	echo "rm -f /usr/lib/compat/*"		>> ${CHROOTDIR}/mk
1882c8bf35aSJoerg Wunsch	echo "ldconfig /usr/lib"		>> ${CHROOTDIR}/mk
189288fe4dbSPoul-Henning Kamp.endif
190288fe4dbSPoul-Henning Kamp.if make(rerelease)
19120e5d523SJordan K. Hubbard	echo "make all install"			>> ${CHROOTDIR}/mk
192288fe4dbSPoul-Henning Kamp.endif
193aeb6d603SJordan K. Hubbard.if !defined(NODOC)
194aeb6d603SJordan K. Hubbard	echo "cd /usr/doc && make all install" >> ${CHROOTDIR}/mk
195aeb6d603SJordan K. Hubbard.endif
196c67c1d08SJordan K. Hubbard	echo "cd /usr/src/release/sysinstall"	>> ${CHROOTDIR}/mk
197c67c1d08SJordan K. Hubbard	echo "make obj"				>> ${CHROOTDIR}/mk
198a3e12198SJordan K. Hubbard	echo "cd /usr/src/release"		>> ${CHROOTDIR}/mk
199630a47cfSJordan K. Hubbard	echo "make objlink"			>> ${CHROOTDIR}/mk
200c67c1d08SJordan K. Hubbard	echo "(cd obj; rm -f ${REDOREDO})"	>> ${CHROOTDIR}/mk
20120e5d523SJordan K. Hubbard	echo "make doRELEASE"			>> ${CHROOTDIR}/mk
202288fe4dbSPoul-Henning Kamp	echo "echo make ${.TARGET} Finished"	>> ${CHROOTDIR}/mk
20320e5d523SJordan K. Hubbard	chmod 755 ${CHROOTDIR}/mk
20420e5d523SJordan K. Hubbard	chroot ${CHROOTDIR} /mk
20520e5d523SJordan K. Hubbard
20640b0c0d9SPeter Wemmwhap:
20740b0c0d9SPeter Wemm	( cd ${CHROOTDIR}/usr/src/release/sysinstall && \
20840b0c0d9SPeter Wemm	  sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && mv version.h.new version.h )
20940b0c0d9SPeter Wemm
210bd668f6fSPoul-Henning Kampclean:
2116e5cd2d2SJordan K. Hubbard	rm -rf boot_crunch release.[0-9]
212bd668f6fSPoul-Henning Kamp
213fbc6f9e0SJoerg Wunsch# Clean out /R and make the directory structure.
214bd668f6fSPoul-Henning Kamprelease.1:
215fbc6f9e0SJoerg Wunsch	-mkdir /R
216fbc6f9e0SJoerg Wunsch	chflags -R noschg /R/.
217fbc6f9e0SJoerg Wunsch	rm -rf /R/*
218bd668f6fSPoul-Henning Kamp	mkdir ${RD}
219bd668f6fSPoul-Henning Kamp	mkdir ${RD}/floppies
220e12c4355SPoul-Henning Kamp	mkdir ${RD}/trees
221bd668f6fSPoul-Henning Kamp	mkdir ${RD}/dists
222bb91094aSPoul-Henning Kamp	mkdir ${RD}/kernels
223518a1d34SPoul-Henning Kamp	for i in ${ALL_DISTS} ; do \
224288fe4dbSPoul-Henning Kamp		mkdir ${RD}/trees/$$i && \
225288fe4dbSPoul-Henning Kamp		mkdir ${RD}/dists/$$i && \
226bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.root.dist \
227288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i > /dev/null && \
228bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.usr.dist \
229288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr > /dev/null && \
230a414a675SPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.include.dist \
231288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr/include > /dev/null && \
232bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.var.dist \
233e12c4355SPoul-Henning Kamp		    -p ${RD}/trees/$$i/var > /dev/null ; \
23448327bc9SPoul-Henning Kamp	done
235bd668f6fSPoul-Henning Kamp	touch release.1
2367f986648SPoul-Henning Kamp
237bd668f6fSPoul-Henning Kamp# Install the system into the various distributions.
238bd668f6fSPoul-Henning Kamprelease.2:
23997febce7SJoerg Wunsch	cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin
24097febce7SJoerg Wunsch	cd ${.CURDIR}/.. && make distribute DISTDIR=${RD}/trees
24197febce7SJoerg Wunsch.if exists(${.CURDIR}/../eBones)
24297febce7SJoerg Wunsch	cd ${.CURDIR}/../eBones && ( \
24397febce7SJoerg Wunsch		make bootstrap &&\
24497febce7SJoerg Wunsch		make obj all help-distribute DISTDIR=${RD}/trees &&\
24597febce7SJoerg Wunsch		make kprog \
24697febce7SJoerg Wunsch	)
24797febce7SJoerg Wunsch.endif
24897febce7SJoerg Wunsch	chflags -R noschg ${RD}/trees
24997febce7SJoerg Wunsch	touch release.2
25097febce7SJoerg Wunsch
25197febce7SJoerg Wunsch# Make and install the generic kernel(s).
25297febce7SJoerg Wunschrelease.3:
25316c61233SJordan K. Hubbard.for kernel in ${KERNELS}
25416c61233SJordan K. Hubbard	rm -f ${RD}/kernels/${kernel}
25516c61233SJordan K. Hubbard	rm -rf ${.CURDIR}/../sys/compile/${kernel}
25616c61233SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=${kernel}
25716c61233SJordan K. Hubbard	rm -rf ${.CURDIR}/../sys/compile/${kernel}
25816c61233SJordan K. Hubbard	ln -f ${RD}/kernels/${kernel} ${RD}/trees/bin/kernel.${kernel}
25916c61233SJordan K. Hubbard.endfor
260bd668f6fSPoul-Henning Kamp	touch release.3
261bd668f6fSPoul-Henning Kamp
26201feef2cSPoul-Henning Kamp# Make and install the three crunched binaries which live on the floppies.
263bd668f6fSPoul-Henning Kamp# You are not supposed to like this :-)
264cd6f5820SJoerg Wunsch#
265cd6f5820SJoerg Wunsch# NB: the "RELEASE_BUILD_FIXIT" magic prevents vi from including the
266cd6f5820SJoerg Wunsch# Tcl and Perl APIs.  See also /usr/src/usr.bin/vi/Makefile.
267bd668f6fSPoul-Henning Kamprelease.4:
268d50a3007SJordan K. Hubbard	cd ${.CURDIR}/sysinstall && make depend all
269518a1d34SPoul-Henning Kamp	rm -rf ${RD}/crunch
270518a1d34SPoul-Henning Kamp	mkdir -p ${RD}/crunch
271cd6f5820SJoerg Wunsch	export RELEASE_BUILD_FIXIT=noway ; \
2723525074dSPoul-Henning Kamp	for j in ${WHICH_CRUNCH} ; do \
273518a1d34SPoul-Henning Kamp		rm -rf $${j}_crunch && \
274518a1d34SPoul-Henning Kamp		mkdir $${j}_crunch && \
275518a1d34SPoul-Henning Kamp		( cd $${j}_crunch && \
276518a1d34SPoul-Henning Kamp		crunchgen ${.CURDIR}/$${j}_crunch.conf && \
277288fe4dbSPoul-Henning Kamp		${MAKE} -f $${j}_crunch.mk all NOCRYPT=yes \
2783525074dSPoul-Henning Kamp		    "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY") && \
279518a1d34SPoul-Henning Kamp		mv $${j}_crunch/$${j}_crunch ${RD}/crunch/$${j} && \
2805bb88366SJoerg Wunsch		true || { rm -rf $${j}_crunch ; false ; } ; \
281bd668f6fSPoul-Henning Kamp	done
282bd668f6fSPoul-Henning Kamp	touch release.4
283bd668f6fSPoul-Henning Kamp
28430e8b491SPoul-Henning Kamp#
28530e8b491SPoul-Henning Kamp# --==## Fix up the distributions. ##==--
28630e8b491SPoul-Henning Kamp#
287bd668f6fSPoul-Henning Kamprelease.5:
28804f11c61SJordan K. Hubbard	# Handle some grief caused by the munition braindeadness.
2894f9a3d48SJoerg Wunsch	for i in sbin/init bin/ed ; do \
2904f9a3d48SJoerg Wunsch		( cd ${.CURDIR}/../$$i; \
2914f9a3d48SJoerg Wunsch		  make -DNOCRYPT clean all distribute DISTDIR=${RD}/trees ) ; \
2924f9a3d48SJoerg Wunsch	done
2934f9a3d48SJoerg Wunsch
29430e8b491SPoul-Henning Kamp	# Move all the manpages out to their own dist
295e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/man ] ; then \
29638597f2bSJordan K. Hubbard		( cd ${RD}/trees/bin/usr/share/man; \
29738597f2bSJordan K. Hubbard		find . | cpio -dumpl ${RD}/trees/manpages/usr/share/man ) && \
29846a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/man; \
299bd668f6fSPoul-Henning Kamp	fi
30038597f2bSJordan K. Hubbard	# Create the catpages
30138597f2bSJordan K. Hubbard	if [ -d ${RD}/trees/manpages/usr/share/man ] ; then \
30238597f2bSJordan K. Hubbard		su -m man -c 'catman ${RD}/trees/manpages/usr/share/man'; \
30338597f2bSJordan K. Hubbard		( cd ${RD}/trees/manpages/usr/share/man; \
30438597f2bSJordan K. Hubbard		find cat* | cpio -dumpl ${RD}/trees/catpages/usr/share/man ) && \
30538597f2bSJordan K. Hubbard		rm -rf ${RD}/trees/manpages/usr/share/man/cat*; \
30638597f2bSJordan K. Hubbard	fi
30730e8b491SPoul-Henning Kamp	# Move all the games out to their own dist
308e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/games ] ; then \
30946a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/games . | \
31046a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/usr/games && \
31146a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/games; \
312bd668f6fSPoul-Henning Kamp	fi
313e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/games ] ; then \
31446a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/games . | \
31546a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/usr/share/games && \
31646a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/games; \
317bd668f6fSPoul-Henning Kamp	fi
318e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/var/games ] ; then \
31946a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/var/games . | \
32046a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/var/games && \
32146a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/var/games; \
322bd668f6fSPoul-Henning Kamp	fi
32330e8b491SPoul-Henning Kamp	# Move the dict out to their own dist
324e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/dict ] ; then \
32546a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/dict . | \
32646a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/dict/usr/share/dict && \
32746a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/dict; \
328bd668f6fSPoul-Henning Kamp	fi
329bd668f6fSPoul-Henning Kamp	for i in airport birthtoken flowers na.phone zipcodes ; do \
330e12c4355SPoul-Henning Kamp		if [ -f ${RD}/trees/bin/usr/share/misc/$$i ] ; then \
331e12c4355SPoul-Henning Kamp			mv ${RD}/trees/bin/usr/share/misc/$$i \
332e12c4355SPoul-Henning Kamp				${RD}/trees/dict/usr/share/misc; \
333bd668f6fSPoul-Henning Kamp		fi ; \
334bd668f6fSPoul-Henning Kamp	done
33530e8b491SPoul-Henning Kamp	# Move the info files out to their own dist
33630e8b491SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/info ] ; then \
33746a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/info . | \
33846a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/info/usr/share/info && \
33946a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/info; \
34030e8b491SPoul-Henning Kamp	fi
34130e8b491SPoul-Henning Kamp	# Move the profiled libraries out to their own dist
342e12c4355SPoul-Henning Kamp	for i in ${RD}/trees/bin/usr/lib/*_p.a ; do \
343bd668f6fSPoul-Henning Kamp		if [ -f $$i ] ; then \
344bd668f6fSPoul-Henning Kamp			mv $$i \
345e12c4355SPoul-Henning Kamp				${RD}/trees/proflibs/usr/lib ; \
346bd668f6fSPoul-Henning Kamp		fi ; \
347bd668f6fSPoul-Henning Kamp	done
3482fb96ab9SJoerg Wunsch	# Create symlinks for the MD5-based crypt lib, too.  The
3492fb96ab9SJoerg Wunsch	# automatically created links still point to the DES stuff,
3502fb96ab9SJoerg Wunsch	# which went into its own distribution.
3512fb96ab9SJoerg Wunsch	for i in ${RD}/trees/bin/usr/lib/libscrypt* ; do \
3522fb96ab9SJoerg Wunsch		c=`echo $$i | sed -e 's/libscrypt/libcrypt/'` ; \
3532fb96ab9SJoerg Wunsch		rm -f $$c ; \
3542fb96ab9SJoerg Wunsch		ln -s `basename $$i` $$c ; \
3552fb96ab9SJoerg Wunsch	done
35634fca5ddSJoerg Wunsch
35730e8b491SPoul-Henning Kamp	# Remove some files we can faster regen after installing.
358d2b98961SPoul-Henning Kamp	cd ${RD}/trees/bin/usr/share/misc && rm -f termcap.db vgrindefs.db
35930e8b491SPoul-Henning Kamp	# Remove all the directories we don't need.
36027d44115SPoul-Henning Kamp	-cd ${RD}/trees && \
36127d44115SPoul-Henning Kamp		find ${EXTRA_DISTS} -depth -type d -print | xargs rmdir
362bd668f6fSPoul-Henning Kamp	touch release.5
363f14786ddSJordan K. Hubbard
36430e8b491SPoul-Henning Kamp#
36530e8b491SPoul-Henning Kamp# --==## Make binary dists ##==--
36630e8b491SPoul-Henning Kamp#
367bd668f6fSPoul-Henning Kamprelease.6:
36895e34bfcSJordan K. Hubbard	rm -rf ${RD}/dists
36995e34bfcSJordan K. Hubbard	mkdir -p ${RD}/dists
37095e34bfcSJordan K. Hubbard	@for i in ${DISTRIBUTIONS} ; \
37195e34bfcSJordan K. Hubbard	do \
37295e34bfcSJordan K. Hubbard		if [ -d ${RD}/trees/$${i} ] ; then \
37330e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
37430e8b491SPoul-Henning Kamp				SD=${RD}/trees/$${i} \
375288fe4dbSPoul-Henning Kamp				TN=$$i TD=$$i ARG="." && \
37695e34bfcSJordan K. Hubbard			echo "$${i} distribution is finished."; \
37795e34bfcSJordan K. Hubbard		fi ; \
37895e34bfcSJordan K. Hubbard	done
37930e8b491SPoul-Henning Kamp	( cd ${RD}/dists && \
38030e8b491SPoul-Henning Kamp		if [ -f krb/krb.aa ] ; then mv krb/* des && rmdir krb ; fi )
3810412e9f7SJordan K. Hubbard	touch release.6
38295e34bfcSJordan K. Hubbard
38395e34bfcSJordan K. Hubbard
38430e8b491SPoul-Henning Kamp#
38530e8b491SPoul-Henning Kamp# --==## Make source dists ##==--
38630e8b491SPoul-Henning Kamp#
38795e34bfcSJordan K. Hubbardrelease.7:
388288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) doTARBALL SD=/usr/src \
38995e34bfcSJordan K. Hubbard		TD=src TN=sbase ARG="[A-Z]*"
390288fe4dbSPoul-Henning Kamp	@for i in `cd /usr/src && echo [a-z]*` ; do \
39130e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$i ] ; then \
39230e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
39395e34bfcSJordan K. Hubbard				TN=`echo s$$i | tr -d '.' | sed 's/usr/u/'` \
39430e8b491SPoul-Henning Kamp				SD=/usr/src TD=src ARG="$$i" ; \
39595e34bfcSJordan K. Hubbard		fi ; \
39695e34bfcSJordan K. Hubbard	done
39740b0c0d9SPeter Wemm.if defined(EXTRA_SRC)
398288fe4dbSPoul-Henning Kamp	@set ${EXTRA_SRC} && \
39940b0c0d9SPeter Wemm	while [ $$# -ge 2 ] ; do \
40030e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$1 ] ; then \
40130e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
40230e8b491SPoul-Henning Kamp				SD=/usr/src TN="s$$2" TD=src ARG="$$1" ; \
40330e8b491SPoul-Henning Kamp		fi && shift && shift ; \
40440b0c0d9SPeter Wemm	done
40540b0c0d9SPeter Wemm.endif
40695e34bfcSJordan K. Hubbard	( cd ${RD}/dists/src && \
407d3628763SRodney W. Grimes		if [ -f ssecure.aa ] ; then mv ssecure.* ../des ; fi && \
40824fe14a0SJordan K. Hubbard		if [ -f sebones.aa ] ; then mv sebones.* ../des ; fi && \
40930e8b491SPoul-Henning Kamp		if [ -f ssecure.inf ] ; then mv ssecure.inf ../des ; fi && \
41030e8b491SPoul-Henning Kamp		if [ -f sebones.inf ] ; then mv sebones.inf ../des ; fi ; )
41195e34bfcSJordan K. Hubbard	@echo "src distribution is finished."
4120412e9f7SJordan K. Hubbard	touch release.7
41395e34bfcSJordan K. Hubbard
41495e34bfcSJordan K. Hubbard# Complete the bootfd
415409f9329SJordan K. Hubbard#
416409f9329SJordan K. Hubbard# Now, just to get this picture down once and for all:
417409f9329SJordan K. Hubbard#
418409f9329SJordan K. Hubbard# +------------------------------------------------------------------------+
419409f9329SJordan K. Hubbard# |boot.flp                                                                |
420409f9329SJordan K. Hubbard# +-----+-----+------------------------------------------------------------+
421409f9329SJordan K. Hubbard# |boot1|boot2|floppy filesystem "bootfd"                                  |
422409f9329SJordan K. Hubbard# +-----+-----+-+--------------------------------------------------------+-+
423409f9329SJordan K. Hubbard#               |kernel                                                  |
424409f9329SJordan K. Hubbard#               +------------+-----------------------------------------+-+
425409f9329SJordan K. Hubbard#                            |mfs filesystem "mfsfd"                   |
426409f9329SJordan K. Hubbard#                            +-----------------------------------------+
427409f9329SJordan K. Hubbard#
428409f9329SJordan K. Hubbard
429d50a3007SJordan K. Hubbardrelease.8: write_mfs_in_kernel dumpnlist
430409f9329SJordan K. Hubbard	rm -rf ${RD}/mfsfd
431409f9329SJordan K. Hubbard	mkdir ${RD}/mfsfd
432409f9329SJordan K. Hubbard	cd ${RD}/mfsfd && \
433b386088bSJordan K. Hubbard		mkdir -p etc dev mnt stand/help
4343df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \
435a91fd119SPoul-Henning Kamp		DIR=${RD}/mfsfd/stand ZIP=false
4363df0e2afSPoul-Henning Kamp	( cd ${RD}/trees/bin/dev && \
43739ae3f15SJordan K. Hubbard		ls console tty ttyv0 ttyv1 ttyv2 ttyv3 null zero \
4385bf8036aSJordan K. Hubbard		*[swo]d* cuaa[01] cuaa[23] fd[01] rfd[01] \
4390e9e4efaSJordan K. Hubbard		cd0a mcd0a scd0a matcd0a wcd0c rst0 rft0 rwt0 | \
440409f9329SJordan K. Hubbard	cpio -dump ${RD}/mfsfd/dev )
4415bf8036aSJordan K. Hubbard	( cd ${RD}/mfsfd/dev && rm -f *[swo]d*[bdefgh] )
4423df0e2afSPoul-Henning Kamp	cd ${RD}/trees/bin && ls ${BOOT1} | cpio -dump ${RD}/mfsfd/stand
443d3628763SRodney W. Grimes	echo "nameserver      42/tcp name"	> ${RD}/mfsfd/stand/etc/services
444d3628763SRodney W. Grimes	echo "ftp             21/tcp"		>> ${RD}/mfsfd/stand/etc/services
445d3628763SRodney W. Grimes	echo "domain          53/tcp          nameserver" >> ${RD}/mfsfd/stand/etc/services
446d3628763SRodney W. Grimes	echo "domain          53/udp          nameserver" >> ${RD}/mfsfd/stand/etc/services
447e7fc885eSJordan K. Hubbard	echo "cmd             514/tcp    shell" >> ${RD}/mfsfd/stand/etc/services
4486545b6a5SJordan K. Hubbard	gzip -c ${.CURDIR}/../COPYRIGHT > ${RD}/mfsfd/stand/help/COPYRIGHT.hlp.gz
449d4983966SPaul Traina	-test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd
4506545b6a5SJordan K. Hubbard	@echo "Making the regular boot floppy."
45117078dccSJordan K. Hubbard	tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \
452409f9329SJordan K. Hubbard		tar xvf - -C ${RD}/mfsfd/stand
4536545b6a5SJordan K. Hubbard	@echo "Compressing doc files..."
4546545b6a5SJordan K. Hubbard	@gzip -9 ${RD}/mfsfd/stand/help/*.hlp
455c66cda21SPoul-Henning Kamp	sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${BOOTMFSSIZE} ${RD}/mfsfd \
456288fe4dbSPoul-Henning Kamp		${MFSINODE} minimum
457288fe4dbSPoul-Henning Kamp	mv fs-image fs-image.std
458288fe4dbSPoul-Henning Kamp	mv fs-image.size fs-image.std.size
459288fe4dbSPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=std
46030e8b491SPoul-Henning Kamp	mv ${RD}/floppies/bootstd.flp ${RD}/floppies/boot.flp
4616545b6a5SJordan K. Hubbard	@echo "Regular boot floppy made."
4620412e9f7SJordan K. Hubbard	touch release.8
463bd668f6fSPoul-Henning Kamp
46430e8b491SPoul-Henning Kamp#
46530e8b491SPoul-Henning Kamp# --==## Create a fixit floppy ##==--
46630e8b491SPoul-Henning Kamp#
467b53e8a34SJordan K. Hubbardrelease.9:
468518a1d34SPoul-Henning Kamp	rm -rf ${RD}/fixitfd
469518a1d34SPoul-Henning Kamp	mkdir ${RD}/fixitfd
470518a1d34SPoul-Henning Kamp	cd ${RD}/fixitfd && \
471fbc6f9e0SJoerg Wunsch		mkdir -p dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp \
472fbc6f9e0SJoerg Wunsch		usr/share/misc
4733df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=fixit \
474518c7f2aSJoerg Wunsch		DIR=${RD}/fixitfd/stand ZIP=false
47530e8b491SPoul-Henning Kamp	( cd ${RD}/fixitfd/dev && \
476a18763d0SJoerg Wunsch		sed -e '/^PATH/s/^/#/' ${RD}/trees/bin/dev/MAKEDEV > MAKEDEV && \
477a18763d0SJoerg Wunsch		chmod 755 MAKEDEV && \
47830e8b491SPoul-Henning Kamp		sh MAKEDEV all )
479518c7f2aSJoerg Wunsch	cp ${RD}/trees/bin/etc/spwd.db ${RD}/trees/bin/etc/group \
480518c7f2aSJoerg Wunsch		${RD}/trees/bin/etc/protocols ${RD}/fixitfd/etc
481fbc6f9e0SJoerg Wunsch	cp ${RD}/trees/bin/usr/share/misc/scsi_modes \
482fbc6f9e0SJoerg Wunsch		${RD}/fixitfd/usr/share/misc
483e12c4355SPoul-Henning Kamp	cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile
484518c7f2aSJoerg Wunsch	cp ${.CURDIR}/fixit.services ${RD}/fixitfd/etc/services
485ed228eb6SJoerg Wunsch	cp ${.CURDIR}/tar.sh ${RD}/fixitfd/stand/tar
486ed228eb6SJoerg Wunsch	chmod 555 ${RD}/fixitfd/stand/tar
487c66cda21SPoul-Henning Kamp	sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/fixitfd \
488518c7f2aSJoerg Wunsch		${FIXITINODE} ${FDLABEL}
489288fe4dbSPoul-Henning Kamp	mv fs-image ${RD}/floppies/fixit.flp
4906e5cd2d2SJordan K. Hubbard# Do our last minute floppies directory setup in a convenient place.
4916e5cd2d2SJordan K. Hubbard	cp ${.CURDIR}/floppies/README.TXT ${RD}/floppies/README.TXT
4926e5cd2d2SJordan K. Hubbard	@(cd ${RD}/floppies; md5 * > CHECKSUM.MD5)
493b53e8a34SJordan K. Hubbard	touch release.9
4943bc93c76SPoul-Henning Kamp
49530e8b491SPoul-Henning Kamp#
49630e8b491SPoul-Henning Kamp# --==## Setup a suitable ftp-area ##==--
49730e8b491SPoul-Henning Kamp#
498e12c4355SPoul-Henning Kampftp.1:
499ae33fac5SJordan K. Hubbard	mkdir -p ${FD}
500a8335764SPoul-Henning Kamp	cd ${RD} && find floppies -print | cpio -dumpl ${FD}
501a8335764SPoul-Henning Kamp	cd ${RD}/dists && find . -print | cpio -dumpl ${FD}
5025bf8036aSJordan K. Hubbard	cp ${.CURDIR}/ABOUT.TXT ${FD}/ABOUT.TXT
50316805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/readme.hlp ${FD}/README.TXT
50416805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/hardware.hlp ${FD}/HARDWARE.TXT
50516805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/install.hlp ${FD}/INSTALL.TXT
50616805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/relnotes.hlp ${FD}/RELNOTES.TXT
507cf078de0SJoerg Wunsch	echo "CD_VERSION = ${BUILDNAME}" > ${FD}/cdrom.inf
5083bc93c76SPoul-Henning Kamp
50930e8b491SPoul-Henning Kamp#
51030e8b491SPoul-Henning Kamp# --==## Setup a suitable cdrom-area ##==--
51130e8b491SPoul-Henning Kamp#
512c5b0a909SPoul-Henning Kampcdrom.1:
5131bac119bSJordan K. Hubbard	mkdir -p ${CD_DISC1} ${CD_DISC2}
5141bac119bSJordan K. Hubbard	cd ${RD} && find floppies -print | cpio -dumpl ${CD_DISC1}
5151bac119bSJordan K. Hubbard	cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DISC1}
5161bac119bSJordan K. Hubbard	ln -f ${RD}/kernels/MFSKERNEL.std ${CD_DISC1}/kernel
5171bac119bSJordan K. Hubbard	ln -f ${RD}/trees/bin/usr/mdec/fbsdboot.exe ${CD_DISC1}
518c5b0a909SPoul-Henning Kamp	for i in ${DISTRIBUTIONS} ; \
519c5b0a909SPoul-Henning Kamp	do \
520c5b0a909SPoul-Henning Kamp		if [ -d ${RD}/trees/$${i} ] ; then \
52118926d84SJordan K. Hubbard			chflags -R noschg ${RD}/trees/$${i} ; \
52201feef2cSPoul-Henning Kamp			( cd ${RD}/trees/$${i} && \
5231bac119bSJordan K. Hubbard			find . -depth -print | cpio -dumpl ${CD_DISC2} ) ; \
524c5b0a909SPoul-Henning Kamp		fi \
525c5b0a909SPoul-Henning Kamp	done
52697febce7SJoerg Wunsch	rm -f ${CD_DISC2}/.profile
52797febce7SJoerg Wunsch	cp ${.CURDIR}/fixit.profile ${CD_DISC2}/.profile
5281bac119bSJordan K. Hubbard	echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC1}/cdrom.inf
52997febce7SJoerg Wunsch	echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf
5301bac119bSJordan K. Hubbard	cp ${.CURDIR}/ABOUT.TXT ${CD_DISC1}/ABOUT.TXT
5311bac119bSJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/readme.hlp ${CD_DISC1}/README.TXT
5321bac119bSJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/hardware.hlp ${CD_DISC1}/HARDWARE.TXT
5331bac119bSJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/install.hlp ${CD_DISC1}/INSTALL.TXT
5341bac119bSJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/relnotes.hlp ${CD_DISC1}/RELNOTES.TXT
53597febce7SJoerg Wunsch.if !defined(NOPORTS)
5366e5cd2d2SJordan K. Hubbard	ln -s ../ports ${CD_DISC2}/usr/ports
537bccbd9e7SJordan K. Hubbard.endif
5386e5cd2d2SJordan K. Hubbard#
5396e5cd2d2SJordan K. Hubbard# --==## And finally, create the ports distribution & tarball ##==--
5406e5cd2d2SJordan K. Hubbard#
5416e5cd2d2SJordan K. Hubbard# NOTE: Both ftp.1 and cdrom.1 must be run before this target or it will die
5426e5cd2d2SJordan K. Hubbard#       a quick and gruesome death.  We also expect the release engineer to
5436e5cd2d2SJordan K. Hubbard#       manually populate ports/distfiles on the 2nd CDROM.
54497febce7SJoerg Wunsch
5456e5cd2d2SJordan K. Hubbardports.1:
5466e5cd2d2SJordan K. Hubbard	tar -cBf - -C /usr ports | tar xBpf - -C ${CD_DISC2} && \
5476e5cd2d2SJordan K. Hubbard		mkdir -p ${CD_DISC1}/ports && tar -czf ${CD_DISC1}/ports/ports.tgz -C /usr ports && \
548ff7c711cSJoerg Wunsch		cp ${.CURDIR}/scripts/ports-install.sh ${CD_DISC1}/ports/install.sh && \
54997febce7SJoerg Wunsch		(cd ${CD_DISC1}/ports; md5 * > CHECKSUM.MD5) &&
5506e5cd2d2SJordan K. Hubbard		tar -cBf - -C ${CD_DISC1} ports | tar -xBf - -C ${FD}
5516e5cd2d2SJordan K. Hubbard
552c5b0a909SPoul-Henning Kamp
5537eb11201SPoul-Henning Kamp# Various "subroutine" and other supporting targets.
5547eb11201SPoul-Henning Kamp
555bd668f6fSPoul-Henning KampdoTARBALL:
556bd668f6fSPoul-Henning Kamp.if !defined(SD)
557288fe4dbSPoul-Henning Kamp	@echo "SD undefined in doTARBALL" && exit 1
558bd668f6fSPoul-Henning Kamp.endif
559bd668f6fSPoul-Henning Kamp.if !defined(TD)
560288fe4dbSPoul-Henning Kamp	@echo "TB undefined in doTARBALL" && exit 1
561bd668f6fSPoul-Henning Kamp.endif
562bd668f6fSPoul-Henning Kamp.if !defined(ARG)
563288fe4dbSPoul-Henning Kamp	@echo "ARG undefined in doTARBALL" && exit 1
564bd668f6fSPoul-Henning Kamp.endif
565836ed9f2SPoul-Henning Kamp	rm -rf ${RD}/dists/${TD}/${TN}*
566e12c4355SPoul-Henning Kamp	mkdir -p ${RD}/dists/${TD}
567d2b98961SPoul-Henning Kamp	( cd ${SD} && \
568d2b98961SPoul-Henning Kamp		tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \
569d2b98961SPoul-Henning Kamp		echo rolling ${TD}/$$tn tarball &&\
5700ef3fb22SJoerg Wunsch		tar --exclude CVS --exclude obj --exclude BOOTMFS -cf - ${ARG} | \
57195e34bfcSJordan K. Hubbard		${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \
572ac0a5268SJordan K. Hubbard		sh ${.CURDIR}/info.sh ${RD}/dists/${TD}/$$tn > \
573ac0a5268SJordan K. Hubbard		   ${RD}/dists/${TD}/$$tn.inf && \
5741e104a1eSJordan K. Hubbard		if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \
5751e104a1eSJordan K. Hubbard		  cp -p ${.CURDIR}/scripts/$${TD}-install.sh ${RD}/dists/${TD}/install.sh; \
5761e104a1eSJordan K. Hubbard		fi && \
57716c61233SJordan K. Hubbard		if [ "${SD}" != "/usr/src" ]; then \
57816c61233SJordan K. Hubbard			mtree -c -i -p ${SD}/${ARG} \
57916c61233SJordan K. Hubbard			  -k gname,md5digest,mode,nlink,uname,size,link,type \
58091f2535eSJordan K. Hubbard			  > ${RD}/dists/${TD}/$$tn.mtree ; \
58191f2535eSJordan K. Hubbard		else \
58291f2535eSJordan K. Hubbard			true; \
58391f2535eSJordan K. Hubbard		fi; \
58491f2535eSJordan K. Hubbard		(cd ${RD}/dists/${TD}; \
58591f2535eSJordan K. Hubbard		   rm -f CHECKSUM.MD5; \
58691f2535eSJordan K. Hubbard		   md5 * > CHECKSUM.MD5) \
58791f2535eSJordan K. Hubbard	)
5887eb11201SPoul-Henning Kamp
5897eb11201SPoul-Henning KampdoRELEASE:  release.1 release.2 release.3 release.4 release.5 release.6 \
590ec1ef765SPeter Wemm		release.7 release.8 release.9
59197febce7SJoerg Wunsch.if defined(NOPORTS)
592bccbd9e7SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} cdrom.1 ftp.1
593bccbd9e7SJordan K. Hubbard.else
5946e5cd2d2SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} cdrom.1 ftp.1 ports.1
595bccbd9e7SJordan K. Hubbard.endif
5967eb11201SPoul-Henning Kamp	@echo "Release done"
5977eb11201SPoul-Henning Kamp
5980ead1f1dSJordan K. Hubbardfloppies:
59940b0c0d9SPeter Wemm	cd ${.CURDIR} && ${MAKE} boot.flp
60040b0c0d9SPeter Wemm	cd ${.CURDIR} && ${MAKE} fixit.flp
6017854541aSJordan K. Hubbard	cd ${RD} && find floppies -print | cpio -dumpl ${FD}
6020ead1f1dSJordan K. Hubbard
6033525074dSPoul-Henning Kampboot.flp:
6040412e9f7SJordan K. Hubbard	rm -f release.4 release.8
605c0b83abeSPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} release.4 release.8 WHICH_CRUNCH=boot
6063525074dSPoul-Henning Kamp
607e841846bSPoul-Henning Kampfixit.flp:
608b53e8a34SJordan K. Hubbard	rm -f release.4 release.9
609b53e8a34SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} release.4 release.9 WHICH_CRUNCH=fixit
610e841846bSPoul-Henning Kamp
611409f9329SJordan K. Hubbardwrite_mfs_in_kernel:	${.CURDIR}/write_mfs_in_kernel.c
612409f9329SJordan K. Hubbard	${CC} ${CFLAGS} -o write_mfs_in_kernel ${.CURDIR}/write_mfs_in_kernel.c
613409f9329SJordan K. Hubbard
614d50a3007SJordan K. Hubbarddumpnlist:	${.CURDIR}/dumpnlist.c
615d50a3007SJordan K. Hubbard	${CC} ${CFLAGS} -o dumpnlist ${.CURDIR}/dumpnlist.c
616d50a3007SJordan K. Hubbard
617518a1d34SPoul-Henning KampinstallCRUNCH:
618518a1d34SPoul-Henning Kamp.if !defined(CRUNCH)
619288fe4dbSPoul-Henning Kamp	@echo "CRUNCH undefined in installCRUNCH" && exit 1
620518a1d34SPoul-Henning Kamp.endif
621518a1d34SPoul-Henning Kamp.if !defined(DIR)
622288fe4dbSPoul-Henning Kamp	@echo "DIR undefined in installCRUNCH" && exit 1
623518a1d34SPoul-Henning Kamp.endif
624518a1d34SPoul-Henning Kamp.if !defined(ZIP)
625288fe4dbSPoul-Henning Kamp	@echo "ZIP undefined in installCRUNCH" && exit 1
626518a1d34SPoul-Henning Kamp.endif
627518a1d34SPoul-Henning Kamp	if ${ZIP} ; then \
628518a1d34SPoul-Henning Kamp		gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \
629518a1d34SPoul-Henning Kamp	else \
630518a1d34SPoul-Henning Kamp		ln -f ${RD}/crunch/${CRUNCH} ${DIR}/${CRUNCH}_crunch ; \
631518a1d34SPoul-Henning Kamp	fi
632518a1d34SPoul-Henning Kamp	chmod 555 ${DIR}/${CRUNCH}_crunch
633518a1d34SPoul-Henning Kamp	for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \
634518a1d34SPoul-Henning Kamp		ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \
635518a1d34SPoul-Henning Kamp	done
636288fe4dbSPoul-Henning Kamp
637288fe4dbSPoul-Henning Kamp#
638288fe4dbSPoul-Henning Kamp# --==## Compile a kernel by name ${KERNEL} ##==--
639288fe4dbSPoul-Henning Kamp#
640288fe4dbSPoul-Henning Kamp# We don't erase the sys/compile/${KERNEL} directory, since somebody
641288fe4dbSPoul-Henning Kamp# may want to reuse it (release.8 presently)
642288fe4dbSPoul-Henning Kamp#
643288fe4dbSPoul-Henning KampdoKERNEL:
644288fe4dbSPoul-Henning Kamp	rm -f ${RD}/kernels/${KERNEL}
645288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../sys/i386/conf && config -n ${KERNEL}
646288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../sys/compile/${KERNEL} && \
647288fe4dbSPoul-Henning Kamp			make  depend && \
648288fe4dbSPoul-Henning Kamp			make  kernel && \
649288fe4dbSPoul-Henning Kamp			cp kernel ${RD}/kernels/${KERNEL}
650288fe4dbSPoul-Henning Kamp
651288fe4dbSPoul-Henning Kamp#
652288fe4dbSPoul-Henning Kamp# --==## Put a filesystem into a BOOTMFS kernel ##==--
653288fe4dbSPoul-Henning Kamp#
654288fe4dbSPoul-Henning KampdoMFSKERN:
655d50a3007SJordan K. Hubbard	@rm -f ${RD}/kernels/BOOTMFS.${FSIMAGE}
656d50a3007SJordan K. Hubbard	@rm -f /sys/compile/BOOTMFS/mfs_vfsops.o
657d50a3007SJordan K. Hubbard	@cd ${.CURDIR}/../sys/i386/conf && \
65816c61233SJordan K. Hubbard	  sed	-e '/SYSV/d' \
65916c61233SJordan K. Hubbard		-e '/pty/d' \
66016c61233SJordan K. Hubbard		-e '/PROCFS/d' \
661a7c2b4b0SPaul Traina		-e '/KTRACE/d' \
66216c61233SJordan K. Hubbard		-e 's/GENERIC/BOOTMFS/g' \
66316c61233SJordan K. Hubbard		-e '/maxusers/s/10/4/' < GENERIC > BOOTMFS && \
664a91fd119SPoul-Henning Kamp	  echo "options  MFS" >> BOOTMFS && \
66516c61233SJordan K. Hubbard	  echo "options  NFS_NOSERVER" >> BOOTMFS && \
666d50a3007SJordan K. Hubbard	  echo 'options  "MAXCONS=4"' >> BOOTMFS && \
667d50a3007SJordan K. Hubbard	  echo "options  USERCONFIG_BOOT" >> BOOTMFS
668d50a3007SJordan K. Hubbard	@echo "options \"MFS_ROOT=`cat fs-image.${FSIMAGE}.size`\"" >> \
6694676f742SJordan K. Hubbard	  ${.CURDIR}/../sys/i386/conf/BOOTMFS
670a590cd43SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=BOOTMFS
671d50a3007SJordan K. Hubbard	@rm -rf ${RD}/boot.${FSIMAGE}
672d50a3007SJordan K. Hubbard	@mkdir  ${RD}/boot.${FSIMAGE}
673d50a3007SJordan K. Hubbard	@mv ${RD}/kernels/BOOTMFS ${RD}/kernels/BOOTMFS.${FSIMAGE}
674d50a3007SJordan K. Hubbard	@cp ${RD}/kernels/BOOTMFS.${FSIMAGE} ${RD}/boot.${FSIMAGE}/kernel
675b434db23SJordan K. Hubbard	@vnconfig /dev/vn0 fs-image.${FSIMAGE}
676b434db23SJordan K. Hubbard	@mkdir -p /tmp/mnt_xx
677b434db23SJordan K. Hubbard	@mount /dev/vn0 /tmp/mnt_xx
678b434db23SJordan K. Hubbard	./dumpnlist ${RD}/boot.${FSIMAGE}/kernel > /tmp/mnt_xx/stand/symbols
679b434db23SJordan K. Hubbard	@umount /tmp/mnt_xx
680b434db23SJordan K. Hubbard	@vnconfig -u /dev/vn0
681b434db23SJordan K. Hubbard	@rmdir /tmp/mnt_xx
682288fe4dbSPoul-Henning Kamp	./write_mfs_in_kernel ${RD}/boot.${FSIMAGE}/kernel \
683288fe4dbSPoul-Henning Kamp		fs-image.${FSIMAGE}
684288fe4dbSPoul-Henning Kamp	kzip -v ${RD}/boot.${FSIMAGE}/kernel
685d50a3007SJordan K. Hubbard	@mv ${RD}/boot.${FSIMAGE}/kernel ${RD}/kernels/MFSKERNEL.${FSIMAGE}
686d50a3007SJordan K. Hubbard	@mv ${RD}/boot.${FSIMAGE}/kernel.kz ${RD}/boot.${FSIMAGE}/kernel
687281e052eSJordan K. Hubbard	@cp ${.CURDIR}/../sys/i386/boot/biosboot/boot.help ${RD}/boot.${FSIMAGE}
688281e052eSJordan K. Hubbard	@touch ${RD}/boot.${FSIMAGE}/boot.config
689d50a3007SJordan K. Hubbard	@rm -f ${RD}/floppies/boot${FSIMAGE}.flp
690b386088bSJordan K. Hubbard	sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/boot.${FSIMAGE} \
691b386088bSJordan K. Hubbard		${BOOTINODE} ${FDLABEL}
692b386088bSJordan K. Hubbard	mv fs-image ${RD}/floppies/boot${FSIMAGE}.flp
693288fe4dbSPoul-Henning Kamp
6942469b9a2SPoul-Henning Kamp.include <bsd.prog.mk>
695