diff options
-rw-r--r-- | release/arm/BEAGLEBONE.conf | 53 | ||||
-rw-r--r-- | release/arm/PANDABOARD.conf | 53 | ||||
-rw-r--r-- | release/arm/RPI-B.conf | 58 | ||||
-rw-r--r-- | release/arm/WANDBOARD-QUAD.conf | 53 | ||||
-rw-r--r-- | release/arm/ZEDBOARD.conf | 51 | ||||
-rwxr-xr-x | release/arm/release.sh | 10 | ||||
-rw-r--r-- | release/release.conf.sample | 5 | ||||
-rwxr-xr-x | release/release.sh | 11 |
8 files changed, 173 insertions, 121 deletions
diff --git a/release/arm/BEAGLEBONE.conf b/release/arm/BEAGLEBONE.conf index 49c02249dc4f..025bcb7725c8 100644 --- a/release/arm/BEAGLEBONE.conf +++ b/release/arm/BEAGLEBONE.conf @@ -1,30 +1,37 @@ +#!/bin/sh # # $FreeBSD$ # +# Global variables. +export SVNROOT="svn://svn.FreeBSD.org/" +export SRCBRANCH="base/head@rHEAD" +export DOCBRANCH="doc/head@rHEAD" +export PORTBRANCH="ports/head@rHEAD" +export NODOC=yes +export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" +export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" +export CHROOTDIR="/scratch" +export EMBEDDEDBUILD=1 + # Build chroot configuration -TARGET="amd64" -TARGET_ARCH="amd64" -SVNROOT="svn://svn.FreeBSD.org/" -SRCBRANCH="base/head@rHEAD" -DOCBRANCH="doc/head@rHEAD" -PORTBRANCH="ports/head@rHEAD" -NODOC=yes +load_chroot_env() { + # Avoid collision with TARGET and XDEV. + unset XDEV XDEV_ARCH KERNEL + export TARGET="amd64" + export TARGET_ARCH="amd64" +} # Build target configuration -# Since this file is sourced by a script that runs another -# script, these must be exported. -set -a -WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" -KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" -CHROOTDIR="/scratch" -EMBEDDEDBUILD=1 -EMBEDDEDPORTS="lang/python textproc/gsed" -XDEV="arm" -XDEV_ARCH="armv6" -XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" -KERNEL="BEAGLEBONE" -CROCHETSRC="https://github.com/kientzle/crochet-freebsd" -CROCHETBRANCH="trunk" -set +a - +load_target_env() { + # Avoid collision with TARGET and XDEV. + unset TARGET TARGET_ARCH + export EMBEDDEDPORTS="lang/python textproc/gsed" + export XDEV="arm" + export XDEV_ARCH="armv6" + export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" + export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" + export KERNEL="BEAGLEBONE" + export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETBRANCH="trunk" +} diff --git a/release/arm/PANDABOARD.conf b/release/arm/PANDABOARD.conf index d932dac9c849..afc53d56f18d 100644 --- a/release/arm/PANDABOARD.conf +++ b/release/arm/PANDABOARD.conf @@ -1,30 +1,37 @@ +#!/bin/sh # # $FreeBSD$ # +# Global variables. +export SVNROOT="svn://svn.FreeBSD.org/" +export SRCBRANCH="base/head@rHEAD" +export DOCBRANCH="doc/head@rHEAD" +export PORTBRANCH="ports/head@rHEAD" +export NODOC=yes +export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" +export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" +export CHROOTDIR="/scratch" +export EMBEDDEDBUILD=1 +export EMBEDDEDPORTS="lang/python textproc/gsed" + # Build chroot configuration -TARGET="amd64" -TARGET_ARCH="amd64" -SVNROOT="svn://svn.FreeBSD.org/" -SRCBRANCH="base/head@rHEAD" -DOCBRANCH="doc/head@rHEAD" -PORTBRANCH="ports/head@rHEAD" -NODOC=yes +load_chroot_env() { + # Avoid collision with TARGET and XDEV. + unset XDEV XDEV_ARCH KERNEL + export TARGET="amd64" + export TARGET_ARCH="amd64" +} # Build target configuration -# Since this file is sourced by a script that runs another -# script, these must be exported. -set -a -WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" -KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" -CHROOTDIR="/scratch" -EMBEDDEDBUILD=1 -EMBEDDEDPORTS="lang/python textproc/gsed" -XDEV="arm" -XDEV_ARCH="armv6" -XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" -KERNEL="PANDABOARD" -CROCHETSRC="https://github.com/kientzle/crochet-freebsd" -CROCHETBRANCH="trunk" -set +a - +load_target_env() { + # Avoid collision with TARGET and XDEV. + unset TARGET TARGET_ARCH + export XDEV="arm" + export XDEV_ARCH="armv6" + export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" + export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" + export KERNEL="PANDABOARD" + export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETBRANCH="trunk" +} diff --git a/release/arm/RPI-B.conf b/release/arm/RPI-B.conf index 01137c06244d..22ffb2b10a1a 100644 --- a/release/arm/RPI-B.conf +++ b/release/arm/RPI-B.conf @@ -1,32 +1,40 @@ +#!/bin/sh # # $FreeBSD$ # +# Global variables. +export SVNROOT="svn://svn.FreeBSD.org/" +export SRCBRANCH="base/head@rHEAD" +export DOCBRANCH="doc/head@rHEAD" +export PORTBRANCH="ports/head@rHEAD" +export NODOC=yes +export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" +export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" +export CHROOTDIR="/scratch" +export EMBEDDEDBUILD=1 +export EMBEDDEDPORTS="lang/python textproc/gsed" + # Build chroot configuration -TARGET="amd64" -TARGET_ARCH="amd64" -SVNROOT="svn://svn.FreeBSD.org/" -SRCBRANCH="base/head@rHEAD" -DOCBRANCH="doc/head@rHEAD" -PORTBRANCH="ports/head@rHEAD" -NODOC=yes +load_chroot_env() { + # Avoid collision with TARGET and XDEV. + unset XDEV XDEV_ARCH KERNEL + export TARGET="amd64" + export TARGET_ARCH="amd64" +} # Build target configuration -# Since this file is sourced by a script that runs another -# script, these must be exported. -set -a -WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" -KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" -CHROOTDIR="/scratch" -EMBEDDEDBUILD=1 -EMBEDDEDPORTS="lang/python textproc/gsed" -XDEV="arm" -XDEV_ARCH="armv6" -XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" -KERNEL="RPI-B" -CROCHETSRC="https://github.com/kientzle/crochet-freebsd" -CROCHETBRANCH="trunk" -UBOOTSRC="https://github.com/gonzoua/u-boot-pi" -UBOOTBRANCH="trunk" -UBOOTDIR="/tmp/crochet/u-boot-rpi" -set +a +load_target_env() { + # Avoid collision with TARGET and XDEV. + unset TARGET TARGET_ARCH + export XDEV="arm" + export XDEV_ARCH="armv6" + export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" + export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" + export KERNEL="RPI-B" + export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETBRANCH="trunk" + export UBOOTSRC="https://github.com/gonzoua/u-boot-pi" + export UBOOTBRANCH="trunk" + export UBOOTDIR="/tmp/crochet/u-boot-rpi" +} diff --git a/release/arm/WANDBOARD-QUAD.conf b/release/arm/WANDBOARD-QUAD.conf index 15c257f4ea4c..67933df57aed 100644 --- a/release/arm/WANDBOARD-QUAD.conf +++ b/release/arm/WANDBOARD-QUAD.conf @@ -1,30 +1,37 @@ +#!/bin/sh # # $FreeBSD$ # +# Global variables. +export SVNROOT="svn://svn.FreeBSD.org/" +export SRCBRANCH="base/head@rHEAD" +export DOCBRANCH="doc/head@rHEAD" +export PORTBRANCH="ports/head@rHEAD" +export NODOC=yes +export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" +export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" +export CHROOTDIR="/scratch" +export EMBEDDEDBUILD=1 +export EMBEDDEDPORTS="lang/python textproc/gsed" + # Build chroot configuration -TARGET="amd64" -TARGET_ARCH="amd64" -SVNROOT="svn://svn.FreeBSD.org/" -SRCBRANCH="base/head@rHEAD" -DOCBRANCH="doc/head@rHEAD" -PORTBRANCH="ports/head@rHEAD" -NODOC=yes +load_chroot_env() { + # Avoid collision with TARGET and XDEV. + unset XDEV XDEV_ARCH KERNEL + export TARGET="amd64" + export TARGET_ARCH="amd64" +} # Build target configuration -# Since this file is sourced by a script that runs another -# script, these must be exported. -set -a -WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" -KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" -CHROOTDIR="/scratch" -EMBEDDEDBUILD=1 -EMBEDDEDPORTS="lang/python textproc/gsed" -XDEV="arm" -XDEV_ARCH="armv6" -XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" -KERNEL="WANDBOARD-QUAD" -CROCHETSRC="https://github.com/kientzle/crochet-freebsd" -CROCHETBRANCH="trunk" -set +a - +load_target_env() { + # Avoid collision with TARGET and XDEV. + unset TARGET TARGET_ARCH + export XDEV="arm" + export XDEV_ARCH="armv6" + export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" + export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" + export KERNEL="WANDBOARD-QUAD" + export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETBRANCH="trunk" +} diff --git a/release/arm/ZEDBOARD.conf b/release/arm/ZEDBOARD.conf index a1b8ebf3d18a..c35d692d346e 100644 --- a/release/arm/ZEDBOARD.conf +++ b/release/arm/ZEDBOARD.conf @@ -1,29 +1,36 @@ +#!/bin/sh # # $FreeBSD$ # +# Global variables. +export SVNROOT="svn://svn.FreeBSD.org/" +export SRCBRANCH="base/head@rHEAD" +export DOCBRANCH="doc/head@rHEAD" +export PORTBRANCH="ports/head@rHEAD" +export NODOC=yes +export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" +export export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" +export CHROOTDIR="/scratch" +export EMBEDDEDBUILD=1 + # Build chroot configuration -TARGET="amd64" -TARGET_ARCH="amd64" -SVNROOT="svn://svn.FreeBSD.org/" -SRCBRANCH="base/head@rHEAD" -DOCBRANCH="doc/head@rHEAD" -PORTBRANCH="ports/head@rHEAD" -NODOC=yes +load_chroot_env() { + # Avoid collision with TARGET and XDEV. + unset XDEV XDEV_ARCH KERNEL + export TARGET="amd64" + export TARGET_ARCH="amd64" +} # Build target configuration -# Since this file is sourced by a script that runs another -# script, these must be exported. -set -a -WORLD_FLAGS="-j $(sysctl -n hw.ncpu)" -KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))" -CHROOTDIR="/scratch" -EMBEDDEDBUILD=1 -XDEV="arm" -XDEV_ARCH="armv6" -XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" -KERNEL="ZEDBOARD" -CROCHETSRC="https://github.com/kientzle/crochet-freebsd" -CROCHETBRANCH="trunk" -set +a - +load_target_env() { + # Avoid collision with TARGET and XDEV. + unset TARGET TARGET_ARCH + export XDEV="arm" + export XDEV_ARCH="armv6" + export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" + export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" + export KERNEL="ZEDBOARD" + export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETBRANCH="trunk" +} diff --git a/release/arm/release.sh b/release/arm/release.sh index 479b8e53d048..cd7633a54f0b 100755 --- a/release/arm/release.sh +++ b/release/arm/release.sh @@ -94,9 +94,17 @@ install_uboot() { main() { # Build the 'xdev' target for crochet. eval chroot ${CHROOTDIR} make -C /usr/src \ - ${XDEV_FLAGS} TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ + ${XDEV_FLAGS} XDEV=${XDEV} XDEV_ARCH=${XDEV_ARCH} \ + TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ ${WORLD_FLAGS} xdev + # Install the cross-build symlinks to /usr/bin to make crochet + # happy. + eval chroot ${CHROOTDIR} make -C /usr/src \ + ${XDEV_FLAGS} XDEV=${XDEV} XDEV_ARCH=${XDEV_ARCH} \ + TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ + ${WORLD_FLAGS} xdev-links + # Run the ldconfig(8) startup script so /var/run/ld-elf*.so.hints # is created. eval chroot ${CHROOTDIR} /etc/rc.d/ldconfig forcerestart diff --git a/release/release.conf.sample b/release/release.conf.sample index 66f0cf99cfd8..32d44688bfaf 100644 --- a/release/release.conf.sample +++ b/release/release.conf.sample @@ -3,6 +3,11 @@ # $FreeBSD$ # +# Redefine environment variables here to override prototypes +# defined in release.sh. +load_chroot_env() { } +load_target_env() { } + ## Set the directory within which the release will be built. CHROOTDIR="/scratch" diff --git a/release/release.sh b/release/release.sh index 73b706e223f1..9d345a0d7a92 100755 --- a/release/release.sh +++ b/release/release.sh @@ -39,6 +39,10 @@ PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin" export PATH +# Prototypes that can be redefined per-chroot or per-target. +load_chroot_env() { } +load_target_env() { } + # The directory within which the release will be built. CHROOTDIR="/scratch" RELENGDIR="$(realpath $(dirname $(basename ${0})))" @@ -124,10 +128,6 @@ DOCBRANCH="${SVNROOT}${DOCBRANCH}" PORTBRANCH="${SVNROOT}${PORTBRANCH}" if [ -n "${EMBEDDEDBUILD}" ]; then - if [ -z "${XDEV}" ] || [ -z "${XDEV_ARCH}" ]; then - echo "ERROR: XDEV and XDEV_ARCH must be set in ${RELEASECONF}." - exit 1 - fi WITH_DVD= WITH_COMPRESSED_IMAGES= NODOC=yes @@ -161,6 +161,7 @@ if [ -n "${TARGET}" ] && [ -n "${TARGET_ARCH}" ]; then else ARCH_FLAGS= fi +load_chroot_env CHROOT_MAKEENV="${CHROOT_MAKEENV} MAKEOBJDIRPREFIX=${CHROOTDIR}/tmp/obj" CHROOT_WMAKEFLAGS="${MAKE_FLAGS} ${WORLD_FLAGS} ${CONF_FILES}" CHROOT_IMAKEFLAGS="${CONF_FILES}" @@ -229,6 +230,7 @@ if [ -n "${EMBEDDEDBUILD}" ]; then # release/, copy it to the /tmp/external directory within the chroot. # This allows building embedded releases without relying on updated # scripts and/or configurations to exist in the branch being built. + load_target_env if [ -e ${RELENGDIR}/tools/${XDEV}/crochet-${KERNEL}.conf ] && \ [ -e ${RELENGDIR}/${XDEV}/release.sh ]; then mkdir -p ${CHROOTDIR}/tmp/external/${XDEV}/ @@ -261,6 +263,7 @@ if [ -d ${CHROOTDIR}/usr/ports ]; then fi fi +load_target_env eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_WMAKEFLAGS} buildworld eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ |