From owner-svn-src-all@FreeBSD.ORG Sun Mar 6 21:19:33 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E567E1065675; Sun, 6 Mar 2011 21:19:33 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D2BD88FC15; Sun, 6 Mar 2011 21:19:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p26LJX7t009923; Sun, 6 Mar 2011 21:19:33 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p26LJXXR009921; Sun, 6 Mar 2011 21:19:33 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201103062119.p26LJXXR009921@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 6 Mar 2011 21:19:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219349 - head/release X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Mar 2011 21:19:34 -0000 Author: nwhitehorn Date: Sun Mar 6 21:19:33 2011 New Revision: 219349 URL: http://svn.freebsd.org/changeset/base/219349 Log: Make this makefile a little more make-like (e.g. build only things that need to be rebuilt) and add an FTP-area target. Next will be docs and memstick builds. Modified: head/release/Makefile.bsdinstall Modified: head/release/Makefile.bsdinstall ============================================================================== --- head/release/Makefile.bsdinstall Sun Mar 6 20:12:09 2011 (r219348) +++ head/release/Makefile.bsdinstall Sun Mar 6 21:19:33 2011 (r219349) @@ -1,7 +1,22 @@ # $FreeBSD$ +# +# Makefile for building releases and release media. +# +# User-driven targets: +# cdrom: Builds release CD-ROM media (release.iso) +# ftp: Sets up FTP distribution area (ftp) +# release: Build all media and FTP distribution area +# +# Variables affecting the build process: +# WORLDDIR: location of src tree -- must have built world and default kernel +# (by default, the directory above this one) +# PORTSDIR: location of ports tree to distribute (default: /usr/ports) +# NOPORTS: if set, do not distribute ports tree +# NOSRC: if set, do not distribute source tree +# TARGET/TARGET_ARCH: architecture of built release +# WORLDDIR?= ${.CURDIR}/.. -DISTDIR?= ${DESTDIR}/usr/freebsd-dist PORTSDIR?= /usr/ports TARGET_ARCH?= ${MACHINE_ARCH} @@ -11,43 +26,79 @@ TARGET?= ${MACHINE} TARGET?= ${TARGET_ARCH} .endif IMAKE= ${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET} +DISTDIR= ${.OBJDIR}/dist -packagesystem: - -mkdir -p ${DISTDIR} - cd ${WORLDDIR} && ${IMAKE} distributeworld distributekernel DISTDIR=${DISTDIR} +EXTRA_PACKAGES= +.if !defined(NOPORTS) +EXTRA_PACKAGES+= ports.txz +.endif +.if !defined(NOSRC) +EXTRA_PACKAGES+= src.txz +.endif + +.include + +base.txz: + -mkdir ${DISTDIR} + cd ${WORLDDIR} && ${IMAKE} distributeworld DISTDIR=${DISTDIR} # Set up mergemaster root database sh ${.CURDIR}/scripts/mm-mtree.sh -F "TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET}" -D "${DISTDIR}/base" - cd ${WORLDDIR} && ${IMAKE} packageworld packagekernel DISTDIR=${DISTDIR} + cd ${WORLDDIR} && ${IMAKE} packageworld DISTDIR=${DISTDIR} + mv ${DISTDIR}/*.txz ${.OBJDIR} + +kernel.txz: + -mkdir ${DISTDIR} + cd ${WORLDDIR} && ${IMAKE} distributekernel packagekernel DISTDIR=${DISTDIR} + mv ${DISTDIR}/kernel.txz ${.OBJDIR} + +src.txz: -mkdir -p ${DISTDIR}/usr -# Package up src and ports trees ln -fs ${WORLDDIR} ${DISTDIR}/usr/src + cd ${DISTDIR} && tar cLvJf ${.OBJDIR}/src.txz --exclude .svn --exclude CVS usr/src + +ports.txz: + -mkdir -p ${DISTDIR}/usr ln -fs ${PORTSDIR} ${DISTDIR}/usr/ports -.if !defined(NOPORTS) - cd ${DISTDIR} && tar cLvJf ${DISTDIR}/ports.txz --exclude usr/ports/distfiles --exclude usr/ports/packages --exclude 'usr/ports/INDEX*' usr/ports -.endif -.if !defined(NOSRC) - cd ${DISTDIR} && tar cLvJf ${DISTDIR}/src.txz --exclude .svn --exclude CVS usr/src -.endif + cd ${DISTDIR} && tar cLvJf ${.OBJDIR}/ports.txz --exclude usr/ports/distfiles --exclude usr/ports/packages --exclude 'usr/ports/INDEX*' usr/ports -system: +system: packagesystem # Install system - -mkdir ${DISTDIR}/release - cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution DESTDIR=${DISTDIR}/release - -rm ${DISTDIR}/release/boot/kernel/*.symbols + -mkdir ${.OBJDIR}/release + cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution DESTDIR=${.OBJDIR}/release + -rm ${.OBJDIR}/release/boot/kernel/*.symbols # Copy distfiles - mkdir ${DISTDIR}/release/usr/freebsd-dist - cp ${DISTDIR}/*.txz ${DISTDIR}/release/usr/freebsd-dist + mkdir ${.OBJDIR}/release/usr/freebsd-dist + cp ${.OBJDIR}/*.txz ${.OBJDIR}/release/usr/freebsd-dist # Set up installation environment - ln -s /tmp/bsdinstall_etc/resolv.conf ${DISTDIR}/release/etc/resolv.conf - echo sendmail_enable=\"NONE\" > ${DISTDIR}/release/etc/rc.conf - echo hostid_enable=\"NO\" >> ${DISTDIR}/release/etc/rc.conf - touch ${DISTDIR}/release/etc/fstab - cp rc.local ${DISTDIR}/release/etc - -cdrom: - echo kernel_options=\"-C\" > ${DISTDIR}/release/boot/loader.conf - sh /usr/src/release/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${DISTDIR}/release.iso ${DISTDIR}/release - rm ${DISTDIR}/release/boot/loader.conf + ln -s /tmp/bsdinstall_etc/resolv.conf ${.OBJDIR}/release/etc/resolv.conf + echo sendmail_enable=\"NONE\" > ${.OBJDIR}/release/etc/rc.conf + echo hostid_enable=\"NO\" >> ${.OBJDIR}/release/etc/rc.conf + touch ${.OBJDIR}/release/etc/fstab + cp ${.CURDIR}/rc.local ${.OBJDIR}/release/etc + touch ${.OBJDIR}/${.TARGET} + +release.iso: system + echo kernel_options=\"-C\" > ${.OBJDIR}/release/boot/loader.conf + sh /usr/src/release/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.OBJDIR}/release.iso ${.OBJDIR}/release + rm ${.OBJDIR}/release/boot/loader.conf + +packagesystem: base.txz kernel.txz ${EXTRA_PACKAGES} + touch ${.OBJDIR}/${.TARGET} + +cdrom: release.iso +ftp: packagesystem + mkdir ${.OBJDIR}/ftp + cp ${.OBJDIR}/*.txz ${.OBJDIR}/ftp + +release: cdrom ftp + +clean: + chflags -R noschg ${.OBJDIR} + rm -rf ${.OBJDIR}/dist ${.OBJDIR}/ftp + rm -f packagesystem + rm -f ${.OBJDIR}/*.txz + rm -f system + rm -rf ${.OBJDIR}/release + rm -f ${.OBJDIR}/release.iso + rm -f ${.OBJDIR}/*.txz -release: packagesystem system cdrom -