view smoketest.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 46c4978c9a5c
children d0157468f73d
line wrap: on
line source

#!/bin/bash

# This script compiles stuff under the final system, using distcc to call out
# to the cross compiler.

# Set up a timeout.  If it doesn't complete in 60 seconds, it failed.

timeout()
{
  sleep 60
  kill $1
}

timeout $$ &
trap "kill $(jobs -p) 2>/dev/null" EXIT

# Call run-from-build with a here document to do stuff.

# Note that the first line of the script is a few spaces followed by a comment
# character.  This gives some harmless data for the linux boot process to
# consume and discard before it gets to the command prompt.  I don't know why
# it does this, but it does.  The comment character is so you can see how
# much got eaten, generally about 3 characters.

# If you cat your own script into emulator-build.sh, you probably also need
# to start with a line of spaces like that.  Just FYI.

./run-from-build.sh $1 << 'EOF'
          #
# Show free space
df
# Smoke test for the compiler
gcc -s /usr/src/thread-hello2.c -lpthread -o /tmp/hello &&
/tmp/hello
sync
exit
EOF