Merge pull request #2080 from MilhouseVH/le90_more_bs_optimisations

buildsystem: more optimisations
This commit is contained in:
Lukas Rusak 2017-10-14 14:34:56 -07:00 committed by GitHub
commit 1d7f6e733e
9 changed files with 73 additions and 60 deletions

View File

@ -6,7 +6,7 @@
# determine architecture's family # determine architecture's family
TARGET_SUBARCH=x86_64 TARGET_SUBARCH=x86_64
TARGET_GCC_ARCH=$(echo $TARGET_SUBARCH | sed -e "s,-,,") TARGET_GCC_ARCH="${TARGET_SUBARCH/-/}"
TARGET_KERNEL_ARCH=x86 TARGET_KERNEL_ARCH=x86
# setup ARCH specific *FLAGS # setup ARCH specific *FLAGS

View File

@ -189,6 +189,11 @@ get_pkg_variable() {
fi fi
} }
# return 0 if $2 in space-separated list $1, otherwise return 1
listcontains() {
[[ ${1} =~ (^|[[:space:]])${2}($|[[:space:]]) ]] && return 0 || return 1
}
install_binary_addon() { install_binary_addon() {
local addon_id="$1" addon_so local addon_id="$1" addon_so

View File

@ -31,7 +31,7 @@ HOST_CPPFLAGS=""
HOST_CFLAGS="-O2 -Wall -pipe -I$TOOLCHAIN/include" HOST_CFLAGS="-O2 -Wall -pipe -I$TOOLCHAIN/include"
HOST_CXXFLAGS="$HOST_CFLAGS" HOST_CXXFLAGS="$HOST_CFLAGS"
HOST_LDFLAGS="-Wl,-rpath,$TOOLCHAIN/lib -L$TOOLCHAIN/lib" HOST_LDFLAGS="-Wl,-rpath,$TOOLCHAIN/lib -L$TOOLCHAIN/lib"
HOST_LIBDIR="$TOOLCHAIN/lib" HOST_INCDIR="$TOOLCHAIN/include /usr/include"
# work around Ubuntu default C*FLAGS # work around Ubuntu default C*FLAGS
# see https://wiki.ubuntu.com/ToolChain/CompilerFlags#A-Wformat_-Wformat-security # see https://wiki.ubuntu.com/ToolChain/CompilerFlags#A-Wformat_-Wformat-security
@ -39,35 +39,40 @@ HOST_CFLAGS="$HOST_CFLAGS -Wno-format-security"
HOST_CXXFLAGS="$HOST_CXXFLAGS -Wno-format-security" HOST_CXXFLAGS="$HOST_CXXFLAGS -Wno-format-security"
# add distro specific library dirs # add distro specific library dirs
if [ -z "$HOST_LIBDIR" ]; then
HOST_LIBDIR="$TOOLCHAIN/lib"
# ubuntu/debian specific "multiarch support" # ubuntu/debian specific "multiarch support"
FAMILY_TRIPLET=$(echo $HOST_NAME | sed -e "s,$(uname -m),$(uname -i),") MACHINE_HARDWARE_NAME="$(uname -m)"
if [ -d /lib/$FAMILY_TRIPLET ]; then MACHINE_HARDWARE_PLATFORM="$(uname -i)"
HOST_LIBDIR="$HOST_LIBDIR /lib/$FAMILY_TRIPLET" FAMILY_TRIPLET=${HOST_NAME/${MACHINE_HARDWARE_NAME}/${MACHINE_HARDWARE_PLATFORM}}
fi if [ -d /lib/$FAMILY_TRIPLET ]; then
if [ -d /usr/lib/$FAMILY_TRIPLET ]; then HOST_LIBDIR="$HOST_LIBDIR /lib/$FAMILY_TRIPLET"
HOST_LIBDIR="$HOST_LIBDIR /usr/lib/$FAMILY_TRIPLET" fi
fi if [ -d /usr/lib/$FAMILY_TRIPLET ]; then
HOST_LIBDIR="$HOST_LIBDIR /usr/lib/$FAMILY_TRIPLET"
fi
# default multiarch support # default multiarch support
case "`uname -m`" in case "${MACHINE_HARDWARE_NAME}" in
i*86) i*86)
if [ -d /lib32 ]; then if [ -d /lib32 ]; then
HOST_LIBDIR="$HOST_LIBDIR /lib32" HOST_LIBDIR="$HOST_LIBDIR /lib32"
fi fi
if [ -d /usr/lib32 ]; then if [ -d /usr/lib32 ]; then
HOST_LIBDIR="$HOST_LIBDIR /usr/lib32" HOST_LIBDIR="$HOST_LIBDIR /usr/lib32"
fi fi
;; ;;
x86_64) x86_64)
if [ -d /lib64 ]; then if [ -d /lib64 ]; then
HOST_LIBDIR="$HOST_LIBDIR /lib64" HOST_LIBDIR="$HOST_LIBDIR /lib64"
fi fi
if [ -d /usr/lib64 ]; then if [ -d /usr/lib64 ]; then
HOST_LIBDIR="$HOST_LIBDIR /usr/lib64" HOST_LIBDIR="$HOST_LIBDIR /usr/lib64"
fi fi
;; ;;
esac esac
# default dirs # default dirs
HOST_LIBDIR="$HOST_LIBDIR /lib /usr/lib" export HOST_LIBDIR="$HOST_LIBDIR /lib /usr/lib"
HOST_INCDIR="$TOOLCHAIN/include /usr/include" fi

View File

@ -25,7 +25,7 @@ else
TARGET_ARCH="$ARCH" TARGET_ARCH="$ARCH"
fi fi
ROOT=`pwd` ROOT="${PWD}"
DISTRO_DIR="$ROOT/distributions" DISTRO_DIR="$ROOT/distributions"
PROJECT_DIR="$ROOT/projects" PROJECT_DIR="$ROOT/projects"
LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $PROJECT_DIR/$PROJECT/devices/$DEVICE/linux/linux.$TARGET_ARCH.conf $ROOT/packages/linux/package.mk" LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $PROJECT_DIR/$PROJECT/devices/$DEVICE/linux/linux.$TARGET_ARCH.conf $ROOT/packages/linux/package.mk"
@ -56,7 +56,7 @@ LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $PROJECT_DIR/
# Need to point to your actual cc # Need to point to your actual cc
# If you have ccache installed, take care that LOCAL_CC don't point to it # If you have ccache installed, take care that LOCAL_CC don't point to it
LOCAL_CC=`which gcc` [ -z "${LOCAL_CC}" ] && export LOCAL_CC="$(which gcc)"
if [ -z "$LOCAL_CC" ] ; then if [ -z "$LOCAL_CC" ] ; then
echo "***** Please install gcc *****" echo "***** Please install gcc *****"
@ -65,7 +65,7 @@ fi
# Need to point to your actual g++ # Need to point to your actual g++
# If you have ccache installed, take care that LOCAL_CXX don't point to it # If you have ccache installed, take care that LOCAL_CXX don't point to it
LOCAL_CXX=`which g++` [ -z "${LOCAL_CXX}" ] && export LOCAL_CXX="$(which g++)"
# verbose compilation mode (yes/no) # verbose compilation mode (yes/no)
VERBOSE="yes" VERBOSE="yes"
@ -73,9 +73,7 @@ fi
# Concurrency make level (-j option) # Concurrency make level (-j option)
# Try value 1 (default) to 4 on single CPU computer, or more on # Try value 1 (default) to 4 on single CPU computer, or more on
# multi-processor computer (like hyperthreading SMP CPU) # multi-processor computer (like hyperthreading SMP CPU)
if test -z "${CONCURRENCY_MAKE_LEVEL}"; then [ -z "${CONCURRENCY_MAKE_LEVEL}" ] && export CONCURRENCY_MAKE_LEVEL=$(grep -c '^processor[[:cntrl:]]*:' /proc/cpuinfo)
CONCURRENCY_MAKE_LEVEL=`cat /proc/cpuinfo | grep -c '^processor[[:cntrl:]]*:'`
fi
# cache size for ccache # cache size for ccache
# Set the maximum size of the files stored in the cache. You can specify a # Set the maximum size of the files stored in the cache. You can specify a

View File

@ -16,7 +16,7 @@ set -e
. config/arch.$TARGET_ARCH . config/arch.$TARGET_ARCH
fi fi
HOST_NAME=`$LOCAL_CC -dumpmachine` [ -z "${HOST_NAME}" ] && export HOST_NAME="$($LOCAL_CC -dumpmachine)"
TARGET_NAME=$TARGET_GCC_ARCH-libreelec-linux-gnu${TARGET_ABI} TARGET_NAME=$TARGET_GCC_ARCH-libreelec-linux-gnu${TARGET_ABI}
BUILD=$ROOT/$BUILD_BASE.$DISTRONAME-${DEVICE:-$PROJECT}.$TARGET_ARCH-$LIBREELEC_VERSION BUILD=$ROOT/$BUILD_BASE.$DISTRONAME-${DEVICE:-$PROJECT}.$TARGET_ARCH-$LIBREELEC_VERSION
@ -118,7 +118,7 @@ unset LD_LIBRARY_PATH
fi fi
if [ "$PKG_IS_ADDON" = "yes" ] ; then if [ "$PKG_IS_ADDON" = "yes" ] ; then
[ -z $PKG_SECTION ] && PKG_ADDON_ID="$PKG_NAME" || PKG_ADDON_ID="`echo $PKG_SECTION | sed 's,/,.,g'`.$PKG_NAME" [ -z $PKG_SECTION ] && PKG_ADDON_ID="$PKG_NAME" || PKG_ADDON_ID="${PKG_SECTION//\//.}.$PKG_NAME"
PKG_NEED_UNPACK="${PKG_NEED_UNPACK} $(get_pkg_directory $MEDIACENTER)" PKG_NEED_UNPACK="${PKG_NEED_UNPACK} $(get_pkg_directory $MEDIACENTER)"
fi fi
@ -134,7 +134,7 @@ unset LD_LIBRARY_PATH
echo "$PKG_URL" echo "$PKG_URL"
exit 1 exit 1
fi fi
PKG_SOURCE_NAME="$(basename "$PKG_URL")" PKG_SOURCE_NAME="${PKG_URL##*/}"
case $PKG_SOURCE_NAME in case $PKG_SOURCE_NAME in
${PKG_NAME}-${PKG_VERSION}.*) ${PKG_NAME}-${PKG_VERSION}.*)
PKG_SOURCE_NAME=$PKG_SOURCE_NAME PKG_SOURCE_NAME=$PKG_SOURCE_NAME

View File

@ -32,8 +32,4 @@ PKG_AUTORECONF="no"
get_graphicdrivers get_graphicdrivers
for drv in $GRAPHIC_DRIVERS; do listcontains "$GRAPHIC_DRIVERS" "vmware" && PKG_DEPENDS_TARGET+=" open-vm-tools"
if [ "$drv" = "vmware" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET open-vm-tools"
fi
done

View File

@ -31,15 +31,18 @@ if [ ! -f $PKG_DIR/package.mk ]; then
fi fi
# set defaults # set defaults
PKG_CONFIGURE_SCRIPT="" PKG_CONFIGURE_SCRIPT=""
PKG_MAKE_OPTS="" PKG_MAKE_OPTS=""
PKG_MAKEINSTALL_OPTS="" PKG_MAKEINSTALL_OPTS=""
PACKAGE_NAME=$(echo $1 | awk -F : '{print $1}') if [ "${1//:/}" != "${1}" ]; then
TARGET=$(echo $1 | awk -F : '{print $2}') PACKAGE_NAME="${1%:*}"
if [ -z "$TARGET" ]; then TARGET="${1#*:}"
TARGET="target" else
fi PACKAGE_NAME=$1
TARGET=
fi
[ -z "$TARGET" ] && TARGET="target"
if [ -n "$PKG_ARCH" -a ! "$PKG_ARCH" = "any" ]; then if [ -n "$PKG_ARCH" -a ! "$PKG_ARCH" = "any" ]; then
echo "$PKG_ARCH" | grep -q "$TARGET_ARCH" || exit 0 echo "$PKG_ARCH" | grep -q "$TARGET_ARCH" || exit 0

View File

@ -32,11 +32,14 @@ if [ -z "$INSTALL" ] ; then
fi fi
# set defaults # set defaults
PACKAGE_NAME=$(echo $1 | awk -F : '{print $1}') if [ "${1//:/}" != "${1}" ]; then
TARGET=$(echo $1 | awk -F : '{print $2}') PACKAGE_NAME="${1%:*}"
if [ -z "$TARGET" ]; then TARGET="${1#*:}"
TARGET="target" else
PACKAGE_NAME=$1
TARGET=
fi fi
[ -z "$TARGET" ] && TARGET="target"
STAMP=$STAMPS_INSTALL/$PACKAGE_NAME/install_$TARGET STAMP=$STAMPS_INSTALL/$PACKAGE_NAME/install_$TARGET
mkdir -p $STAMPS_INSTALL/$PACKAGE_NAME mkdir -p $STAMPS_INSTALL/$PACKAGE_NAME

View File

@ -25,11 +25,14 @@ if [ -z "$1" ]; then
exit 1 exit 1
fi fi
PACKAGE_NAME=$(echo $1 | awk -F : '{print $1}') if [ "${1//:/}" != "${1}" ]; then
TARGET=$(echo $1 | awk -F : '{print $2}') PACKAGE_NAME="${1%:*}"
if [ -z "$TARGET" ]; then TARGET="${1#*:}"
TARGET="target" else
fi PACKAGE_NAME=$1
TARGET=
fi
[ -z "$TARGET" ] && TARGET="target"
if [ -n "$PKG_ARCH" -a ! "$PKG_ARCH" = "any" ]; then if [ -n "$PKG_ARCH" -a ! "$PKG_ARCH" = "any" ]; then
echo "$PKG_ARCH" | grep -q "$TARGET_ARCH" || exit 0 echo "$PKG_ARCH" | grep -q "$TARGET_ARCH" || exit 0