diff options
Diffstat (limited to '')
-rw-r--r-- | m4/tuklib_cpucores.m4 (renamed from m4/lc_cpucores.m4) | 83 |
1 files changed, 49 insertions, 34 deletions
diff --git a/m4/lc_cpucores.m4 b/m4/tuklib_cpucores.m4 index 52f7c985..9058d445 100644 --- a/m4/lc_cpucores.m4 +++ b/m4/tuklib_cpucores.m4 @@ -1,36 +1,35 @@ -dnl ########################################################################### -dnl -dnl lc_CPUCORES - Check how to find out the number of online CPU cores -dnl -dnl Check how to find out the number of available CPU cores in the system. -dnl sysconf(_SC_NPROCESSORS_ONLN) works on most systems, except that BSDs -dnl use sysctl(). -dnl -dnl ########################################################################### -dnl -dnl Author: Lasse Collin -dnl -dnl This file has been put into the public domain. -dnl You can do whatever you want with this file. -dnl -dnl ########################################################################### -AC_DEFUN([lc_CPUCORES], [ +# +# SYNOPSIS +# +# TUKLIB_CPUCORES +# +# DESCRIPTION +# +# Check how to find out the number of available CPU cores in the system. +# This information is used by tuklib_cpucores.c. +# +# Currently this supports sysctl() (BSDs, OS/2) and sysconf() (GNU/Linux, +# Solaris, Cygwin). +# +# COPYING +# +# Author: Lasse Collin +# +# This file has been put into the public domain. +# You can do whatever you want with this file. +# + +AC_DEFUN_ONCE([TUKLIB_CPUCORES], [ +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_COMPILE_IFELSE([AC_LANG_SOURCE([[ -#include <unistd.h> -int -main(void) -{ - long i; - i = sysconf(_SC_NPROCESSORS_ONLN); - return 0; -} -]])], [ - AC_DEFINE([HAVE_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]) -], [ + +# Look for sysctl() solution first, because on OS/2, both sysconf() +# and sysctl() pass the tests in this file, but only sysctl() +# actually works. AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ #include <sys/types.h> #ifdef HAVE_SYS_PARAM_H @@ -47,11 +46,27 @@ main(void) return 0; } ]])], [ - AC_DEFINE([HAVE_CPUCORES_SYSCTL], [1], + 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]) ], [ + +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +#include <unistd.h> +int +main(void) +{ + long i; + i = sysconf(_SC_NPROCESSORS_ONLN); + 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]) +], [ AC_MSG_RESULT([unknown]) ])]) -])dnl lc_CPUCORES +])dnl |