46 lines
799 B
Bash
Executable file
46 lines
799 B
Bash
Executable file
#!/bin/sh
|
|
cd /tmp
|
|
umask 022
|
|
|
|
CC=cc
|
|
CPP=cpp
|
|
PATH="$PATH:/lib"
|
|
|
|
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
|