Fix some bugs reported by Jim Gleason <jimg@lineo.com> and others I
[oweals/busybox.git] / busybox.mkll
index 151f5c32558875c74017be374e59a4e465224f65..d7b9ec539088fc20a48a9eb0de7807a7631cfc8b 100755 (executable)
@@ -1,15 +1,19 @@
 #!/bin/sh
-#Make busybox links list file
+# Make busybox links list file.
 
-DF="busybox.def.h"
-MF="busybox.c"
+DF="Config.h"
+MF="applets.h"
 
-LIST="$(sed -n '/^#define/{s/^#define //p;}' $DF)"
+LIST="$(gcc -E -dM $DF | sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/BB_\1/gp;' | sort)"
 
 for def in ${LIST}; do
-       i=`sed -n 's/^#ifdef \<'$def'\>.*\/\/\(.*$\)/\/\1\//gp' $MF`
-       j=`sed -n '/^#ifdef '$def'[      ].*/,/^#endif/{ s/.*\"\(.*\)\".*/\1/gp; }' $MF`
-       for k in $j; do
-           echo $i$k
-       done
+       i=`sed -n '/^#ifdef \<'$def'\>.*/,/^#endif/{ s/.*\"\(.*\)\".*\(_BB_DIR_[A-Z_]*\).*$/\2\/\1/gp; }' $MF`
+       for j in $i; do 
+               if [ -z $j ] ; then 
+                       continue;
+               fi;
+               echo $j | sed -e 's/_BB_DIR_ROOT//g;s/_BB_DIR_BIN/\/bin/g;' \
+                   -e 's/_BB_DIR_SBIN/\/sbin/g;s/_BB_DIR_USR_BIN/\/usr\/bin/g;' \
+                   -e 's/_BB_DIR_USR_SBIN/\/usr\/sbin/g;'
+       done;
 done