aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gen-types.sh
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2017-01-25 15:52:18 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2017-01-25 15:52:18 +0000
commit00c9cb1b22cc17c4db573e0e613a5f116ff0092e (patch)
tree53178b2c52c6e97c6193f73378f3c5e5a781a914 /tools/gen-types.sh
parent2746b131aa482ac17c94bc6b82e58dbcc1b752cf (diff)
downloadskalibs-00c9cb1b22cc17c4db573e0e613a5f116ff0092e.tar.gz
More work on the types. This commit builds but has errors.
Rework src/headers entirely: build skalibs/types.h Convert skalibs/fmtscan.h types. Propagate changes until it builds. There are a lot of incompatible pointer issues remaining, those will be fixed with the buffer overhaul.
Diffstat (limited to 'tools/gen-types.sh')
-rwxr-xr-xtools/gen-types.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/gen-types.sh b/tools/gen-types.sh
new file mode 100755
index 0000000..acc9dab
--- /dev/null
+++ b/tools/gen-types.sh
@@ -0,0 +1,29 @@
+#!/bin/sh -e
+
+sysdeps="$1"
+shift
+
+getbits() {
+ expr 8 '*' `grep -F sizeof$2: < "$1" | cut -f2 -d' ')`
+}
+
+cat < src/headers/types-header
+
+for i in short int long ; do
+ I=$(echo "$i" | tr a-z A-Z)
+ bits=$(getbits "$sysdeps" u$i)
+ tools/gen-types-internal.sh u$i U$I $bits < src/headers/unsigned-template
+ tools/gen-types-internal.sh $i $I $bits < src/headers/signed-template
+done
+
+for i in "$@" ; do
+ un=un
+ I=$(echo "$i" | tr a-z A-Z)
+ bits=$(getbits "$sysdeps" $i)
+ if grep -qF "signed$i: yes" < "$sysdeps" ; then
+ un=
+ fi
+ tools/gen-types-internal.sh $i $I $bits < src/headers/"$un"signed-template
+done
+
+exec cat < src/headers/types-footer