view more/ @ 1391:42ec661e3916

Fix BINARY_PACKAGE_TARBALLS generation: some packages produce no output (zlib used to build dropbear for example), and thus check for an empty list before trying to make a tarball.
author Rob Landley <>
date Fri, 17 Jun 2011 13:00:17 -0500
parents 7eabfa815c90
children 8d0567d46cd7
line wrap: on
line source


# Build every target architecture, saving log files to build/log.
# If $FORK is set, build them in parallel.

. sources/ || exit 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 and steps, which don't
# parallelize well if many instances try to call them at once.

# If this fails, don't bother trying to build the other targets.

if [ -z "$BUILD_NATIVE_ONLY" ]
  [ -z "$NO_CLEAN" ] && blank_tempdir build

  mkdir -p build/logs &&
  (EXTRACT_ALL=1 ./ 2>&1 &&
   ./ 2>&1 &&
   ./ 2>&1 "$CROSS_COMPILER_HOST" ||
   dienow) | tee build/logs/build-host-cc.txt | maybe_quiet

  cp packages/MANIFEST build || dienow

  # Build all non-hw targets, possibly in parallel

  more/ \
    './ $TARGET 2>&1 | tee build/logs/build-${TARGET}.txt'


  # Run for each non-hw target.

  more/ \
    'more/ $TARGET 2>&1 | tee build/logs/smoketest-$TARGET.txt'


# Build the hdb images sequentially without, to avoid potential
# I/O storm triggering timeouts

FORK= more/ \
  '. sources/toys/; HDBMEGS=2048; HDB=build/system-image-$TARGET/hdb.img; echo "$HDB"; rm -f "$HDB"; make_hdb'

# Build static-tools (dropbear and strace) for each target

mkdir -p build/native-static || dienow
more/ \
  'ln -sf ../native-static build/system-image-$TARGET/upload'

more/ \
  'more/ 60 "HDB=hdb.img more/ $TARGET build/control-images/static-tools.hdc | tee build/logs/native-$TARGET.txt"'

# If using a test version of busybox, run busybox test suite.

is_in_list busybox "$USE_UNSTABLE" &&
  more/ \
    'more/ 60 "HDB=hdb.img more/ $TARGET build/control-images/busybox-test.hdc" | tee build/logs/busybox-test-$TARGET.txt'

# Create a file containing simple pass/fail results for all architectures.

more/ --logs | tee build/logs/status.txt