diff options
Diffstat (limited to 'etc/ccdefs')
-rwxr-xr-x | etc/ccdefs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/etc/ccdefs b/etc/ccdefs new file mode 100755 index 0000000..2358fcd --- /dev/null +++ b/etc/ccdefs @@ -0,0 +1,45 @@ +#!/bin/sh +cd /tmp +umask 022 + +CC=cc +CPP=/lib/cpp + +TEMP=def$$ +trap 'rm -f ${TEMP}*; trap 0; exit' 0 1 2 3 15 + +set `type $CC` +q=$# +set x `type $CC` +shift $q +cc=$1 + +set `type $CPP` +q=$# +set x `type $CPP` +shift $q +cpp=$1 + +strings - "$cc" 2>/dev/null | tr ' ' '\012' > ${TEMP}.x + +if test -x "$cpp"; then +strings - "$cpp" 2>/dev/null | tr ' ' '\012' >> ${TEMP}.x +else +echo "Warning: cpp not found." +fi + +sort < ${TEMP}.x | uniq | awk ' +/^-D[A-Za-z_][A-Za-z_0-9]*$/ { + printf("#ifdef %s\n", substr($0,3)) + printf("\"%s\": %s\n", substr($0,3), substr($0,3)) + print "#endif" + } +/^[A-Za-z_][A-Za-z_0-9]*$/ { + printf("#ifdef %s\n", $0) + printf("\"%s\": %s\n", $0, $0) + print "#endif" + } +' > ${TEMP}.c + +echo "Defines in cc are:" +cc -E ${TEMP}.c | sed -n -e 's/"\([^:]*\)":/\1:/p' | sort | uniq |