randomconfig fixes
[oweals/busybox.git] / applets / busybox.mkll
index e43a1ccb072e939876b583c8360ea4ba1821fcdb..68dbf216262a6cd6a6f64d24a4cbe1c94b62108b 100755 (executable)
@@ -1,17 +1,24 @@
 #!/bin/sh
-#Make busybox links list file
+# Make busybox links list file.
 
-DF="busybox.def.h"
-MF="main.c"
+# input $1: full path to Config.h
+# input $2: full path to applets.h
+# output (stdout): list of pathnames that should be linked to busybox
 
-LIST="$(sed -n '/^#define/{s/^#define //p;}' $DF)"
+# Maintainer: Larry Doolittle <ldoolitt@recycle.lbl.gov>
 
-       for def in ${LIST}; do
-                       
-               set -- $(sed -n '/^#ifdef '$def'[ +|    +].*/,/^#endif/{s/.*\/\///p; /^{ /{ s/^{ "//; s/",.*$//p;}; }' $MF)
-               path=$1; shift
-               
-                       for n in $@; do
-                               echo "$path/$n"
-                       done
-       done
+export LC_ALL=POSIX
+export LC_CTYPE=POSIX
+
+CONFIG_H=${1:-include/autoconf.h}
+APPLETS_H=${2:-include/applets.h}
+$HOSTCC -E -DMAKE_LINKS -include $CONFIG_H $APPLETS_H |
+  awk '/^[ \t]*LINK/{
+       dir=substr($2,7)
+       gsub("_","/",dir)
+       if(dir=="/ROOT") dir=""
+       file=$3
+       gsub("\"","",file)
+       if (file=="busybox") next
+       print tolower(dir) "/" file
+  }'