From 299a8b95acffd0ba0006856a2380fcf8fb0a95b4 Mon Sep 17 00:00:00 2001 From: Nathan Whitehorn Date: Mon, 11 Apr 2011 14:30:45 +0000 Subject: [PATCH] Add an install target to release/Makefile instead of grubbing around (and requesting that users grub around) in /usr/obj. Also make sure that make clean removes the bootonly media and clean up that target a little. --- release/Makefile | 21 +++++++++++++-------- release/generate-release.sh | 4 +--- share/man/man7/release.7 | 26 ++++++++++++++------------ 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/release/Makefile b/release/Makefile index 610d57a12537..477586152e0a 100644 --- a/release/Makefile +++ b/release/Makefile @@ -6,6 +6,7 @@ # cdrom: Builds release CD-ROM media (release.iso) # ftp: Sets up FTP distribution area (ftp) # release: Build all media and FTP distribution area +# install: Copies all release media into ${DESTDIR} # # Variables affecting the build process: # WORLDDIR: location of src tree -- must have built world and default kernel @@ -159,22 +160,26 @@ memstick: system packagesystem: base.txz kernel.txz ${EXTRA_PACKAGES} sh ${.CURDIR}/scripts/make-manifest.sh ${.OBJDIR}/*.txz > ${.OBJDIR}/MANIFEST - touch ${.OBJDIR}/${.TARGET} + touch ${.TARGET} cdrom: release.iso bootonly.iso ftp: packagesystem - rm -rf ${.OBJDIR}/ftp - mkdir ${.OBJDIR}/ftp - cp ${.OBJDIR}/*.txz ${.OBJDIR}/MANIFEST ${.OBJDIR}/ftp + rm -rf ftp + mkdir ftp + cp *.txz MANIFEST ftp release: obj ${RELEASE_TARGETS} clean: chflags -R noschg ${.OBJDIR} - rm -rf ${.OBJDIR}/dist ${.OBJDIR}/ftp + rm -rf dist ftp rm -f packagesystem - rm -f ${.OBJDIR}/*.txz ${.OBJDIR}/MANIFEST + rm -f *.txz MANIFEST rm -f system - rm -rf ${.OBJDIR}/release - rm -f ${.OBJDIR}/release.iso ${.OBJDIR}/memstick + rm -rf release bootonly + rm -f release.iso bootonly.iso memstick + +install: + -mkdir ${DESTDIR} + cp -a *.iso memstick ftp ${DESTDIR}/ diff --git a/release/generate-release.sh b/release/generate-release.sh index 275a93de443e..01b3e2711b0f 100755 --- a/release/generate-release.sh +++ b/release/generate-release.sh @@ -60,7 +60,5 @@ if [ -d $2/usr/doc ]; then fi chroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld buildkernel" || exit 1 -chroot $2 /bin/sh -c "cd /usr/src/release && make release" || exit 1 -mkdir $2/R -cp -pRP $2/usr/obj/usr/src/release/*.iso $2/usr/obj/usr/src/release/memstick $2/usr/obj/usr/src/release/ftp $2/R +chroot $2 /bin/sh -c "cd /usr/src/release && make release install DESTDIR=/R" || exit 1 diff --git a/share/man/man7/release.7 b/share/man/man7/release.7 index 04d8eb146a64..827a5ef502d5 100644 --- a/share/man/man7/release.7 +++ b/share/man/man7/release.7 @@ -153,17 +153,17 @@ The release makefile is fairly abstruse. Most developers will only be concerned with the .Cm release -target. +and +.Cm install +targets. .\" XXX: Some sort of introduction to this list? All the others have one. .Bl -tag -width ".Cm packagesystem" .It Cm release Meta-target to build all release media and distributions applicable to this -platform. All output goes to -.Pa ${.OBJDIR} , -which will likely be either -.Pa src/release -or the equivalent path in -.Pa /usr/obj . +platform. +.It Cm install +Copy all produced release media to +.Pa ${DESTDIR} . .It Cm cdrom Builds installation CD-ROM images. On some systems, this may require that .Xr mkisofs 8 @@ -173,8 +173,10 @@ and possibly that the .Xr md 4 (memory disk) device driver be present in the kernel (either by being compiled in or available as a module). This target -produces a file called +produces files called .Pa release.iso +and +.Pa bootonly.iso as its output. .It Cm memstick Builds an installation memory stick image named @@ -293,12 +295,12 @@ svn co svn://svn.freebsd.org/base/head src cd src make buildworld cd release -make obj release +make release install DESTDIR=/var/freebsd-snapshot .Ed .Pp -After running these commands, a complete system suitable for FTP or -CD-ROM distribution is available in the -.Pa /usr/obj/usr/src/release +After running these commands, all produced distribution files (tarballs +for FTP, CD-ROM images, etc.) are available in the +.Pa /var/freebsd-snapshot directory. .Pp The following sequence of commands can be used to build a