mirror of
https://github.com/libretro/Lakka.git
synced 2024-12-01 03:51:15 +00:00
26465a829f
Signed-off-by: Stephan Raue <stephan@openelec.tv>
157 lines
4.3 KiB
Plaintext
157 lines
4.3 KiB
Plaintext
setup_toolchain() {
|
|
if [ "$1" = "--optimize" ]; then
|
|
OPTIMIZE=yes
|
|
shift
|
|
fi
|
|
|
|
if [ "$1" = target ]; then
|
|
export DESTIMAGE="target"
|
|
|
|
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 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 CMAKE configfile for target
|
|
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$TARGET_NAME.conf
|
|
|
|
elif [ "$1" = host ]; then
|
|
export DESTIMAGE="host"
|
|
|
|
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
|
|
}
|
|
|
|
kernel_path() {
|
|
ls -d $ROOT/$BUILD/linux-[0-9]*
|
|
}
|
|
|
|
tolower(){
|
|
echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
|
|
}
|
|
|
|
require_eglibc() {
|
|
if [ "$TARGET_LIBC" != eglibc ]; then
|
|
echo "$1 requires eglibc, aborting."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
require_cxx() {
|
|
if [ "$TOOLCHAIN_CXX" != yes ]; then
|
|
echo "$1 requires C++ toolchain support, aborting."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
xorg_drv_configure_prepend() {
|
|
incdir=${SYSROOT_PREFIX}/usr/include/xorg
|
|
for f in dri.h sarea.h dristruct.h exa.h damage.h xf86Module.h; do
|
|
incfile="$incdir/$f"
|
|
if [ -f "$incfile" ]; then
|
|
p=`echo "$incfile" | sed 'y%*+%pp%;s%[^_[:alnum:]]%_%g'`
|
|
eval "export ac_cv_file_$p=yes"
|
|
fi
|
|
done
|
|
}
|
|
|
|
add_user() {
|
|
# Usage: add_user "username" "password" "userid" "groupid" "description" "home" "shell"
|
|
mkdir -p ${INSTALL}/etc
|
|
touch ${INSTALL}/etc/passwd
|
|
if [ -z "`grep "$1:" ${INSTALL}/etc/passwd`" ]; then
|
|
echo "$1:$2:$3:$4:$5:$6:$7" >> ${INSTALL}/etc/passwd
|
|
fi
|
|
}
|
|
|
|
add_group() {
|
|
# Usage: add_group "groupname" "groupid" ("members")
|
|
mkdir -p ${INSTALL}/etc
|
|
touch ${INSTALL}/etc/group
|
|
if [ -z "`grep "$1:" ${INSTALL}/etc/group`" ]; then
|
|
echo "$1:x:$2:$3" >> ${INSTALL}/etc/group
|
|
fi
|
|
}
|
|
|
|
get_version() {
|
|
|
|
BUILD_DATE=`date +%Y%m%d`
|
|
|
|
if [ "$OPENELEC_VERSION" = devel -o "$OPENELEC_VERSION" = debug ]; then
|
|
GIT_BUILD=`git log --pretty=format:'' | wc -l`
|
|
GIT_HASH=`git log -n1 --format=%H`
|
|
OPENELEC_VERSION=$OPENELEC_VERSION-$BUILD_DATE-r$GIT_BUILD
|
|
fi
|
|
|
|
TARGET_VERSION="$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION"
|
|
}
|
|
|
|
do_autoreconf() {
|
|
if [ -e $ROOT/$TOOLCHAIN/bin/autoreconf ] &&
|
|
[ -e $ROOT/$TOOLCHAIN/bin/autoconf ] &&
|
|
[ -e $ROOT/$TOOLCHAIN/bin/automake ] &&
|
|
[ -e $ROOT/$TOOLCHAIN/bin/libtoolize ] &&
|
|
[ -e $ROOT/$TOOLCHAIN/bin/intltoolize ]; then
|
|
export LIBTOOL=$ROOT/$TOOLCHAIN/bin/libtool
|
|
export LIBTOOLIZE=$ROOT/$TOOLCHAIN/bin/libtoolize
|
|
export AUTOMAKE=$ROOT/$TOOLCHAIN/bin/automake
|
|
export ACLOCAL_DIR=$SYSROOT_PREFIX/usr/share/aclocal
|
|
export ACLOCAL="$ROOT/$TOOLCHAIN/bin/aclocal -I $ACLOCAL_DIR"
|
|
export AUTOCONF=$ROOT/$TOOLCHAIN/bin/autoconf
|
|
export AUTOHEADER=$ROOT/$TOOLCHAIN/bin/autoheader
|
|
export AUTORECONF="$ROOT/$TOOLCHAIN/bin/autoreconf -v -f -i -I $ACLOCAL_DIR"
|
|
|
|
mkdir -p $ACLOCAL_DIR
|
|
autoreconf --force --install -I $ACLOCAL_DIR $@
|
|
fi
|
|
}
|
|
|
|
strip_lto() {
|
|
# strip out LTO optimization from *FLAGS
|
|
CFLAGS=`echo $CFLAGS | sed -e "s|-flto||"`
|
|
CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-flto||"`
|
|
LDFLAGS=`echo $LDFLAGS | sed -e "s|-flto||"`
|
|
}
|
|
|
|
strip_gold() {
|
|
# strip out usage from GOLD linker
|
|
LDFLAGS=`echo $LDFLAGS | sed -e "s|-fuse-ld=gold||" -e "s|-fuse-linker-plugin||"`
|
|
}
|
|
|
|
strip_linker_plugin() {
|
|
# strip out usage from linker plugin
|
|
LDFLAGS=`echo $LDFLAGS | sed -e "s|-fuse-linker-plugin||"`
|
|
}
|