#!/bin/sh
-sed -n -e 's/^#define.*BB_FEATURE.*$//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;' \
- -e '/^#define/{s/.*bb_//;s/$/.o/p;}' busybox.def.h
+
+RAW=` \
+ gcc -E -dM ${1:-Config.h} | \
+ sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/\1.c/gp;' \
+ | tr A-Z a-z | sort
+`
+test "${RAW}" != "" || exit
+cd ${2:-.}
+# I added in the extra "ls" so only source files that
+# actually exist will show up in the compile list.
+ls -1 $RAW 2>/dev/null | sed -e 's/\.c$/\.o/g'
+