Mercurial > hg > aboriginal
view sources/more/buildall.sh @ 902:ab47c4944591
Make buildall.sh do less host-specific work before allowing parallel builds to start.
author | Rob Landley <rob@landley.net> |
---|---|
date | Wed, 25 Nov 2009 21:58:16 -0600 |
parents | 06f80138cb90 |
children | 991a74436235 |
line wrap: on
line source
#!/bin/bash # Build every target architecture, creating build-$ARCH.txt log files. # If $FORK is set, build them in parallel. . sources/functions.sh || exit 1 [ -z "$STATIC_CROSS_COMPILER_HOST" ] && export STATIC_CROSS_COMPILER_HOST=i686 export BUILD_STATIC_NATIVE_COMPILER=1 export FAIL_QUIET=1 [ -z "${ARCHES}" ] && ARCHES="$(cd sources/targets/; ls | grep -v '^hw-')" [ -z "$HWARCHES" ] && HWARCHES="$(cd sources/targets; ls | grep '^hw-')" [ ! -z "$FORK" ] && QUIET=1 trap "killtree $$" EXIT # Build the host architecture. This has to be built first so the other # architectures can canadian cross static compilers to run on the host using # this toolchain to link against a host version of uClibc. # This also performs the download.sh and host-tools.sh steps, which don't # parallelize well if many build.sh instances try to call them at once. # If this fails, don't bother trying to build the other targets. blank_tempdir build mkdir -p build/logs && (./download.sh --extract 2>&1 && ./host-tools.sh 2>&1 && ./cross-compiler.sh 2>&1 "$STATIC_CROSS_COMPILER_HOST" || dienow) | tee build/logs/build-host-cc.txt | maybe_quiet cp packages/MANIFEST build || dienow # Build all the remaining cross compilers, possibly in parallel for i in ${ARCHES} ${HWARCHES} do [ "$i" != "$STATIC_CROSS_COMPILER_HOST" ] && maybe_fork "./build.sh $i 2>&1 | tee build/logs/build-${i}.txt | maybe_quiet" done wait # Run smoketest.sh for each non-hw target. for i in ${ARCHES} do maybe_fork "sources/more/smoketest.sh $i 2>&1 | tee build/logs/smoketest-$i.txt | maybe_quiet" done wait # This one has to do its own forking to avoid redundantly creating hdc.sqf sources/more/native-static-build.sh $i # Create a file containing simple pass/fail results for all architectures. sources/more/smoketest-all.sh --logs | tee build/logs/status.txt