From 9fde5c056b86c39e841f17c7bb8f6075d50702fd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 27 Jan 2014 03:34:44 +0100 Subject: [PATCH] scripts: remove packageformat v1 and v2 support, major buildsystem cleanup. now every package needs a 'package.mk' script Signed-off-by: Stephan Raue --- scripts/build | 650 +++++++++++++++++++++++------------------------- scripts/get | 4 - scripts/install | 59 +++-- scripts/unpack | 75 ++---- 4 files changed, 350 insertions(+), 438 deletions(-) diff --git a/scripts/build b/scripts/build index 49c976ced3..e8ead0074f 100755 --- a/scripts/build +++ b/scripts/build @@ -48,120 +48,88 @@ STAMP=$STAMPS/$PACKAGE_NAME/build_$TARGET $SCRIPTS/unpack $PACKAGE_NAME -if [ -f $PKG_DIR/package.mk ]; then - if [ -f $STAMP -a $PKG_DIR/package.mk -nt $STAMP ]; then - rm -f $STAMP - fi -elif [ -f $PKG_DIR/build ]; then - if [ -f $STAMP -a $PKG_DIR/build -nt $STAMP ]; then - rm -f $STAMP - fi +if [ ! -f $PKG_DIR/package.mk ]; then + printf "${boldred} no package.mk file found in $PKG_DIR${endcolor}\n" + exit 1 +fi + +if [ -f $STAMP -a $PKG_DIR/package.mk -nt $STAMP ]; then + rm -f $STAMP fi if [ ! -f $STAMP ]; then rm -f $STAMP - if [ -f $PKG_DIR/package.mk ]; then - printf "%${BUILD_INDENT}c ${boldyellow}BUILD${endcolor} $PACKAGE_NAME ${boldwhite}($TARGET)${endcolor}\n" ' '>&$SILENT_OUT - elif [ -f $PKG_DIR/install ]; then - printf "%${BUILD_INDENT}c ${boldyellow}BUILD${endcolor} $PACKAGE_NAME ${boldred}(deprecated packageformat, please convert soon!)${endcolor}\n" ' '>&$SILENT_OUT - fi + printf "%${BUILD_INDENT}c ${boldyellow}BUILD${endcolor} $PACKAGE_NAME ${boldwhite}($TARGET)${endcolor}\n" ' '>&$SILENT_OUT export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) - if [ -f $PKG_DIR/package.mk ]; then - if [ "$TARGET" = "bootstrap" -o "$TARGET" = "init" ]; then - setup_toolchain target - elif [ "$TARGET" = "hosttools" ]; then - setup_toolchain host - else - setup_toolchain $TARGET - fi + if [ "$TARGET" = "bootstrap" -o "$TARGET" = "init" ]; then + setup_toolchain target + elif [ "$TARGET" = "hosttools" ]; then + setup_toolchain host + else + setup_toolchain $TARGET + fi - # unset functions - unset -f pre_build_target - unset -f pre_configure_target - unset -f configure_target - unset -f post_configure_target - unset -f pre_make_target - unset -f make_target - unset -f post_make_target - unset -f pre_makeinstall_target - unset -f makeinstall_target - unset -f post_makeinstall_target + # unset functions + unset -f pre_build_target + unset -f pre_configure_target + unset -f configure_target + unset -f post_configure_target + unset -f pre_make_target + unset -f make_target + unset -f post_make_target + unset -f pre_makeinstall_target + unset -f makeinstall_target + unset -f post_makeinstall_target - unset -f pre_build_host - unset -f pre_configure_host - unset -f configure_host - unset -f post_configure_host - unset -f pre_make_host - unset -f make_host - unset -f post_make_host - unset -f pre_makeinstall_host - unset -f makeinstall_host - unset -f post_makeinstall_host + unset -f pre_build_host + unset -f pre_configure_host + unset -f configure_host + unset -f post_configure_host + unset -f pre_make_host + unset -f make_host + unset -f post_make_host + unset -f pre_makeinstall_host + unset -f makeinstall_host + unset -f post_makeinstall_host - unset -f pre_build_init - unset -f pre_configure_init - unset -f configure_init - unset -f post_configure_init - unset -f pre_make_init - unset -f make_init - unset -f post_make_init - unset -f pre_makeinstall_init - unset -f makeinstall_init - unset -f post_makeinstall_init + unset -f pre_build_init + unset -f pre_configure_init + unset -f configure_init + unset -f post_configure_init + unset -f pre_make_init + unset -f make_init + unset -f post_make_init + unset -f pre_makeinstall_init + unset -f makeinstall_init + unset -f post_makeinstall_init - unset -f pre_build_bootstrap - unset -f pre_configure_bootstrap - unset -f configure_bootstrap - unset -f post_configure_bootstrap - unset -f pre_make_bootstrap - unset -f make_bootstrap - unset -f post_make_bootstrap - unset -f pre_makeinstall_bootstrap - unset -f makeinstall_bootstrap - unset -f post_makeinstall_bootstrap + unset -f pre_build_bootstrap + unset -f pre_configure_bootstrap + unset -f configure_bootstrap + unset -f post_configure_bootstrap + unset -f pre_make_bootstrap + unset -f make_bootstrap + unset -f post_make_bootstrap + unset -f pre_makeinstall_bootstrap + unset -f makeinstall_bootstrap + unset -f post_makeinstall_bootstrap - unset -f pre_build_hosttools - unset -f pre_configure_hosttools - unset -f configure_hosttools - unset -f post_configure_hosttools - unset -f pre_make_hosttools - unset -f make_hosttools - unset -f post_make_hosttools - unset -f pre_makeinstall_hosttools - unset -f makeinstall_hosttools - unset -f post_makeinstall_hosttools + unset -f pre_build_hosttools + unset -f pre_configure_hosttools + unset -f configure_hosttools + unset -f post_configure_hosttools + unset -f pre_make_hosttools + unset -f make_hosttools + unset -f post_make_hosttools + unset -f pre_makeinstall_hosttools + unset -f makeinstall_hosttools + unset -f post_makeinstall_hosttools - # configure TARGET build defaults - unset -v TARGET_CONFIGURE_OPTS - TARGET_CONFIGURE_OPTS="--host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --sysconfdir=/etc \ - --libexecdir=/usr/lib \ - --localstatedir=/var \ - --disable-static \ - --enable-shared" - - # configure HOST build defaults - unset -v HOST_CONFIGURE_OPTS - HOST_CONFIGURE_OPTS="--host=$HOST_NAME \ - --build=$HOST_NAME \ - --prefix=$ROOT/$TOOLCHAIN \ - --bindir=$ROOT/$TOOLCHAIN/bin \ - --sbindir=$ROOT/$TOOLCHAIN/sbin \ - --sysconfdir=$ROOT/$TOOLCHAIN/etc \ - --libexecdir=$ROOT/$TOOLCHAIN/lib \ - --localstatedir=$ROOT/$TOOLCHAIN/var \ - --disable-static \ - --enable-shared" - - # configure INIT build defaults - unset -v INIT_CONFIGURE_OPTS - INIT_CONFIGURE_OPTS="--host=$TARGET_NAME \ + # configure TARGET build defaults + unset -v TARGET_CONFIGURE_OPTS + TARGET_CONFIGURE_OPTS="--host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ --bindir=/usr/bin \ @@ -172,70 +140,96 @@ if [ ! -f $STAMP ]; then --disable-static \ --enable-shared" - # configure BOOTSTRAP build defaults - unset -v BOOTSTRAP_CONFIGURE_OPTS - BOOTSTRAP_CONFIGURE_OPTS="--host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --sysconfdir=/etc \ - --libexecdir=/usr/lib \ - --localstatedir=/var \ - --disable-static \ - --enable-shared" + # configure HOST build defaults + unset -v HOST_CONFIGURE_OPTS + HOST_CONFIGURE_OPTS="--host=$HOST_NAME \ + --build=$HOST_NAME \ + --prefix=$ROOT/$TOOLCHAIN \ + --bindir=$ROOT/$TOOLCHAIN/bin \ + --sbindir=$ROOT/$TOOLCHAIN/sbin \ + --sysconfdir=$ROOT/$TOOLCHAIN/etc \ + --libexecdir=$ROOT/$TOOLCHAIN/lib \ + --localstatedir=$ROOT/$TOOLCHAIN/var \ + --disable-static \ + --enable-shared" - # configure HOSTTOOLS build defaults - unset -v HOSTTOOLS_CONFIGURE_OPTS - HOSTTOOLS_CONFIGURE_OPTS="--host=$HOST_NAME \ - --build=$HOST_NAME \ - --prefix=$ROOT/$TOOLCHAIN \ - --bindir=$ROOT/$TOOLCHAIN/bin \ - --sbindir=$ROOT/$TOOLCHAIN/sbin \ - --sysconfdir=$ROOT/$TOOLCHAIN/etc \ - --libexecdir=$ROOT/$TOOLCHAIN/lib \ - --localstatedir=$ROOT/$TOOLCHAIN/var \ - --disable-static \ - --enable-shared" + # configure INIT build defaults + unset -v INIT_CONFIGURE_OPTS + INIT_CONFIGURE_OPTS="--host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --disable-static \ + --enable-shared" - # include buildfile - . $PKG_DIR/package.mk + # configure BOOTSTRAP build defaults + unset -v BOOTSTRAP_CONFIGURE_OPTS + BOOTSTRAP_CONFIGURE_OPTS="--host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --disable-static \ + --enable-shared" - if [ "$TARGET" = "target" ]; then - for p in $PKG_BUILD_DEPENDS_TARGET; do - $SCRIPTS/build $p - done - elif [ "$TARGET" = "host" ]; then - for p in $PKG_BUILD_DEPENDS_HOST; do - $SCRIPTS/build $p - done - elif [ "$TARGET" = "init" ]; then - for p in $PKG_BUILD_DEPENDS_INIT; do - $SCRIPTS/build $p - done - elif [ "$TARGET" = "bootstrap" ]; then - for p in $PKG_BUILD_DEPENDS_BOOTSTRAP; do - $SCRIPTS/build $p - done - elif [ "$TARGET" = "hosttools" ]; then - for p in $PKG_BUILD_DEPENDS_HOSTTOOLS; do - $SCRIPTS/build $p - done - fi + # configure HOSTTOOLS build defaults + unset -v HOSTTOOLS_CONFIGURE_OPTS + HOSTTOOLS_CONFIGURE_OPTS="--host=$HOST_NAME \ + --build=$HOST_NAME \ + --prefix=$ROOT/$TOOLCHAIN \ + --bindir=$ROOT/$TOOLCHAIN/bin \ + --sbindir=$ROOT/$TOOLCHAIN/sbin \ + --sysconfdir=$ROOT/$TOOLCHAIN/etc \ + --libexecdir=$ROOT/$TOOLCHAIN/lib \ + --localstatedir=$ROOT/$TOOLCHAIN/var \ + --disable-static \ + --enable-shared" - if [ "$PKG_AUTORECONF" = yes ]; then - $SCRIPTS/autoreconf $PACKAGE_NAME - fi + # include buildfile + . $PKG_DIR/package.mk - # virtual packages dont must be build, they only contains dependencies, so dont go further here - if [ ! "$PKG_SECTION" = "virtual" ]; then + if [ "$TARGET" = "target" ]; then + for p in $PKG_BUILD_DEPENDS_TARGET; do + $SCRIPTS/build $p + done + elif [ "$TARGET" = "host" ]; then + for p in $PKG_BUILD_DEPENDS_HOST; do + $SCRIPTS/build $p + done + elif [ "$TARGET" = "init" ]; then + for p in $PKG_BUILD_DEPENDS_INIT; do + $SCRIPTS/build $p + done + elif [ "$TARGET" = "bootstrap" ]; then + for p in $PKG_BUILD_DEPENDS_BOOTSTRAP; do + $SCRIPTS/build $p + done + elif [ "$TARGET" = "hosttools" ]; then + for p in $PKG_BUILD_DEPENDS_HOSTTOOLS; do + $SCRIPTS/build $p + done + fi + + if [ "$PKG_AUTORECONF" = yes ]; then + $SCRIPTS/autoreconf $PACKAGE_NAME + fi + + # virtual packages dont must be build, they only contains dependencies, so dont go further here + if [ ! "$PKG_SECTION" = "virtual" ]; then # configure other variables - if [ "$TARGET" = "target" ]; then - INSTALL=$ROOT/$PKG_BUILD/.install_pkg - elif [ "$TARGET" = "init" ]; then - INSTALL=$ROOT/$PKG_BUILD/.install_init - fi + if [ "$TARGET" = "target" ]; then + INSTALL=$ROOT/$PKG_BUILD/.install_pkg + elif [ "$TARGET" = "init" ]; then + INSTALL=$ROOT/$PKG_BUILD/.install_init + fi # clean up if [ ! -z "$INSTALL" ] ; then @@ -245,196 +239,164 @@ if [ ! -f $STAMP ]; then fi # setup configure script - if [ -z "$PKG_CONFIGURE_SCRIPT" ]; then - PKG_CONFIGURE_SCRIPT="$ROOT/$PKG_BUILD/configure" - else - PKG_CONFIGURE_SCRIPT="$ROOT/$PKG_BUILD/$PKG_CONFIGURE_SCRIPT" - fi - if [ -z "$PKG_CMAKE_SCRIPT" ]; then - PKG_CMAKE_SCRIPT="$ROOT/$PKG_BUILD/CMakeLists.txt" - else - PKG_CMAKE_SCRIPT="$ROOT/$PKG_BUILD/$PKG_CMAKE_SCRIPT" - fi - - # include build template and build - if [ "$(type -t pre_build_$TARGET)" = "function" ]; then - pre_build_$TARGET - fi - - # ensure $PKG_BUILD is there. (installer? PKG_URL="") - if [ ! -d $PKG_BUILD ] ; then - mkdir -p $PKG_BUILD - fi - - cd $PKG_BUILD - - if [ "$TARGET" = "target" ]; then - if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then - mkdir -p .$TARGET_NAME - cd .$TARGET_NAME - fi - elif [ "$TARGET" = "host" ]; then - if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then - mkdir -p .$HOST_NAME - cd .$HOST_NAME - fi - elif [ "$TARGET" = "init" ]; then - if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then - mkdir -p .$TARGET_NAME-init - cd .$TARGET_NAME-init - fi - elif [ "$TARGET" = "bootstrap" ]; then - if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then - mkdir -p .$TARGET_NAME-bootstrap - cd .$TARGET_NAME-bootstrap - fi - elif [ "$TARGET" = "hosttools" ]; then - if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then - mkdir -p .$TARGET_NAME-hosttools - cd .$TARGET_NAME-hosttools - fi - fi - - # configure - if [ "$(type -t pre_configure_$TARGET)" = "function" ]; then - pre_configure_$TARGET - fi - if [ "$(type -t configure_$TARGET)" = "function" ]; then - configure_$TARGET - elif [ -f "$PKG_CONFIGURE_SCRIPT" ]; then - if [ "$TARGET" = "target" ]; then - $PKG_CONFIGURE_SCRIPT $TARGET_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_TARGET - elif [ "$TARGET" = "host" ]; then - $PKG_CONFIGURE_SCRIPT $HOST_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOST - elif [ "$TARGET" = "init" ]; then - $PKG_CONFIGURE_SCRIPT $INIT_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_INIT - elif [ "$TARGET" = "bootstrap" ]; then - $PKG_CONFIGURE_SCRIPT $BOOTSTRAP_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_BOOTSTRAP - elif [ "$TARGET" = "hosttools" ]; then - $PKG_CONFIGURE_SCRIPT $HOSTTOOLS_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOSTTOOLS - fi - fi - if [ "$(type -t post_configure_$TARGET)" = "function" ]; then - post_configure_$TARGET - fi - - # make - if [ "$(type -t pre_make_$TARGET)" = "function" ]; then - pre_make_$TARGET - fi - if [ "$(type -t make_$TARGET)" = "function" ]; then - make_$TARGET - else - if [ "$TARGET" = "target" ]; then - make $PKG_MAKE_OPTS_TARGET - elif [ "$TARGET" = "host" ]; then - make $PKG_MAKE_OPTS_HOST - elif [ "$TARGET" = "init" ]; then - make $PKG_MAKE_OPTS_INIT - elif [ "$TARGET" = "bootstrap" ]; then - make $PKG_MAKE_OPTS_BOOTSTRAP - elif [ "$TARGET" = "hosttools" ]; then - make $PKG_MAKE_OPTS_HOSTTOOLS - fi - fi - if [ "$(type -t post_make_$TARGET)" = "function" ]; then - post_make_$TARGET - fi - - # make install - if [ "$(type -t pre_makeinstall_$TARGET)" = "function" ]; then - pre_makeinstall_$TARGET - fi - if [ "$(type -t makeinstall_$TARGET)" = "function" ]; then - makeinstall_$TARGET - else - if [ "$TARGET" = "target" ]; then - $MAKEINSTALL $PKG_MAKEINSTALL_OPTS_TARGET - make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_TARGET - elif [ "$TARGET" = "host" ]; then - make install $PKG_MAKEINSTALL_OPTS_HOST - elif [ "$TARGET" = "init" ]; then - make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_INIT - elif [ "$TARGET" = "bootstrap" ]; then - $MAKEINSTALL $PKG_MAKEINSTALL_OPTS_BOOTSTRAP - elif [ "$TARGET" = "hosttools" ]; then - make install $PKG_MAKEINSTALL_OPTS_HOSTTOOLS - fi - fi - if [ "$(type -t post_makeinstall_$TARGET)" = "function" ]; then - post_makeinstall_$TARGET - fi - - if [ "$TARGET" = "target" -o "$TARGET" = "init" ]; then - if [ -d $INSTALL ] ; then - for i in $INSTALL $INSTALL/usr; do - rm -rf $i/include - rm -rf $i/lib/pkgconfig - rm -rf $i/man - rm -rf $i/share/aclocal - rm -rf $i/share/bash-completion - rm -rf $i/share/doc - rm -rf $i/share/gtk-doc - rm -rf $i/share/info - rm -rf $i/share/locale - rm -rf $i/share/man - rm -rf $i/share/pkgconfig - find $i -name "*.la" -exec rm -rf "{}" ";" 2>/dev/null || true - find $i -name "*.a" -exec rm -rf "{}" ";" 2>/dev/null || true - find $i -name "*.so*T" -exec rm -rf "{}" ";" 2>/dev/null || true - done - - find $INSTALL -type d -exec rmdir -p "{}" ";" 2>/dev/null || true - - if [ ! "$DEBUG" = yes ]; then - $STRIP `find $INSTALL -name "*.so"` 2>/dev/null || echo "Information: no *.so libs found" - $STRIP `find $INSTALL -name "*.so.[0-9]*"` 2>/dev/null || echo "Information: no *.so.[0-9]* libs found" - fi - fi - fi - - cd $ROOT - - fi # ! "$PKG_SECTION" = "virtual" - - elif [ -f $PKG_DIR/meta ]; then - - for p in $PKG_BUILD_DEPENDS; do - $SCRIPTS/build $p - done - - if [ "$PKG_AUTORECONF" = yes ]; then - $SCRIPTS/autoreconf $PACKAGE_NAME - fi - - if [ -f $PKG_DIR/build ]; then - $PKG_DIR/build $@ >&$VERBOSE_OUT - - if [ ! "$DEBUG" = yes ]; then - $STRIP `find $BUILD/$PACKAGE_NAME* -name "*.so"` 2>/dev/null || \ - echo "Information: no *.so libs found" - $STRIP `find $BUILD/$PACKAGE_NAME* -name "*.so.[0-9]*"` 2>/dev/null ||\ - echo "Information: no *.so.[0-9]* libs found" + if [ -z "$PKG_CONFIGURE_SCRIPT" ]; then + PKG_CONFIGURE_SCRIPT="$ROOT/$PKG_BUILD/configure" + else + PKG_CONFIGURE_SCRIPT="$ROOT/$PKG_BUILD/$PKG_CONFIGURE_SCRIPT" + fi + if [ -z "$PKG_CMAKE_SCRIPT" ]; then + PKG_CMAKE_SCRIPT="$ROOT/$PKG_BUILD/CMakeLists.txt" + else + PKG_CMAKE_SCRIPT="$ROOT/$PKG_BUILD/$PKG_CMAKE_SCRIPT" fi - elif [ -f $PKG_BUILD/Makefile ]; then - $SCRIPTS/build toolchain - make -C $PKG_BUILD >&$VERBOSE_OUT + # include build template and build + if [ "$(type -t pre_build_$TARGET)" = "function" ]; then + pre_build_$TARGET + fi - elif [ -f $PKG_BUILD/$PACKAGE_NAME.c ]; then - $SCRIPTS/build toolchain - make -C $PKG_BUILD $PACKAGE_NAME >&$VERBOSE_OUT + # ensure $PKG_BUILD is there. (installer? PKG_URL="") + if [ ! -d $PKG_BUILD ] ; then + mkdir -p $PKG_BUILD + fi - fi # -f $PKG_DIR/build - fi # -f $PKG_DIR/meta + cd $PKG_BUILD - # TODO: slow... - for i in `find $SYSROOT_PREFIX/usr/lib/ -name "*.la" 2>/dev/null`; do \ - $SED "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $i; \ - done + if [ "$TARGET" = "target" ]; then + if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then + mkdir -p .$TARGET_NAME + cd .$TARGET_NAME + fi + elif [ "$TARGET" = "host" ]; then + if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then + mkdir -p .$HOST_NAME + cd .$HOST_NAME + fi + elif [ "$TARGET" = "init" ]; then + if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then + mkdir -p .$TARGET_NAME-init + cd .$TARGET_NAME-init + fi + elif [ "$TARGET" = "bootstrap" ]; then + if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then + mkdir -p .$TARGET_NAME-bootstrap + cd .$TARGET_NAME-bootstrap + fi + elif [ "$TARGET" = "hosttools" ]; then + if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" ]; then + mkdir -p .$TARGET_NAME-hosttools + cd .$TARGET_NAME-hosttools + fi + fi - for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do - eval val=\$$i - echo "STAMP_$i=\"$val\"" >> $STAMP - done + # configure + if [ "$(type -t pre_configure_$TARGET)" = "function" ]; then + pre_configure_$TARGET + fi + if [ "$(type -t configure_$TARGET)" = "function" ]; then + configure_$TARGET + elif [ -f "$PKG_CONFIGURE_SCRIPT" ]; then + if [ "$TARGET" = "target" ]; then + $PKG_CONFIGURE_SCRIPT $TARGET_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_TARGET + elif [ "$TARGET" = "host" ]; then + $PKG_CONFIGURE_SCRIPT $HOST_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOST + elif [ "$TARGET" = "init" ]; then + $PKG_CONFIGURE_SCRIPT $INIT_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_INIT + elif [ "$TARGET" = "bootstrap" ]; then + $PKG_CONFIGURE_SCRIPT $BOOTSTRAP_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_BOOTSTRAP + elif [ "$TARGET" = "hosttools" ]; then + $PKG_CONFIGURE_SCRIPT $HOSTTOOLS_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOSTTOOLS + fi + fi + if [ "$(type -t post_configure_$TARGET)" = "function" ]; then + post_configure_$TARGET + fi + + # make + if [ "$(type -t pre_make_$TARGET)" = "function" ]; then + pre_make_$TARGET + fi + if [ "$(type -t make_$TARGET)" = "function" ]; then + make_$TARGET + else + if [ "$TARGET" = "target" ]; then + make $PKG_MAKE_OPTS_TARGET + elif [ "$TARGET" = "host" ]; then + make $PKG_MAKE_OPTS_HOST + elif [ "$TARGET" = "init" ]; then + make $PKG_MAKE_OPTS_INIT + elif [ "$TARGET" = "bootstrap" ]; then + make $PKG_MAKE_OPTS_BOOTSTRAP + elif [ "$TARGET" = "hosttools" ]; then + make $PKG_MAKE_OPTS_HOSTTOOLS + fi + fi + if [ "$(type -t post_make_$TARGET)" = "function" ]; then + post_make_$TARGET + fi + + # make install + if [ "$(type -t pre_makeinstall_$TARGET)" = "function" ]; then + pre_makeinstall_$TARGET + fi + if [ "$(type -t makeinstall_$TARGET)" = "function" ]; then + makeinstall_$TARGET + else + if [ "$TARGET" = "target" ]; then + $MAKEINSTALL $PKG_MAKEINSTALL_OPTS_TARGET + make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_TARGET + elif [ "$TARGET" = "host" ]; then + make install $PKG_MAKEINSTALL_OPTS_HOST + elif [ "$TARGET" = "init" ]; then + make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_INIT + elif [ "$TARGET" = "bootstrap" ]; then + $MAKEINSTALL $PKG_MAKEINSTALL_OPTS_BOOTSTRAP + elif [ "$TARGET" = "hosttools" ]; then + make install $PKG_MAKEINSTALL_OPTS_HOSTTOOLS + fi + fi + if [ "$(type -t post_makeinstall_$TARGET)" = "function" ]; then + post_makeinstall_$TARGET + fi + + if [ "$TARGET" = "target" -o "$TARGET" = "init" ]; then + if [ -d $INSTALL ] ; then + for i in $INSTALL $INSTALL/usr; do + rm -rf $i/include + rm -rf $i/lib/pkgconfig + rm -rf $i/man + rm -rf $i/share/aclocal + rm -rf $i/share/bash-completion + rm -rf $i/share/doc + rm -rf $i/share/gtk-doc + rm -rf $i/share/info + rm -rf $i/share/locale + rm -rf $i/share/man + rm -rf $i/share/pkgconfig + find $i -name "*.la" -exec rm -rf "{}" ";" 2>/dev/null || true + find $i -name "*.a" -exec rm -rf "{}" ";" 2>/dev/null || true + find $i -name "*.so*T" -exec rm -rf "{}" ";" 2>/dev/null || true + done + + find $INSTALL -type d -exec rmdir -p "{}" ";" 2>/dev/null || true + + if [ ! "$DEBUG" = yes ]; then + $STRIP `find $INSTALL -name "*.so"` 2>/dev/null || echo "Information: no *.so libs found" + $STRIP `find $INSTALL -name "*.so.[0-9]*"` 2>/dev/null || echo "Information: no *.so.[0-9]* libs found" + fi + fi + fi + + cd $ROOT + fi # ! "$PKG_SECTION" = "virtual" + + # TODO: slow... + for i in `find $SYSROOT_PREFIX/usr/lib/ -name "*.la" 2>/dev/null`; do \ + $SED "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $i; \ + done + + for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do + eval val=\$$i + echo "STAMP_$i=\"$val\"" >> $STAMP + done fi diff --git a/scripts/get b/scripts/get index 1e27c1973c..198c0a1eb8 100755 --- a/scripts/get +++ b/scripts/get @@ -25,10 +25,6 @@ if [ -z "$1" ]; then GET_PKG=`grep ^PKG_NAME= $i | sed -e "s,\",,g" -e "s,PKG_NAME=,,"` $SCRIPTS/get $GET_PKG done - for i in `find packages/ -type f -name meta`; do - GET_PKG=`grep ^PKG_NAME= $i | sed -e "s,\",,g" -e "s,PKG_NAME=,,"` - $SCRIPTS/get $GET_PKG - done fi [ -z "$PKG_URL" ] && exit 0 diff --git a/scripts/install b/scripts/install index ab55cef160..e148aba780 100755 --- a/scripts/install +++ b/scripts/install @@ -52,13 +52,14 @@ if [ -n "$PKG_ARCH" -a ! "$PKG_ARCH" = "any" ]; then echo "$PKG_ARCH" | grep -q "\-$TARGET_ARCH" && exit 0 fi +if [ ! -f $PKG_DIR/package.mk ]; then + printf "${boldred} no package.mk file found in $PKG_DIR${endcolor}\n" + exit 1 +fi + $SCRIPTS/build $@ -if [ -f $PKG_DIR/package.mk ]; then - printf "%${BUILD_INDENT}c ${boldgreen}INSTALL${endcolor} $PACKAGE_NAME ${boldwhite}($TARGET)${endcolor}\n" ' '>&$SILENT_OUT -elif [ -f $PKG_DIR/install ]; then - printf "%${BUILD_INDENT}c ${boldgreen}INSTALL${endcolor} $PACKAGE_NAME ${boldred}(deprecated packageformat, please convert soon!)${endcolor}\n" ' '>&$SILENT_OUT -fi +printf "%${BUILD_INDENT}c ${boldgreen}INSTALL${endcolor} $PACKAGE_NAME ${boldwhite}($TARGET)${endcolor}\n" ' '>&$SILENT_OUT export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) if [ "$TARGET" = target ] ; then @@ -126,35 +127,33 @@ if [ "$TARGET" = target ] ; then fi fi -if [ -f $PKG_DIR/package.mk ]; then - # unset functions - unset -f pre_install - unset -f post_install +# unset functions + unset -f pre_install + unset -f post_install - # include buildfile - . $PKG_DIR/package.mk +# include buildfile + . $PKG_DIR/package.mk + +# install + if [ "$TARGET" = target ] ; then + if [ "$(type -t pre_install)" = "function" ]; then + pre_install + fi + fi + + if [ "$TARGET" = "target" -a -d $PKG_BUILD/.install_pkg ]; then + mkdir -p $INSTALL + cp -PR $PKG_BUILD/.install_pkg/* $INSTALL + elif [ "$TARGET" = "init" -a -d $PKG_BUILD/.install_init ]; then + mkdir -p $INSTALL + cp -PR $PKG_BUILD/.install_init/* $INSTALL + fi if [ "$TARGET" = target ] ; then - # install - if [ "$(type -t pre_install)" = "function" ]; then - pre_install - fi + if [ "$(type -t post_install)" = "function" ]; then + post_install + fi fi - if [ "$TARGET" = "target" -a -d $PKG_BUILD/.install_pkg ]; then - mkdir -p $INSTALL - cp -PR $PKG_BUILD/.install_pkg/* $INSTALL - elif [ "$TARGET" = "init" -a -d $PKG_BUILD/.install_init ]; then - mkdir -p $INSTALL - cp -PR $PKG_BUILD/.install_init/* $INSTALL - fi - if [ "$TARGET" = target ] ; then - if [ "$(type -t post_install)" = "function" ]; then - post_install - fi - fi -elif [ -f $PKG_DIR/install ]; then - $PKG_DIR/install $@ >&$VERBOSE_OUT -fi for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do eval val=\$$i diff --git a/scripts/unpack b/scripts/unpack index ae808f51c1..da9cba63ad 100755 --- a/scripts/unpack +++ b/scripts/unpack @@ -29,6 +29,11 @@ $SCRIPTS/get $1 STAMP=$PKG_BUILD/.openelec-unpack +if [ ! -f $PKG_DIR/package.mk ]; then + printf "${boldred} no package.mk file found in $PKG_DIR${endcolor}\n" + exit 1 +fi + mkdir -p $BUILD [ ! -d "$SOURCES/$1" -a ! -d "$PKG_DIR/sources" ] && exit 0 @@ -38,11 +43,7 @@ for i in $BUILD/$1-*; do . "$i/.openelec-unpack" if [ "$STAMP_PKG_NAME" = "$1" ]; then # trigger unpack / full rebuild on any package.mk change - if [ -f $PKG_DIR/package.mk -a $PKG_DIR/package.mk -nt "$i/.openelec-unpack" ]; then - CLEAN_SOURCE=yes - break - # TODO: remove after converting ALL packages - elif [ -f $PKG_DIR/meta -a $PKG_DIR/meta -nt "$i/.openelec-unpack" ]; then + if [ $PKG_DIR/package.mk -nt "$i/.openelec-unpack" ]; then CLEAN_SOURCE=yes break fi @@ -74,8 +75,7 @@ fi printf "%${BUILD_INDENT}c ${boldcyan}UNPACK${endcolor} $1\n" ' '>&$SILENT_OUT export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) -if [ -f $PKG_DIR/package.mk ]; then - # unset functions +# unset functions unset -f pre_unpack unset -f unpack unset -f post_unpack @@ -114,36 +114,9 @@ if [ -f $PKG_DIR/package.mk ]; then if [ "$(type -t post_unpack)" = "function" ]; then post_unpack fi -else - if [ -n "$PKG_URL" ]; then - $SCRIPTS/extract $1 "$1*.tar.bz2" $BUILD - $SCRIPTS/extract $1 "$1*.tbz" $BUILD - $SCRIPTS/extract $1 "$1*.tar.gz" $BUILD - $SCRIPTS/extract $1 "$1*.tar.xz" $BUILD - $SCRIPTS/extract $1 "$1*.txz" $BUILD - $SCRIPTS/extract $1 "$1*.tgz" $BUILD - $SCRIPTS/extract $1 "$1*.7z" $BUILD - $SCRIPTS/extract $1 "$1*.zip" $BUILD - fi - if [ -n "$PKG_SOURCE_DIR" ]; then - mv $BUILD/$PKG_SOURCE_DIR $BUILD/$PKG_NAME-$PKG_VERSION - fi - - if [ -d "$PKG_DIR/sources" ]; then - [ ! -d "$BUILD/${PKG_NAME}-${PKG_VERSION}" ] && mkdir -p $BUILD/${PKG_NAME}-${PKG_VERSION} - cp -PRf $PKG_DIR/sources/* $BUILD/${PKG_NAME}-${PKG_VERSION} - fi - # todo: deprecated - if [ -f "$PKG_DIR/unpack" ]; then - $PKG_DIR/unpack $@ >&$VERBOSE_OUT - fi -fi - -if [ -f $PKG_DIR/package.mk ]; then - if [ "$(type -t pre_patch)" = "function" ]; then - pre_patch - fi +if [ "$(type -t pre_patch)" = "function" ]; then + pre_patch fi for i in $PKG_DIR/patches/$PKG_NAME-*.patch ; do @@ -188,10 +161,8 @@ for i in $PROJECT_DIR/$PROJECT/patches/$PKG_NAME/*.patch ; do fi done -if [ -f $PKG_DIR/package.mk ]; then - if [ "$(type -t post_patch)" = "function" ]; then - post_patch - fi +if [ "$(type -t post_patch)" = "function" ]; then + post_patch fi for config in `find $BUILD/$1* -name config.guess | sed 's/config.guess//'`; do @@ -205,23 +176,7 @@ done rm -f $STAMPS/$1/build_* -if [ -f "$PKG_DIR/package.mk" ]; then - for i in PKG_NAME PKG_VERSION PKG_REV PKG_SHORTDESC PKG_LONGDESC PKG_SITE PKG_URL PKG_SECTION; do - eval val=\$$i - echo "STAMP_$i=\"$val"\" >> $STAMP - done -elif [ -f "$PKG_DIR/meta" ]; then - # Deprecated - . $PKG_DIR/meta - - for i in PKG_NAME PKG_VERSION PKG_REV PKG_SHORTDESC PKG_LONGDESC PKG_SITE PKG_URL PKG_SECTION; do - eval val=\$$i - echo "STAMP_$i=\"$val"\" >> $STAMP - done -else - # Deprecated - for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do - eval val=\$$i - echo "STAMP_$i=\"$val"\" >> $STAMP - done -fi +for i in PKG_NAME PKG_VERSION PKG_REV PKG_SHORTDESC PKG_LONGDESC PKG_SITE PKG_URL PKG_SECTION; do + eval val=\$$i + echo "STAMP_$i=\"$val"\" >> $STAMP +done