X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=scripts%2Fdeptest.sh;h=b82ac465874271c7639348312029dc103eb8a5d3;hb=0cacb5855d376f5f10cf2bc2951d240485025e82;hp=43757026ccdcd39beac9a7a1c3664040cec13f24;hpb=f40ea986e9cb04985213488a91a69e2236ba2fd2;p=librecmc%2Flibrecmc.git diff --git a/scripts/deptest.sh b/scripts/deptest.sh index 43757026cc..b82ac46587 100755 --- a/scripts/deptest.sh +++ b/scripts/deptest.sh @@ -1,43 +1,58 @@ +#!/bin/bash + DIR="$PWD/tmp/deptest" -STAMP_DIR="$DIR/stamp" +STAMP_DIR_SUCCESS="$DIR/stamp-success" +STAMP_DIR_FAILED="$DIR/stamp-failed" BUILD_DIR="$DIR/build" +BUILD_DIR_HOST="$DIR/build_host" STAGING_DIR="$DIR/staging" STAGING_DIR_HOST="$DIR/staging_host" STAGING_DIR_HOST_TMPL="$DIR/staging_host_tmpl" LOG_DIR="$DIR/logs" -mkdir -p "$STAMP_DIR" "$BUILD_DIR" "$LOG_DIR" +mkdir -p "$STAMP_DIR_SUCCESS" "$STAMP_DIR_FAILED" "$BUILD_DIR" "$LOG_DIR" + +die() +{ + echo "$@" + exit 1 +} [ -d "$STAGING_DIR_HOST_TMPL" ] || { rm -rf staging_dir/host - make tools/install || { - echo "make tools/install failed, please check" - exit 1 - } + make tools/install V=99 || die "make tools/install failed, please check" cp -al staging_dir/host "$STAGING_DIR_HOST_TMPL" + make toolchain/install V=99 || die "make toolchain/install failed, please check" } for pkg in `cat tmp/.packagedeps | grep CONFIG_PACKAGE | grep -v curdir | sed -e 's,.*[/=]\s*,,' | sort -u`; do - SELECTED= - for conf in `grep CONFIG_PACKAGE tmp/.packagedeps | grep " $pkg\$" | sed -e 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,'`; do - grep "$conf=" .config > /dev/null && SELECTED=1 - done - [ -f "$STAMP_DIR/$pkg-done" ] && continue - [ -n "$SELECTED" ] || { - echo "Package $pkg is not selected" - continue - } - echo "Testing package $pkg..." - rm -rf "$STAGING_DIR" - mkdir -p "$STAGING_DIR" - rm -rf "$STAGING_DIR_HOST" - cp -al "$STAGING_DIR_HOST_TMPL" "$STAGING_DIR_HOST" - make package/$pkg/compile \ - BUILD_DIR="$BUILD_DIR" \ - STAGING_DIR="$STAGING_DIR" \ - STAGING_DIR_HOST="$STAGING_DIR_HOST" \ - V=99 >"$LOG_DIR/$(basename $pkg).log" 2>&1 \ - && touch "$STAMP_DIR/$pkg-done" || { - echo "Building package $pkg failed!" - } + SELECTED= + for conf in `grep CONFIG_PACKAGE tmp/.packagedeps | grep -E "[ /]$pkg\$" | sed -e 's,package-$(\(CONFIG_PACKAGE_.*\)).*,\1,'`; do + grep "$conf=" .config > /dev/null && SELECTED=1 + done + STAMP_SUCCESS="$STAMP_DIR_SUCCESS/$pkg" + STAMP_FAILED="$STAMP_DIR_FAILED/$pkg" + rm -f "$STAMP_FAILED" + [ -f "$STAMP_SUCCESS" ] && continue + [ -n "$SELECTED" ] || { + echo "Package $pkg is not selected" + continue + } + echo "Testing package $pkg..." + rm -rf "$STAGING_DIR" + mkdir -p "$STAGING_DIR" + rm -rf "$STAGING_DIR_HOST" + cp -al "$STAGING_DIR_HOST_TMPL" "$STAGING_DIR_HOST" + make package/$pkg/compile \ + BUILD_DIR="$BUILD_DIR" \ + BUILD_DIR_HOST="$BUILD_DIR_HOST" \ + STAGING_DIR="$STAGING_DIR" \ + STAGING_DIR_HOST="$STAGING_DIR_HOST" \ + V=99 >"$LOG_DIR/$(basename $pkg).log" 2>&1 + if [ $? -eq 0 ]; then + touch "$STAMP_SUCCESS" + else + touch "$STAMP_FAILED" + echo "Building package $pkg failed!" + fi done