summaryrefslogtreecommitdiff
path: root/tools/gen-bits.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-bits.sh
parent2746b131aa482ac17c94bc6b82e58dbcc1b752cf (diff)
downloadskalibs-00c9cb1b22cc17c4db573e0e613a5f116ff0092e.tar.xz
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-bits.sh')
-rwxr-xr-xtools/gen-bits.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/gen-bits.sh b/tools/gen-bits.sh
new file mode 100755
index 0000000..973562d
--- /dev/null
+++ b/tools/gen-bits.sh
@@ -0,0 +1,34 @@
+#!/bin/sh -e
+
+#!/bin/sh -e
+
+sysdeps="$1"
+bits="$2"
+dfmt="$3"
+ofmt="$4"
+xfmt="$5"
+bfmt="$6"
+
+tools/gen-types-internal.sh "" "" "$bits" < src/headers/bits-header
+
+if test "$bits" = 64 && grep -qF 'uint64t: no' "$sysdeps" ; then
+ if grep -qF 'sizeofulong: 8' "$sysdeps" ; then
+ cat src/headers/uint64-ulong64
+ else
+ cat src/headers/uint64-noulong64
+ fi
+else
+ tools/gen-types-internal.sh "" "" "$bits" < src/headers/bits-stdint
+fi
+
+if grep -qF 'endianness: little' < "$sysdeps" ; then
+ endian=l
+elif grep -qF 'endianness: big' < "$sysdeps" ; then
+ endian=b
+else
+ echo 'Error ! Unsupported endianness' 1>&2
+ ./crash
+fi
+tools/gen-types-internal.sh "" "" "$bits" < src/headers/bits-${endian}endian
+tools/gen-bits-internal.sh "$bits" "$dfmt" "$ofmt" "$xfmt" "$bfmt"
+exec tools/gen-types-internal.sh "" "" "$bits" < src/headers/bits-footer