summaryrefslogtreecommitdiffstats
path: root/release/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'release/Makefile')
-rw-r--r--release/Makefile156
1 files changed, 48 insertions, 108 deletions
diff --git a/release/Makefile b/release/Makefile
index 6198b8e..f6afc1c 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -8,8 +8,13 @@
# memstick: Builds memory stick image (memstick.img)
# mini-memstick: Builds minimal memory stick image (mini-memstick.img)
# ftp: Sets up FTP distribution area (ftp)
-# release: Build all media and FTP distribution area
-# install: Copies all release media into ${DESTDIR}
+# release: Invokes real-release, vm-release, and cloudware-release targets
+# real-release: Build all media and FTP distribution area
+# vm-release: Build all virtual machine image targets
+# cloudware-release: Build all cloud hosting provider targets
+# install: Invokes the release-install and vm-install targets
+# release-install: Copies all release installation media into ${DESTDIR}
+# vm-install: Copies all virtual machine images into ${DESTDIR}
#
# Variables affecting the build process:
# WORLDDIR: location of src tree -- must have built world and default kernel
@@ -26,6 +31,7 @@
# WITH_VMIMAGES: if set, build virtual machine images with the release
# WITH_COMPRESSED_VMIMAGES: if set, compress virtual machine disk images
# with xz(1) (extremely time consuming)
+# WITH_CLOUDWARE: if set, build cloud hosting disk images with the release
# TARGET/TARGET_ARCH: architecture of built release
#
@@ -119,13 +125,7 @@ IMAGES+= uefi-dvd1.iso
. endif
.endif
-VMTARGETS= vm-base vm-image
-VMFORMATS?= vhd vmdk qcow2 raw
-VMSIZE?= 20G
-VMBASE?= vm
-AZURECONF?= ${.CURDIR}/tools/azure.conf
-
-CLEANFILES= packagesystem *.txz MANIFEST system ${IMAGES}
+CLEANFILES= packagesystem *.txz MANIFEST release ${IMAGES}
.if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES)
. for I in ${IMAGES}
CLEANFILES+= ${I}.xz
@@ -134,22 +134,7 @@ CLEANFILES+= ${I}.xz
.if defined(WITH_DVD) && !empty(WITH_DVD)
CLEANFILES+= pkg-stage
.endif
-.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
-CLEANFILES+= ${VMBASE}.img
-. for FORMAT in ${VMFORMATS}
-CLEANFILES+= ${VMBASE}.${FORMAT}
-. endfor
-.endif
-CLEANDIRS= dist ftp release bootonly dvd
-.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
-CLEANDIRS+= ${VMTARGETS}
-.endif
-.if exists(${.CURDIR}/${TARGET}/mk-azure.sh)
-CLEANFILES+= ${OSRELEASE}.vhd \
- ${OSRELEASE}.vhd.raw \
- azure.img
-CLEANDIRS+= vm-azure
-.endif
+CLEANDIRS= dist ftp disc1 bootonly dvd
beforeclean:
chflags -R noschg .
.include <bsd.obj.mk>
@@ -196,50 +181,50 @@ reldoc:
.endfor
cp rdoc/${RELNOTES_LANG}/readme/docbook.css reldoc
-system: packagesystem
+disc1: packagesystem
# Install system
- mkdir -p release
+ mkdir -p ${.TARGET}
cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \
- DESTDIR=${.OBJDIR}/release WITHOUT_RESCUE=1 WITHOUT_KERNEL_SYMBOLS=1 \
+ DESTDIR=${.OBJDIR}/${.TARGET} WITHOUT_RESCUE=1 WITHOUT_KERNEL_SYMBOLS=1 \
WITHOUT_PROFILE=1 WITHOUT_SENDMAIL=1 WITHOUT_ATF=1 WITHOUT_LIB32=1
# Copy distfiles
- mkdir -p release/usr/freebsd-dist
- cp *.txz MANIFEST release/usr/freebsd-dist
+ mkdir -p ${.TARGET}/usr/freebsd-dist
+ cp *.txz MANIFEST ${.TARGET}/usr/freebsd-dist
# Copy documentation, if generated
.if !defined(NODOC)
- cp reldoc/* release
+ cp reldoc/* ${.TARGET}
.endif
# Set up installation environment
- ln -fs /tmp/bsdinstall_etc/resolv.conf release/etc/resolv.conf
- echo sendmail_enable=\"NONE\" > release/etc/rc.conf
- echo hostid_enable=\"NO\" >> release/etc/rc.conf
- cp ${.CURDIR}/rc.local release/etc
+ ln -fs /tmp/bsdinstall_etc/resolv.conf ${.TARGET}/etc/resolv.conf
+ echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf
+ echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf
+ cp ${.CURDIR}/rc.local ${.TARGET}/etc
touch ${.TARGET}
bootonly: packagesystem
# Install system
- mkdir -p bootonly
+ mkdir -p ${.TARGET}
cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \
- DESTDIR=${.OBJDIR}/bootonly WITHOUT_AMD=1 WITHOUT_AT=1 \
+ DESTDIR=${.OBJDIR}/${.TARGET} WITHOUT_AMD=1 WITHOUT_AT=1 \
WITHOUT_GAMES=1 WITHOUT_GROFF=1 \
WITHOUT_INSTALLLIB=1 WITHOUT_LIB32=1 WITHOUT_MAIL=1 \
WITHOUT_NCP=1 WITHOUT_TOOLCHAIN=1 WITHOUT_PROFILE=1 \
WITHOUT_INSTALLIB=1 WITHOUT_RESCUE=1 WITHOUT_DICT=1 \
WITHOUT_KERNEL_SYMBOLS=1
# Copy manifest only (no distfiles) to get checksums
- mkdir -p bootonly/usr/freebsd-dist
- cp MANIFEST bootonly/usr/freebsd-dist
+ mkdir -p ${.TARGET}/usr/freebsd-dist
+ cp MANIFEST ${.TARGET}/usr/freebsd-dist
# Copy documentation, if generated
.if !defined(NODOC)
- cp reldoc/* bootonly
+ cp reldoc/* ${.TARGET}
.endif
# Set up installation environment
- ln -fs /tmp/bsdinstall_etc/resolv.conf bootonly/etc/resolv.conf
- echo sendmail_enable=\"NONE\" > bootonly/etc/rc.conf
- echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf
- cp ${.CURDIR}/rc.local bootonly/etc
+ ln -fs /tmp/bsdinstall_etc/resolv.conf ${.TARGET}/etc/resolv.conf
+ echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf
+ echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf
+ cp ${.CURDIR}/rc.local ${.TARGET}/etc
-dvd:
+dvd: packagesystem
# Install system
mkdir -p ${.TARGET}
cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \
@@ -259,13 +244,13 @@ dvd:
touch ${.TARGET}
release.iso: disc1.iso
-disc1.iso: system
- sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b ${VOLUME_LABEL}_CD ${.TARGET} release
+disc1.iso: disc1
+ sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b ${VOLUME_LABEL}_CD ${.TARGET} disc1
-uefi-disc1.iso: system
+uefi-disc1.iso: disc1
.if exists(${.CURDIR}/${TARGET}/mkisoimages-uefi.sh)
sh ${.CURDIR}/${TARGET}/mkisoimages-uefi.sh -b ${VOLUME_LABEL}_UEFICD \
- ${.TARGET} release
+ ${.TARGET} disc1
.endif
uefi-bootonly.iso: bootonly
@@ -287,21 +272,21 @@ bootonly.iso: bootonly
sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b ${VOLUME_LABEL}_BO ${.TARGET} bootonly
memstick: memstick.img
-memstick.img: system
- sh ${.CURDIR}/${TARGET}/make-memstick.sh release ${.TARGET}
+memstick.img: disc1
+ sh ${.CURDIR}/${TARGET}/make-memstick.sh disc1 ${.TARGET}
mini-memstick: mini-memstick.img
-mini-memstick.img: system
+mini-memstick.img: bootonly
sh ${.CURDIR}/${TARGET}/make-memstick.sh bootonly ${.TARGET}
uefi-memstick: uefi-memstick.img
-uefi-memstick.img: system
+uefi-memstick.img: disc1
.if exists(${.CURDIR}/${TARGET}/make-uefi-memstick.sh)
- sh ${.CURDIR}/${TARGET}/make-uefi-memstick.sh release ${.TARGET}
+ sh ${.CURDIR}/${TARGET}/make-uefi-memstick.sh disc1 ${.TARGET}
.endif
uefi-mini-memstick: uefi-mini-memstick.img
-uefi-mini-memstick.img: system
+uefi-mini-memstick.img: bootonly
.if exists(${.CURDIR}/${TARGET}/make-uefi-memstick.sh)
sh ${.CURDIR}/${TARGET}/make-uefi-memstick.sh bootonly ${.TARGET}
.endif
@@ -327,14 +312,16 @@ ftp: packagesystem
mkdir -p ftp
cp *.txz MANIFEST ftp
-release:
+release: real-release vm-release cloudware-release
+ touch ${.TARGET}
+
+real-release:
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj
${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS}
-.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
- ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${VMTARGETS}
-.endif
-install:
+install: release-install vm-install
+
+release-install:
.if defined(DESTDIR) && !empty(DESTDIR)
mkdir -p ${DESTDIR}
.endif
@@ -347,52 +334,5 @@ install:
.endfor
cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256
cd ${DESTDIR} && md5 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.MD5
-.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
- mkdir -p ${DESTDIR}/vmimages
-. for FORMAT in ${VMFORMATS}
- cp -p ${VMBASE}.${FORMAT} \
- ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
-. endfor
-. if defined(WITH_COMPRESSED_VMIMAGES) && !empty(WITH_COMPRESSED_VMIMAGES)
-# This is very time consuming, so defer it after the images are moved to
-# the DESTDIR.
-. for FORMAT in ${VMFORMATS}
- # Don't keep the originals. There is a copy in ${.OBJDIR} if needed.
- ${XZCMD} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
-. endfor
-. endif
- cd ${DESTDIR}/vmimages && sha256 ${OSRELEASE}* > \
- ${DESTDIR}/vmimages/CHECKSUM.SHA256
- cd ${DESTDIR}/vmimages && md5 ${OSRELEASE}* > \
- ${DESTDIR}/vmimages/CHECKSUM.MD5
-.endif
-
-vm-base:
-.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
-. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
- env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
- ${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
- ${VMBASE}.img ${WORLDDIR} ${.OBJDIR}/${.TARGET} ${VMSIZE}
-. endif
-.endif
- touch ${.TARGET}
-vm-image: vm-base
-.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
-. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh)
-. for FORMAT in ${VMFORMATS}
- env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
- ${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
- ${VMBASE}.img ${FORMAT} ${VMBASE}.${FORMAT}
-. endfor
-. endif
-.endif
- touch ${.TARGET}
-
-vm-azure:
-.if exists(${.CURDIR}/${TARGET}/mk-azure.sh)
- env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} AZURECONF=${AZURECONF} \
- ${.CURDIR}/${TARGET}/mk-azure.sh ${.TARGET} azure.img \
- ${WORLDDIR} ${.TARGET} ${VMSIZE} ${OSRELEASE}.vhd
-.endif
- touch ${.TARGET}
+.include "${.CURDIR}/Makefile.vm"
OpenPOWER on IntegriCloud