xref: /freebsd/release/Makefile (revision 8eb4e096d5d5487a7a100f2cd24575bab2cee8aa)
197d92980SPeter Wemm# $FreeBSD$
20202c140SRodney W. Grimes#
3dba36bb9SRuslan Ermilov# make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \
4faec9c80SJeroen Ruigrok van der Werven#     [RELEASETAG=tag]
5bd668f6fSPoul-Henning Kamp#
6faec9c80SJeroen Ruigrok van der Werven# Where "/some/dir" is the pathname of a directory on a some filesystem with
7faec9c80SJeroen Ruigrok van der Werven# at least 1000MB of free space, "somename" is what you want the release to
8faec9c80SJeroen Ruigrok van der Werven# call itself, "/cvs/dir" is where our source repo resides and, optionally,
9faec9c80SJeroen Ruigrok van der Werven# which CVS "tag" name should be used when checking out the sources to build
10faec9c80SJeroen Ruigrok van der Werven# the release (default is HEAD).
11bd668f6fSPoul-Henning Kamp#
12dba36bb9SRuslan Ermilov# Please note: the md(4) driver must be present in the kernel
13dba36bb9SRuslan Ermilov# (either by being compiled in or loaded as a kld(4) module),
14ff85b6e3SRuslan Ermilov# otherwise the target 'release.9' and possibly others will fail.
15f1a03fb6SAndreas Klemm#
16463a339fSBruce A. Mah# Note:  "/some/dir" cannot reside on a filesystem mounted with
17463a339fSBruce A. Mah# the "nodev" option, otherwise the chrooted "buildworld" will likely
18463a339fSBruce A. Mah# fail.
19463a339fSBruce A. Mah#
200874402dSMurray Stokely# Note: If you add options to this file, please keep release(7) updated!
210874402dSMurray Stokely#
22aeb6d603SJordan K. Hubbard# Set these, release builder!
23d013a27bSJoerg Wunsch#
24d013a27bSJoerg Wunsch# Fixed version:
2520ffc587SYoshihiro Takahashi#BUILDNAME=5.0-RELEASE
26d013a27bSJoerg Wunsch#
27d013a27bSJoerg Wunsch# Automatic SNAP versioning:
28fcab936bSDag-Erling SmørgravDATE != date +%Y%m%d
2920ffc587SYoshihiro TakahashiBASE = 5.0
3064938abfSJordan K. HubbardBUILDNAME?=${BASE}-${DATE}-SNAP
31d013a27bSJoerg Wunsch#
32fe85fe95SJordan K. Hubbard#CHROOTDIR=/junk/release
333da2229cSBrian Somers# If this is a -stable snapshot, then set
3416cca1b2SAlexander Langer#RELEASETAG=RELENG_4
35d751ad7fSJohn W. De Boskey#
36d751ad7fSJohn W. De Boskey# To add other options to the CVS subcommands (co,up), set
372b3f8b22SMakoto Matsushita#CVSCMDARGS="-D '01/01/2002 00:00:00 UTC'"
383f17d264SSatoshi Asami#
39d751ad7fSJohn W. De Boskey# To add other options to the CVS command, set
40d751ad7fSJohn W. De Boskey#CVSARGS="-lfq"
41d751ad7fSJohn W. De Boskey#
42d751ad7fSJohn W. De Boskey# To prefix the cvs command
43d751ad7fSJohn W. De Boskey#CVSPREFIX="/usr/bin/time"
44d751ad7fSJohn W. De Boskey#
453f17d264SSatoshi Asami# Non-zero if ${RELEASETAG} is in the form "RELENG_ver_RELEASE"; we
463f17d264SSatoshi Asami# are building an official release.  Otherwise, we are building for
473f17d264SSatoshi Asami# a branch.
483f17d264SSatoshi Asami.if defined(RELEASETAG)
49be1234f2SPoul-Henning KampISRELEASE!=	expr "${RELEASETAG}" : '^RELENG_.*_RELEASE$$' || true
503f17d264SSatoshi Asami.if ${ISRELEASE} != 0
513f17d264SSatoshi Asami# Convert "RELENG_ver_RELEASE" to "RELEASE_ver" for ports and doc trees.
523f17d264SSatoshi AsamiAUXRELEASETAG!=	echo ${RELEASETAG} | sed -e 's/^RELENG_/RELEASE_/' -e 's/_RELEASE$$//'
535be3b5d9SJordan K. HubbardDOCRELEASETAG?=		${AUXRELEASETAG}
545be3b5d9SJordan K. HubbardPORTSRELEASETAG?=	${AUXRELEASETAG}
553f17d264SSatoshi Asami.endif
563f17d264SSatoshi Asami.endif
57ab0e9cdcSPoul-Henning Kamp
58fff8eb57SJohn Baldwin# If you want to pass flags to the world build such as -j X, use
59fff8eb57SJohn Baldwin# WORLD_FLAGS.  Similarly, you can specify make flags for kernel
60fff8eb57SJohn Baldwin# builds via KERNEL_FLAGS.
61fff8eb57SJohn Baldwin#WORLD_FLAGS=-j4
62fff8eb57SJohn Baldwin#KERNEL_FLAGS=-j4
63fff8eb57SJohn Baldwin
648f1f55e9SRuslan ErmilovTARGET_ARCH?=	${MACHINE_ARCH}
658f1f55e9SRuslan Ermilov.if ${TARGET_ARCH} == ${MACHINE_ARCH}
668f1f55e9SRuslan ErmilovTARGET?=	${MACHINE}
678f1f55e9SRuslan Ermilov.else
688f1f55e9SRuslan ErmilovTARGET?=	${TARGET_ARCH}
698f1f55e9SRuslan Ermilov.endif
708f1f55e9SRuslan ErmilovCROSSMAKE=	${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET}
7161c2d47aSRuslan ErmilovNATIVEMAKE=	${MAKE} TARGET_ARCH=${MACHINE_ARCH} TARGET=${MACHINE}
728f1f55e9SRuslan Ermilov
730c9cba52SMike Smith# If you are using a local CVS repository with components stored in
740c9cba52SMike Smith# non-standard modules, override these on the make commandline or
750c9cba52SMike Smith# in the environment.
760c9cba52SMike SmithRELEASESRCMODULE?=	src
770c9cba52SMike SmithRELEASEDOCMODULE?=	doc
780c9cba52SMike SmithRELEASEPORTSMODULE?=	ports
790c9cba52SMike Smith
80dd1a1b3dSJoerg Wunsch# Uncomment this to disable the doc.1 target.  Docs normally require
81dd1a1b3dSJoerg Wunsch# the ports tree, so NOPORTS can be set together with NODOC in order
82dd1a1b3dSJoerg Wunsch# to have neither ports or docs.  If only NOPORTS is set to YES, but
83dd1a1b3dSJoerg Wunsch# docs are still desired, the DOMINIMALDOCPORTS logic below will only
84dd1a1b3dSJoerg Wunsch# install the ports that are minimally required for the docs.  This is
85dd1a1b3dSJoerg Wunsch# intended as a compromise, less disk space is required than for using
8623ef6da7STom Rhodes# the entire ports collection (and much less time due to the huge number
87dd1a1b3dSJoerg Wunsch# of directories it would create), but still quite a bit as well as some
88dd1a1b3dSJoerg Wunsch# CPU cycles (some of the programs are C++, and things like ghostscript
89dd1a1b3dSJoerg Wunsch# belong to the required ports nevertheless).
90dd1a1b3dSJoerg Wunsch#
9121203b38SBruce A. Mah# Setting this also disables building of release note documentation
9221203b38SBruce A. Mah# (RELNOTESng).
9385486998SJordan K. Hubbard#NODOC=  YES
94d6c7028cSJohn Hay#NOPORTS=  YES
958ed3802bSBruce A. Mah
967a7a00adSRuslan Ermilov# Modify this definition if you want the release notes
9739ab86fdSBruce A. Mah# and other release documentation in a language other than English.
987a7a00adSRuslan ErmilovRELNOTES_LANG?=	en_US.ISO8859-1
998ed3802bSBruce A. Mah
100dd1a1b3dSJoerg Wunsch# As an alternative to installing the entire ports collection (which
101dd1a1b3dSJoerg Wunsch# can take a huge amount of time, in particular on slower disks),
102dd1a1b3dSJoerg Wunsch# setting ${MINIMALDOCPORTS} allows to install and build just those
103dd1a1b3dSJoerg Wunsch# ports that are really required for getting the docs up & running.
104dd1a1b3dSJoerg Wunsch.if defined(NOPORTS) && !defined(NODOC)
105dd1a1b3dSJoerg WunschDOMINIMALDOCPORTS=	YES
106dd1a1b3dSJoerg Wunsch.include "Makefile.inc.docports"
107d9d84e07SJohn BaldwinRELEASEPORTSMODULE=	${MINIMALDOCPORTS}
108dd1a1b3dSJoerg Wunsch.endif
109dd1a1b3dSJoerg Wunsch
110dd1a1b3dSJoerg Wunsch# Helper variable
111dd1a1b3dSJoerg Wunsch.if defined(NOPORTS)
112dd1a1b3dSJoerg Wunsch.if !defined(DOMINIMALDOCPORTS) || ${DOMINIMALDOCPORTS} != "YES"
113dd1a1b3dSJoerg WunschNOPORTSATALL=	YES
114dd1a1b3dSJoerg Wunsch.endif
115dd1a1b3dSJoerg Wunsch.endif
116dd1a1b3dSJoerg Wunsch
117a7042915SRuslan Ermilov# By default, documentation (Handbook, FAQ, etc.) is built for all
118a7042915SRuslan Ermilov# the languages.  To speed up building, set the DOC_LANG to just
119a7042915SRuslan Ermilov# the languages you need.  (The language for the release notes is
120a7042915SRuslan Ermilov# controlled by the RELNOTES_LANG variable above.)
121a7042915SRuslan Ermilov#DOC_LANG=	en_US.ISO8859-1
1222f332092SJordan K. HubbardDOCPORTS=	textproc/docproj
12340227c90SMakoto Matsushita# Set this to wherever the distfiles required by release procedures.
12440227c90SMakoto Matsushita.if defined(DOCDISTFILES)
12540227c90SMakoto Matsushita# Respect DOCDISTFILES which is used before.
12640227c90SMakoto MatsushitaRELEASEDISTFILES?=	${DOCDISTFILES}
12740227c90SMakoto Matsushita.else
12840227c90SMakoto MatsushitaRELEASEDISTFILES?=	${.CURDIR}/../../ports/distfiles
12940227c90SMakoto Matsushita.endif
130ce51a9fcSJordan K. Hubbard# Set this to 1 if you want -P to be used for automatic keyboard detection
131ce51a9fcSJordan K. Hubbard# on the boot floppy.  WARNING: Breaks on some Athlon (K7) motherboards.
132ce51a9fcSJordan K. HubbardAUTO_KEYBOARD_DETECT?= 0
133ce51a9fcSJordan K. Hubbard
13421203b38SBruce A. Mah.if !defined(NODOC)
135ce294350SBruce A. MahDIST_DOCS_ARCH_INDEP=	readme errata early-adopter
1368ed3802bSBruce A. MahDIST_DOCS_ARCH_DEP=	installation relnotes hardware
1378ed3802bSBruce A. Mah.endif
138ed517874SJordan K. Hubbard
139bd668f6fSPoul-Henning Kamp# Things which without too much trouble can be considered variables
14001df2ec3SDavid E. O'Brien# BASE_DISTS are special in that they get full /etc installation sets.
1417284556fSJordan K. Hubbard#
1428f1f55e9SRuslan Ermilov.if ${TARGET_ARCH} == "i386"
1439f7604aeSMurray StokelyCOMPAT_DISTS?=	compat1x compat20 compat21 compat22 compat3x compat4x
144710d4ca3SMarcel Moolenaar.elif ${TARGET_ARCH} != "ia64"
145b72008f1SJordan K. HubbardCOMPAT_DISTS?=	compat4x
146b72008f1SJordan K. Hubbard.endif
147de9a18ceSRuslan ErmilovOTHER_DISTS?=	catpages manpages games proflibs dict info doc
148470f825fSJordan K. HubbardCRYPTO_DISTS?=	crypto krb4 krb5
14901df2ec3SDavid E. O'BrienBASE_DISTS?=	base
15001df2ec3SDavid E. O'BrienDISTRIBUTIONS?=	${BASE_DISTS} ${OTHER_DISTS} ${COMPAT_DISTS} ${CRYPTO_DISTS}
151785bd4b4SPoul-Henning Kamp
1527c474103SPoul-Henning Kamp# mountpoint for filesystems.
1537c474103SPoul-Henning KampMNT=			/mnt
154518a1d34SPoul-Henning Kamp
155a5ddb8cfSJordan K. Hubbard# Various floppy image parameters.
156a5ddb8cfSJordan K. Hubbard#
157b98c5f70STatsumi Hosokawa
1588f1f55e9SRuslan Ermilov.if ${TARGET_ARCH} == "i386"
1598f1f55e9SRuslan Ermilov.if ${TARGET} == "pc98"
1607920b17fSYoshihiro TakahashiSMALLBOOTSIZE=		1200
1617920b17fSYoshihiro TakahashiBOOTSIZE=		1440
162c2bed627SYoshihiro TakahashiSMALLFIXITSIZE=		1200
163a40915d7SYoshihiro TakahashiFIXITSIZE=		1440
1641d91a770SYoshihiro TakahashiMFSSIZE=		4320
165a40915d7SYoshihiro TakahashiBOOTINODE=		80000
166203f3bd4SMakoto MatsushitaFIXITINODE=		40000
167a40915d7SYoshihiro TakahashiMFSINODE=		8000
1687920b17fSYoshihiro TakahashiSMALLBOOTLABEL=		fd1200
1697920b17fSYoshihiro TakahashiBOOTLABEL=		fd1440
170c2bed627SYoshihiro TakahashiSMALLFIXITLABEL=	fd1200
171a40915d7SYoshihiro TakahashiFIXITLABEL=		fd1440
1721d91a770SYoshihiro TakahashiMFSLABEL=		minimum3
173a40915d7SYoshihiro Takahashi.else
1746ceb41c2SSam LefflerDRIVERSIZE=		1440
175a5ddb8cfSJordan K. HubbardBOOTSIZE=		1440
176a5ddb8cfSJordan K. HubbardFIXITSIZE=		1440
177b98c5f70STatsumi HosokawaMFSSIZE=		4320
178b5d01310SJordan K. HubbardBIGBOOTSIZE=		2880
1796ceb41c2SSam LefflerDRIVERINODE=		40000
18083e16716SJordan K. HubbardBOOTINODE=		80000
181203f3bd4SMakoto MatsushitaFIXITINODE=		40000
182a40915d7SYoshihiro TakahashiMFSINODE=		8000
1836ceb41c2SSam LefflerDRIVERLABEL=		fd1440
184a5ddb8cfSJordan K. HubbardBOOTLABEL=		fd1440
1857385073dSJordan K. HubbardFIXITLABEL=		fd1440
186b98c5f70STatsumi HosokawaMFSLABEL=		minimum3
187a40915d7SYoshihiro TakahashiBIGBOOTLABEL=		minimum2
188a40915d7SYoshihiro Takahashi.endif
1898f1f55e9SRuslan Ermilov.elif ${TARGET_ARCH} == "alpha"
1906ceb41c2SSam LefflerDRIVERSIZE=		1440
191b98c5f70STatsumi HosokawaBOOTSIZE=		1440
1927385073dSJordan K. HubbardFIXITSIZE=		2880
193ac95fa50SMurray StokelyMFSSIZE=		4320
194b98c5f70STatsumi HosokawaBIGBOOTSIZE=		2880
1956ceb41c2SSam LefflerDRIVERINODE=		80000
196b98c5f70STatsumi HosokawaBOOTINODE=		80000
197203f3bd4SMakoto MatsushitaFIXITINODE=		40000
198b98c5f70STatsumi HosokawaMFSINODE=		8000
1996ceb41c2SSam LefflerDRIVERLABEL=		fd1440
200b98c5f70STatsumi HosokawaBOOTLABEL=		fd1440
201a5ddb8cfSJordan K. HubbardFIXITLABEL=		minimum2
202114de50eSJohn BaldwinMFSLABEL=		auto
203b98c5f70STatsumi HosokawaBIGBOOTLABEL=		minimum2
204c26d9e5aSJake Burkholder.elif ${TARGET_ARCH} == "sparc64"
205c26d9e5aSJake BurkholderBIGBOOTSIZE=		4096
206c26d9e5aSJake BurkholderMFSSIZE=		4096
207c26d9e5aSJake BurkholderBOOTINODE=		8192
208c26d9e5aSJake BurkholderMFSINODE=		8192
209c26d9e5aSJake BurkholderBIGBOOTLABEL=		auto
210c26d9e5aSJake BurkholderMFSLABEL=		auto
211710d4ca3SMarcel Moolenaar.elif ${TARGET_ARCH} == "ia64"
212f3fb0a6cSMarcel MoolenaarBIGBOOTLABEL=		efi
213f3fb0a6cSMarcel MoolenaarBIGBOOTSIZE=		5154
214710d4ca3SMarcel MoolenaarBOOTINODE=		15872
215710d4ca3SMarcel MoolenaarMFSINODE=		8192
216710d4ca3SMarcel MoolenaarMFSLABEL=		auto
217710d4ca3SMarcel MoolenaarMFSSIZE=		8192
2187f047619SJoerg Wunsch.endif
2190202c140SRodney W. Grimes
220a3929677SWarner LoshZIPNSPLIT=		gzip --no-name -9 -c | split -b 1423k -
22100063f88SPoul-Henning Kamp
2226bde859fSRuslan Ermilov# Things that need to be recompiled with Kerberos support.
22393c10c22SRuslan Ermilov.if exists(${.CURDIR}/../kerberosIV) && exists(${.CURDIR}/../crypto) && !defined(NOKERBEROS)
2246bde859fSRuslan ErmilovK4PROGS!=	cd ${.CURDIR}/../kerberosIV; ${MAKE} -V KPROGS
22593c10c22SRuslan Ermilov.endif
22693c10c22SRuslan Ermilov.if exists(${.CURDIR}/../kerberos5) && exists(${.CURDIR}/../crypto) && !defined(NOKERBEROS)
2276bde859fSRuslan ErmilovK5PROGS!=	cd ${.CURDIR}/../kerberos5; ${MAKE} -V KPROGS
22893c10c22SRuslan Ermilov.endif
2296bde859fSRuslan Ermilov
230d067d730SJordan K. Hubbard# Things that need to be compiled without crypto support in releases
231d067d730SJordan K. Hubbard.if !defined(FIXCRYPTO)
2324844a5f4SDag-Erling SmørgravFIXCRYPTO=	bin/ed usr.sbin/ppp usr.sbin/pppd usr.sbin/tcpdump/tcpdump \
2334844a5f4SDag-Erling Smørgrav		lib/libfetch usr.bin/fetch
234d067d730SJordan K. Hubbard.if !defined(NO_SENDMAIL)
235d067d730SJordan K. HubbardFIXCRYPTO+=	usr.sbin/sendmail
236d067d730SJordan K. Hubbard.endif
237d067d730SJordan K. Hubbard.endif
238d067d730SJordan K. Hubbard
239d5cf6f60SAndrey A. Chernov
2407284556fSJordan K. Hubbard# Things which may get you into trouble if you change them
24148327bc9SPoul-Henning KampMTREEFILES=		${.CURDIR}/../etc/mtree
24272995602SDavid E. O'Brien_R?=			/R
243335d64e6SJordan K. HubbardRD=			${_R}/stage
244febbbc67SBruce A. MahRND=			${RD}/release.doc
245335d64e6SJordan K. HubbardFD=			${_R}/ftp
246335d64e6SJordan K. HubbardCD=			${_R}/cdrom
2471bac119bSJordan K. HubbardCD_DISC1=		${CD}/disc1
2481bac119bSJordan K. HubbardCD_DISC2=		${CD}/disc2
24948327bc9SPoul-Henning Kamp
2500c5b292cSJordan K. Hubbard# Where the bootstrap ports (see DOCPORTS) get installed.
2510c5b292cSJordan K. HubbardLOCALDIR=		/usr/local/bin
2520c5b292cSJordan K. Hubbard
253f3fb0a6cSMarcel Moolenaar# ia64 is different enough that we want our own doFS.sh.
254f3fb0a6cSMarcel Moolenaar.if ${TARGET_ARCH} == "ia64"
255f3fb0a6cSMarcel MoolenaarDOFS_SH=	${.CURDIR}/ia64/doFS.sh
256f3fb0a6cSMarcel Moolenaar.else
257f3fb0a6cSMarcel MoolenaarDOFS_SH=	${.CURDIR}/scripts/doFS.sh
258f3fb0a6cSMarcel Moolenaar.endif
259f3fb0a6cSMarcel Moolenaar
260c26d9e5aSJake Burkholder.if ${TARGET_ARCH} == "sparc64"
261c26d9e5aSJake BurkholderCRUNCH_TARGETS= boot
262c26d9e5aSJake BurkholderFIXIT_TARGET=
263710d4ca3SMarcel Moolenaar.elif ${TARGET_ARCH} == "ia64"
264710d4ca3SMarcel MoolenaarCRUNCH_TARGETS= boot
265710d4ca3SMarcel MoolenaarFIXIT_TARGET=
266c2bed627SYoshihiro Takahashi.elif ${TARGET} == "pc98"
267c2bed627SYoshihiro TakahashiCRUNCH_TARGETS=	boot fixit fixit-small
268c26d9e5aSJake Burkholder.endif
269c26d9e5aSJake Burkholder
2707284556fSJordan K. Hubbard.if !defined(CRUNCH_TARGETS)
2717284556fSJordan K. HubbardCRUNCH_TARGETS=	boot fixit
2723525074dSPoul-Henning Kamp.endif
2733525074dSPoul-Henning Kamp
274c26d9e5aSJake Burkholder.if !defined(FIXIT_TARGET)
275c26d9e5aSJake BurkholderFIXIT_TARGET= release.10
276c26d9e5aSJake Burkholder.endif
277c26d9e5aSJake Burkholder
2780e25a727SJohn BaldwinEXTRAS= ftp.1
2790e25a727SJohn Baldwin.if !defined(NOCDROM)
2800e25a727SJohn BaldwinEXTRAS+= cdrom.1
2812ef74d22SJordan K. Hubbard.if defined(MAKE_ISOS)
2822ef74d22SJordan K. HubbardEXTRAS+= iso.1
2838f1f55e9SRuslan Ermilov.if ${TARGET} != "pc98"
28429921a60SYoshihiro TakahashiBOOTABLE="-b"
28529921a60SYoshihiro Takahashi.endif
2862ef74d22SJordan K. Hubbard.endif
2870e25a727SJohn Baldwin.endif
288793e8c6fSJordan K. Hubbard
289793e8c6fSJordan K. Hubbard.if !defined(NODOC)
29021203b38SBruce A. MahDOCREL= doc.1 doc.2
291793e8c6fSJordan K. Hubbard.endif
292793e8c6fSJordan K. Hubbard
29350ee7e6cSJordan K. Hubbard.if !defined(NOPORTREADMES)
29450ee7e6cSJordan K. HubbardMAKEREADMES=	make readmes PORTSDIR=${CHROOTDIR}/usr/ports
29550ee7e6cSJordan K. Hubbard.else
29650ee7e6cSJordan K. HubbardMAKEREADMES=	true
29750ee7e6cSJordan K. Hubbard.endif
29850ee7e6cSJordan K. Hubbard
29974064f9fSRuslan ErmilovTMAKE!=		echo MAKEFLAGS=\"-m ${.CURDIR}/../share/mk\"; \
30074064f9fSRuslan Ermilov		cd ${.CURDIR}/..; ${MAKE} -f Makefile.inc1 -V TMAKE
3018f1f55e9SRuslan ErmilovWMAKEENV!=	echo MAKEFLAGS=\"-m ${.CURDIR}/../share/mk\"; \
3028f1f55e9SRuslan Ermilov		cd ${.CURDIR}/..; ${CROSSMAKE} -f Makefile.inc1 -V WMAKEENV
3036bde859fSRuslan ErmilovWMAKE=		${WMAKEENV} ${MAKE}
3046bde859fSRuslan Ermilov
305d9d84e07SJohn BaldwinCVS_SRCARGS=	-P
306d9d84e07SJohn Baldwin.if defined(RELEASETAG)
307d9d84e07SJohn BaldwinCVS_SRCARGS+=	-r ${RELEASETAG}
308d9d84e07SJohn Baldwin.endif
309d9d84e07SJohn Baldwin
310d9d84e07SJohn BaldwinCVS_DOCARGS=	-P
311d9d84e07SJohn Baldwin.if defined(DOCRELEASETAG)
312d9d84e07SJohn BaldwinCVS_DOCARGS+=	-r ${DOCRELEASETAG}
313d9d84e07SJohn Baldwin.endif
314d9d84e07SJohn Baldwin
315d9d84e07SJohn BaldwinCVS_PORTSARGS=	-P
316d9d84e07SJohn Baldwin.if defined(PORTSRELEASETAG)
317d9d84e07SJohn BaldwinCVS_PORTSARGS+=	-r ${PORTSRELEASETAG}
318d9d84e07SJohn Baldwin.endif
319d9d84e07SJohn Baldwin
320dba36bb9SRuslan Ermilovrelease rerelease:
321574c2247SJordan K. Hubbard.if !defined(CHROOTDIR) || !defined(BUILDNAME) || !defined(CVSROOT)
322574c2247SJordan K. Hubbard	@echo "To make a release you must set CHROOTDIR, BUILDNAME and CVSROOT" && false
3237eb11201SPoul-Henning Kamp.endif
324dd1a1b3dSJoerg Wunsch.if defined(NOPORTSATALL) && !defined(NODOC)
325d191a99cSJohn Baldwin	@echo "Ports are required for building the docs.  Either set NODOC or"
326dd1a1b3dSJoerg Wunsch	@echo "unset NOPORTS, or set at least DOMINIMALDOCPORTS to YES!"
327d191a99cSJohn Baldwin	@exit 1
328d191a99cSJohn Baldwin.endif
329288fe4dbSPoul-Henning Kamp.if make(release)
330682078bdSRodney W. Grimes.if exists(${CHROOTDIR})
33172ac7e4dSJohn Polstra# The first command will fail on a handful of files that have their schg
33272ac7e4dSJohn Polstra# flags set.  But it greatly speeds up the next two commands.
3336ceb41c2SSam Leffler	# NB: clear any vestigal devfs mount, just in case
3346ceb41c2SSam Leffler	-umount ${CHROOTDIR}/dev > /dev/null 2>&1
33527b5e4fdSJordan K. Hubbard	-rm -rf ${CHROOTDIR} 2>/dev/null
336492cf9a4SJohn Polstra	-chflags -R noschg ${CHROOTDIR}/.
337b7738481SJoerg Wunsch	-rm -rf ${CHROOTDIR}
338682078bdSRodney W. Grimes.endif
339335d64e6SJordan K. Hubbard	mkdir -p ${CHROOTDIR}
340b1a8a181SRuslan Ermilov	@echo ">>> make release for ${TARGET} started on `LC_ALL=C TZ=GMT date`"
34161c2d47aSRuslan Ermilov	cd ${.CURDIR}/.. && ${NATIVEMAKE} -DNOGAMES -DNOHTML -DNOINFO -DNOMAN \
3426bde859fSRuslan Ermilov	    -DNOPROFILE installworld DESTDIR=${CHROOTDIR}
34361c2d47aSRuslan Ermilov	cd ${.CURDIR}/../etc && ${NATIVEMAKE} distribution DESTDIR=${CHROOTDIR}
3448e8d540fSSADA Kenji	if [ -f /etc/resolv.conf ]; then \
3458e8d540fSSADA Kenji		cp -p /etc/resolv.conf ${CHROOTDIR}/etc; \
3468e8d540fSSADA Kenji	fi
347d101bd64SYoshihiro Takahashi.if defined(EXTLOCALDIR)
348d101bd64SYoshihiro Takahashi	rm -rf ${CHROOTDIR}/usr/local
349d101bd64SYoshihiro Takahashi	cd ${CHROOTDIR}/usr && cp -R ${EXTLOCALDIR} local
350d101bd64SYoshihiro Takahashi.endif
351d9d84e07SJohn Baldwin	rm -rf ${CHROOTDIR}/usr/src
352d9d84e07SJohn Baldwin.if defined(EXTSRCDIR)
353d9d84e07SJohn Baldwin	cd ${CHROOTDIR}/usr && \
354d9d84e07SJohn Baldwin		cp -R ${EXTSRCDIR} src
355bd668f6fSPoul-Henning Kamp.else
356d9d84e07SJohn Baldwin	cd ${CHROOTDIR}/usr && \
357d9d84e07SJohn Baldwin		${CVSPREFIX} cvs -R ${CVSARGS} -d ${CVSROOT} co ${CVSCMDARGS} ${CVS_SRCARGS} ${RELEASESRCMODULE}
358288fe4dbSPoul-Henning Kamp.endif
35962bb2153SPaul Traina.if defined(LOCAL_PATCHES) && exists(${LOCAL_PATCHES})
36075f462f4SJordan K. Hubbard	cd ${CHROOTDIR}/usr/src && patch ${PATCH_FLAGS} < ${LOCAL_PATCHES}
36162bb2153SPaul Traina.endif
36248f1b394SJordan K. Hubbard.if defined(LOCAL_SCRIPT) && exists(${LOCAL_SCRIPT})
36348f1b394SJordan K. Hubbard	cd ${CHROOTDIR} && env CHROOTDIR=${CHROOTDIR} BUILDNAME=${BUILDNAME} RELEASETAG=${RELEASETAG} ${LOCAL_SCRIPT}
36448f1b394SJordan K. Hubbard.endif
365d9d84e07SJohn Baldwin	rm -rf ${CHROOTDIR}/usr/ports
366d9d84e07SJohn Baldwin.if !defined(NOPORTSATALL)
367d9d84e07SJohn Baldwin	cd ${CHROOTDIR}/usr && ${CVSPREFIX} cvs -R ${CVSARGS} -d ${CVSROOT} co ${CVSCMDARGS} ${CVS_PORTSARGS} ${RELEASEPORTSMODULE}
368d9d84e07SJohn Baldwin.endif
36997febce7SJoerg Wunsch.if !defined(NOPORTS)
370d9d84e07SJohn Baldwin	cd ${CHROOTDIR}/usr/ports && ${MAKEREADMES}
3713f17d264SSatoshi Asami.endif
372aeb6d603SJordan K. Hubbard.if !defined(NODOC)
373d9d84e07SJohn Baldwin	rm -rf ${CHROOTDIR}/usr/doc
374d9d84e07SJohn Baldwin.if defined(EXTDOCDIR)
375d9d84e07SJohn Baldwin	cd ${CHROOTDIR}/usr && cp -R ${EXTDOCDIR} doc
3763f17d264SSatoshi Asami.else
377d9d84e07SJohn Baldwin	cd ${CHROOTDIR}/usr && ${CVSPREFIX} cvs -R ${CVSARGS} -d ${CVSROOT} co ${CVSCMDARGS} ${CVS_DOCARGS} ${RELEASEDOCMODULE}
3783f17d264SSatoshi Asami.endif
37940227c90SMakoto Matsushita	if [ -d ${RELEASEDISTFILES}/ ]; then \
38040227c90SMakoto Matsushita		cp -rp ${RELEASEDISTFILES} ${CHROOTDIR}/usr/ports/distfiles; \
381b389e7aaSMakoto Matsushita	else \
382d7c4abbfSMakoto Matsushita		mkdir -p ${CHROOTDIR}/usr/ports/distfiles; \
3838e8d540fSSADA Kenji	fi
384bb5e8f3fSJohn Baldwin.if defined(PREFETCHDISTFILES)
385bb5e8f3fSJohn Baldwin	@for i in ${DOCPORTS}; do \
386bb5e8f3fSJohn Baldwin		cd ${CHROOTDIR}/usr/ports/$$i && \
387bb5e8f3fSJohn Baldwin			make PORTSDIR=${CHROOTDIR}/usr/ports BATCH=yes \
388095b49ffSRuslan Ermilov			WITHOUT_X11=yes JADETEX=no WITHOUT_PYTHON=yes \
389a177c01fSDavid E. O'Brien			checksum-recursive ; \
390bb5e8f3fSJohn Baldwin	done
391bb5e8f3fSJohn Baldwin.endif
392aeb6d603SJordan K. Hubbard.endif
393288fe4dbSPoul-Henning Kamp.endif
394288fe4dbSPoul-Henning Kamp.if make(rerelease)
395288fe4dbSPoul-Henning Kamp.if !defined(RELEASENOUPDATE)
396288fe4dbSPoul-Henning Kamp.if !defined(RELEASETAG)
397d751ad7fSJohn W. De Boskey	cd ${CHROOTDIR}/usr/src && ${CVSPREFIX} cvs -R ${CVSARGS} -q update ${CVSCMDARGS} -P -d -A
398288fe4dbSPoul-Henning Kamp.else
399d751ad7fSJohn W. De Boskey	cd ${CHROOTDIR}/usr/src && ${CVSPREFIX} cvs -R ${CVSARGS} -q update ${CVSCMDARGS} -P -d -r ${RELEASETAG}
400288fe4dbSPoul-Henning Kamp.endif
40197febce7SJoerg Wunsch.if !defined(NOPORTS)
402d751ad7fSJohn W. De Boskey	cd ${CHROOTDIR}/usr/ports && ${CVSPREFIX} cvs -R ${CVSARGS} -q update ${CVSCMDARGS} -P -d
4036e5cd2d2SJordan K. Hubbard.endif
404dd1a1b3dSJoerg Wunsch.if defined(DOMINIMALDOCPORTS) && ${DOMINIMALDOCPORTS} == "YES"
405dd1a1b3dSJoerg Wunsch	for i in ${MINIMALDOCPORTS}; do \
406d751ad7fSJohn W. De Boskey		( cd ${CHROOTDIR}/usr/$$i && ${CVSPREFIX} cvs -R ${CVSARGS} -q update ${CVSCMDARGS} -P -d ) ; \
407dd1a1b3dSJoerg Wunsch	done
408dd1a1b3dSJoerg Wunsch.endif
409aeb6d603SJordan K. Hubbard.if !defined(NODOC)
410d751ad7fSJohn W. De Boskey	cd ${CHROOTDIR}/usr/doc && ${CVSPREFIX} cvs -R ${CVSARGS} -q update ${CVSCMDARGS} -P -d
411aeb6d603SJordan K. Hubbard.endif
412288fe4dbSPoul-Henning Kamp.endif
413bd668f6fSPoul-Henning Kamp.endif
4147284556fSJordan K. Hubbard	# Add version information to those things that need it.
415ab0e9cdcSPoul-Henning Kamp	( cd ${CHROOTDIR}/usr/src/sys/conf && \
416288fe4dbSPoul-Henning Kamp	  mv newvers.sh foo && \
417288fe4dbSPoul-Henning Kamp	  sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh && rm foo )
418d4983966SPaul Traina	-test -f install.cfg && cp install.cfg ${CHROOTDIR}/usr/src/release
41920e5d523SJordan K. Hubbard	echo "#!/bin/sh"			> ${CHROOTDIR}/mk
42020e5d523SJordan K. Hubbard	echo "set -ex"				>> ${CHROOTDIR}/mk
4216ceb41c2SSam Leffler	echo "trap 'umount /dev || true' 0"	>> ${CHROOTDIR}/mk
4220276d282SJordan K. Hubbard	echo "_RELTARGET=\$${1:-doRELEASE}"	>> ${CHROOTDIR}/mk
4237a7a00adSRuslan Ermilov.for var in \
4243e4ac74dSRuslan Ermilov	AUTO_KEYBOARD_DETECT \
4253e4ac74dSRuslan Ermilov	BOOT_CONFIG \
4263e4ac74dSRuslan Ermilov	BUILDNAME \
4273e4ac74dSRuslan Ermilov	CD_EXTRA_BITS \
4283e4ac74dSRuslan Ermilov	DISTRIBUTIONS \
4293e4ac74dSRuslan Ermilov	DOC_LANG \
4303e4ac74dSRuslan Ermilov	DOMINIMALDOCPORTS \
4313e4ac74dSRuslan Ermilov	EXTRA_SRC \
4323e4ac74dSRuslan Ermilov	FIXCRYPTO \
43377d79f0cSMakoto Matsushita	FTP_PASSIVE_MODE \
43477d79f0cSMakoto Matsushita	FTP_PROXY \
43577d79f0cSMakoto Matsushita	HTTP_PROXY \
4363e4ac74dSRuslan Ermilov	KERNELS \
4373e4ac74dSRuslan Ermilov	KERNEL_FLAGS \
4383e4ac74dSRuslan Ermilov	MAKE_ISOS \
4393e4ac74dSRuslan Ermilov	NOCDROM \
4403e4ac74dSRuslan Ermilov	NODOC \
4413e4ac74dSRuslan Ermilov	NOKERBEROS \
4423e4ac74dSRuslan Ermilov	NOPORTS \
4433e4ac74dSRuslan Ermilov	NOSHARED \
4443e4ac74dSRuslan Ermilov	NOSRC \
4453e4ac74dSRuslan Ermilov	NO_CPU_CFLAGS \
4463e4ac74dSRuslan Ermilov	NO_CPU_COPTFLAGS \
4473e4ac74dSRuslan Ermilov	NO_FLOPPIES \
4483e4ac74dSRuslan Ermilov	NO_SENDMAIL \
4493e4ac74dSRuslan Ermilov	RELEASETAG \
4503e4ac74dSRuslan Ermilov	RELNOTES_LANG \
4513e4ac74dSRuslan Ermilov	TARGET \
4523e4ac74dSRuslan Ermilov	TARGET_ARCH \
4533e4ac74dSRuslan Ermilov	WORLD_FLAGS
4547a7a00adSRuslan Ermilov.if defined(${var})
4557a7a00adSRuslan Ermilov	echo "export ${var}=\"${${var}}\""	>> ${CHROOTDIR}/mk
45646e90709SJoerg Wunsch.endif
4577a7a00adSRuslan Ermilov.endfor
45843276d06SJoerg Wunsch	# Don't remove this, or the build will fall over!
459335d64e6SJordan K. Hubbard	echo "export RELEASEDIR=${_R}"		>> ${CHROOTDIR}/mk
460dafdb1b4SMakoto Matsushita	echo "export PATH=/bin:/usr/bin:/sbin:/usr/sbin:${LOCALDIR}"	>> ${CHROOTDIR}/mk
461b6ea96d1SRuslan Ermilov	echo "export MANBUILDCAT=YES"		>> ${CHROOTDIR}/mk
4626ceb41c2SSam Leffler	# NB: these may fail if the host is running w/o devfs
4636ceb41c2SSam Leffler	echo "umount /dev >/dev/null 2>&1 || true" >> ${CHROOTDIR}/mk
4646ceb41c2SSam Leffler	echo "mount -t devfs devfs /dev >/dev/null 2>&1 || true" \
4656ceb41c2SSam Leffler						>> ${CHROOTDIR}/mk
4663e5ef0fdSJordan K. Hubbard	echo "if [ ! -f /tmp/.world_done ]; then" >> ${CHROOTDIR}/mk
46720e5d523SJordan K. Hubbard	echo "	cd /usr/src"			>> ${CHROOTDIR}/mk
4688f1f55e9SRuslan Ermilov	echo "	${CROSSMAKE} ${WORLD_FLAGS} -DNOCLEAN buildworld && \\" >> ${CHROOTDIR}/mk
4693e5ef0fdSJordan K. Hubbard	echo "	touch /tmp/.world_done"		>> ${CHROOTDIR}/mk
4703e5ef0fdSJordan K. Hubbard	echo "fi"				>> ${CHROOTDIR}/mk
471a3e12198SJordan K. Hubbard	echo "cd /usr/src/release"		>> ${CHROOTDIR}/mk
472da813eaeSDavid E. O'Brien	echo "make obj"				>> ${CHROOTDIR}/mk
4730276d282SJordan K. Hubbard	echo "make \$${_RELTARGET}"		>> ${CHROOTDIR}/mk
474b1a8a181SRuslan Ermilov	echo "echo \">>> make ${.TARGET} for ${TARGET} finished on \`LC_ALL=C TZ=GMT date\`\"" >> ${CHROOTDIR}/mk
47520e5d523SJordan K. Hubbard	chmod 755 ${CHROOTDIR}/mk
476dafdb1b4SMakoto Matsushita	env -i /usr/sbin/chroot ${CHROOTDIR} /mk
47720e5d523SJordan K. Hubbard
478bd668f6fSPoul-Henning Kampclean:
479a40915d7SYoshihiro Takahashi	rm -rf boot_crunch release.[0-9]
480bd668f6fSPoul-Henning Kamp
481335d64e6SJordan K. Hubbard# Clean out ${_R} and make the directory structure.
482bd668f6fSPoul-Henning Kamprelease.1:
483335d64e6SJordan K. Hubbard	mkdir -p ${_R}
484cd8d8dacSJordan K. Hubbard	-rm -rf ${_R}/* 2> /dev/null
485335d64e6SJordan K. Hubbard	-chflags -R noschg ${_R}/.
486335d64e6SJordan K. Hubbard	rm -rf ${_R}/*
487bd668f6fSPoul-Henning Kamp	mkdir ${RD}
488bd668f6fSPoul-Henning Kamp	mkdir ${RD}/floppies
489e12c4355SPoul-Henning Kamp	mkdir ${RD}/trees
490bb91094aSPoul-Henning Kamp	mkdir ${RD}/kernels
4917284556fSJordan K. Hubbard	for i in ${DISTRIBUTIONS} ; do \
492288fe4dbSPoul-Henning Kamp		mkdir ${RD}/trees/$$i && \
49311017a68SMarcel Moolenaar		mtree -deU -f ${MTREEFILES}/BSD.root.dist \
494288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i > /dev/null && \
49511017a68SMarcel Moolenaar		mtree -deU -f ${MTREEFILES}/BSD.usr.dist \
496288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr > /dev/null && \
49711017a68SMarcel Moolenaar		mtree -deU -f ${MTREEFILES}/BSD.include.dist \
498288fe4dbSPoul-Henning Kamp		    -p ${RD}/trees/$$i/usr/include > /dev/null && \
49911017a68SMarcel Moolenaar		mtree -deU -f ${MTREEFILES}/BSD.var.dist \
500e12c4355SPoul-Henning Kamp		    -p ${RD}/trees/$$i/var > /dev/null ; \
50148327bc9SPoul-Henning Kamp	done
502bd668f6fSPoul-Henning Kamp	touch release.1
5037f986648SPoul-Henning Kamp
504bd668f6fSPoul-Henning Kamp# Install the system into the various distributions.
505bd668f6fSPoul-Henning Kamprelease.2:
50601df2ec3SDavid E. O'Brien	cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/base
5078f1f55e9SRuslan Ermilov	cd ${.CURDIR}/.. && ${CROSSMAKE} distributeworld DISTDIR=${RD}/trees
508ff85b6e3SRuslan Ermilov	touch release.2
509ff85b6e3SRuslan Ermilov
510ff85b6e3SRuslan Ermilov# Build and install crypto, krb4 and krb5 distributions.
511ff85b6e3SRuslan Ermilovrelease.3:
5126bde859fSRuslan Ermilov	# Handle some grief caused by the munition braindeadness.
5136bde859fSRuslan Ermilov	cd ${.CURDIR}/..; \
5148f1f55e9SRuslan Ermilov	${CROSSMAKE} ${WORLD_FLAGS} -DNO_MAKEDB_RUN -DNOCRYPT \
5156bde859fSRuslan Ermilov	    SUBDIR_OVERRIDE="${FIXCRYPTO}" \
5168f1f55e9SRuslan Ermilov	    buildworld distributeworld DISTDIR=${RD}/trees
517ce737050SPoul-Henning Kamp.if exists(${.CURDIR}/../kerberosIV) && exists(${.CURDIR}/../crypto) && !defined(NOKERBEROS)
5186bde859fSRuslan Ermilov	cd ${.CURDIR}/..; \
5198f1f55e9SRuslan Ermilov	${CROSSMAKE} ${WORLD_FLAGS} -DNO_MAKEDB_RUN -DMAKE_KERBEROS4 \
5206bde859fSRuslan Ermilov	    SUBDIR_OVERRIDE="kerberosIV ${K4PROGS}" \
5218f1f55e9SRuslan Ermilov	    buildworld distributeworld DISTDIR=${RD}/trees
52297febce7SJoerg Wunsch.endif
523470f825fSJordan K. Hubbard.if exists(${.CURDIR}/../kerberos5) && exists(${.CURDIR}/../crypto) && !defined(NOKERBEROS)
5246bde859fSRuslan Ermilov	cd ${.CURDIR}/..; \
5258f1f55e9SRuslan Ermilov	${CROSSMAKE} ${WORLD_FLAGS} -DNO_MAKEDB_RUN -DMAKE_KERBEROS5 \
5266bde859fSRuslan Ermilov	    SUBDIR_OVERRIDE="kerberos5 ${K5PROGS}" \
5278f1f55e9SRuslan Ermilov	    buildworld distributeworld DISTDIR=${RD}/trees
528c0db9f0eSRuslan Ermilov	rm -f ${RD}/trees/krb5/usr/share/info/dir
529470f825fSJordan K. Hubbard.endif
5305966cedcSJoerg Wunsch	-chflags -R noschg ${RD}/trees
531ff85b6e3SRuslan Ermilov	touch release.3
53297febce7SJoerg Wunsch
53397febce7SJoerg Wunsch# Make and install the generic kernel(s).
534ff85b6e3SRuslan Ermilovrelease.4:
53516c61233SJordan K. Hubbard.for kernel in ${KERNELS}
5366bde859fSRuslan Ermilov	cd ${.CURDIR}/..; \
53774064f9fSRuslan Ermilov	${CROSSMAKE} ${KERNEL_FLAGS} -DNO_MODULES \
5386bde859fSRuslan Ermilov	    KERNCONF=${kernel} INSTKERNNAME=${kernel} kernel \
5396bde859fSRuslan Ermilov	    DESTDIR=${RD}/trees/base
54016c61233SJordan K. Hubbard.endfor
5416bde859fSRuslan Ermilov	# Install a standard boot kernel+modules.
5426bde859fSRuslan Ermilov	cd ${.CURDIR}/..; \
54374064f9fSRuslan Ermilov	${CROSSMAKE} ${KERNEL_FLAGS} \
5446bde859fSRuslan Ermilov	    kernel \
5456bde859fSRuslan Ermilov	    DESTDIR=${RD}/trees/base; \
5466bde859fSRuslan Ermilov	cd ${.CURDIR}/..; \
5478f1f55e9SRuslan Ermilov	${CROSSMAKE} ${KERNEL_FLAGS} -DNO_MODULES \
5486bde859fSRuslan Ermilov	    reinstallkernel -DINSTALL_DEBUG \
5496bde859fSRuslan Ermilov	    DESTDIR=${RD}/trees/base
550ff85b6e3SRuslan Ermilov	touch release.4
551bd668f6fSPoul-Henning Kamp
55201feef2cSPoul-Henning Kamp# Make and install the three crunched binaries which live on the floppies.
553bd668f6fSPoul-Henning Kamp# You are not supposed to like this :-)
554ff85b6e3SRuslan Ermilovrelease.5:
555518a1d34SPoul-Henning Kamp	rm -rf ${RD}/crunch
556518a1d34SPoul-Henning Kamp	mkdir -p ${RD}/crunch
55758888af3SRuslan Ermilov.for j in ${CRUNCH_TARGETS}
55858888af3SRuslan Ermilov	rm -rf ${j}_crunch
55958888af3SRuslan Ermilov	mkdir ${j}_crunch
5608f1f55e9SRuslan Ermilov.if exists(${.CURDIR}/${TARGET}/${j}_crunch.conf)
56106b76511SRuslan Ermilov	cd ${j}_crunch; ${WMAKEENV} crunchgen -o ${.CURDIR}/${TARGET}/${j}_crunch.conf
56258888af3SRuslan Ermilov.else
56306b76511SRuslan Ermilov	cd ${j}_crunch; ${WMAKEENV} crunchgen -o ${.CURDIR}/${j}_crunch.conf
56458888af3SRuslan Ermilov.endif
56558888af3SRuslan Ermilov	cd ${j}_crunch; ${WMAKE} -f ${j}_crunch.mk subclean
56658888af3SRuslan Ermilov	cd ${.CURDIR}/..; ${TMAKE} build-tools
567407ac59aSJohn Hay	cd ${j}_crunch; ${WMAKE} -f ${j}_crunch.mk \
568407ac59aSJohn Hay	    CFLAGS="-Os -pipe" -DNO_CPU_CFLAGS all
56955ee3f14SRuslan Ermilov	${WMAKEENV} strip -R .comment ${j}_crunch/${j}_crunch
57058888af3SRuslan Ermilov	mv ${j}_crunch/${j}_crunch ${RD}/crunch/${j}
57158888af3SRuslan Ermilov.endfor
572ff85b6e3SRuslan Ermilov	touch release.5
573bd668f6fSPoul-Henning Kamp
57430e8b491SPoul-Henning Kamp#
57530e8b491SPoul-Henning Kamp# --==## Fix up the distributions. ##==--
57630e8b491SPoul-Henning Kamp#
577ff85b6e3SRuslan Ermilovrelease.6:
5787284556fSJordan K. Hubbard	# Create any "synthetic dists" now.
5797284556fSJordan K. Hubbard	@for i in ${DISTRIBUTIONS}; do \
5807284556fSJordan K. Hubbard		if [ -f ${.CURDIR}/scripts/$${i}-make.sh ]; then \
5817284556fSJordan K. Hubbard			echo -n "Running $$i dist creation script... "; \
58266422f5bSPeter Wemm			env RD=${RD} sh ${.CURDIR}/scripts/$${i}-make.sh || echo "$$i distribution script returned bad status."; \
58358183fc7SJordan K. Hubbard			echo "Done."; \
5847284556fSJordan K. Hubbard		fi \
5857284556fSJordan K. Hubbard	done \
5867284556fSJordan K. Hubbard
58730e8b491SPoul-Henning Kamp	# Remove all the directories we don't need.
58827d44115SPoul-Henning Kamp	-cd ${RD}/trees && \
5890a9e93bfSJordan K. Hubbard		find ${OTHER_DISTS} ${COMPAT_DISTS} ${CRYPTO_DISTS} -depth -type d -print | xargs rmdir
590ff85b6e3SRuslan Ermilov	touch release.6
591f14786ddSJordan K. Hubbard
59230e8b491SPoul-Henning Kamp#
5937284556fSJordan K. Hubbard# --==## Package up the tarballs from assembled trees ##==--
59430e8b491SPoul-Henning Kamp#
595ff85b6e3SRuslan Ermilovrelease.7:
59695e34bfcSJordan K. Hubbard	rm -rf ${RD}/dists
59795e34bfcSJordan K. Hubbard	mkdir -p ${RD}/dists
59895e34bfcSJordan K. Hubbard	@for i in ${DISTRIBUTIONS} ; \
59995e34bfcSJordan K. Hubbard	do \
60095e34bfcSJordan K. Hubbard		if [ -d ${RD}/trees/$${i} ] ; then \
60130e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
60230e8b491SPoul-Henning Kamp				SD=${RD}/trees/$${i} \
603288fe4dbSPoul-Henning Kamp				TN=$$i TD=$$i ARG="." && \
60495e34bfcSJordan K. Hubbard			echo "$${i} distribution is finished."; \
60595e34bfcSJordan K. Hubbard		fi ; \
60695e34bfcSJordan K. Hubbard	done
6077284556fSJordan K. Hubbard	# More munition braindeadness.
60830e8b491SPoul-Henning Kamp	( cd ${RD}/dists && \
609d61835a9SJordan K. Hubbard		if [ -f krb4/krb4.aa ] ; then \
610d61835a9SJordan K. Hubbard			mv krb4/krb4.* crypto && \
611d61835a9SJordan K. Hubbard			cat krb4/CHECKSUM.MD5 >> crypto/CHECKSUM.MD5 && \
612d61835a9SJordan K. Hubbard			rm -r krb4; \
613d61835a9SJordan K. Hubbard		fi )
614470f825fSJordan K. Hubbard	( cd ${RD}/dists && \
615d61835a9SJordan K. Hubbard		if [ -f krb5/krb5.aa ] ; then \
616d61835a9SJordan K. Hubbard			mv krb5/krb5.* crypto && \
617d61835a9SJordan K. Hubbard			cat krb5/CHECKSUM.MD5 >> crypto/CHECKSUM.MD5 && \
618d61835a9SJordan K. Hubbard			rm -r krb5; \
619d61835a9SJordan K. Hubbard		fi )
620ff85b6e3SRuslan Ermilov	touch release.7
62195e34bfcSJordan K. Hubbard
62295e34bfcSJordan K. Hubbard
62330e8b491SPoul-Henning Kamp#
62430e8b491SPoul-Henning Kamp# --==## Make source dists ##==--
62530e8b491SPoul-Henning Kamp#
626ff85b6e3SRuslan Ermilovrelease.8:
6274731faa3SJordan K. Hubbard.if !defined(NOSRC)
628288fe4dbSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) doTARBALL SD=/usr/src \
62995e34bfcSJordan K. Hubbard		TD=src TN=sbase ARG="[A-Z]*"
630fb29e2cfSJordan K. Hubbard	@for i in `cd /usr/src && echo [a-z]*` ; do \
63130e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$i ] ; then \
63230e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
633470f825fSJordan K. Hubbard				TN=`echo s$$i | tr -d '.' | \
634470f825fSJordan K. Hubbard				    sed -e 's/usr/u/' \
635470f825fSJordan K. Hubbard					-e 's/kerberosIV/krb4/' \
636470f825fSJordan K. Hubbard					-e 's/kerberos5/krb5/'` \
63730e8b491SPoul-Henning Kamp				SD=/usr/src TD=src ARG="$$i" ; \
63895e34bfcSJordan K. Hubbard		fi ; \
63995e34bfcSJordan K. Hubbard	done
64040b0c0d9SPeter Wemm.if defined(EXTRA_SRC)
641288fe4dbSPoul-Henning Kamp	@set ${EXTRA_SRC} && \
64240b0c0d9SPeter Wemm	while [ $$# -ge 2 ] ; do \
64330e8b491SPoul-Henning Kamp		if [ -d /usr/src/$$1 ] ; then \
64430e8b491SPoul-Henning Kamp			cd ${.CURDIR} && $(MAKE) doTARBALL \
64530e8b491SPoul-Henning Kamp				SD=/usr/src TN="s$$2" TD=src ARG="$$1" ; \
64630e8b491SPoul-Henning Kamp		fi && shift && shift ; \
64740b0c0d9SPeter Wemm	done
64840b0c0d9SPeter Wemm.endif
649470f825fSJordan K. Hubbard	if [ -d ${RD}/dists/crypto ] ; then ( cd ${RD}/dists/src && \
650470f825fSJordan K. Hubbard		if [ -f ssecure.aa ] ; then mv ssecure.* ../crypto ; fi && \
651470f825fSJordan K. Hubbard		if [ -f scrypto.aa ] ; then mv scrypto.* ../crypto ; fi && \
6520de00367SJohn Hay		if [ -f skrb4.aa ] ; then mv skrb4.* ../crypto ; fi && \
653f9c18558SJordan K. Hubbard		if [ -f skrb5.aa ] ; then mv skrb5.* ../crypto ; fi ; \
654f9c18558SJordan K. Hubbard		cd ${RD}/dists/crypto; rm -f CHECKSUM.MD5; \
655f9c18558SJordan K. Hubbard		md5 * > CHECKSUM.MD5 ) ; fi
656f9c18558SJordan K. Hubbard	(cd ${RD}/dists/src; rm -f CHECKSUM.MD5; md5 * > CHECKSUM.MD5)
65795e34bfcSJordan K. Hubbard	@echo "src distribution is finished."
6584731faa3SJordan K. Hubbard.endif
659ff85b6e3SRuslan Ermilov	touch release.8
66095e34bfcSJordan K. Hubbard
66195e34bfcSJordan K. Hubbard# Complete the bootfd
662409f9329SJordan K. Hubbard#
663409f9329SJordan K. Hubbard# Now, just to get this picture down once and for all:
664409f9329SJordan K. Hubbard#
665409f9329SJordan K. Hubbard# +------------------------------------------------------------------------+
666409f9329SJordan K. Hubbard# |boot.flp                                                                |
667409f9329SJordan K. Hubbard# +-----+-----+------------------------------------------------------------+
668409f9329SJordan K. Hubbard# |boot1|boot2|floppy filesystem "bootfd"                                  |
669839dfafeSJohn Baldwin# +-----+-----+-+----------------------+---------------------------------+-+
670839dfafeSJohn Baldwin#               |kernel.gz             |mfsroot.gz                       |
671839dfafeSJohn Baldwin#               +----------------------+---------------------------------+
672409f9329SJordan K. Hubbard#
673409f9329SJordan K. Hubbard
674ff85b6e3SRuslan Ermilovrelease.9:
6750a2fffbeSRuslan Ermilov.if ${TARGET_ARCH} != "ia64" || ${TARGET_ARCH} == ${MACHINE_ARCH}
676409f9329SJordan K. Hubbard	rm -rf ${RD}/mfsfd
677409f9329SJordan K. Hubbard	mkdir ${RD}/mfsfd
678409f9329SJordan K. Hubbard	cd ${RD}/mfsfd && \
679d3b19355SRuslan Ermilov		mkdir -p etc/defaults dev mnt stand/etc/defaults stand/help
6803df0e2afSPoul-Henning Kamp	@cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \
681a91fd119SPoul-Henning Kamp		DIR=${RD}/mfsfd/stand ZIP=false
682dc2475c5SJohn Baldwin	( cd ${RD}/mfsfd && \
683dc2475c5SJohn Baldwin	  for dir in bin sbin ; do \
684dc2475c5SJohn Baldwin		ln -sf /stand $$dir; \
685dc2475c5SJohn Baldwin	  done )
6863cb04a4dSRuslan Ermilov	cp ${RD}/trees/base/sbin/dhclient-script ${RD}/mfsfd/stand
687af09f57dSMakoto Matsushita.if ${TARGET} == "pc98"
688e8bbfc06SMitsuru IWASAKI	cp ${.CURDIR}/../etc/defaults/pccard.conf ${RD}/mfsfd/etc/defaults/pccard.conf
68937c973e3SMurray Stokely.endif
690fead5c44SJohn Baldwin	cp ${.CURDIR}/../etc/usbd.conf ${RD}/mfsfd/etc/usbd.conf
691d3b19355SRuslan Ermilov	( for F in defaults/rc.conf netconfig protocols ; do \
69264dc0a3eSDavid E. O'Brien		sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \
69301df2ec3SDavid E. O'Brien		${RD}/trees/base/etc/$$F > ${RD}/mfsfd/stand/etc/$$F ; \
69464dc0a3eSDavid E. O'Brien	  done )
695a191fd1bSAlfred Perlstein	grep -E '^(ftp|nameserver|domain|sunrpc|cmd|nfsd)[^-\w]' \
6966bde859fSRuslan Ermilov	    ${RD}/trees/base/etc/services | \
69764dc0a3eSDavid E. O'Brien	    sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \
69864dc0a3eSDavid E. O'Brien	    > ${RD}/mfsfd/stand/etc/services
699a191fd1bSAlfred Perlstein	ln ${RD}/mfsfd/stand/etc/services ${RD}/mfsfd/etc/services
700a191fd1bSAlfred Perlstein	ln ${RD}/mfsfd/stand/etc/netconfig ${RD}/mfsfd/etc/netconfig
701407ac59aSJohn Hay	cp ${RD}/trees/base/COPYRIGHT ${RD}/mfsfd/stand/help/COPYRIGHT.hlp
70221203b38SBruce A. Mah.if !defined(NODOC)
7038ed3802bSBruce A. Mah	@for i in ${DIST_DOCS_ARCH_INDEP}; do \
704407ac59aSJohn Hay	  cp ${RND}/${RELNOTES_LANG}/$$i/article.txt ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
7058ed3802bSBruce A. Mah	done
7068ed3802bSBruce A. Mah	@for i in ${DIST_DOCS_ARCH_DEP}; do \
707407ac59aSJohn Hay	  cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
7088ed3802bSBruce A. Mah	done
709407ac59aSJohn Hay	@mv ${RD}/mfsfd/stand/help/INSTALLATION.TXT ${RD}/mfsfd/stand/help/INSTALL.TXT
710ce294350SBruce A. Mah	@mv ${RD}/mfsfd/stand/help/EARLY-ADOPTER.TXT ${RD}/mfsfd/stand/help/EARLY.TXT
7118ed3802bSBruce A. Mah.endif
712605ec649SJordan K. Hubbard	-test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd
71371696ba3SJordan K. Hubbard	@mkdir -p ${RD}/mfsfd/boot
71473824f6bSRuslan Ermilov.if ${TARGET_ARCH} != "ia64"
7156bde859fSRuslan Ermilov	@cp ${RD}/trees/base/boot/boot* ${RD}/mfsfd/boot
716710d4ca3SMarcel Moolenaar.endif
7178f1f55e9SRuslan Ermilov.if ${TARGET} == "i386"
7186bde859fSRuslan Ermilov	@cp ${RD}/trees/base/boot/mbr ${RD}/mfsfd/boot
719c06157d4SRuslan Ermilov.endif
7206545b6a5SJordan K. Hubbard	@echo "Making the regular boot floppy."
7216bde859fSRuslan Ermilov	@tar --exclude CVS -cf - -C ${.CURDIR}/../usr.sbin/sysinstall help | \
72292e86f99SJordan K. Hubbard		tar xf - -C ${RD}/mfsfd/stand
723101b8e52SJohn Baldwin.if ${TARGET_ARCH} == "alpha" && !defined(NO_FLOPPIES)
724e4db0936SDavid E. O'Brien	rm -rf ${RD}/mfsfd/stand/help/*
725e4db0936SDavid E. O'Brien.endif
7264a2d414fSRuslan Ermilov.if defined(SMALLBOOTSIZE)
727d1d60923SYoshihiro Takahashi.if exists(${.CURDIR}/${TARGET}/drivers-small.conf)
72870accddfSJohn Baldwin	@rm -rf ${RD}/mfsfd/modules
72970accddfSJohn Baldwin	@mkdir -p ${RD}/mfsfd/modules
730d1d60923SYoshihiro Takahashi	@awk -f  ${.CURDIR}/scripts/driver-copy2.awk 2 \
731d1d60923SYoshihiro Takahashi	    ${.CURDIR}/${TARGET}/drivers-small.conf \
73270accddfSJohn Baldwin	    ${RD}/trees/base/boot/kernel ${RD}/mfsfd/modules
733d1d60923SYoshihiro Takahashi.endif
734a6c5babfSYoshihiro Takahashi	sh -e ${DOFS_SH} -s mfsroot ${RD} ${MNT} \
735d1d60923SYoshihiro Takahashi		${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL}
736a6c5babfSYoshihiro Takahashi	@gzip -9vc mfsroot > mfsroot.gz
737f3fb0a6cSMarcel Moolenaar	@sh -e ${DOFS_SH} ${RD}/floppies/mfsroot-small.flp \
738a6c5babfSYoshihiro Takahashi		${RD} ${MNT} ${SMALLBOOTSIZE} mfsroot.gz \
739d1d60923SYoshihiro Takahashi		${BOOTINODE} ${SMALLBOOTLABEL}
7404a2d414fSRuslan Ermilov.endif
741d1d60923SYoshihiro Takahashi.if exists(${.CURDIR}/${TARGET}/drivers.conf)
74270accddfSJohn Baldwin	@rm -rf ${RD}/mfsfd/modules
74370accddfSJohn Baldwin	@mkdir -p ${RD}/mfsfd/modules
744d1d60923SYoshihiro Takahashi	@awk -f  ${.CURDIR}/scripts/driver-copy2.awk 2 \
745d1d60923SYoshihiro Takahashi	    ${.CURDIR}/${TARGET}/drivers.conf \
74670accddfSJohn Baldwin	    ${RD}/trees/base/boot/kernel ${RD}/mfsfd/modules
747ec603460SJohn Hay	@rm -rf ${RD}/driversfd
748407ac59aSJohn Hay	@mkdir ${RD}/driversfd
749407ac59aSJohn Hay	@awk -f  ${.CURDIR}/scripts/driver-copy2.awk 3 \
750407ac59aSJohn Hay	    ${.CURDIR}/${TARGET}/drivers.conf \
751407ac59aSJohn Hay	    ${RD}/trees/base/boot/kernel ${RD}/driversfd
752407ac59aSJohn Hay	-@rmdir ${RD}/driversfd
75343142017SYoshihiro Takahashi	if [ -d ${RD}/driversfd ]; then \
754f3fb0a6cSMarcel Moolenaar	    sh -e ${DOFS_SH} \
7556ceb41c2SSam Leffler		${RD}/floppies/drivers.flp ${RD} ${MNT} ${DRIVERSIZE} \
7566ceb41c2SSam Leffler		${RD}/driversfd ${DRIVERINODE} ${DRIVERLABEL}; \
7578e414f48SMurray Stokely	    cd ${RD}/driversfd && awk -f  ${.CURDIR}/scripts/driver-desc.awk \
7588e414f48SMurray Stokely		*.dsc >> ${RD}/floppies/DRIVERS.TXT; \
75943142017SYoshihiro Takahashi	fi
760319f35a3SRuslan Ermilov.endif
761f3fb0a6cSMarcel Moolenaar	sh -e ${DOFS_SH} -s mfsroot ${RD} ${MNT} \
76250895b89SJordan K. Hubbard		${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL}
7637953e823SJordan K. Hubbard	@gzip -9vc mfsroot > mfsroot.gz
764101b8e52SJohn Baldwin	@mkdir -p ${RD}/mfsroot
765101b8e52SJohn Baldwin	@cp mfsroot.gz ${RD}/mfsroot
766101b8e52SJohn Baldwin.if !defined(NO_FLOPPIES)
7674a2d414fSRuslan Ermilov.if defined(BOOTSIZE)
768f3fb0a6cSMarcel Moolenaar	@sh -e ${DOFS_SH} ${RD}/floppies/mfsroot.flp \
769b0976c14SYoshihiro Takahashi		${RD} ${MNT} ${BOOTSIZE} mfsroot.gz ${BOOTINODE} ${BOOTLABEL}
7707920b17fSYoshihiro Takahashi	@cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern
771c26d9e5aSJake Burkholder.endif
7724a2d414fSRuslan Ermilov.if defined(SMALLBOOTSIZE)
7734a2d414fSRuslan Ermilov	@cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern-small FDSIZE=SMALL
7744a2d414fSRuslan Ermilov.endif
7754a2d414fSRuslan Ermilov.if defined(BIGBOOTSIZE)
7767920b17fSYoshihiro Takahashi	@cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=boot FDSIZE=BIG
777a40915d7SYoshihiro Takahashi.endif
778101b8e52SJohn Baldwin.endif
779839dfafeSJohn Baldwin	@rm mfsroot mfsroot.gz
780f21b983cSJordan K. Hubbard	@echo "Regular and MFS boot floppies made."
7810a2fffbeSRuslan Ermilov.endif
782ff85b6e3SRuslan Ermilov	touch release.9
783bd668f6fSPoul-Henning Kamp
78430e8b491SPoul-Henning Kamp#
78530e8b491SPoul-Henning Kamp# --==## Create a fixit floppy ##==--
78630e8b491SPoul-Henning Kamp#
787ff85b6e3SRuslan Ermilovrelease.10:
788101b8e52SJohn Baldwin.if !defined(NO_FLOPPIES)
78992e86f99SJordan K. Hubbard	@echo "Making fixit floppy."
79092e86f99SJordan K. Hubbard	@rm -rf ${RD}/fixitfd
79192e86f99SJordan K. Hubbard	@mkdir ${RD}/fixitfd
79292e86f99SJordan K. Hubbard	@cd ${RD}/fixitfd && \
793fbc6f9e0SJoerg Wunsch		mkdir -p dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp \
794d26a815bSJordan K. Hubbard		usr/share/misc
79501df2ec3SDavid E. O'Brien	@cp ${RD}/trees/base/etc/spwd.db ${RD}/trees/base/etc/group \
79601df2ec3SDavid E. O'Brien		${RD}/trees/base/etc/protocols ${RD}/fixitfd/etc
79701df2ec3SDavid E. O'Brien	@cp ${RD}/trees/base/usr/share/misc/scsi_modes \
798fbc6f9e0SJoerg Wunsch		${RD}/fixitfd/usr/share/misc
79992e86f99SJordan K. Hubbard	@cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile
80092e86f99SJordan K. Hubbard	@cp ${.CURDIR}/fixit.services ${RD}/fixitfd/etc/services
80192e86f99SJordan K. Hubbard	@cp ${.CURDIR}/scripts/tar.sh ${RD}/fixitfd/stand/tar
80292e86f99SJordan K. Hubbard	@chmod 555 ${RD}/fixitfd/stand/tar
803c2bed627SYoshihiro Takahashi.if defined(SMALLFIXITSIZE)
804c2bed627SYoshihiro Takahashi	@cd ${.CURDIR} && ${MAKE} installCRUNCH CRUNCH=fixit-small \
805c2bed627SYoshihiro Takahashi		DIR=${RD}/fixitfd/stand ZIP=false
806f3fb0a6cSMarcel Moolenaar	@sh -e ${DOFS_SH} ${RD}/floppies/fixit-small.flp \
807c2bed627SYoshihiro Takahashi		${RD} ${MNT} ${SMALLFIXITSIZE} ${RD}/fixitfd ${FIXITINODE} \
808c2bed627SYoshihiro Takahashi		${SMALLFIXITLABEL}
809c2bed627SYoshihiro Takahashi	@rm -rf ${RD}/fixitfd/stand
810c2bed627SYoshihiro Takahashi	@mkdir ${RD}/fixitfd/stand
811c2bed627SYoshihiro Takahashi.endif
812c2bed627SYoshihiro Takahashi	@cd ${.CURDIR} && ${MAKE} installCRUNCH CRUNCH=fixit \
813c2bed627SYoshihiro Takahashi		DIR=${RD}/fixitfd/stand ZIP=false
814f3fb0a6cSMarcel Moolenaar	@sh -e ${DOFS_SH} ${RD}/floppies/fixit.flp ${RD} \
81592e86f99SJordan K. Hubbard		${MNT} ${FIXITSIZE} ${RD}/fixitfd ${FIXITINODE} ${FIXITLABEL}
8166e5cd2d2SJordan K. Hubbard# Do our last minute floppies directory setup in a convenient place.
81721203b38SBruce A. Mah.if !defined(NODOC)
8184ffc41abSYoshihiro Takahashi	@cp ${RND}/${RELNOTES_LANG}/installation/${TARGET}/article.txt \
81913fc8773SBruce A. Mah		${RD}/floppies/README.TXT
8204b861c74STatsumi Hosokawa	@(cd ${RD}/floppies; md5 README.TXT *.flp > CHECKSUM.MD5)
82113fc8773SBruce A. Mah.else
82213fc8773SBruce A. Mah	@(cd ${RD}/floppies; md5 *.flp > CHECKSUM.MD5)
82313fc8773SBruce A. Mah.endif
824101b8e52SJohn Baldwin.endif
825ff85b6e3SRuslan Ermilov	touch release.10
8263bc93c76SPoul-Henning Kamp
82730e8b491SPoul-Henning Kamp#
82830e8b491SPoul-Henning Kamp# --==## Setup a suitable ftp-area ##==--
82930e8b491SPoul-Henning Kamp#
830e12c4355SPoul-Henning Kampftp.1:
83192e86f99SJordan K. Hubbard	@echo "Setting up FTP distribution area"
83292e86f99SJordan K. Hubbard	@mkdir -p ${FD}
83334594ab9SJordan K. Hubbard	-@ln -s . ${FD}/${BUILDNAME}
83492e86f99SJordan K. Hubbard	@cd ${RD} && find floppies -print | cpio -dumpl ${FD}
83592e86f99SJordan K. Hubbard	@cd ${RD}/dists && find . -print | cpio -dumpl ${FD}
83621203b38SBruce A. Mah.if !defined(NODOC)
8378ed3802bSBruce A. Mah	@for i in ${DIST_DOCS_ARCH_INDEP}; do \
838febbbc67SBruce A. Mah	  cp ${RND}/${RELNOTES_LANG}/$$i/article.txt ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
839febbbc67SBruce A. Mah	  cp ${RND}/${RELNOTES_LANG}/$$i/article.html ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
8408ed3802bSBruce A. Mah	done
8418ed3802bSBruce A. Mah	@for i in ${DIST_DOCS_ARCH_DEP}; do \
8424ffc41abSYoshihiro Takahashi	  cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
8434ffc41abSYoshihiro Takahashi	  cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.html ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
8448ed3802bSBruce A. Mah	done
845febbbc67SBruce A. Mah	@cp ${RND}/${RELNOTES_LANG}/readme/docbook.css ${FD}
8468ed3802bSBruce A. Mah	@mv ${FD}/INSTALLATION.TXT ${FD}/INSTALL.TXT
8478ed3802bSBruce A. Mah	@mv ${FD}/INSTALLATION.HTM ${FD}/INSTALL.HTM
848ce294350SBruce A. Mah	@mv ${FD}/EARLY-ADOPTER.TXT ${FD}/EARLY.TXT
849ce294350SBruce A. Mah	@mv ${FD}/EARLY-ADOPTER.HTM ${FD}/EARLY.HTM
8508ed3802bSBruce A. Mah.endif
85192e86f99SJordan K. Hubbard	@echo "CD_VERSION = ${BUILDNAME}" > ${FD}/cdrom.inf
8520206d3bdSJordan K. Hubbard.if !defined(NOPORTS)
85314870ecfSJordan K. Hubbard	@tar --exclude CVS -cBf - -C ${CD_DISC1} ports | tar -xBf - -C ${FD}
8540206d3bdSJordan K. Hubbard.endif
8559999fb15SJohn Baldwin	touch ftp.1
8563bc93c76SPoul-Henning Kamp
85730e8b491SPoul-Henning Kamp#
85830e8b491SPoul-Henning Kamp# --==## Setup a suitable cdrom-area ##==--
85930e8b491SPoul-Henning Kamp#
860c5b0a909SPoul-Henning Kampcdrom.1:
86192e86f99SJordan K. Hubbard	@echo "Setting up CDROM distribution area"
86292e86f99SJordan K. Hubbard	@mkdir -p ${CD_DISC1} ${CD_DISC2}
863f54846c3SPoul-Henning Kamp	-@ln -s . ${CD_DISC1}/${BUILDNAME}
86492e86f99SJordan K. Hubbard	@cd ${RD} && find floppies -print | cpio -dumpl ${CD_DISC1}
86592e86f99SJordan K. Hubbard	@cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DISC1}
86692e86f99SJordan K. Hubbard	@for i in ${DISTRIBUTIONS} ; \
867c5b0a909SPoul-Henning Kamp	do \
868c5b0a909SPoul-Henning Kamp		if [ -d ${RD}/trees/$${i} ] ; then \
869ad5ebf3fSDag-Erling Smørgrav			chflags -R noschg ${RD}/trees/$${i} || true ; \
87001feef2cSPoul-Henning Kamp			( cd ${RD}/trees/$${i} && \
8711bac119bSJordan K. Hubbard			find . -depth -print | cpio -dumpl ${CD_DISC2} ) ; \
872c5b0a909SPoul-Henning Kamp		fi \
873c5b0a909SPoul-Henning Kamp	done
87492e86f99SJordan K. Hubbard	@rm -f ${CD_DISC2}/.profile
87592e86f99SJordan K. Hubbard	@cp ${.CURDIR}/fixit.profile ${CD_DISC2}/.profile
87692e86f99SJordan K. Hubbard	@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC1}/cdrom.inf
87792e86f99SJordan K. Hubbard	@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf
87821203b38SBruce A. Mah.if !defined(NODOC)
8798ed3802bSBruce A. Mah	@for i in ${DIST_DOCS_ARCH_INDEP}; do \
880febbbc67SBruce A. Mah	  cp ${RND}/${RELNOTES_LANG}/$$i/article.txt ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
881febbbc67SBruce A. Mah	  cp ${RND}/${RELNOTES_LANG}/$$i/article.html ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
8828ed3802bSBruce A. Mah	done
8838ed3802bSBruce A. Mah	@for i in ${DIST_DOCS_ARCH_DEP}; do \
8844ffc41abSYoshihiro Takahashi	  cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
8854ffc41abSYoshihiro Takahashi	  cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.html ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
8868ed3802bSBruce A. Mah	done
887febbbc67SBruce A. Mah	@cp ${RND}/${RELNOTES_LANG}/readme/docbook.css ${CD_DISC1}
8888ed3802bSBruce A. Mah	@mv ${CD_DISC1}/INSTALLATION.TXT ${CD_DISC1}/INSTALL.TXT
8898ed3802bSBruce A. Mah	@mv ${CD_DISC1}/INSTALLATION.HTM ${CD_DISC1}/INSTALL.HTM
890ce294350SBruce A. Mah	@mv ${CD_DISC1}/EARLY-ADOPTER.TXT ${CD_DISC1}/EARLY.TXT
891ce294350SBruce A. Mah	@mv ${CD_DISC1}/EARLY-ADOPTER.HTM ${CD_DISC1}/EARLY.HTM
8928ed3802bSBruce A. Mah.endif
8938f1f55e9SRuslan Ermilov.if ${TARGET} != "pc98"
8944c8ef1e6SJohn Baldwin	@echo "Setting up /boot"
8956ceb41c2SSam Leffler	@rm -f ${CD_DISC2}/boot/loader.conf
896101b8e52SJohn Baldwin	@cp ${RD}/mfsroot/mfsroot.gz ${CD_DISC2}/boot/mfsroot.gz
897101b8e52SJohn Baldwin	@echo 'mfsroot_load="YES"' > ${CD_DISC2}/boot/loader.conf
898101b8e52SJohn Baldwin	@echo 'mfsroot_type="mfs_root"' >> ${CD_DISC2}/boot/loader.conf
899101b8e52SJohn Baldwin	@echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DISC2}/boot/loader.conf
9004c8ef1e6SJohn Baldwin	@cp -Rp ${CD_DISC2}/boot ${CD_DISC1}
901dfbc75ffSYoshihiro Takahashi.endif
9028f1f55e9SRuslan Ermilov.if ${TARGET} == "i386"
9032ef74d22SJordan K. Hubbard	@mkdir -p ${CD_DISC2}/floppies
9042ef74d22SJordan K. Hubbard	@cp ${CD_DISC1}/floppies/boot.flp ${CD_DISC2}/floppies
9052a76df63SDavid E. O'Brien.endif
90697febce7SJoerg Wunsch.if !defined(NOPORTS)
90792e86f99SJordan K. Hubbard	@mkdir -p ${CD_DISC1}/ports && \
90865718a83SMakoto Matsushita	  tar --exclude CVS --exclude 'ports/distfiles/*' -czf \
90965718a83SMakoto Matsushita	  ${CD_DISC1}/ports/ports.tgz -C /usr ports && \
910a43aa360SJordan K. Hubbard	  cp ${.CURDIR}/scripts/ports-install.sh ${CD_DISC1}/ports/install.sh \
911a43aa360SJordan K. Hubbard	  && (cd ${CD_DISC1}/ports; md5 * > CHECKSUM.MD5)
912d219716cSJordan K. Hubbard.endif
9139999fb15SJohn Baldwin	touch cdrom.1
914c5b0a909SPoul-Henning Kamp
9152ef74d22SJordan K. Hubbardiso.1:
9168f1f55e9SRuslan Ermilov	@if [ -r ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ]; then \
9172ef74d22SJordan K. Hubbard		echo "Creating ISO images..."; \
9188f1f55e9SRuslan Ermilov		sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \
919bb6972abSDavid E. O'Brien		    fbsd_miniinst \
920bb6972abSDavid E. O'Brien		    ${CD}/${BUILDNAME}-${TARGET}-miniinst.iso ${CD_DISC1}; \
9218f1f55e9SRuslan Ermilov		sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \
922bb6972abSDavid E. O'Brien		    fbsd_livefs \
923bb6972abSDavid E. O'Brien		    ${CD}/${BUILDNAME}-${TARGET}-disc2.iso ${CD_DISC2}; \
9242ef74d22SJordan K. Hubbard		if [ "x${CD_EXTRA_BITS}" != "x" ]; then \
925bb6972abSDavid E. O'Brien			sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh \
926bb6972abSDavid E. O'Brien			    ${BOOTABLE} fbsd_boot \
927bb6972abSDavid E. O'Brien			    ${CD}/${BUILDNAME}-${TARGET}-disc1.iso ${CD_DISC1} \
928bb6972abSDavid E. O'Brien			    ${CD_EXTRA_BITS} \
9292c1763d4SDavid E. O'Brien			    && false; \
9302ef74d22SJordan K. Hubbard		fi \
93172995602SDavid E. O'Brien	else \
9328f1f55e9SRuslan Ermilov		echo "Do not know how to create an ISO for ${TARGET_ARCH}."; \
9332ef74d22SJordan K. Hubbard	fi
9342ef74d22SJordan K. Hubbard	touch iso.1
9352ef74d22SJordan K. Hubbard
9368ed3802bSBruce A. Mah#
9378ed3802bSBruce A. Mah# --==## Documentation Project files such as the Handbook and FAQ ##==--
9388ed3802bSBruce A. Mah#
939793e8c6fSJordan K. Hubbarddoc.1:
94092e86f99SJordan K. Hubbard	@echo "Making docs..."
94192e86f99SJordan K. Hubbard	@for i in ${DOCPORTS}; do \
942da037ed3SRuslan Ermilov	    cd /usr/ports/$$i && \
943da037ed3SRuslan Ermilov	    env -i PATH=$${PATH} make all install clean \
944da037ed3SRuslan Ermilov		BATCH=yes WITHOUT_X11=yes JADETEX=no WITHOUT_PYTHON=yes \
945da037ed3SRuslan Ermilov		FORCE_PKG_REGISTER=yes; \
946b59d8897SJordan K. Hubbard	done
94701df2ec3SDavid E. O'Brien	@cd /usr/doc && make all install 'FORMATS=html html-split txt' INSTALL_COMPRESSED='' DOCDIR=${RD}/trees/base/usr/share/doc
948a5ddb8cfSJordan K. Hubbard	touch doc.1
949793e8c6fSJordan K. Hubbard
9508ed3802bSBruce A. Mah#
9518ed3802bSBruce A. Mah# --==## RELNOTESng:  Next-generation replacements for *.TXT files ##==--
9528ed3802bSBruce A. Mah#
9538ed3802bSBruce A. Mahdoc.2:
9548ed3802bSBruce A. Mah	@echo "Making release documentation..."
955febbbc67SBruce A. Mah	@cd ${.CURDIR}/doc && make all install clean 'FORMATS=html txt' INSTALL_COMPRESSED='' DOCDIR=${RND}
9568ed3802bSBruce A. Mah	touch doc.2
9578ed3802bSBruce A. Mah
9587eb11201SPoul-Henning Kamp# Various "subroutine" and other supporting targets.
9597eb11201SPoul-Henning Kamp
960470f825fSJordan K. Hubbard# RD=
961470f825fSJordan K. Hubbard# SD=
962470f825fSJordan K. Hubbard# TD=
963470f825fSJordan K. Hubbard# ARG=
964bd668f6fSPoul-Henning KampdoTARBALL:
965bd668f6fSPoul-Henning Kamp.if !defined(SD)
966288fe4dbSPoul-Henning Kamp	@echo "SD undefined in doTARBALL" && exit 1
967bd668f6fSPoul-Henning Kamp.endif
968bd668f6fSPoul-Henning Kamp.if !defined(TD)
96919cc96f6SDavid E. O'Brien	@echo "TD undefined in doTARBALL" && exit 1
970bd668f6fSPoul-Henning Kamp.endif
971bd668f6fSPoul-Henning Kamp.if !defined(ARG)
972288fe4dbSPoul-Henning Kamp	@echo "ARG undefined in doTARBALL" && exit 1
973bd668f6fSPoul-Henning Kamp.endif
97492e86f99SJordan K. Hubbard	@rm -rf ${RD}/dists/${TD}/${TN}*
97592e86f99SJordan K. Hubbard	@mkdir -p ${RD}/dists/${TD}
97692e86f99SJordan K. Hubbard	@( cd ${SD} && \
977d2b98961SPoul-Henning Kamp		tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \
978d2b98961SPoul-Henning Kamp		echo rolling ${TD}/$$tn tarball &&\
9790ef3fb22SJoerg Wunsch		tar --exclude CVS --exclude obj --exclude BOOTMFS -cf - ${ARG} | \
98095e34bfcSJordan K. Hubbard		${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \
98120ff6b88SJordan K. Hubbard		sh ${.CURDIR}/scripts/info.sh ${RD}/dists/${TD}/$$tn > \
982ac0a5268SJordan K. Hubbard		   ${RD}/dists/${TD}/$$tn.inf && \
9831e104a1eSJordan K. Hubbard		if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \
9841e104a1eSJordan K. Hubbard		  cp -p ${.CURDIR}/scripts/$${TD}-install.sh ${RD}/dists/${TD}/install.sh; \
9851e104a1eSJordan K. Hubbard		fi && \
98616c61233SJordan K. Hubbard		if [ "${SD}" != "/usr/src" ]; then \
98711017a68SMarcel Moolenaar			mtree -c -i -p ${SD}/${ARG} \
98816c61233SJordan K. Hubbard			  -k gname,md5digest,mode,nlink,uname,size,link,type \
98991f2535eSJordan K. Hubbard			  > ${RD}/dists/${TD}/$$tn.mtree ; \
99091f2535eSJordan K. Hubbard		else \
99191f2535eSJordan K. Hubbard			true; \
99291f2535eSJordan K. Hubbard		fi; \
99391f2535eSJordan K. Hubbard		(cd ${RD}/dists/${TD}; \
99491f2535eSJordan K. Hubbard		   rm -f CHECKSUM.MD5; \
99591f2535eSJordan K. Hubbard		   md5 * > CHECKSUM.MD5) \
99691f2535eSJordan K. Hubbard	)
9977eb11201SPoul-Henning Kamp
998ff85b6e3SRuslan ErmilovdoRELEASE:  release.1 release.2 release.3 ${DOCREL} release.4 release.5 \
999c26d9e5aSJake Burkholder		release.6 release.7 release.8 release.9 ${FIXIT_TARGET}
100092e86f99SJordan K. Hubbard	@cd ${.CURDIR} && ${MAKE} ${EXTRAS}
10017eb11201SPoul-Henning Kamp	@echo "Release done"
10027eb11201SPoul-Henning Kamp
10030ead1f1dSJordan K. Hubbardfloppies:
100492e86f99SJordan K. Hubbard	@cd ${.CURDIR} && ${MAKE} boot.flp
100592e86f99SJordan K. Hubbard	@cd ${.CURDIR} && ${MAKE} fixit.flp
100692e86f99SJordan K. Hubbard	@cd ${RD} && find floppies -print | cpio -dumpl ${FD}
10070ead1f1dSJordan K. Hubbard
10083525074dSPoul-Henning Kampboot.flp:
1009ff85b6e3SRuslan Ermilov	@rm -f release.5 release.9
1010ff85b6e3SRuslan Ermilov	@cd ${.CURDIR} && ${MAKE} release.5 release.9 CRUNCH_TARGETS=boot
10113525074dSPoul-Henning Kamp
1012e841846bSPoul-Henning Kampfixit.flp:
1013ff85b6e3SRuslan Ermilov	@rm -f release.5 release.10
1014ff85b6e3SRuslan Ermilov	@cd ${.CURDIR} && ${MAKE} release.5 release.10 CRUNCH_TARGETS=fixit
1015e841846bSPoul-Henning Kamp
1016518a1d34SPoul-Henning KampinstallCRUNCH:
1017518a1d34SPoul-Henning Kamp.if !defined(CRUNCH)
1018288fe4dbSPoul-Henning Kamp	@echo "CRUNCH undefined in installCRUNCH" && exit 1
1019518a1d34SPoul-Henning Kamp.endif
1020518a1d34SPoul-Henning Kamp.if !defined(DIR)
1021288fe4dbSPoul-Henning Kamp	@echo "DIR undefined in installCRUNCH" && exit 1
1022518a1d34SPoul-Henning Kamp.endif
1023518a1d34SPoul-Henning Kamp.if !defined(ZIP)
1024288fe4dbSPoul-Henning Kamp	@echo "ZIP undefined in installCRUNCH" && exit 1
1025518a1d34SPoul-Henning Kamp.endif
102692e86f99SJordan K. Hubbard	@if ${ZIP} ; then \
1027518a1d34SPoul-Henning Kamp		gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \
1028518a1d34SPoul-Henning Kamp	else \
1029518a1d34SPoul-Henning Kamp		ln -f ${RD}/crunch/${CRUNCH} ${DIR}/${CRUNCH}_crunch ; \
1030518a1d34SPoul-Henning Kamp	fi
103192e86f99SJordan K. Hubbard	@chmod 555 ${DIR}/${CRUNCH}_crunch
10328f1f55e9SRuslan Ermilov	@if [ -f ${.CURDIR}/${TARGET}/${CRUNCH}_crunch.conf ] ; then \
10338f1f55e9SRuslan Ermilov		for i in `crunchgen -l ${.CURDIR}/${TARGET}/${CRUNCH}_crunch.conf` ; do \
1034518a1d34SPoul-Henning Kamp			ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \
10357ec62217SYoshihiro Takahashi		done \
10367ec62217SYoshihiro Takahashi	else \
10377ec62217SYoshihiro Takahashi		for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \
10387ec62217SYoshihiro Takahashi			ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \
10397ec62217SYoshihiro Takahashi		done \
10407ec62217SYoshihiro Takahashi	fi
1041288fe4dbSPoul-Henning Kamp
1042288fe4dbSPoul-Henning Kamp#
1043288fe4dbSPoul-Henning Kamp# --==## Put a filesystem into a BOOTMFS kernel ##==--
1044288fe4dbSPoul-Henning Kamp#
1045288fe4dbSPoul-Henning KampdoMFSKERN:
10466bde859fSRuslan Ermilov	@echo "Running ${.TARGET} for ${FSIMAGE}"
10476bde859fSRuslan Ermilov	@rm -f ${RD}/kernels/BOOTMFS ${RD}/kernels/BOOTMFS.${FSIMAGE}
1048319f35a3SRuslan Ermilov	@cd ${.CURDIR}/../sys/${TARGET}/conf && \
104912290409SYoshihiro Takahashi	    sh ${.CURDIR}/${TARGET}/dokern.sh ${FDSIZE} < GENERIC > BOOTMFS && \
1050319f35a3SRuslan Ermilov	    [ -r GENERIC.hints ] && cp GENERIC.hints BOOTMFS.hints
1051d1d60923SYoshihiro Takahashi.if defined(FDSIZE) && ${FDSIZE} == "SMALL" && \
1052d1d60923SYoshihiro Takahashi    exists(${.CURDIR}/${TARGET}/drivers-small.conf)
1053d1d60923SYoshihiro Takahashi	@awk -f ${.CURDIR}/scripts/driver-remove.awk \
1054d1d60923SYoshihiro Takahashi		${.CURDIR}/${TARGET}/drivers-small.conf \
1055d1d60923SYoshihiro Takahashi		${.CURDIR}/../sys/${TARGET}/conf/BOOTMFS
1056d1d60923SYoshihiro Takahashi.elif exists(${.CURDIR}/${TARGET}/drivers.conf)
1057319f35a3SRuslan Ermilov	@awk -f ${.CURDIR}/scripts/driver-remove.awk \
1058319f35a3SRuslan Ermilov		${.CURDIR}/${TARGET}/drivers.conf \
1059319f35a3SRuslan Ermilov		${.CURDIR}/../sys/${TARGET}/conf/BOOTMFS
1060319f35a3SRuslan Ermilov.endif
10616bde859fSRuslan Ermilov	cd ${.CURDIR}/..; \
10626bde859fSRuslan Ermilov	KERNEL_KO=BOOTMFS KODIR= \
106374064f9fSRuslan Ermilov	    ${CROSSMAKE} ${KERNEL_FLAGS} -DNO_MODULES -DNO_KERNELCLEAN \
1064407ac59aSJohn Hay	    KERNCONF=BOOTMFS COPTFLAGS="-Os -pipe" -DNO_CPU_COPTFLAGS \
1065407ac59aSJohn Hay	    buildkernel reinstallkernel \
10666bde859fSRuslan Ermilov	    DESTDIR=${RD}/kernels
10672efba2d1SRuslan Ermilov	[ -r ${.CURDIR}/../sys/${TARGET}/conf/BOOTMFS.hints ] && \
10688f1f55e9SRuslan Ermilov	cp ${.CURDIR}/../sys/${TARGET}/conf/BOOTMFS.hints ${RD}/kernels
1069643f7da0SJordan K. Hubbard	@rm -rf ${RD}/image.${FSIMAGE}
1070643f7da0SJordan K. Hubbard	@mkdir ${RD}/image.${FSIMAGE}
1071fff8eb57SJohn Baldwin	@cd ${RD}/kernels && \
1072937d0d51SDon Lewis	  (chflags noschg BOOTMFS || true) && \
10738f1f55e9SRuslan Ermilov	  ${WMAKEENV} strip BOOTMFS && \
1074fff8eb57SJohn Baldwin	  cp BOOTMFS BOOTMFS.${FSIMAGE} && \
1075fff8eb57SJohn Baldwin	  [ -r BOOTMFS.hints ] && mv BOOTMFS.hints BOOTMFS.${FSIMAGE}.hints
107692e86f99SJordan K. Hubbard	mv ${RD}/kernels/BOOTMFS ${RD}/image.${FSIMAGE}/kernel
107792e86f99SJordan K. Hubbard	@echo "Setting up /boot directory for ${FSIMAGE} floppy"
1078643f7da0SJordan K. Hubbard	@mkdir -p ${RD}/image.${FSIMAGE}/boot
10798f1f55e9SRuslan Ermilov.if ${TARGET} == "i386"
1080c54fbe8dSRuslan Ermilov	@${WMAKEENV} kgzip -v -l ${RD}/trees/base/usr/lib/kgzldr.o \
1081c54fbe8dSRuslan Ermilov	    -o ${RD}/image.${FSIMAGE}/boot/loader ${RD}/trees/base/boot/loader
108273824f6bSRuslan Ermilov.elif ${TARGET_ARCH} == "ia64"
1083977a68ccSYoshihiro Takahashi	@cp ${RD}/trees/base/boot/loader.efi ${RD}/image.${FSIMAGE}/boot
10844b60693cSMakoto Matsushita.else
1085977a68ccSYoshihiro Takahashi	@cp ${RD}/trees/base/boot/loader ${RD}/image.${FSIMAGE}/boot
10864b60693cSMakoto Matsushita.endif
1087fff8eb57SJohn Baldwin	@[ -r ${RD}/kernels/BOOTMFS.${FSIMAGE}.hints ] && \
1088fff8eb57SJohn Baldwin	  sed -e '/^hint/s/^/set /' -e '/^#/d' \
1089fff8eb57SJohn Baldwin	    ${RD}/kernels/BOOTMFS.${FSIMAGE}.hints > \
1090fff8eb57SJohn Baldwin	    ${RD}/image.${FSIMAGE}/boot/device.hints && \
1091fff8eb57SJohn Baldwin	  echo "include /boot/device.hints" > ${RD}/image.${FSIMAGE}/boot/loader.rc
1092fff8eb57SJohn Baldwin	@echo "load /kernel" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
109304063000SJohn W. De Boskey.if !defined(FDSIZE) || ${FDSIZE} != "BIG"
1094f7a68483SMasafumi Max NAKANE	@echo "echo \\007\\007" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
1095c8fe5d2aSMike Smith	@echo "echo Please insert MFS root floppy and press enter:" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
1096c8fe5d2aSMike Smith	@echo "read" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
109796a3add7SMasafumi Max NAKANE.endif
1098839dfafeSJohn Baldwin	@echo "load -t mfs_root /mfsroot" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
10999cdb5b17SMarcel Moolenaar.if ${TARGET_ARCH} != "ia64"
1100886ce72aSMakoto Matsushita	@echo "set hint.acpi.0.disabled=1" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
11019cdb5b17SMarcel Moolenaar.endif
1102f7ad577fSScott Long	@if [ -r ${RD}/floppies/drivers.flp ]; then \
1103f7ad577fSScott Long	    echo "set driver_floppy=YES" >> ${RD}/image.${FSIMAGE}/boot/loader.rc; \
1104f7ad577fSScott Long	fi
110570accddfSJohn Baldwin	@echo "set module_path=\"/modules;/dist\"" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
110696a3add7SMasafumi Max NAKANE	@echo "echo \\007\\007" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
110778e52c11SMasafumi Max NAKANE	@echo "autoboot 10" >> ${RD}/image.${FSIMAGE}/boot/loader.rc
11088f1f55e9SRuslan Ermilov.if ${TARGET_ARCH} == "i386" && ${AUTO_KEYBOARD_DETECT}
110996a3add7SMasafumi Max NAKANE	@echo "-P" >> ${RD}/image.${FSIMAGE}/boot.config
11108198d9b0SJordan K. Hubbard.endif
11117953e823SJordan K. Hubbard	@gzip -9v ${RD}/image.${FSIMAGE}/kernel
1112643f7da0SJordan K. Hubbard	@rm -f ${RD}/floppies/${FSIMAGE}.flp
11137920b17fSYoshihiro Takahashi.if defined(FDSIZE) && ${FDSIZE} == "BIG"
1114839dfafeSJohn Baldwin	@cp mfsroot.gz ${RD}/image.${FSIMAGE}
1115f3fb0a6cSMarcel Moolenaar	sh -e ${DOFS_SH} ${RD}/floppies/${FSIMAGE}.flp \
1116b5d01310SJordan K. Hubbard		${RD} ${MNT} ${BIGBOOTSIZE} ${RD}/image.${FSIMAGE} \
1117b5d01310SJordan K. Hubbard		${BOOTINODE} ${BIGBOOTLABEL}
11187920b17fSYoshihiro Takahashi.elif defined(FDSIZE) && ${FDSIZE} == "SMALL"
1119f3fb0a6cSMarcel Moolenaar	sh -e ${DOFS_SH} ${RD}/floppies/${FSIMAGE}.flp \
11207920b17fSYoshihiro Takahashi		${RD} ${MNT} ${SMALLBOOTSIZE} ${RD}/image.${FSIMAGE} \
11217920b17fSYoshihiro Takahashi		${BOOTINODE} ${SMALLBOOTLABEL}
112250895b89SJordan K. Hubbard.else
1123f3fb0a6cSMarcel Moolenaar	sh -e ${DOFS_SH} ${RD}/floppies/${FSIMAGE}.flp \
112492e86f99SJordan K. Hubbard		${RD} ${MNT} ${BOOTSIZE} ${RD}/image.${FSIMAGE} \
112592e86f99SJordan K. Hubbard		${BOOTINODE} ${BOOTLABEL}
112650895b89SJordan K. Hubbard.endif
112792e86f99SJordan K. Hubbard	@echo "Created ${RD}/floppies/${FSIMAGE}.flp"
1128270ee878SJohn W. De Boskey
11298eb4e096SRuslan Ermilov.include <bsd.obj.mk>
1130