mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-27 19:23:24 +02:00
make.sh: Split environment and make variables
This got very messed up in the past and I think we would benefit greatly from splitting this again for a less cluttered environment in the build chroot and reusability of the make commands for the different stages. Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
128
make.sh
128
make.sh
@@ -630,6 +630,36 @@ enterchroot() {
|
|||||||
PATH="${CUSTOM_PATH}:${PATH}"
|
PATH="${CUSTOM_PATH}:${PATH}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Create a new environment
|
||||||
|
local env=(
|
||||||
|
# Clear the previous environment
|
||||||
|
"--ignore-environment"
|
||||||
|
|
||||||
|
HOME="/root"
|
||||||
|
TERM="${TERM}"
|
||||||
|
PS1="${PS1}"
|
||||||
|
PATH="${PATH}"
|
||||||
|
|
||||||
|
# Compiler flags
|
||||||
|
CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}"
|
||||||
|
CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}"
|
||||||
|
RUSTFLAGS="${RUSTFLAGS}"
|
||||||
|
|
||||||
|
# Compiler cache
|
||||||
|
CCACHE_DIR="/usr/src/ccache"
|
||||||
|
CCACHE_TEMPDIR="${CCACHE_TEMPDIR}"
|
||||||
|
CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}"
|
||||||
|
|
||||||
|
# Go cache
|
||||||
|
GOCACHE="/usr/src/ccache/go"
|
||||||
|
|
||||||
|
# Append the fake environment
|
||||||
|
$(fake_environ)
|
||||||
|
|
||||||
|
# Setup the QEMU environment
|
||||||
|
$(qemu_environ)
|
||||||
|
)
|
||||||
|
|
||||||
# Configure a new namespace
|
# Configure a new namespace
|
||||||
local unshare=(
|
local unshare=(
|
||||||
# Create a new cgroup namespace
|
# Create a new cgroup namespace
|
||||||
@@ -657,43 +687,8 @@ enterchroot() {
|
|||||||
"--kill-child"
|
"--kill-child"
|
||||||
)
|
)
|
||||||
|
|
||||||
PATH="${PATH}" \
|
# Put everything together
|
||||||
unshare \
|
unshare "${unshare[@]}" chroot "${BUILD_DIR}" env "${env[@]}" "$@"
|
||||||
"${unshare[@]}" \
|
|
||||||
chroot "${BUILD_DIR}" \
|
|
||||||
env -i \
|
|
||||||
HOME="/root" \
|
|
||||||
TERM="${TERM}" \
|
|
||||||
PS1="${PS1}" \
|
|
||||||
PATH="${PATH}" \
|
|
||||||
SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
|
|
||||||
PAKFIRE_TREE="${PAKFIRE_TREE}" \
|
|
||||||
NAME="${NAME}" \
|
|
||||||
SNAME="${SNAME}" \
|
|
||||||
VERSION="${VERSION}" \
|
|
||||||
CORE="${CORE}" \
|
|
||||||
SLOGAN="${SLOGAN}" \
|
|
||||||
TOOLS_DIR="${TOOLS_DIR}" \
|
|
||||||
CONFIG_ROOT="${CONFIG_ROOT}" \
|
|
||||||
CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
|
|
||||||
CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
|
|
||||||
RUSTFLAGS="${RUSTFLAGS}" \
|
|
||||||
BUILDTARGET="${BUILDTARGET}" \
|
|
||||||
CROSSTARGET="${CROSSTARGET}" \
|
|
||||||
BUILD_ARCH="${BUILD_ARCH}" \
|
|
||||||
BUILD_PLATFORM="${BUILD_PLATFORM}" \
|
|
||||||
CCACHE_DIR=/usr/src/ccache \
|
|
||||||
CCACHE_TEMPDIR="${CCACHE_TEMPDIR}" \
|
|
||||||
CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
|
|
||||||
GOCACHE="/usr/src/ccache/go" \
|
|
||||||
KVER="${KVER}" \
|
|
||||||
XZ_OPT="${XZ_OPT}" \
|
|
||||||
DEFAULT_PARALLELISM="${DEFAULT_PARALLELISM}" \
|
|
||||||
SYSTEM_PROCESSORS="${SYSTEM_PROCESSORS}" \
|
|
||||||
SYSTEM_MEMORY="${SYSTEM_MEMORY}" \
|
|
||||||
$(fake_environ) \
|
|
||||||
$(qemu_environ) \
|
|
||||||
"$@"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
entershell() {
|
entershell() {
|
||||||
@@ -777,9 +772,45 @@ run_command() {
|
|||||||
|
|
||||||
local basedir="${BASEDIR}"
|
local basedir="${BASEDIR}"
|
||||||
local command=()
|
local command=()
|
||||||
local env=()
|
|
||||||
local quiet="false"
|
local quiet="false"
|
||||||
|
|
||||||
|
# Pass some variables
|
||||||
|
local vars=(
|
||||||
|
BUILD_ARCH="${BUILD_ARCH}"
|
||||||
|
BUILD_PLATFORM="${BUILD_PLATFORM}"
|
||||||
|
|
||||||
|
# Targets
|
||||||
|
CROSSTARGET="${CROSSTARGET}"
|
||||||
|
BUILDTARGET="${BUILDTARGET}"
|
||||||
|
|
||||||
|
# Paths
|
||||||
|
CONFIG_ROOT="${CONFIG_ROOT}"
|
||||||
|
IMAGES_DIR="/usr/src/images"
|
||||||
|
TOOLS_DIR="${TOOLS_DIR}"
|
||||||
|
|
||||||
|
# Distro Information
|
||||||
|
NAME="${NAME}"
|
||||||
|
SNAME="${SNAME}"
|
||||||
|
VERSION="${VERSION}"
|
||||||
|
CORE="${CORE}"
|
||||||
|
SLOGAN="${SLOGAN}"
|
||||||
|
SYSTEM_RELEASE="${SYSTEM_RELEASE}"
|
||||||
|
PAKFIRE_TREE="${PAKFIRE_TREE}"
|
||||||
|
|
||||||
|
# Kernel Version
|
||||||
|
KVER="${KVER}"
|
||||||
|
|
||||||
|
# System Properties
|
||||||
|
SYSTEM_PROCESSORS="${SYSTEM_PROCESSORS}"
|
||||||
|
SYSTEM_MEMORY="${SYSTEM_MEMORY}"
|
||||||
|
|
||||||
|
# Parallelism
|
||||||
|
DEFAULT_PARALLELISM="${DEFAULT_PARALLELISM}"
|
||||||
|
|
||||||
|
# Compression Options
|
||||||
|
XZ_OPT="${XZ_OPT}"
|
||||||
|
)
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "${1}" in
|
case "${1}" in
|
||||||
--chroot)
|
--chroot)
|
||||||
@@ -799,7 +830,7 @@ run_command() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
*=*)
|
*=*)
|
||||||
env+=( "${1}" )
|
vars+=( "${1}" )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
@@ -816,16 +847,19 @@ run_command() {
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Pass LFS_BASEDIR
|
||||||
|
vars+=(
|
||||||
|
"LFS_BASEDIR=${basedir}"
|
||||||
|
)
|
||||||
|
|
||||||
# Build the command
|
# Build the command
|
||||||
command+=(
|
command+=(
|
||||||
# Run a shell
|
# Run make
|
||||||
"bash"
|
"make"
|
||||||
|
"--directory=${basedir}/lfs"
|
||||||
# Enable tracing
|
"--file=${pkg}"
|
||||||
"-x"
|
"${vars[@]}"
|
||||||
|
"${actions[@]}"
|
||||||
# Run the following command
|
|
||||||
"-c" "cd ${basedir}/lfs && make -f ${pkg} LFS_BASEDIR=${basedir} ${env[@]} ${actions[@]}"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Return code
|
# Return code
|
||||||
|
|||||||
Reference in New Issue
Block a user