config/functions: rework setup_toolchain, add cmake configuration

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2016-09-23 14:29:49 -07:00 committed by Lukas Rusak
parent e726b1a358
commit ccb0683056
No known key found for this signature in database
GPG Key ID: 8C310C807E7393A3
2 changed files with 79 additions and 62 deletions

View File

@ -1,62 +1,81 @@
setup_toolchain() {
if [ "$1" = target ]; then
export DESTIMAGE="target"
unset CPP
export CC=$TARGET_CC
export CXX=$TARGET_CXX
export LD=$TARGET_LD
export AS=$TARGET_AS
export AR=$TARGET_AR
export NM=$TARGET_NM
export RANLIB=$TARGET_RANLIB
export OBJCOPY=$TARGET_OBJCOPY
export OBJDUMP=$TARGET_OBJDUMP
export STRIP=$TARGET_STRIP
export CPPFLAGS="$TARGET_CPPFLAGS"
export CFLAGS="$TARGET_CFLAGS"
export CXXFLAGS="$TARGET_CXXFLAGS"
export LDFLAGS="$TARGET_LDFLAGS"
export PKG_CONFIG_PATH="$TARGET_PKG_CONFIG_PATH"
export PKG_CONFIG_LIBDIR="$TARGET_PKG_CONFIG_LIBDIR"
export PKG_CONFIG_SYSROOT_DIR="$TARGET_PKG_CONFIG_SYSROOT_DIR"
# set python defaults
export _python_sysroot="$SYSROOT_PREFIX"
export _python_prefix=/usr
export _python_exec_prefix=/usr
# set CMAKE configfile for target
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$TARGET_NAME.conf
elif [ "$1" = host ]; then
export DESTIMAGE="host"
unset CPP
export AWK=$HOST_AWK
export CC=$HOST_CC
export CXX=$HOST_CXX
export LD=$HOST_LD
export AS=$HOST_AS
export AR=$HOST_AR
export NM=$HOST_NM
export RANLIB=$HOST_RANLIB
export OBJCOPY=$HOST_OBJCOPY
export STRIP=$HOST_STRIP
export CPPFLAGS="$HOST_CPPFLAGS"
export CFLAGS="$HOST_CFLAGS"
export CXXFLAGS="$HOST_CXXFLAGS"
export LDFLAGS="$HOST_LDFLAGS"
export PKG_CONFIG_PATH="$HOST_PKG_CONFIG_PATH"
export PKG_CONFIG_LIBDIR="$HOST_PKG_CONFIG_LIBDIR"
export PKG_CONFIG_SYSROOT_DIR="$HOST_PKG_CONFIG_SYSROOT_DIR"
# set CMAKE configfile for host
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$HOST_NAME.conf
fi
case "$1" in
target)
export DESTIMAGE="target"
export CC="$TARGET_CC"
export CXX="$TARGET_CXX"
export CPP="$TARGET_CPP"
export LD="$TARGET_LD"
export AS="$TARGET_AS"
export AR="$TARGET_AR"
export NM="$TARGET_NM"
export RANLIB=$TARGET_RANLIB
export OBJCOPY=$TARGET_OBJCOPY
export OBJDUMP=$TARGET_OBJDUMP
export STRIP=$TARGET_STRIP
export CPPFLAGS="$TARGET_CPPFLAGS"
export CFLAGS="$TARGET_CFLAGS"
export CXXFLAGS="$TARGET_CXXFLAGS"
export LDFLAGS="$TARGET_LDFLAGS"
export PKG_CONFIG_PATH="$TARGET_PKG_CONFIG_PATH"
export PKG_CONFIG_LIBDIR="$TARGET_PKG_CONFIG_LIBDIR"
export PKG_CONFIG_SYSROOT_DIR="$TARGET_PKG_CONFIG_SYSROOT_DIR"
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$TARGET_NAME.conf
export CMAKE="cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF -DCMAKE_INSTALL_PREFIX=/usr"
if [ ! -f $CMAKE_CONF ] ; then
mkdir -p $ROOT/$TOOLCHAIN/etc
echo "SET(CMAKE_SYSTEM_NAME Linux)" >> $CMAKE_CONF
echo "SET(CMAKE_SYSTEM_VERSION 1)" >> $CMAKE_CONF
echo "SET(CMAKE_SYSTEM_PROCESSOR $TARGET_ARCH)" >> $CMAKE_CONF
echo "SET(CMAKE_C_COMPILER $CC)" >> $CMAKE_CONF
echo "SET(CMAKE_CXX_COMPILER $CXX)" >> $CMAKE_CONF
echo "SET(CMAKE_CPP_COMPILER $CPP)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH $SYSROOT_PREFIX)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> $CMAKE_CONF
fi
export _python_sysroot="$SYSROOT_PREFIX"
export _python_prefix=/usr
export _python_exec_prefix=/usr
;;
host)
export DESTIMAGE="host"
export AWK=$HOST_AWK
export CC="$HOST_CC"
export CXX="$HOST_CXX"
export CPP="$HOST_CPP"
export LD="$HOST_LD"
export AS="$HOST_AS"
export AR="$HOST_AR"
export NM="$HOST_NM"
export RANLIB="$HOST_RANLIB"
export OBJCOPY="$HOST_OBJCOPY"
export STRIP="$HOST_STRIP"
export CPPFLAGS="$HOST_CPPFLAGS"
export CFLAGS="$HOST_CFLAGS"
export CXXFLAGS="$HOST_CXXFLAGS"
export LDFLAGS="$HOST_LDFLAGS"
export PKG_CONFIG_PATH="$HOST_PKG_CONFIG_PATH"
export PKG_CONFIG_LIBDIR="$HOST_PKG_CONFIG_LIBDIR"
export PKG_CONFIG_SYSROOT_DIR="$HOST_PKG_CONFIG_SYSROOT_DIR"
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$HOST_NAME.conf
export CMAKE="cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF -DCMAKE_INSTALL_PREFIX=$ROOT/$TOOLCHAIN"
if [ ! -f $CMAKE_CONF ] ; then
mkdir -p $TOOLCHAIN/etc
echo "SET(CMAKE_SYSTEM_NAME Linux)" >> $CMAKE_CONF
echo "SET(CMAKE_SYSTEM_VERSION 1)" >> $CMAKE_CONF
echo "SET(CMAKE_C_COMPILER $CC)" >> $CMAKE_CONF
echo "SET(CMAKE_CXX_COMPILER $CXX)" >> $CMAKE_CONF
echo "SET(CMAKE_CPP_COMPILER $CXX)" >> $CMAKE_CONF
echo "SET(CMAKE_AR $AR)" >> $CMAKE_CONF # hum?
echo "SET(CMAKE_FIND_ROOT_PATH $ROOT/$TOOLCHAIN)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)" >> $CMAKE_CONF
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)" >> $CMAKE_CONF
fi
;;
esac
}
kernel_path() {

View File

@ -168,10 +168,9 @@ XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers
TOOLCHAIN_LANGUAGES=c
[ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++
unset TARGET_CPP
TARGET_CC=${TARGET_PREFIX}gcc
TARGET_CXX=${TARGET_PREFIX}g++
TARGET_CPP=${TARGET_PREFIX}cpp
TARGET_LD=${TARGET_PREFIX}ld
TARGET_AS=${TARGET_PREFIX}as
TARGET_AR=${TARGET_PREFIX}ar
@ -187,11 +186,10 @@ TARGET_PKG_CONFIG_PATH=""
TARGET_PKG_CONFIG_LIBDIR="$SYSROOT_PREFIX/usr/lib/pkgconfig:$SYSROOT_PREFIX/usr/share/pkgconfig"
TARGET_PKG_CONFIG_SYSROOT_DIR="$SYSROOT_PREFIX"
unset HOST_CPP
HOST_AWK=gawk
HOST_CC=$ROOT/$TOOLCHAIN/bin/host-gcc
HOST_CXX=$ROOT/$TOOLCHAIN/bin/host-g++
HOST_CPP=cpp
HOST_LD=ld
HOST_AS=as
HOST_AR=ar