Makefile revision 8691
1232809Sjmallett# $Id: Makefile,v 1.166 1995/05/21 18:39:42 jkh Exp $ 2232809Sjmallett# 3232809Sjmallett# How to roll a release: 4232809Sjmallett# 5232809Sjmallett# make release CHROOTDIR=<lots of disk> [ RELEASETAG=something ] 6232809Sjmallett# 7232809Sjmallett# As far as I know, this will roll everything nicely into the "stage" 8232809Sjmallett# directory. I still need to write the two rules to move that into 9232809Sjmallett# the "cdrom" and "ftp" directories. 10232809Sjmallett# I also need to "make ports" and install those, but I'm not going to do 11232809Sjmallett# that on a 14.4 line just yet... 12232809Sjmallett 13232809Sjmallett# SET THIS !!! 14232809Sjmallett#BUILDNAME=SOME_RANDOM_BUILD 15232809Sjmallett 16232809Sjmallett# If this is a RELEASE, then set 17232809Sjmallett#RELEASETAG=something 18232809Sjmallett 19232809Sjmallett# Things which without too much trouble can be considered variables 20232809Sjmallett 21232809SjmallettEXPORT_DISTS= games manpages proflibs dict info 22232809SjmallettEXTRA_DISTS= des ${EXPORT_DISTS} 23232809SjmallettALL_DISTS= bin ${EXTRA_DISTS} 24232809Sjmallett 25232809SjmallettCPIO1= etc/services etc/protocols etc/sysconfig 26232809Sjmallett 27232809SjmallettFAQS= README MIRROR.SITES 28232809Sjmallett 29232809Sjmallett# define this to use a vn device instead of the floppy drive 30232809SjmallettVNDEVICE= vn0 31232809Sjmallett 32232809Sjmallett# which floppy to use, if VNDEVICE isn't defined. 33232809SjmallettFDDEVICE= fd0 34232809Sjmallett 35232809Sjmallett# define FDFORMAT to format physical floppies 36232809SjmallettFDFORMAT= yes 37232809Sjmallett 38232809Sjmallett# mountpoint for filesystems. 39232809SjmallettMNT= /mnt 40232809Sjmallett 41232809Sjmallett# other floppy parameters. 42232809SjmallettFDCYLS= 80 43232809SjmallettFDCYLSIZE= 15k 44232809SjmallettFDLABEL= fd1200 45232809Sjmallett 46232809SjmallettNEWFSARGS= -c 80 -b 4096 -f 512 -i 4300 -m 0 -t 0 -u 0 \ 47232809Sjmallett -o space -T ${FDLABEL} 48232809Sjmallett 49232809SjmallettZIPNSPLIT= gzip --no-name -9 -c | split -b 240640 - 50232809Sjmallett 51232809Sjmallett 52232809Sjmallett# Things which will get you into trouble if you change them 53232809SjmallettDISTRIBUTIONS= bin ${EXTRA_DISTS} 54232809SjmallettMTREEFILES= ${.CURDIR}/../etc/mtree 55232809SjmallettRD= ${RELEASEDIR}/stage 56232809SjmallettFD= ${RELEASEDIR}/ftp 57232809SjmallettCD= ${RELEASEDIR}/cdrom 58232809Sjmallett 59232809Sjmallett.if !defined(WHICH_CRUNCH) 60232809SjmallettWHICH_CRUNCH= boot cpio fixit 61232809Sjmallett.endif 62232809Sjmallett 63232809Sjmallettrelease: 64232809Sjmallett.if !defined(CHROOTDIR) || !defined(BUILDNAME) 65232809Sjmallett @echo "To make a release you must set CHROOTDIR and BUILDNAME" && false 66232809Sjmallett.endif 67232809Sjmallett.if exists(${CHROOTDIR}) 68232809Sjmallett chflags -R noschg ${CHROOTDIR}/. 69232809Sjmallett rm -rf ${CHROOTDIR}/* 70232809Sjmallett.else 71232809Sjmallett mkdir ${CHROOTDIR} 72232809Sjmallett.endif 73232809Sjmallett cd ${.CURDIR}/../etc ; ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR} 74232809Sjmallett cd ${.CURDIR}/../etc ; ${MAKE} distribution DESTDIR=${CHROOTDIR} 75232809Sjmallett cd ${.CURDIR}/.. ; ${MAKE} install DESTDIR=${CHROOTDIR} 76232809Sjmallett echo "#!/bin/sh" > ${CHROOTDIR}/mk 77232809Sjmallett echo "set -ex" >> ${CHROOTDIR}/mk 78232809Sjmallett echo "cd /usr/src" >> ${CHROOTDIR}/mk 79232809Sjmallett echo "make world" >> ${CHROOTDIR}/mk 80232809Sjmallett echo "cd /usr/src/release/libdisk" >> ${CHROOTDIR}/mk 81232809Sjmallett echo "make obj" >> ${CHROOTDIR}/mk 82232809Sjmallett echo "make all" >> ${CHROOTDIR}/mk 83232809Sjmallett echo "cd /usr/src/release/sysinstall" >> ${CHROOTDIR}/mk 84232809Sjmallett echo "make obj" >> ${CHROOTDIR}/mk 85232809Sjmallett echo "make all" >> ${CHROOTDIR}/mk 86232809Sjmallett echo "cd /usr/src/release" >> ${CHROOTDIR}/mk 87232809Sjmallett echo "make obj" >> ${CHROOTDIR}/mk 88232809Sjmallett echo "make doRELEASE" >> ${CHROOTDIR}/mk 89232809Sjmallett echo "RELEASEDIR=/R" >> ${CHROOTDIR}/etc/make.conf 90232809Sjmallett.if !defined(RELEASETAG) 91232809Sjmallett cd ${CHROOTDIR}/usr ; cvs co -P src 92232809Sjmallett.else 93232809Sjmallett cd ${CHROOTDIR}/usr ; cvs export -r ${RELEASETAG} src 94232809Sjmallett.endif 95232809Sjmallett ( cd ${CHROOTDIR}/usr/src/sys/conf && \ 96232809Sjmallett mv newvers.sh foo && \ 97232809Sjmallett sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh ) 98232809Sjmallett # To be used in development... 99232809Sjmallett #find ${.CURDIR} -print | cpio -dumpv ${CHROOTDIR} 100232809Sjmallett chmod 755 ${CHROOTDIR}/mk 101232809Sjmallett chroot ${CHROOTDIR} /mk 102232809Sjmallett 103232809Sjmallett# Same as above, but assume that a build just fell over, has been corrected 104232809Sjmallett# and now we just want to pick up where we left off. 105232809Sjmallettrerelease: 106232809Sjmallett.if !defined(CHROOTDIR) || !defined(BUILDNAME) 107232809Sjmallett @echo "To make a release you must set CHROOTDIR and BUILDNAME" && false 108232809Sjmallett.endif 109232809Sjmallett @if [ ! -d ${CHROOTDIR} ]; then echo "No ${CHROOTDIR} directory to re-release in!"; exit 1; fi 110232809Sjmallett cd ${.CURDIR}/../etc ; ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR} 111232809Sjmallett cd ${.CURDIR}/../etc ; ${MAKE} distribution DESTDIR=${CHROOTDIR} 112232809Sjmallett cd ${.CURDIR}/.. ; ${MAKE} -k install DESTDIR=${CHROOTDIR} 113232809Sjmallett echo "#!/bin/sh" > ${CHROOTDIR}/mk 114232809Sjmallett echo "set -ex" >> ${CHROOTDIR}/mk 115232809Sjmallett echo "cd /usr/src" >> ${CHROOTDIR}/mk 116232809Sjmallett echo "make all install" >> ${CHROOTDIR}/mk 117232809Sjmallett echo "cd /usr/src/release/libdisk" >> ${CHROOTDIR}/mk 118232809Sjmallett echo "make obj" >> ${CHROOTDIR}/mk 119232809Sjmallett echo "make all" >> ${CHROOTDIR}/mk 120232809Sjmallett echo "cd /usr/src/release/sysinstall" >> ${CHROOTDIR}/mk 121232809Sjmallett echo "make obj" >> ${CHROOTDIR}/mk 122232809Sjmallett echo "make all" >> ${CHROOTDIR}/mk 123232809Sjmallett echo "cd /usr/src/release" >> ${CHROOTDIR}/mk 124232809Sjmallett echo "make obj" >> ${CHROOTDIR}/mk 125232809Sjmallett echo "make doRELEASE" >> ${CHROOTDIR}/mk 126232809Sjmallett echo "RELEASEDIR=/R" >> ${CHROOTDIR}/etc/make.conf 127232809Sjmallett.if !defined(RELEASENOUPDATE) 128232809Sjmallett.if !defined(RELEASETAG) 129232809Sjmallett cd ${CHROOTDIR}/usr ; cvs update -P -d -q src 130232809Sjmallett.else 131232809Sjmallett cd ${CHROOTDIR}/usr ; cvs export -r ${RELEASETAG} -P -d -q src 132232809Sjmallett.endif 133232809Sjmallett.endif 134232809Sjmallett ( cd ${CHROOTDIR}/usr/src/sys/conf && \ 135232809Sjmallett mv newvers.sh foo && \ 136232809Sjmallett sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh ) 137232809Sjmallett # To be used in development... 138232809Sjmallett #find ${.CURDIR} -print | cpio -dumpv ${CHROOTDIR} 139232809Sjmallett chmod 755 ${CHROOTDIR}/mk 140232809Sjmallett chroot ${CHROOTDIR} /mk 141232809Sjmallett 142232809Sjmallettclean: 143232809Sjmallett rm -rf cpio_crunch boot_crunch release.[0-9] release.1[0] 144232809Sjmallett 145232809Sjmallett# Clean out ${RELEASEDIR} and make the directory structure. 146232809Sjmallettrelease.1: 147232809Sjmallett @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 148232809Sjmallett -mkdir ${RELEASEDIR} 149232809Sjmallett chflags -R noschg ${RELEASEDIR}/. 150232809Sjmallett rm -rf ${RELEASEDIR}/* 151232809Sjmallett mkdir ${RD} 152232809Sjmallett mkdir ${RD}/floppies 153232809Sjmallett mkdir ${RD}/trees 154232809Sjmallett mkdir ${RD}/dists 155232809Sjmallett for i in ${ALL_DISTS} ; do \ 156232809Sjmallett mkdir ${RD}/trees/$$i ; \ 157232809Sjmallett mkdir ${RD}/dists/$$i ; \ 158232809Sjmallett mtree -deU -f ${MTREEFILES}/BSD.root.dist \ 159232809Sjmallett -p ${RD}/trees/$$i > /dev/null ; \ 160232809Sjmallett mtree -deU -f ${MTREEFILES}/BSD.usr.dist \ 161232809Sjmallett -p ${RD}/trees/$$i/usr > /dev/null ; \ 162232809Sjmallett mtree -deU -f ${MTREEFILES}/BSD.include.dist \ 163232809Sjmallett -p ${RD}/trees/$$i/usr/include > /dev/null ; \ 164232809Sjmallett mtree -deU -f ${MTREEFILES}/BSD.var.dist \ 165232809Sjmallett -p ${RD}/trees/$$i/var > /dev/null ; \ 166232809Sjmallett done 167232809Sjmallett touch release.1 168232809Sjmallett 169232809Sjmallett# Install the system into the various distributions. 170232809Sjmallettrelease.2: 171232809Sjmallett @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 172232809Sjmallett cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin 173232809Sjmallett cd ${.CURDIR}/.. ; make distribute DISTDIR=${RD}/trees 174232809Sjmallett chflags -R noschg ${RD}/trees 175232809Sjmallett uudecode ${.CURDIR}/compat20/libgcc.so.261.0.uu 176232809Sjmallett install -m 444 -o bin -g bin libgcc.so.261.0 ${RD}/trees/bin/usr/lib 177232809Sjmallett touch release.2 178232809Sjmallett 179232809Sjmallett# Make and install a couple of kernels we need. 180232809Sjmallettrelease.3: 181232809Sjmallett rm -rf ${RD}/kernels 182232809Sjmallett mkdir -p ${RD}/kernels 183232809Sjmallett @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR 184232809Sjmallett cd ${.CURDIR}/../sys/i386/conf && \ 185232809Sjmallett sed 's/GENERIC/BOOTCDROM/g' GENERIC > BOOTCDROM 186232809Sjmallett for i in GENERIC BOOTCDROM ; do \ 187232809Sjmallett cd ${.CURDIR}/../sys/i386/conf && \ 188232809Sjmallett config $$i && \ 189232809Sjmallett cd ${.CURDIR}/../sys/compile/$$i && \ 190232809Sjmallett make depend && \ 191232809Sjmallett make kernel && \ 192232809Sjmallett cp kernel ${RD}/kernels/$$i ; \ 193232809Sjmallett rm -rf ${.CURDIR}/../sys/compile/$$i ; \ 194232809Sjmallett done 195232809Sjmallett rm -f ${.CURDIR}/../sys/i386/conf/BOOTCDROM 196232809Sjmallett cd ${RD}/kernels && kzip GENERIC 197232809Sjmallett touch release.3 198232809Sjmallett 199232809Sjmallett# Make and install the three crunched binaries which live on the floppies. 200232809Sjmallett# You are not supposed to like this :-) 201232809Sjmallettrelease.4: 202232809Sjmallett @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 203232809Sjmallett rm -rf ${RD}/crunch 204232809Sjmallett mkdir -p ${RD}/crunch 205232809Sjmallett for j in ${WHICH_CRUNCH} ; do \ 206232809Sjmallett rm -rf $${j}_crunch && \ 207232809Sjmallett mkdir $${j}_crunch && \ 208232809Sjmallett ( cd $${j}_crunch && \ 209232809Sjmallett crunchgen ${.CURDIR}/$${j}_crunch.conf && \ 210232809Sjmallett ${MAKE} -f $${j}_crunch.mk objs exe NOCRYPT=yes \ 211232809Sjmallett "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY") && \ 212232809Sjmallett mv $${j}_crunch/$${j}_crunch ${RD}/crunch/$${j} && \ 213232809Sjmallett rm -rf $${j}_crunch ; \ 214232809Sjmallett done 215232809Sjmallett touch release.4 216232809Sjmallett 217232809Sjmallett# Fix up the distributions. 218232809Sjmallettrelease.5: 219232809Sjmallett @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 220232809Sjmallett ln -f ${RD}/kernels/GENERIC ${RD}/trees/bin/kernel.GENERIC 221232809Sjmallett if [ -d ${RD}/trees/bin/usr/share/man ] ; then \ 222232809Sjmallett rm -rf ${RD}/trees/manpages/usr/share/man ;\ 223232809Sjmallett mv ${RD}/trees/bin/usr/share/man \ 224232809Sjmallett ${RD}/trees/manpages/usr/share/man ;\ 225232809Sjmallett fi 226232809Sjmallett if [ -d ${RD}/trees/bin/usr/games ] ; then \ 227232809Sjmallett rm -rf ${RD}/trees/games/usr/games ;\ 228232809Sjmallett mv ${RD}/trees/bin/usr/games \ 229232809Sjmallett ${RD}/trees/games/usr/games ;\ 230232809Sjmallett fi 231232809Sjmallett if [ -d ${RD}/trees/bin/usr/share/games ] ; then \ 232232809Sjmallett rm -rf ${RD}/trees/games/usr/share/games ;\ 233232809Sjmallett mv ${RD}/trees/bin/usr/share/games \ 234232809Sjmallett ${RD}/trees/games/usr/share/games ;\ 235232809Sjmallett fi 236232809Sjmallett if [ -d ${RD}/trees/bin/var/games ] ; then \ 237232809Sjmallett rm -rf ${RD}/trees/games/var/games ;\ 238232809Sjmallett mv ${RD}/trees/bin/var/games \ 239232809Sjmallett ${RD}/trees/games/var/games ;\ 240232809Sjmallett fi 241232809Sjmallett if [ -d ${RD}/trees/bin/usr/share/dict ] ; then \ 242232809Sjmallett rm -rf ${RD}/trees/dict/usr/share/dict ;\ 243232809Sjmallett mv ${RD}/trees/bin/usr/share/dict \ 244232809Sjmallett ${RD}/trees/dict/usr/share/dict ;\ 245232809Sjmallett fi 246232809Sjmallett for i in airport birthtoken flowers na.phone zipcodes ; do \ 247232809Sjmallett if [ -f ${RD}/trees/bin/usr/share/misc/$$i ] ; then \ 248232809Sjmallett mv ${RD}/trees/bin/usr/share/misc/$$i \ 249232809Sjmallett ${RD}/trees/dict/usr/share/misc ; \ 250232809Sjmallett fi ; \ 251232809Sjmallett done 252232809Sjmallett -mv ${RD}/trees/bin/usr/share/info/* \ 253232809Sjmallett ${RD}/trees/info/usr/share/info 254232809Sjmallett for i in ${RD}/trees/bin/usr/lib/*_p.a ; do \ 255232809Sjmallett if [ -f $$i ] ; then \ 256232809Sjmallett mv $$i \ 257232809Sjmallett ${RD}/trees/proflibs/usr/lib ; \ 258232809Sjmallett fi ; \ 259232809Sjmallett done 260232809Sjmallett cd ${RD}/trees/bin/usr/share/misc && rm -f termcap.db vgrindefs.db 261232809Sjmallett -cd ${RD}/trees && \ 262232809Sjmallett find ${EXTRA_DISTS} -depth -type d -print | xargs rmdir 263232809Sjmallett touch release.5 264232809Sjmallett 265232809Sjmallett# Complete the bootfd 266232809Sjmallettrelease.6: 267232809Sjmallett @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 268232809Sjmallett rm -rf ${RD}/bootfd 269232809Sjmallett mkdir ${RD}/bootfd 270232809Sjmallett cd ${RD}/bootfd && \ 271232809Sjmallett mkdir -p dev mnt stand/help 272232809Sjmallett ln -f ${RD}/kernels/GENERIC.kz ${RD}/bootfd/kernel 273232809Sjmallett @cd ${.CURDIR} ; $(MAKE) installCRUNCH CRUNCH=boot \ 274232809Sjmallett DIR=${RD}/bootfd/stand ZIP=true 275232809Sjmallett ( cd ${RD}/trees/bin/dev ; \ 276232809Sjmallett ls console tty ttyv1 null zero \ 277232809Sjmallett *[sw]d* cuaa[01] fd[01] rfd[01] \ 278232809Sjmallett cd0a mcd0a scd0a matcd0a rst0 rst1 ft0 wt0 | \ 279232809Sjmallett cpio -dump ${RD}/bootfd/dev ) 280232809Sjmallett tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \ 281232809Sjmallett tar xvf - -C ${RD}/bootfd/stand 282232809Sjmallett install -c ${.CURDIR}/../COPYRIGHT ${RD}/bootfd/stand/help/en_US.ISO8859-1/COPYRIGHT 283232809Sjmallett cd ${RD}/trees/bin/usr/share/FAQ/Text ; \ 284232809Sjmallett install -c RELNOTES.FreeBSD ${RD}/bootfd/stand/help/en_US.ISO8859-1/RELNOTES; \ 285232809Sjmallett install -c README ${RD}/bootfd/stand/help/en_US.ISO8859-1/README 286232809Sjmallett touch ${RD}/bootfd/this_is_boot_flp 287232809Sjmallett cd ${.CURDIR} ; ${MAKE} doFLOPPY FLOPPY=boot 288232809Sjmallett touch release.6 289232809Sjmallett 290232809Sjmallett# Complete the cpiofd directory 291232809Sjmallettrelease.7: 292232809Sjmallett @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 293232809Sjmallett rm -rf ${RD}/cpiofd 294232809Sjmallett mkdir ${RD}/cpiofd 295232809Sjmallett cd ${RD}/cpiofd && \ 296232809Sjmallett mkdir stand stand/scripts 297232809Sjmallett ln -f ${RD}/kernels/GENERIC ${RD}/cpiofd/kernel 298232809Sjmallett @cd ${.CURDIR} ; $(MAKE) installCRUNCH CRUNCH=cpio \ 299232809Sjmallett DIR=${RD}/cpiofd/stand ZIP=false 300232809Sjmallett cd ${RD}/trees/bin ; ls ${CPIO1} | cpio -dump ${RD}/cpiofd/stand 301232809Sjmallett tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall info | tar xvf - -C ${RD}/cpiofd/stand 302232809Sjmallett ( JUST_TELL_ME=please ; \ 303232809Sjmallett ( cd ${RD}/cpiofd ; \ 304232809Sjmallett ( rm -f OK ; find . -print ; touch OK ; echo OK ) | \ 305232809Sjmallett cpio -H newc -oa | gzip -9 -c | dd conv=osync ) \ 306232809Sjmallett > ${RD}/floppies/cpio.flp 307 touch release.7 308 309# Make binary dists, notice that DES dist isn't finished yet. 310release.8: 311 @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 312 rm -rf ${RD}/dists 313 mkdir -p ${RD}/dists 314 @for i in ${DISTRIBUTIONS} ; \ 315 do \ 316 if [ -d ${RD}/trees/$${i} ] ; then \ 317 cd ${.CURDIR} ; \ 318 $(MAKE) doTARBALL SD=${RD}/trees/$${i} \ 319 TN=$$i TD=$$i ARG="." ; \ 320 ( cd ${RD}/dists/$${i}; \ 321 sh -e ${.CURDIR}/scripts/mkchecksums.sh ) ; \ 322 cp ${.CURDIR}/scripts/extract_$${i}.sh \ 323 ${RD}/dists/$${i}/extract.sh;\ 324 echo "$${i} distribution is finished."; \ 325 fi ; \ 326 done 327 touch release.8 328 329 330# Make source dists, and finish of DES too 331release.9: 332 @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 333 @cd ${.CURDIR} ; $(MAKE) doTARBALL SD=/usr/src \ 334 TD=src TN=sbase ARG="[A-Z]*" 335 @for i in `cd /usr/src ; echo [a-z]*` ; do \ 336 if [ -d /usr/src/$$i -a "$$i" != "CVS" ] ; then \ 337 cd ${.CURDIR} ; \ 338 $(MAKE) doTARBALL SD=/usr/src \ 339 TN=`echo s$$i | tr -d '.' | sed 's/usr/u/'` \ 340 TD=src ARG="$$i" ; \ 341 fi ; \ 342 done 343 ( cd ${RD}/dists/src && \ 344 if [ -f sdes.aa ] ; then mv sdes.* ../des ; fi && \ 345 if [ -f sebones.aa ] ; then mv sebones.* ../des ; fi && \ 346 sh -e ${.CURDIR}/scripts/mkchecksums.sh ) 347 cp ${.CURDIR}/scripts/extract_src.sh ${RD}/dists/src/extract.sh 348 if [ -d ${RD}/dists/des ] ; then \ 349 ( cd ${RD}/dists/des && sh -e ${.CURDIR}/scripts/mkchecksums.sh );\ 350 fi 351 @echo "src distribution is finished." 352 touch release.9 353 354# Complete the fixitfd 355release.10: 356 @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR 357 rm -rf ${RD}/fixitfd 358 mkdir ${RD}/fixitfd 359 cd ${RD}/fixitfd && \ 360 mkdir stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp 361 ln -f ${RD}/kernels/GENERIC.kz ${RD}/fixitfd/kernel 362 @cd ${.CURDIR} ; $(MAKE) installCRUNCH CRUNCH=fixit \ 363 DIR=${RD}/fixitfd/stand ZIP=true 364 ( cd ${RD}/trees/bin/dev && \ 365 sh MAKEDEV wd0s5 wd0s6 wd0s7 wd0s8 && \ 366 ls console tty ttyv1 null zero \ 367 *[sw]d* fd[01] rfd[01] | \ 368 cpio -dump ${RD}/fixitfd/dev ) 369 ln -f ${RD}/fixitfd/stand/init ${RD}/fixitfd/sbin 370 ln -f ${RD}/fixitfd/stand/sh ${RD}/fixitfd/bin 371 cp ${RD}/trees/bin/usr/mdec/fdboot ${RD}/fixitfd/etc/boot1 372 cp ${RD}/trees/bin/usr/mdec/bootfd ${RD}/fixitfd/etc/boot2 373 cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile 374 echo 'echo /etc/rc' > ${RD}/fixitfd/etc/rc 375 echo 'exit 1' >> ${RD}/fixitfd/etc/rc 376 touch ${RD}/fixitfd/etc/spwd.db 377 cd ${.CURDIR} ; ${MAKE} doFLOPPY FLOPPY=fixit 378 touch release.10 379 380ftp.1: 381 rm -rf ${FD} 382 mkdir ${FD} 383 cd ${RD} && find floppies -print | cpio -dumpl ${FD} 384 cd ${RD}/dists && find . -print | cpio -dumpl ${FD} 385 cd ${RD}/trees/bin/usr/share/FAQ/Text && ln -f ${FAQS} ${FD} 386 387 # This rule makes ${CHROOTDIR}/R/ftp a suitable anon ftp for testing. 388ftp.2: 389 -mkdir ${FD}/bin 390 ln -f ${RD}/trees/bin/bin/ls ${FD}/bin/ls 391 392cdrom.1: 393 rm -rf ${CD} 394 mkdir ${CD} 395 mkdir ${CD}/filesys 396 cd ${RD} && find floppies dists bootfd -print | cpio -dumpl ${CD} 397 cd ${CD} && mv bootfd bootcd 398 rm -f ${CD}/bootcd/kernel 399 ln -f ${RD}/kernels/BOOTCDROM ${CD}/bootcd/kernel 400 ln -f ${RD}/trees/bin/usr/mdec/fbsdboot.exe ${CD}/bootcd 401 for i in ${DISTRIBUTIONS} ; \ 402 do \ 403 if [ -d ${RD}/trees/$${i} ] ; then \ 404 ( cd ${RD}/trees/$${i} && \ 405 find . -depth -print | cpio -dumpl ${CD}/filesys ) ; \ 406 fi \ 407 done 408 409# Various "subroutine" and other supporting targets. 410 411doTARBALL: 412.if !defined(SD) 413 @echo "SD undefined in doTARBALL" ; exit 1 414.endif 415.if !defined(TD) 416 @echo "TB undefined in doTARBALL" ; exit 1 417.endif 418.if !defined(ARG) 419 @echo "ARG undefined in doTARBALL" ; exit 1 420.endif 421 rm -rf ${RD}/dists/${TD}/${TN}* 422 mkdir -p ${RD}/dists/${TD} 423 ( cd ${SD} && \ 424 tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \ 425 echo rolling ${TD}/$$tn tarball &&\ 426 tar --exclude CVS --exclude obj -cf - ${ARG} | \ 427 ${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. ) 428 429doRELEASE: release.1 release.2 release.3 release.4 release.5 release.6 \ 430 release.7 release.8 release.9 release.10 431 cd ${.CURDIR} && ${MAKE} cdrom.1 ftp.1 432 @echo "Release done" 433 434floppies: 435 rm -f release.4 release.6 release.7 release.10 436 cd ${.CURDIR} && ${MAKE} doRELEASE 437 438boot.flp: 439 rm -f release.4 release.6 440 cd ${.CURDIR} && ${MAKE} release.4 release.6 WHICH_CRUNCH=boot 441 442fixit.flp: 443 rm -f release.4 release.10 444 cd ${.CURDIR} && ${MAKE} release.4 release.10 WHICH_CRUNCH=fixit 445 446ckRELEASEDIR: 447.if !defined(RELEASEDIR) 448 @echo "To make a release RELEASEDIR must be defined" && false 449.endif 450 451doFLOPPY: 452.if !defined(FLOPPY) 453 @echo "FLOPPY undefined in doFLOPPY" ; exit 1 454.endif 455 rm -f ${RD}/floppies/${FLOPPY}.tmp ${RD}/floppies/${FLOPPY}.flp 456.if defined(VNDEVICE) 457 if [ ! -b /dev/${VNDEVICE} -o ! -c /dev/r${VNDEVICE} ] ; then \ 458 cd /dev && sh MAKEDEV ${VNDEVICE} ; fi 459 @umount /dev/${VNDEVICE} 2>/dev/null || true 460 @umount ${MNT} 2>/dev/null || true 461 @vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true 462 dd of=${RD}/floppies/${FLOPPY}.tmp if=/dev/zero \ 463 bs=${FDCYLSIZE} count=${FDCYLS} 2>/dev/null 464 vnconfig -c /dev/r${VNDEVICE} ${RD}/floppies/${FLOPPY}.tmp 465 disklabel -w -r -B \ 466 -b ${RD}/trees/bin/usr/mdec/fdboot \ 467 -s ${RD}/trees/bin/usr/mdec/bootfd \ 468 /dev/r${VNDEVICE} ${FDLABEL} 469 newfs ${NEWFSARGS} /dev/r${VNDEVICE} 470 mount /dev/${VNDEVICE} ${MNT} 471 cd ${RD}/${FLOPPY}fd ; find . -print | cpio -dump ${MNT} 472 umount ${MNT} 473 fsck /dev/r${VNDEVICE} < /dev/null 474.else 475 -umount /dev/${FDDEVICE} 476 -umount ${MNT} 477.if !defined(FDFORMAT) 478 echo y | fdformat /dev/r${FDDEVICE} 479.endif 480 disklabel -w -r -B \ 481 -b ${RD}/trees/bin/usr/mdec/fdboot \ 482 -s ${RD}/trees/bin/usr/mdec/bootfd \ 483 /dev/r${FDDEVICE} ${FDLABEL} 484 newfs ${NEWFSARGS} /dev/r${FDDEVICE} 485 mount /dev/${FDDEVICE} ${MNT} 486 cd ${RD}/${FLOPPY}fd ; find . -print | cpio -dump ${MNT} 487 umount ${MNT} 488 fsck -n /dev/r${FDDEVICE} < /dev/null 489 dd if=/dev/r${FDDEVICE} of=${RD}/floppies/${FLOPPY}.tmp \ 490 bs=${FDCYLSIZE} count=${FDCYLS} 491.endif 492 mv ${RD}/floppies/${FLOPPY}.tmp ${RD}/floppies/${FLOPPY}.flp 493 494installCRUNCH: 495.if !defined(CRUNCH) 496 @echo "CRUNCH undefined in installCRUNCH" ; exit 1 497.endif 498.if !defined(DIR) 499 @echo "DIR undefined in installCRUNCH" ; exit 1 500.endif 501.if !defined(ZIP) 502 @echo "ZIP undefined in installCRUNCH" ; exit 1 503.endif 504 if ${ZIP} ; then \ 505 gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \ 506 else \ 507 ln -f ${RD}/crunch/${CRUNCH} ${DIR}/${CRUNCH}_crunch ; \ 508 fi 509 chmod 555 ${DIR}/${CRUNCH}_crunch 510 for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \ 511 ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \ 512 done 513.include <bsd.prog.mk> 514