diff --git a/scripts/unpack b/scripts/unpack index e26e57e06b..c10d2e10a0 100755 --- a/scripts/unpack +++ b/scripts/unpack @@ -38,27 +38,35 @@ mkdir -p $BUILD [ -f "$STAMP" -a -f "$PKG_DIR/need_unpack" ] && $PKG_DIR/need_unpack $@ -# trigger unpack / full rebuild on any package.mk change if [ -f $PKG_DIR/package.mk ]; then + # trigger unpack / full rebuild on any package.mk change if [ -f $STAMP -a $PKG_DIR/package.mk -nt $STAMP ]; then - rm -f $STAMP + CLEAN_SOURCE=yes + fi +elif [ -f $PKG_DIR/meta ]; then + # trigger unpack / full rebuild on any meta change (deprecated) + if [ -f $STAMP -a $PKG_DIR/meta -nt $STAMP ]; then + CLEAN_SOURCE=yes fi fi for patch in $PKG_DIR/patches/*; do + # trigger unpack / full rebuild on any patch change if [ "$patch" -nt "$STAMP" ]; then - rm -f $STAMP + CLEAN_SOURCE=yes break fi done +if [ "$CLEAN_SOURCE" = "yes" ]; then + $SCRIPTS/clean $1 +fi + [ -f "$STAMP" ] && exit 0 printf "%${BUILD_INDENT}c UNPACK $1\n" ' '>&$SILENT_OUT export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) -rm -rf $BUILD/$PKG_NAME-$PKG_VERSION - if [ -n "$PKG_URL" ]; then $SCRIPTS/extract $1 "$1*.tar.bz2" $BUILD $SCRIPTS/extract $1 "$1*.tbz" $BUILD @@ -146,7 +154,25 @@ done rm -f $STAMPS/$1/build_* -for i in `sed -n "s/^\([^#].*\)=\".*$/\1/p" $PROJECT_DIR/$PROJECT/options | grep -v "#"`; do - eval val=\$$i - echo "STAMP_$i=\"$val"\" >> $STAMP -done +if [ -f "$PKG_DIR/package.mk" ]; then + . $PKG_DIR/package.mk + + 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