aboutsummaryrefslogtreecommitdiff
path: root/autosetup/cc-lib.tcl
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-07-08 04:25:39 +1000
committerSteve Bennett <steveb@workware.net.au>2011-07-08 04:27:33 +1000
commit6bc94edee1076301fd02854c8b3298900896ea49 (patch)
tree83d90b79b82fabd05109149c047765ed14020788 /autosetup/cc-lib.tcl
parentd7d212111b459181a89a4c14554f85265c430340 (diff)
downloadjimtcl-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.tcl41
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
+}