annotate build-static-toolchains.sh @ 627:e6c9da01349a

Take a stab at a cron job script.
author Rob Landley <rob@landley.net>
date Tue, 24 Feb 2009 19:40:09 -0600
parents
children a93ace5fbfc1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
627
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
1 #!/bin/bash
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
2
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
3 # This script builds static toolchains linked against uClibc.
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
4 # It boots a system image under qemu, copies the build into it, runs
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
5 # cross-compiler.sh for each target, and copies the resulting.
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
6
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
7 # The first argument is the host to build for. (Which system-image to run
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
8 # the build under.)
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
9
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
10 # Additional arguments are the targets to build for that host. If no
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
11 # targets are specified, the script builds all of them.
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
12
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
13 if [ $# -eq 0 ]
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
14 then
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
15 echo -e "Usage: build-static-toolchains.sh HOST_ARCH [TARGET_ARCH...]\n" >&2
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
16
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
17 # Fall through to show supported architectures.
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
18 fi
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
19
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
20 source sources/include.sh || exit 1
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
21
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
22 # run-from-build.sh needs things that aren't in build/host,
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
23 # such as qemu and fsck.ext2
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
24 PATH="$OLDPATH"
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
25
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
26 STATIC_HOST="$1"
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
27 shift
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
28 [ -z "$@" ] &&
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
29 STATIC_TARGETS="$(cd sources/targets; ls)" ||
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
30 STATIC_TARGETS="$@"
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
31
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
32 # Step 1, make sure the appropriate host files exist.
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
33
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
34 ./download.sh --extract || dienow
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
35 if [ ! -f build/system-image-$STATIC_HOST.tar.bz2 ]
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
36 then
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
37 ./build.sh $STATIC_HOST || dienow
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
38 fi
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
39
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
40 # Kill all the netcat instances if we exit prematurely
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
41
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
42 trap "kill 0" EXIT
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
43
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
44 # Feed a script into qemu. Pass data back and forth via netcat.
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
45 # This intentionally _doesn't_ use $NICE, so the distcc master node is higher
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
46 # priority than the distccd slave nodes.
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
47
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
48 ./run-from-build.sh "$STATIC_HOST" << EOF
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
49 #
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
50 export USE_UNSTABLE=$USE_UNSTABLE
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
51 export CROSS_BUILD_STATIC=1
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
52 rm -rf /home/firmware
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
53 mkdir -p /home/firmware &&
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
54 cd /home/firmware &&
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
55 netcat 10.0.2.2 $(build/host/netcat -s 127.0.0.1 -l tar c *.sh sources build/sources) | tar xv 2>&1 | pipe_progress > /dev/null &&
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
56 mkdir -p build/logs || exit 1
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
57 for i in $STATIC_TARGETS
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
58 do
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
59 ./cross-compiler.sh \$i | tee out-static-\$i.txt
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
60 done
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
61 tar c out-\*.txt build/cross-compiler-\*.tar.bz2 | netcat 10.0.2.2 \
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
62 $(cd build; host/netcat -s 127.0.0.1 -l tar xv)
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
63 exit
e6c9da01349a Take a stab at a cron job script.
Rob Landley <rob@landley.net>
parents:
diff changeset
64 EOF