2009-03-18 13:02:53 +01:00
|
|
|
set -e
|
|
|
|
|
|
|
|
# determine architecture's family
|
2009-11-29 05:53:05 +01:00
|
|
|
case $TARGET_ARCH in
|
|
|
|
i386)
|
|
|
|
TARGET_FAMILY=i686
|
|
|
|
;;
|
|
|
|
|
|
|
|
x86_64)
|
|
|
|
TARGET_FAMILY=x86_64
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
# determines TARGET_CPU, if not forced by user
|
|
|
|
if [ -z "$TARGET_CPU" ]; then
|
|
|
|
case $TARGET_ARCH in
|
|
|
|
i386)
|
2010-06-14 01:34:43 +02:00
|
|
|
TARGET_CPU=i686
|
2009-11-29 05:53:05 +01:00
|
|
|
;;
|
|
|
|
|
|
|
|
x86_64)
|
2010-06-14 01:34:43 +02:00
|
|
|
TARGET_CPU=i686
|
2009-11-29 05:53:05 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
2009-03-18 13:02:53 +01:00
|
|
|
|
buildsystem: big rework & cleanup - PART-1: split functions from 'config/path' to an seperate file 'config/functions', rework and cleanup some build scripts, remove references to $TARGET_PLATFORM, add support for more then one downloadurl for $PKG_URL (partially done), remove support for: $PKG_DIR/arch, $PKG_DIR/platform, $PKG_DIR/url files, remove support for *.diff patches, create download-stampfiles in sources/$PKG_NAME, create md5 files after download, add support to download all sources at once with './scripts/get'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2010-11-19 22:01:08 +01:00
|
|
|
# setup initial directorys
|
|
|
|
CONFIG=config
|
|
|
|
SCRIPTS=scripts
|
|
|
|
PACKAGES=packages
|
|
|
|
SOURCES=sources
|
|
|
|
BUILD_BASE=build
|
|
|
|
TARGET=target
|
|
|
|
ADDONS=addons
|
|
|
|
|
2010-11-19 06:37:13 +01:00
|
|
|
HOST_NAME=`$SCRIPTS/configtools/config.guess`
|
2009-12-19 17:47:50 +01:00
|
|
|
TARGET_NAME=$TARGET_FAMILY-openelec-linux-gnu
|
|
|
|
|
2010-07-19 18:51:57 +02:00
|
|
|
OPENELEC_SRC=http://sources.openelec.tv/src/$OPENELEC_VERSION
|
2009-12-19 17:47:50 +01:00
|
|
|
BUILD=$BUILD_BASE.OpenELEC-$PROJECT.$TARGET_ARCH.$OPENELEC_VERSION
|
2010-07-17 05:03:24 +02:00
|
|
|
TARGET_IMG=$ROOT/$TARGET
|
2010-07-19 18:51:57 +02:00
|
|
|
TARGET_ADDONS="$TARGET_IMG/$ADDONS/$ADDON_PATH"
|
2010-07-21 18:43:52 +02:00
|
|
|
ADDON_BUILD="$BUILD/$ADDONS/$1"
|
2009-03-18 13:02:53 +01:00
|
|
|
STAMPS_NOARCH=.stamps
|
2010-03-11 01:53:00 +01:00
|
|
|
STAMPS=$BUILD/.stamps
|
2010-11-11 17:05:47 +01:00
|
|
|
STAMPS_INSTALL=$BUILD/image/.stamps
|
2009-03-18 13:02:53 +01:00
|
|
|
DOCS=DOCS
|
|
|
|
TOOLCHAIN=$BUILD/toolchain
|
|
|
|
SYSROOT_PREFIX=$ROOT/$TOOLCHAIN/$TARGET_NAME/sysroot
|
|
|
|
LIB_PREFIX=$SYSROOT_PREFIX/usr
|
|
|
|
TARGET_PREFIX=$ROOT/$TOOLCHAIN/bin/$TARGET_NAME-
|
|
|
|
|
2010-01-15 08:15:35 +01:00
|
|
|
FAKEROOT_SCRIPT=$ROOT/.fakeroot.$PROJECT.$TARGET_ARCH
|
|
|
|
|
2009-04-07 12:07:27 +02:00
|
|
|
if [ "$OPENELEC_VERSION" = devel ]; then
|
|
|
|
DEBUG=no
|
2009-04-14 07:12:56 +02:00
|
|
|
DEVTOOLS=yes
|
2009-08-28 23:02:02 +02:00
|
|
|
elif [ "$OPENELEC_VERSION" = debug ]; then
|
|
|
|
DEBUG=yes
|
|
|
|
DEVTOOLS=yes
|
2009-04-07 12:07:27 +02:00
|
|
|
fi
|
|
|
|
|
2009-03-18 13:02:53 +01:00
|
|
|
MAKE="$ROOT/$TOOLCHAIN/bin/make"
|
2010-08-23 13:24:07 +02:00
|
|
|
MAKEINSTALL="$ROOT/$TOOLCHAIN/bin/make -j1 DESTDIR=$SYSROOT_PREFIX install"
|
2009-03-18 13:02:53 +01:00
|
|
|
SED="sed -i"
|
|
|
|
|
2010-08-04 21:50:54 +02:00
|
|
|
# set package metadata
|
|
|
|
PKG_NAME="$1"
|
|
|
|
PKG_VERSION="0.0invalid"
|
|
|
|
PKG_REV="0"
|
|
|
|
PKG_ARCH="any"
|
|
|
|
PKG_LICENSE="unknown"
|
|
|
|
PKG_SITE=""
|
|
|
|
PKG_URL=""
|
|
|
|
PKG_DEPENDS=""
|
|
|
|
PKG_BUILD_DEPENDS=""
|
|
|
|
PKG_PRIORITY="optional"
|
|
|
|
PKG_SECTION="misc"
|
|
|
|
PKG_SHORTDESC="$1 (autogenerated)"
|
|
|
|
PKG_LONGDESC=""
|
|
|
|
PKG_IS_ADDON="no"
|
|
|
|
|
|
|
|
[ -n "$1" ] && PKG_DIR=`find $PACKAGES -type d -name $1 2>/dev/null`
|
|
|
|
|
|
|
|
[ -r $PKG_DIR/meta ] && . $PKG_DIR/meta
|
|
|
|
[ "$PKG_IS_ADDON" = "yes" ] && PKG_ADDON_ID="addon.$PKG_SECTION.$PKG_NAME"
|
|
|
|
|
2010-11-22 22:44:39 +01:00
|
|
|
PKG_BUILD=`[ -d $BUILD/${PKG_NAME}*${PKG_VERSION} ] && ls -d $BUILD/${PKG_NAME}*${PKG_VERSION} || echo ""`
|
2010-08-04 21:50:54 +02:00
|
|
|
|
2009-03-18 13:02:53 +01:00
|
|
|
XORG_PATH_ENCODINGS=/usr/share/X11/encodings
|
|
|
|
XORG_PATH_FONTS=/usr/share/X11/fonts
|
|
|
|
XORG_PATH_MAPS=$XORG_PATH_FONTS/util
|
|
|
|
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
|
2009-05-18 04:56:09 +02:00
|
|
|
XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers
|
2009-03-18 13:02:53 +01:00
|
|
|
|
|
|
|
TOOLCHAIN_LANGUAGES=c
|
|
|
|
[ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++
|
|
|
|
|
2010-06-16 09:25:21 +02:00
|
|
|
if [ "$OPTIMIZATIONS" = speed ];then
|
2010-07-06 13:27:05 +02:00
|
|
|
GCC_OPTIM="-O3 -ffast-math $PROJECT_CFLAGS"
|
2010-06-16 09:25:21 +02:00
|
|
|
GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -floop-interchange"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -floop-strip-mine"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -floop-block"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -fgraphite-identity"
|
|
|
|
else
|
2010-10-25 20:27:10 +02:00
|
|
|
GCC_OPTIM="-Os -ffast-math $PROJECT_CFLAGS"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -floop-interchange"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -floop-strip-mine"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -floop-block"
|
|
|
|
GCC_OPTIM="$GCC_OPTIM -fgraphite-identity"
|
2010-06-16 09:25:21 +02:00
|
|
|
fi
|
2009-03-18 13:02:53 +01:00
|
|
|
|
|
|
|
TARGET_CC=${TARGET_PREFIX}gcc
|
|
|
|
TARGET_CXX=${TARGET_PREFIX}g++
|
|
|
|
TARGET_LD=${TARGET_PREFIX}ld
|
|
|
|
TARGET_AS=${TARGET_PREFIX}as
|
|
|
|
TARGET_AR=${TARGET_PREFIX}ar
|
|
|
|
TARGET_NM=${TARGET_PREFIX}nm
|
|
|
|
TARGET_RANLIB=${TARGET_PREFIX}ranlib
|
|
|
|
TARGET_OBJCOPY=${TARGET_PREFIX}objcopy
|
|
|
|
TARGET_STRIP=${TARGET_PREFIX}strip
|
|
|
|
TARGET_CPPFLAGS=
|
2010-06-16 09:25:21 +02:00
|
|
|
TARGET_CFLAGS="$GCC_OPTIM -Wall -pipe"
|
2009-05-31 23:28:27 +02:00
|
|
|
TARGET_CXXFLAGS="$TARGET_CFLAGS"
|
2010-06-16 09:25:21 +02:00
|
|
|
TARGET_LDFLAGS=""
|
2010-07-20 00:27:08 +02:00
|
|
|
TARGET_PKG_CONFIG_PATH=""
|
2010-07-20 08:05:50 +02:00
|
|
|
TARGET_PKG_CONFIG_LIBDIR="$SYSROOT_PREFIX/usr/lib/pkgconfig:$SYSROOT_PREFIX/usr/share/pkgconfig"
|
2010-07-20 00:27:08 +02:00
|
|
|
TARGET_PKG_CONFIG_SYSROOT_DIR="$SYSROOT_PREFIX"
|
2010-02-03 11:46:59 +01:00
|
|
|
|
2009-11-29 05:53:05 +01:00
|
|
|
case $TARGET_ARCH in
|
|
|
|
i386)
|
2010-08-05 11:14:22 +02:00
|
|
|
TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast"
|
|
|
|
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast"
|
2009-11-29 05:53:05 +01:00
|
|
|
;;
|
2010-06-06 00:45:46 +02:00
|
|
|
x86_64)
|
2010-08-05 11:14:22 +02:00
|
|
|
TARGET_CFLAGS="$TARGET_CFLAGS -fPIC -march=$TARGET_CPU -m64 -fexcess-precision=fast"
|
|
|
|
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fPIC -march=$TARGET_CPU -m64 -fexcess-precision=fast"
|
2009-11-29 05:53:05 +01:00
|
|
|
;;
|
|
|
|
esac
|
2009-03-18 13:02:53 +01:00
|
|
|
|
2009-08-28 23:02:02 +02:00
|
|
|
if [ "$DEBUG" = yes ]; then
|
2009-10-27 02:12:29 +01:00
|
|
|
TARGET_CFLAGS="$TARGET_CFLAGS -ggdb"
|
|
|
|
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb"
|
|
|
|
TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb"
|
2009-08-28 23:02:02 +02:00
|
|
|
else
|
2009-03-18 13:02:53 +01:00
|
|
|
TARGET_CFLAGS="$TARGET_CFLAGS -s -fomit-frame-pointer"
|
|
|
|
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -s -fomit-frame-pointer"
|
2010-07-06 13:27:05 +02:00
|
|
|
TARGET_LDFLAGS="$TARGET_LDFLAGS -s -Wl,--as-needed"
|
2009-08-28 23:02:02 +02:00
|
|
|
fi
|
2009-03-18 13:02:53 +01:00
|
|
|
|
|
|
|
HOST_AWK=gawk
|
|
|
|
HOST_CC=$ROOT/$TOOLCHAIN/bin/host-gcc
|
|
|
|
HOST_CXX=$ROOT/$TOOLCHAIN/bin/host-g++
|
|
|
|
HOST_LD=ld
|
|
|
|
HOST_AS=as
|
|
|
|
HOST_AR=ar
|
|
|
|
HOST_NM=nm
|
|
|
|
HOST_RANLIB=ranlib
|
|
|
|
HOST_OBJCOPY=objcopy
|
|
|
|
HOST_STRIP=strip
|
|
|
|
HOST_CPPFLAGS=""
|
2009-11-06 15:36:25 +01:00
|
|
|
HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include"
|
2010-02-01 21:05:34 +01:00
|
|
|
HOST_CXXFLAGS="$HOST_CFLAGS"
|
2010-10-21 21:51:07 +02:00
|
|
|
HOST_LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib"
|
2010-07-20 00:27:08 +02:00
|
|
|
HOST_PKG_CONFIG_PATH=""
|
2010-07-20 08:05:50 +02:00
|
|
|
HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig"
|
|
|
|
HOST_PKG_CONFIG_SYSROOT_DIR=""
|
2009-03-18 13:02:53 +01:00
|
|
|
|
2010-10-31 19:41:53 +01:00
|
|
|
# use -fPIC when necessary
|
|
|
|
case "`uname -m`" in
|
|
|
|
x86_64|ppc64|arm|armeb|armel)
|
|
|
|
HOST_CFLAGS="$HOST_CFLAGS -fPIC"
|
|
|
|
HOST_CXXFLAGS="$HOST_CXXFLAGS -fPIC"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2009-03-18 13:02:53 +01:00
|
|
|
export CCACHE_DIR=$ROOT/$BUILD/.ccache
|
|
|
|
export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL
|
|
|
|
export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config
|
|
|
|
|
|
|
|
if [ -z "$PATH" -o "$PATH" = "${PATH#$ROOT/$TOOLCHAIN/bin:}" ]; then
|
|
|
|
export PATH="$ROOT/$TOOLCHAIN/bin:$PATH"
|
|
|
|
fi
|
|
|
|
|
2010-06-27 00:25:58 +02:00
|
|
|
if [ -f $ROOT/$TOOLCHAIN/bin/libtool ]; then
|
|
|
|
export LIBTOOL=$ROOT/$TOOLCHAIN/bin/libtool
|
|
|
|
export LIBTOOLIZE=$ROOT/$TOOLCHAIN/bin/libtoolize
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f $ROOT/$TOOLCHAIN/bin/automake ]; then
|
|
|
|
export AUTOMAKE=$ROOT/$TOOLCHAIN/bin/automake
|
|
|
|
export ACLOCAL_DIR=$SYSROOT_PREFIX/usr/share/aclocal
|
|
|
|
export ACLOCAL="$ROOT/$TOOLCHAIN/bin/aclocal -I $ACLOCAL_DIR"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f $ROOT/$TOOLCHAIN/bin/autoconf ]; then
|
|
|
|
export AUTOCONF=$ROOT/$TOOLCHAIN/bin/autoconf
|
|
|
|
export AUTOHEADER=$ROOT/$TOOLCHAIN/bin/autoheader
|
|
|
|
export AUTORECONF="$ROOT/$TOOLCHAIN/bin/autoreconf -v -f -i -I $ACLOCAL_DIR"
|
|
|
|
fi
|
|
|
|
|
buildsystem: big rework & cleanup - PART-1: split functions from 'config/path' to an seperate file 'config/functions', rework and cleanup some build scripts, remove references to $TARGET_PLATFORM, add support for more then one downloadurl for $PKG_URL (partially done), remove support for: $PKG_DIR/arch, $PKG_DIR/platform, $PKG_DIR/url files, remove support for *.diff patches, create download-stampfiles in sources/$PKG_NAME, create md5 files after download, add support to download all sources at once with './scripts/get'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2010-11-19 22:01:08 +01:00
|
|
|
VERSION_SUFFIX=$TARGET_ARCH
|
|
|
|
|
|
|
|
. config/functions
|
|
|
|
|
2009-03-18 13:02:53 +01:00
|
|
|
setup_toolchain target
|
|
|
|
|
|
|
|
SILENT_OUT=3
|
|
|
|
VERBOSE_OUT=4
|
|
|
|
if [ "$VERBOSE" = yes ]; then
|
|
|
|
exec 3>&1
|
|
|
|
exec 4>&2
|
|
|
|
else
|
|
|
|
exec 3>&2
|
|
|
|
exec 4>/dev/null
|
|
|
|
fi
|
|
|
|
INDENT_SIZE=4
|
|
|
|
|