2009-03-18 13:02:53 +01:00
|
|
|
set -e
|
|
|
|
|
|
2011-03-20 23:48:48 +01:00
|
|
|
# setup initial directorys (relative to root)
|
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
|
|
|
CONFIG=config
|
|
|
|
|
SCRIPTS=scripts
|
|
|
|
|
PACKAGES=packages
|
|
|
|
|
SOURCES=sources
|
|
|
|
|
BUILD_BASE=build
|
|
|
|
|
TARGET=target
|
|
|
|
|
ADDONS=addons
|
|
|
|
|
|
2011-03-20 23:48:48 +01:00
|
|
|
# include ARCH specific options
|
2012-01-30 23:13:30 +01:00
|
|
|
if [ -f config/arch.$TARGET_ARCH ]; then
|
|
|
|
|
. config/arch.$TARGET_ARCH
|
|
|
|
|
fi
|
2011-03-20 23:48:48 +01:00
|
|
|
|
2011-07-13 02:38:39 +02:00
|
|
|
HOST_NAME=`$LOCAL_CC -dumpmachine`
|
2011-03-21 21:39:29 +01:00
|
|
|
TARGET_NAME=$(echo $TARGET_SUBARCH | sed -e "s,-,,")-openelec-linux-gnu${TARGET_ABI}
|
2009-12-19 17:47:50 +01:00
|
|
|
|
2010-12-18 22:02:49 +01:00
|
|
|
BUILD=$BUILD_BASE.$DISTRONAME-$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
|
|
|
|
|
|
2013-07-17 06:12:14 +02:00
|
|
|
if [ -z "$INSTALL" ]; then
|
|
|
|
|
INSTALL=$BUILD/image/system
|
|
|
|
|
fi
|
2013-12-16 00:13:15 +01:00
|
|
|
INSTALL_INIT=$BUILD/image/initramfs/root-image
|
2013-07-17 06:12:14 +02:00
|
|
|
|
2010-12-16 13:44:14 +01:00
|
|
|
. config/sources
|
|
|
|
|
|
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"
|
2013-06-23 22:10:35 +03:00
|
|
|
PKG_SECTION=""
|
2010-08-04 21:50:54 +02:00
|
|
|
PKG_SHORTDESC="$1 (autogenerated)"
|
|
|
|
|
PKG_LONGDESC=""
|
|
|
|
|
PKG_IS_ADDON="no"
|
|
|
|
|
|
2012-07-17 10:08:03 +02:00
|
|
|
if [ -n "$1" ]; then
|
2013-07-13 14:00:26 +03:00
|
|
|
FOUND=0
|
2013-07-17 06:12:14 +02:00
|
|
|
for DIR in $ROOT/`find $PACKAGES -type d -name $(echo $1| awk -F : '{print $1}') ! -wholename \*\/source\/\* 2>/dev/null` ; do
|
2013-07-13 14:00:26 +03:00
|
|
|
# keep track of dirs with meta for debugging
|
|
|
|
|
if [ -z "$ALL_DIRS" ] ; then
|
|
|
|
|
ALL_DIRS="$DIR"
|
|
|
|
|
else
|
|
|
|
|
ALL_DIRS="$ALL_DIRS\\n$DIR"
|
|
|
|
|
fi
|
2013-07-17 06:12:14 +02:00
|
|
|
if [ -f "$DIR/package.mk" -o -f "$DIR/meta" -o -f "$DIR/install" -o -f "$DIR/build" ] ; then
|
2013-07-13 14:00:26 +03:00
|
|
|
FOUND=$((FOUND+1))
|
|
|
|
|
# found first. set $PKG_DIR
|
|
|
|
|
PKG_DIR="$DIR"
|
|
|
|
|
if [ $FOUND -gt 1 ] ; then
|
|
|
|
|
# found more ? fail
|
|
|
|
|
echo "Error - multiple package folders:"
|
|
|
|
|
echo -e "$ALL_DIRS"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
done
|
2012-07-17 10:08:03 +02:00
|
|
|
fi
|
2010-08-04 21:50:54 +02:00
|
|
|
|
2013-07-17 06:12:14 +02:00
|
|
|
if [ -r $PKG_DIR/package.mk ]; then
|
|
|
|
|
. $PKG_DIR/package.mk
|
|
|
|
|
elif [ -r $PKG_DIR/meta ]; then
|
|
|
|
|
. $PKG_DIR/meta
|
|
|
|
|
fi
|
|
|
|
|
|
2013-06-23 22:10:35 +03:00
|
|
|
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"
|
|
|
|
|
fi
|
2010-08-04 21:50:54 +02:00
|
|
|
|
2013-12-13 14:07:31 +02:00
|
|
|
PKG_BUILD="$BUILD/${PKG_NAME}-${PKG_VERSION}"
|
2010-08-04 21:50:54 +02:00
|
|
|
|
2009-03-18 13:02:53 +01:00
|
|
|
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
|
|
|
|
2012-02-22 02:13:31 +01:00
|
|
|
SSL_CERTIFICATES="/etc/pki/tls"
|
|
|
|
|
|
2009-03-18 13:02:53 +01:00
|
|
|
TOOLCHAIN_LANGUAGES=c
|
|
|
|
|
[ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++
|
|
|
|
|
|
|
|
|
|
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
|
2011-11-08 20:29:34 +01:00
|
|
|
TARGET_OBJDUMP=${TARGET_PREFIX}objdump
|
2009-03-18 13:02:53 +01:00
|
|
|
TARGET_STRIP=${TARGET_PREFIX}strip
|
2010-11-28 15:11:08 +01:00
|
|
|
|
2011-03-21 21:39:29 +01:00
|
|
|
. config/optimize
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
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
|
2010-11-28 15:11:08 +01:00
|
|
|
|
|
|
|
|
HOST_PKG_CONFIG_PATH=""
|
|
|
|
|
HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig"
|
|
|
|
|
HOST_PKG_CONFIG_SYSROOT_DIR=""
|
|
|
|
|
|
2012-06-06 11:11:30 +01:00
|
|
|
if [ -z "$CCACHE_DIR" ]; then
|
|
|
|
|
export CCACHE_DIR=$HOME/.ccache-openelec
|
|
|
|
|
fi
|
2009-03-18 13:02:53 +01:00
|
|
|
export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL
|
|
|
|
|
export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config
|
|
|
|
|
|
|
|
|
|
if [ -z "$PATH" -o "$PATH" = "${PATH#$ROOT/$TOOLCHAIN/bin:}" ]; then
|
2013-09-26 21:02:07 +03:00
|
|
|
export PATH="$ROOT/$TOOLCHAIN/bin:$ROOT/$TOOLCHAIN/sbin:$PATH"
|
2009-03-18 13:02:53 +01:00
|
|
|
fi
|
|
|
|
|
|
2012-06-21 13:20:03 +02:00
|
|
|
if [ -z "$LD_LIBRARY_PATH" -o "$LD_LIBRARY_PATH" = "${LD_LIBRARY_PATH#$ROOT/$TOOLCHAIN/lib:}" ]; then
|
|
|
|
|
export LD_LIBRARY_PATH="$ROOT/$TOOLCHAIN/lib:$LD_LIBRARY_PATH"
|
|
|
|
|
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
|
2010-03-20 13:20:20 +01:00
|
|
|
|
2012-07-11 16:25:54 +02:00
|
|
|
check_path
|
2012-01-30 23:13:30 +01:00
|
|
|
check_config
|
|
|
|
|
|
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
|
2012-10-22 02:00:23 +02:00
|
|
|
BUILD_INDENT_SIZE=4
|
2013-07-23 21:28:17 +03:00
|
|
|
|
2013-12-20 15:51:09 +01:00
|
|
|
# define colors
|
|
|
|
|
black="\e[0;30m"
|
|
|
|
|
boldblack="\e[1;30m"
|
|
|
|
|
red="\e[0;31m"
|
|
|
|
|
boldred="\e[1;31m"
|
|
|
|
|
green="\e[0;32m"
|
|
|
|
|
boldgreen="\e[1;32m"
|
|
|
|
|
yellow="\e[0;33m"
|
|
|
|
|
boldyellow="\e[1;33m"
|
|
|
|
|
blue="\e[0;34m"
|
|
|
|
|
boldblue="\e[1;34m"
|
|
|
|
|
magenta="\e[0;35m"
|
|
|
|
|
boldmagenta="\e[1;35m"
|
|
|
|
|
cyan="\e[0;36m"
|
|
|
|
|
boldcyan="\e[1;36m"
|
|
|
|
|
white="\e[0;37m"
|
|
|
|
|
boldwhite="\e[1;37m"
|
|
|
|
|
endcolor="\e[0m"
|
|
|
|
|
|
2013-07-23 21:28:17 +03:00
|
|
|
# multilib? nah
|
|
|
|
|
unset CONFIG_SITE
|