scripts/individual now builds 171 applets. Some of them may even work. :)
authorRob Landley <rob@landley.net>
Sat, 5 Aug 2006 00:41:39 +0000 (00:41 -0000)
committerRob Landley <rob@landley.net>
Sat, 5 Aug 2006 00:41:39 +0000 (00:41 -0000)
applets/individual.c
include/applets.h
networking/ether-wake.c
scripts/individual

index 0af256c6c5e57c6c53d260613cb61bfd5bccfc7d..c6d263b47aab0ccf9ba3c9905c291f67a3c2bce5 100644 (file)
@@ -9,6 +9,7 @@ const char *bb_applet_name;
 
 #include <stdio.h>
 #include <stdlib.h>
+#include "bb_config.h"
 #include "usage.h"
 
 int main(int argc, char *argv[])
index 07f9aabf2d74567e9eb6a259fe336ba250b8a481..42758a58f168ca877f04943cb406c84174be46b3 100644 (file)
@@ -105,7 +105,7 @@ USE_ED(APPLET(ed, _BB_DIR_BIN, _BB_SUID_NEVER))
 USE_FEATURE_GREP_EGREP_ALIAS(APPLET_NOUSAGE(egrep, grep, _BB_DIR_BIN, _BB_SUID_NEVER))
 USE_EJECT(APPLET(eject, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
 USE_ENV(APPLET(env, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
-USE_ETHER_WAKE(APPLET_ODDNAME(ether-wake, etherwake, _BB_DIR_USR_BIN, _BB_SUID_NEVER, ether_wake))
+USE_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, _BB_DIR_USR_BIN, _BB_SUID_NEVER, ether_wake))
 USE_EXPR(APPLET(expr, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
 USE_FAKEIDENTD(APPLET(fakeidentd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
 USE_FALSE(APPLET(false, _BB_DIR_BIN, _BB_SUID_NEVER))
index 75f065cdc1a9cd39fc2fff497945349cd65f8579..f4ca889fafc55a6a32505a099f0be39a51618c35 100644 (file)
@@ -105,7 +105,7 @@ static inline void get_dest_addr(const char *arg, struct ether_addr *eaddr);
 static inline int get_fill(unsigned char *pkt, struct ether_addr *eaddr, int broadcast);
 static inline int get_wol_pw(const char *ethoptarg, unsigned char *wol_passwd);
 
-int etherwake_main(int argc, char *argv[])
+int ether_wake_main(int argc, char *argv[])
 {
        char *ifname = "eth0", *pass = NULL;
        unsigned long flags;
index a4e433ca837be3d58907019ed902f0ba5839a5f2..8815e1e14ee0c787bcef1d567248c5cd2b1c5584 100755 (executable)
@@ -12,21 +12,47 @@ cd libbb
 make
 cd ..
 
+cd archival/libunarchive
+make
+cd ../..
+
+# 146 applets build without any extra stuff.  The applet is one C file with
+# the same name as the corresponding applet, and all it needs to link against
+# is libbb.a.  However, 104 of them need more than that.
+
+# dpkg_deb gzip
+function extra_libraries()
+{
+  archival="ar bunzip2 unlzma cpio dpkg gunzip rpm2cpio rpm tar uncompress unzip dpkg_deb gzip "
+  if [ "${archival/$1 //}" != "${archival}" ]
+  then
+    echo "archival/libunarchive/libunarchive.a"
+  fi
+}
+    
+  
+
 # Here are a few that build in a standard way.  Others are easy to get to
 # build, for example miscutils/dc needs -lm and most of loginutils/* needs
 # -lcrypt...
 
 rm -rf build
 mkdir build
+
 for APPLET in `sed 's .*/  ' busybox.links`
 do
-  j=`find . -name "$APPLET.c"`
+  APPFILT=${APPLET/-/_}
+  j=`find . -name "${APPLET/-/?}.c"`  # Because ether-wake.c is broken.
   if [ -z "$j" ]
   then
     echo no file for $APPLET
   else
     echo "Building $APPLET..."
-    gcc -Os -o build/$APPLET applets/individual.c $j libbb/libbb.a -Iinclude -DAPPLET_main=${APPLET}_main -DAPPLET_full_usage=${APPLET}_full_usage
+    gcc -Os -o build/$APPLET applets/individual.c $j \
+       `extra_libraries $APPFILT` libbb/libbb.a -Iinclude \
+       -DBUILD_INDIVIDUAL \
+       "-Drun_applet_by_name(...)" "-Dfind_applet_by_name(...) 0" \
+       -DAPPLET_main=${APPFILT}_main -DAPPLET_full_usage=${APPFILT}_full_usage
     if [ $? -ne 0 ];
     then
       echo "Failed."