Mercurial > hg > aboriginal
annotate sources/more/buildall.sh @ 972:cfa6262528f3
Genericize native build.
Break out dropbear and strace packages from download.sh (and clean up what
remains, mirror list is now in include.sh).
New script setup-native.build.sh downloads, extracts, and creates
a system image with "here document" build script to build dropbear and strace.
New native-build.sh script works on arbitrary hdc image, providing FTP upload
to a directory. The setup/fork logic to build all architectures is now in
buildall.sh for this, just like everything else.
Update buildall.sh to take optional list of architectures to build on command
line.
Factor out unique-port.sh (in embeddable manner) so distcc (in run-emulator.sh)
and ftp server (in native-build.sh) can both use it.
Upgrade to new busybox version while we're there.
HGi removed sources/more/setup-native-static-build.sh
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 05 Feb 2010 10:33:06 -0600 |
parents | 3d2261361009 |
children | 51a8a0076c9d |
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 | 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 | 11 if [ -z "$*" ] |
12 then | |
13 [ -z "${ARCHES}" ] && | |
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 | 16 [ -z "$HWARCHES" ] && |
17 HWARCHES="$(cd sources/targets; ls | grep '^hw-')" | |
18 else | |
19 ARCHES="$*" | |
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 | 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 | 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 | 71 sources/more/setup-native-build.sh build/host-temp/hdc.sqf && |
72 mkdir -p build/native-static && | |
73 for i in ${ARCHES} | |
74 do | |
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" | |
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 |
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
|
78 # 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
|
79 |
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 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
|
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 |