summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2019-01-30 21:43:46 -0500
committerJakob Kaivo <jkk@ung.org>2019-01-30 21:43:46 -0500
commit4e4240e460fa1df577249dcbc379c7f064211d3f (patch)
treeff8d3b32f7abf3c6fbece92f6f2cf8e07f89d0b9
parent8c1c5b70d770e1a2f760dbfaa6698b5ff563db4e (diff)
move version_guard function here
-rw-r--r--mk.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/mk.sh b/mk.sh
index eaa4c743..1b6703a7 100644
--- a/mk.sh
+++ b/mk.sh
@@ -25,3 +25,23 @@ classify_source () {
echo FUNCTION
fi
}
+
+version_guard () {
+ parsed=/tmp/$(basename $1).v
+ grep -F -e 'STDC(' -e 'POSIX(' -e 'XOPEN(' $1 | sort | m4 $(dirname $0)/ftm.m4 - | grep . > $parsed
+ lines=$(wc -l $parsed | cut -f1 -d' ')
+
+ if [ $lines -ne 0 ]; then
+ printf '#if'
+ loop=1
+ while [ $loop -lt $lines ]; do
+ printf '\t(%s) || \\\n' "$(sed -ne "${loop}p;q" $parsed)"
+ loop=$((loop + 1))
+ done
+
+ sed -ne "${loop}p;q" $parsed > /tmp/sed.out.${loop}
+ printf '\t(%s)\n' "$(sed -ne "${loop}p;q" $parsed)"
+ fi
+
+ rm -f $parsed
+}