annotate include.sh @ 269:229a482fa9ca

Have qemu boot qemu-init.sh script instead of init=/bin/bash directly.
author Rob Landley <rob@landley.net>
date Sun, 27 Jan 2008 22:34:05 -0600
parents 0f962b5609c3
children a64a358ad792
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
3 # 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
4
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
5 function noversion()
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
6 {
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
7 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
8 }
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
9
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
10 # 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
11 function sha1file()
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
12 {
237
735ee8a5ca35 Fix the path to calculate the tarball sha1sum, use the sha1file function more
Rob Landley <rob@landley.net>
parents: 236
diff changeset
13 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
14 }
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
15
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
16 # 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
17 # "$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
18 # 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
19
220
8d2d0feff1ef The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents: 214
diff changeset
20 function extract()
8d2d0feff1ef The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents: 214
diff changeset
21 {
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
22 SRCTREE="${BUILD}/sources"
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
23 BASENAME="$(noversion "$1")"
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
24 BASENAME="${BASENAME/%\.tar\.*/}"
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
25 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
26 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
27
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
28 # 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
29
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
30 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
31 then
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
32 dienow
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
33 fi
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
34
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
35 # 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
36 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
37 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
38 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
39 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
40 do
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
41 # 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
42 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
43 then
f32b23bbf83a Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents: 246
diff changeset
44 SHALIST=missing
f32b23bbf83a Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents: 246
diff changeset
45 break
f32b23bbf83a Properly detect a short sha1list during tarball extraction (I.E. notice if
Rob Landley <rob@landley.net>
parents: 246
diff changeset
46 fi
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
47 # Remove it
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
48 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
49 done
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
50 # 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
51 [ -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
52 fi
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
53
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
54 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
55 # 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
56 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
57 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
58
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
59 # 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
60 DECOMPRESS=""
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
61 [ "$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
62 [ "$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
63
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
64 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
65 { 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
66 } | dotprogress
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
67
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
68 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
69 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
70 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
71
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
72 [ $? -ne 0 ] && dienow
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
73
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
74 # 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
75
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
76 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
77 do
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
78 if [ -f "$i" ]
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
79 then
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
80 echo "Applying $i"
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
81 (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
82 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
83 fi
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
84 done
220
8d2d0feff1ef The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents: 214
diff changeset
85 }
8d2d0feff1ef The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents: 214
diff changeset
86
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
87 function download()
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
88 {
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
89 FILENAME=`echo "$URL" | sed 's .*/ '`
255
c3e8c6662b58 Fix include.sh to consistently use noversion, and rephrase the sed invocation
Rob Landley <rob@landley.net>
parents: 252
diff changeset
90 BASENAME=`noversion "$FILENAME"`
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
91
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
92 # 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
93
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
94 for i in "$URL" http://www.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
95 do
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
96 # Return success if we have a valid copy of the file
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
97
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
98 # Test first (so we don't re-download a file we've already got).
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
99
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
100 SUM=`cat "$SRCDIR/$FILENAME" | sha1sum | awk '{print $1}'`
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
101 if [ x"$SUM" == x"$SHA1" ] || [ -z "$SHA1" ] && [ -f "$SRCDIR/$FILENAME" ]
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
102 then
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
103 touch "$SRCDIR/$FILENAME"
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
104 if [ -z "$SHA1" ]
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
105 then
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
106 echo "No SHA1 for $FILENAME ($SUM)"
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
107 else
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
108 echo "Confirmed $FILENAME"
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
109 fi
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
110 if [ ! -z "$EXTRACT_ALL" ]
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
111 then
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
112 extract "$FILENAME"
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
113 fi
244
aeb3788642e4 Notice when patch isn't installed and abort properly.
Rob Landley <rob@landley.net>
parents: 237
diff changeset
114 return $?
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
115 fi
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
116
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
117 # If there's a corrupted file, delete it. In theory it would be nice
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
118 # to resume downloads, but wget creates "*.1" files instead.
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
119
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
120 rm "$SRCDIR/$FILENAME" 2> /dev/null
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
121
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
122 # If we have another source, try to download file.
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
123
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
124 if [ -n "$i" ]
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
125 then
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
126 wget -P "$SRCDIR" "$i"
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
127 fi
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
128 done
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
129
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
130 # Return failure.
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
131
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
132 echo "Could not download $FILENAME"
81
6dd38c925bc4 Upgrade some packages, and other cleanups.
Rob Landley <rob@landley.net>
parents: 62
diff changeset
133 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
134 return 1
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
135 }
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
136
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
137 # Clean obsolete files out of the source directory
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
138
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
139 START_TIME=`date +%s`
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
140
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
141 function cleanup_oldfiles()
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
142 {
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
143 for i in "${SRCDIR}"/*
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
144 do
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
145 if [ -f "$i" ] && [ "$(date +%s -r "$i")" -lt "${START_TIME}" ]
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
146 then
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
147 echo Removing old file "$i"
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
148 rm -rf "$i"
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
149 fi
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
150 done
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
151 }
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
152
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
153 function dienow()
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
154 {
220
8d2d0feff1ef The "caller" built-in isn't available in bash 2.x.
Rob Landley <rob@landley.net>
parents: 214
diff changeset
155 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
156 exit 1
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
157 }
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
158
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
159 function dotprogress()
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
160 {
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
161 x=0
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
162 while read i
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
163 do
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
164 x=$[$x + 1]
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
165 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
166 then
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
167 x=0
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
168 echo -n .
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
169 fi
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
170 done
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
171 echo
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
172 }
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
173
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
174 # 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
175 # 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
176
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
177 function setupfor()
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
178 {
236
9c48cf5b65f6 Teach extract to check patch files for changes, not just tarballs.
Rob Landley <rob@landley.net>
parents: 222
diff changeset
179 # 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
180 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
181 extract "${1}-"*.tar* || exit 1
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
182
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
183 # 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
184
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
185 export CURSRC="$1"
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
186 [ ! -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
187 CURSRC="${WORK}/${CURSRC}"
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
188
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
189 # Announce package, with easy-to-grep-for "===" marker.
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
190
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
191 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
192 echo "Snapshot '$1'..."
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
193 cd "${WORK}" &&
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
194 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
195 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
196
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
197 [ $? -ne 0 ] && dienow
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
198
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
199 # Do we have a separate working directory?
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
200
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
201 if [ -z "$2" ]
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
202 then
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
203 cd "$1"* || dienow
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
204 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
205 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
206 cd "$2" || dienow
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
207 fi
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
208 }
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
209
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
210 # Setup
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
211
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
212 umask 022
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
213 unset CFLAGS CXXFLAGS
191
485dabec83c4 Comment one of the non-obvious (and optional) bits.
Rob Landley <rob@landley.net>
parents: 188
diff changeset
214 # This tells gcc to aggressively garbage collect its internal data
485dabec83c4 Comment one of the non-obvious (and optional) bits.
Rob Landley <rob@landley.net>
parents: 188
diff changeset
215 # structures. Without this, gcc triggers the OOM killer trying to rebuild
485dabec83c4 Comment one of the non-obvious (and optional) bits.
Rob Landley <rob@landley.net>
parents: 188
diff changeset
216 # itself in 128 megs of ram, which is the QEMU default size.
246
7c739084bfd1 The gcc-min-heapsize parameter slows x86-64 gcc down by an order of
Rob Landley <rob@landley.net>
parents: 244
diff changeset
217 [ "$(uname -m)" != "x86_64" ] &&
124
d5e9d5cf0172 According to http://hostingfu.com/article/compiling-with-gcc-on-low-memory-vps
Rob Landley <rob@landley.net>
parents: 120
diff changeset
218 export CFLAGS="--param ggc-min-expand=0 --param ggc-min-heapsize=8192"
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
219
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
220 # Find/create directories
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
221
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
222 TOP=`pwd`
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
223 export SOURCES="${TOP}/sources"
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
224 export SRCDIR="${SOURCES}/packages"
98
b6b4386a6c83 Make host-tools.sh work when run standalone.
Rob Landley <rob@landley.net>
parents: 96
diff changeset
225 export FROMSRC=../packages
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
226 export BUILD="${TOP}/build"
98
b6b4386a6c83 Make host-tools.sh work when run standalone.
Rob Landley <rob@landley.net>
parents: 96
diff changeset
227 export HOSTTOOLS="${BUILD}/host"
b6b4386a6c83 Make host-tools.sh work when run standalone.
Rob Landley <rob@landley.net>
parents: 96
diff changeset
228 export PATH="${HOSTTOOLS}:$PATH"
222
8b0d2080707c Be smarter about extracting tarballs: extract one copy of each tarball
Rob Landley <rob@landley.net>
parents: 220
diff changeset
229 mkdir -p "${SRCDIR}"
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
230
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
231 # For bash: check the $PATH for new executables added after startup.
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
232 set +h
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
233
47
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
234 # Are we doing a short build?
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
235
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
236 if [ "$1" == "--short" ]
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
237 then
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
238 export BUILD_SHORT=1
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
239 shift
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
240 fi
edaa86240321 Turnerize the build script and teach cross-compile.sh to build qemu when
Rob Landley <rob@landley.net>
parents: 41
diff changeset
241
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
242 # Get target platform from first command line argument.
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
243
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
244 if [ -z "$NO_ARCH" ]
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
245 then
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
246 ARCH_NAME="$1"
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
247 ARCH="$(echo "$1" | sed 's@.*/@@')"
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
248 if [ ! -f "${TOP}/sources/configs/${ARCH}" ]
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
249 then
35
25bfa6ac9f84 Make the "supported architecutes" list have sane line breaks.
Rob Landley <rob@landley.net>
parents: 34
diff changeset
250 echo "Supported architectures: "
25bfa6ac9f84 Make the "supported architecutes" list have sane line breaks.
Rob Landley <rob@landley.net>
parents: 34
diff changeset
251 (cd "${TOP}/sources/configs" && ls)
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
252 exit 1
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
253 fi
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
254
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
255 # Which platform are we building for?
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
256
62
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 60
diff changeset
257 export WORK="${BUILD}/temp-$ARCH"
107
72f414b2939d Have to make the include directory before we can put config files in it.
Rob Landley <rob@landley.net>
parents: 101
diff changeset
258 rm -rf "${WORK}"
72f414b2939d Have to make the include directory before we can put config files in it.
Rob Landley <rob@landley.net>
parents: 101
diff changeset
259 mkdir -p "${WORK}"
62
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 60
diff changeset
260 # Say "unknown" in two different ways so it doesn't assume we're NOT
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 60
diff changeset
261 # cross compiling when the host and target are the same processor. (If host
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 60
diff changeset
262 # and target match, the binutils/gcc/make builds won't use the cross compiler
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 60
diff changeset
263 # during mini-native.sh, and the host compiler links binaries against the
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 60
diff changeset
264 # wrong libc.)
213
1080306ae20e Allow host to be overridden (to build on MacOS X).
Rob Landley <rob@landley.net>
parents: 210
diff changeset
265 [ -z "$CROSS_HOST" ] && export CROSS_HOST=`uname -m`-walrus-linux
1080306ae20e Allow host to be overridden (to build on MacOS X).
Rob Landley <rob@landley.net>
parents: 210
diff changeset
266 [ -z "$CROSS_TARGET" ] && export CROSS_TARGET=${ARCH}-unknown-linux
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
267
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
268 # Read the relevant config file.
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
269
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
270 source "${TOP}/sources/configs/${ARCH}"
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
271
62
4125b672b00c Get i686 cross-compiling to work like armv4l cross-compiling by lying to
Rob Landley <rob@landley.net>
parents: 60
diff changeset
272 # Setup directories and add the cross compiler to the start of the path.
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
273
41
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
274 export CROSS="${BUILD}/cross-compiler-$ARCH"
3baa8ab7ee6d Largeish update.
Rob Landley <rob@landley.net>
parents: 36
diff changeset
275 export NATIVE="${BUILD}/mini-native-$ARCH"
145
b174c242934b Remove redundant $PATH element pointed out by George Boudreau.
Rob Landley <rob@landley.net>
parents: 138
diff changeset
276 export PATH="${CROSS}/bin:$PATH"
108
b66d638a3844 Build User Mode Linux and have that do the ext2 packaging (for now, anyway).
Rob Landley <rob@landley.net>
parents: 107
diff changeset
277 export IMAGE="${BUILD}/image-${ARCH}.ext2"
155
ce1ca3d0f95b Put zImage-$ARCH in build directory, not mini-native-$ARCH, and eliminate
Rob Landley <rob@landley.net>
parents: 145
diff changeset
278
ce1ca3d0f95b Put zImage-$ARCH in build directory, not mini-native-$ARCH, and eliminate
Rob Landley <rob@landley.net>
parents: 145
diff changeset
279
ce1ca3d0f95b Put zImage-$ARCH in build directory, not mini-native-$ARCH, and eliminate
Rob Landley <rob@landley.net>
parents: 145
diff changeset
280 emulator_command image-$ARCH.ext2 zImage-$ARCH \
269
229a482fa9ca Have qemu boot qemu-init.sh script instead of init=/bin/bash directly.
Rob Landley <rob@landley.net>
parents: 261
diff changeset
281 "rw init=/tools/bin/qemu-setup.sh panic=1 PATH=/tools/bin" \
229a482fa9ca Have qemu boot qemu-init.sh script instead of init=/bin/bash directly.
Rob Landley <rob@landley.net>
parents: 261
diff changeset
282 > "$BUILD/run-$ARCH.sh" &&
155
ce1ca3d0f95b Put zImage-$ARCH in build directory, not mini-native-$ARCH, and eliminate
Rob Landley <rob@landley.net>
parents: 145
diff changeset
283 chmod +x "$BUILD/run-$ARCH.sh"
261
0f962b5609c3 Minor clarification.
Rob Landley <rob@landley.net>
parents: 256
diff changeset
284 else
0f962b5609c3 Minor clarification.
Rob Landley <rob@landley.net>
parents: 256
diff changeset
285 export WORK="${BUILD}/host-temp"
0f962b5609c3 Minor clarification.
Rob Landley <rob@landley.net>
parents: 256
diff changeset
286 mkdir -p "${WORK}"
34
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
287 fi
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
288
ad1cfcb043c7 Cleaup pass: Break out shell functions and variable definitions into include.sh.
Rob Landley <rob@landley.net>
parents:
diff changeset
289 [ -z "$CLEANUP" ] && CLEANUP="rm -rf"
110
62f6268ff61b Build uClibc's readelf and ldd by hand to work around inadequate cross-compile
Rob Landley <rob@landley.net>
parents: 108
diff changeset
290 [ -z "$CC" ] && CC=gcc
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 173
diff changeset
291 if [ -z "$CPUS" ]
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 173
diff changeset
292 then
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 173
diff changeset
293 export CPUS=$[$(echo /sys/devices/system/cpu/cpu[0-9]* | wc -w)+0]
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 173
diff changeset
294 [ "$CPUS" -lt 1 ] && CPUS=1
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 173
diff changeset
295 fi