diff options
author | jkh <jkh@FreeBSD.org> | 2001-07-23 09:01:46 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 2001-07-23 09:01:46 +0000 |
commit | 845119946b5ba9abe731311f51a0d0e7849f0472 (patch) | |
tree | 6b3227869c1d39bba544faeabf9c4a8b3df62fff | |
parent | 0cd2751bca7e822d6c9b7b3fb4f53aad6f5ddd60 (diff) | |
download | FreeBSD-src-845119946b5ba9abe731311f51a0d0e7849f0472.zip FreeBSD-src-845119946b5ba9abe731311f51a0d0e7849f0472.tar.gz |
Add scripts and Makefile support for building ISO images automatically
as part of the release if MAKE_ISOS is set. Will also build the
first CD with packages (in addition to the "minimal" CD) if CD_EXTRA_BITS
points to them. This probably need a bit more work to get fully useful,
but it at least covers the basics for now.
-rw-r--r-- | release/Makefile | 23 | ||||
-rw-r--r-- | release/alpha/mkisoimages.sh | 51 | ||||
-rw-r--r-- | release/amd64/mkisoimages.sh | 51 | ||||
-rw-r--r-- | release/i386/mkisoimages.sh | 51 |
4 files changed, 176 insertions, 0 deletions
diff --git a/release/Makefile b/release/Makefile index 9c4f9ca..654a432 100644 --- a/release/Makefile +++ b/release/Makefile @@ -219,6 +219,9 @@ EXTRAS= ftp.1 .else EXTRAS= cdrom.1 ftp.1 .endif +.if defined(MAKE_ISOS) +EXTRAS+= iso.1 +.endif .if !defined(NODOC) DOCREL= doc.1 doc.2 @@ -336,6 +339,9 @@ rerelease release: .if defined(NOPORTS) echo "export NOPORTS=${NOPORTS}" >> ${CHROOTDIR}/mk .endif +.if defined(MAKE_ISOS) + echo "export MAKE_ISOS=${MAKE_ISOS}" >> ${CHROOTDIR}/mk +.endif .if defined(DOMINIMALDOCPORTS) echo "export DOMINIMALDOCPORTS=${DOMINIMALDOCPORTS}" >> ${CHROOTDIR}/mk .endif @@ -761,6 +767,9 @@ cdrom.1: @ln -f ${CD_DISC2}/boot/cdboot ${CD_DISC1}/boot @ln -f ${CD_DISC1}/boot/loader.rc ${CD_DISC2}/boot @ln -f ${CD_DISC1}/kernel ${CD_DISC2}/kernel +.elif ${MACHINE_ARCH} == "i386" + @mkdir -p ${CD_DISC2}/floppies + @cp ${CD_DISC1}/floppies/boot.flp ${CD_DISC2}/floppies .endif .if !defined(NOPORTS) @-rm -rf /usr/ports/distfiles/* @@ -771,6 +780,20 @@ cdrom.1: .endif touch cdrom.1 +iso.1: + @if [ -x ${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh ]; then \ + echo "Creating ISO images..."; \ + ${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh -b fbsd_miniboot \ + ${CD}/miniboot.iso ${CD_DISC1}; \ + ${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh -b fbsd_livefs \ + ${CD}/disc2.iso ${CD_DISC2}; \ + if [ "x${CD_EXTRA_BITS}" != "x" ]; then \ + ${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh -b fbsd_boot \ + ${CD}/disc1.iso ${CD_DISC1} ${CD_EXTRA_BITS}; \ + fi \ + fi + touch iso.1 + # # --==## Documentation Project files such as the Handbook and FAQ ##==-- # diff --git a/release/alpha/mkisoimages.sh b/release/alpha/mkisoimages.sh new file mode 100644 index 0000000..1019cba --- /dev/null +++ b/release/alpha/mkisoimages.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# +# Module: mkisoimages.sh +# Author: Jordan K Hubbard +# Date: 22 June 2001 +# +# $FreeBSD$ +# +# This script is used by release/Makefile to build the (optional) ISO images +# for a FreeBSD release. It is considered architecture dependent since each +# platform has a slightly unique way of making bootable CDs. This script +# is also allowed to generate any number of images since that is more of +# publishing decision than anything else. +# +# Usage: +# +# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir] +# +# Where -b is passed if the ISO image should be made "bootable" by +# whatever standards this architecture supports (may be unsupported), +# image-label is the ISO image label, image-name is the filename of the +# resulting ISO image, base-bits-dir contains the image contents and +# extra-bits-dir, if provided, contains additional files to be merged +# into base-bits-dir as part of making the image. + +if [ "x$1" = "x-b" ]; then + bootable="yes" + shift +fi + +if [ $# -lt 3 ]; then + echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]' + exit 1 +fi + +if [ ! -x /usr/local/bin/mkhybrid ]; then + echo The mkisofs port is not installed. Trying to get it now. + if ! pkg_add -r mkisofs; then + echo "Couldn't get it via pkg_add - please go install this" + echo "from the ports collection and run this script again." + exit 2 + fi +fi + +LABEL=$1; shift +NAME=$1; shift + +mkhybrid -r -J -h -V $LABEL -o $NAME $* +if [ "x$bootable" != "x" ]; then + setcdboot $NAME /boot/cdboot +fi diff --git a/release/amd64/mkisoimages.sh b/release/amd64/mkisoimages.sh new file mode 100644 index 0000000..78221f9 --- /dev/null +++ b/release/amd64/mkisoimages.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# +# Module: mkisoimages.sh +# Author: Jordan K Hubbard +# Date: 22 June 2001 +# +# $FreeBSD$ +# +# This script is used by release/Makefile to build the (optional) ISO images +# for a FreeBSD release. It is considered architecture dependent since each +# platform has a slightly unique way of making bootable CDs. This script +# is also allowed to generate any number of images since that is more of +# publishing decision than anything else. +# +# Usage: +# +# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir] +# +# Where -b is passed if the ISO image should be made "bootable" by +# whatever standards this architecture supports (may be unsupported), +# image-label is the ISO image label, image-name is the filename of the +# resulting ISO image, base-bits-dir contains the image contents and +# extra-bits-dir, if provided, contains additional files to be merged +# into base-bits-dir as part of making the image. + +if [ "x$1" = "x-b" ]; then + # This is highly x86-centric and will be used directly below. + bootable="-b floppies/boot.flp -c floppies/boot.catalog" + shift +else + bootable="" +fi + +if [ $# -lt 3 ]; then + echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]' + exit 1 +fi + +if [ ! -x /usr/local/bin/mkhybrid ]; then + echo The mkisofs port is not installed. Trying to get it now. + if ! pkg_add -r mkisofs; then + echo "Couldn't get it via pkg_add - please go install this" + echo "from the ports collection and run this script again." + exit 2 + fi +fi + +LABEL=$1; shift +NAME=$1; shift + +mkhybrid $bootable -r -J -h -V $LABEL -o $NAME $* diff --git a/release/i386/mkisoimages.sh b/release/i386/mkisoimages.sh new file mode 100644 index 0000000..78221f9 --- /dev/null +++ b/release/i386/mkisoimages.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# +# Module: mkisoimages.sh +# Author: Jordan K Hubbard +# Date: 22 June 2001 +# +# $FreeBSD$ +# +# This script is used by release/Makefile to build the (optional) ISO images +# for a FreeBSD release. It is considered architecture dependent since each +# platform has a slightly unique way of making bootable CDs. This script +# is also allowed to generate any number of images since that is more of +# publishing decision than anything else. +# +# Usage: +# +# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir] +# +# Where -b is passed if the ISO image should be made "bootable" by +# whatever standards this architecture supports (may be unsupported), +# image-label is the ISO image label, image-name is the filename of the +# resulting ISO image, base-bits-dir contains the image contents and +# extra-bits-dir, if provided, contains additional files to be merged +# into base-bits-dir as part of making the image. + +if [ "x$1" = "x-b" ]; then + # This is highly x86-centric and will be used directly below. + bootable="-b floppies/boot.flp -c floppies/boot.catalog" + shift +else + bootable="" +fi + +if [ $# -lt 3 ]; then + echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]' + exit 1 +fi + +if [ ! -x /usr/local/bin/mkhybrid ]; then + echo The mkisofs port is not installed. Trying to get it now. + if ! pkg_add -r mkisofs; then + echo "Couldn't get it via pkg_add - please go install this" + echo "from the ports collection and run this script again." + exit 2 + fi +fi + +LABEL=$1; shift +NAME=$1; shift + +mkhybrid $bootable -r -J -h -V $LABEL -o $NAME $* |