diff options
| author | Jordan K. Hubbard <jkh@FreeBSD.org> | 1996-05-27 16:06:55 +0000 |
|---|---|---|
| committer | Jordan K. Hubbard <jkh@FreeBSD.org> | 1996-05-27 16:06:55 +0000 |
| commit | daf37a5fad356f5839da05048d2980ff1ac2fcd3 (patch) | |
| tree | fac79b73dfa6b7822dcbb5741756063ba473b538 /release/Makefile | |
| parent | 725e03410bde07a11ae505ef978d0fe83c16851b (diff) | |
Notes
Diffstat (limited to 'release/Makefile')
| -rw-r--r-- | release/Makefile | 459 |
1 files changed, 231 insertions, 228 deletions
diff --git a/release/Makefile b/release/Makefile index 6711587d713f..53f1122545dc 100644 --- a/release/Makefile +++ b/release/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.193.2.44 1996/05/09 13:33:20 jkh Exp $ +# $Id: Makefile,v 1.215 1996/05/16 03:20:52 jkh Exp $ # # How to roll a release: # @@ -11,14 +11,14 @@ # that on a 14.4 line just yet... # # SET THIS !!! -#BUILDNAME=2.1.0-RELEASE -#CHROOTDIR=/a/release +#BUILDNAME=2.2-960501-SNAP +#CHROOTDIR=/junk/release # If this is a RELEASE, then set -RELEASETAG=RELENG_2_1_0 +#RELEASETAG=RELENG_2_1_0 # Things which without too much trouble can be considered variables -EXPORT_DISTS= games manpages proflibs dict info +EXPORT_DISTS= games manpages proflibs dict info doc EXTRA_DISTS= krb des ${EXPORT_DISTS} ALL_DISTS= bin ${EXTRA_DISTS} @@ -30,11 +30,6 @@ EXTRA_SRC+= usr.sbin/sendmail/cf smailcf BOOT1= etc/protocols etc/sysconfig -FAQS= MIRROR.SITES - -# define this to use a vn device instead of the floppy drive -VNDEVICE= vn0 - # mountpoint for filesystems. MNT= /mnt @@ -48,10 +43,10 @@ NEWFSARGS= -c 80 -b 4096 -f 512 -i 4000 -m 0 -t 0 -u 0 \ ZIPNSPLIT= gzip --no-name -9 -c | split -b 240640 - -# Size of the mfs to put in the kernel we boot. -# You want to keep this as small as possible, it costs dearly in RAM. -BOOTMFSSIZE= 1000 -MFSINODE= 70000 +# Upper size for the mfs in the boot.flp kernel. +# These are adjusted down to the minimum needed but doFS.sh. +BOOTMFSSIZE= 1200 +MFSINODE= 40000 # Things which will get you into trouble if you change them DISTRIBUTIONS= bin ${EXTRA_DISTS} @@ -64,77 +59,58 @@ CD= ${RELEASEDIR}/cdrom WHICH_CRUNCH= boot root fixit .endif -release: +rerelease release: .if !defined(CHROOTDIR) || !defined(BUILDNAME) @echo "To make a release you must set CHROOTDIR and BUILDNAME" && false .endif +.if make(release) .if exists(${CHROOTDIR}) chflags -R noschg ${CHROOTDIR}/. - rm -rf ${CHROOTDIR} + -rm -rf ${CHROOTDIR} .endif - mkdir -p ${CHROOTDIR} - cd ${.CURDIR}/../etc ; ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR} - cd ${.CURDIR}/../etc ; ${MAKE} distribution DESTDIR=${CHROOTDIR} - cd ${.CURDIR}/.. ; ${MAKE} install DESTDIR=${CHROOTDIR} - echo "#!/bin/sh" > ${CHROOTDIR}/mk - echo "set -ex" >> ${CHROOTDIR}/mk - echo "CFLAGS='-O -pipe'" >> ${CHROOTDIR}/mk - echo "export CFLAGS" >> ${CHROOTDIR}/mk - echo "RELEASEDIR=/R" >> ${CHROOTDIR}/mk - echo "export RELEASEDIR" >> ${CHROOTDIR}/mk - echo "cd /usr/src" >> ${CHROOTDIR}/mk - echo "make world" >> ${CHROOTDIR}/mk - echo "cd /usr/src/release" >> ${CHROOTDIR}/mk - echo "make obj" >> ${CHROOTDIR}/mk - echo "make doRELEASE" >> ${CHROOTDIR}/mk - echo "echo Release Finished" >> ${CHROOTDIR}/mk + -mkdir -p ${CHROOTDIR} + cd ${.CURDIR}/../etc && ${MAKE} distrib-dirs DESTDIR=${CHROOTDIR} + cd ${.CURDIR}/../etc && ${MAKE} distribution DESTDIR=${CHROOTDIR} + cd ${.CURDIR}/.. && ${MAKE} install DESTDIR=${CHROOTDIR} +.if !defined(RELEASETAG) + cd ${CHROOTDIR}/usr && cvs co -P src +.else + cd ${CHROOTDIR}/usr && cvs co -P -r ${RELEASETAG} src +.endif +.endif +.if make(rerelease) +.if !defined(RELEASENOUPDATE) .if !defined(RELEASETAG) - cd ${CHROOTDIR}/usr ; cvs co -P src + cd ${CHROOTDIR}/usr && cvs -q update -P -d src .else - cd ${CHROOTDIR}/usr ; cvs co -P -r ${RELEASETAG} src + cd ${CHROOTDIR}/usr && cvs -q update -P -d -r ${RELEASETAG} src +.endif +.endif .endif ( cd ${CHROOTDIR}/usr/src/sys/conf && \ - cp newvers.sh foo && \ - sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh; rm foo ) + mv newvers.sh foo && \ + sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh&& rm foo ) ( cd ${CHROOTDIR}/usr/src/release/sysinstall && \ - sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && mv version.h.new version.h ) - chmod 755 ${CHROOTDIR}/mk - chroot ${CHROOTDIR} /mk - -# Same as above but for re-rolling the release after simply changing a few -# things. -rerelease: -.if !defined(CHROOTDIR) || !defined(BUILDNAME) - @echo "To make a re-release you must set CHROOTDIR and BUILDNAME" && false -.endif - @if [ ! -d ${CHROOTDIR} ]; then echo "No ${CHROOTDIR} directory to re-release in!"; exit 1; fi + sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && \ + mv version.h.new version.h ) echo "#!/bin/sh" > ${CHROOTDIR}/mk echo "set -ex" >> ${CHROOTDIR}/mk - echo "CFLAGS='-O -pipe'" >> ${CHROOTDIR}/mk + echo "CFLAGS='-O2 -pipe'" >> ${CHROOTDIR}/mk echo "export CFLAGS" >> ${CHROOTDIR}/mk echo "RELEASEDIR=/R" >> ${CHROOTDIR}/mk echo "export RELEASEDIR" >> ${CHROOTDIR}/mk echo "cd /usr/src" >> ${CHROOTDIR}/mk +.if make(release) + echo "make world" >> ${CHROOTDIR}/mk +.endif +.if make(rerelease) echo "make all install" >> ${CHROOTDIR}/mk - echo "cd /usr/src/release/sysinstall" >> ${CHROOTDIR}/mk - echo "make obj" >> ${CHROOTDIR}/mk - echo "make all" >> ${CHROOTDIR}/mk +.endif echo "cd /usr/src/release" >> ${CHROOTDIR}/mk echo "make obj" >> ${CHROOTDIR}/mk + echo "rm -f obj/release.4" >> ${CHROOTDIR}/mk echo "make doRELEASE" >> ${CHROOTDIR}/mk - echo "echo Re-Release Finished" >> ${CHROOTDIR}/mk -.if !defined(RELEASENOUPDATE) -.if !defined(RELEASETAG) - cd ${CHROOTDIR}/usr ; cvs update -P -d -q src -.else - cd ${CHROOTDIR}/usr ; cvs update -P -d -q -r ${RELEASETAG} src -.endif -.endif - ( cd ${CHROOTDIR}/usr/src/sys/conf && \ - mv newvers.sh foo && \ - sed "s/^RELEASE=.*/RELEASE=${BUILDNAME}/" foo > newvers.sh; rm foo ) - ( cd ${CHROOTDIR}/usr/src/release/sysinstall && \ - sed "s/__RELEASE/${BUILDNAME}/" version.h > version.h.new && mv version.h.new version.h ) + echo "echo make ${.TARGET} Finished" >> ${CHROOTDIR}/mk chmod 755 ${CHROOTDIR}/mk chroot ${CHROOTDIR} /mk @@ -147,7 +123,7 @@ clean: # Clean out ${RELEASEDIR} and make the directory structure. release.1: - @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR -mkdir ${RELEASEDIR} chflags -R noschg ${RELEASEDIR}/. rm -rf ${RELEASEDIR}/* @@ -155,15 +131,16 @@ release.1: mkdir ${RD}/floppies mkdir ${RD}/trees mkdir ${RD}/dists + mkdir ${RD}/kernels for i in ${ALL_DISTS} ; do \ - mkdir ${RD}/trees/$$i ; \ - mkdir ${RD}/dists/$$i ; \ + mkdir ${RD}/trees/$$i && \ + mkdir ${RD}/dists/$$i && \ mtree -deU -f ${MTREEFILES}/BSD.root.dist \ - -p ${RD}/trees/$$i > /dev/null ; \ + -p ${RD}/trees/$$i > /dev/null && \ mtree -deU -f ${MTREEFILES}/BSD.usr.dist \ - -p ${RD}/trees/$$i/usr > /dev/null ; \ + -p ${RD}/trees/$$i/usr > /dev/null && \ mtree -deU -f ${MTREEFILES}/BSD.include.dist \ - -p ${RD}/trees/$$i/usr/include > /dev/null ; \ + -p ${RD}/trees/$$i/usr/include > /dev/null && \ mtree -deU -f ${MTREEFILES}/BSD.var.dist \ -p ${RD}/trees/$$i/var > /dev/null ; \ done @@ -171,50 +148,37 @@ release.1: # Install the system into the various distributions. release.2: - @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/bin - cd ${.CURDIR}/.. ; make distribute DISTDIR=${RD}/trees + cd ${.CURDIR}/.. && make distribute DISTDIR=${RD}/trees +.if exists(${.CURDIR}/../eBones) cd ${.CURDIR}/../eBones && ( \ - make bootstrap ;\ - make obj all help-distribute DISTDIR=${RD}/trees ;\ + make bootstrap &&\ + make obj all help-distribute DISTDIR=${RD}/trees &&\ make kprog \ ) +.endif chflags -R noschg ${RD}/trees + # We don't really want to make a compat20 distribution for just + # one file. uudecode ${.CURDIR}/compat20/libgcc.so.261.0.uu install -m 444 -o bin -g bin libgcc.so.261.0 ${RD}/trees/bin/usr/lib touch release.2 -# Make and install a couple of kernels we need. To keep BOOTMFS smaller, -# we cull out certain options (see fgrep -v) before building it. +# Make and install the generic kernel. release.3: - rm -rf ${RD}/kernels - mkdir -p ${RD}/kernels @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR - cd ${.CURDIR}/../sys/i386/conf && \ - fgrep -v SYSV GENERIC | \ - fgrep -v pty | \ - fgrep -v PROCFS | \ - sed 's/GENERIC/BOOTMFS/g' > BOOTMFS && \ - echo "options \"MFS_ROOT=${BOOTMFSSIZE}\"" >> BOOTMFS && \ - echo "options MFS" >> BOOTMFS - - for i in BOOTMFS GENERIC ; do \ - cd ${.CURDIR}/../sys/i386/conf && \ - config $$i && \ - cd ${.CURDIR}/../sys/compile/$$i && \ - make depend && \ - make kernel && \ - cp kernel ${RD}/kernels/$$i ; \ - rm -rf ${.CURDIR}/../sys/compile/$$i ; \ - done - rm -f ${.CURDIR}/../sys/i386/conf/BOOTCDROM + rm -f ${RD}/kernels/GENERIC + rm -rf ${.CURDIR}/../sys/compile/GENERIC + cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=GENERIC + rm -rf ${.CURDIR}/../sys/compile/GENERIC touch release.3 # Make and install the three crunched binaries which live on the floppies. # You are not supposed to like this :-) release.4: + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR cd ${.CURDIR}/sysinstall && make obj && make depend && make all - @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR rm -rf ${RD}/crunch mkdir -p ${RD}/crunch for j in ${WHICH_CRUNCH} ; do \ @@ -222,39 +186,51 @@ release.4: mkdir $${j}_crunch && \ ( cd $${j}_crunch && \ crunchgen ${.CURDIR}/$${j}_crunch.conf && \ - ${MAKE} -f $${j}_crunch.mk objs exe NOCRYPT=yes \ + ${MAKE} -f $${j}_crunch.mk all NOCRYPT=yes \ "CFLAGS=${CFLAGS} -DCRUNCHED_BINARY") && \ mv $${j}_crunch/$${j}_crunch ${RD}/crunch/$${j} && \ - rm -rf $${j}_crunch ; \ + true || rm -rf $${j}_crunch ; \ done touch release.4 -# Fix up the distributions. +# +# --==## Fix up the distributions. ##==-- +# release.5: - @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR ln -f ${RD}/kernels/GENERIC ${RD}/trees/bin/kernel.GENERIC + + # Handle some grief caused by the ammunition braindeadness. + for i in sbin/init bin/ed ; do \ + ( cd ${.CURDIR}/../$$i; \ + make -DNOCRYPT clean all distribute DISTDIR=${RD}/trees ) ; \ + done + + # Move all the manpages out to their own dist if [ -d ${RD}/trees/bin/usr/share/man ] ; then \ - rm -rf ${RD}/trees/manpages/usr/share/man ;\ + rm -rf ${RD}/trees/manpages/usr/share/man &&\ mv ${RD}/trees/bin/usr/share/man \ ${RD}/trees/manpages/usr/share/man ;\ fi + # Move all the games out to their own dist if [ -d ${RD}/trees/bin/usr/games ] ; then \ - rm -rf ${RD}/trees/games/usr/games ;\ + rm -rf ${RD}/trees/games/usr/games &&\ mv ${RD}/trees/bin/usr/games \ ${RD}/trees/games/usr/games ;\ fi if [ -d ${RD}/trees/bin/usr/share/games ] ; then \ - rm -rf ${RD}/trees/games/usr/share/games ;\ + rm -rf ${RD}/trees/games/usr/share/games &&\ mv ${RD}/trees/bin/usr/share/games \ ${RD}/trees/games/usr/share/games ;\ fi if [ -d ${RD}/trees/bin/var/games ] ; then \ - rm -rf ${RD}/trees/games/var/games ;\ + rm -rf ${RD}/trees/games/var/games &&\ mv ${RD}/trees/bin/var/games \ ${RD}/trees/games/var/games ;\ fi + # Move the dict out to their own dist if [ -d ${RD}/trees/bin/usr/share/dict ] ; then \ - rm -rf ${RD}/trees/dict/usr/share/dict ;\ + rm -rf ${RD}/trees/dict/usr/share/dict &&\ mv ${RD}/trees/bin/usr/share/dict \ ${RD}/trees/dict/usr/share/dict ;\ fi @@ -264,68 +240,89 @@ release.5: ${RD}/trees/dict/usr/share/misc ; \ fi ; \ done - -mv ${RD}/trees/bin/usr/share/info/* \ - ${RD}/trees/info/usr/share/info + # Move the info files out to their own dist + if [ -d ${RD}/trees/bin/usr/share/info ] ; then \ + rm -rf ${RD}/trees/info/usr/share/info &&\ + mv ${RD}/trees/bin/usr/share/info \ + ${RD}/trees/info/usr/share ;\ + fi + # Move the profiled libraries out to their own dist for i in ${RD}/trees/bin/usr/lib/*_p.a ; do \ if [ -f $$i ] ; then \ mv $$i \ ${RD}/trees/proflibs/usr/lib ; \ fi ; \ done + # Create symlinks for the MD5-based crypt lib, too. The + # automatically created links still point to the DES stuff, + # which went into its own distribution. + for i in ${RD}/trees/bin/usr/lib/libscrypt* ; do \ + c=`echo $$i | sed -e 's/libscrypt/libcrypt/'` ; \ + rm -f $$c ; \ + ln -s `basename $$i` $$c ; \ + done + + # Remove some files we can faster regen after installing. cd ${RD}/trees/bin/usr/share/misc && rm -f termcap.db vgrindefs.db + # Remove all the directories we don't need. -cd ${RD}/trees && \ find ${EXTRA_DISTS} -depth -type d -print | xargs rmdir touch release.5 -# Make binary dists, notice that DES dist isn't finished yet. +# +# --==## Make binary dists ##==-- +# release.6: - @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR rm -rf ${RD}/dists mkdir -p ${RD}/dists mkdir -p ${RD}/info @for i in ${DISTRIBUTIONS} ; \ do \ if [ -d ${RD}/trees/$${i} ] ; then \ - cd ${.CURDIR} ; \ - $(MAKE) doTARBALL SD=${RD}/trees/$${i} \ - TN=$$i TD=$$i ARG="." ; \ + cd ${.CURDIR} && $(MAKE) doTARBALL \ + SD=${RD}/trees/$${i} \ + TN=$$i TD=$$i ARG="." && \ echo "$${i} distribution is finished."; \ fi ; \ done + ( cd ${RD}/dists && \ + if [ -f krb/krb.aa ] ; then mv krb/* des && rmdir krb ; fi ) + ( cd ${RD}/info && \ + if [ -d krb ] ; then mv krb/* des && rmdir krb ; fi ) touch release.6 -# Make source dists, and finish off DES too +# +# --==## Make source dists ##==-- +# release.7: - @cd ${.CURDIR} ; $(MAKE) ckRELEASEDIR - @cd ${.CURDIR} ; $(MAKE) doTARBALL SD=/usr/src \ + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR + @cd ${.CURDIR} && $(MAKE) doTARBALL SD=/usr/src \ TD=src TN=sbase ARG="[A-Z]*" - @for i in `cd /usr/src ; echo [a-z]*` ; do \ - if [ -d /usr/src/$$i -a "$$i" != "CVS" ] ; then \ - cd ${.CURDIR} ; \ - $(MAKE) doTARBALL SD=/usr/src \ + @for i in `cd /usr/src && echo [a-z]*` ; do \ + if [ -d /usr/src/$$i ] ; then \ + cd ${.CURDIR} && $(MAKE) doTARBALL \ TN=`echo s$$i | tr -d '.' | sed 's/usr/u/'` \ - TD=src ARG="$$i" ; \ + SD=/usr/src TD=src ARG="$$i" ; \ fi ; \ done .if defined(EXTRA_SRC) - @set ${EXTRA_SRC} ; \ + @set ${EXTRA_SRC} && \ while [ $$# -ge 2 ] ; do \ - if [ -d /usr/src/$$1 -a "$$1" != "CVS" ] ; then \ - cd ${.CURDIR} ; \ - $(MAKE) doTARBALL SD=/usr/src \ - TN="s$$2" \ - TD=src ARG="$$1" ; \ - fi ; \ - shift ; shift ; \ + if [ -d /usr/src/$$1 ] ; then \ + cd ${.CURDIR} && $(MAKE) doTARBALL \ + SD=/usr/src TN="s$$2" TD=src ARG="$$1" ; \ + fi && shift && shift ; \ done .endif ( cd ${RD}/dists/src && \ - if [ -f ssecure.aa ] ; then mv ssecure.* ../des ; fi && \ - if [ -f sebones.aa ] ; then mv sebones.* ../des ; fi ) + if [ -f ssecure.aa ] ; then mv ssecure.* ../des ; fi && \ + if [ -f sebones.aa ] ; then mv sebones.* ../des ; fi ) + ( cd ${RD}/info/src && \ + if [ -f ssecure.inf ] ; then mv ssecure.inf ../des ; fi && \ + if [ -f sebones.inf ] ; then mv sebones.inf ../des ; fi ; ) @echo "src distribution is finished." - mv ${RD}/dists/krb/* ${RD}/dists/des - rmdir ${RD}/dists/krb touch release.7 # Complete the bootfd @@ -350,7 +347,7 @@ release.8: write_mfs_in_kernel cd ${RD}/mfsfd && \ mkdir -p dev mnt stand/help @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \ - DIR=${RD}/mfsfd/stand ZIP=true + DIR=${RD}/mfsfd/stand ZIP=false ( cd ${RD}/trees/bin/dev && \ ls console tty ttyv0 ttyv1 ttyv2 ttyv3 null zero \ *[sw]d* cuaa[01] cuaa[23] fd[01] rfd[01] \ @@ -362,35 +359,29 @@ release.8: write_mfs_in_kernel echo "ftp 21/tcp" >> ${RD}/mfsfd/stand/etc/services echo "domain 53/tcp nameserver" >> ${RD}/mfsfd/stand/etc/services echo "domain 53/udp nameserver" >> ${RD}/mfsfd/stand/etc/services + install -c ${.CURDIR}/../COPYRIGHT ${RD}/mfsfd/stand/help/COPYRIGHT.hlp + # make the small bootfd + sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${BOOTMFSSIZE} ${RD}/mfsfd \ + ${MFSINODE} minimum + mv fs-image fs-image.4 + mv fs-image.size fs-image.4.size + # add more stuff for the complete bootfd tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \ tar xvf - -C ${RD}/mfsfd/stand - install -c ${.CURDIR}/../COPYRIGHT ${RD}/mfsfd/stand/help/COPYRIGHT.hlp - ( \ - a=`expr ${BOOTMFSSIZE} \* 2` && \ - echo && \ - echo "mfs${BOOTMFSSIZE}:ty=mfs:se#512:nt#1:rm#300:\\" && \ - echo " :ns#$$a:nc#1:\\" && \ - echo " :pa#$$a:oa#0:ba#4096:fa#512:\\" && \ - echo " :pc#$$a:oc#0:bc#4096:fc#512:" && \ - echo \ - ) >> /etc/disktab - - # first the standard boot floppy, with GENERIC kernel - cd ${.CURDIR} && ${MAKE} doFS FSSIZE=${BOOTMFSSIZE} \ - FSPROTO=${RD}/mfsfd FSLABEL=mfs${BOOTMFSSIZE} \ - FSINODE=${MFSINODE} - rm -rf ${RD}/bootfd - mkdir ${RD}/bootfd - cp ${RD}/kernels/BOOTMFS ${RD}/bootfd/kernel - ./write_mfs_in_kernel ${RD}/bootfd/kernel fs-image - kzip ${RD}/bootfd/kernel - mv ${RD}/bootfd/kernel ${RD}/kernels/MFSKERNEL - mv ${RD}/bootfd/kernel.kz ${RD}/bootfd/kernel - ls -l ${RD}/bootfd/kernel - cd ${.CURDIR} && ${MAKE} doFLOPPY FLOPPY=boot + sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${BOOTMFSSIZE} ${RD}/mfsfd \ + ${MFSINODE} minimum + mv fs-image fs-image.std + mv fs-image.size fs-image.std.size + #rm -rf ${.CURDIR}/../sys/compile/BOOTMFS + cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=4 + cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=std + mv ${RD}/floppies/bootstd.flp ${RD}/floppies/boot.flp + #rm -rf ${.CURDIR}/../sys/compile/BOOTMFS touch release.8 -# Complete the rootfd directory +# +# --==## Create a root floppy ##==-- +# release.9: @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR rm -rf ${RD}/rootfd @@ -400,53 +391,56 @@ release.9: @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=root \ DIR=${RD}/rootfd/stand ZIP=false tar --exclude CVS -cf - -C ${RD} info | tar xvf - -C ${RD}/rootfd/stand - mv ${RD}/rootfd/stand/info/krb/* ${RD}/rootfd/stand/info/des - rmdir ${RD}/rootfd/stand/info/krb - mv ${RD}/rootfd/stand/info/src/ssecure.inf ${RD}/rootfd/stand/info/des - mv ${RD}/rootfd/stand/info/src/sebones.inf ${RD}/rootfd/stand/info/des - tar -cf - -C ${RD}/trees/bin/dev MAKEDEV | tar xvf - -C ${RD}/rootfd/stand + tar -cf - -C ${RD}/trees/bin/dev MAKEDEV | \ + tar xvf - -C ${RD}/rootfd/stand cp ${.CURDIR}/sysinstall/power.uu ${RD}/rootfd/stand && \ cd ${RD}/rootfd/stand && uudecode power.uu && rm power.uu - cd ${RD}/rootfd && ( rm -f OK && find . -print && touch OK && echo OK ) | cpio -H newc -oa | gzip -9 -c | dd conv=osync > ${RD}/floppies/root.tmp + cd ${RD}/rootfd && \ + ( rm -f OK && find . -print && touch OK && echo OK ) | \ + cpio -H newc -oa | gzip -9 -c | \ + dd conv=osync > ${RD}/floppies/root.tmp mv ${RD}/floppies/root.tmp ${RD}/floppies/root.flp touch release.9 -# Complete the fixitfd +# +# --==## Create a fixit floppy ##==-- +# release.10: @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR rm -rf ${RD}/fixitfd mkdir ${RD}/fixitfd cd ${RD}/fixitfd && \ - mkdir stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp + mkdir dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=fixit \ DIR=${RD}/fixitfd/stand ZIP=true - ( cd ${RD}/trees/bin/dev && \ - sh MAKEDEV all && \ - find . -print | \ - cpio -dump ${RD}/fixitfd/dev ) + ( cd ${RD}/fixitfd/dev && \ + cp ${RD}/trees/bin/dev/MAKEDEV . && \ + sh MAKEDEV all ) cp ${RD}/trees/bin/etc/spwd.db ${RD}/fixitfd/etc cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile - cd ${.CURDIR} && ${MAKE} doFLOPPY FLOPPY=fixit FDINODE=1024 + sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/fixitfd \ + 10000 ${FDLABEL} + mv fs-image ${RD}/floppies/fixit.flp touch release.10 +# +# --==## Setup a suitable ftp-area ##==-- +# ftp.1: rm -rf ${FD} mkdir ${FD} cd ${RD} && find floppies -print | cpio -dumpl ${FD} cd ${RD}/dists && find . -print | cpio -dumpl ${FD} - cd ${.CURDIR} && ln -f ${FAQS} ${FD} - - # This rule makes ${CHROOTDIR}/R/ftp a suitable anon ftp for testing. -ftp.2: - -mkdir ${FD}/bin - ln -f ${RD}/trees/bin/bin/ls ${FD}/bin/ls +# +# --==## Setup a suitable cdrom-area ##==-- +# cdrom.1: rm -rf ${CD} mkdir ${CD} mkdir ${CD}/filesys cd ${RD} && find floppies dists -print | cpio -dumpl ${CD} - ln -f ${RD}/kernels/MFSKERNEL ${CD}/kernel + ln -f ${RD}/kernels/MFSKERNEL.std ${CD}/kernel ln -f ${RD}/trees/bin/usr/mdec/fbsdboot.exe ${CD} for i in ${DISTRIBUTIONS} ; \ do \ @@ -460,13 +454,13 @@ cdrom.1: doTARBALL: .if !defined(SD) - @echo "SD undefined in doTARBALL" ; exit 1 + @echo "SD undefined in doTARBALL" && exit 1 .endif .if !defined(TD) - @echo "TB undefined in doTARBALL" ; exit 1 + @echo "TB undefined in doTARBALL" && exit 1 .endif .if !defined(ARG) - @echo "ARG undefined in doTARBALL" ; exit 1 + @echo "ARG undefined in doTARBALL" && exit 1 .endif rm -rf ${RD}/dists/${TD}/${TN}* mkdir -p ${RD}/dists/${TD} @@ -477,8 +471,7 @@ doTARBALL: ${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \ cd ${RD}/info && \ mkdir -p ${TD} && \ - chmod a+x ${.CURDIR}/info.sh && \ - ${.CURDIR}/info.sh ${RD}/dists/${TD}/$$tn > ${TD}/$$tn.inf \ + sh ${.CURDIR}/info.sh ${RD}/dists/${TD}/$$tn > ${TD}/$$tn.inf \ ) doRELEASE: release.1 release.2 release.3 release.4 release.5 release.6 \ @@ -490,6 +483,7 @@ floppies: cd ${.CURDIR} && ${MAKE} boot.flp cd ${.CURDIR} && ${MAKE} root.flp cd ${.CURDIR} && ${MAKE} fixit.flp + cd ${RD} && find floppies -print | cpio -dumpl ${FD} boot.flp: rm -f release.4 release.8 @@ -511,56 +505,15 @@ ckRELEASEDIR: @echo "To make a release RELEASEDIR must be defined" && false .endif -doFLOPPY: -.if !defined(FLOPPY) - @echo "FLOPPY undefined in doFLOPPY" ; exit 1 -.endif - rm -f ${RD}/floppies/${FLOPPY}.flp - cd ${.CURDIR} && ${MAKE} doFS FSSIZE=${FDSIZE} \ - FSPROTO=${RD}/${FLOPPY}fd \ - FSLABEL=${FDLABEL} FSINODE=${FDINODE} - mv fs-image ${RD}/floppies/${FLOPPY}.flp - -doFS: -.if !defined(FSSIZE) - @echo "FSSIZE undefined in doFS" ; exit 1 -.endif -.if !defined(FSPROTO) - @echo "FSPROTO undefined in doFS" ; exit 1 -.endif -.if !defined(FSINODE) - @echo "FSINODE undefined in doFS" ; exit 1 -.endif - rm -f fs-image - if [ ! -b /dev/${VNDEVICE} -o ! -c /dev/r${VNDEVICE} ] ; then \ - cd /dev && sh MAKEDEV ${VNDEVICE} ; fi - @umount /dev/${VNDEVICE} 2>/dev/null || true - @umount ${MNT} 2>/dev/null || true - @vnconfig -u /dev/r${VNDEVICE} 2>/dev/null || true - dd of=fs-image if=/dev/zero count=${FSSIZE} bs=1k 2>/dev/null - vnconfig -c /dev/r${VNDEVICE} fs-image -.if defined(FSLABEL) - disklabel -w -r -B \ - -b ${RD}/trees/bin/usr/mdec/fdboot \ - -s ${RD}/trees/bin/usr/mdec/bootfd \ - /dev/r${VNDEVICE} ${FSLABEL} -.endif - newfs -u 0 -t 0 -i ${FSINODE} -m 0 -T ${FSLABEL} /dev/r${VNDEVICE} - mount /dev/${VNDEVICE} ${MNT} - cd ${FSPROTO} && find . -print | cpio -dump ${MNT} - df -i /mnt - umount ${MNT} - fsck /dev/r${VNDEVICE} < /dev/null - installCRUNCH: .if !defined(CRUNCH) - @echo "CRUNCH undefined in installCRUNCH" ; exit 1 + @echo "CRUNCH undefined in installCRUNCH" && exit 1 .endif .if !defined(DIR) - @echo "DIR undefined in installCRUNCH" ; exit 1 + @echo "DIR undefined in installCRUNCH" && exit 1 .endif .if !defined(ZIP) - @echo "ZIP undefined in installCRUNCH" ; exit 1 + @echo "ZIP undefined in installCRUNCH" && exit 1 .endif if ${ZIP} ; then \ gzip -9 < ${RD}/crunch/${CRUNCH} > ${DIR}/${CRUNCH}_crunch ; \ @@ -571,4 +524,54 @@ installCRUNCH: for i in `crunchgen -l ${.CURDIR}/${CRUNCH}_crunch.conf` ; do \ ln -f ${DIR}/${CRUNCH}_crunch ${DIR}/$$i ; \ done + +# +# --==## Compile a kernel by name ${KERNEL} ##==-- +# +# We don't erase the sys/compile/${KERNEL} directory, since somebody +# may want to reuse it (release.8 presently) +# +doKERNEL: + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR + rm -f ${RD}/kernels/${KERNEL} + cd ${.CURDIR}/../sys/i386/conf && config -n ${KERNEL} + cd ${.CURDIR}/../sys/compile/${KERNEL} && \ + make depend && \ + make kernel && \ + cp kernel ${RD}/kernels/${KERNEL} + +# +# --==## Put a filesystem into a BOOTMFS kernel ##==-- +# +doMFSKERN: + @cd ${.CURDIR} && $(MAKE) ckRELEASEDIR + rm -f ${RD}/kernels/BOOTMFS.${FSIMAGE} + rm -f /sys/compile/BOOTMFS/mfs_vfsops.o + cd ${.CURDIR}/../sys/i386/conf && \ + fgrep -v SYSV GENERIC | \ + fgrep -v pty | \ + fgrep -v PROCFS | \ + sed 's/GENERIC/BOOTMFS/g' | \ + sed '/maxusers/s/10/4/' > BOOTMFS && \ + echo "options MFS" >> BOOTMFS && \ + echo "options NFS_NOSERVER" >> BOOTMFS && + echo 'options "MAXCONS=4"' >> BOOTMFS + echo "options \"MFS_ROOT=`cat fs-image.${FSIMAGE}.size`\"" >> \ + ${.CURDIR}/../sys/i386/conf/BOOTMFS + cd ${.CURDIR} && ${MAKE} doKERNEL KERNEL=BOOTMFS + rm -rf ${RD}/boot.${FSIMAGE} + mkdir ${RD}/boot.${FSIMAGE} + mv ${RD}/kernels/BOOTMFS ${RD}/kernels/BOOTMFS.${FSIMAGE} + cp ${RD}/kernels/BOOTMFS.${FSIMAGE} ${RD}/boot.${FSIMAGE}/kernel + ./write_mfs_in_kernel ${RD}/boot.${FSIMAGE}/kernel \ + fs-image.${FSIMAGE} + kzip -v ${RD}/boot.${FSIMAGE}/kernel + mv ${RD}/boot.${FSIMAGE}/kernel ${RD}/kernels/MFSKERNEL.${FSIMAGE} + mv ${RD}/boot.${FSIMAGE}/kernel.kz ${RD}/boot.${FSIMAGE}/kernel + ls -l ${RD}/boot.${FSIMAGE}/kernel + rm -f ${RD}/floppies/boot${FSIMAGE}.flp + sh -e ${.CURDIR}/doFS.sh ${RD} ${MNT} ${FDSIZE} ${RD}/boot.${FSIMAGE} \ + 100000 ${FDLABEL} + mv fs-image ${RD}/floppies/boot${FSIMAGE}.flp + .include <bsd.prog.mk> |
