freebsd-ports/Tools/portbuild/scripts/buildenv

141 lines
2.9 KiB
Bash

#!/bin/sh
#
# Set up the build variables which are used by a given build
#
# Code fragment used by other scripts for commonality
validate_env() {
arch=$1
branch=$2
case ${arch} in
amd64|i386|sparc64)
continue
;;
*)
echo "Invalid arch: ${arch}"
return 1
;;
esac
case ${branch} in
6|6-exp|7|7-exp|8|8-exp)
continue
;;
*)
echo "Invalid branch: ${branch}"
return 1
;;
esac
return 0
}
resolve() {
pb=$1
arch=$2
branch=$3
buildid=$4
# Resolve a possibly symlinked buildid (e.g. "latest") to the
# underlying directory
pbab=${pb}/${arch}/${branch}
builddir=${pbab}/builds/${buildid}/
if [ ! -d ${builddir} ]; then
return 1
else
builddir=$(realpath ${builddir})
fi
buildid=${builddir%/}
buildid=${buildid##*/}
echo ${buildid}
}
buildenv () {
pb=$1
arch=$2
branch=$3
builddir=$4
# Have to use realpath because 'make index' doesn't deal with
# symlinks in PORTSDIR - kk 020311
if [ -d ${builddir}/ports/ ]; then
export PORTSDIR=$(realpath ${builddir}/ports)
else
export PORTSDIR=/nonexistent
fi
if [ -d ${builddir}/src/ ]; then
export SRCBASE=$(realpath ${builddir}/src)
else
export SRCBASE=/nonexistent
fi
if [ -f ${SRCBASE}/sys/sys/param.h ]; then
export OSVERSION=$(awk '/^#define __FreeBSD_version/ {print $3}' < ${SRCBASE}/sys/sys/param.h)
fi
if [ -f ${SRCBASE}/sys/conf/newvers.sh ]; then
export OSREL=$(awk 'BEGIN {FS="\""}; /^REVISION/ {print $2}' < ${SRCBASE}/sys/conf/newvers.sh)
export BRANCH=$(awk 'BEGIN {FS="\""}; /^BRANCH/ {print $2}' < ${SRCBASE}/sys/conf/newvers.sh)
fi
case "x$branch" in
x6)
export INDEXFILE=INDEX-6
;;
x6-exp)
export INDEXFILE=INDEX-6
;;
x7)
export INDEXFILE=INDEX-7
;;
x7-exp)
export INDEXFILE=INDEX-7
;;
x8)
export INDEXFILE=INDEX-8
;;
x8-exp)
export INDEXFILE=INDEX-8
;;
*)
echo "buildenv: invalid branch"
exit 1
;;
esac
export ARCH=${arch}
export MACHINE_ARCH=${arch}
export X11BASE=/usr/local
export LOCALBASE=/usr/local
export PKGSUFFIX=.tbz
export PKGZIPCMD=bzip2
export X_WINDOW_SYSTEM=xorg
#export USA_RESIDENT=yes
export SRCPREFIX=${SRCBASE} #XXX Which one is canonical?
export __MAKE_CONF=${pb}/${arch}/make.conf
export DISTDIR=${builddir}/distfiles
export PACKAGES=${builddir}/packages
# Don't pick up host OPTIONS
export PORT_DBDIR=/nonexistent
export UNAME_m=${ARCH}
export UNAME_n=freebsd.org
export UNAME_p=${ARCH}
export UNAME_r=${OSREL}-${BRANCH}
export UNAME_s=FreeBSD
export UNAME_v="FreeBSD ${OSREL}-${BRANCH} #0: $(date) kris@freebsd.org:/usr/src/sys/magic/kernel/path"
export BATCH=1
export PACKAGE_BUILDING=1
export FTP_PASSIVE_MODE=yes
#export FETCH_BEFORE_ARGS=-vvv
}