summaryrefslogtreecommitdiffstats
path: root/release/Makefile
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-03-21 19:17:48 +0000
committerjhb <jhb@FreeBSD.org>2005-03-21 19:17:48 +0000
commitd2bfc9bfcaac7c7a11b7e7f28a9afde50280d9d6 (patch)
tree00819b71c8f3800552fef8fba7cc5d6e2d9a3806 /release/Makefile
parent4772bfd2a4b6c8ebdaf374ec83b68f27ae0178f2 (diff)
downloadFreeBSD-src-d2bfc9bfcaac7c7a11b7e7f28a9afde50280d9d6.zip
FreeBSD-src-d2bfc9bfcaac7c7a11b7e7f28a9afde50280d9d6.tar.gz
Add a new package splitting mechanism to replace print-cdrom-packages.sh.
The new system tries to be more automated so that there is less work for the re's to do. It also no longer uses a /usr/ports tree as its input, but uses the generated package build including its INDEX file as its input. It parses the INDEX file, determines which packages should go on which ISO images, and then builds full-fledged trees of packages that can be added as an argument to mkisofs along with the tree built by 'make release' to build a full CD image. The INDEX files in the populated trees are generated with volume media number to make use of sysinstall's multiple volume support so that the user is kindly prompted to insert the appropriate disc for a package if it is not on the current disc. There is still some more tweaking to be done here, but this part needs to be committed. This stuff will all be used to prep the 5.4 release as well. Tested by: kensmith, others on re@ Reviewed by: re
Diffstat (limited to 'release/Makefile')
-rw-r--r--release/Makefile38
1 files changed, 37 insertions, 1 deletions
diff --git a/release/Makefile b/release/Makefile
index 7f88d4f..3a01832 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -299,7 +299,7 @@ BOOTABLE="-b"
DOCREL= doc.1 doc.2
.endif
-.if !make(release) && !make(rerelease)
+.if !make(release) && !make(rerelease) && !make(package-split)
BINMAKE!= cd ${.CURDIR}/..; ${MAKE} -V BINMAKE
WMAKEENV!= cd ${.CURDIR}/..; \
${BINMAKE} ${CROSSENV} -f Makefile.inc1 -V WMAKEENV
@@ -1214,4 +1214,40 @@ buildBootFloppy:
${BOOTINODE} ${FLPLABEL}
@echo "Created ${RD}/floppies/${FSIMAGE}.flp"
+.if make(package-split)
+# Targets related to making a package split
+#
+# PKG_COPY instructs the script to copy the actual package files rather than
+# make hard links
+# PKG_TREE is the path to the package tree to be split
+# PKG_DEST is the path to the destination tree to create the split in
+# PKG_VERBOSE asks for verbose output of the layout process
+
+.if defined(PKG_COPY)
+PKG_DO_COPY= cp
+.else
+PKG_DO_COPY= ln
+.endif
+PKG_INDEX= ${PKG_DEST}/INDEX.master
+PKG_ENV?=
+.if defined(TARGET_ARCH)
+PKG_ENV+= PKG_ARCH=${TARGET_ARCH}
+.endif
+.if defined(PKG_VERBOSE)
+PKG_ENV+= PKG_VERBOSE=1
+.endif
+
+package-split:
+.if !defined(PKG_TREE)
+ @echo "PKG_TREE must be defined" && exit 1
+.endif
+.if !defined(PKG_DEST)
+ @echo "PKG_DEST must be defined" && exit 1
+.endif
+ @env ${PKG_ENV} python ${.CURDIR}/scripts/package-split.py \
+ ${PKG_TREE}/INDEX ${PKG_INDEX}
+ @env ${PKG_ENV} sh ${.CURDIR}/scripts/package-trees.sh ${PKG_DO_COPY} \
+ ${PKG_INDEX} ${PKG_TREE} ${PKG_DEST}
+.endif
+
.include <bsd.obj.mk>
OpenPOWER on IntegriCloud