aboutsummaryrefslogtreecommitdiff
path: root/scripts/genconfig.sh
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2016-02-07 18:15:53 -0600
committerRob Landley <rob@landley.net>2016-02-07 18:15:53 -0600
commit712e43ef7c92e8903e6f9d7ca261a420c566d299 (patch)
tree2ead7dae55d167de00e28e20024dce9e5f7c5d1c /scripts/genconfig.sh
parent3679024969b9b71c1d53a1d76f1aeb9593404490 (diff)
downloadtoybox-712e43ef7c92e8903e6f9d7ca261a420c566d299.tar.gz
Add "make ls" and friends targets, with "make working" and "make pending" lists.
Diffstat (limited to 'scripts/genconfig.sh')
-rwxr-xr-xscripts/genconfig.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/genconfig.sh b/scripts/genconfig.sh
index ce8c0266..7b34f085 100755
--- a/scripts/genconfig.sh
+++ b/scripts/genconfig.sh
@@ -119,3 +119,29 @@ genconfig()
probeconfig > generated/Config.probed || rm generated/Config.probed
genconfig > generated/Config.in || rm generated/Config.in
+
+# Find names of commands that can be built standalone in these C files
+toys()
+{
+ grep 'TOY(.*)' "$@" | grep -v TOYFLAG_NOFORK | \
+ sed -rn 's/([^:]*):.*(OLD|NEW)TOY\( *([a-zA-Z][^,]*) *,.*/\1:\3/p'
+}
+
+WORKING=
+PENDING=
+toys toys/*/*.c | (
+while IFS=":" read FILE NAME
+do
+ [ "$NAME" == help ] && continue
+ [ "$NAME" == install ] && continue
+ echo -e "$NAME:\n\tscripts/single.sh $NAME\n"
+ [ "${FILE/pending//}" != "$FILE" ] &&
+ PENDING="$PENDING $NAME" ||
+ WORKING="$WORKING $NAME"
+done > .singlemake &&
+echo -e "clean::\n\trm -f $WORKING $PENDING" >> .singlemake &&
+echo -e "working:\n\t@echo $(echo $WORKING | tr ' ' '\n' | sort | xargs)" \
+ >> .singlemake &&
+echo -e "pending:\n\t@echo $(echo $PENDING | tr ' ' '\n' | sort | xargs)" \
+ >> .singlemake
+)