diff --git a/config/path b/config/path index 530ff421f6..228659f319 100644 --- a/config/path +++ b/config/path @@ -43,6 +43,7 @@ TARGET_ADDONS="$TARGET_IMG/$ADDONS/$ADDON_PATH" ADDON_BUILD="$BUILD/$ADDONS/$1" STAMPS_NOARCH=.stamps STAMPS=$BUILD/.stamps +INSTALLSTAMPS=$BUILD/.install DOCS=DOCS TOOLCHAIN=$BUILD/toolchain SYSROOT_PREFIX=$ROOT/$TOOLCHAIN/$TARGET_NAME/sysroot diff --git a/scripts/install b/scripts/install index c1e911454f..9bc79c505c 100755 --- a/scripts/install +++ b/scripts/install @@ -7,40 +7,53 @@ if [ -z "$1" ]; then exit 1 fi -if [ -f $PKG_DIR/arch ]; then - grep -q "$TARGET_ARCH" "$PKG_DIR/arch" || exit 0 - grep -q "\-$TARGET_ARCH" "$PKG_DIR/arch" && exit 0 +mkdir -p $INSTALLSTAMPS/$1 +INSTALLSTAMP=$INSTALLSTAMPS/$1/install + +if [ $1 = "image" ]; then + rm -rf $INSTALLSTAMPS + mkdir -p $INSTALLSTAMPS/image fi -if [ -f $PKG_DIR/platform ]; then - grep -q "$TARGET_PLATFORM" "$PKG_DIR/platform" || exit 0 - grep -q "\-$TARGET_PLATFORM" "$PKG_DIR/platform" && exit 0 -fi - -if [ -d $PKG_DIR/init.d ]; then - mkdir -p $INSTALL/etc/init.d - cp $PKG_DIR/init.d/* $INSTALL/etc/init.d/ -fi - -if [ -d $PKG_DIR/profile.d ]; then - mkdir -p $INSTALL/etc/profile.d - cp $PKG_DIR/profile.d/*.conf $INSTALL/etc/profile.d/ -fi - -if [ -d $PKG_DIR/init.network ]; then - mkdir -p $INSTALL/etc/init.d/network - cp $PKG_DIR/init.network/* $INSTALL/etc/init.d/network/ -fi - -$SCRIPTS/build $@ -printf "%${INDENT}c INSTALL $1\n" >&$SILENT_OUT -#dialog --infobox "%${INDENT}c INSTALL $1\n" 15 40 -export INDENT=$((${INDENT:-1}+$INDENT_SIZE)) - -for p in $PKG_DEPENDS; do - $SCRIPTS/install $p -done - -if [ -f $PKG_DIR/install ]; then - $PKG_DIR/install $@ >&$VERBOSE_OUT +if [ ! -f $INSTALLSTAMP ]; then + + if [ -f $PKG_DIR/arch ]; then + grep -q "$TARGET_ARCH" "$PKG_DIR/arch" || exit 0 + grep -q "\-$TARGET_ARCH" "$PKG_DIR/arch" && exit 0 + fi + + if [ -f $PKG_DIR/platform ]; then + grep -q "$TARGET_PLATFORM" "$PKG_DIR/platform" || exit 0 + grep -q "\-$TARGET_PLATFORM" "$PKG_DIR/platform" && exit 0 + fi + + if [ -d $PKG_DIR/init.d ]; then + mkdir -p $INSTALL/etc/init.d + cp $PKG_DIR/init.d/* $INSTALL/etc/init.d/ + fi + + if [ -d $PKG_DIR/profile.d ]; then + mkdir -p $INSTALL/etc/profile.d + cp $PKG_DIR/profile.d/*.conf $INSTALL/etc/profile.d/ + fi + + if [ -d $PKG_DIR/init.network ]; then + mkdir -p $INSTALL/etc/init.d/network + cp $PKG_DIR/init.network/* $INSTALL/etc/init.d/network/ + fi + + $SCRIPTS/build $@ + printf "%${INDENT}c INSTALL $1\n" >&$SILENT_OUT + #dialog --infobox "%${INDENT}c INSTALL $1\n" 15 40 + export INDENT=$((${INDENT:-1}+$INDENT_SIZE)) + + for p in $PKG_DEPENDS; do + $SCRIPTS/install $p + done + + if [ -f $PKG_DIR/install ]; then + $PKG_DIR/install $@ >&$VERBOSE_OUT + fi + + touch $INSTALLSTAMP fi