build folders can be reused between versions, very useful in cases where the version number change (e.g. Major.Minor => Major.Minor+1) is only cosmetic and there is no real need to rebuild all packages/toolchain.
		
			
				
	
	
		
			113 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0-or-later
 | 
						|
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
# setup initial directorys (relative to root)
 | 
						|
  CONFIG=config
 | 
						|
  SCRIPTS=scripts
 | 
						|
  PACKAGES=packages
 | 
						|
  SOURCES=${SOURCES_DIR:-$ROOT/sources}
 | 
						|
  BUILD_ROOT=${BUILD_DIR:-$ROOT}
 | 
						|
  BUILD_BASE=build
 | 
						|
  TARGET_IMG=${TARGET_DIR:-$ROOT/target}
 | 
						|
  ADDONS=addons
 | 
						|
 | 
						|
# include ARCH specific options
 | 
						|
  if [ -f config/arch.$TARGET_ARCH ]; then
 | 
						|
    . config/arch.$TARGET_ARCH
 | 
						|
  fi
 | 
						|
 | 
						|
[ -z "${HOST_NAME}" ] && export HOST_NAME="$($LOCAL_CC -dumpmachine)"
 | 
						|
TARGET_NAME=$TARGET_GCC_ARCH-libreelec-linux-gnu${TARGET_ABI}
 | 
						|
 | 
						|
BUILD=${BUILD_ROOT}/${BUILD_BASE}.${DISTRONAME}-${DEVICE:-$PROJECT}.${TARGET_ARCH}-${LIBREELEC_VERSION}
 | 
						|
if [ "${LIBREELEC_VERSION}" = "devel" ] ; then
 | 
						|
  BUILD=${BUILD_ROOT}/${BUILD_BASE}.${DISTRONAME}-${DEVICE:-$PROJECT}.${TARGET_ARCH}-${OS_VERSION}-${LIBREELEC_VERSION}
 | 
						|
fi
 | 
						|
 | 
						|
if [ "${BUILD_NO_VERSION}" = "yes" ]; then
 | 
						|
  BUILD=${BUILD_ROOT}/${BUILD_BASE}.${DISTRONAME}-${DEVICE:-$PROJECT}.${TARGET_ARCH}
 | 
						|
fi
 | 
						|
 | 
						|
if [ -n "$BUILD_SUFFIX" ]; then
 | 
						|
  BUILD=$BUILD-$BUILD_SUFFIX
 | 
						|
fi
 | 
						|
 | 
						|
THREAD_CONTROL=${BUILD}/.threads
 | 
						|
 | 
						|
TARGET_ADDONS="$TARGET_IMG/$ADDONS/$ADDON_PATH"
 | 
						|
ADDON_BUILD="$BUILD/$ADDONS/$1"
 | 
						|
STAMPS=$BUILD/.stamps
 | 
						|
STAMPS_INSTALL=$BUILD/image/.stamps
 | 
						|
DOCS=DOCS
 | 
						|
TOOLCHAIN=$BUILD/toolchain
 | 
						|
SYSROOT_PREFIX=$TOOLCHAIN/$TARGET_NAME/sysroot
 | 
						|
LIB_PREFIX=$SYSROOT_PREFIX/usr
 | 
						|
TARGET_PREFIX=$TOOLCHAIN/bin/$TARGET_NAME-
 | 
						|
 | 
						|
FAKEROOT_SCRIPT=$BUILD/.fakeroot
 | 
						|
 | 
						|
if [ -z "$INSTALL" ]; then
 | 
						|
  INSTALL=$BUILD/image/system
 | 
						|
fi
 | 
						|
 | 
						|
. config/sources
 | 
						|
 | 
						|
MAKE="$TOOLCHAIN/bin/make"
 | 
						|
 | 
						|
XORG_PATH_DRI=/usr/lib/dri
 | 
						|
XORG_PATH_XKB=/usr/share/X11/xkb
 | 
						|
XORG_PATH_XKB_OUTPUT=/var/lib/xkb
 | 
						|
XORG_PATH_RGB=/usr/lib/X11/rgb
 | 
						|
XORG_PATH_MODULES=/usr/lib/xorg/modules
 | 
						|
XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers
 | 
						|
 | 
						|
. config/optimize
 | 
						|
 | 
						|
# use ARM toolchain on 64/32 split builds
 | 
						|
if [ -z "$KERNEL_TOOLCHAIN" -a "$TARGET_KERNEL_ARCH" = "arm64" -a "$TARGET_ARCH" = "arm" ]; then
 | 
						|
  if [ "${MACHINE_HARDWARE_NAME}" = "x86_64" ]; then
 | 
						|
    KERNEL_TOOLCHAIN="aarch64-none-linux-gnu"
 | 
						|
  elif [ "${MACHINE_HARDWARE_NAME}" = "aarch64" ]; then
 | 
						|
    KERNEL_TOOLCHAIN="aarch64-none-elf"
 | 
						|
  else
 | 
						|
    die "No known toolchain available for ${MACHINE_HARDWARE_NAME}."
 | 
						|
  fi
 | 
						|
fi
 | 
						|
if [ -n "$KERNEL_TOOLCHAIN" ]; then
 | 
						|
  TARGET_KERNEL_PREFIX=$TOOLCHAIN/lib/gcc-arm-$KERNEL_TOOLCHAIN/bin/$KERNEL_TOOLCHAIN-
 | 
						|
else
 | 
						|
  TARGET_KERNEL_PREFIX=$TARGET_PREFIX
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$CCACHE_DIR" ]; then
 | 
						|
  export CCACHE_DIR=$BUILD/.ccache
 | 
						|
fi
 | 
						|
 | 
						|
if [[ -z "$PATH" || ( "$PATH" != "$TOOLCHAIN/bin:$TOOLCHAIN/sbin" && "$PATH" = "${PATH#$TOOLCHAIN/bin:$TOOLCHAIN/sbin:}" ) ]]; then
 | 
						|
  export PATH="$TOOLCHAIN/bin:$TOOLCHAIN/sbin${PATH:+":$PATH"}"
 | 
						|
fi
 | 
						|
 | 
						|
# redirect formatted output
 | 
						|
export BUILD_INDENT_SIZE=4
 | 
						|
SILENT_OUT=3
 | 
						|
VERBOSE_OUT=4
 | 
						|
 | 
						|
if [ "$VERBOSE" = yes ]; then
 | 
						|
  exec 3>&1
 | 
						|
  exec 4>&1
 | 
						|
else
 | 
						|
  exec 3>&2
 | 
						|
  exec 4>/dev/null
 | 
						|
fi
 | 
						|
 | 
						|
unset LD_LIBRARY_PATH
 | 
						|
 | 
						|
# multilib? nah
 | 
						|
unset CONFIG_SITE
 | 
						|
 | 
						|
# Ignore custom python installs...
 | 
						|
unset PYTHONHOME PYTHONPATH PYTHONSTARTUP
 | 
						|
export PYTHONNOUSERSITE=yes #disable PEP 370
 |