summaryrefslogtreecommitdiff
path: root/tools/gen-types.sh
blob: 5dd408f21123cb614441963b82f531d9fa3b2010 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh -e

sysdeps="$1"
shift

getbits() {
  expr 8 '*' `grep -F sizeof$2: < "$1" | awk '{print $2;}'`
}

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 ; 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