svn commit: r183772 - head/release

Ken Smith kensmith at FreeBSD.org
Sun Oct 12 02:52:57 UTC 2008


Author: kensmith
Date: Sun Oct 12 02:52:56 2008
New Revision: 183772
URL: http://svn.freebsd.org/changeset/base/183772

Log:
  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

Modified:
  head/release/Makefile

Modified: head/release/Makefile
==============================================================================
--- head/release/Makefile	Sun Oct 12 02:31:09 2008	(r183771)
+++ head/release/Makefile	Sun Oct 12 02:52:56 2008	(r183772)
@@ -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 \


More information about the svn-src-head mailing list