diff options
| author | Rob Landley <rob@landley.net> | 2006-08-04 21:05:33 +0000 |
|---|---|---|
| committer | Rob Landley <rob@landley.net> | 2006-08-04 21:05:33 +0000 |
| commit | cb376eebf096964d300706a21451a5cfd9c5b31a (patch) | |
| tree | e7aa7b112f6213b6d3796a968523f01087aabe67 /scripts | |
| parent | e6a3fef08c87c4755eb2ad1460b3ac0e9a411461 (diff) | |
| download | busybox-w32-cb376eebf096964d300706a21451a5cfd9c5b31a.tar.gz busybox-w32-cb376eebf096964d300706a21451a5cfd9c5b31a.tar.bz2 busybox-w32-cb376eebf096964d300706a21451a5cfd9c5b31a.zip | |
Digging up my old "make standalone" stuff from a year ago:
http://busybox.net/lists/busybox/2005-September/015766.html
I renamed it "individual" to not confuse it with the standalone shell. (Which
it isn't compatible with for obvious reasons.) Configure busybox (I did
make defconfig), then run scripts/individual and it'll build an individual
version of each applet in the "build" subdirectory.
Currently it builds 146 and fails to build 104 applets out of "make defconfig".
I haven't taught it about multi-file applets yet (like tar), or the ones where
two applets get built from the same source (for example, zcat is a trivial
variant of gunzip so there is no zcat.c). But here's a start.
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/individual | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/individual b/scripts/individual new file mode 100755 index 000000000..a4e433ca8 --- /dev/null +++ b/scripts/individual | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | # Make our prerequisites. | ||
| 4 | |||
| 5 | make busybox.links include/bb_config.h | ||
| 6 | |||
| 7 | # Adding "libbb/libbb.a" to the previous line doesn't work, nor does going | ||
| 8 | # "make libbb.a" in the libb directory. The busybox makefile has layers and | ||
| 9 | # layers of overcomplicated brokenness... | ||
| 10 | |||
| 11 | cd libbb | ||
| 12 | make | ||
| 13 | cd .. | ||
| 14 | |||
| 15 | # Here are a few that build in a standard way. Others are easy to get to | ||
| 16 | # build, for example miscutils/dc needs -lm and most of loginutils/* needs | ||
| 17 | # -lcrypt... | ||
| 18 | |||
| 19 | rm -rf build | ||
| 20 | mkdir build | ||
| 21 | for APPLET in `sed 's .*/ ' busybox.links` | ||
| 22 | do | ||
| 23 | j=`find . -name "$APPLET.c"` | ||
| 24 | if [ -z "$j" ] | ||
| 25 | then | ||
| 26 | echo no file for $APPLET | ||
| 27 | else | ||
| 28 | echo "Building $APPLET..." | ||
| 29 | gcc -Os -o build/$APPLET applets/individual.c $j libbb/libbb.a -Iinclude -DAPPLET_main=${APPLET}_main -DAPPLET_full_usage=${APPLET}_full_usage | ||
| 30 | if [ $? -ne 0 ]; | ||
| 31 | then | ||
| 32 | echo "Failed." | ||
| 33 | fi | ||
| 34 | fi | ||
| 35 | done | ||
| 36 | |||
| 37 | strip build/* | ||
