]> git.ozlabs.org Git - next-scripts/blobdiff - do_build
do_build: make more posix shell compliant
[next-scripts] / do_build
index 6909065762d81ffeb5c75702327fb5043936170d..51bea9c34c0b019272cdd6d4a6333953989710fd 100755 (executable)
--- a/do_build
+++ b/do_build
@@ -4,8 +4,13 @@
 
 set -e
 
-###ssh "$build_host" /bin/sh -e <<-EOF
-ssh root@"$build_host" unshare -n su $(id -u -n) <<-EOF
+bparent=$(dirname "$build_dir")
+
+cmd="/bin/sh"
+[ "$build_host" ] &&
+       cmd="ssh root@$build_host unshare -n su $(id -u -n)"
+
+$cmd <<-EOF
 
        echo Building on \$(hostname)
 
@@ -14,48 +19,81 @@ ssh root@"$build_host" unshare -n su $(id -u -n) <<-EOF
 
        cd "$build_dir" || exit 1
 
-       export CCACHE_DIR="${build_dir%/*}/.ccache"
-       export TMPDIR="${build_dir%/*}/tmp"
+       export CCACHE_DIR="$bparent/.ccache"
+       export TMPDIR="$bparent/tmp"
 
        git reset --hard next || exit 1
        touch .scmversion || exit 1
 
        echo Building: x86_64 allmodconfig
-       d=../x86_64_allmodconfig
+       d="$bparent/x86_64_allmodconfig"
        [ -d \$d ] || mkdir \$d || exit 1
        log_x86=\$d.log
        e=\$d.except
        echo CONFIG_BUILD_DOCSRC=n >\$e || exit 1
-       KCONFIG_ALLCONFIG=\$e cross -n -N -a x86_64 -c $gcc_version O=\$d allyesconfig || exit 1
+       echo CONFIG_MODULES=y >>\$e || exit 1
+       KCONFIG_ALLCONFIG=\$e cross -n -N -a x86_64 -c $gcc_version O=\$d allmodconfig || exit 1
        echo "Forking x86 build ..."
        /usr/bin/time cross -n -N -a x86_64 -c $gcc_version O=\$d -j$j_factor -s > \$log_x86 2>&1 &
+       x86_64_pid=\$!
 
        echo Building: powerpc ppc64_defconfig
-       d=../powerpc_ppc64_defconfig
+       d="$bparent/powerpc_ppc64_defconfig"
        [ -d \$d ] || mkdir \$d || exit 1
        log_ppc=\$d.log
        cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d ppc64_defconfig || exit 1
        echo "Forking powerpc build ..."
        /usr/bin/time cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d -j$j_factor -s > \$log_ppc 2>&1 &
+       ppc64_pid=\$!
 
        echo Building: arm multi_v7_defconfig
-       d=../arm_multi_v7_defconfig
+       d="$bparent/arm_multi_v7_defconfig"
        [ -d \$d ] || mkdir \$d || exit 1
        log_arm=\$d.log
        cross -n -N -a arm -c $gcc_version O=\$d multi_v7_defconfig || exit 1
        echo "Forking arm build ..."
        /usr/bin/time cross -n -N -a arm -c $gcc_version O=\$d -j$j_factor -s > \$log_arm 2>&1 &
+       arm_pid=\$!
+
+       echo Building: perf
+       d="$bparent/perf"
+       [ -d \$d ] || mkdir \$d || exit 1
+       log_perf=\$d.log
+       echo "Forking perf build ..."
+       /usr/bin/time make -s -C tools/perf JOBS=$j_factor O=\$d > \$log_perf 2>&1 &
+       perf_pid=\$!
+
+       wait \$perf_pid
+       rc=\$?
+
+       if [ \$rc -ne 0 ]; then
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "ERROR: perf build failed - log follows"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               cat \$log_perf
+               kill \$x86_64_pid
+               kill \$ppc64_pid
+               kill \$arm_pid
+               killall make
+               rm .scmversion
+               exit 1
+       else
+               echo "============================"
+               echo " perf build OK - log follows"
+               echo "============================"
+               cat \$log_perf
+       fi
 
-       wait %3
+       wait \$arm_pid
        rc=\$?
 
        if [ \$rc -ne 0 ]; then
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-               echo "ERROR: ARM build failed - log follows"
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "ERROR: arm multi_v7_defconfig build failed - log follows"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
                cat \$log_arm
-               kill %1
-               kill %2
+               kill \$x86_64_pid
+               kill \$ppd64_pid
                killall make
                rm .scmversion
                exit 1
@@ -66,15 +104,15 @@ ssh root@"$build_host" unshare -n su $(id -u -n) <<-EOF
                cat \$log_arm
        fi
 
-       wait %2
+       wait \$ppc64_pid
        rc=\$?
 
        if [ \$rc -ne 0 ]; then
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-               echo "ERROR: powerpc build failed - log follows"
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "ERROR: powerpc ppc64_defconfig build failed - log follows"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
                cat \$log_ppc
-               kill %1
+               kill \$x86_64_pid
                killall make
                rm .scmversion
                exit 1
@@ -85,13 +123,13 @@ ssh root@"$build_host" unshare -n su $(id -u -n) <<-EOF
                cat \$log_ppc
        fi
 
-       wait %1
+       wait \$x86_64_pid
        rc=\$?
 
        if [ \$rc -ne 0 ]; then
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-               echo "ERROR: x86 build failed - log follows"
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "ERROR: x86_64 allmodconfig build failed - log follows"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
                cat \$log_x86
                rm .scmversion
                exit 1