annotate sources/more/buildall.sh @ 974:51a8a0076c9d

Oops. Wait for native build to finish before exiting.
author Rob Landley <rob@landley.net>
date Sat, 06 Feb 2010 01:00:46 -0600
parents cfa6262528f3
children 6d3db5bf731a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
610
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
1 #!/bin/bash
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
2
902
ab47c4944591 Make buildall.sh do less host-specific work before allowing parallel builds to start.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
3 # Build every target architecture, creating build-$ARCH.txt log files.
610
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
4 # If $FORK is set, build them in parallel.
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
5
669
1cf41855bb85 More error checking.
Rob Landley <rob@landley.net>
parents: 630
diff changeset
6 . sources/functions.sh || exit 1
610
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
7
944
fc134a13357e Largeish refactoring and cleanup of compiler build:
Rob Landley <rob@landley.net>
parents: 922
diff changeset
8 [ -z "$STATIC_CC_HOST" ] && export STATIC_CC_HOST=i686
787
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
9 export FAIL_QUIET=1
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
10
972
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
11 if [ -z "$*" ]
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
12 then
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
13 [ -z "${ARCHES}" ] &&
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
14 ARCHES="$(cd sources/targets/; ls | grep -v '^hw-')"
721
f0ede6d6c952 Do canadian cross static toolchains properly, via buildall.sh.
Rob Landley <rob@landley.net>
parents: 718
diff changeset
15
972
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
16 [ -z "$HWARCHES" ] &&
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
17 HWARCHES="$(cd sources/targets; ls | grep '^hw-')"
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
18 else
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
19 ARCHES="$*"
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
20 fi
717
5a3ebc77340c Teach buildall.sh to canadian cross static cross compilers with --enable-shared and uClibc++ when you set "$CROSS_COMPILERS_EH".
Rob Landley <rob@landley.net>
parents: 669
diff changeset
21
787
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
22 [ ! -z "$FORK" ] && QUIET=1
778
e373d2b6d0b8 Add killtree and make stuff use it. Update smoketest-all.sh to use doforklog, allowing FORK=1 to run stuff in parallel.
Rob Landley <rob@landley.net>
parents: 776
diff changeset
23
e373d2b6d0b8 Add killtree and make stuff use it. Update smoketest-all.sh to use doforklog, allowing FORK=1 to run stuff in parallel.
Rob Landley <rob@landley.net>
parents: 776
diff changeset
24 trap "killtree $$" EXIT
e373d2b6d0b8 Add killtree and make stuff use it. Update smoketest-all.sh to use doforklog, allowing FORK=1 to run stuff in parallel.
Rob Landley <rob@landley.net>
parents: 776
diff changeset
25
787
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
26 # Build the host architecture. This has to be built first so the other
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
27 # architectures can canadian cross static compilers to run on the host using
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
28 # this toolchain to link against a host version of uClibc.
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
29
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
30 # This also performs the download.sh and host-tools.sh steps, which don't
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
31 # parallelize well if many build.sh instances try to call them at once.
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
32
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
33 # If this fails, don't bother trying to build the other targets.
610
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
34
755
38534e7a4844 Largely cosmetic change.
Rob Landley <rob@landley.net>
parents: 744
diff changeset
35 blank_tempdir build
787
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
36 mkdir -p build/logs &&
962
3d2261361009 Remove the --extract option from download.sh, since EXTRACT_ALL=1 does the same thing and everything _else_ is controlled by environment variables. At it to the config file and adjust existing users.
Rob Landley <rob@landley.net>
parents: 954
diff changeset
37 (EXTRACT_ALL=1 ./download.sh 2>&1 &&
902
ab47c4944591 Make buildall.sh do less host-specific work before allowing parallel builds to start.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
38 ./host-tools.sh 2>&1 &&
945
71456bd138eb Fix buildall.sh to use the new script name.
Rob Landley <rob@landley.net>
parents: 944
diff changeset
39 ./simple-cross-compiler.sh 2>&1 "$STATIC_CC_HOST" ||
902
ab47c4944591 Make buildall.sh do less host-specific work before allowing parallel builds to start.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
40 dienow) | tee build/logs/build-host-cc.txt | maybe_quiet
630
0e8a887f9d8b buildall.sh should create the README file in the output directory.
Rob Landley <rob@landley.net>
parents: 610
diff changeset
41
885
06f80138cb90 Add MANIFEST file to buildall.sh output.
Rob Landley <rob@landley.net>
parents: 852
diff changeset
42 cp packages/MANIFEST build || dienow
06f80138cb90 Add MANIFEST file to buildall.sh output.
Rob Landley <rob@landley.net>
parents: 852
diff changeset
43
916
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
44 # Build all non-hw targets, possibly in parallel
717
5a3ebc77340c Teach buildall.sh to canadian cross static cross compilers with --enable-shared and uClibc++ when you set "$CROSS_COMPILERS_EH".
Rob Landley <rob@landley.net>
parents: 669
diff changeset
45
916
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
46 for i in ${ARCHES}
610
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
47 do
916
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
48 maybe_fork "./build.sh $i 2>&1 | tee build/logs/build-${i}.txt | maybe_quiet"
610
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
49 done
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
50
773
2b9e8af90917 Remove wait4background, the shell has a builtin "wait" and we don't care about non-zero wait counts anymore.
Rob Landley <rob@landley.net>
parents: 769
diff changeset
51 wait
610
a47844b73616 New simple buildall.sh that's a wrapper around build.sh. (Chop out half of build-all-targets, need to make a separate script to build static toolchains.)
Rob Landley <rob@landley.net>
parents:
diff changeset
52
916
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
53 # Build all hw targets, possibly in parallel
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
54
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
55 for i in ${HWARCHES}
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
56 do
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
57 maybe_fork "./build.sh $i 2>&1 | tee build/logs/build-${i}.txt | maybe_quiet"
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
58 done
991a74436235 Build the rest of cross-static's host arch along with other architectures, and move hw- targets to explicitly build after non-hw targets.
Rob Landley <rob@landley.net>
parents: 902
diff changeset
59
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.
Rob Landley <rob@landley.net>
parents: 736
diff changeset
60 # Run smoketest.sh for each non-hw target.
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.
Rob Landley <rob@landley.net>
parents: 736
diff changeset
61
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.
Rob Landley <rob@landley.net>
parents: 736
diff changeset
62 for i in ${ARCHES}
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.
Rob Landley <rob@landley.net>
parents: 736
diff changeset
63 do
922
43efbc4c4838 Tweak buildall.sh to run smoketest.sh out of the correct directory.
Rob Landley <rob@landley.net>
parents: 916
diff changeset
64 maybe_fork "./smoketest.sh $i 2>&1 | tee build/logs/smoketest-$i.txt | maybe_quiet"
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.
Rob Landley <rob@landley.net>
parents: 736
diff changeset
65 done
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.
Rob Landley <rob@landley.net>
parents: 736
diff changeset
66
773
2b9e8af90917 Remove wait4background, the shell has a builtin "wait" and we don't care about non-zero wait counts anymore.
Rob Landley <rob@landley.net>
parents: 769
diff changeset
67 wait
787
23bff7aa79eb Teach buildall.sh to use new build.sh infrastructure, and replace doforklog with orthogonal maybe_fork and maybe_quiet functions.
Rob Landley <rob@landley.net>
parents: 778
diff changeset
68
972
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
69 # Build dropbear and strace
850
e0879d661b55 Add native-static-build.sh to buildall.sh, and upgrade logging.
Rob Landley <rob@landley.net>
parents: 847
diff changeset
70
972
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
71 sources/more/setup-native-build.sh build/host-temp/hdc.sqf &&
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
72 mkdir -p build/native-static &&
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
73 for i in ${ARCHES}
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
74 do
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
75 maybe_fork "sources/more/native-build.sh $i build/host-temp/hdc.sqf build/native-static | tee build/logs/native-$i.txt | maybe_quiet"
cfa6262528f3 Genericize native build.
Rob Landley <rob@landley.net>
parents: 962
diff changeset
76 done
850
e0879d661b55 Add native-static-build.sh to buildall.sh, and upgrade logging.
Rob Landley <rob@landley.net>
parents: 847
diff changeset
77
974
51a8a0076c9d Oops. Wait for native build to finish before exiting.
Rob Landley <rob@landley.net>
parents: 972
diff changeset
78 wait
51a8a0076c9d Oops. Wait for native build to finish before exiting.
Rob Landley <rob@landley.net>
parents: 972
diff changeset
79
852
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 850
diff changeset
80 # Create a file containing simple pass/fail results for all architectures.
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 850
diff changeset
81
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 850
diff changeset
82 sources/more/smoketest-all.sh --logs | tee build/logs/status.txt
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 850
diff changeset
83
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 850
diff changeset
84