mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-04-21 13:07:19 +00:00
117 lines
3.2 KiB
Plaintext
117 lines
3.2 KiB
Plaintext
# Do not build as root. Ever.
|
|
if [[ $EUID -eq 0 ]]; then
|
|
echo "Building as the root user is NOT supported. Use a regular user account for the build." 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# set default language for buildsystem
|
|
export LC_ALL=C
|
|
|
|
# determines DISTRO, if not forced by user
|
|
# default is LibreELEC
|
|
if [ -z "$DISTRO" ]; then
|
|
DISTRO="LibreELEC"
|
|
else
|
|
DISTRO="$DISTRO"
|
|
fi
|
|
|
|
# determines PROJECT, if not forced by user
|
|
# default is Generic
|
|
if [ -z "$PROJECT" ]; then
|
|
PROJECT="Generic"
|
|
else
|
|
PROJECT="$PROJECT"
|
|
fi
|
|
|
|
# determines TARGET_ARCH, if not forced by user (x86_64 / arm)
|
|
# default is x86_64
|
|
if [ -z "$ARCH" ]; then
|
|
TARGET_ARCH="x86_64"
|
|
else
|
|
TARGET_ARCH="$ARCH"
|
|
fi
|
|
|
|
ROOT="${PWD}"
|
|
DISTRO_DIR="$ROOT/distributions"
|
|
PROJECT_DIR="$ROOT/projects"
|
|
|
|
# include helper functions
|
|
. config/functions
|
|
|
|
# include versioning
|
|
. config/version
|
|
|
|
# read distro versioning if available
|
|
if [ -f "$DISTRO_DIR/$DISTRO/version" ]; then
|
|
. $DISTRO_DIR/$DISTRO/version
|
|
fi
|
|
|
|
# read distro options if available
|
|
if [ -f "$DISTRO_DIR/$DISTRO/options" ]; then
|
|
. $DISTRO_DIR/$DISTRO/options
|
|
fi
|
|
|
|
# read project options if available
|
|
if [ -f "$PROJECT_DIR/$PROJECT/options" ]; then
|
|
. $PROJECT_DIR/$PROJECT/options
|
|
fi
|
|
|
|
# read board options if available
|
|
if [ -f "$PROJECT_DIR/$PROJECT/devices/$DEVICE/options" ]; then
|
|
. $PROJECT_DIR/$PROJECT/devices/$DEVICE/options
|
|
fi
|
|
|
|
# projects can set KERNEL_NAME (kernel.img)
|
|
[ -z "$KERNEL_NAME" ] && KERNEL_NAME="KERNEL"
|
|
|
|
LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux $PROJECT_DIR/$PROJECT/patches/linux $ROOT/packages/linux"
|
|
[ -n "$DEVICE" ] && LINUX_DEPENDS+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/linux $PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/linux"
|
|
[ "$TARGET_ARCH" = "x86_64" ] && LINUX_DEPENDS+=" $ROOT/packages/linux-firmware/intel-ucode $ROOT/packages/linux-firmware/kernel-firmware"
|
|
|
|
# Need to point to your actual cc
|
|
# If you have ccache installed, take care that LOCAL_CC don't point to it
|
|
[ -z "${LOCAL_CC}" ] && export LOCAL_CC="$(which gcc)"
|
|
|
|
if [ -z "$LOCAL_CC" ] ; then
|
|
echo "***** Please install gcc *****"
|
|
exit 127
|
|
fi
|
|
|
|
# Need to point to your actual g++
|
|
# If you have ccache installed, take care that LOCAL_CXX don't point to it
|
|
[ -z "${LOCAL_CXX}" ] && export LOCAL_CXX="$(which g++)"
|
|
|
|
# verbose compilation mode (yes/no)
|
|
VERBOSE="yes"
|
|
|
|
# Concurrency make level (-j option)
|
|
# Try value 1 (default) to 4 on single CPU computer, or more on
|
|
# multi-processor computer (like hyperthreading SMP CPU)
|
|
[ -z "${CONCURRENCY_MAKE_LEVEL}" ] && export CONCURRENCY_MAKE_LEVEL=$(grep -c '^processor[[:cntrl:]]*:' /proc/cpuinfo)
|
|
|
|
# cache size for ccache
|
|
# Set the maximum size of the files stored in the cache. You can specify a
|
|
# value in gigabytes, megabytes or kilobytes by appending a G, M or K to the
|
|
# value. The default is gigabytes. The actual value stored is rounded down to
|
|
# the nearest multiple of 16 kilobytes. Keep in mind this per project .ccache
|
|
# directory.
|
|
CCACHE_CACHE_SIZE="10G"
|
|
|
|
# read options from $HOME if available
|
|
if [ -f "$HOME/.libreelec/options" ]; then
|
|
. $HOME/.libreelec/options
|
|
fi
|
|
|
|
# overwrite OEM_SUPPORT via commandline
|
|
if [ "$OEM" = yes -o "$OEM" = no ]; then
|
|
OEM_SUPPORT=$OEM
|
|
fi
|
|
|
|
[ -z ${_DEBUG_DEPENDS_LIST+x} ] && set_debug_depends
|
|
|
|
check_path >&2
|
|
check_config >&2
|
|
|
|
. config/graphic
|
|
. config/path $1
|