summaryrefslogtreecommitdiff
path: root/tools/gen-bits.sh
diff options
context:
space:
mode:
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