diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-07-08 04:25:39 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-07-08 04:27:33 +1000 |
commit | 6bc94edee1076301fd02854c8b3298900896ea49 (patch) | |
tree | 83d90b79b82fabd05109149c047765ed14020788 /autosetup/cc-lib.tcl | |
parent | d7d212111b459181a89a4c14554f85265c430340 (diff) | |
download | jimtcl-6bc94edee1076301fd02854c8b3298900896ea49.zip jimtcl-6bc94edee1076301fd02854c8b3298900896ea49.tar.gz jimtcl-6bc94edee1076301fd02854c8b3298900896ea49.tar.bz2 |
Update to the latest autosetup
Mainly for msys/mingw support
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'autosetup/cc-lib.tcl')
-rw-r--r-- | autosetup/cc-lib.tcl | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/autosetup/cc-lib.tcl b/autosetup/cc-lib.tcl index e769db9..f4fb0db 100644 --- a/autosetup/cc-lib.tcl +++ b/autosetup/cc-lib.tcl @@ -34,3 +34,44 @@ proc cc-check-lfs {} { define-feature lfs $lfs return $lfs } + +# @cc-check-endian +# +# The equivalent of the AC_C_BIGENDIAN macro +# +# defines 'HAVE_BIG_ENDIAN' if endian is known to be big, +# or 'HAVE_LITTLE_ENDIAN' if endian is known to be little. +# +# Returns 1 if determined, or 0 if not. +# +proc cc-check-endian {} { + cc-check-includes sys/types.h sys/param.h + set rc 0 + msg-checking "Checking endian..." + cc-with {-includes {sys/types.h sys/param.h}} { + if {[cctest -code { + #if! defined(BIG_ENDIAN) || !defined(BYTE_ORDER) + #error unknown + #elif BYTE_ORDER != BIG_ENDIAN + #error little + #endif + }]} { + define-feature big-endian + msg-result "big" + set rc 1 + } elseif {[cctest -code { + #if! defined(LITTLE_ENDIAN) || !defined(BYTE_ORDER) + #error unknown + #elif BYTE_ORDER != LITTLE_ENDIAN + #error big + #endif + }]} { + define-feature little-endian + msg-result "little" + set rc 1 + } else { + msg-result "unknown" + } + } + return $rc +} |