Makefile revision 18195
1247841Sbapt# $Id: Makefile,v 1.235 1996/09/07 01:05:16 pst Exp $ 2263020Sbapt# 3257353Sbdrewery# How to roll a release: 4247841Sbapt# 5247841Sbapt# make release CHROOTDIR=<lots of disk> [ RELEASETAG=something ] 6247841Sbapt# 7247841Sbapt# As far as I know, this will roll everything nicely into the "stage" 8247841Sbapt# directory. I still need to write the two rules to move that into 9247841Sbapt# the "cdrom" and "ftp" directories. 10247841Sbapt# I also need to "make ports" and install those, but I'm not going to do 11247841Sbapt# that on a 14.4 line just yet... 12247841Sbapt# 13247841Sbapt# SET THIS !!! 14247841Sbapt#BUILDNAME=2.2-960501-SNAP 15247841Sbapt#CHROOTDIR=/junk/release 16247841Sbapt# If this is a RELEASE, then set 17247841Sbapt#RELEASETAG=RELENG_2_1_0 18247841Sbapt 19247841Sbapt# Things which without too much trouble can be considered variables 20247841Sbapt 21247841SbaptEXPORT_DISTS= games manpages proflibs dict info doc 22247841SbaptEXTRA_DISTS= krb des ${EXPORT_DISTS} 23247841SbaptALL_DISTS= bin ${EXTRA_DISTS} 24247841SbaptKERNELS?= GENERIC 25247841Sbapt 26247841Sbapt# Extra source tarballs; each argument is a pair of source dir and 27247841Sbapt# distribution name. The dist name should not exceed 7 characters 28247841Sbapt# (another "s" for "source" will be prepended). 29247841SbaptEXTRA_SRC+= usr.sbin/sendmail/cf smailcf 30247841Sbapt 31247841SbaptBOOT1= etc/protocols etc/sysconfig 32261144Sbapt 33247841Sbapt# mountpoint for filesystems. 34247841SbaptMNT= /mnt 35247841Sbapt 36259613Sbdrewery# other floppy parameters. 37247841SbaptFDSIZE= 1200 38255457SbaptFDLABEL= fd1200 39259613Sbdrewery 40263020SbaptZIPNSPLIT= gzip --no-name -9 -c | split -b 240640 - 41247841Sbapt 42247841Sbapt# Upper size for the mfs in the boot.flp kernel. 43247841Sbapt# These are adjusted down to the minimum needed by doFS.sh. 44247841SbaptBOOTMFSSIZE= 1200 45247841SbaptMFSINODE= 42000 46247841Sbapt 47247841Sbapt# Things which will get you into trouble if you change them 48247841SbaptDISTRIBUTIONS= bin ${EXTRA_DISTS} 49247841SbaptMTREEFILES= ${.CURDIR}/../etc/mtree 50247841SbaptRD= ${RELEASEDIR}/stage 51247841SbaptFD= ${RELEASEDIR}/ftp 52247841SbaptCD= ${RELEASEDIR}/cdrom 53247841Sbapt 54247841Sbapt.if !defined(WHICH_CRUNCH) 55247841SbaptWHICH_CRUNCH= boot fixit 56247841Sbapt.endif 57259613Sbdrewery 58259613SbdreweryREDO?= sysinstall 59259613SbdreweryREDOSED= sed -e 's/dirs/release.1/' -e 's/trees/release.2/' \ 60259613Sbdrewery -e 's/kerns/release.3/' -e 's/sysinstall/release.4/' \ 61259613Sbdrewery -e 's/fixup/release.5/' -e 's/tarbin/release.6/' \ 62247841Sbapt -e 's/tarsrc/release.7/' -e 's/boot\.flp/release.8/' \ 63247841Sbapt -e 's/fixit\.flp/release.9/' -e 's/ftp/ftp.1/' \ 64247841Sbapt -e 's/cdrom/cdrom.1/' 65247841Sbapt 66247841SbaptREDOREDO!= echo ${REDO} | ${REDOSED} 67259613Sbdrewery 68247841Sbaptrerelease release: 69263621Sbdrewery.if !defined(CHROOTDIR) || !defined(BUILDNAME) 70247841Sbapt @echo "To make a release you must set CHROOTDIR and BUILDNAME" && false 71247841Sbapt.endif 72247841Sbapt.if make(release) 73247841Sbapt.if exists(${CHROOTDIR}) 74247841Sbapt chflags -R noschg ${CHROOTDIR}/. 75247841Sbapt -rm -rf ${CHROOTDIR} 76257328Sbdrewery.endif 77247841Sbapt -mkdir -p ${CHROOTDIR} 78259613Sbdrewery cd ${.CURDIR}/../etc && ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR} 79247841Sbapt cd ${.CURDIR}/../etc && ${MAKE} distribution DESTDIR=${CHROOTDIR} 80263621Sbdrewery cd ${.CURDIR}/.. && ${MAKE} install DESTDIR=${CHROOTDIR} 81247841Sbapt.if !defined(RELEASETAG) 82247841Sbapt cd ${CHROOTDIR}/usr && rm -rf src && \ 83247841Sbapt cvs -d ${CVSROOT} co -P src 84247841Sbapt.if defined(INTCVSROOT) 85247841Sbapt cd ${CHROOTDIR}/usr && \ 86247841Sbapt cvs -d ${INTCVSROOT} co -P src/secure src/eBones 87259613Sbdrewery.endif 88247841Sbapt.else 89263621Sbdrewery cd ${CHROOTDIR}/usr && rm -rf src && \ 90247841Sbapt cvs co -d ${CVSROOT} -P -r ${RELEASETAG} src 91247841Sbapt.if defined(INTCVSROOT) 92247841Sbapt cd ${CHROOTDIR}/usr && \ 93247841Sbapt cvs -d ${INTCVSROOT} co -P -r ${RELEASETAG} src/secure src/eBones 94247841Sbapt.endif 95247841Sbapt.endif 96259613Sbdrewery.if defined(LOCAL_PATCHES) && exists(${LOCAL_PATCHES}) 97247841Sbapt cd ${CHROOTDIR}/usr/src && patch --silent < ${LOCAL_PATCHES} 98263621Sbdrewery.endif 99247841Sbapt.endif 100247841Sbapt.if make(rerelease) 101247841Sbapt.if !defined(RELEASENOUPDATE) 102247841Sbapt.if !defined(RELEASETAG) 103247841Sbapt cd ${CHROOTDIR}/usr && cvs -q update -P -d src 104247841Sbapt.else 105259613Sbdrewery cd ${CHROOTDIR}/usr && cvs -q update -P -d -r ${RELEASETAG} src 106247841Sbapt.endif 107263621Sbdrewery.endif 108257353Sbdrewery.endif 109257353Sbdrewery ( cd ${CHROOTDIR}/usr/src/sys/conf && \ 110257353Sbdrewery mv newvers.sh foo && \ 111257353Sbdrewery sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh&& rm foo ) 112257353Sbdrewery ( cd ${CHROOTDIR}/usr/src/release/sysinstall && \ 113257353Sbdrewery sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && \ 114259613Sbdrewery mv version.h.new version.h ) 115257353Sbdrewery echo "#!/bin/sh" > ${CHROOTDIR}/mk 116263621Sbdrewery echo "set -ex" >> ${CHROOTDIR}/mk 117257353Sbdrewery echo "CFLAGS='-O2 -pipe'" >> ${CHROOTDIR}/mk 118257353Sbdrewery echo "export CFLAGS" >> ${CHROOTDIR}/mk 119257353Sbdrewery echo "RELEASEDIR=/R" >> ${CHROOTDIR}/mk 120257353Sbdrewery echo "export RELEASEDIR" >> ${CHROOTDIR}/mk 121257353Sbdrewery echo "cd /usr/src" >> ${CHROOTDIR}/mk 122257353Sbdrewery.if make(release) 123259613Sbdrewery echo "make world" >> ${CHROOTDIR}/mk 124257353Sbdrewery.endif 125263621Sbdrewery.if make(rerelease) 126257353Sbdrewery echo "make all install" >> ${CHROOTDIR}/mk 127259613Sbdrewery.endif 128259613Sbdrewery echo "cd /usr/src/release" >> ${CHROOTDIR}/mk 129259613Sbdrewery echo "make obj OBJLINK=yes" >> ${CHROOTDIR}/mk 130259613Sbdrewery echo "cd obj" >> ${CHROOTDIR}/mk 131259613Sbdrewery echo "rm -f ${REDOREDO}" >> ${CHROOTDIR}/mk 132259613Sbdrewery echo "cd /usr/src/release" >> ${CHROOTDIR}/mk 133259613Sbdrewery echo "make doRELEASE" >> ${CHROOTDIR}/mk 134263621Sbdrewery echo "echo make ${.TARGET} Finished" >> ${CHROOTDIR}/mk 135259613Sbdrewery chmod 755 ${CHROOTDIR}/mk 136247841Sbapt chroot ${CHROOTDIR} /mk 137247841Sbapt 138247841Sbaptwhap: 139247841Sbapt ( cd ${CHROOTDIR}/usr/src/release/sysinstall && \ 140247841Sbapt sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && mv version.h.new version.h ) 141247841Sbapt 142247841Sbaptclean: 143247841Sbapt rm -rf boot_crunch release.[0-9] release.1[0] 144247841Sbapt 145247841Sbapt# Clean out ${RELEASEDIR} and make the directory structure. 146247841Sbaptrelease.1: 147247841Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 148247841Sbapt -mkdir ${RELEASEDIR} 149247841Sbapt chflags -R noschg ${RELEASEDIR}/. 150255457Sbapt rm -rf ${RELEASEDIR}/* 151255457Sbapt mkdir ${RD} 152255457Sbapt mkdir ${RD}/floppies 153255457Sbapt mkdir ${RD}/trees 154255457Sbapt mkdir ${RD}/dists 155255457Sbapt mkdir ${RD}/kernels 156255457Sbapt for i in ${ALL_DISTS} ; do \ 157255457Sbapt mkdir ${RD}/trees/$$i && \ 158255457Sbapt mkdir ${RD}/dists/$$i && \ 159255457Sbapt mtree -deU -f ${MTREEFILES}/BSD.root.dist \ 160255457Sbapt -p ${RD}/trees/$$i > /dev/null && \ 161255457Sbapt mtree -deU -f ${MTREEFILES}/BSD.usr.dist \ 162255457Sbapt -p ${RD}/trees/$$i/usr > /dev/null && \ 163255457Sbapt mtree -deU -f ${MTREEFILES}/BSD.include.dist \ 164255457Sbapt -p ${RD}/trees/$$i/usr/include > /dev/null && \ 165255457Sbapt mtree -deU -f ${MTREEFILES}/BSD.var.dist \ 166255457Sbapt -p ${RD}/trees/$$i/var > /dev/null ; \ 167255457Sbapt done 168255457Sbapt touch release.1 169255457Sbapt 170255457Sbapt# Install the system into the various distributions. 171255457Sbaptrelease.2: 172255457Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 173255457Sbapt cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin 174255457Sbapt cd ${.CURDIR}/.. && make distribute DISTDIR=${RD}/trees 175255457Sbapt.if exists(${.CURDIR}/../eBones) 176255457Sbapt cd ${.CURDIR}/../eBones && ( \ 177255457Sbapt make bootstrap &&\ 178255457Sbapt make obj all help-distribute DISTDIR=${RD}/trees &&\ 179255457Sbapt make kprog \ 180255457Sbapt ) 181255457Sbapt.endif 182255457Sbapt chflags -R noschg ${RD}/trees 183255457Sbapt touch release.2 184255457Sbapt 185255457Sbapt# Make and install the generic kernel(s). 186255457Sbaptrelease.3: 187255457Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 188255457Sbapt.for kernel in ${KERNELS} 189255457Sbapt rm -f ${RD}/kernels/${kernel} 190255457Sbapt rm -rf ${.CURDIR}/../sys/compile/${kernel} 191255457Sbapt cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=${kernel} 192255457Sbapt rm -rf ${.CURDIR}/../sys/compile/${kernel} 193255457Sbapt ln -f ${RD}/kernels/${kernel} ${RD}/trees/bin/kernel.${kernel} 194255457Sbapt.endfor 195255457Sbapt touch release.3 196255457Sbapt 197255457Sbapt# Make and install the three crunched binaries which live on the floppies. 198255457Sbapt# You are not supposed to like this :-) 199255457Sbaptrelease.4: 200255457Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 201255457Sbapt cd ${.CURDIR}/sysinstall && make obj && make depend && make all 202255457Sbapt rm -rf ${RD}/crunch 203255457Sbapt mkdir -p ${RD}/crunch 204255457Sbapt for j in ${WHICH_CRUNCH} ; do \ 205255457Sbapt rm -rf $${j}_crunch && \ 206255457Sbapt mkdir $${j}_crunch && \ 207255457Sbapt ( cd $${j}_crunch && \ 208255457Sbapt crunchgen ${.CURDIR}/$${j}_crunch.conf && \ 209255457Sbapt ${MAKE} -f $${j}_crunch.mk all NOCRYPT=yes \ 210255457Sbapt "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY") && \ 211255457Sbapt mv $${j}_crunch/$${j}_crunch ${RD}/crunch/$${j} && \ 212255457Sbapt true || rm -rf $${j}_crunch ; \ 213255457Sbapt done 214255457Sbapt touch release.4 215255457Sbapt 216255457Sbapt# 217255457Sbapt# --==## Fix up the distributions. ##==-- 218255457Sbapt# 219255457Sbaptrelease.5: 220255457Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 221255457Sbapt # Handle some grief caused by the ammunition braindeadness. 222255457Sbapt for i in sbin/init bin/ed ; do \ 223255457Sbapt ( cd ${.CURDIR}/../$$i; \ 224255457Sbapt make -DNOCRYPT clean all distribute DISTDIR=${RD}/trees ) ; \ 225255457Sbapt done 226255457Sbapt 227255457Sbapt # Move all the manpages out to their own dist 228255457Sbapt if [ -d ${RD}/trees/bin/usr/share/man ] ; then \ 229255457Sbapt rm -rf ${RD}/trees/manpages/usr/share/man &&\ 230255457Sbapt mv ${RD}/trees/bin/usr/share/man \ 231255457Sbapt ${RD}/trees/manpages/usr/share/man ;\ 232255457Sbapt fi 233255457Sbapt # Move all the games out to their own dist 234255457Sbapt if [ -d ${RD}/trees/bin/usr/games ] ; then \ 235255457Sbapt rm -rf ${RD}/trees/games/usr/games &&\ 236255457Sbapt mv ${RD}/trees/bin/usr/games \ 237255457Sbapt ${RD}/trees/games/usr/games ;\ 238255457Sbapt fi 239255457Sbapt if [ -d ${RD}/trees/bin/usr/share/games ] ; then \ 240255457Sbapt rm -rf ${RD}/trees/games/usr/share/games &&\ 241255457Sbapt mv ${RD}/trees/bin/usr/share/games \ 242255457Sbapt ${RD}/trees/games/usr/share/games ;\ 243255457Sbapt fi 244255457Sbapt if [ -d ${RD}/trees/bin/var/games ] ; then \ 245255457Sbapt rm -rf ${RD}/trees/games/var/games &&\ 246255457Sbapt mv ${RD}/trees/bin/var/games \ 247255457Sbapt ${RD}/trees/games/var/games ;\ 248255457Sbapt fi 249255457Sbapt # Move the dict out to their own dist 250255457Sbapt if [ -d ${RD}/trees/bin/usr/share/dict ] ; then \ 251255457Sbapt rm -rf ${RD}/trees/dict/usr/share/dict &&\ 252255457Sbapt mv ${RD}/trees/bin/usr/share/dict \ 253255457Sbapt ${RD}/trees/dict/usr/share/dict ;\ 254255457Sbapt fi 255255457Sbapt for i in airport birthtoken flowers na.phone zipcodes ; do \ 256255457Sbapt if [ -f ${RD}/trees/bin/usr/share/misc/$$i ] ; then \ 257255457Sbapt mv ${RD}/trees/bin/usr/share/misc/$$i \ 258255457Sbapt ${RD}/trees/dict/usr/share/misc ; \ 259255457Sbapt fi ; \ 260255457Sbapt done 261255457Sbapt # Move the info files out to their own dist 262255457Sbapt if [ -d ${RD}/trees/bin/usr/share/info ] ; then \ 263255457Sbapt rm -rf ${RD}/trees/info/usr/share/info &&\ 264255457Sbapt mv ${RD}/trees/bin/usr/share/info \ 265255457Sbapt ${RD}/trees/info/usr/share ;\ 266255457Sbapt fi 267255457Sbapt # Move the profiled libraries out to their own dist 268255457Sbapt for i in ${RD}/trees/bin/usr/lib/*_p.a ; do \ 269255457Sbapt if [ -f $$i ] ; then \ 270255457Sbapt mv $$i \ 271255457Sbapt ${RD}/trees/proflibs/usr/lib ; \ 272255457Sbapt fi ; \ 273255457Sbapt done 274255457Sbapt # Create symlinks for the MD5-based crypt lib, too. The 275255457Sbapt # automatically created links still point to the DES stuff, 276255457Sbapt # which went into its own distribution. 277255457Sbapt for i in ${RD}/trees/bin/usr/lib/libscrypt* ; do \ 278255457Sbapt c=`echo $$i | sed -e 's/libscrypt/libcrypt/'` ; \ 279255457Sbapt rm -f $$c ; \ 280255457Sbapt ln -s `basename $$i` $$c ; \ 281255457Sbapt done 282247841Sbapt 283247841Sbapt # Remove some files we can faster regen after installing. 284247841Sbapt cd ${RD}/trees/bin/usr/share/misc && rm -f termcap.db vgrindefs.db 285247841Sbapt # Remove all the directories we don't need. 286247841Sbapt -cd ${RD}/trees && \ 287247841Sbapt find ${EXTRA_DISTS} -depth -type d -print | xargs rmdir 288247841Sbapt touch release.5 289247841Sbapt 290255457Sbapt# 291255457Sbapt# --==## Make binary dists ##==-- 292247841Sbapt# 293247841Sbaptrelease.6: 294247841Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 295247841Sbapt rm -rf ${RD}/dists 296247841Sbapt mkdir -p ${RD}/dists 297247841Sbapt @for i in ${DISTRIBUTIONS} ; \ 298247841Sbapt do \ 299247841Sbapt if [ -d ${RD}/trees/$${i} ] ; then \ 300247841Sbapt cd ${.CURDIR} && $(MAKE) doTARBALL \ 301247841Sbapt SD=${RD}/trees/$${i} \ 302247841Sbapt TN=$$i TD=$$i ARG="." && \ 303247841Sbapt echo "$${i} distribution is finished."; \ 304247841Sbapt fi ; \ 305247841Sbapt done 306247841Sbapt ( cd ${RD}/dists && \ 307247841Sbapt if [ -f krb/krb.aa ] ; then mv krb/* des && rmdir krb ; fi ) 308247841Sbapt touch release.6 309247841Sbapt 310247841Sbapt 311247841Sbapt# 312247841Sbapt# --==## Make source dists ##==-- 313247841Sbapt# 314247841Sbaptrelease.7: 315247841Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 316247841Sbapt @cd ${.CURDIR} && $(MAKE) doTARBALL SD=/usr/src \ 317247841Sbapt TD=src TN=sbase ARG="[A-Z]*" 318247841Sbapt @for i in `cd /usr/src && echo [a-z]*` ; do \ 319247841Sbapt if [ -d /usr/src/$$i ] ; then \ 320247841Sbapt cd ${.CURDIR} && $(MAKE) doTARBALL \ 321247841Sbapt TN=`echo s$$i | tr -d '.' | sed 's/usr/u/'` \ 322247841Sbapt SD=/usr/src TD=src ARG="$$i" ; \ 323247841Sbapt fi ; \ 324247841Sbapt done 325247841Sbapt.if defined(EXTRA_SRC) 326247841Sbapt @set ${EXTRA_SRC} && \ 327247841Sbapt while [ $$# -ge 2 ] ; do \ 328247841Sbapt if [ -d /usr/src/$$1 ] ; then \ 329247841Sbapt cd ${.CURDIR} && $(MAKE) doTARBALL \ 330247841Sbapt SD=/usr/src TN="s$$2" TD=src ARG="$$1" ; \ 331247841Sbapt fi && shift && shift ; \ 332247841Sbapt done 333247841Sbapt.endif 334247841Sbapt ( cd ${RD}/dists/src && \ 335247841Sbapt if [ -f ssecure.aa ] ; then mv ssecure.* ../des ; fi && \ 336247841Sbapt if [ -f sebones.aa ] ; then mv sebones.* ../des ; fi && \ 337247841Sbapt if [ -f ssecure.inf ] ; then mv ssecure.inf ../des ; fi && \ 338247841Sbapt if [ -f sebones.inf ] ; then mv sebones.inf ../des ; fi ; ) 339247841Sbapt @echo "src distribution is finished." 340247841Sbapt touch release.7 341247841Sbapt 342247841Sbapt# Complete the bootfd 343247841Sbapt# 344247841Sbapt# Now, just to get this picture down once and for all: 345247841Sbapt# 346247841Sbapt# +------------------------------------------------------------------------+ 347247841Sbapt# |boot.flp | 348247841Sbapt# +-----+-----+------------------------------------------------------------+ 349247841Sbapt# |boot1|boot2|floppy filesystem "bootfd" | 350247841Sbapt# +-----+-----+-+--------------------------------------------------------+-+ 351247841Sbapt# |kernel | 352247841Sbapt# +------------+-----------------------------------------+-+ 353247841Sbapt# |mfs filesystem "mfsfd" | 354247841Sbapt# +-----------------------------------------+ 355247841Sbapt# 356247841Sbapt 357247841Sbaptrelease.8: write_mfs_in_kernel 358247841Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 359247841Sbapt rm -rf ${RD}/mfsfd 360255457Sbapt mkdir ${RD}/mfsfd 361255457Sbapt cd ${RD}/mfsfd && \ 362247841Sbapt mkdir -p dev mnt stand/help 363255457Sbapt @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \ 364255457Sbapt DIR=${RD}/mfsfd/stand ZIP=false 365255457Sbapt ( cd ${RD}/trees/bin/dev && \ 366255457Sbapt ls console tty ttyv0 ttyv1 ttyv2 ttyv3 null zero \ 367255457Sbapt *[sw]d* cuaa[01] cuaa[23] fd[01] rfd[01] \ 368247841Sbapt cd0a mcd0a scd0a matcd0a wcd0c rst0 rft0 rwt0 | \ 369247841Sbapt cpio -dump ${RD}/mfsfd/dev ) 370247841Sbapt ( cd ${RD}/mfsfd/dev && rm -f *[sw]d*[bdefgh] ) 371247841Sbapt cd ${RD}/trees/bin && ls ${BOOT1} | cpio -dump ${RD}/mfsfd/stand 372255457Sbapt echo "nameserver 42/tcp name" > ${RD}/mfsfd/stand/etc/services 373255457Sbapt echo "ftp 21/tcp" >> ${RD}/mfsfd/stand/etc/services 374255457Sbapt echo "domain 53/tcp nameserver" >> ${RD}/mfsfd/stand/etc/services 375253755Sbapt echo "domain 53/udp nameserver" >> ${RD}/mfsfd/stand/etc/services 376253755Sbapt gzip -c ${.CURDIR}/../COPYRIGHT > ${RD}/mfsfd/stand/help/COPYRIGHT.hlp.gz 377253755Sbapt # make the small bootfd 378255457Sbapt @echo "Making the small 4MB boot floppy." 379255457Sbapt sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${BOOTMFSSIZE} ${RD}/mfsfd \ 380255457Sbapt ${MFSINODE} minimum 381253755Sbapt mv fs-image fs-image.4 382253755Sbapt mv fs-image.size fs-image.4.size 383255457Sbapt # add more stuff for the complete bootfd 384255457Sbapt @echo "Making the regular boot floppy." 385255457Sbapt tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \ 386255457Sbapt tar xvf - -C ${RD}/mfsfd/stand 387255457Sbapt @echo "Compressing doc files..." 388255457Sbapt @gzip -9 ${RD}/mfsfd/stand/help/*.hlp 389255457Sbapt sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${BOOTMFSSIZE} ${RD}/mfsfd \ 390255457Sbapt ${MFSINODE} minimum 391255457Sbapt mv fs-image fs-image.std 392255457Sbapt mv fs-image.size fs-image.std.size 393255457Sbapt cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=4 394255457Sbapt cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=std 395255457Sbapt mv ${RD}/floppies/bootstd.flp ${RD}/floppies/boot.flp 396255457Sbapt @echo "Regular boot floppy made." 397255457Sbapt touch release.8 398255457Sbapt 399255457Sbapt# 400255457Sbapt# --==## Create a fixit floppy ##==-- 401255457Sbapt# 402255457Sbaptrelease.9: 403255457Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 404255457Sbapt rm -rf ${RD}/fixitfd 405255457Sbapt mkdir ${RD}/fixitfd 406255457Sbapt cd ${RD}/fixitfd && \ 407255457Sbapt mkdir dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp 408255457Sbapt @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=fixit \ 409255457Sbapt DIR=${RD}/fixitfd/stand ZIP=true 410255457Sbapt ( cd ${RD}/fixitfd/dev && \ 411255457Sbapt cp ${RD}/trees/bin/dev/MAKEDEV . && \ 412255457Sbapt sh MAKEDEV all ) 413255457Sbapt cp ${RD}/trees/bin/etc/spwd.db ${RD}/fixitfd/etc 414255457Sbapt cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile 415255457Sbapt sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/fixitfd \ 416255457Sbapt 10000 ${FDLABEL} 417255457Sbapt mv fs-image ${RD}/floppies/fixit.flp 418255457Sbapt touch release.9 419255457Sbapt 420255457Sbapt# 421255457Sbapt# --==## Setup a suitable ftp-area ##==-- 422255457Sbapt# 423255457Sbaptftp.1: 424255457Sbapt mkdir -p ${FD} 425255457Sbapt cd ${RD} && find floppies -print | cpio -dumpl ${FD} 426253755Sbapt cd ${RD}/dists && find . -print | cpio -dumpl ${FD} 427253755Sbapt cp ${.CURDIR}/sysinstall/help/readme.hlp ${FD}/README.TXT 428253755Sbapt cp ${.CURDIR}/sysinstall/help/hardware.hlp ${FD}/HARDWARE.TXT 429253755Sbapt cp ${.CURDIR}/sysinstall/help/install.hlp ${FD}/INSTALL.TXT 430253755Sbapt cp ${.CURDIR}/sysinstall/help/relnotes.hlp ${FD}/RELNOTES.TXT 431253755Sbapt 432253755Sbapt# 433253755Sbapt# --==## Setup a suitable cdrom-area ##==-- 434255457Sbapt# 435253755Sbaptcdrom.1: 436253755Sbapt mkdir -p ${CD}/filesys 437247841Sbapt cd ${RD} && find floppies -print | cpio -dumpl ${CD} 438255457Sbapt cd ${RD}/dists && find . -print | cpio -dumpl ${CD} 439255457Sbapt ln -f ${RD}/kernels/MFSKERNEL.std ${CD}/kernel 440247841Sbapt ln -f ${RD}/trees/bin/usr/mdec/fbsdboot.exe ${CD} 441247841Sbapt for i in ${DISTRIBUTIONS} ; \ 442247841Sbapt do \ 443247841Sbapt if [ -d ${RD}/trees/$${i} ] ; then \ 444247841Sbapt ( cd ${RD}/trees/$${i} && \ 445247841Sbapt find . -depth -print | cpio -dumpl ${CD}/filesys ) ; \ 446247841Sbapt fi \ 447247841Sbapt done 448247841Sbapt echo "CD_VERSION = ${BUILDNAME}" > ${CD}/cdrom.inf 449247841Sbapt cp ${.CURDIR}/sysinstall/help/readme.hlp ${CD}/README.TXT 450247841Sbapt cp ${.CURDIR}/sysinstall/help/hardware.hlp ${CD}/HARDWARE.TXT 451247841Sbapt cp ${.CURDIR}/sysinstall/help/install.hlp ${CD}/INSTALL.TXT 452247841Sbapt cp ${.CURDIR}/sysinstall/help/relnotes.hlp ${CD}/RELNOTES.TXT 453247841Sbapt 454247841Sbapt# Various "subroutine" and other supporting targets. 455247841Sbapt 456247841SbaptdoTARBALL: 457247841Sbapt.if !defined(SD) 458247841Sbapt @echo "SD undefined in doTARBALL" && exit 1 459247841Sbapt.endif 460247841Sbapt.if !defined(TD) 461247841Sbapt @echo "TB undefined in doTARBALL" && exit 1 462247841Sbapt.endif 463247841Sbapt.if !defined(ARG) 464255457Sbapt @echo "ARG undefined in doTARBALL" && exit 1 465255457Sbapt.endif 466255457Sbapt rm -rf ${RD}/dists/${TD}/${TN}* 467255457Sbapt mkdir -p ${RD}/dists/${TD} 468255457Sbapt ( cd ${SD} && \ 469247841Sbapt tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \ 470255457Sbapt echo rolling ${TD}/$$tn tarball &&\ 471255457Sbapt tar --exclude CVS --exclude obj -cf - ${ARG} | \ 472255457Sbapt ${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \ 473247841Sbapt mkdir -p ${TD} && sh ${.CURDIR}/info.sh \ 474247841Sbapt ${RD}/dists/${TD}/$$tn > ${RD}/dists/${TD}/$$tn.inf && \ 475247841Sbapt if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \ 476247841Sbapt cp -p ${.CURDIR}/scripts/$${TD}-install.sh ${RD}/dists/${TD}/install.sh; \ 477247841Sbapt fi && \ 478247841Sbapt if [ "${SD}" != "/usr/src" ]; then \ 479247841Sbapt mtree -c -i -p ${SD}/${ARG} \ 480247841Sbapt -k gname,md5digest,mode,nlink,uname,size,link,type \ 481247841Sbapt > ${RD}/dists/${TD}/$$tn.mtree ; else true; fi ) 482247841Sbapt 483247841SbaptdoRELEASE: release.1 release.2 release.3 release.4 release.5 release.6 \ 484247841Sbapt release.7 release.8 release.9 485247841Sbapt cd ${.CURDIR} && ${MAKE} cdrom.1 ftp.1 486247841Sbapt @echo "Release done" 487247841Sbapt 488247841Sbaptfloppies: 489247841Sbapt cd ${.CURDIR} && ${MAKE} boot.flp 490247841Sbapt cd ${.CURDIR} && ${MAKE} fixit.flp 491247841Sbapt cd ${RD} && find floppies -print | cpio -dumpl ${FD} 492247841Sbapt 493247841Sbaptboot.flp: 494247841Sbapt rm -f release.4 release.8 495247841Sbapt cd ${.CURDIR} && ${MAKE} release.4 release.8 WHICH_CRUNCH=boot 496247841Sbapt 497247841Sbaptfixit.flp: 498247841Sbapt rm -f release.4 release.9 499247841Sbapt cd ${.CURDIR} && ${MAKE} release.4 release.9 WHICH_CRUNCH=fixit 500247841Sbapt 501247841Sbaptwrite_mfs_in_kernel: ${.CURDIR}/write_mfs_in_kernel.c 502247841Sbapt ${CC} ${CFLAGS} -o write_mfs_in_kernel ${.CURDIR}/write_mfs_in_kernel.c 503247841Sbapt 504247841SbaptckRELEASEDIR: 505247841Sbapt.if !defined(RELEASEDIR) 506247841Sbapt @echo "To make a release RELEASEDIR must be defined" && false 507247841Sbapt.endif 508259613Sbdrewery 509259613SbdreweryinstallCRUNCH: 510259613Sbdrewery.if !defined(CRUNCH) 511259613Sbdrewery @echo "CRUNCH undefined in installCRUNCH" && exit 1 512259613Sbdrewery.endif 513259613Sbdrewery.if !defined(DIR) 514259613Sbdrewery @echo "DIR undefined in installCRUNCH" && exit 1 515259613Sbdrewery.endif 516259613Sbdrewery.if !defined(ZIP) 517259613Sbdrewery @echo "ZIP undefined in installCRUNCH" && exit 1 518259613Sbdrewery.endif 519247841Sbapt if ${ZIP} ; then \ 520263020Sbapt gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \ 521247841Sbapt else \ 522247841Sbapt ln -f ${RD}/crunch/${CRUNCH} ${DIR}/${CRUNCH}_crunch ; \ 523263020Sbapt fi 524263020Sbapt chmod 555 ${DIR}/${CRUNCH}_crunch 525259613Sbdrewery for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \ 526259613Sbdrewery ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \ 527263020Sbapt done 528247841Sbapt 529247841Sbapt# 530247841Sbapt# --==## Compile a kernel by name ${KERNEL} ##==-- 531259613Sbdrewery# 532259613Sbdrewery# We don't erase the sys/compile/${KERNEL} directory, since somebody 533259613Sbdrewery# may want to reuse it (release.8 presently) 534263020Sbapt# 535263020SbaptdoKERNEL: 536263020Sbapt @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 537247841Sbapt rm -f ${RD}/kernels/${KERNEL} 538247841Sbapt cd ${.CURDIR}/../sys/i386/conf && config -n ${KERNEL} 539247841Sbapt cd ${.CURDIR}/../sys/compile/${KERNEL} && \ 540257353Sbdrewery make depend && \ 541263020Sbapt make kernel && \ 542263020Sbapt cp kernel ${RD}/kernels/${KERNEL} 543257353Sbdrewery 544257353Sbdrewery# 545263020Sbapt# --==## Put a filesystem into a BOOTMFS kernel ##==-- 546257353Sbdrewery# 547263020SbaptdoMFSKERN: 548257353Sbdrewery @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 549263020Sbapt rm -f ${RD}/kernels/BOOTMFS.${FSIMAGE} 550257353Sbdrewery rm -f /sys/compile/BOOTMFS/mfs_vfsops.o 551263020Sbapt cd ${.CURDIR}/../sys/i386/conf && \ 552257353Sbdrewery sed -e '/SYSV/d' \ 553263020Sbapt -e '/pty/d' \ 554263020Sbapt -e '/PROCFS/d' \ 555263020Sbapt -e '/KTRACE/d' \ 556259613Sbdrewery -e 's/GENERIC/BOOTMFS/g' \ 557263020Sbapt -e '/maxusers/s/10/4/' < GENERIC > BOOTMFS && \ 558257353Sbdrewery echo "options MFS" >> BOOTMFS && \ 559257353Sbdrewery echo "options NFS_NOSERVER" >> BOOTMFS && \ 560257353Sbdrewery echo 'options "MAXCONS=4"' >> BOOTMFS 561257353Sbdrewery echo "options \"MFS_ROOT=`cat fs-image.${FSIMAGE}.size`\"" >> \ 562247841Sbapt ${.CURDIR}/../sys/i386/conf/BOOTMFS 563247841Sbapt cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=BOOTMFS 564247841Sbapt rm -rf ${RD}/boot.${FSIMAGE} 565247841Sbapt mkdir ${RD}/boot.${FSIMAGE} 566247841Sbapt mv ${RD}/kernels/BOOTMFS ${RD}/kernels/BOOTMFS.${FSIMAGE} 567257353Sbdrewery cp ${RD}/kernels/BOOTMFS.${FSIMAGE} ${RD}/boot.${FSIMAGE}/kernel 568263020Sbapt ./write_mfs_in_kernel ${RD}/boot.${FSIMAGE}/kernel \ 569247841Sbapt fs-image.${FSIMAGE} 570247841Sbapt kzip -v ${RD}/boot.${FSIMAGE}/kernel 571247841Sbapt mv ${RD}/boot.${FSIMAGE}/kernel ${RD}/kernels/MFSKERNEL.${FSIMAGE} 572263020Sbapt mv ${RD}/boot.${FSIMAGE}/kernel.kz ${RD}/boot.${FSIMAGE}/kernel 573247841Sbapt ls -l ${RD}/boot.${FSIMAGE}/kernel 574247841Sbapt rm -f ${RD}/floppies/boot${FSIMAGE}.flp 575259613Sbdrewery sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/boot.${FSIMAGE} \ 576259613Sbdrewery 100000 ${FDLABEL} 577259613Sbdrewery mv fs-image ${RD}/floppies/boot${FSIMAGE}.flp 578263020Sbapt 579263020Sbapt.include <bsd.prog.mk> 580259613Sbdrewery