Store up errno in a couple of spots.
[m6w6/libmemcached] / m4 / byteorder.m4
index 7d2c99ba5d2b0e901b4523995b891ec53517922d..324317989470d443acb663e2344cb6bd9107ea1c 100644 (file)
@@ -1,40 +1,19 @@
 AC_DEFUN([DETECT_BYTEORDER],
 [
-    AC_MSG_CHECKING([for htonll])
-    have_htoll="no"
-    AC_RUN_IFELSE([
-       AC_LANG_PROGRAM([
+    AC_REQUIRE([AC_C_BIGENDIAN])
+    AC_CACHE_CHECK([for htonll], [ac_cv_have_htonll],
+        [AC_TRY_LINK([
 #include <sys/types.h>
 #include <netinet/in.h>
 #include <inttypes.h>
-       ], [
-          return htonll(0);
-       ])            
-    ], [
-      have_htoll="yes"
-      AC_DEFINE([HAVE_HTONLL], [1], [Have ntohll])
-    ])
+                        ], [
+return htonll(0);
+                        ],
+                        [ ac_cv_have_htonll=yes ],
+                        [ ac_cv_have_htonll=no ])
+        ])
+    AS_IF([test "x$ac_cv_have_htonll" = "xyes"],[
+          AC_DEFINE([HAVE_HTONLL], [1], [Have ntohll])])
 
-    AC_MSG_RESULT([$have_htoll])
-    AM_CONDITIONAL([BUILD_BYTEORDER],[test "x$have_htoll" = "xno"])
-    AC_MSG_CHECKING([byteorder])
-    have_htoll="no"
-    AC_RUN_IFELSE([
-       AC_LANG_PROGRAM([
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <inttypes.h>
-       ], [
-if (htonl(5) != 5) {
-   return 1;
-}
-       ])            
-    ], [
-       AC_MSG_RESULT([big endian])
-       AC_DEFINE([BYTEORDER_BIG_ENDIAN], [1], [Enable big endian byteorder])
-    ], [
-       AC_MSG_RESULT([little endian])
-       AC_DEFINE([BYTEORDER_LITTLE_ENDIAN], [1], [Enable little endian byteorder])
-    ])
+    AM_CONDITIONAL([BUILD_BYTEORDER],[test "x$ac_cv_have_htonll" = "xno"])
 ])
-