summaryrefslogtreecommitdiff
path: root/custom/endianness
blob: fb7d76e3c74758e4522e882b7cf08973f9920837 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh

############################################################
# Copyright (c) 2009 by Aleksey Cheusov
#
# See LICENSE file in the distribution.
############################################################

set -e

LC_ALL=C
export LC_ALL

##################################################

pathpart=endianness
. mkc_check_common.sh

trap "rm -f $tmpc $tmpo" 0

CFLAGS="$CFLAGS -D_GNU_SOURCE -D_ALL_SOURCE"

check_me (){
	cat > "$tmpc" <<EOF
$3

int main (int argc, char **argv)
{
  #if $1 == $2
   return 0;
#else
   error
#endif
}
EOF
	if $CC -o "$tmpo" -c $CFLAGS $CPPFLAGS "$tmpc" 2>/dev/null; then
		return 0
	else
		return 1
	fi
}

if check_me BYTE_ORDER LITTLE_ENDIAN '
#include <sys/types.h>
#include <sys/param.h>
';
then
    echo little
    exit 0
fi

if check_me BYTE_ORDER BIG_ENDIAN '
#include <sys/types.h>
#include <sys/param.h>
';
then
    echo big
    exit 0
fi

echo unknown
exit 0