• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/usb-modeswitch-2.2.3/jim/autosetup/
1# Copyright (c) 2011 WorkWare Systems http://www.workware.net.au/
2# All rights reserved
3
4# @synopsis:
5#
6# Provides a library of common tests on top of the 'cc' module.
7
8use cc
9
10module-options {}
11
12# @cc-check-lfs
13#
14# The equivalent of the AC_SYS_LARGEFILE macro
15#
16# defines 'HAVE_LFS' if LFS is available,
17# and defines '_FILE_OFFSET_BITS=64' if necessary
18#
19# Returns 1 if 'LFS' is available or 0 otherwise
20#
21proc cc-check-lfs {} {
22	cc-check-includes sys/types.h
23	msg-checking "Checking if -D_FILE_OFFSET_BITS=64 is needed..."
24	set lfs 1
25	if {[msg-quiet cc-with {-includes sys/types.h} {cc-check-sizeof off_t}] == 8} {
26		msg-result no
27	} elseif {[msg-quiet cc-with {-includes sys/types.h -cflags -D_FILE_OFFSET_BITS=64} {cc-check-sizeof off_t}] == 8} {
28		define _FILE_OFFSET_BITS 64
29		msg-result yes
30	} else {
31		set lfs 0
32		msg-result none
33	}
34	define-feature lfs $lfs
35	return $lfs
36}
37
38# @cc-check-endian
39#
40# The equivalent of the AC_C_BIGENDIAN macro
41#
42# defines 'HAVE_BIG_ENDIAN' if endian is known to be big,
43# or 'HAVE_LITTLE_ENDIAN' if endian is known to be little.
44#
45# Returns 1 if determined, or 0 if not.
46#
47proc cc-check-endian {} {
48	cc-check-includes sys/types.h sys/param.h
49	set rc 0
50	msg-checking "Checking endian..."
51	cc-with {-includes {sys/types.h sys/param.h}} {
52		if {[cctest -code {
53			#if !defined(BIG_ENDIAN) || !defined(BYTE_ORDER)
54				#error unknown
55			#elif BYTE_ORDER != BIG_ENDIAN
56				#error little
57			#endif
58		}]} {
59			define-feature big-endian
60			msg-result "big"
61			set rc 1
62		} elseif {[cctest -code {
63			#if !defined(LITTLE_ENDIAN) || !defined(BYTE_ORDER)
64				#error unknown
65			#elif BYTE_ORDER != LITTLE_ENDIAN
66				#error big
67			#endif
68		}]} {
69			define-feature little-endian
70			msg-result "little"
71			set rc 1
72		} else {
73			msg-result "unknown"
74		}
75	}
76	return $rc
77}
78