aboutsummaryrefslogtreecommitdiffstats
path: root/support/cppmagic
diff options
context:
space:
mode:
Diffstat (limited to 'support/cppmagic')
-rwxr-xr-xsupport/cppmagic51
1 files changed, 51 insertions, 0 deletions
diff --git a/support/cppmagic b/support/cppmagic
new file mode 100755
index 0000000..b0a951c
--- /dev/null
+++ b/support/cppmagic
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Return a full cpp specification, complete with system dependent flags.
+#
+# Syntax: cppmagic [ program-to-generate-flags [ guessed-cpp ]]
+#
+# If only one arg is present it is the name of a program to invoke
+# which should generate -Dfoo defines.
+#
+# If two args are present the second arg is the name of the C
+# preprocessor to use.
+#
+# Invoked with no args, provides a C preprocessor name and
+# -traditional flag if that is appropriate.
+#
+# ../Makefile calls this file thusly: "cppmagic getcppsyms".
+#
+# Typical output:
+#
+# /lib/cpp -Dunix -Dm68k
+#
+
+Cpp=
+
+if [ "$2" ]; then
+ Cpp=$2
+else
+ for cpp in /lib/cpp /usr/lib/cpp /usr/ccs/lib/cpp; do
+ if [ -f $cpp ]; then
+ Cpp=$cpp
+ fi
+ done
+ if [ "$Cpp" = "" ]; then
+ Cpp=cpp
+ fi
+fi
+
+TRADITIONAL=
+FLAGS=
+
+# First flag might be `-traditional' if this is Gnu Cpp.
+unknown_flag=`$Cpp -traditional /dev/null 2>&1 |
+ egrep 'known|recognized|valid|bad|legal'`
+if [ "$unknown_flag" = "" ]; then
+ TRADITIONAL=-traditional
+fi
+
+if [ "$1" ]; then
+ FLAGS=`$1`
+fi
+
+echo $Cpp $TRADITIONAL $FLAGS