Mercurial > hg > aboriginal
annotate host-tools.sh @ 744:759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 11 Jun 2009 05:42:51 -0500 |
parents | 20ba34b54140 |
children | db06a8c1bfed |
rev | line source |
---|---|
177 | 1 #!/bin/bash |
93
153ba1a0b427
Break out the qemu build (and squashfs) into something easy to comment out,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2 |
153ba1a0b427
Break out the qemu build (and squashfs) into something easy to comment out,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3 # Get lots of predefined environment variables and shell functions. |
153ba1a0b427
Break out the qemu build (and squashfs) into something easy to comment out,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4 |
669 | 5 source sources/include.sh || exit 1 |
93
153ba1a0b427
Break out the qemu build (and squashfs) into something easy to comment out,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
6 |
485
b0438691e9e1
Move color selection into ./config. (The default colors don't look great on a white background.)
Rob Landley <rob@landley.net>
parents:
453
diff
changeset
|
7 echo -e "$HOST_COLOR" |
b0438691e9e1
Move color selection into ./config. (The default colors don't look great on a white background.)
Rob Landley <rob@landley.net>
parents:
453
diff
changeset
|
8 echo "=== Building host tools" |
b0438691e9e1
Move color selection into ./config. (The default colors don't look great on a white background.)
Rob Landley <rob@landley.net>
parents:
453
diff
changeset
|
9 |
389
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
368
diff
changeset
|
10 export LC_ALL=C |
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
368
diff
changeset
|
11 |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
12 blank_tempdir "${WORK}" |
99
fd6d26721acf
Minor tweak, move toybox build to the start.
Rob Landley <rob@landley.net>
parents:
96
diff
changeset
|
13 mkdir -p "${HOSTTOOLS}" || dienow |
96
137ba51ee993
Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents:
95
diff
changeset
|
14 |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
15 # If we want to record the host command lines, so we know exactly what commands |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
16 # the build uses, set up a wrapper that does that. |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
17 |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
18 if [ ! -z "$RECORD_COMMANDS" ] |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
19 then |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
20 if [ ! -f "$BUILD/wrapdir/wrappy" ] |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
21 then |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
22 echo setup wrapdir |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
23 |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
24 # Build the wrapper and install it into build/wrapdir/wrappy |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
25 blank_tempdir "$BUILD/wrapdir" |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
26 $CC -Os "$SOURCES/toys/wrappy.c" -o "$BUILD/wrapdir/wrappy" || dienow |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
27 |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
28 # Loop through each $PATH element and create a symlink to the wrapper with |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
29 # that name. |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
30 |
657
a56fa2df4d82
Add MANIFEST file to mini-native-$ARCH/usr/src.
Rob Landley <rob@landley.net>
parents:
653
diff
changeset
|
31 for i in $(echo "$PATH" | sed 's/:/ /g') |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
32 do |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
33 for j in $(ls $i) |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
34 do |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
35 [ -f "$BUILD/wrapdir/$j" ] || ln -s wrappy "$BUILD/wrapdir/$j" |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
36 done |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
37 done |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
38 |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
39 # Adjust things to use wrapper directory |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
40 |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
41 export WRAPPY_REALPATH="$PATH" |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
42 PATH="$BUILD/wrapdir" |
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
43 fi |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
44 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
45 # If we're not recording the host command lines, then populate a directory |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
46 # with host versions of all the command line utilities we're going to install |
711
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
47 # into root-filesystem. When we're done, PATH can be set to include just this |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
48 # directory and nothing else. |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
49 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
50 # This serves three purposes: |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
51 # |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
52 # 1) Enumerate exactly what we need to build the system, so we can make sure |
711
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
53 # root-filesystem has everything it needs to rebuild us. If anything is |
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
54 # missing from this list, the resulting root-filesystem probably won't have |
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
55 # it either, so it's nice to know as early as possible that we actually |
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
56 # needed it. |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
57 # |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
58 # 2) Quick smoke test that the versions of the tools we're using can compile |
711
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
59 # everything from source correctly, and thus root-filesystem should be able |
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
60 # to rebuild from source using those same tools. |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
61 # |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
62 # 3) Reduce variation from distro to distro. The build always uses the |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
63 # same command line utilities no matter where we're running, because we |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
64 # provide our own. |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
65 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
66 else |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
281
diff
changeset
|
67 |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
68 # Start by creating symlinks to the host toolchain, since we need to use |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
69 # that to build anything else. We build a cross compiler, and a native |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
70 # compiler for the target, but we don't build a host toolchain. We use the |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
71 # one that's already there. |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
72 |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
73 for i in ar as nm cc make ld gcc |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
74 do |
615
7523d1f3b818
Some slight paranoia against multiple host-tools.sh runs that get interrupted in the middle. (Yeah, in general that's not guaranteed to work, but still...)
Rob Landley <rob@landley.net>
parents:
609
diff
changeset
|
75 [ ! -f "${HOSTTOOLS}/$i" ] && |
7523d1f3b818
Some slight paranoia against multiple host-tools.sh runs that get interrupted in the middle. (Yeah, in general that's not guaranteed to work, but still...)
Rob Landley <rob@landley.net>
parents:
609
diff
changeset
|
76 (ln -s `PATH="$OLDPATH" which $i` "${HOSTTOOLS}/$i" || dienow) |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
77 done |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
78 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
79 # Build toybox |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
80 |
514
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
81 if [ ! -f "${HOSTTOOLS}/toybox" ] |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
82 then |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
83 setupfor toybox && |
514
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
84 make defconfig && |
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
85 make || dienow |
389
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
368
diff
changeset
|
86 if [ -z "$USE_TOYBOX" ] |
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
368
diff
changeset
|
87 then |
514
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
88 mv toybox "$HOSTTOOLS" && |
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
89 ln -s toybox "$HOSTTOOLS"/patch && |
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
90 ln -s toybox "$HOSTTOOLS"/netcat || dienow |
389
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
368
diff
changeset
|
91 else |
514
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
92 make install_flat PREFIX="${HOSTTOOLS}" || dienow |
389
becb1084a427
Add USE_TOYBOX option (enabled by default), to use toybox commands where
Rob Landley <rob@landley.net>
parents:
368
diff
changeset
|
93 fi |
514
8d2b9cd1a52e
build-all-target.sh needs toybox netcat to pass data into/out of qemu, so host-tools.sh should install that too.
Rob Landley <rob@landley.net>
parents:
508
diff
changeset
|
94 cd .. |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
281
diff
changeset
|
95 |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
96 cleanup toybox |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
97 fi |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
98 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
99 # Build busybox |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
100 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
101 if [ ! -f "${HOSTTOOLS}/busybox" ] |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
102 then |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
103 setupfor busybox && |
453
61a26b8092bf
Busybox defconfig has become useless, so switch busybox to build via allyesconfig minus symbols to be disabled.
Rob Landley <rob@landley.net>
parents:
413
diff
changeset
|
104 make allyesconfig KCONFIG_ALLCONFIG="${SOURCES}/trimconfig-busybox" && |
358
9829e6cc8637
Update busybox from 1.2.2 to 1.11.0. Toybox i still used for oneit and patch,
Rob Landley <rob@landley.net>
parents:
355
diff
changeset
|
105 make -j $CPUS && |
9829e6cc8637
Update busybox from 1.2.2 to 1.11.0. Toybox i still used for oneit and patch,
Rob Landley <rob@landley.net>
parents:
355
diff
changeset
|
106 make busybox.links && |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
107 cp busybox "${HOSTTOOLS}" |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
108 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
109 [ $? -ne 0 ] && dienow |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
110 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
111 for i in $(sed 's@.*/@@' busybox.links) |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
112 do |
609
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
113 [ ! -f "${HOSTTOOLS}/$i" ] && |
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
114 (ln -s busybox "${HOSTTOOLS}/$i" || dienow) |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
115 done |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
116 cd .. |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
117 |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
118 cleanup busybox |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
119 fi |
625
065e1a0f6697
The new distcc version notices the host has the python binary, and assumes
Rob Landley <rob@landley.net>
parents:
624
diff
changeset
|
120 |
065e1a0f6697
The new distcc version notices the host has the python binary, and assumes
Rob Landley <rob@landley.net>
parents:
624
diff
changeset
|
121 PATH="${HOSTTOOLS}" |
311
a791ca629d9c
Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
122 fi |
a791ca629d9c
Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
123 |
711
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
124 # This is optionally used by root-filesystem to accelerate native builds when |
20ba34b54140
Rename mini-native.sh to root-filesystem.sh, since that's what it builds.
Rob Landley <rob@landley.net>
parents:
682
diff
changeset
|
125 # running under qemu. It's not used to build root-filesystem, or to build |
311
a791ca629d9c
Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
126 # the cross compiler, but it needs to be on the host system in order to |
a791ca629d9c
Upgrade to toybox-0.0.5 and linux-2.6.25-rc7. Remove use of perl in the kernel
Rob Landley <rob@landley.net>
parents:
301
diff
changeset
|
127 # use the distcc acceleration trick. |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
281
diff
changeset
|
128 |
571
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
129 # Note that this one we can use off of the host, it's used on the host where |
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
130 # the system image runs. The build doesn't actually use it, we only bother |
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
131 # to build it at all here as a convenience for run-from-build.sh. |
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
132 |
318
b3cf2e4b74f0
Patch from Andre Ruiz to fix host-tools rebuild check. (If busybox is already
Rob Landley <rob@landley.net>
parents:
311
diff
changeset
|
133 # Build distcc (if it's not in $PATH) |
609
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
134 if [ -z "$(which distccd)" ] |
277
ffef8c1fe240
Build distcc on host if it's not already installed.
Rob Landley <rob@landley.net>
parents:
276
diff
changeset
|
135 then |
571
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
136 setupfor distcc && |
624
7641e1038cb6
The new distcc is dumb enough to use -Werror by default. Make it stop.
Rob Landley <rob@landley.net>
parents:
615
diff
changeset
|
137 ./configure --with-included-popt --disable-Werror && |
571
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
138 make -j "$CPUS" && |
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
139 cp distcc distccd "${HOSTTOOLS}" && |
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
140 cd .. |
277
ffef8c1fe240
Build distcc on host if it's not already installed.
Rob Landley <rob@landley.net>
parents:
276
diff
changeset
|
141 |
571
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
142 cleanup distcc |
277
ffef8c1fe240
Build distcc on host if it's not already installed.
Rob Landley <rob@landley.net>
parents:
276
diff
changeset
|
143 fi |
ffef8c1fe240
Build distcc on host if it's not already installed.
Rob Landley <rob@landley.net>
parents:
276
diff
changeset
|
144 |
609
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
145 # Build genext2fs. We use it to build the ext2 image to boot qemu with |
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
146 # in system-image.sh. |
508
909a4921273d
Move genext2fs build to host-tools, remove dead code, add comments.
Rob Landley <rob@landley.net>
parents:
505
diff
changeset
|
147 |
571
f07d714321fe
Fix a couple brown paper bag bugs (oops) and general cleanups.
Rob Landley <rob@landley.net>
parents:
514
diff
changeset
|
148 if [ ! -f "${HOSTTOOLS}"/genext2fs ] |
508
909a4921273d
Move genext2fs build to host-tools, remove dead code, add comments.
Rob Landley <rob@landley.net>
parents:
505
diff
changeset
|
149 then |
609
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
150 setupfor genext2fs && |
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
151 ./configure && |
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
152 make -j $CPUS && |
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
153 cp genext2fs "${HOSTTOOLS}" && |
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
154 cd .. |
508
909a4921273d
Move genext2fs build to host-tools, remove dead code, add comments.
Rob Landley <rob@landley.net>
parents:
505
diff
changeset
|
155 |
609
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
156 cleanup genext2fs |
508
909a4921273d
Move genext2fs build to host-tools, remove dead code, add comments.
Rob Landley <rob@landley.net>
parents:
505
diff
changeset
|
157 fi |
909a4921273d
Move genext2fs build to host-tools, remove dead code, add comments.
Rob Landley <rob@landley.net>
parents:
505
diff
changeset
|
158 |
642
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
159 # Build e2fsprogs. |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
160 |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
161 # Busybox used to provide ext2 utilities (back around 1.2.2), but the |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
162 # implementation was horrible and got removed. Someday the new Lua |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
163 # toybox should provide these. |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
164 |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
165 # This mostly isn't used creating a system image, which uses genext2fs instead. |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
166 # If SYSIMAGE_HDA_MEGS is > 64, it'll resize2fs because genext2fs is |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
167 # unreasonably slow at creating large files. |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
168 |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
169 # The hdb.img of run-emulator.sh and run-from-build.sh uses e2fsprogs' |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
170 # fsck.ext2 and tune2fs. These are installed by default in most distros |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
171 # (which genext2fs isn't), and genext2fs doesn't have ext3 support anyway. |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
172 |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
173 if [ ! -f "${HOSTTOOLS}"/mke2fs ] |
642
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
174 then |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
175 setupfor e2fsprogs && |
653
0071f3c72d4c
Vladimir Dronnikov pointed out that building e2fsprogs under uClibc would need --disable-tls.
Rob Landley <rob@landley.net>
parents:
651
diff
changeset
|
176 ./configure --disable-tls --enable-htree && |
642
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
177 make -j "$CPUS" && |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
178 cp misc/{mke2fs,tune2fs} resize/resize2fs "${HOSTTOOLS}" && |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
179 cp e2fsck/e2fsck "$HOSTTOOLS"/fsck.ext2 && |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
180 cd .. |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
181 |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
182 cleanup e2fsprogs |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
183 fi |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
625
diff
changeset
|
184 |
609
3c30ce98c273
And genext2fs could suffer the same symlink loop problem with RECORD_COMMANDS, so don't symlink. (The point of host-tools.sh is to build what we can from source anyway, linking to anything but the host toolchain defeats the purpose.)
Rob Landley <rob@landley.net>
parents:
608
diff
changeset
|
185 # Squashfs is an alternate packaging option. |
301
309b574a5059
Redo the $CLEANUP logic to a cleanup function in include.sh (meaning if a
Rob Landley <rob@landley.net>
parents:
281
diff
changeset
|
186 |
648
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
187 if [ ! -f "${HOSTTOOLS}"/mksquashfs ] |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
188 then |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
189 setupfor squashfs && |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
190 cd squashfs-tools && |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
191 make -j $CPUS && |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
192 cp mksquashfs unsquashfs "${HOSTTOOLS}" && |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
193 cd .. |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
194 |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
195 cleanup squashfs |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
642
diff
changeset
|
196 fi |
108
b66d638a3844
Build User Mode Linux and have that do the ext2 packaging (for now, anyway).
Rob Landley <rob@landley.net>
parents:
99
diff
changeset
|
197 |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
198 # Here's some stuff that isn't used to build a cross compiler or system |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
199 # image, but is used by run-from-build.sh. By default we assume it's |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
200 # installed on the host you're running system images on (which may not be |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
201 # the one you're building them on). |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
202 |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
203 # Either build qemu from source, or symlink it. |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
204 |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
205 if [ ! -f "${HOSTTOOLS}"/qemu ] |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
206 then |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
207 if [ ! -z "$HOST_BUILD_EXTRA" ] |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
208 then |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
209 |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
210 # Build qemu. Note that this is _very_slow_. (It takes about as long as |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
211 # building a system image from scratch, including the cross compiler.) |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
212 |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
213 # It's also ugly: its wants to populate a bunch of subdirectories under |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
214 # --prefix, and we can't just install it in host-temp and copy out what |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
215 # we want because the pc-bios directory needs to exist at a hardwired |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
216 # absolute path, so we do the install by hand. |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
217 |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
218 setupfor qemu && |
650
7a4ea7f6dc3d
Revert qemu ppc openbios to the version before the --nographic bug showed up (which was svn 6658). See http://lists.gnu.org/archive/html/qemu-devel/2009-03/msg01070.html for details.
Rob Landley <rob@landley.net>
parents:
649
diff
changeset
|
219 cp "$SOURCES"/patches/openbios-ppc pc-bios/openbios-ppc && |
682
d79f936c8f42
Fix qemu build so it can find pc-bios directory.
Rob Landley <rob@landley.net>
parents:
669
diff
changeset
|
220 sed -i 's@datasuffix=".*"@datasuffix="/pc-bios"@' configure && |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
221 ./configure --disable-gfx-check --prefix="$HOSTTOOLS" && |
650
7a4ea7f6dc3d
Revert qemu ppc openbios to the version before the --nographic bug showed up (which was svn 6658). See http://lists.gnu.org/archive/html/qemu-devel/2009-03/msg01070.html for details.
Rob Landley <rob@landley.net>
parents:
649
diff
changeset
|
222 make -j $CPUS && |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
223 # Copy the executable files and ROM files |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
224 cp $(find -type f -perm +111 -name "qemu*") "$HOSTTOOLS" && |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
225 cp -r pc-bios "$HOSTTOOLS" && |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
226 cd .. |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
227 |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
228 cleanup qemu |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
229 else |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
230 # Symlink qemu out of the host, if found. Since run-from-build.sh uses |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
231 # $PATH=.../build/host if it exists, add the various qemu instances to that. |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
232 |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
233 echo "$OLDPATH" | sed 's/:/\n/g' | while read i |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
234 do |
660
3561574d8a56
The i386 version is "qemu" with no trailing dash, so symlink that too.
Rob Landley <rob@landley.net>
parents:
657
diff
changeset
|
235 for j in $(cd "$i"; ls qemu* 2>/dev/null) |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
236 do |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
237 ln -s "$i/$j" "$HOSTTOOLS/$j" |
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
238 done |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
239 done |
651
0d6c67c401e0
Fix qemu build and add sh4 -append patch.
Rob Landley <rob@landley.net>
parents:
650
diff
changeset
|
240 fi |
649
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
241 fi |
950ef7de1cf9
Add qemu to host-tools.sh. If HOST_BUILD_EXTRA set, compile from source, otherwise symlink it from host. (Note that ppc --nographic and sh4 --append are currently broken in host version of qemu.)
Rob Landley <rob@landley.net>
parents:
648
diff
changeset
|
242 |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
243 if [ ! -z "$RECORD_COMMANDS" ] |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
244 then |
604
7fc1f4695c29
Minor cosmetic cleanup (don't warn about re-linking things that are expected to already be there), and don't build distccd if it's already in $PATH. (We need to put genext2fs in host/path because system-image.sh isn't using host's $PATH, but run-from-build.sh and friends do use host $PATH.)
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
245 # Make sure the host tools we just built are also in wrapdir |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
246 for j in $(ls "$HOSTTOOLS") |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
247 do |
608
ab76d4cdd392
Jean Wolter pointed out that running RECORD_COMMANDS=1 twice could create circular symlinks. Hopefully fixed now, and some related cleanups/clarifications.
Rob Landley <rob@landley.net>
parents:
604
diff
changeset
|
248 [ -e "$BUILD/wrapdir/$j" ] || ln -s wrappy "$BUILD/wrapdir/$j" |
352
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
249 done |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
250 fi |
1782b77fae15
Add command logging. Set RECORD_COMMANDS=1 to log every command line run
Rob Landley <rob@landley.net>
parents:
340
diff
changeset
|
251 |
93
153ba1a0b427
Break out the qemu build (and squashfs) into something easy to comment out,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
252 echo -e "\e[32mHost tools build complete.\e[0m" |