diff options
author | jhb <jhb@FreeBSD.org> | 2005-03-21 19:17:48 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-03-21 19:17:48 +0000 |
commit | d2bfc9bfcaac7c7a11b7e7f28a9afde50280d9d6 (patch) | |
tree | 00819b71c8f3800552fef8fba7cc5d6e2d9a3806 /release/Makefile | |
parent | 4772bfd2a4b6c8ebdaf374ec83b68f27ae0178f2 (diff) | |
download | FreeBSD-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/Makefile | 38 |
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> |