xref: /freebsd/release/Makefile (revision 18926d84a67b560558c4870464c62fd83ad32fe2)
118926d84SJordan K. Hubbard#	$Id: Makefile,v 1.266 1996/12/29 05:28:37 jkh Exp $
20202c140SRodney W. Grimes#
3bd668f6fSPoul-Henning Kamp# How to roll a release:
4bd668f6fSPoul-Henning Kamp#
5bd668f6fSPoul-Henning Kamp#	make release CHROOTDIR=<lots of disk> [ RELEASETAG=something ]
6bd668f6fSPoul-Henning Kamp#
7bd668f6fSPoul-Henning Kamp# As far as I know, this will roll everything nicely into the "stage"
8bd668f6fSPoul-Henning Kamp# directory.  I still need to write the two rules to move that into
9bd668f6fSPoul-Henning Kamp# the "cdrom" and "ftp" directories.
10bd668f6fSPoul-Henning Kamp# I also need to "make ports" and install those, but I'm not going to do
11bd668f6fSPoul-Henning Kamp# that on a 14.4 line just yet...
12409f9329SJordan K. Hubbard#
13f1a03fb6SAndreas Klemm# please note: the vn driver has to be compiled into your kernel,
14f1a03fb6SAndreas Klemm# otherwise the target 'release.8' and possibly others will fail.
15f1a03fb6SAndreas Klemm#
16ab0e9cdcSPoul-Henning Kamp# SET THIS !!!
17fe85fe95SJordan K. Hubbard#BUILDNAME=2.2-960501-SNAP
18fe85fe95SJordan K. Hubbard#CHROOTDIR=/junk/release
19ab0e9cdcSPoul-Henning Kamp# If this is a RELEASE, then set
20b7738481SJoerg Wunsch#RELEASETAG=RELENG_2_1_0
21ab0e9cdcSPoul-Henning Kamp
22bd668f6fSPoul-Henning Kamp# Things which without too much trouble can be considered variables
23785bd4b4SPoul-Henning Kamp
24ec1ef765SPeter WemmCOMPAT_DISTS=	compat1x compat20 compat21
2538597f2bSJordan K. HubbardEXPORT_DISTS=	games manpages catpages proflibs dict info doc ${COMPAT_DISTS}
26d3628763SRodney W. GrimesEXTRA_DISTS=	krb des ${EXPORT_DISTS}
27518a1d34SPoul-Henning KampALL_DISTS=	bin ${EXTRA_DISTS}
2816c61233SJordan K. HubbardKERNELS?=	GENERIC
29785bd4b4SPoul-Henning Kamp
3040b0c0d9SPeter Wemm# Extra source tarballs; each argument is a pair of source dir and
3140b0c0d9SPeter Wemm# distribution name.  The dist name should not exceed 7 characters
3240b0c0d9SPeter Wemm# (another "s" for "source" will be prepended).
3340b0c0d9SPeter WemmEXTRA_SRC+=	usr.sbin/sendmail/cf smailcf
3440b0c0d9SPeter Wemm
35d3628763SRodney W. GrimesBOOT1=	etc/protocols etc/sysconfig
361cdab3d4SJordan K. Hubbard
377c474103SPoul-Henning Kamp# mountpoint for filesystems.
387c474103SPoul-Henning KampMNT=			/mnt
39518a1d34SPoul-Henning Kamp
40518a1d34SPoul-Henning Kamp# other floppy parameters.
4132dc5e88SJordan K. HubbardFDSIZE=			1440
4232dc5e88SJordan K. HubbardFDLABEL=		fd1440
430202c140SRodney W. Grimes
4400063f88SPoul-Henning KampZIPNSPLIT=		gzip --no-name -9 -c | split -b 240640 -
4500063f88SPoul-Henning Kamp
46288fe4dbSPoul-Henning Kamp# Upper size for the mfs in the boot.flp kernel.
47ae33fac5SJordan K. Hubbard# These are adjusted down to the minimum needed by doFS.sh.
4832dc5e88SJordan K. HubbardBOOTMFSSIZE=		1440
49e050c776SJordan K. HubbardMFSINODE=		80000
50518c7f2aSJoerg WunschFIXITINODE=		28000
51d5cf6f60SAndrey A. Chernov
52bd668f6fSPoul-Henning Kamp# Things which will get you into trouble if you change them
53785bd4b4SPoul-Henning KampDISTRIBUTIONS=		bin ${EXTRA_DISTS}
5448327bc9SPoul-Henning KampMTREEFILES=		${.CURDIR}/../etc/mtree
55bd668f6fSPoul-Henning KampRD=			${RELEASEDIR}/stage
56e12c4355SPoul-Henning KampFD=			${RELEASEDIR}/ftp
57e12c4355SPoul-Henning KampCD=			${RELEASEDIR}/cdrom
5848327bc9SPoul-Henning Kamp
593525074dSPoul-Henning Kamp.if !defined(WHICH_CRUNCH)
60b53e8a34SJordan K. HubbardWHICH_CRUNCH=	boot fixit
613525074dSPoul-Henning Kamp.endif
623525074dSPoul-Henning Kamp
6316c61233SJordan K. HubbardREDO?=		sysinstall
6416c61233SJordan K. HubbardREDOSED=	sed -e 's/dirs/release.1/' -e 's/trees/release.2/' \
6516c61233SJordan K. Hubbard		    -e 's/kerns/release.3/' -e 's/sysinstall/release.4/' \
6616c61233SJordan K. Hubbard		    -e 's/fixup/release.5/' -e 's/tarbin/release.6/' \
6716c61233SJordan K. Hubbard		    -e 's/tarsrc/release.7/' -e 's/boot\.flp/release.8/' \
6816c61233SJordan K. Hubbard		    -e 's/fixit\.flp/release.9/' -e 's/ftp/ftp.1/' \
6916c61233SJordan K. Hubbard		    -e 's/cdrom/cdrom.1/'
7016c61233SJordan K. Hubbard
7116c61233SJordan K. HubbardREDOREDO!=	echo ${REDO} | ${REDOSED}
7216c61233SJordan K. Hubbard
73288fe4dbSPoul-Henning Kamprerelease release:
7420e5d523SJordan K. Hubbard.if !defined(CHROOTDIR) || !defined(BUILDNAME)
7520e5d523SJordan K. Hubbard	@echo "To make a release you must set CHROOTDIR and BUILDNAME" && false
767eb11201SPoul-Henning Kamp.endif
77288fe4dbSPoul-Henning Kamp.if make(release)
78682078bdSRodney W. Grimes.if exists(${CHROOTDIR})
79bd668f6fSPoul-Henning Kamp	chflags -R noschg ${CHROOTDIR}/.
80b7738481SJoerg Wunsch	-rm -rf ${CHROOTDIR}
81682078bdSRodney W. Grimes.endif
82b7738481SJoerg Wunsch	-mkdir -p ${CHROOTDIR}
83288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../etc && ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR}
84288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../etc && ${MAKE} distribution DESTDIR=${CHROOTDIR}
85849635f6SPoul-Henning Kamp	cd ${.CURDIR}/.. && ${MAKE} install DESTDIR=${CHROOTDIR} NOMAN=1
86bd668f6fSPoul-Henning Kamp.if !defined(RELEASETAG)
8762bb2153SPaul Traina	cd ${CHROOTDIR}/usr && rm -rf src && \
8862bb2153SPaul Traina		cvs -d ${CVSROOT} co -P src
893acfee7cSPaul Traina.if defined(INTCVSROOT)
903acfee7cSPaul Traina	cd ${CHROOTDIR}/usr && \
913acfee7cSPaul Traina	    cvs -d ${INTCVSROOT} co -P src/secure src/eBones
923acfee7cSPaul Traina.endif
93bd668f6fSPoul-Henning Kamp.else
9462bb2153SPaul Traina	cd ${CHROOTDIR}/usr && rm -rf src && \
95ba99b43eSJoerg Wunsch		cvs -d ${CVSROOT} co -P -r ${RELEASETAG} src
963acfee7cSPaul Traina.if defined(INTCVSROOT)
973acfee7cSPaul Traina	cd ${CHROOTDIR}/usr && \
983acfee7cSPaul Traina	    cvs -d ${INTCVSROOT} co -P -r ${RELEASETAG} src/secure src/eBones
993acfee7cSPaul Traina.endif
100288fe4dbSPoul-Henning Kamp.endif
10162bb2153SPaul Traina.if defined(LOCAL_PATCHES) && exists(${LOCAL_PATCHES})
10262bb2153SPaul Traina	cd ${CHROOTDIR}/usr/src && patch --silent < ${LOCAL_PATCHES}
10362bb2153SPaul Traina.endif
104288fe4dbSPoul-Henning Kamp.endif
105288fe4dbSPoul-Henning Kamp.if make(rerelease)
106288fe4dbSPoul-Henning Kamp.if !defined(RELEASENOUPDATE)
107288fe4dbSPoul-Henning Kamp.if !defined(RELEASETAG)
108d4983966SPaul Traina	cd ${CHROOTDIR}/usr/src && cvs -q update -P -d
109288fe4dbSPoul-Henning Kamp.else
110d4983966SPaul Traina	cd ${CHROOTDIR}/usr/src && cvs -q update -P -d -r ${RELEASETAG}
111288fe4dbSPoul-Henning Kamp.endif
112288fe4dbSPoul-Henning Kamp.endif
113bd668f6fSPoul-Henning Kamp.endif
114ab0e9cdcSPoul-Henning Kamp	( cd ${CHROOTDIR}/usr/src/sys/conf && \
115288fe4dbSPoul-Henning Kamp	  mv newvers.sh foo && \
116288fe4dbSPoul-Henning Kamp	  sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh&& rm foo )
11740b0c0d9SPeter Wemm	( cd ${CHROOTDIR}/usr/src/release/sysinstall && \
118288fe4dbSPoul-Henning Kamp	  sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && \
11946a7b813SJordan K. Hubbard	  mv version.h.new version.h && \
12046a7b813SJordan K. Hubbard	  echo XXXX )
121d4983966SPaul Traina	-test -f install.cfg && cp install.cfg ${CHROOTDIR}/usr/src/release
12220e5d523SJordan K. Hubbard	echo "#!/bin/sh"			> ${CHROOTDIR}/mk
12320e5d523SJordan K. Hubbard	echo "set -ex"				>> ${CHROOTDIR}/mk
124288fe4dbSPoul-Henning Kamp	echo "CFLAGS='-O2 -pipe'"		>> ${CHROOTDIR}/mk
125d3628763SRodney W. Grimes	echo "export CFLAGS"			>> ${CHROOTDIR}/mk
126d3628763SRodney W. Grimes	echo "RELEASEDIR=/R"			>> ${CHROOTDIR}/mk
127d3628763SRodney W. Grimes	echo "export RELEASEDIR"		>> ${CHROOTDIR}/mk
12820e5d523SJordan K. Hubbard	echo "cd /usr/src"			>> ${CHROOTDIR}/mk
129288fe4dbSPoul-Henning Kamp.if make(release)
130288fe4dbSPoul-Henning Kamp	echo "make world"			>> ${CHROOTDIR}/mk
131288fe4dbSPoul-Henning Kamp.endif
132288fe4dbSPoul-Henning Kamp.if make(rerelease)
13320e5d523SJordan K. Hubbard	echo "make all install"			>> ${CHROOTDIR}/mk
134288fe4dbSPoul-Henning Kamp.endif
135c67c1d08SJordan K. Hubbard	echo "cd /usr/src/release/sysinstall"	>> ${CHROOTDIR}/mk
136c67c1d08SJordan K. Hubbard	echo "make obj"				>> ${CHROOTDIR}/mk
137a3e12198SJordan K. Hubbard	echo "cd /usr/src/release"		>> ${CHROOTDIR}/mk
138b0e26113SJordan K. Hubbard	echo "make obj OBJLINK=yes"		>> ${CHROOTDIR}/mk
139c67c1d08SJordan K. Hubbard	echo "(cd obj; rm -f ${REDOREDO})"	>> ${CHROOTDIR}/mk
14020e5d523SJordan K. Hubbard	echo "make doRELEASE"			>> ${CHROOTDIR}/mk
141288fe4dbSPoul-Henning Kamp	echo "echo make ${.TARGET} Finished"	>> ${CHROOTDIR}/mk
14220e5d523SJordan K. Hubbard	chmod 755 ${CHROOTDIR}/mk
14320e5d523SJordan K. Hubbard	chroot ${CHROOTDIR} /mk
14420e5d523SJordan K. Hubbard
14540b0c0d9SPeter Wemmwhap:
14640b0c0d9SPeter Wemm	( cd ${CHROOTDIR}/usr/src/release/sysinstall && \
14740b0c0d9SPeter Wemm	  sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && mv version.h.new version.h )
14840b0c0d9SPeter Wemm
149bd668f6fSPoul-Henning Kampclean:
150b53e8a34SJordan K. Hubbard	rm -rf boot_crunch release.[0-9] release.1[0]
151bd668f6fSPoul-Henning Kamp
152bd668f6fSPoul-Henning Kamp# Clean out ${RELEASEDIR} and make the directory structure.
153bd668f6fSPoul-Henning Kamprelease.1:
154288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
15548327bc9SPoul-Henning Kamp	-mkdir ${RELEASEDIR}
15648327bc9SPoul-Henning Kamp	chflags -R noschg ${RELEASEDIR}/.
15748327bc9SPoul-Henning Kamp	rm -rf ${RELEASEDIR}/*
158bd668f6fSPoul-Henning Kamp	mkdir ${RD}
159bd668f6fSPoul-Henning Kamp	mkdir ${RD}/floppies
160e12c4355SPoul-Henning Kamp	mkdir ${RD}/trees
161bd668f6fSPoul-Henning Kamp	mkdir ${RD}/dists
162bb91094aSPoul-Henning Kamp	mkdir ${RD}/kernels
163518a1d34SPoul-Henning Kamp	for i in ${ALL_DISTS} ; do \
164288fe4dbSPoul-Henning Kamp		mkdir ${RD}/trees/$$i && \
165288fe4dbSPoul-Henning Kamp		mkdir ${RD}/dists/$$i && \
166bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.root.dist \
167288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i > /dev/null && \
168bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.usr.dist \
169288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr > /dev/null && \
170a414a675SPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.include.dist \
171288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr/include > /dev/null && \
172bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.var.dist \
173e12c4355SPoul-Henning Kamp		    -p ${RD}/trees/$$i/var > /dev/null ; \
17448327bc9SPoul-Henning Kamp	done
175bd668f6fSPoul-Henning Kamp	touch release.1
1767f986648SPoul-Henning Kamp
177bd668f6fSPoul-Henning Kamp# Install the system into the various distributions.
178bd668f6fSPoul-Henning Kamprelease.2:
179288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
180518a1d34SPoul-Henning Kamp	cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin
181288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/.. && make distribute DISTDIR=${RD}/trees
182288fe4dbSPoul-Henning Kamp.if exists(${.CURDIR}/../eBones)
183d3628763SRodney W. Grimes	cd ${.CURDIR}/../eBones && ( \
184288fe4dbSPoul-Henning Kamp		make bootstrap &&\
185288fe4dbSPoul-Henning Kamp		make obj all help-distribute DISTDIR=${RD}/trees &&\
18672f97bfaSJordan K. Hubbard		make kprog \
187d3628763SRodney W. Grimes	)
188288fe4dbSPoul-Henning Kamp.endif
189c5b0a909SPoul-Henning Kamp	chflags -R noschg ${RD}/trees
190bd668f6fSPoul-Henning Kamp	touch release.2
191bd668f6fSPoul-Henning Kamp
19216c61233SJordan K. Hubbard# Make and install the generic kernel(s).
193bd668f6fSPoul-Henning Kamprelease.3:
19456f6016dSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
19516c61233SJordan K. Hubbard.for kernel in ${KERNELS}
19616c61233SJordan K. Hubbard	rm -f ${RD}/kernels/${kernel}
19716c61233SJordan K. Hubbard	rm -rf ${.CURDIR}/../sys/compile/${kernel}
19816c61233SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=${kernel}
19916c61233SJordan K. Hubbard	rm -rf ${.CURDIR}/../sys/compile/${kernel}
20016c61233SJordan K. Hubbard	ln -f ${RD}/kernels/${kernel} ${RD}/trees/bin/kernel.${kernel}
20116c61233SJordan K. Hubbard.endfor
202bd668f6fSPoul-Henning Kamp	touch release.3
203bd668f6fSPoul-Henning Kamp
20401feef2cSPoul-Henning Kamp# Make and install the three crunched binaries which live on the floppies.
205bd668f6fSPoul-Henning Kamp# You are not supposed to like this :-)
206cd6f5820SJoerg Wunsch#
207cd6f5820SJoerg Wunsch# NB: the "RELEASE_BUILD_FIXIT" magic prevents vi from including the
208cd6f5820SJoerg Wunsch# Tcl and Perl APIs.  See also /usr/src/usr.bin/vi/Makefile.
209bd668f6fSPoul-Henning Kamprelease.4:
210288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
211d50a3007SJordan K. Hubbard	cd ${.CURDIR}/sysinstall && make depend all
212518a1d34SPoul-Henning Kamp	rm -rf ${RD}/crunch
213518a1d34SPoul-Henning Kamp	mkdir -p ${RD}/crunch
214cd6f5820SJoerg Wunsch	export RELEASE_BUILD_FIXIT=noway ; \
2153525074dSPoul-Henning Kamp	for j in ${WHICH_CRUNCH} ; do \
216518a1d34SPoul-Henning Kamp		rm -rf $${j}_crunch && \
217518a1d34SPoul-Henning Kamp		mkdir $${j}_crunch && \
218518a1d34SPoul-Henning Kamp		( cd $${j}_crunch && \
219518a1d34SPoul-Henning Kamp		crunchgen ${.CURDIR}/$${j}_crunch.conf && \
220288fe4dbSPoul-Henning Kamp		${MAKE} -f $${j}_crunch.mk all NOCRYPT=yes \
2213525074dSPoul-Henning Kamp		    "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY") && \
222518a1d34SPoul-Henning Kamp		mv $${j}_crunch/$${j}_crunch ${RD}/crunch/$${j} && \
2235bb88366SJoerg Wunsch		true || { rm -rf $${j}_crunch ; false ; } ; \
224bd668f6fSPoul-Henning Kamp	done
225bd668f6fSPoul-Henning Kamp	touch release.4
226bd668f6fSPoul-Henning Kamp
22730e8b491SPoul-Henning Kamp#
22830e8b491SPoul-Henning Kamp# --==## Fix up the distributions. ##==--
22930e8b491SPoul-Henning Kamp#
230bd668f6fSPoul-Henning Kamprelease.5:
231288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
23204f11c61SJordan K. Hubbard	# Handle some grief caused by the munition braindeadness.
2334f9a3d48SJoerg Wunsch	for i in sbin/init bin/ed ; do \
2344f9a3d48SJoerg Wunsch		( cd ${.CURDIR}/../$$i; \
2354f9a3d48SJoerg Wunsch		  make -DNOCRYPT clean all distribute DISTDIR=${RD}/trees ) ; \
2364f9a3d48SJoerg Wunsch	done
2374f9a3d48SJoerg Wunsch
23830e8b491SPoul-Henning Kamp	# Move all the manpages out to their own dist
239e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/man ] ; then \
24038597f2bSJordan K. Hubbard		( cd ${RD}/trees/bin/usr/share/man; \
24138597f2bSJordan K. Hubbard		find . | cpio -dumpl ${RD}/trees/manpages/usr/share/man ) && \
24246a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/man; \
243bd668f6fSPoul-Henning Kamp	fi
24438597f2bSJordan K. Hubbard	# Create the catpages
24538597f2bSJordan K. Hubbard	if [ -d ${RD}/trees/manpages/usr/share/man ] ; then \
24638597f2bSJordan K. Hubbard		mtree -U -f ${.CURDIR}/man.mtree -d -e \
24738597f2bSJordan K. Hubbard			-p ${RD}/trees/manpages/usr/share; \
24838597f2bSJordan K. Hubbard		su -m man -c 'catman ${RD}/trees/manpages/usr/share/man'; \
24938597f2bSJordan K. Hubbard		( cd ${RD}/trees/manpages/usr/share/man; \
25038597f2bSJordan K. Hubbard		find cat* | cpio -dumpl ${RD}/trees/catpages/usr/share/man ) && \
25138597f2bSJordan K. Hubbard		rm -rf ${RD}/trees/manpages/usr/share/man/cat*; \
25238597f2bSJordan K. Hubbard	fi
25330e8b491SPoul-Henning Kamp	# Move all the games out to their own dist
254e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/games ] ; then \
25546a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/games . | \
25646a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/usr/games && \
25746a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/games; \
258bd668f6fSPoul-Henning Kamp	fi
259e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/games ] ; then \
26046a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/games . | \
26146a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/usr/share/games && \
26246a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/games; \
263bd668f6fSPoul-Henning Kamp	fi
264e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/var/games ] ; then \
26546a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/var/games . | \
26646a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/var/games && \
26746a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/var/games; \
268bd668f6fSPoul-Henning Kamp	fi
26930e8b491SPoul-Henning Kamp	# Move the dict out to their own dist
270e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/dict ] ; then \
27146a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/dict . | \
27246a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/dict/usr/share/dict && \
27346a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/dict; \
274bd668f6fSPoul-Henning Kamp	fi
275bd668f6fSPoul-Henning Kamp	for i in airport birthtoken flowers na.phone zipcodes ; do \
276e12c4355SPoul-Henning Kamp		if [ -f ${RD}/trees/bin/usr/share/misc/$$i ] ; then \
277e12c4355SPoul-Henning Kamp			mv ${RD}/trees/bin/usr/share/misc/$$i \
278e12c4355SPoul-Henning Kamp				${RD}/trees/dict/usr/share/misc; \
279bd668f6fSPoul-Henning Kamp		fi ; \
280bd668f6fSPoul-Henning Kamp	done
28130e8b491SPoul-Henning Kamp	# Move the info files out to their own dist
28230e8b491SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/info ] ; then \
28346a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/info . | \
28446a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/info/usr/share/info && \
28546a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/info; \
28630e8b491SPoul-Henning Kamp	fi
28730e8b491SPoul-Henning Kamp	# Move the profiled libraries out to their own dist
288e12c4355SPoul-Henning Kamp	for i in ${RD}/trees/bin/usr/lib/*_p.a ; do \
289bd668f6fSPoul-Henning Kamp		if [ -f $$i ] ; then \
290bd668f6fSPoul-Henning Kamp			mv $$i \
291e12c4355SPoul-Henning Kamp				${RD}/trees/proflibs/usr/lib ; \
292bd668f6fSPoul-Henning Kamp		fi ; \
293bd668f6fSPoul-Henning Kamp	done
2942fb96ab9SJoerg Wunsch	# Create symlinks for the MD5-based crypt lib, too.  The
2952fb96ab9SJoerg Wunsch	# automatically created links still point to the DES stuff,
2962fb96ab9SJoerg Wunsch	# which went into its own distribution.
2972fb96ab9SJoerg Wunsch	for i in ${RD}/trees/bin/usr/lib/libscrypt* ; do \
2982fb96ab9SJoerg Wunsch		c=`echo $$i | sed -e 's/libscrypt/libcrypt/'` ; \
2992fb96ab9SJoerg Wunsch		rm -f $$c ; \
3002fb96ab9SJoerg Wunsch		ln -s `basename $$i` $$c ; \
3012fb96ab9SJoerg Wunsch	done
30234fca5ddSJoerg Wunsch
30330e8b491SPoul-Henning Kamp	# Remove some files we can faster regen after installing.
304d2b98961SPoul-Henning Kamp	cd ${RD}/trees/bin/usr/share/misc && rm -f termcap.db vgrindefs.db
30530e8b491SPoul-Henning Kamp	# Remove all the directories we don't need.
30627d44115SPoul-Henning Kamp	-cd ${RD}/trees && \
30727d44115SPoul-Henning Kamp		find ${EXTRA_DISTS} -depth -type d -print | xargs rmdir
308bd668f6fSPoul-Henning Kamp	touch release.5
309f14786ddSJordan K. Hubbard
31030e8b491SPoul-Henning Kamp#
31130e8b491SPoul-Henning Kamp# --==## Make binary dists ##==--
31230e8b491SPoul-Henning Kamp#
313bd668f6fSPoul-Henning Kamprelease.6:
314288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
31595e34bfcSJordan K. Hubbard	rm -rf ${RD}/dists
31695e34bfcSJordan K. Hubbard	mkdir -p ${RD}/dists
31795e34bfcSJordan K. Hubbard	@for i in ${DISTRIBUTIONS} ; \
31895e34bfcSJordan K. Hubbard	do \
31995e34bfcSJordan K. Hubbard		if [ -d ${RD}/trees/$${i} ] ; then \
32030e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
32130e8b491SPoul-Henning Kamp				SD=${RD}/trees/$${i} \
322288fe4dbSPoul-Henning Kamp				TN=$$i TD=$$i ARG="." && \
32395e34bfcSJordan K. Hubbard			echo "$${i} distribution is finished."; \
32495e34bfcSJordan K. Hubbard		fi ; \
32595e34bfcSJordan K. Hubbard	done
32630e8b491SPoul-Henning Kamp	( cd ${RD}/dists && \
32730e8b491SPoul-Henning Kamp		if [ -f krb/krb.aa ] ; then mv krb/* des && rmdir krb ; fi )
3280412e9f7SJordan K. Hubbard	touch release.6
32995e34bfcSJordan K. Hubbard
33095e34bfcSJordan K. Hubbard
33130e8b491SPoul-Henning Kamp#
33230e8b491SPoul-Henning Kamp# --==## Make source dists ##==--
33330e8b491SPoul-Henning Kamp#
33495e34bfcSJordan K. Hubbardrelease.7:
335288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
336288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) doTARBALL SD=/usr/src \
33795e34bfcSJordan K. Hubbard		TD=src TN=sbase ARG="[A-Z]*"
338288fe4dbSPoul-Henning Kamp	@for i in `cd /usr/src && echo [a-z]*` ; do \
33930e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$i ] ; then \
34030e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
34195e34bfcSJordan K. Hubbard				TN=`echo s$$i | tr -d '.' | sed 's/usr/u/'` \
34230e8b491SPoul-Henning Kamp				SD=/usr/src TD=src ARG="$$i" ; \
34395e34bfcSJordan K. Hubbard		fi ; \
34495e34bfcSJordan K. Hubbard	done
34540b0c0d9SPeter Wemm.if defined(EXTRA_SRC)
346288fe4dbSPoul-Henning Kamp	@set ${EXTRA_SRC} && \
34740b0c0d9SPeter Wemm	while [ $$# -ge 2 ] ; do \
34830e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$1 ] ; then \
34930e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
35030e8b491SPoul-Henning Kamp				SD=/usr/src TN="s$$2" TD=src ARG="$$1" ; \
35130e8b491SPoul-Henning Kamp		fi && shift && shift ; \
35240b0c0d9SPeter Wemm	done
35340b0c0d9SPeter Wemm.endif
35495e34bfcSJordan K. Hubbard	( cd ${RD}/dists/src && \
355d3628763SRodney W. Grimes		if [ -f ssecure.aa ] ; then mv ssecure.* ../des ; fi && \
35624fe14a0SJordan K. Hubbard		if [ -f sebones.aa ] ; then mv sebones.* ../des ; fi && \
35730e8b491SPoul-Henning Kamp		if [ -f ssecure.inf ] ; then mv ssecure.inf ../des ; fi && \
35830e8b491SPoul-Henning Kamp		if [ -f sebones.inf ] ; then mv sebones.inf ../des ; fi ; )
35995e34bfcSJordan K. Hubbard	@echo "src distribution is finished."
3600412e9f7SJordan K. Hubbard	touch release.7
36195e34bfcSJordan K. Hubbard
36295e34bfcSJordan K. Hubbard# Complete the bootfd
363409f9329SJordan K. Hubbard#
364409f9329SJordan K. Hubbard# Now, just to get this picture down once and for all:
365409f9329SJordan K. Hubbard#
366409f9329SJordan K. Hubbard# +------------------------------------------------------------------------+
367409f9329SJordan K. Hubbard# |boot.flp                                                                |
368409f9329SJordan K. Hubbard# +-----+-----+------------------------------------------------------------+
369409f9329SJordan K. Hubbard# |boot1|boot2|floppy filesystem "bootfd"                                  |
370409f9329SJordan K. Hubbard# +-----+-----+-+--------------------------------------------------------+-+
371409f9329SJordan K. Hubbard#               |kernel                                                  |
372409f9329SJordan K. Hubbard#               +------------+-----------------------------------------+-+
373409f9329SJordan K. Hubbard#                            |mfs filesystem "mfsfd"                   |
374409f9329SJordan K. Hubbard#                            +-----------------------------------------+
375409f9329SJordan K. Hubbard#
376409f9329SJordan K. Hubbard
377d50a3007SJordan K. Hubbardrelease.8: write_mfs_in_kernel dumpnlist
3783df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
379409f9329SJordan K. Hubbard	rm -rf ${RD}/mfsfd
380409f9329SJordan K. Hubbard	mkdir ${RD}/mfsfd
381409f9329SJordan K. Hubbard	cd ${RD}/mfsfd && \
382f8d8dfe8SPoul-Henning Kamp		mkdir -p etc dev mnt stand/help && \
383f8d8dfe8SPoul-Henning Kamp		ln -s 'AH<<<<' etc/malloc.conf
3843df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \
385a91fd119SPoul-Henning Kamp		DIR=${RD}/mfsfd/stand ZIP=false
3863df0e2afSPoul-Henning Kamp	( cd ${RD}/trees/bin/dev && \
38739ae3f15SJordan K. Hubbard		ls console tty ttyv0 ttyv1 ttyv2 ttyv3 null zero \
3885bf8036aSJordan K. Hubbard		*[swo]d* cuaa[01] cuaa[23] fd[01] rfd[01] \
3890e9e4efaSJordan K. Hubbard		cd0a mcd0a scd0a matcd0a wcd0c rst0 rft0 rwt0 | \
390409f9329SJordan K. Hubbard	cpio -dump ${RD}/mfsfd/dev )
3915bf8036aSJordan K. Hubbard	( cd ${RD}/mfsfd/dev && rm -f *[swo]d*[bdefgh] )
3923df0e2afSPoul-Henning Kamp	cd ${RD}/trees/bin && ls ${BOOT1} | cpio -dump ${RD}/mfsfd/stand
393d3628763SRodney W. Grimes	echo "nameserver      42/tcp name"	> ${RD}/mfsfd/stand/etc/services
394d3628763SRodney W. Grimes	echo "ftp             21/tcp"		>> ${RD}/mfsfd/stand/etc/services
395d3628763SRodney W. Grimes	echo "domain          53/tcp          nameserver" >> ${RD}/mfsfd/stand/etc/services
396d3628763SRodney W. Grimes	echo "domain          53/udp          nameserver" >> ${RD}/mfsfd/stand/etc/services
397e7fc885eSJordan K. Hubbard	echo "cmd             514/tcp    shell" >> ${RD}/mfsfd/stand/etc/services
3986545b6a5SJordan K. Hubbard	gzip -c ${.CURDIR}/../COPYRIGHT > ${RD}/mfsfd/stand/help/COPYRIGHT.hlp.gz
399d4983966SPaul Traina	-test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd
4006545b6a5SJordan K. Hubbard	@echo "Making the regular boot floppy."
40117078dccSJordan K. Hubbard	tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \
402409f9329SJordan K. Hubbard		tar xvf - -C ${RD}/mfsfd/stand
4036545b6a5SJordan K. Hubbard	@echo "Compressing doc files..."
4046545b6a5SJordan K. Hubbard	@gzip -9 ${RD}/mfsfd/stand/help/*.hlp
405c66cda21SPoul-Henning Kamp	sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${BOOTMFSSIZE} ${RD}/mfsfd \
406288fe4dbSPoul-Henning Kamp		${MFSINODE} minimum
407288fe4dbSPoul-Henning Kamp	mv fs-image fs-image.std
408288fe4dbSPoul-Henning Kamp	mv fs-image.size fs-image.std.size
409288fe4dbSPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=std
41030e8b491SPoul-Henning Kamp	mv ${RD}/floppies/bootstd.flp ${RD}/floppies/boot.flp
4116545b6a5SJordan K. Hubbard	@echo "Regular boot floppy made."
4120412e9f7SJordan K. Hubbard	touch release.8
413bd668f6fSPoul-Henning Kamp
41430e8b491SPoul-Henning Kamp#
41530e8b491SPoul-Henning Kamp# --==## Create a fixit floppy ##==--
41630e8b491SPoul-Henning Kamp#
417b53e8a34SJordan K. Hubbardrelease.9:
4183df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
419518a1d34SPoul-Henning Kamp	rm -rf ${RD}/fixitfd
420518a1d34SPoul-Henning Kamp	mkdir ${RD}/fixitfd
421518a1d34SPoul-Henning Kamp	cd ${RD}/fixitfd && \
42230e8b491SPoul-Henning Kamp		mkdir dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp
4233df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=fixit \
424518c7f2aSJoerg Wunsch		DIR=${RD}/fixitfd/stand ZIP=false
42530e8b491SPoul-Henning Kamp	( cd ${RD}/fixitfd/dev && \
426a18763d0SJoerg Wunsch		sed -e '/^PATH/s/^/#/' ${RD}/trees/bin/dev/MAKEDEV > MAKEDEV && \
427a18763d0SJoerg Wunsch		chmod 755 MAKEDEV && \
42830e8b491SPoul-Henning Kamp		sh MAKEDEV all )
429518c7f2aSJoerg Wunsch	cp ${RD}/trees/bin/etc/spwd.db ${RD}/trees/bin/etc/group \
430518c7f2aSJoerg Wunsch		${RD}/trees/bin/etc/protocols ${RD}/fixitfd/etc
431e12c4355SPoul-Henning Kamp	cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile
432518c7f2aSJoerg Wunsch	cp ${.CURDIR}/fixit.services ${RD}/fixitfd/etc/services
433ed228eb6SJoerg Wunsch	cp ${.CURDIR}/tar.sh ${RD}/fixitfd/stand/tar
434ed228eb6SJoerg Wunsch	chmod 555 ${RD}/fixitfd/stand/tar
435c66cda21SPoul-Henning Kamp	sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/fixitfd \
436518c7f2aSJoerg Wunsch		${FIXITINODE} ${FDLABEL}
437288fe4dbSPoul-Henning Kamp	mv fs-image ${RD}/floppies/fixit.flp
438b53e8a34SJordan K. Hubbard	touch release.9
4393bc93c76SPoul-Henning Kamp
44030e8b491SPoul-Henning Kamp#
44130e8b491SPoul-Henning Kamp# --==## Setup a suitable ftp-area ##==--
44230e8b491SPoul-Henning Kamp#
443e12c4355SPoul-Henning Kampftp.1:
444ae33fac5SJordan K. Hubbard	mkdir -p ${FD}
445a8335764SPoul-Henning Kamp	cd ${RD} && find floppies -print | cpio -dumpl ${FD}
446a8335764SPoul-Henning Kamp	cd ${RD}/dists && find . -print | cpio -dumpl ${FD}
4475bf8036aSJordan K. Hubbard	cp ${.CURDIR}/ABOUT.TXT ${FD}/ABOUT.TXT
44816805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/readme.hlp ${FD}/README.TXT
44916805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/hardware.hlp ${FD}/HARDWARE.TXT
45016805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/install.hlp ${FD}/INSTALL.TXT
45116805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/relnotes.hlp ${FD}/RELNOTES.TXT
4525bf8036aSJordan K. Hubbard	cp ${.CURDIR}/floppies/README.TXT ${FD}/floppies/README.TXT
4533bc93c76SPoul-Henning Kamp
45430e8b491SPoul-Henning Kamp#
45530e8b491SPoul-Henning Kamp# --==## Setup a suitable cdrom-area ##==--
45630e8b491SPoul-Henning Kamp#
457c5b0a909SPoul-Henning Kampcdrom.1:
458ae33fac5SJordan K. Hubbard	mkdir -p ${CD}/filesys
4592822939aSJordan K. Hubbard	cd ${RD} && find floppies -print | cpio -dumpl ${CD}
4602822939aSJordan K. Hubbard	cd ${RD}/dists && find . -print | cpio -dumpl ${CD}
46130e8b491SPoul-Henning Kamp	ln -f ${RD}/kernels/MFSKERNEL.std ${CD}/kernel
462409f9329SJordan K. Hubbard	ln -f ${RD}/trees/bin/usr/mdec/fbsdboot.exe ${CD}
463c5b0a909SPoul-Henning Kamp	for i in ${DISTRIBUTIONS} ; \
464c5b0a909SPoul-Henning Kamp	do \
465c5b0a909SPoul-Henning Kamp		if [ -d ${RD}/trees/$${i} ] ; then \
46618926d84SJordan K. Hubbard			chflags -R noschg ${RD}/trees/$${i} ; \
46701feef2cSPoul-Henning Kamp			( cd ${RD}/trees/$${i} && \
468c5b0a909SPoul-Henning Kamp			find . -depth -print | cpio -dumpl ${CD}/filesys ) ; \
469c5b0a909SPoul-Henning Kamp		fi \
470c5b0a909SPoul-Henning Kamp	done
47118926d84SJordan K. Hubbard	rm -f ${CD}/filesys/.profile
47218926d84SJordan K. Hubbard	cp ${.CURDIR}/fixit.profile ${CD}/filesys/.profile
4733ee8cec8SJordan K. Hubbard	echo "CD_VERSION = ${BUILDNAME}" > ${CD}/cdrom.inf
47416805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/readme.hlp ${CD}/README.TXT
47516805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/hardware.hlp ${CD}/HARDWARE.TXT
47616805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/install.hlp ${CD}/INSTALL.TXT
47716805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/relnotes.hlp ${CD}/RELNOTES.TXT
478c5b0a909SPoul-Henning Kamp
4797eb11201SPoul-Henning Kamp# Various "subroutine" and other supporting targets.
4807eb11201SPoul-Henning Kamp
481bd668f6fSPoul-Henning KampdoTARBALL:
482bd668f6fSPoul-Henning Kamp.if !defined(SD)
483288fe4dbSPoul-Henning Kamp	@echo "SD undefined in doTARBALL" && exit 1
484bd668f6fSPoul-Henning Kamp.endif
485bd668f6fSPoul-Henning Kamp.if !defined(TD)
486288fe4dbSPoul-Henning Kamp	@echo "TB undefined in doTARBALL" && exit 1
487bd668f6fSPoul-Henning Kamp.endif
488bd668f6fSPoul-Henning Kamp.if !defined(ARG)
489288fe4dbSPoul-Henning Kamp	@echo "ARG undefined in doTARBALL" && exit 1
490bd668f6fSPoul-Henning Kamp.endif
491836ed9f2SPoul-Henning Kamp	rm -rf ${RD}/dists/${TD}/${TN}*
492e12c4355SPoul-Henning Kamp	mkdir -p ${RD}/dists/${TD}
493d2b98961SPoul-Henning Kamp	( cd ${SD} && \
494d2b98961SPoul-Henning Kamp		tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \
495d2b98961SPoul-Henning Kamp		echo rolling ${TD}/$$tn tarball &&\
49645209a22SPoul-Henning Kamp		tar --exclude CVS --exclude obj -cf - ${ARG} | \
49795e34bfcSJordan K. Hubbard		${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \
498ac0a5268SJordan K. Hubbard		sh ${.CURDIR}/info.sh ${RD}/dists/${TD}/$$tn > \
499ac0a5268SJordan K. Hubbard		   ${RD}/dists/${TD}/$$tn.inf && \
5001e104a1eSJordan K. Hubbard		if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \
5011e104a1eSJordan K. Hubbard		  cp -p ${.CURDIR}/scripts/$${TD}-install.sh ${RD}/dists/${TD}/install.sh; \
5021e104a1eSJordan K. Hubbard		fi && \
50316c61233SJordan K. Hubbard		  if [ "${SD}" != "/usr/src" ]; then \
50416c61233SJordan K. Hubbard			mtree -c -i -p ${SD}/${ARG} \
50516c61233SJordan K. Hubbard			  -k gname,md5digest,mode,nlink,uname,size,link,type \
50616c61233SJordan K. Hubbard			  > ${RD}/dists/${TD}/$$tn.mtree ; else true; fi )
5077eb11201SPoul-Henning Kamp
5087eb11201SPoul-Henning KampdoRELEASE:  release.1 release.2 release.3 release.4 release.5 release.6 \
509ec1ef765SPeter Wemm		release.7 release.8 release.9
510895449d2SPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} cdrom.1 ftp.1
5117eb11201SPoul-Henning Kamp	@echo "Release done"
5127eb11201SPoul-Henning Kamp
5130ead1f1dSJordan K. Hubbardfloppies:
51440b0c0d9SPeter Wemm	cd ${.CURDIR} && ${MAKE} boot.flp
51540b0c0d9SPeter Wemm	cd ${.CURDIR} && ${MAKE} fixit.flp
5167854541aSJordan K. Hubbard	cd ${RD} && find floppies -print | cpio -dumpl ${FD}
5170ead1f1dSJordan K. Hubbard
5183525074dSPoul-Henning Kampboot.flp:
5190412e9f7SJordan K. Hubbard	rm -f release.4 release.8
520c0b83abeSPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} release.4 release.8 WHICH_CRUNCH=boot
5213525074dSPoul-Henning Kamp
522e841846bSPoul-Henning Kampfixit.flp:
523b53e8a34SJordan K. Hubbard	rm -f release.4 release.9
524b53e8a34SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} release.4 release.9 WHICH_CRUNCH=fixit
525e841846bSPoul-Henning Kamp
526409f9329SJordan K. Hubbardwrite_mfs_in_kernel:	${.CURDIR}/write_mfs_in_kernel.c
527409f9329SJordan K. Hubbard	${CC} ${CFLAGS} -o write_mfs_in_kernel ${.CURDIR}/write_mfs_in_kernel.c
528409f9329SJordan K. Hubbard
529d50a3007SJordan K. Hubbarddumpnlist:	${.CURDIR}/dumpnlist.c
530d50a3007SJordan K. Hubbard	${CC} ${CFLAGS} -o dumpnlist ${.CURDIR}/dumpnlist.c
531d50a3007SJordan K. Hubbard
5327eb11201SPoul-Henning KampckRELEASEDIR:
5337eb11201SPoul-Henning Kamp.if !defined(RELEASEDIR)
5347eb11201SPoul-Henning Kamp	@echo "To make a release RELEASEDIR must be defined" && false
5357eb11201SPoul-Henning Kamp.endif
5367eb11201SPoul-Henning Kamp
537518a1d34SPoul-Henning KampinstallCRUNCH:
538518a1d34SPoul-Henning Kamp.if !defined(CRUNCH)
539288fe4dbSPoul-Henning Kamp	@echo "CRUNCH undefined in installCRUNCH" && exit 1
540518a1d34SPoul-Henning Kamp.endif
541518a1d34SPoul-Henning Kamp.if !defined(DIR)
542288fe4dbSPoul-Henning Kamp	@echo "DIR undefined in installCRUNCH" && exit 1
543518a1d34SPoul-Henning Kamp.endif
544518a1d34SPoul-Henning Kamp.if !defined(ZIP)
545288fe4dbSPoul-Henning Kamp	@echo "ZIP undefined in installCRUNCH" && exit 1
546518a1d34SPoul-Henning Kamp.endif
547518a1d34SPoul-Henning Kamp	if ${ZIP} ; then \
548518a1d34SPoul-Henning Kamp		gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \
549518a1d34SPoul-Henning Kamp	else \
550518a1d34SPoul-Henning Kamp		ln -f ${RD}/crunch/${CRUNCH} ${DIR}/${CRUNCH}_crunch ; \
551518a1d34SPoul-Henning Kamp	fi
552518a1d34SPoul-Henning Kamp	chmod 555 ${DIR}/${CRUNCH}_crunch
553518a1d34SPoul-Henning Kamp	for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \
554518a1d34SPoul-Henning Kamp		ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \
555518a1d34SPoul-Henning Kamp	done
556288fe4dbSPoul-Henning Kamp
557288fe4dbSPoul-Henning Kamp#
558288fe4dbSPoul-Henning Kamp# --==## Compile a kernel by name ${KERNEL} ##==--
559288fe4dbSPoul-Henning Kamp#
560288fe4dbSPoul-Henning Kamp# We don't erase the sys/compile/${KERNEL} directory, since somebody
561288fe4dbSPoul-Henning Kamp# may want to reuse it (release.8 presently)
562288fe4dbSPoul-Henning Kamp#
563288fe4dbSPoul-Henning KampdoKERNEL:
564288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
565288fe4dbSPoul-Henning Kamp	rm -f ${RD}/kernels/${KERNEL}
566288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../sys/i386/conf && config -n ${KERNEL}
567288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../sys/compile/${KERNEL} && \
568288fe4dbSPoul-Henning Kamp			make  depend && \
569288fe4dbSPoul-Henning Kamp			make  kernel && \
570288fe4dbSPoul-Henning Kamp			cp kernel ${RD}/kernels/${KERNEL}
571288fe4dbSPoul-Henning Kamp
572288fe4dbSPoul-Henning Kamp#
573288fe4dbSPoul-Henning Kamp# --==## Put a filesystem into a BOOTMFS kernel ##==--
574288fe4dbSPoul-Henning Kamp#
575288fe4dbSPoul-Henning KampdoMFSKERN:
576288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
577d50a3007SJordan K. Hubbard	@rm -f ${RD}/kernels/BOOTMFS.${FSIMAGE}
578d50a3007SJordan K. Hubbard	@rm -f /sys/compile/BOOTMFS/mfs_vfsops.o
579d50a3007SJordan K. Hubbard	@cd ${.CURDIR}/../sys/i386/conf && \
58016c61233SJordan K. Hubbard	  sed	-e '/SYSV/d' \
58116c61233SJordan K. Hubbard		-e '/pty/d' \
58216c61233SJordan K. Hubbard		-e '/PROCFS/d' \
583a7c2b4b0SPaul Traina		-e '/KTRACE/d' \
58416c61233SJordan K. Hubbard		-e 's/GENERIC/BOOTMFS/g' \
58516c61233SJordan K. Hubbard		-e '/maxusers/s/10/4/' < GENERIC > BOOTMFS && \
586a91fd119SPoul-Henning Kamp	  echo "options  MFS" >> BOOTMFS && \
58716c61233SJordan K. Hubbard	  echo "options  NFS_NOSERVER" >> BOOTMFS && \
588d50a3007SJordan K. Hubbard	  echo 'options  "MAXCONS=4"' >> BOOTMFS && \
589d50a3007SJordan K. Hubbard	  echo "options  USERCONFIG_BOOT" >> BOOTMFS
590d50a3007SJordan K. Hubbard	@echo "options \"MFS_ROOT=`cat fs-image.${FSIMAGE}.size`\"" >> \
5914676f742SJordan K. Hubbard	  ${.CURDIR}/../sys/i386/conf/BOOTMFS
592a590cd43SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=BOOTMFS
593d50a3007SJordan K. Hubbard	@rm -rf ${RD}/boot.${FSIMAGE}
594d50a3007SJordan K. Hubbard	@mkdir  ${RD}/boot.${FSIMAGE}
595d50a3007SJordan K. Hubbard	@mv ${RD}/kernels/BOOTMFS ${RD}/kernels/BOOTMFS.${FSIMAGE}
596d50a3007SJordan K. Hubbard	@cp ${RD}/kernels/BOOTMFS.${FSIMAGE} ${RD}/boot.${FSIMAGE}/kernel
597b434db23SJordan K. Hubbard	@vnconfig /dev/vn0 fs-image.${FSIMAGE}
598b434db23SJordan K. Hubbard	@mkdir -p /tmp/mnt_xx
599b434db23SJordan K. Hubbard	@mount /dev/vn0 /tmp/mnt_xx
600b434db23SJordan K. Hubbard	./dumpnlist ${RD}/boot.${FSIMAGE}/kernel > /tmp/mnt_xx/stand/symbols
601b434db23SJordan K. Hubbard	@umount /tmp/mnt_xx
602b434db23SJordan K. Hubbard	@vnconfig -u /dev/vn0
603b434db23SJordan K. Hubbard	@rmdir /tmp/mnt_xx
604288fe4dbSPoul-Henning Kamp	./write_mfs_in_kernel ${RD}/boot.${FSIMAGE}/kernel \
605288fe4dbSPoul-Henning Kamp		fs-image.${FSIMAGE}
606288fe4dbSPoul-Henning Kamp	kzip -v ${RD}/boot.${FSIMAGE}/kernel
607d50a3007SJordan K. Hubbard	@mv ${RD}/boot.${FSIMAGE}/kernel ${RD}/kernels/MFSKERNEL.${FSIMAGE}
608d50a3007SJordan K. Hubbard	@mv ${RD}/boot.${FSIMAGE}/kernel.kz ${RD}/boot.${FSIMAGE}/kernel
609d50a3007SJordan K. Hubbard	@ls -l ${RD}/boot.${FSIMAGE}/kernel
610d50a3007SJordan K. Hubbard	@rm -f ${RD}/floppies/boot${FSIMAGE}.flp
611e7fc885eSJordan K. Hubbard	cat ${RD}/trees/bin/usr/mdec/rawboot ${RD}/boot.${FSIMAGE}/kernel | \
61299092699SPoul-Henning Kamp		dd conv=sync of=${RD}/floppies/boot${FSIMAGE}.flp
613d50a3007SJordan K. Hubbard	@echo 'USERCONFIG' > startup_foo
614d50a3007SJordan K. Hubbard	@echo 'intro' >> startup_foo
615d50a3007SJordan K. Hubbard	dd if=startup_foo of=${RD}/floppies/boot${FSIMAGE}.flp \
616d50a3007SJordan K. Hubbard	  seek=1 bs=512 count=1 conv=sync
617d50a3007SJordan K. Hubbard	@rm -f startup_foo
618288fe4dbSPoul-Henning Kamp
6192469b9a2SPoul-Henning Kamp.include <bsd.prog.mk>
620