Mercurial > hg > aboriginal
annotate include.sh @ 398:a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 25 Sep 2008 01:21:56 -0500 |
parents | 63dae3cd1163 |
children | 4e11cfb255e2 |
rev | line source |
---|---|
173
8b4c243a212e
Add better debug info to a status report, and stop fighting ubuntu so much
Rob Landley <rob@landley.net>
parents:
170
diff
changeset
|
1 #!/bin/bash |
138
7dffe9648a56
Installing bash but not using it. Yeah, there's a political agenda at work
Rob Landley <rob@landley.net>
parents:
125
diff
changeset
|
2 |
351
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
3 # Setup |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
4 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
5 # If this is set, mini-native won't include development tools, just uClibc |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
6 # and busybox. (Set it to "headers" to include kernel headers if you'd like |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
7 # to add your own toolchain, such as tinycc.) |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
8 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
9 # export BUILD_SHORT=1 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
10 |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
11 # If this is set, the build records the command lines run by each build into |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
12 # log files in the build directory, ala "build/cmdlines.$PACKAGENAME" |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
13 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
14 # export RECORD_COMMANDS=1 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
15 |
363
80f520811ed6
Teach cross-compiler.sh how to produce static binaries when BUILD_STATIC=1
Rob Landley <rob@landley.net>
parents:
362
diff
changeset
|
16 # If this is set, the cross-compiler stage is compiled with --static. |
80f520811ed6
Teach cross-compiler.sh how to produce static binaries when BUILD_STATIC=1
Rob Landley <rob@landley.net>
parents:
362
diff
changeset
|
17 |
80f520811ed6
Teach cross-compiler.sh how to produce static binaries when BUILD_STATIC=1
Rob Landley <rob@landley.net>
parents:
362
diff
changeset
|
18 # export BUILD_STATIC=1 |
80f520811ed6
Teach cross-compiler.sh how to produce static binaries when BUILD_STATIC=1
Rob Landley <rob@landley.net>
parents:
362
diff
changeset
|
19 |
378
739a56397f32
Document PREFERRED_MIRROR in include.sh
Rob Landley <rob@landley.net>
parents:
363
diff
changeset
|
20 # If this is set, try downloading packages from this location first. |
739a56397f32
Document PREFERRED_MIRROR in include.sh
Rob Landley <rob@landley.net>
parents:
363
diff
changeset
|
21 |
739a56397f32
Document PREFERRED_MIRROR in include.sh
Rob Landley <rob@landley.net>
parents:
363
diff
changeset
|
22 # export PREFERRED_MIRROR=http://landley.net/code/firmware/mirror |
739a56397f32
Document PREFERRED_MIRROR in include.sh
Rob Landley <rob@landley.net>
parents:
363
diff
changeset
|
23 |
389
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
387
diff
changeset
|
24 # If this is set, the toybox utilities will take precedence over busybox ones. |
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
387
diff
changeset
|
25 |
396 | 26 # export USE_TOYBOX=1 |
389
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
387
diff
changeset
|
27 |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
28 # Try development versions of these packages |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
29 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
30 # export USE_UNSTABLE=uClibc,linux |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
31 |
351
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
32 # What host compiler should we use? |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
33 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
34 [ -z "$CC" ] && CC=gcc |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
35 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
36 # How many processors should make -j use? |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
37 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
38 if [ -z "$CPUS" ] |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
39 then |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
40 export CPUS=$[$(echo /sys/devices/system/cpu/cpu[0-9]* | wc -w)+0] |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
41 [ "$CPUS" -lt 1 ] && CPUS=1 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
42 fi |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
43 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
44 umask 022 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
45 unset CFLAGS CXXFLAGS |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
46 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
47 # This tells gcc to aggressively garbage collect its internal data |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
48 # structures. Without this, gcc triggers the OOM killer trying to rebuild |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
49 # itself in 128 megs of ram, which is the QEMU default size. Don't do |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
50 # this on a 64 bit host or gcc will slow to a crawl due to insufficient memory. |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
51 [ "$(uname -m)" != "x86_64" ] && |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
52 export CFLAGS="--param ggc-min-expand=0 --param ggc-min-heapsize=8192" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
53 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
54 # Find/create directories |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
55 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
56 TOP=`pwd` |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
57 export SOURCES="${TOP}/sources" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
58 export SRCDIR="${SOURCES}/packages" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
59 export FROMSRC=../packages |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
60 export BUILD="${TOP}/build" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
61 export HOSTTOOLS="${BUILD}/host" |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
62 |
357
5c61d556fe0c
Make forkbomb.sh --fork work with RECORD_COMMANDS.
Rob Landley <rob@landley.net>
parents:
352
diff
changeset
|
63 [ -z "$WRAPPY_LOGDIR" ] && WRAPPY_LOGDIR="$BUILD" |
5c61d556fe0c
Make forkbomb.sh --fork work with RECORD_COMMANDS.
Rob Landley <rob@landley.net>
parents:
352
diff
changeset
|
64 |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
65 # Adjust $PATH |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
66 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
67 if [ "$PATH" != "$HOSTTOOLS" ] |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
68 then |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
69 if [ -f "$HOSTTOOLS/busybox" ] |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
70 then |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
71 PATH="$HOSTTOOLS" |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
72 else |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
73 PATH="${HOSTTOOLS}:$PATH" |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
74 fi |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
75 fi |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
76 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
77 STAGE_NAME=`echo $0 | sed 's@.*/\(.*\)\.sh@\1@'` |
357
5c61d556fe0c
Make forkbomb.sh --fork work with RECORD_COMMANDS.
Rob Landley <rob@landley.net>
parents:
352
diff
changeset
|
78 export WRAPPY_LOGPATH="$WRAPPY_LOGDIR/cmdlines.${STAGE_NAME}.setupfor" |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
79 if [ -f "$BUILD/wrapdir/wrappy" ] |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
80 then |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
81 export WRAPPY_REALPATH="$PATH" |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
82 PATH="$BUILD/wrapdir" |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
83 fi |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
84 |
351
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
85 mkdir -p "${SRCDIR}" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
86 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
87 # Tell bash not to cache the $PATH because we modify it. Without this, bash |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
88 # won't find new executables added after startup. |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
89 set +h |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
90 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
91 # Get target platform from first command line argument. |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
92 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
93 if [ -z "$NO_ARCH" ] |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
94 then |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
95 ARCH_NAME="$1" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
96 ARCH="$(echo "$1" | sed 's@.*/@@')" |
387
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
97 if [ ! -f "${TOP}/sources/targets/${ARCH}/details" ] |
351
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
98 then |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
99 echo "Supported architectures: " |
387
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
100 (cd "${TOP}/sources/targets" && ls) |
351
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
101 exit 1 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
102 fi |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
103 |
387
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
104 # Read the relevant config file. |
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
105 |
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
106 CONFIG_DIR="${TOP}/sources/targets/${ARCH}" |
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
107 source "${CONFIG_DIR}/details" |
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
108 |
351
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
109 # Which platform are we building for? |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
110 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
111 export WORK="${BUILD}/temp-$ARCH" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
112 mkdir -p "${WORK}" |
387
f0ceae67ebd0
Convert sources/configs/$ARCH files to sources/targets/$ARCH directories.
Rob Landley <rob@landley.net>
parents:
378
diff
changeset
|
113 |
351
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
114 # Say "unknown" in two different ways so it doesn't assume we're NOT |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
115 # cross compiling when the host and target are the same processor. (If host |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
116 # and target match, the binutils/gcc/make builds won't use the cross compiler |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
117 # during mini-native.sh, and the host compiler links binaries against the |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
118 # wrong libc.) |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
119 [ -z "$CROSS_HOST" ] && export CROSS_HOST=`uname -m`-walrus-linux |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
120 [ -z "$CROSS_TARGET" ] && export CROSS_TARGET=${ARCH}-unknown-linux |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
121 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
122 # Setup directories and add the cross compiler to the start of the path. |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
123 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
124 export CROSS="${BUILD}/cross-compiler-$ARCH" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
125 export NATIVE="${BUILD}/mini-native-$ARCH" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
126 export PATH="${CROSS}/bin:$PATH" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
127 else |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
128 export WORK="${BUILD}/host-temp" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
129 mkdir -p "${WORK}" |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
130 fi |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
131 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
132 [ $? -ne 0 ] && dienow |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
133 |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
134 # Everything after here is utility functions used by the other scripts. |
7f529baf0b57
Reorganize include.sh to put config options at the top, minor cleanups.
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
135 |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
136 # Figure out if we're using the stable or unstable versions of a package. |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
137 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
138 function unstable() |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
139 { |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
140 [ ! -z "$(echo ,"$USE_UNSTABLE", | grep ,"$1",)" ] |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
141 } |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
142 |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
143 # Strip the version number off a tarball |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
144 |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
145 function cleanup() |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
146 { |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
147 if [ $? -ne 0 ] |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
148 then |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
149 dienow |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
150 else |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
151 rm -rf "$@" |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
152 fi |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
153 } |
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
290
diff
changeset
|
154 |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
155 # Give filename.tar.ext minus the version number. |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
156 |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
157 function noversion() |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
158 { |
256
e1d156c264bc
Ok, the non-sed -r version is noticeably uglier than my first guess at it.
Rob Landley <rob@landley.net>
parents:
255
diff
changeset
|
159 echo "$1" | sed -e 's/-*\(\([0-9\.]\)*\([_-]rc\)*\(-pre\)*\([0-9][a-zA-Z]\)*\)*\(\.tar\..z2*\)$/\6/' |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
160 } |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
161 |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
162 # Give package name, minus file's version number and archive extension. |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
163 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
164 function basename() |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
165 { |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
166 noversion $1 | sed 's/\.tar\..z2*$//' |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
167 } |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
168 |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
169 # output the sha1sum of a file |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
170 function sha1file() |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
171 { |
237
735ee8a5ca35
Fix the path to calculate the tarball sha1sum, use the sha1file function more
Rob Landley <rob@landley.net>
parents:
236
diff
changeset
|
172 sha1sum "$@" | awk '{print $1}' |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
173 } |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
174 |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
175 # Extract tarball named in $1 and apply all relevant patches into |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
176 # "$BUILD/sources/$1". Record sha1sum of tarball and patch files in |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
177 # sha1-for-source.txt. Re-extract if tarball or patches change. |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
178 |
220
8d2d0feff1ef
The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents:
214
diff
changeset
|
179 function extract() |
8d2d0feff1ef
The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents:
214
diff
changeset
|
180 { |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
181 SRCTREE="${BUILD}/sources" |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
182 BASENAME="$(basename "$1")" |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
183 SHA1FILE="$(echo "${SRCTREE}/${BASENAME}/sha1-for-source.txt")" |
237
735ee8a5ca35
Fix the path to calculate the tarball sha1sum, use the sha1file function more
Rob Landley <rob@landley.net>
parents:
236
diff
changeset
|
184 SHA1TAR="$(sha1file "${SRCDIR}/$1")" |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
185 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
186 # Sanity check: don't ever "rm -rf /". Just don't. |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
187 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
188 if [ -z "$BASENAME" ] || [ -z "$SRCTREE" ] |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
189 then |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
190 dienow |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
191 fi |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
192 |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
193 # If it's already extracted and up to date (including patches), do nothing. |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
194 SHALIST=$(cat "$SHA1FILE" 2> /dev/null) |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
195 if [ ! -z "$SHALIST" ] |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
196 then |
237
735ee8a5ca35
Fix the path to calculate the tarball sha1sum, use the sha1file function more
Rob Landley <rob@landley.net>
parents:
236
diff
changeset
|
197 for i in "$SHA1TAR" $(sha1file "${SOURCES}/patches/$BASENAME"* 2>/dev/null) |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
198 do |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
199 # Is this sha1 in the file? |
248
f32b23bbf83a
Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents:
246
diff
changeset
|
200 if [ -z "$(echo "$SHALIST" | sed -n "s/$i/$i/p" )" ] |
f32b23bbf83a
Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents:
246
diff
changeset
|
201 then |
f32b23bbf83a
Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents:
246
diff
changeset
|
202 SHALIST=missing |
f32b23bbf83a
Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents:
246
diff
changeset
|
203 break |
f32b23bbf83a
Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents:
246
diff
changeset
|
204 fi |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
205 # Remove it |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
206 SHALIST="$(echo "$SHALIST" | sed "s/$i//" )" |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
207 done |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
208 # If we matched all the sha1sums, nothing more to do. |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
209 [ -z "$SHALIST" ] && return 0 |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
210 fi |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
211 |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
212 echo -n "Extracting '${BASENAME}'" |
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
213 # Delete the old tree (if any). Create new empty working directories. |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
214 rm -rf "${BUILD}/temp" "${SRCTREE}/${BASENAME}" 2>/dev/null |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
215 mkdir -p "${BUILD}"/{temp,sources} || dienow |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
216 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
217 # Is it a bzip2 or gzip tarball? |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
218 DECOMPRESS="" |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
219 [ "$1" != "${1/%\.tar\.bz2/}" ] && DECOMPRESS="j" |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
220 [ "$1" != "${1/%\.tar\.gz/}" ] && DECOMPRESS="z" |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
221 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
222 cd "${WORK}" && |
252
aa03feec947a
Minor tweaks: one error check was missed, use hard links instead of
Rob Landley <rob@landley.net>
parents:
248
diff
changeset
|
223 { tar -xv${DECOMPRESS} -f "${SRCDIR}/$1" -C "${BUILD}/temp" || dienow |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
224 } | dotprogress |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
225 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
226 mv "${BUILD}/temp/"* "${SRCTREE}/${BASENAME}" && |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
227 rmdir "${BUILD}/temp" && |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
228 echo "$SHA1TAR" > "$SHA1FILE" |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
229 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
230 [ $? -ne 0 ] && dienow |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
231 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
232 # Apply any patches to this package |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
233 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
234 ls "${SOURCES}/patches/$BASENAME"* 2> /dev/null | sort | while read i |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
235 do |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
236 if [ -f "$i" ] |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
237 then |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
238 echo "Applying $i" |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
239 (cd "${SRCTREE}/${BASENAME}" && patch -p1 -i "$i") || dienow |
237
735ee8a5ca35
Fix the path to calculate the tarball sha1sum, use the sha1file function more
Rob Landley <rob@landley.net>
parents:
236
diff
changeset
|
240 sha1file "$i" >> "$SHA1FILE" |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
241 fi |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
242 done |
220
8d2d0feff1ef
The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents:
214
diff
changeset
|
243 } |
8d2d0feff1ef
The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents:
214
diff
changeset
|
244 |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
245 function try_checksum() |
362
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
246 { |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
247 SUM="$(sha1file "$SRCDIR/$FILENAME" 2>/dev/null)" |
362
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
248 if [ x"$SUM" == x"$SHA1" ] || [ -z "$SHA1" ] && [ -f "$SRCDIR/$FILENAME" ] |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
249 then |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
250 touch "$SRCDIR/$FILENAME" |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
251 if [ -z "$SHA1" ] |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
252 then |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
253 echo "No SHA1 for $FILENAME ($SUM)" |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
254 else |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
255 echo "Confirmed $FILENAME" |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
256 fi |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
257 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
258 [ -z "$EXTRACT_ALL" ] && return 0 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
259 extract "$FILENAME" |
362
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
260 return $? |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
261 fi |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
262 |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
263 return 1 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
264 } |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
265 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
266 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
267 function try_download() |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
268 { |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
269 # Return success if we have a valid copy of the file |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
270 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
271 try_checksum && return 0 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
272 |
362
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
273 # If there's a corrupted file, delete it. In theory it would be nice |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
274 # to resume downloads, but wget creates "*.1" files instead. |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
275 |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
276 rm "$SRCDIR/$FILENAME" 2> /dev/null |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
277 |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
278 # If we have another source, try to download file. |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
279 |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
280 if [ -n "$1" ] |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
281 then |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
282 wget -t 2 -T 20 -O "$SRCDIR/$FILENAME" "$1" || return 2 |
362
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
283 fi |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
284 |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
285 return 1 |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
286 } |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
287 |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
288 # Confirm a file matches sha1sum, else try to download it from mirror list. |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
289 |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
290 function download() |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
291 { |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
292 FILENAME=`echo "$URL" | sed 's .*/ '` |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
293 |
398
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
294 # Is there an unstable version to download, and is it selected? |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
295 if [ ! -z "$UNSTABLE" ] && unstable "$(basename "$FILENAME")" |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
296 then |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
297 # Keep old version around, if present. |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
298 touch -c "$SRCDIR/$FILENAME" 2>/dev/null |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
299 |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
300 # Download new one as alt-packagename.tar.ext |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
301 FILENAME=alt-"$(noversion "$FILENAME")" |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
302 SHA1= try_download "$UNSTABLE" |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
303 return $[$?==2] |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
304 fi |
a7daae215647
Implement unstable package download logic, with examples. (Try "USE_UNSTABLE=uClibc,linux ./download.sh" for example.)
Rob Landley <rob@landley.net>
parents:
396
diff
changeset
|
305 |
396 | 306 # If environment variable specifies a preferred mirror, try that first. |
362
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
307 |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
308 [ -z "$PREFERRED_MIRROR" ] || try_download "$PREFERRED_MIRROR/$FILENAME" |
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
309 |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
310 # The extra "" is so we test the sha1sum after the last download. |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
311 |
340
595332f94fea
Add timeout to wget, and add another mirror (impactlinux.com) so there's a
Rob Landley <rob@landley.net>
parents:
329
diff
changeset
|
312 for i in "$URL" http://impactlinux.com/firmware/mirror/"$FILENAME" \ |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
313 http://landley.net/code/firmware/mirror/"$FILENAME" "" |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
314 do |
362
06f29c81ac8e
Teach download to fetch from $PREFERRED_MIRROR first, if set.
Rob Landley <rob@landley.net>
parents:
357
diff
changeset
|
315 try_download "$i" && return 0 |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
316 done |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
317 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
318 # Return failure. |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
319 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
320 echo "Could not download $FILENAME" |
81
6dd38c925bc4
Upgrade some packages, and other cleanups.
Rob Landley <rob@landley.net>
parents:
62
diff
changeset
|
321 echo -en "\e[0m" |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
322 return 1 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
323 } |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
324 |
41 | 325 # Clean obsolete files out of the source directory |
326 | |
327 START_TIME=`date +%s` | |
328 | |
329 function cleanup_oldfiles() | |
330 { | |
331 for i in "${SRCDIR}"/* | |
332 do | |
333 if [ -f "$i" ] && [ "$(date +%s -r "$i")" -lt "${START_TIME}" ] | |
334 then | |
335 echo Removing old file "$i" | |
336 rm -rf "$i" | |
337 fi | |
338 done | |
339 } | |
340 | |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
341 function dienow() |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
342 { |
220
8d2d0feff1ef
The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents:
214
diff
changeset
|
343 echo -e "\e[31mExiting due to errors\e[0m" |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
344 exit 1 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
345 } |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
346 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
347 function dotprogress() |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
348 { |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
349 x=0 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
350 while read i |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
351 do |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
352 x=$[$x + 1] |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
353 if [[ "$x" -eq 25 ]] |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
354 then |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
355 x=0 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
356 echo -n . |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
357 fi |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
358 done |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
359 echo |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
360 } |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
361 |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
362 # Extract package $1, use out-of-tree build directory $2 (or $1 if no $2) |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
363 # Use symlink directory $3 (or $1 if no $3) |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
364 |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
365 function setupfor() |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
366 { |
357
5c61d556fe0c
Make forkbomb.sh --fork work with RECORD_COMMANDS.
Rob Landley <rob@landley.net>
parents:
352
diff
changeset
|
367 export WRAPPY_LOGPATH="$WRAPPY_LOGDIR/cmdlines.${STAGE_NAME}.setupfor" |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
351
diff
changeset
|
368 |
236
9c48cf5b65f6
Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents:
222
diff
changeset
|
369 # Make sure the source is already extracted and up-to-date. |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
370 cd "${SRCDIR}" && |
252
aa03feec947a
Minor tweaks: one error check was missed, use hard links instead of
Rob Landley <rob@landley.net>
parents:
248
diff
changeset
|
371 extract "${1}-"*.tar* || exit 1 |
41 | 372 |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
373 # Set CURSRC |
173
8b4c243a212e
Add better debug info to a status report, and stop fighting ubuntu so much
Rob Landley <rob@landley.net>
parents:
170
diff
changeset
|
374 |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
375 export CURSRC="$1" |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
376 [ ! -z "$3" ] && CURSRC="$3" |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
377 CURSRC="${WORK}/${CURSRC}" |
41 | 378 |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
379 # Announce package, with easy-to-grep-for "===" marker. |
41 | 380 |
125
2dd9f480ff4e
Set PATH for run-mini-native.sh and add more obvious arch display info when
Rob Landley <rob@landley.net>
parents:
124
diff
changeset
|
381 echo "=== Building $1 ($ARCH_NAME)" |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
382 echo "Snapshot '$1'..." |
306
358ef8a27085
Break up run-$ARCH.sh, move more temp files into temp dir, fix deletion logic.
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
383 cd "${WORK}" || dienow |
358ef8a27085
Break up run-$ARCH.sh, move more temp files into temp dir, fix deletion logic.
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
384 if [ $# -lt 3 ] |
358ef8a27085
Break up run-$ARCH.sh, move more temp files into temp dir, fix deletion logic.
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
385 then |
358ef8a27085
Break up run-$ARCH.sh, move more temp files into temp dir, fix deletion logic.
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
386 rm -rf "${CURSRC}" || dienow |
358ef8a27085
Break up run-$ARCH.sh, move more temp files into temp dir, fix deletion logic.
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
387 fi |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
388 mkdir -p "${CURSRC}" && |
252
aa03feec947a
Minor tweaks: one error check was missed, use hard links instead of
Rob Landley <rob@landley.net>
parents:
248
diff
changeset
|
389 cp -lfR "${SRCTREE}/$1/"* "${CURSRC}" |
222
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
390 |
8b0d2080707c
Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents:
220
diff
changeset
|
391 [ $? -ne 0 ] && dienow |
41 | 392 |
393 # Do we have a separate working directory? | |
394 | |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
395 if [ -z "$2" ] |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
396 then |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
397 cd "$1"* || dienow |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
398 else |
47
edaa86240321
Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents:
41
diff
changeset
|
399 mkdir -p "$2" && |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
400 cd "$2" || dienow |
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
401 fi |
357
5c61d556fe0c
Make forkbomb.sh --fork work with RECORD_COMMANDS.
Rob Landley <rob@landley.net>
parents:
352
diff
changeset
|
402 export WRAPPY_LOGPATH="$WRAPPY_LOGDIR/cmdlines.${STAGE_NAME}.$1" |
34
ad1cfcb043c7
Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
403 } |