view build.sh @ 744:759adf5a0fe9

Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
author Rob Landley <rob@landley.net>
date Thu, 11 Jun 2009 05:42:51 -0500
parents 428df726cf7f
children d8c780ed3686
line wrap: on
line source

#!/bin/bash

# If run with no arguments, list architectures.

if [ $# -eq 0 ]
then
  echo "Usage: $0 ARCH [ARCH...]"
  . sources/include.sh
  read_arch_dir
  
  exit 1
fi

# Download source code and build host tools.

./download.sh || exit 1

# host-tools populates one directory with every command the build needs,
# so we can ditch the old $PATH afterwards.

time ./host-tools.sh || exit 1

# Run the steps in order for each architecture listed on the command line
for i in "$@"
do
  echo "=== Building ARCH $i"

  if [ -f "build/cross-compiler-$i.tar.bz2" ]
  then
    echo "=== Skipping cross-compiler-$i (already there)"
  else
    rm -rf "build/root-filesystem-$i.tar.bz2"
    time ./cross-compiler.sh $i || exit 1
  fi
  echo "=== native ($i)"
  if [ -f "build/root-filesystem-$i.tar.bz2" ]
  then
    echo "=== Skipping root-filesystem-$i (already there)"
  else
    rm -rf "build/system-image-$i.tar.bz2"
    time ./root-filesystem.sh $i || exit 1
  fi

  if [ -f "build/system-image-$i.tar.bz2" ]
  then
    echo "=== Skipping system-image-$i (already there)"
  else
    time ./system-image.sh $i || exit 1
  fi
done