annotate root-filesystem.sh @ 837:f80c47e8991d

Abstract the C library away from uClibc, so when more build sections are added potentially (For glibc, eglibc, et cetera), nothing needs to be changed in the other files
author Mark Miller <mark@mirell.org>
date Tue, 06 Oct 2009 17:56:39 -0500
parents d1a88d878e18
children 3cd64af0d1b6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
177
6b4844b708b9 dash->bash.
Rob Landley <rob@landley.net>
parents: 164
diff changeset
1 #!/bin/bash
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
2
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
3 # Get lots of predefined environment variables and shell functions.
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
4
669
1cf41855bb85 More error checking.
Rob Landley <rob@landley.net>
parents: 661
diff changeset
5 source sources/include.sh || exit 1
96
137ba51ee993 Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents: 85
diff changeset
6
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: 737
diff changeset
7 # Parse the sources/targets/$1 directory
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: 737
diff changeset
8
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: 737
diff changeset
9 read_arch_dir "$1"
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: 737
diff changeset
10
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: 737
diff changeset
11 # If this target has a base architecture that's already been built, use that.
685
90ab1a1f4db5 Teach build not to rebuild base architecture toolchains. Factor out some common code while there.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
12
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
13 check_for_base_arch || exit 0
685
90ab1a1f4db5 Teach build not to rebuild base architecture toolchains. Factor out some common code while there.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
14
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: 737
diff changeset
15 # Die if our prerequisite isn't there.
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: 737
diff changeset
16
782
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
17 for i in "$ARCH" "$FROM_ARCH"
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
18 do
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
19 if [ -z "$(which "${i}-cc")" ]
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
20 then
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
21 [ -z "$FAIL_QUIET" ] && echo No "${i}-cc" in '$PATH'. >&2
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
22 exit 1
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
23 fi
5c6ebb711b72 Check for both prerequisite compilers of a canadian cross, and use $ARCH-cc instead of $ARCH-gcc more.
Rob Landley <rob@landley.net>
parents: 757
diff changeset
24 done
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: 737
diff changeset
25
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: 737
diff changeset
26 # Announce start of stage.
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: 737
diff changeset
27
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: 737
diff changeset
28 echo -e "$NATIVE_COLOR"
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
29 echo "=== Building $STAGE_NAME"
395
c2b290c1df40 Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents: 390
diff changeset
30
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
31 blank_tempdir "$STAGE_DIR"
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: 737
diff changeset
32 blank_tempdir "$WORK"
96
137ba51ee993 Delete output directories on re-run, teach build to log and build multiple
Rob Landley <rob@landley.net>
parents: 85
diff changeset
33
658
dc5512d734f0 Actually put MANIFEST into mini-native.
Rob Landley <rob@landley.net>
parents: 633
diff changeset
34 # Determine which directory layout we're using
dc5512d734f0 Actually put MANIFEST into mini-native.
Rob Landley <rob@landley.net>
parents: 633
diff changeset
35
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
36 if [ -z "$ROOT_NODIRS" ]
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
37 then
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
38 ROOT_TOPDIR="$STAGE_DIR/usr"
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
39 mkdir -p "$STAGE_DIR"/{tmp,proc,sys,dev,home} || dienow
735
feec13d32dde Squashfs needs an /etc/resolv.conf, not just /usr/etc/resolv.conf
Rob Landley <rob@landley.net>
parents: 726
diff changeset
40 for i in bin sbin lib etc
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
41 do
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
42 mkdir -p "$ROOT_TOPDIR/$i" || dienow
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
43 ln -s "usr/$i" "$STAGE_DIR/$i" || dienow
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
44 done
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
45 else
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
46 ROOT_TOPDIR="$STAGE_DIR"
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
47 mkdir -p "$STAGE_DIR/bin" || dienow
331
d2820523ee06 When doing BUILD_SHORT (without development tools), use / instead of /tools.
Rob Landley <rob@landley.net>
parents: 326
diff changeset
48 fi
395
c2b290c1df40 Upgrade BUILD_SHORT to make a small busybox+uClibc system in /usr, with top level symlinks (/bin, /lib, etc) and adjustments to boot script and run-emulator.
Rob Landley <rob@landley.net>
parents: 390
diff changeset
49
837
f80c47e8991d Abstract the C library away from uClibc, so when more build sections are added potentially (For glibc, eglibc, et cetera), nothing needs to be changed in the other files
Mark Miller <mark@mirell.org>
parents: 820
diff changeset
50 # Build C Library
533
b970ffb2eb4d Work around problem with the make -j dependencies of uClibc.
Rob Landley <rob@landley.net>
parents: 530
diff changeset
51
837
f80c47e8991d Abstract the C library away from uClibc, so when more build sections are added potentially (For glibc, eglibc, et cetera), nothing needs to be changed in the other files
Mark Miller <mark@mirell.org>
parents: 820
diff changeset
52 [ -z "$C_LIBRARY" ] && C_LIBRARY=uClibc
f80c47e8991d Abstract the C library away from uClibc, so when more build sections are added potentially (For glibc, eglibc, et cetera), nothing needs to be changed in the other files
Mark Miller <mark@mirell.org>
parents: 820
diff changeset
53
f80c47e8991d Abstract the C library away from uClibc, so when more build sections are added potentially (For glibc, eglibc, et cetera), nothing needs to be changed in the other files
Mark Miller <mark@mirell.org>
parents: 820
diff changeset
54 STAGE_DIR="$ROOT_TOPDIR" build_section $C_LIBRARY
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
55
598
5fa326c07bc4 Change NATIVE_TOOLCHAIN to work like all the other config variables: unset gives the default behavior.
Rob Landley <rob@landley.net>
parents: 597
diff changeset
56 if [ "$NATIVE_TOOLCHAIN" == "none" ]
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
57 then
510
d6182f514567 A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents: 503
diff changeset
58 # If we're not installing a compiler, delete the headers, static libs,
d6182f514567 A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents: 503
diff changeset
59 # and example source code.
d6182f514567 A system without development headers doesn't need static libraries either.
Rob Landley <rob@landley.net>
parents: 503
diff changeset
60
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
61 rm -rf "$ROOT_TOPDIR"/include &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
62 rm -rf "$ROOT_TOPDIR"/lib/*.a &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
63 rm -rf "$ROOT_TOPDIR/src" || dienow
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
64
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
65 elif [ "$NATIVE_TOOLCHAIN" == "headers" ]
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
66 then
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
67
496
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
68 # If you want to use a compiler other than gcc, you need to keep the headers,
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
69 # so do nothing here.
3cebbc0b0723 Rename (invert) NATIVE_NOTOOLCHAIN and NATIVE_NOTOOLSDIR, and tweak colors again.
Rob Landley <rob@landley.net>
parents: 485
diff changeset
70 echo
423
8029eb9a4a8c Split out BUILD_NOTOOLS from BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 417
diff changeset
71
310
3a1ae92d6f6a Teach BUILD_SHORT to remove include files (saving ~5 megs), and move the
Rob Landley <rob@landley.net>
parents: 306
diff changeset
72 else
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
73
820
d1a88d878e18 Factor out and unify binutils, gcc, and ccwrap builds.
Rob Landley <rob@landley.net>
parents: 819
diff changeset
74 # Build binutils, gcc, and ccwrap
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
75
820
d1a88d878e18 Factor out and unify binutils, gcc, and ccwrap builds.
Rob Landley <rob@landley.net>
parents: 819
diff changeset
76 STAGE_DIR="$ROOT_TOPDIR" build_section binutils-gcc
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
77
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
78 # Tell future packages to link against the libraries in the new root filesystem,
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
79 # rather than the ones in the cross compiler directory.
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
80
807
d0b74a631587 Teach ccwrap.c to use arch-specific WRAPPER_TOPDIR values, to avoid interfering with canadian cross.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
81 export ${ARCH}_WRAPPER_TOPDIR="$ROOT_TOPDIR"
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
82
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
83 # Build and install uClibc++
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
84
447
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
85 setupfor uClibc++
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
86 CROSS= make defconfig &&
701
b4a9c0084f2f Converted ARMV5L from OABI to EABI with VFP support. Added patches for uClibc and uClibc++ to deal with Unwind Exception handling, made uClibc++ pull in libgcc_eh for this as well, and disabled SJLJ exceptions for ARMV5L EABI, which is apparently required, so --enable-sjlj-exceptions was added to the details file for all the other arches. Also correct the GENTOO_CHOST variable for armeb.
Mark Miller <mark@mirell.org>
parents: 693
diff changeset
87 sed -r -i 's/(UCLIBCXX_HAS_(TLS|LONG_DOUBLE))=y/# \1 is not set/' .config &&
447
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
88 sed -r -i '/UCLIBCXX_RUNTIME_PREFIX=/s/".*"/""/' .config &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
89 CROSS= make oldconfig &&
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
90 CROSS="$ARCH"- make &&
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
91 CROSS= make install PREFIX="$ROOT_TOPDIR/c++" &&
447
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
92
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
93 # Move libraries somewhere useful.
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
94
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
95 mv "$ROOT_TOPDIR"/c++/lib/* "$ROOT_TOPDIR"/lib &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
96 rm -rf "$ROOT_TOPDIR"/c++/{lib,bin} &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
97 ln -s libuClibc++.so "$ROOT_TOPDIR"/lib/libstdc++.so &&
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
98 ln -s libuClibc++.a "$ROOT_TOPDIR"/lib/libstdc++.a
447
4ed02d53fc92 Add C++ support to native compiler, based on uClibc++.
Rob Landley <rob@landley.net>
parents: 445
diff changeset
99
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
100 cleanup
443
716b7af6d8c3 Build libsupc++.a in preparation for building uClibc++.
Rob Landley <rob@landley.net>
parents: 432
diff changeset
101
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
102 fi # End of NATIVE_TOOLCHAIN build
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
103
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
104 if [ "$NATIVE_TOOLCHAIN" != "only" ]
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
105 then
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
106
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
107 # Copy qemu setup script and so on.
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
108
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
109 cp -r "${SOURCES}/native/." "$ROOT_TOPDIR/" &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
110 cp "$SRCDIR"/MANIFEST "$ROOT_TOPDIR/src" &&
837
f80c47e8991d Abstract the C library away from uClibc, so when more build sections are added potentially (For glibc, eglibc, et cetera), nothing needs to be changed in the other files
Mark Miller <mark@mirell.org>
parents: 820
diff changeset
111 cp "${WORK}/config-${C_LIBRARY}" "$ROOT_TOPDIR/src/config-${C_LIBRARY}" || dienow
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
112
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
113 # Build and install toybox
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
114
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
115 setupfor toybox
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
116 make defconfig &&
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
117 if [ -z "$USE_TOYBOX" ]
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
118 then
726
db5cb617339a Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents: 721
diff changeset
119 CFLAGS="$CFLAGS $STATIC_FLAGS" make CROSS="${ARCH}-" &&
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
120 cp toybox "$ROOT_TOPDIR/bin" &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
121 ln -s toybox "$ROOT_TOPDIR/bin/patch" &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
122 ln -s toybox "$ROOT_TOPDIR/bin/oneit" &&
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
123 ln -s toybox "$ROOT_TOPDIR/bin/netcat"
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
124 else
726
db5cb617339a Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents: 721
diff changeset
125 CFLAGS="$CFLAGS $STATIC_FLAGS" \
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
126 make install_flat PREFIX="$ROOT_TOPDIR"/bin CROSS="${ARCH}-"
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
127 fi
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
128
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
129 cleanup
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
130
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
131 # Build and install busybox
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
132
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
133 setupfor busybox
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
134 make allyesconfig KCONFIG_ALLCONFIG="${SOURCES}/trimconfig-busybox" &&
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
135 cp .config "$ROOT_TOPDIR"/src/config-busybox &&
726
db5cb617339a Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents: 721
diff changeset
136 LDFLAGS="$LDFLAGS $STATIC_FLAGS" \
db5cb617339a Centrialize BUILD_STATIC and make it apply to more of root-filesystem.sh
Rob Landley <rob@landley.net>
parents: 721
diff changeset
137 make -j $CPUS CROSS_COMPILE="${ARCH}-" $VERBOSITY &&
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
138 make busybox.links &&
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
139 cp busybox "$ROOT_TOPDIR/bin" || dienow
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
140
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
141 for i in $(sed 's@.*/@@' busybox.links)
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
142 do
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
143 # Allowed to fail.
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
144 ln -s busybox "$ROOT_TOPDIR/bin/$i" 2>/dev/null || true
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
145 done
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
146
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
147 cleanup
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
148
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
149 # Build and install make
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
150
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
151 setupfor make
794
81cf7ae7afce Teach make, bash, and distcc to honor BUILD_STATIC=1.
Rob Landley <rob@landley.net>
parents: 783
diff changeset
152 LDFLAGS="$STATIC_FLAGS $LDFLAGS" CC="${ARCH}-cc" ./configure \
81cf7ae7afce Teach make, bash, and distcc to honor BUILD_STATIC=1.
Rob Landley <rob@landley.net>
parents: 783
diff changeset
153 --prefix="$ROOT_TOPDIR" --build="${CROSS_HOST}" --host="${CROSS_TARGET}" &&
182
fc827ab6166f Autodetect number of processors and feed appropriate -j to make.
Rob Landley <rob@landley.net>
parents: 177
diff changeset
154 make -j $CPUS &&
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
155 make -j $CPUS install
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
156
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
157 cleanup
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
158
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
159 # Build and install bash. (Yes, this is an old version. It's intentional.)
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
160
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
161 setupfor bash
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
162 # Remove existing /bin/sh link (busybox) so the bash install doesn't get upset.
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
163 #rm "$ROOT_TOPDIR"/bin/sh
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
164 # wire around some tests ./configure can't run when cross-compiling.
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
165 cat > config.cache << EOF &&
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
166 ac_cv_func_setvbuf_reversed=no
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
167 bash_cv_sys_named_pipes=yes
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
168 bash_cv_have_mbstate_t=yes
66
57f77c25b39d Hit uClibc build with a large rock so it stops inserting hardwired paths in
Rob Landley <rob@landley.net>
parents: 63
diff changeset
169 bash_cv_getenv_redef=no
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
170 EOF
794
81cf7ae7afce Teach make, bash, and distcc to honor BUILD_STATIC=1.
Rob Landley <rob@landley.net>
parents: 783
diff changeset
171 LDFLAGS="$STATIC_FLAGS $LDFLAGS" CC="${ARCH}-cc" RANLIB="${ARCH}-ranlib" \
81cf7ae7afce Teach make, bash, and distcc to honor BUILD_STATIC=1.
Rob Landley <rob@landley.net>
parents: 783
diff changeset
172 ./configure --prefix="$ROOT_TOPDIR" \
153
106f3875f606 The bash build continues to be stupid. Force RANLIB.
Rob Landley <rob@landley.net>
parents: 131
diff changeset
173 --build="${CROSS_HOST}" --host="${CROSS_TARGET}" --cache-file=config.cache \
106f3875f606 The bash build continues to be stupid. Force RANLIB.
Rob Landley <rob@landley.net>
parents: 131
diff changeset
174 --without-bash-malloc --disable-readline &&
183
d2a27709d3b6 Fixup the -j stuff to actually work. (typo in gcc, and uClibc can't use it.)
Rob Landley <rob@landley.net>
parents: 182
diff changeset
175 # note: doesn't work with -j
d2a27709d3b6 Fixup the -j stuff to actually work. (typo in gcc, and uClibc can't use it.)
Rob Landley <rob@landley.net>
parents: 182
diff changeset
176 make &&
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
177 make install &&
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
178 # Make bash the default shell.
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
179 ln -sf bash "$ROOT_TOPDIR/bin/sh"
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
180
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
181 cleanup
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
182
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
183 setupfor distcc
805
d6bf46d17ac5 Make sparc build a static version. (Yes, this involves rubbing the distcc ./configure's nose in something to avoid a gratuitous build break.) The result bots to a shell prompt! Which then has a bus error if you try to do an "ls -l" and freezes if you "echo *". Still, that's progress...
Rob Landley <rob@landley.net>
parents: 794
diff changeset
184 rsync_cv_HAVE_C99_VSNPRINTF=yes \
794
81cf7ae7afce Teach make, bash, and distcc to honor BUILD_STATIC=1.
Rob Landley <rob@landley.net>
parents: 783
diff changeset
185 LDFLAGS="$STATIC_FLAGS $LDFLAGS" CC="${ARCH}-cc" ./configure \
81cf7ae7afce Teach make, bash, and distcc to honor BUILD_STATIC=1.
Rob Landley <rob@landley.net>
parents: 783
diff changeset
186 --host="${CROSS_TARGET}" --prefix="$ROOT_TOPDIR" \
613
518c8e257b3d Fixes Mark Miller sent for distcc support.
Rob Landley <rob@landley.net>
parents: 598
diff changeset
187 --with-included-popt --disable-Werror &&
293
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
188 make -j $CPUS &&
cdd26f8acc35 Update to gcc 4.1.2->4.2.2. Still doesn't fix the internal compiler error
Rob Landley <rob@landley.net>
parents: 284
diff changeset
189 make -j $CPUS install &&
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
190 mkdir -p "$ROOT_TOPDIR/distcc" || dienow
484
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
191
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
192 for i in gcc cc g++ c++
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
193 do
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
194 ln -s ../bin/distcc "$ROOT_TOPDIR/distcc/$i" || dienow
484
4b0507445452 Hook up c++ to distcc.
Rob Landley <rob@landley.net>
parents: 482
diff changeset
195 done
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
196
815
8129df56091b Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents: 807
diff changeset
197 cleanup
280
00ee362817e1 Cross-compile a native distcc for target.
Rob Landley <rob@landley.net>
parents: 278
diff changeset
198
83
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
199 # Put statically and dynamically linked hello world programs on there for
315
7fe514d773b9 Install setup script even for BUILD_SHORT.
Rob Landley <rob@landley.net>
parents: 311
diff changeset
200 # test purposes.
83
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
201
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
202 "${ARCH}-cc" "${SOURCES}/toys/hello.c" -Os -s -o "$ROOT_TOPDIR/bin/hello-dynamic" &&
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
203 "${ARCH}-cc" "${SOURCES}/toys/hello.c" -Os -s -static -o "$ROOT_TOPDIR/bin/hello-static"
83
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
204
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
205 [ $? -ne 0 ] && dienow
8fb80545fe84 Move the "hello world" source into sources/toys. Build (in mini-native)
Rob Landley <rob@landley.net>
parents: 81
diff changeset
206
713
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
207 fi # End of NATIVE_TOOLCHAIN != only
9282f84b31a1 Add NATIVE_TOOLCHAIN=only, to build _just_ the native toolchain (sae set of packages as the cross compiler, only --enable-shared and with uClibc++).
Rob Landley <rob@landley.net>
parents: 711
diff changeset
208
516
f846099333ac I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents: 510
diff changeset
209 # Delete some unneeded files
f846099333ac I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents: 510
diff changeset
210
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
211 rm -rf "$ROOT_TOPDIR"/{info,man,libexec/gcc/*/*/install-tools}
516
f846099333ac I can see the man pages being potentially useful, but info pages are a complete waste of space.
Rob Landley <rob@landley.net>
parents: 510
diff changeset
212
75
38e7e0cc3b9f Build mksquashfs in the non-short cross-compiler, and use it at the end of
Rob Landley <rob@landley.net>
parents: 68
diff changeset
213 # Clean up and package the result
43
6d16887ec084 Intermediate snapshot. Doesn't work yet.
Rob Landley <rob@landley.net>
parents:
diff changeset
214
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
215 "${ARCH}-strip" "$ROOT_TOPDIR"/{bin/*,sbin/*,libexec/gcc/*/*/*}
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
216 "${ARCH}-strip" --strip-unneeded "$ROOT_TOPDIR"/lib/*.so
53
3fd961e31444 Build a gcc wrapper for _target_, and add a "strip" command to halve the
Rob Landley <rob@landley.net>
parents: 52
diff changeset
217
783
db06a8c1bfed Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents: 782
diff changeset
218 create_stage_tarball
576
036dbe218036 Add BASE_ARCH support, so a hardware architecture can specify a base architecture and just provide a different kernel.
Rob Landley <rob@landley.net>
parents: 572
diff changeset
219
50
5aeba79b8f5f Remove qemu build (it's in cross-compiler.sh now), move uClibc build right
Rob Landley <rob@landley.net>
parents: 46
diff changeset
220 # Color back to normal
52
6d6551a37687 Add make to mini-native (required one more option switched on in uClibc), add
Rob Landley <rob@landley.net>
parents: 51
diff changeset
221 echo -e "\e[0mBuild complete"