]> git.ozlabs.org Git - next-scripts/blobdiff - do_build
do_build: make more posix shell compliant
[next-scripts] / do_build
index 09fae6d63f2129a16c3c8594cbe272c9089feb5d..51bea9c34c0b019272cdd6d4a6333953989710fd 100755 (executable)
--- a/do_build
+++ b/do_build
 
 set -e
 
-###ssh "$build_host" /bin/sh -e <<-EOF
-ssh root@"$build_host" unshare -n su $(id -u -n) <<-EOF
-       set -e
+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)
 
        echo \$PATH | grep -q "\$HOME/bin" || export PATH="\$HOME/bin:\$PATH"
        export LANG=C
 
-       cd "$build_dir"
+       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
-       touch .scmversion
-
-       echo Building: powerpc ppc64_defconfig
-       d=../powerpc_ppc64_defconfig
-       [ -d \$d ] || mkdir \$d
-       cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d ppc64_defconfig
-       time cross -n -N -a powerpc64 -k powerpc -c $gcc_version O=\$d -j$j_factor -s
+       git reset --hard next || exit 1
+       touch .scmversion || exit 1
 
        echo Building: x86_64 allmodconfig
-       d=../x86_64_allmodconfig
-       [ -d \$d ] || mkdir \$d
+       d="$bparent/x86_64_allmodconfig"
+       [ -d \$d ] || mkdir \$d || exit 1
+       log_x86=\$d.log
        e=\$d.except
-       echo CONFIG_BUILD_DOCSRC=n >\$e
-       KCONFIG_ALLCONFIG=\$e cross -n -N -a x86_64 -c $gcc_version O=\$d allmodconfig
-       time cross -n -N -a x86_64 -c $gcc_version O=\$d -j$j_factor -s
+       echo CONFIG_BUILD_DOCSRC=n >\$e || 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="$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 \$d ] || mkdir \$d
-       cross -n -N -a arm -c $gcc_version O=\$d multi_v7_defconfig
-       time cross -n -N -a arm -c $gcc_version O=\$d -j$j_factor -s
+       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 \$arm_pid
+       rc=\$?
+
+       if [ \$rc -ne 0 ]; then
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "ERROR: arm multi_v7_defconfig build failed - log follows"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               cat \$log_arm
+               kill \$x86_64_pid
+               kill \$ppd64_pid
+               killall make
+               rm .scmversion
+               exit 1
+       else
+               echo "=================================================="
+               echo " ARM build OK - log follows"
+               echo "=================================================="
+               cat \$log_arm
+       fi
+
+       wait \$ppc64_pid
+       rc=\$?
+
+       if [ \$rc -ne 0 ]; then
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "ERROR: powerpc ppc64_defconfig build failed - log follows"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               cat \$log_ppc
+               kill \$x86_64_pid
+               killall make
+               rm .scmversion
+               exit 1
+       else
+               echo "=================================================="
+               echo " powerpc build OK - log follows"
+               echo "=================================================="
+               cat \$log_ppc
+       fi
+
+       wait \$x86_64_pid
+       rc=\$?
+
+       if [ \$rc -ne 0 ]; then
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               echo "ERROR: x86_64 allmodconfig build failed - log follows"
+               echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+               cat \$log_x86
+               rm .scmversion
+               exit 1
+       else
+               echo "=================================================="
+               echo " x86 build OK - log follows"
+               echo "=================================================="
+               cat \$log_x86
+       fi
 
        rm .scmversion
 EOF