1# $FreeBSD: head/release/Makefile 272414 2014-10-02 16:13:12Z gjb $ |
2# 3# Makefile for building releases and release media. 4# 5# User-driven targets: 6# cdrom: Builds release CD-ROM media (disc1.iso) 7# dvdrom: Builds release DVD-ROM media (dvd1.iso) 8# memstick: Builds memory stick image (memstick.img) 9# mini-memstick: Builds minimal memory stick image (mini-memstick.img) --- 8 unchanged lines hidden (view full) --- 18# DOCDIR: location of doc tree (default: /usr/doc) 19# NOPKG: if set, do not distribute third-party packages 20# NOPORTS: if set, do not distribute ports tree 21# NOSRC: if set, do not distribute source tree 22# NODOC: if set, do not generate release documentation 23# WITH_DVD: if set, generate dvd1.iso 24# WITH_COMPRESSED_IMAGES: if set, compress installation images with xz(1) 25# (uncompressed images are not removed) |
26# WITH_VMIMAGES: if set, build virtual machine images with the release 27# WITH_COMPRESSED_VMIMAGES: if set, compress virtual machine disk images 28# with xz(1) (extremely time consuming) |
29# TARGET/TARGET_ARCH: architecture of built release 30# 31 32WORLDDIR?= ${.CURDIR}/.. 33PORTSDIR?= /usr/ports 34DOCDIR?= /usr/doc 35RELNOTES_LANG?= en_US.ISO8859-1 36XZCMD?= /usr/bin/xz --- 55 unchanged lines hidden (view full) --- 92.endif 93.if exists(${.CURDIR}/${TARGET}/make-memstick.sh) 94RELEASE_TARGETS+= memstick.img 95RELEASE_TARGETS+= mini-memstick.img 96IMAGES+= memstick.img 97IMAGES+= mini-memstick.img 98.endif 99 |
100VMTARGETS= vm-base vm-image 101VMFORMATS?= vhd vmdk qcow2 raw 102VMSIZE?= 20G 103VMBASE?= vm 104 |
105CLEANFILES= packagesystem *.txz MANIFEST system ${IMAGES} 106.if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES) 107. for I in ${IMAGES} 108CLEANFILES+= ${I}.xz 109. endfor 110.endif 111.if defined(WITH_DVD) && !empty(WITH_DVD) 112CLEANFILES+= pkg-stage 113.endif |
114.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 115CLEANFILES+= ${VMBASE}.img 116. for FORMAT in ${VMFORMATS} 117CLEANFILES+= ${VMBASE}.${FORMAT} 118. endfor 119.endif |
120CLEANDIRS= dist ftp release bootonly dvd |
121.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 122CLEANDIRS+= ${VMTARGETS} 123.endif |
124beforeclean: 125 chflags -R noschg . 126.include <bsd.obj.mk> 127clean: beforeclean 128 129base.txz: 130 mkdir -p ${DISTDIR} 131 cd ${WORLDDIR} && ${IMAKE} distributeworld DISTDIR=${.OBJDIR}/${DISTDIR} --- 143 unchanged lines hidden (view full) --- 275ftp: packagesystem 276 rm -rf ftp 277 mkdir -p ftp 278 cp *.txz MANIFEST ftp 279 280release: 281 ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj 282 ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS} |
283.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 284 ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${VMTARGETS} 285.endif |
286 287install: 288.if defined(DESTDIR) && !empty(DESTDIR) 289 mkdir -p ${DESTDIR} 290.endif 291 cp -a ftp ${DESTDIR}/ 292.for I in ${IMAGES} 293 cp -p ${I} ${DESTDIR}/${OSRELEASE}-${I} 294. if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES) 295 ${XZCMD} -k ${DESTDIR}/${OSRELEASE}-${I} 296. endif 297.endfor 298 cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256 299 cd ${DESTDIR} && md5 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.MD5 |
300.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 301 mkdir -p ${DESTDIR}/vmimages 302. for FORMAT in ${VMFORMATS} 303 cp -p ${VMBASE}.${FORMAT} \ 304 ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT} 305. endfor 306. if defined(WITH_COMPRESSED_VMIMAGES) && !empty(WITH_COMPRESSED_VMIMAGES) 307# This is very time consuming, so defer it after the images are moved to 308# the DESTDIR. 309. for FORMAT in ${VMFORMATS} 310 # Don't keep the originals. There is a copy in ${.OBJDIR} if needed. 311 ${XZCMD} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT} 312. endfor 313. endif 314 cd ${DESTDIR}/vmimages && sha256 ${OSRELEASE}* > \ 315 ${DESTDIR}/vmimages/CHECKSUM.SHA256 316 cd ${DESTDIR}/vmimages && md5 ${OSRELEASE}* > \ 317 ${DESTDIR}/vmimages/CHECKSUM.MD5 318.endif 319 320vm-base: 321.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 322. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh) 323 env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ 324 ${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \ 325 ${VMBASE}.img ${WORLDDIR} ${.OBJDIR}/${.TARGET} ${VMSIZE} 326. endif 327.endif 328 touch ${.TARGET} 329 330vm-image: vm-base 331.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) 332. if exists(${.CURDIR}/${TARGET}/mk-vmimage.sh) 333. for FORMAT in ${VMFORMATS} 334 env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ 335 ${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \ 336 ${VMBASE}.img ${FORMAT} ${VMBASE}.${FORMAT} 337. endfor 338. endif 339.endif 340 touch ${.TARGET} |