Update tuklib_cpucores.m4 and tuklib_physmem.m4 from tuklib,
authorLasse Collin <lasse.collin@tukaani.org>
Fri, 20 Nov 2009 10:51:19 +0000 (12:51 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Fri, 20 Nov 2009 10:51:19 +0000 (12:51 +0200)
which now use AC_CACHE_CHECK. Using the cache variable,
configure now warns if there is no method to detect the amount
of RAM and recommends using --enable-assume-ram.

configure.ac
m4/tuklib_cpucores.m4
m4/tuklib_physmem.m4

index 82a7b1f..aa05ba4 100644 (file)
@@ -681,3 +681,19 @@ AC_CONFIG_FILES([
 ])
 
 AC_OUTPUT
+
+# Some warnings
+if test x$tuklib_cv_physmem_method = xunknown; then
+       echo
+       echo "WARNING:"
+       echo "No supported method to detect the amount of RAM."
+       echo "Consider using --enable-assume-ram (if you didn't already)"
+       echo "or make a patch to add support for this operating system."
+fi
+
+# Not threading yet so don't warn.
+#if test x$tuklib_cv_cpucores_method = xunknown; then
+#      echo
+#      echo "WARNING:"
+#      echo "No supported method to detect the number of CPU cores."
+#fi
index 9058d44..bb33c6f 100644 (file)
@@ -25,7 +25,8 @@ AC_REQUIRE([TUKLIB_COMMON])
 # sys/param.h might be needed by sys/sysctl.h.
 AC_CHECK_HEADERS([sys/param.h])
 
-AC_MSG_CHECKING([how to detect the number of available CPU cores])
+AC_CACHE_CHECK([how to detect the number of available CPU cores],
+       [tuklib_cv_cpucores_method], [
 
 # Look for sysctl() solution first, because on OS/2, both sysconf()
 # and sysctl() pass the tests in this file, but only sysctl()
@@ -45,12 +46,7 @@ main(void)
        sysctl(name, 2, &cpus, &cpus_size, NULL, 0);
        return 0;
 }
-]])], [
-       AC_DEFINE([TUKLIB_CPUCORES_SYSCTL], [1],
-               [Define to 1 if the number of available CPU cores can be
-               detected with sysctl().])
-       AC_MSG_RESULT([sysctl])
-], [
+]])], [tuklib_cv_cpucores_method=sysctl], [
 
 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #include <unistd.h>
@@ -62,11 +58,20 @@ main(void)
        return 0;
 }
 ]])], [
-       AC_DEFINE([TUKLIB_CPUCORES_SYSCONF], [1],
-               [Define to 1 if the number of available CPU cores can be
-               detected with sysconf(_SC_NPROCESSORS_ONLN).])
-       AC_MSG_RESULT([sysconf])
+       tuklib_cv_cpucores_method=sysconf
 ], [
-       AC_MSG_RESULT([unknown])
-])])
+       tuklib_cv_cpucores_method=unknown
+])])])
+case $tuklib_cv_cpucores_method in
+       sysctl)
+               AC_DEFINE([TUKLIB_CPUCORES_SYSCTL], [1],
+                       [Define to 1 if the number of available CPU cores
+                       can be detected with sysctl().])
+               ;;
+       sysconf)
+               AC_DEFINE([TUKLIB_CPUCORES_SYSCONF], [1],
+                       [Define to 1 if the number of available CPU cores
+                       can be detected with sysconf(_SC_NPROCESSORS_ONLN).])
+               ;;
+esac
 ])dnl
index 91e3dc5..59a645a 100644 (file)
@@ -35,7 +35,8 @@ AC_REQUIRE([TUKLIB_COMMON])
 # sys/param.h might be needed by sys/sysctl.h.
 AC_CHECK_HEADERS([sys/param.h])
 
-AC_MSG_CHECKING([how to detect the amount of physical memory])
+AC_CACHE_CHECK([how to detect the amount of physical memory],
+       [tuklib_cv_physmem_method], [
 
 # Maybe checking $host_os would be enough but this matches what
 # tuklib_physmem.c does.
@@ -46,9 +47,7 @@ int main(void) { return 0; }
 #else
 #error
 #endif
-]])], [
-       AC_MSG_RESULT([special])
-], [
+]])], [tuklib_cv_physmem_method=special], [
 
 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #include <unistd.h>
@@ -60,12 +59,7 @@ main(void)
        i = sysconf(_SC_PHYS_PAGES);
        return 0;
 }
-]])], [
-       AC_DEFINE([TUKLIB_PHYSMEM_SYSCONF], [1],
-               [Define to 1 if the amount of physical memory can be detected
-               with sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES).])
-       AC_MSG_RESULT([sysconf])
-], [
+]])], [tuklib_cv_physmem_method=sysconf], [
 
 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #include <sys/types.h>
@@ -82,12 +76,7 @@ main(void)
        sysctl(name, 2, &mem, &mem_ptr_size, NULL, 0);
        return 0;
 }
-]])], [
-       AC_DEFINE([TUKLIB_PHYSMEM_SYSCTL], [1],
-               [Define to 1 if the amount of physical memory can be detected
-               with sysctl().])
-       AC_MSG_RESULT([sysctl])
-], [
+]])], [tuklib_cv_physmem_method=sysctl], [
 
 # This version of sysinfo() is Linux-specific. Some non-Linux systems have
 # different sysinfo() so we must check $host_os.
@@ -103,17 +92,32 @@ main(void)
        return 0;
 }
                ]])], [
-                       AC_DEFINE([TUKLIB_PHYSMEM_SYSINFO], [1],
-                               [Define to 1 if the amount of physical memory
-                               can be detected with Linux sysinfo().])
-                       AC_MSG_RESULT([sysinfo])
+                       tuklib_cv_physmem_method=sysinfo
                ], [
-                       AC_MSG_RESULT([unknown])
+                       tuklib_cv_physmem_method=unknown
                ])
                ;;
        *)
-               AC_MSG_RESULT([unknown])
+               tuklib_cv_physmem_method=unknown
+               ;;
+esac
+])])])])
+case $tuklib_cv_physmem_method in
+       sysconf)
+               AC_DEFINE([TUKLIB_PHYSMEM_SYSCONF], [1],
+                       [Define to 1 if the amount of physical memory can
+                       be detected with sysconf(_SC_PAGESIZE) and
+                       sysconf(_SC_PHYS_PAGES).])
+               ;;
+       sysctl)
+               AC_DEFINE([TUKLIB_PHYSMEM_SYSCTL], [1],
+                       [Define to 1 if the amount of physical memory can
+                       be detected with sysctl().])
+               ;;
+       sysinfo)
+               AC_DEFINE([TUKLIB_PHYSMEM_SYSINFO], [1],
+                       [Define to 1 if the amount of physical memory
+                       can be detected with Linux sysinfo().])
                ;;
 esac
-])])])
 ])dnl