summaryrefslogtreecommitdiffstats
path: root/release/Makefile
diff options
context:
space:
mode:
authorkensmith <kensmith@FreeBSD.org>2008-10-12 02:52:56 +0000
committerkensmith <kensmith@FreeBSD.org>2008-10-12 02:52:56 +0000
commit2dd1bc1a815d6fd82841614d5d1d91891909cfe7 (patch)
treedbb16c4862203065ccbf8a048e2633ab89ebce95 /release/Makefile
parent6d4da1f550099144007f550d0cb0d4d45051edc8 (diff)
downloadFreeBSD-src-2dd1bc1a815d6fd82841614d5d1d91891909cfe7.zip
FreeBSD-src-2dd1bc1a815d6fd82841614d5d1d91891909cfe7.tar.gz
Add a build knob MAKE_DVD to control on a per-architecture basis whether
or not to build a tree used for the creation of a DVD image. If that is enabled set up a DVD tree by installing everything we normally install to the individual CDROM trees into the one DVD tree. The result is one image with all the install bits, livefs bits, and doc bits suitable for burning to a DVD instead of CDROM. Enable building the DVD for amd64 and i386. MFC after: 1 week
Diffstat (limited to 'release/Makefile')
-rw-r--r--release/Makefile74
1 files changed, 74 insertions, 0 deletions
diff --git a/release/Makefile b/release/Makefile
index d7e780f..5481b68 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -192,6 +192,7 @@ MNT= /mnt
.undef MAKE_FLOPPIES
.if ${TARGET_ARCH} == "i386"
MAKE_FLOPPIES= true
+MAKE_DVD=
SEPARATE_LIVEFS=
SPLIT_MFSROOT=
.if ${TARGET} == "pc98"
@@ -222,6 +223,7 @@ MFSLABEL= auto
SEPARATE_LIVEFS=
.elif ${TARGET_ARCH} == "amd64"
MAKE_FLOPPIES= true
+MAKE_DVD=
FLOPPYSIZE= 1440
FLOPPYSPLITSIZE= 1392
FLOPPYINODE= 40000
@@ -262,6 +264,9 @@ CD= ${_R}/cdrom
CD_BOOT= ${CD}/bootonly
CD_DISC1= ${CD}/disc1
CD_DISC2= ${CD}/disc2
+.if defined(MAKE_DVD)
+CD_DVD= ${CD}/dvd
+.endif
.if !defined(NODOC)
CD_DOCS= ${CD}/docs
.endif
@@ -480,6 +485,7 @@ release rerelease:
KERNELS \
KERNELS_BASE \
KERNEL_FLAGS \
+ MAKE_DVD \
MAKE_FLOPPIES \
MAKE_ISOS \
NOCDROM \
@@ -922,6 +928,18 @@ cdrom.1:
find . -depth -print | cpio -dumpl ${CD_LIVEFS} ) ; \
fi \
done
+.if defined(MAKE_DVD)
+ @echo "Building DVD filesystem image as well as CDROM"
+ @mkdir -p ${CD_DVD}/${BUILDNAME}
+ @for i in ${DISTRIBUTIONS} ; \
+ do \
+ if [ -d ${RD}/trees/$${i} ] ; then \
+ chflags -R noschg ${RD}/trees/$${i} || true ; \
+ ( cd ${RD}/trees/$${i} && \
+ find . -depth -print | cpio -dumpl ${CD_DVD} ) ; \
+ fi \
+ done
+.endif
@echo "Copy GENERIC kernel to boot area"
@cp -Rp ${RD}/kernels/GENERIC/ ${CD_LIVEFS}/boot/kernel
@rm -f ${CD_LIVEFS}/boot/kernel/*.symbols
@@ -939,7 +957,24 @@ cdrom.1:
@rm -f ${CD_LIVEFS}/boot/device.hints
@cp ${RD}/trees/base/boot/device.hints ${CD_LIVEFS}/boot/device.hints
.endif
+.if defined(MAKE_DVD)
+ @cp -Rp ${RD}/kernels/GENERIC/ ${CD_DVD}/boot/kernel
+ @rm -f ${CD_DVD}/boot/kernel/*.symbols
+ @rm -f ${CD_DVD}/.profile
+ @cp ${.CURDIR}/fixit.profile ${CD_DVD}/.profile
+ @ln -sf /rescue ${CD_DVD}/stand
@echo "CD_VERSION = ${BUILDNAME}" > ${CD_LIVEFS}/cdrom.inf
+ @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DVD}/cdrom.inf
+ @rm -f ${CD_DVD}/boot/loader.conf
+ @cp ${RD}/mfsroot/mfsroot.gz ${CD_DVD}/boot/mfsroot.gz
+ @echo 'mfsroot_load="YES"' > ${CD_DVD}/boot/loader.conf
+ @echo 'mfsroot_type="mfs_root"' >> ${CD_DVD}/boot/loader.conf
+ @echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DVD}/boot/loader.conf
+.if exists(${RD}/trees/base/boot/device.hints)
+ @rm -f ${CD_DVD}/boot/device.hints
+ @cp ${RD}/trees/base/boot/device.hints ${CD_DVD}/boot/device.hints
+.endif
+.endif
touch ${.TARGET}
# Build disc1 and disc2 cdrom images
@@ -974,11 +1009,37 @@ cdrom.2:
@mkdir -p ${CD_DISC2}
@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf
@echo "CD_VOLUME = 2" >> ${CD_DISC2}/cdrom.inf
+.if defined(MAKE_DVD)
+.if defined(MAKE_FLOPPIES)
+ @cd ${RD} && find floppies -print | cpio -dumpl ${CD_DVD}
+.endif
+ @cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DVD}/${BUILDNAME}
+.if !defined(NODOC)
+ @for i in ${DIST_DOCS_ARCH_INDEP}; do \
+ cp ${RND}/${RELNOTES_LANG}/$$i/article.txt \
+ ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
+ cp ${RND}/${RELNOTES_LANG}/$$i/article.html \
+ ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
+ done
+ @for i in ${DIST_DOCS_ARCH_DEP}; do \
+ cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt \
+ ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
+ cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.html \
+ ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
+ done
+ @cp ${RND}/${RELNOTES_LANG}/readme/docbook.css ${CD_DVD}
+.endif
+ @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DVD}/cdrom.inf
+ @echo "CD_VOLUME = 1" >> ${CD_DVD}/cdrom.inf
+.endif
.if !defined(NODOC)
echo "Building CDROM docs filesystem image"
@mkdir -p ${CD_DOCS}
@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DOCS}/cdrom.inf
@mkdir -p ${CD_DOCS}/usr/share/doc
+.if defined(MAKE_DVD)
+ @mkdir -p ${CD_DVD}/usr/share/doc
+.endif
@for i in `ls ${CD_LIVEFS}/usr/share/doc`; do \
if [ -L ${CD_LIVEFS}/usr/share/doc/$$i -o \
-d /usr/doc/$$i ]; then \
@@ -986,6 +1047,10 @@ cdrom.2:
${CD_DOCS}/usr/share/doc; \
fi \
done
+.if defined(MAKE_DVD)
+ @cd ${CD_DOCS}/usr/share/doc && find . -print | \
+ cpio -dumpl ${CD_DVD}/usr/share/doc
+.endif
.endif
touch ${.TARGET}
@@ -1016,6 +1081,9 @@ CD_DISC1_PKGS= ${CD_PACKAGE_TREE}/disc1
.if exists(${CD_PACKAGE_TREE}/disc2)
CD_DISC2_PKGS= ${CD_PACKAGE_TREE}/disc2
.endif
+.if exists(${CD_PACKAGE_TREE}/dvd)
+CD_DVD_PKGS= ${CD_PACKAGE_TREE}/dvd
+.endif
.endif
.endif
@@ -1035,6 +1103,12 @@ iso.1:
FreeBSD_Packages \
${CD}/${BUILDNAME}-${TARGET}-disc2.iso ${CD_DISC2} \
${CD_DISC2_PKGS}
+.if defined(MAKE_DVD)
+ @sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \
+ FreeBSD_Install \
+ ${CD}/${BUILDNAME}-${TARGET}-dvd.iso ${CD_DVD} \
+ ${CD_DVD_PKGS}
+.endif
.if !defined(NODOC)
@sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh \
FreeBSD_Documentation \
OpenPOWER on IntegriCloud