Repository navigation
Expand file tree
/
Copy pathsetenv
More file actions
93 lines (81 loc) · 4.38 KB
/
Copy pathsetenv
File metadata and controls
93 lines (81 loc) · 4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# setenv: every path and version default, computed from what bbxb.conf and the platform set.
# Sourced by bbxb (and by utilities/pkgtools.functions): the variables are read by the libraries.
# shellcheck shell=bash
NPROCS=$(nproc --ignore=1)
LTOPROCS=$(( $(nproc) / 4 ))
# The threads of one link (mold, gold, the ThinLTO jobs of lld and of LLVMgold), half of the CPUs:
# make -j runs several links at once, each would take every CPU, and a quarter made the big links slow
LINKPROCS=${LINKPROCS:-$(( $(nproc) / 2 > 0 ? $(nproc) / 2 : 1 ))}
# C standard for everything compiled with the host compiler (native builds, *_FOR_BUILD flags,
# toolchain bootstrap). GCC 15 and later default to C23, where "int f ()" is a prototype with no
# arguments, and several GNU packages built for the host (gettext, gmp...) still rely on the old
# meaning. Override from bbxb.conf when the host compiler needs something else.
HOST_CSTD=${HOST_CSTD:--std=gnu17}
# Same for the C++ sources of the toolchain bootstrap (binutils, gcc), empty by default: the
# gcc 16 sources build with the C++20 default of the host gcc 16, while any -std here breaks
# its configure (top level wants at least C++14, libcody exactly C++11 and it can only add its
# own -std=c++11 when CXXFLAGS carries none). Set -std=gnu++11 for gcc 14 sources.
HOST_CXXSTD=${HOST_CXXSTD:-}
HARCH=${HM}-${HOS}-${HLIBC}
DATA_PATH=${DATA_PATH:-/mnt/bbcrossbuild/datadir}
GLOBAL_LOG_PATH=${DATA_PATH}/${LOG_DIR:-logs}
GLOBAL_TOOLCHAIN_PATH=${DATA_PATH}/${TOOLCHAIN_DIR:-toolchain}
GLOBAL_CACHE_PATH=${DATA_PATH}/${CACHE_DIR:-cache}
DOWNLOAD_PATH=${DATA_PATH}/${DOWNLOAD_DIR:-downloads}
export GLOBAL_TOOLCHAIN_PATH
PROJECT_PATH=${DATA_PATH}/${PROJECT_NAME}
PLATFORM_PATH=${PROJECT_PATH}/${PLATFORM_NAME}
DISTOS_PATH=${PLATFORM_PATH}/${DISTOS_DIR:-distos}
SRC_PATH=${PROJECT_PATH}/${SRC_DIR:-sources}
BLD_PATH=${PLATFORM_PATH}/${BLD_DIR:-builds}
BIN_DIR=${BIN_DIR:-"binaries"}
BIN_PATH=${PLATFORM_PATH}/${BIN_DIR}
LOG_PATH=${PLATFORM_PATH}/${LOG_DIR:-logs}
STATUS_PATH=${PLATFORM_PATH}/${STATUS_DIR:-status}
TOOLCHAIN_PATH=${PLATFORM_PATH}/${TOOLCHAIN_DIR:-toolchain}
DISKIMAGES_PATH=${PLATFORM_PATH}/${DISKIMAGES_DIR:-diskimages}
USERDATA_PATH=${PROJECT_PATH}/${USERDATA_DIR:-data}
PACKAGES_PATH=${PLATFORM_PATH}/${PACKAGES_DIR:-packages}
export DISTOS_PATH BIN_PATH TOOLCHAIN_PATH
# The projects: the projects/ submodule, or any directory given as PRJ_PATH (absolute, or relative to
# the checkout, as bbxb reads it)
PRJ_PATH=${PRJ_PATH:-${PRJ_DIR:-projects}}
[[ ${PRJ_PATH} == /* ]] || PRJ_PATH=${BB_HOME}/${PRJ_PATH}
PKG_PATH=${BB_HOME}/${PKG_DIR:-packages}
# Name of the recipe file inside every packages/<group>/<name>/ directory: variable definitions
# sourced by build, the shell scripts live next to it as *.sh files
RECIPE_FILENAME=package.env
IMG_PATH=${BB_HOME}/${IMG_DIR:-images}
MULTI_ARCH=${MULTIARCH:-1}
if [ "${MULTI_ARCH}" -eq 1 ] && [ -z "${HARCH_LIB}" ]
then
TARGET_LIBSUFFIX="/${HARCH}"
fi
TARGET_PREFIX="${TARGET_PREFIX:-/usr}"
TARGET_EXECPREFIX="${TARGET_EXECPREFIX:-${TARGET_PREFIX}}"
TARGET_INCLUDEDIR="${TARGET_INCLUDEDIR:-${TARGET_PREFIX}/include}"
TARGET_LIBDIR="${TARGET_LIBDIR:-${TARGET_EXECPREFIX}/lib${HARCH_LIB}}"
TARGET_SYSCONFDIR="${TARGET_SYSCONFDIR:-/etc}"
TARGET_LOCALSTATEDIR="${TARGET_LOCALSTATEDIR:-/var}"
TARGET_SHAREDIR="${TARGET_SHAREDIR:-${TARGET_PREFIX}/share}"
export TARGET_PREFIX TARGET_EXECPREFIX TARGET_INCLUDEDIR TARGET_LIBDIR TARGET_SYSCONFDIR TARGET_LOCALSTATEDIR
CROSS_PREFIX="${TOOLCHAIN_PATH}"
CROSS_EXECPREFIX="${TOOLCHAIN_PATH}"
CROSS_LIBDIR="${TOOLCHAIN_PATH}/lib"
CROSS_INCLUDEDIR="${TOOLCHAIN_PATH}/include"
CROSS_SYSCONFDIR="${TOOLCHAIN_PATH}/etc"
CROSS_LOCALSTATEDIR="${TOOLCHAIN_PATH}/var"
CROSS_SHAREDIR="${TOOLCHAIN_PATH}/share"
NATIVE_PREFIX="${GLOBAL_TOOLCHAIN_PATH}"
NATIVE_EXECPREFIX="${GLOBAL_TOOLCHAIN_PATH}"
NATIVE_LIBDIR="${GLOBAL_TOOLCHAIN_PATH}/lib"
NATIVE_INCLUDEDIR="${GLOBAL_TOOLCHAIN_PATH}/include"
NATIVE_SYSCONFDIR="${GLOBAL_TOOLCHAIN_PATH}/etc"
NATIVE_LOCALSTATEDIR="${GLOBAL_TOOLCHAIN_PATH}/var"
NATIVE_SHAREDIR="${GLOBAL_TOOLCHAIN_PATH}/share"
BUILD_LIBSHARED=${BUILD_LIBSHARED:-1}
BUILD_LIBSTATIC=${BUILD_LIBSTATIC:-1}
TOOLCHAIN=${TOOLCHAIN:-gnu}
### The versions of the packages are in their recipes (lfs/gcc: GCC_VER=${GCC_VER:-<version>}): a
### project overrides one by setting the variable (GCC_VER, BINUTILS_VER, LLVM_VER, PYTHON_VER,
### PERL_VER, KERNEL_VER, GLIBC_VER, AUTOCONFARCHIVE_VER), the framework reads it with package_version