diff options
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-04-11 14:30:45 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-04-11 14:30:45 +0000
commit299a8b95acffd0ba0006856a2380fcf8fb0a95b4 (patch)
parenta03467b1bafc4c6ef17a788b1a99cd19a29b0937 (diff)
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.
Notes: svn path=/head/; revision=220540
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}
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
+ -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
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
+.Cm install
.\" 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 .
+.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
+.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
-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
The following sequence of commands can be used to build a