xref: /freebsd/release/Makefile (revision 32dc5e88bf54551a8f0802dae82bc550523e8457)
132dc5e88SJordan K. Hubbard#	$Id: Makefile,v 1.260 1996/12/08 18:21:29 joerg 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
24d95793c9SJoerg WunschEXPORT_DISTS=	games manpages proflibs dict info doc
25d3628763SRodney W. GrimesEXTRA_DISTS=	krb des ${EXPORT_DISTS}
26518a1d34SPoul-Henning KampALL_DISTS=	bin ${EXTRA_DISTS}
2716c61233SJordan K. HubbardKERNELS?=	GENERIC
28785bd4b4SPoul-Henning Kamp
2940b0c0d9SPeter Wemm# Extra source tarballs; each argument is a pair of source dir and
3040b0c0d9SPeter Wemm# distribution name.  The dist name should not exceed 7 characters
3140b0c0d9SPeter Wemm# (another "s" for "source" will be prepended).
3240b0c0d9SPeter WemmEXTRA_SRC+=	usr.sbin/sendmail/cf smailcf
3340b0c0d9SPeter Wemm
34d3628763SRodney W. GrimesBOOT1=	etc/protocols etc/sysconfig
351cdab3d4SJordan K. Hubbard
367c474103SPoul-Henning Kamp# mountpoint for filesystems.
377c474103SPoul-Henning KampMNT=			/mnt
38518a1d34SPoul-Henning Kamp
39518a1d34SPoul-Henning Kamp# other floppy parameters.
4032dc5e88SJordan K. HubbardFDSIZE=			1440
4132dc5e88SJordan K. HubbardFDLABEL=		fd1440
420202c140SRodney W. Grimes
4300063f88SPoul-Henning KampZIPNSPLIT=		gzip --no-name -9 -c | split -b 240640 -
4400063f88SPoul-Henning Kamp
45288fe4dbSPoul-Henning Kamp# Upper size for the mfs in the boot.flp kernel.
46ae33fac5SJordan K. Hubbard# These are adjusted down to the minimum needed by doFS.sh.
4732dc5e88SJordan K. HubbardBOOTMFSSIZE=		1440
4832dc5e88SJordan K. HubbardMFSINODE=		110000
49518c7f2aSJoerg WunschFIXITINODE=		28000
50d5cf6f60SAndrey A. Chernov
51bd668f6fSPoul-Henning Kamp# Things which will get you into trouble if you change them
52785bd4b4SPoul-Henning KampDISTRIBUTIONS=		bin ${EXTRA_DISTS}
5348327bc9SPoul-Henning KampMTREEFILES=		${.CURDIR}/../etc/mtree
54bd668f6fSPoul-Henning KampRD=			${RELEASEDIR}/stage
55e12c4355SPoul-Henning KampFD=			${RELEASEDIR}/ftp
56e12c4355SPoul-Henning KampCD=			${RELEASEDIR}/cdrom
5748327bc9SPoul-Henning Kamp
583525074dSPoul-Henning Kamp.if !defined(WHICH_CRUNCH)
59b53e8a34SJordan K. HubbardWHICH_CRUNCH=	boot fixit
603525074dSPoul-Henning Kamp.endif
613525074dSPoul-Henning Kamp
6216c61233SJordan K. HubbardREDO?=		sysinstall
6316c61233SJordan K. HubbardREDOSED=	sed -e 's/dirs/release.1/' -e 's/trees/release.2/' \
6416c61233SJordan K. Hubbard		    -e 's/kerns/release.3/' -e 's/sysinstall/release.4/' \
6516c61233SJordan K. Hubbard		    -e 's/fixup/release.5/' -e 's/tarbin/release.6/' \
6616c61233SJordan K. Hubbard		    -e 's/tarsrc/release.7/' -e 's/boot\.flp/release.8/' \
6716c61233SJordan K. Hubbard		    -e 's/fixit\.flp/release.9/' -e 's/ftp/ftp.1/' \
6816c61233SJordan K. Hubbard		    -e 's/cdrom/cdrom.1/'
6916c61233SJordan K. Hubbard
7016c61233SJordan K. HubbardREDOREDO!=	echo ${REDO} | ${REDOSED}
7116c61233SJordan K. Hubbard
72288fe4dbSPoul-Henning Kamprerelease release:
7320e5d523SJordan K. Hubbard.if !defined(CHROOTDIR) || !defined(BUILDNAME)
7420e5d523SJordan K. Hubbard	@echo "To make a release you must set CHROOTDIR and BUILDNAME" && false
757eb11201SPoul-Henning Kamp.endif
76288fe4dbSPoul-Henning Kamp.if make(release)
77682078bdSRodney W. Grimes.if exists(${CHROOTDIR})
78bd668f6fSPoul-Henning Kamp	chflags -R noschg ${CHROOTDIR}/.
79b7738481SJoerg Wunsch	-rm -rf ${CHROOTDIR}
80682078bdSRodney W. Grimes.endif
81b7738481SJoerg Wunsch	-mkdir -p ${CHROOTDIR}
82288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../etc && ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR}
83288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../etc && ${MAKE} distribution DESTDIR=${CHROOTDIR}
84849635f6SPoul-Henning Kamp	cd ${.CURDIR}/.. && ${MAKE} install DESTDIR=${CHROOTDIR} NOMAN=1
85bd668f6fSPoul-Henning Kamp.if !defined(RELEASETAG)
8662bb2153SPaul Traina	cd ${CHROOTDIR}/usr && rm -rf src && \
8762bb2153SPaul Traina		cvs -d ${CVSROOT} co -P src
883acfee7cSPaul Traina.if defined(INTCVSROOT)
893acfee7cSPaul Traina	cd ${CHROOTDIR}/usr && \
903acfee7cSPaul Traina	    cvs -d ${INTCVSROOT} co -P src/secure src/eBones
913acfee7cSPaul Traina.endif
92bd668f6fSPoul-Henning Kamp.else
9362bb2153SPaul Traina	cd ${CHROOTDIR}/usr && rm -rf src && \
94ba99b43eSJoerg Wunsch		cvs -d ${CVSROOT} co -P -r ${RELEASETAG} src
953acfee7cSPaul Traina.if defined(INTCVSROOT)
963acfee7cSPaul Traina	cd ${CHROOTDIR}/usr && \
973acfee7cSPaul Traina	    cvs -d ${INTCVSROOT} co -P -r ${RELEASETAG} src/secure src/eBones
983acfee7cSPaul Traina.endif
99288fe4dbSPoul-Henning Kamp.endif
10062bb2153SPaul Traina.if defined(LOCAL_PATCHES) && exists(${LOCAL_PATCHES})
10162bb2153SPaul Traina	cd ${CHROOTDIR}/usr/src && patch --silent < ${LOCAL_PATCHES}
10262bb2153SPaul Traina.endif
103288fe4dbSPoul-Henning Kamp.endif
104288fe4dbSPoul-Henning Kamp.if make(rerelease)
105288fe4dbSPoul-Henning Kamp.if !defined(RELEASENOUPDATE)
106288fe4dbSPoul-Henning Kamp.if !defined(RELEASETAG)
107d4983966SPaul Traina	cd ${CHROOTDIR}/usr/src && cvs -q update -P -d
108288fe4dbSPoul-Henning Kamp.else
109d4983966SPaul Traina	cd ${CHROOTDIR}/usr/src && cvs -q update -P -d -r ${RELEASETAG}
110288fe4dbSPoul-Henning Kamp.endif
111288fe4dbSPoul-Henning Kamp.endif
112bd668f6fSPoul-Henning Kamp.endif
113ab0e9cdcSPoul-Henning Kamp	( cd ${CHROOTDIR}/usr/src/sys/conf && \
114288fe4dbSPoul-Henning Kamp	  mv newvers.sh foo && \
115288fe4dbSPoul-Henning Kamp	  sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh&& rm foo )
11640b0c0d9SPeter Wemm	( cd ${CHROOTDIR}/usr/src/release/sysinstall && \
117288fe4dbSPoul-Henning Kamp	  sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && \
11846a7b813SJordan K. Hubbard	  mv version.h.new version.h && \
11946a7b813SJordan K. Hubbard	  echo XXXX )
120d4983966SPaul Traina	-test -f install.cfg && cp install.cfg ${CHROOTDIR}/usr/src/release
12120e5d523SJordan K. Hubbard	echo "#!/bin/sh"			> ${CHROOTDIR}/mk
12220e5d523SJordan K. Hubbard	echo "set -ex"				>> ${CHROOTDIR}/mk
123288fe4dbSPoul-Henning Kamp	echo "CFLAGS='-O2 -pipe'"		>> ${CHROOTDIR}/mk
124d3628763SRodney W. Grimes	echo "export CFLAGS"			>> ${CHROOTDIR}/mk
125d3628763SRodney W. Grimes	echo "RELEASEDIR=/R"			>> ${CHROOTDIR}/mk
126d3628763SRodney W. Grimes	echo "export RELEASEDIR"		>> ${CHROOTDIR}/mk
12720e5d523SJordan K. Hubbard	echo "cd /usr/src"			>> ${CHROOTDIR}/mk
128288fe4dbSPoul-Henning Kamp.if make(release)
129288fe4dbSPoul-Henning Kamp	echo "make world"			>> ${CHROOTDIR}/mk
130288fe4dbSPoul-Henning Kamp.endif
131288fe4dbSPoul-Henning Kamp.if make(rerelease)
13220e5d523SJordan K. Hubbard	echo "make all install"			>> ${CHROOTDIR}/mk
133288fe4dbSPoul-Henning Kamp.endif
134a3e12198SJordan K. Hubbard	echo "cd /usr/src/release"		>> ${CHROOTDIR}/mk
135b0e26113SJordan K. Hubbard	echo "make obj OBJLINK=yes"		>> ${CHROOTDIR}/mk
13616c61233SJordan K. Hubbard	echo "cd obj"                           >> ${CHROOTDIR}/mk
13716c61233SJordan K. Hubbard	echo "rm -f ${REDOREDO}"                >> ${CHROOTDIR}/mk
13816c61233SJordan K. Hubbard	echo "cd /usr/src/release"              >> ${CHROOTDIR}/mk
13920e5d523SJordan K. Hubbard	echo "make doRELEASE"			>> ${CHROOTDIR}/mk
140288fe4dbSPoul-Henning Kamp	echo "echo make ${.TARGET} Finished"	>> ${CHROOTDIR}/mk
14120e5d523SJordan K. Hubbard	chmod 755 ${CHROOTDIR}/mk
14220e5d523SJordan K. Hubbard	chroot ${CHROOTDIR} /mk
14320e5d523SJordan K. Hubbard
14440b0c0d9SPeter Wemmwhap:
14540b0c0d9SPeter Wemm	( cd ${CHROOTDIR}/usr/src/release/sysinstall && \
14640b0c0d9SPeter Wemm	  sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && mv version.h.new version.h )
14740b0c0d9SPeter Wemm
148bd668f6fSPoul-Henning Kampclean:
149b53e8a34SJordan K. Hubbard	rm -rf boot_crunch release.[0-9] release.1[0]
150bd668f6fSPoul-Henning Kamp
151bd668f6fSPoul-Henning Kamp# Clean out ${RELEASEDIR} and make the directory structure.
152bd668f6fSPoul-Henning Kamprelease.1:
153288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
15448327bc9SPoul-Henning Kamp	-mkdir ${RELEASEDIR}
15548327bc9SPoul-Henning Kamp	chflags -R noschg ${RELEASEDIR}/.
15648327bc9SPoul-Henning Kamp	rm -rf ${RELEASEDIR}/*
157bd668f6fSPoul-Henning Kamp	mkdir ${RD}
158bd668f6fSPoul-Henning Kamp	mkdir ${RD}/floppies
159e12c4355SPoul-Henning Kamp	mkdir ${RD}/trees
160bd668f6fSPoul-Henning Kamp	mkdir ${RD}/dists
161bb91094aSPoul-Henning Kamp	mkdir ${RD}/kernels
162518a1d34SPoul-Henning Kamp	for i in ${ALL_DISTS} ; do \
163288fe4dbSPoul-Henning Kamp		mkdir ${RD}/trees/$$i && \
164288fe4dbSPoul-Henning Kamp		mkdir ${RD}/dists/$$i && \
165bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.root.dist \
166288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i > /dev/null && \
167bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.usr.dist \
168288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr > /dev/null && \
169a414a675SPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.include.dist \
170288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr/include > /dev/null && \
171bd668f6fSPoul-Henning Kamp		mtree -deU -f ${MTREEFILES}/BSD.var.dist \
172e12c4355SPoul-Henning Kamp		    -p ${RD}/trees/$$i/var > /dev/null ; \
17348327bc9SPoul-Henning Kamp	done
174bd668f6fSPoul-Henning Kamp	touch release.1
1757f986648SPoul-Henning Kamp
176bd668f6fSPoul-Henning Kamp# Install the system into the various distributions.
177bd668f6fSPoul-Henning Kamprelease.2:
178288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
179518a1d34SPoul-Henning Kamp	cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin
180288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/.. && make distribute DISTDIR=${RD}/trees
181288fe4dbSPoul-Henning Kamp.if exists(${.CURDIR}/../eBones)
182d3628763SRodney W. Grimes	cd ${.CURDIR}/../eBones && ( \
183288fe4dbSPoul-Henning Kamp		make bootstrap &&\
184288fe4dbSPoul-Henning Kamp		make obj all help-distribute DISTDIR=${RD}/trees &&\
18572f97bfaSJordan K. Hubbard		make kprog \
186d3628763SRodney W. Grimes	)
187288fe4dbSPoul-Henning Kamp.endif
188c5b0a909SPoul-Henning Kamp	chflags -R noschg ${RD}/trees
189bd668f6fSPoul-Henning Kamp	touch release.2
190bd668f6fSPoul-Henning Kamp
19116c61233SJordan K. Hubbard# Make and install the generic kernel(s).
192bd668f6fSPoul-Henning Kamprelease.3:
19356f6016dSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
19416c61233SJordan K. Hubbard.for kernel in ${KERNELS}
19516c61233SJordan K. Hubbard	rm -f ${RD}/kernels/${kernel}
19616c61233SJordan K. Hubbard	rm -rf ${.CURDIR}/../sys/compile/${kernel}
19716c61233SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=${kernel}
19816c61233SJordan K. Hubbard	rm -rf ${.CURDIR}/../sys/compile/${kernel}
19916c61233SJordan K. Hubbard	ln -f ${RD}/kernels/${kernel} ${RD}/trees/bin/kernel.${kernel}
20016c61233SJordan K. Hubbard.endfor
201bd668f6fSPoul-Henning Kamp	touch release.3
202bd668f6fSPoul-Henning Kamp
20301feef2cSPoul-Henning Kamp# Make and install the three crunched binaries which live on the floppies.
204bd668f6fSPoul-Henning Kamp# You are not supposed to like this :-)
205cd6f5820SJoerg Wunsch#
206cd6f5820SJoerg Wunsch# NB: the "RELEASE_BUILD_FIXIT" magic prevents vi from including the
207cd6f5820SJoerg Wunsch# Tcl and Perl APIs.  See also /usr/src/usr.bin/vi/Makefile.
208bd668f6fSPoul-Henning Kamprelease.4:
209288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
210d50a3007SJordan K. Hubbard	cd ${.CURDIR}/sysinstall && make depend all
211518a1d34SPoul-Henning Kamp	rm -rf ${RD}/crunch
212518a1d34SPoul-Henning Kamp	mkdir -p ${RD}/crunch
213cd6f5820SJoerg Wunsch	export RELEASE_BUILD_FIXIT=noway ; \
2143525074dSPoul-Henning Kamp	for j in ${WHICH_CRUNCH} ; do \
215518a1d34SPoul-Henning Kamp		rm -rf $${j}_crunch && \
216518a1d34SPoul-Henning Kamp		mkdir $${j}_crunch && \
217518a1d34SPoul-Henning Kamp		( cd $${j}_crunch && \
218518a1d34SPoul-Henning Kamp		crunchgen ${.CURDIR}/$${j}_crunch.conf && \
219288fe4dbSPoul-Henning Kamp		${MAKE} -f $${j}_crunch.mk all NOCRYPT=yes \
2203525074dSPoul-Henning Kamp		    "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY") && \
221518a1d34SPoul-Henning Kamp		mv $${j}_crunch/$${j}_crunch ${RD}/crunch/$${j} && \
2225bb88366SJoerg Wunsch		true || { rm -rf $${j}_crunch ; false ; } ; \
223bd668f6fSPoul-Henning Kamp	done
224bd668f6fSPoul-Henning Kamp	touch release.4
225bd668f6fSPoul-Henning Kamp
22630e8b491SPoul-Henning Kamp#
22730e8b491SPoul-Henning Kamp# --==## Fix up the distributions. ##==--
22830e8b491SPoul-Henning Kamp#
229bd668f6fSPoul-Henning Kamprelease.5:
230288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
23104f11c61SJordan K. Hubbard	# Handle some grief caused by the munition braindeadness.
2324f9a3d48SJoerg Wunsch	for i in sbin/init bin/ed ; do \
2334f9a3d48SJoerg Wunsch		( cd ${.CURDIR}/../$$i; \
2344f9a3d48SJoerg Wunsch		  make -DNOCRYPT clean all distribute DISTDIR=${RD}/trees ) ; \
2354f9a3d48SJoerg Wunsch	done
2364f9a3d48SJoerg Wunsch
23730e8b491SPoul-Henning Kamp	# Move all the manpages out to their own dist
238e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/man ] ; then \
23946a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/man . | \
24046a7b813SJordan K. Hubbard			tar xf - -C ${RD}/trees/manpages/usr/share/man && \
24146a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/man; \
242bd668f6fSPoul-Henning Kamp	fi
24330e8b491SPoul-Henning Kamp	# Move all the games out to their own dist
244e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/games ] ; then \
24546a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/games . | \
24646a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/usr/games && \
24746a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/games; \
248bd668f6fSPoul-Henning Kamp	fi
249e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/games ] ; then \
25046a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/games . | \
25146a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/usr/share/games && \
25246a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/games; \
253bd668f6fSPoul-Henning Kamp	fi
254e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/var/games ] ; then \
25546a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/var/games . | \
25646a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/games/var/games && \
25746a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/var/games; \
258bd668f6fSPoul-Henning Kamp	fi
25930e8b491SPoul-Henning Kamp	# Move the dict out to their own dist
260e12c4355SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/dict ] ; then \
26146a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/dict . | \
26246a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/dict/usr/share/dict && \
26346a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/dict; \
264bd668f6fSPoul-Henning Kamp	fi
265bd668f6fSPoul-Henning Kamp	for i in airport birthtoken flowers na.phone zipcodes ; do \
266e12c4355SPoul-Henning Kamp		if [ -f ${RD}/trees/bin/usr/share/misc/$$i ] ; then \
267e12c4355SPoul-Henning Kamp			mv ${RD}/trees/bin/usr/share/misc/$$i \
268e12c4355SPoul-Henning Kamp				${RD}/trees/dict/usr/share/misc; \
269bd668f6fSPoul-Henning Kamp		fi ; \
270bd668f6fSPoul-Henning Kamp	done
27130e8b491SPoul-Henning Kamp	# Move the info files out to their own dist
27230e8b491SPoul-Henning Kamp	if [ -d ${RD}/trees/bin/usr/share/info ] ; then \
27346a7b813SJordan K. Hubbard		tar -cf - -C ${RD}/trees/bin/usr/share/info . | \
27446a7b813SJordan K. Hubbard			tar -xf - -C ${RD}/trees/info/usr/share/info && \
27546a7b813SJordan K. Hubbard		rm -rf ${RD}/trees/bin/usr/share/info; \
27630e8b491SPoul-Henning Kamp	fi
27730e8b491SPoul-Henning Kamp	# Move the profiled libraries out to their own dist
278e12c4355SPoul-Henning Kamp	for i in ${RD}/trees/bin/usr/lib/*_p.a ; do \
279bd668f6fSPoul-Henning Kamp		if [ -f $$i ] ; then \
280bd668f6fSPoul-Henning Kamp			mv $$i \
281e12c4355SPoul-Henning Kamp				${RD}/trees/proflibs/usr/lib ; \
282bd668f6fSPoul-Henning Kamp		fi ; \
283bd668f6fSPoul-Henning Kamp	done
2842fb96ab9SJoerg Wunsch	# Create symlinks for the MD5-based crypt lib, too.  The
2852fb96ab9SJoerg Wunsch	# automatically created links still point to the DES stuff,
2862fb96ab9SJoerg Wunsch	# which went into its own distribution.
2872fb96ab9SJoerg Wunsch	for i in ${RD}/trees/bin/usr/lib/libscrypt* ; do \
2882fb96ab9SJoerg Wunsch		c=`echo $$i | sed -e 's/libscrypt/libcrypt/'` ; \
2892fb96ab9SJoerg Wunsch		rm -f $$c ; \
2902fb96ab9SJoerg Wunsch		ln -s `basename $$i` $$c ; \
2912fb96ab9SJoerg Wunsch	done
29234fca5ddSJoerg Wunsch
29330e8b491SPoul-Henning Kamp	# Remove some files we can faster regen after installing.
294d2b98961SPoul-Henning Kamp	cd ${RD}/trees/bin/usr/share/misc && rm -f termcap.db vgrindefs.db
29530e8b491SPoul-Henning Kamp	# Remove all the directories we don't need.
29627d44115SPoul-Henning Kamp	-cd ${RD}/trees && \
29727d44115SPoul-Henning Kamp		find ${EXTRA_DISTS} -depth -type d -print | xargs rmdir
298bd668f6fSPoul-Henning Kamp	touch release.5
299f14786ddSJordan K. Hubbard
30030e8b491SPoul-Henning Kamp#
30130e8b491SPoul-Henning Kamp# --==## Make binary dists ##==--
30230e8b491SPoul-Henning Kamp#
303bd668f6fSPoul-Henning Kamprelease.6:
304288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
30595e34bfcSJordan K. Hubbard	rm -rf ${RD}/dists
30695e34bfcSJordan K. Hubbard	mkdir -p ${RD}/dists
30795e34bfcSJordan K. Hubbard	@for i in ${DISTRIBUTIONS} ; \
30895e34bfcSJordan K. Hubbard	do \
30995e34bfcSJordan K. Hubbard		if [ -d ${RD}/trees/$${i} ] ; then \
31030e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
31130e8b491SPoul-Henning Kamp				SD=${RD}/trees/$${i} \
312288fe4dbSPoul-Henning Kamp				TN=$$i TD=$$i ARG="." && \
31395e34bfcSJordan K. Hubbard			echo "$${i} distribution is finished."; \
31495e34bfcSJordan K. Hubbard		fi ; \
31595e34bfcSJordan K. Hubbard	done
31630e8b491SPoul-Henning Kamp	( cd ${RD}/dists && \
31730e8b491SPoul-Henning Kamp		if [ -f krb/krb.aa ] ; then mv krb/* des && rmdir krb ; fi )
3180412e9f7SJordan K. Hubbard	touch release.6
31995e34bfcSJordan K. Hubbard
32095e34bfcSJordan K. Hubbard
32130e8b491SPoul-Henning Kamp#
32230e8b491SPoul-Henning Kamp# --==## Make source dists ##==--
32330e8b491SPoul-Henning Kamp#
32495e34bfcSJordan K. Hubbardrelease.7:
325288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
326288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) doTARBALL SD=/usr/src \
32795e34bfcSJordan K. Hubbard		TD=src TN=sbase ARG="[A-Z]*"
328288fe4dbSPoul-Henning Kamp	@for i in `cd /usr/src && echo [a-z]*` ; do \
32930e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$i ] ; then \
33030e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
33195e34bfcSJordan K. Hubbard				TN=`echo s$$i | tr -d '.' | sed 's/usr/u/'` \
33230e8b491SPoul-Henning Kamp				SD=/usr/src TD=src ARG="$$i" ; \
33395e34bfcSJordan K. Hubbard		fi ; \
33495e34bfcSJordan K. Hubbard	done
33540b0c0d9SPeter Wemm.if defined(EXTRA_SRC)
336288fe4dbSPoul-Henning Kamp	@set ${EXTRA_SRC} && \
33740b0c0d9SPeter Wemm	while [ $$# -ge 2 ] ; do \
33830e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$1 ] ; then \
33930e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
34030e8b491SPoul-Henning Kamp				SD=/usr/src TN="s$$2" TD=src ARG="$$1" ; \
34130e8b491SPoul-Henning Kamp		fi && shift && shift ; \
34240b0c0d9SPeter Wemm	done
34340b0c0d9SPeter Wemm.endif
34495e34bfcSJordan K. Hubbard	( cd ${RD}/dists/src && \
345d3628763SRodney W. Grimes		if [ -f ssecure.aa ] ; then mv ssecure.* ../des ; fi && \
34624fe14a0SJordan K. Hubbard		if [ -f sebones.aa ] ; then mv sebones.* ../des ; fi && \
34730e8b491SPoul-Henning Kamp		if [ -f ssecure.inf ] ; then mv ssecure.inf ../des ; fi && \
34830e8b491SPoul-Henning Kamp		if [ -f sebones.inf ] ; then mv sebones.inf ../des ; fi ; )
34995e34bfcSJordan K. Hubbard	@echo "src distribution is finished."
3500412e9f7SJordan K. Hubbard	touch release.7
35195e34bfcSJordan K. Hubbard
35295e34bfcSJordan K. Hubbard# Complete the bootfd
353409f9329SJordan K. Hubbard#
354409f9329SJordan K. Hubbard# Now, just to get this picture down once and for all:
355409f9329SJordan K. Hubbard#
356409f9329SJordan K. Hubbard# +------------------------------------------------------------------------+
357409f9329SJordan K. Hubbard# |boot.flp                                                                |
358409f9329SJordan K. Hubbard# +-----+-----+------------------------------------------------------------+
359409f9329SJordan K. Hubbard# |boot1|boot2|floppy filesystem "bootfd"                                  |
360409f9329SJordan K. Hubbard# +-----+-----+-+--------------------------------------------------------+-+
361409f9329SJordan K. Hubbard#               |kernel                                                  |
362409f9329SJordan K. Hubbard#               +------------+-----------------------------------------+-+
363409f9329SJordan K. Hubbard#                            |mfs filesystem "mfsfd"                   |
364409f9329SJordan K. Hubbard#                            +-----------------------------------------+
365409f9329SJordan K. Hubbard#
366409f9329SJordan K. Hubbard
367d50a3007SJordan K. Hubbardrelease.8: write_mfs_in_kernel dumpnlist
3683df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
369409f9329SJordan K. Hubbard	rm -rf ${RD}/mfsfd
370409f9329SJordan K. Hubbard	mkdir ${RD}/mfsfd
371409f9329SJordan K. Hubbard	cd ${RD}/mfsfd && \
372f8d8dfe8SPoul-Henning Kamp		mkdir -p etc dev mnt stand/help && \
373f8d8dfe8SPoul-Henning Kamp		ln -s 'AH<<<<' etc/malloc.conf
3743df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \
375a91fd119SPoul-Henning Kamp		DIR=${RD}/mfsfd/stand ZIP=false
3763df0e2afSPoul-Henning Kamp	( cd ${RD}/trees/bin/dev && \
37739ae3f15SJordan K. Hubbard		ls console tty ttyv0 ttyv1 ttyv2 ttyv3 null zero \
37840b0c0d9SPeter Wemm		*[sw]d* cuaa[01] cuaa[23] fd[01] rfd[01] \
3790e9e4efaSJordan K. Hubbard		cd0a mcd0a scd0a matcd0a wcd0c rst0 rft0 rwt0 | \
380409f9329SJordan K. Hubbard	cpio -dump ${RD}/mfsfd/dev )
381b82e26f6SPoul-Henning Kamp	( cd ${RD}/mfsfd/dev && rm -f *[sw]d*[bdefgh] )
3823df0e2afSPoul-Henning Kamp	cd ${RD}/trees/bin && ls ${BOOT1} | cpio -dump ${RD}/mfsfd/stand
383d3628763SRodney W. Grimes	echo "nameserver      42/tcp name"	> ${RD}/mfsfd/stand/etc/services
384d3628763SRodney W. Grimes	echo "ftp             21/tcp"		>> ${RD}/mfsfd/stand/etc/services
385d3628763SRodney W. Grimes	echo "domain          53/tcp          nameserver" >> ${RD}/mfsfd/stand/etc/services
386d3628763SRodney W. Grimes	echo "domain          53/udp          nameserver" >> ${RD}/mfsfd/stand/etc/services
387e7fc885eSJordan K. Hubbard	echo "cmd             514/tcp    shell" >> ${RD}/mfsfd/stand/etc/services
3886545b6a5SJordan K. Hubbard	gzip -c ${.CURDIR}/../COPYRIGHT > ${RD}/mfsfd/stand/help/COPYRIGHT.hlp.gz
389d4983966SPaul Traina	-test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd
3906545b6a5SJordan K. Hubbard	@echo "Making the regular boot floppy."
39117078dccSJordan K. Hubbard	tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \
392409f9329SJordan K. Hubbard		tar xvf - -C ${RD}/mfsfd/stand
3936545b6a5SJordan K. Hubbard	@echo "Compressing doc files..."
3946545b6a5SJordan K. Hubbard	@gzip -9 ${RD}/mfsfd/stand/help/*.hlp
395c66cda21SPoul-Henning Kamp	sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${BOOTMFSSIZE} ${RD}/mfsfd \
396288fe4dbSPoul-Henning Kamp		${MFSINODE} minimum
397288fe4dbSPoul-Henning Kamp	mv fs-image fs-image.std
398288fe4dbSPoul-Henning Kamp	mv fs-image.size fs-image.std.size
399288fe4dbSPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=std
40030e8b491SPoul-Henning Kamp	mv ${RD}/floppies/bootstd.flp ${RD}/floppies/boot.flp
4016545b6a5SJordan K. Hubbard	@echo "Regular boot floppy made."
4020412e9f7SJordan K. Hubbard	touch release.8
403bd668f6fSPoul-Henning Kamp
40430e8b491SPoul-Henning Kamp#
40530e8b491SPoul-Henning Kamp# --==## Create a fixit floppy ##==--
40630e8b491SPoul-Henning Kamp#
407b53e8a34SJordan K. Hubbardrelease.9:
4083df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
409518a1d34SPoul-Henning Kamp	rm -rf ${RD}/fixitfd
410518a1d34SPoul-Henning Kamp	mkdir ${RD}/fixitfd
411518a1d34SPoul-Henning Kamp	cd ${RD}/fixitfd && \
41230e8b491SPoul-Henning Kamp		mkdir dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp
4133df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=fixit \
414518c7f2aSJoerg Wunsch		DIR=${RD}/fixitfd/stand ZIP=false
41530e8b491SPoul-Henning Kamp	( cd ${RD}/fixitfd/dev && \
416a18763d0SJoerg Wunsch		sed -e '/^PATH/s/^/#/' ${RD}/trees/bin/dev/MAKEDEV > MAKEDEV && \
417a18763d0SJoerg Wunsch		chmod 755 MAKEDEV && \
41830e8b491SPoul-Henning Kamp		sh MAKEDEV all )
419518c7f2aSJoerg Wunsch	cp ${RD}/trees/bin/etc/spwd.db ${RD}/trees/bin/etc/group \
420518c7f2aSJoerg Wunsch		${RD}/trees/bin/etc/protocols ${RD}/fixitfd/etc
421e12c4355SPoul-Henning Kamp	cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile
422518c7f2aSJoerg Wunsch	cp ${.CURDIR}/fixit.services ${RD}/fixitfd/etc/services
423ed228eb6SJoerg Wunsch	cp ${.CURDIR}/tar.sh ${RD}/fixitfd/stand/tar
424ed228eb6SJoerg Wunsch	chmod 555 ${RD}/fixitfd/stand/tar
425c66cda21SPoul-Henning Kamp	sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/fixitfd \
426518c7f2aSJoerg Wunsch		${FIXITINODE} ${FDLABEL}
427288fe4dbSPoul-Henning Kamp	mv fs-image ${RD}/floppies/fixit.flp
428b53e8a34SJordan K. Hubbard	touch release.9
4293bc93c76SPoul-Henning Kamp
43030e8b491SPoul-Henning Kamp#
431dc3d7eceSJordan K. Hubbard# --==## Create the compat distributions ##==--
432dc3d7eceSJordan K. Hubbard#
433dc3d7eceSJordan K. Hubbardrelease.10:
434dc3d7eceSJordan K. Hubbard	@for i in compat1x compat20 compat21; do \
435a18763d0SJoerg Wunsch		mkdir -p ${RD}/dists/$$i && ( cd ${RD}/dists/$$i && \
4367032f807SJordan K. Hubbard		uudecode ${.CURDIR}/compat/$$i.tgz.uu && \
4377032f807SJordan K. Hubbard		cp ${.CURDIR}/scripts/$${i}-install.sh install.sh && \
438dc3d7eceSJordan K. Hubbard		md5 * > CHECKSUM.MD5 ); \
439dc3d7eceSJordan K. Hubbard	done
440dc3d7eceSJordan K. Hubbard
441dc3d7eceSJordan K. Hubbard#
44230e8b491SPoul-Henning Kamp# --==## Setup a suitable ftp-area ##==--
44330e8b491SPoul-Henning Kamp#
444e12c4355SPoul-Henning Kampftp.1:
445ae33fac5SJordan K. Hubbard	mkdir -p ${FD}
446a8335764SPoul-Henning Kamp	cd ${RD} && find floppies -print | cpio -dumpl ${FD}
447a8335764SPoul-Henning Kamp	cd ${RD}/dists && find . -print | cpio -dumpl ${FD}
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
4523bc93c76SPoul-Henning Kamp
45330e8b491SPoul-Henning Kamp#
45430e8b491SPoul-Henning Kamp# --==## Setup a suitable cdrom-area ##==--
45530e8b491SPoul-Henning Kamp#
456c5b0a909SPoul-Henning Kampcdrom.1:
457ae33fac5SJordan K. Hubbard	mkdir -p ${CD}/filesys
4582822939aSJordan K. Hubbard	cd ${RD} && find floppies -print | cpio -dumpl ${CD}
4592822939aSJordan K. Hubbard	cd ${RD}/dists && find . -print | cpio -dumpl ${CD}
46030e8b491SPoul-Henning Kamp	ln -f ${RD}/kernels/MFSKERNEL.std ${CD}/kernel
461409f9329SJordan K. Hubbard	ln -f ${RD}/trees/bin/usr/mdec/fbsdboot.exe ${CD}
462c5b0a909SPoul-Henning Kamp	for i in ${DISTRIBUTIONS} ; \
463c5b0a909SPoul-Henning Kamp	do \
464c5b0a909SPoul-Henning Kamp		if [ -d ${RD}/trees/$${i} ] ; then \
46501feef2cSPoul-Henning Kamp			( cd ${RD}/trees/$${i} && \
466c5b0a909SPoul-Henning Kamp			find . -depth -print | cpio -dumpl ${CD}/filesys ) ; \
467c5b0a909SPoul-Henning Kamp		fi \
468c5b0a909SPoul-Henning Kamp	done
4693ee8cec8SJordan K. Hubbard	echo "CD_VERSION = ${BUILDNAME}" > ${CD}/cdrom.inf
47016805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/readme.hlp ${CD}/README.TXT
47116805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/hardware.hlp ${CD}/HARDWARE.TXT
47216805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/install.hlp ${CD}/INSTALL.TXT
47316805608SJordan K. Hubbard	cp ${.CURDIR}/sysinstall/help/relnotes.hlp ${CD}/RELNOTES.TXT
474c5b0a909SPoul-Henning Kamp
4757eb11201SPoul-Henning Kamp# Various "subroutine" and other supporting targets.
4767eb11201SPoul-Henning Kamp
477bd668f6fSPoul-Henning KampdoTARBALL:
478bd668f6fSPoul-Henning Kamp.if !defined(SD)
479288fe4dbSPoul-Henning Kamp	@echo "SD undefined in doTARBALL" && exit 1
480bd668f6fSPoul-Henning Kamp.endif
481bd668f6fSPoul-Henning Kamp.if !defined(TD)
482288fe4dbSPoul-Henning Kamp	@echo "TB undefined in doTARBALL" && exit 1
483bd668f6fSPoul-Henning Kamp.endif
484bd668f6fSPoul-Henning Kamp.if !defined(ARG)
485288fe4dbSPoul-Henning Kamp	@echo "ARG undefined in doTARBALL" && exit 1
486bd668f6fSPoul-Henning Kamp.endif
487836ed9f2SPoul-Henning Kamp	rm -rf ${RD}/dists/${TD}/${TN}*
488e12c4355SPoul-Henning Kamp	mkdir -p ${RD}/dists/${TD}
489d2b98961SPoul-Henning Kamp	( cd ${SD} && \
490d2b98961SPoul-Henning Kamp		tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \
491d2b98961SPoul-Henning Kamp		echo rolling ${TD}/$$tn tarball &&\
49245209a22SPoul-Henning Kamp		tar --exclude CVS --exclude obj -cf - ${ARG} | \
49395e34bfcSJordan K. Hubbard		${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \
494ac0a5268SJordan K. Hubbard		sh ${.CURDIR}/info.sh ${RD}/dists/${TD}/$$tn > \
495ac0a5268SJordan K. Hubbard		   ${RD}/dists/${TD}/$$tn.inf && \
4961e104a1eSJordan K. Hubbard		if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \
4971e104a1eSJordan K. Hubbard		  cp -p ${.CURDIR}/scripts/$${TD}-install.sh ${RD}/dists/${TD}/install.sh; \
4981e104a1eSJordan K. Hubbard		fi && \
49916c61233SJordan K. Hubbard		  if [ "${SD}" != "/usr/src" ]; then \
50016c61233SJordan K. Hubbard			mtree -c -i -p ${SD}/${ARG} \
50116c61233SJordan K. Hubbard			  -k gname,md5digest,mode,nlink,uname,size,link,type \
50216c61233SJordan K. Hubbard			  > ${RD}/dists/${TD}/$$tn.mtree ; else true; fi )
5037eb11201SPoul-Henning Kamp
5047eb11201SPoul-Henning KampdoRELEASE:  release.1 release.2 release.3 release.4 release.5 release.6 \
505dc3d7eceSJordan K. Hubbard		release.7 release.8 release.9 release.10
506895449d2SPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} cdrom.1 ftp.1
5077eb11201SPoul-Henning Kamp	@echo "Release done"
5087eb11201SPoul-Henning Kamp
5090ead1f1dSJordan K. Hubbardfloppies:
51040b0c0d9SPeter Wemm	cd ${.CURDIR} && ${MAKE} boot.flp
51140b0c0d9SPeter Wemm	cd ${.CURDIR} && ${MAKE} fixit.flp
5127854541aSJordan K. Hubbard	cd ${RD} && find floppies -print | cpio -dumpl ${FD}
5130ead1f1dSJordan K. Hubbard
5143525074dSPoul-Henning Kampboot.flp:
5150412e9f7SJordan K. Hubbard	rm -f release.4 release.8
516c0b83abeSPoul-Henning Kamp	cd ${.CURDIR} && ${MAKE} release.4 release.8 WHICH_CRUNCH=boot
5173525074dSPoul-Henning Kamp
518e841846bSPoul-Henning Kampfixit.flp:
519b53e8a34SJordan K. Hubbard	rm -f release.4 release.9
520b53e8a34SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} release.4 release.9 WHICH_CRUNCH=fixit
521e841846bSPoul-Henning Kamp
522409f9329SJordan K. Hubbardwrite_mfs_in_kernel:	${.CURDIR}/write_mfs_in_kernel.c
523409f9329SJordan K. Hubbard	${CC} ${CFLAGS} -o write_mfs_in_kernel ${.CURDIR}/write_mfs_in_kernel.c
524409f9329SJordan K. Hubbard
525d50a3007SJordan K. Hubbarddumpnlist:	${.CURDIR}/dumpnlist.c
526d50a3007SJordan K. Hubbard	${CC} ${CFLAGS} -o dumpnlist ${.CURDIR}/dumpnlist.c
527d50a3007SJordan K. Hubbard
5287eb11201SPoul-Henning KampckRELEASEDIR:
5297eb11201SPoul-Henning Kamp.if !defined(RELEASEDIR)
5307eb11201SPoul-Henning Kamp	@echo "To make a release RELEASEDIR must be defined" && false
5317eb11201SPoul-Henning Kamp.endif
5327eb11201SPoul-Henning Kamp
533518a1d34SPoul-Henning KampinstallCRUNCH:
534518a1d34SPoul-Henning Kamp.if !defined(CRUNCH)
535288fe4dbSPoul-Henning Kamp	@echo "CRUNCH undefined in installCRUNCH" && exit 1
536518a1d34SPoul-Henning Kamp.endif
537518a1d34SPoul-Henning Kamp.if !defined(DIR)
538288fe4dbSPoul-Henning Kamp	@echo "DIR undefined in installCRUNCH" && exit 1
539518a1d34SPoul-Henning Kamp.endif
540518a1d34SPoul-Henning Kamp.if !defined(ZIP)
541288fe4dbSPoul-Henning Kamp	@echo "ZIP undefined in installCRUNCH" && exit 1
542518a1d34SPoul-Henning Kamp.endif
543518a1d34SPoul-Henning Kamp	if ${ZIP} ; then \
544518a1d34SPoul-Henning Kamp		gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \
545518a1d34SPoul-Henning Kamp	else \
546518a1d34SPoul-Henning Kamp		ln -f ${RD}/crunch/${CRUNCH} ${DIR}/${CRUNCH}_crunch ; \
547518a1d34SPoul-Henning Kamp	fi
548518a1d34SPoul-Henning Kamp	chmod 555 ${DIR}/${CRUNCH}_crunch
549518a1d34SPoul-Henning Kamp	for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \
550518a1d34SPoul-Henning Kamp		ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \
551518a1d34SPoul-Henning Kamp	done
552288fe4dbSPoul-Henning Kamp
553288fe4dbSPoul-Henning Kamp#
554288fe4dbSPoul-Henning Kamp# --==## Compile a kernel by name ${KERNEL} ##==--
555288fe4dbSPoul-Henning Kamp#
556288fe4dbSPoul-Henning Kamp# We don't erase the sys/compile/${KERNEL} directory, since somebody
557288fe4dbSPoul-Henning Kamp# may want to reuse it (release.8 presently)
558288fe4dbSPoul-Henning Kamp#
559288fe4dbSPoul-Henning KampdoKERNEL:
560288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
561288fe4dbSPoul-Henning Kamp	rm -f ${RD}/kernels/${KERNEL}
562288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../sys/i386/conf && config -n ${KERNEL}
563288fe4dbSPoul-Henning Kamp	cd ${.CURDIR}/../sys/compile/${KERNEL} && \
564288fe4dbSPoul-Henning Kamp			make  depend && \
565288fe4dbSPoul-Henning Kamp			make  kernel && \
566288fe4dbSPoul-Henning Kamp			cp kernel ${RD}/kernels/${KERNEL}
567288fe4dbSPoul-Henning Kamp
568288fe4dbSPoul-Henning Kamp#
569288fe4dbSPoul-Henning Kamp# --==## Put a filesystem into a BOOTMFS kernel ##==--
570288fe4dbSPoul-Henning Kamp#
571288fe4dbSPoul-Henning KampdoMFSKERN:
572288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) ckRELEASEDIR
573d50a3007SJordan K. Hubbard	@rm -f ${RD}/kernels/BOOTMFS.${FSIMAGE}
574d50a3007SJordan K. Hubbard	@rm -f /sys/compile/BOOTMFS/mfs_vfsops.o
575d50a3007SJordan K. Hubbard	@cd ${.CURDIR}/../sys/i386/conf && \
57616c61233SJordan K. Hubbard	  sed	-e '/SYSV/d' \
57716c61233SJordan K. Hubbard		-e '/pty/d' \
57816c61233SJordan K. Hubbard		-e '/PROCFS/d' \
579a7c2b4b0SPaul Traina		-e '/KTRACE/d' \
58016c61233SJordan K. Hubbard		-e 's/GENERIC/BOOTMFS/g' \
58116c61233SJordan K. Hubbard		-e '/maxusers/s/10/4/' < GENERIC > BOOTMFS && \
582a91fd119SPoul-Henning Kamp	  echo "options  MFS" >> BOOTMFS && \
58316c61233SJordan K. Hubbard	  echo "options  NFS_NOSERVER" >> BOOTMFS && \
584d50a3007SJordan K. Hubbard	  echo 'options  "MAXCONS=4"' >> BOOTMFS && \
585d50a3007SJordan K. Hubbard	  echo "options  USERCONFIG_BOOT" >> BOOTMFS
586d50a3007SJordan K. Hubbard	@echo "options \"MFS_ROOT=`cat fs-image.${FSIMAGE}.size`\"" >> \
5874676f742SJordan K. Hubbard	  ${.CURDIR}/../sys/i386/conf/BOOTMFS
588a590cd43SJordan K. Hubbard	cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=BOOTMFS
589d50a3007SJordan K. Hubbard	@rm -rf ${RD}/boot.${FSIMAGE}
590d50a3007SJordan K. Hubbard	@mkdir  ${RD}/boot.${FSIMAGE}
591d50a3007SJordan K. Hubbard	@mv ${RD}/kernels/BOOTMFS ${RD}/kernels/BOOTMFS.${FSIMAGE}
592d50a3007SJordan K. Hubbard	@cp ${RD}/kernels/BOOTMFS.${FSIMAGE} ${RD}/boot.${FSIMAGE}/kernel
593b434db23SJordan K. Hubbard	@vnconfig /dev/vn0 fs-image.${FSIMAGE}
594b434db23SJordan K. Hubbard	@mkdir -p /tmp/mnt_xx
595b434db23SJordan K. Hubbard	@mount /dev/vn0 /tmp/mnt_xx
596b434db23SJordan K. Hubbard	./dumpnlist ${RD}/boot.${FSIMAGE}/kernel > /tmp/mnt_xx/stand/symbols
597b434db23SJordan K. Hubbard	@umount /tmp/mnt_xx
598b434db23SJordan K. Hubbard	@vnconfig -u /dev/vn0
599b434db23SJordan K. Hubbard	@rmdir /tmp/mnt_xx
600288fe4dbSPoul-Henning Kamp	./write_mfs_in_kernel ${RD}/boot.${FSIMAGE}/kernel \
601288fe4dbSPoul-Henning Kamp		fs-image.${FSIMAGE}
602288fe4dbSPoul-Henning Kamp	kzip -v ${RD}/boot.${FSIMAGE}/kernel
603d50a3007SJordan K. Hubbard	@mv ${RD}/boot.${FSIMAGE}/kernel ${RD}/kernels/MFSKERNEL.${FSIMAGE}
604d50a3007SJordan K. Hubbard	@mv ${RD}/boot.${FSIMAGE}/kernel.kz ${RD}/boot.${FSIMAGE}/kernel
605d50a3007SJordan K. Hubbard	@ls -l ${RD}/boot.${FSIMAGE}/kernel
606d50a3007SJordan K. Hubbard	@rm -f ${RD}/floppies/boot${FSIMAGE}.flp
607e7fc885eSJordan K. Hubbard	cat ${RD}/trees/bin/usr/mdec/rawboot ${RD}/boot.${FSIMAGE}/kernel | \
60899092699SPoul-Henning Kamp		dd conv=sync of=${RD}/floppies/boot${FSIMAGE}.flp
609d50a3007SJordan K. Hubbard	@echo 'USERCONFIG' > startup_foo
610d50a3007SJordan K. Hubbard	@echo 'intro' >> startup_foo
611d50a3007SJordan K. Hubbard	dd if=startup_foo of=${RD}/floppies/boot${FSIMAGE}.flp \
612d50a3007SJordan K. Hubbard	  seek=1 bs=512 count=1 conv=sync
613d50a3007SJordan K. Hubbard	@rm -f startup_foo
614288fe4dbSPoul-Henning Kamp
6152469b9a2SPoul-Henning Kamp.include <bsd.prog.mk>
616