aboutsummaryrefslogtreecommitdiff
path: root/m4/ax_count_cpus.m4
blob: 39b68d329364caf3b23afc918fe8a4d188c4d2d3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# ===========================================================================
#       http://www.gnu.org/software/autoconf-archive/ax_count_cpus.html
# ===========================================================================
#
# SYNOPSIS
#
#   AX_COUNT_CPUS
#
# DESCRIPTION
#
#   Attempt to count the number of processors present on the machine. If the
#   detection fails, then a value of 1 is assumed.
#
#   The value is placed in the CPU_COUNT variable.
#
# LICENSE
#
#   Copyright (c) 2014 Karlson2k (Evgeny Grin) <k2k@narod.ru>
#   Copyright (c) 2012 Brian Aker <brian@tangent.org>
#   Copyright (c) 2008 Michael Paul Bailey <jinxidoru@byu.net>
#   Copyright (c) 2008 Christophe Tournayre <turn3r@users.sourceforge.net>
#
#   Copying and distribution of this file, with or without modification, are
#   permitted in any medium without royalty provided the copyright notice
#   and this notice are preserved. This file is offered as-is, without any
#   warranty.

#serial 10

  AC_DEFUN([AX_COUNT_CPUS],[
      AC_REQUIRE([AC_CANONICAL_HOST])
      AC_REQUIRE([AC_PROG_EGREP])
      AC_MSG_CHECKING([the number of available CPUs])
      CPU_COUNT="0"

      AS_CASE([$host_os],[
        *darwin*],[
        AS_IF([test -x /usr/sbin/sysctl],[
          sysctl_a=`/usr/sbin/sysctl -a 2>/dev/null| grep -c hw.cpu`
          AS_IF([test sysctl_a],[
            CPU_COUNT=`/usr/sbin/sysctl -n hw.ncpu`
            ])
          ])],[
        *linux*],[
        AS_IF([test "x$CPU_COUNT" = "x0" -a -e /proc/cpuinfo],[
          AS_IF([test "x$CPU_COUNT" = "x0" -a -e /proc/cpuinfo],[
            CPU_COUNT=`$EGREP -c '^processor' /proc/cpuinfo`
            ])
          ])],[
        *mingw*],[
        AS_IF([test -n "$NUMBER_OF_PROCESSORS"],[
          CPU_COUNT="$NUMBER_OF_PROCESSORS"
          ])],[
        *cygwin*],[
        AS_IF([test -n "$NUMBER_OF_PROCESSORS"],[
          CPU_COUNT="$NUMBER_OF_PROCESSORS"
          ])
        ])

      AS_IF([test "x$CPU_COUNT" = "x0"],[
        CPU_COUNT="1"
        AC_MSG_RESULT( [unable to detect (assuming 1)] )
        ],[
        AC_MSG_RESULT( $CPU_COUNT )
        ])
      ])