summaryrefslogtreecommitdiff
path: root/scripts/mkinclude.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mkinclude.sh')
-rw-r--r--scripts/mkinclude.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/mkinclude.sh b/scripts/mkinclude.sh
new file mode 100644
index 00000000..a77c8d74
--- /dev/null
+++ b/scripts/mkinclude.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+#
+# Given a list of headers, combine them into one, excluding certain lines
+#
+OUTFILE="/dev/stdout"
+COMBINEDHEADERS=""
+EXCLUDES=""
+
+while [ $# -gt 0 ]
+do
+ case $1 in
+ -o) OUTFILE=$2; shift;;
+ -e) EXCLUDES="$EXCLUDES $2"; shift;;
+ *) COMBINEDHEADERS="$COMBINEDHEADERS $1";
+ esac
+ shift
+done
+
+echo '#ifdef __cplusplus' > $OUTFILE
+echo 'extern "C" {' >> $OUTFILE
+echo '#endif' >> $OUTFILE
+echo '/*' >> $OUTFILE
+echo " \$Id\$" >> $OUTFILE
+echo '*/' >> $OUTFILE
+cat $COMBINEDHEADERS >> file.temp1
+for exclude in $EXCLUDES
+do
+ cp file.temp1 file.temp2
+ egrep -v "$exclude" file.temp2 > file.temp1
+done
+cat file.temp1 >> $OUTFILE
+rm -f file.temp1
+rm -f file.temp2
+echo '#ifdef __cplusplus' >> $OUTFILE
+echo '};' >> $OUTFILE
+echo '#endif' >> $OUTFILE
+
+