summaryrefslogtreecommitdiff
path: root/buildlib
diff options
context:
space:
mode:
Diffstat (limited to 'buildlib')
-rw-r--r--buildlib/tools.m439
1 files changed, 27 insertions, 12 deletions
diff --git a/buildlib/tools.m4 b/buildlib/tools.m4
index 507a319bd..d47d79e7e 100644
--- a/buildlib/tools.m4
+++ b/buildlib/tools.m4
@@ -13,24 +13,39 @@ AC_DEFUN(ah_HAVE_GETCONF,
AC_SUBST(GETCONF)
])
-AC_DEFUN(ah_NUM_CPUS,
+dnl ah_GET_CONF(variable, value ..., [default])
+AC_DEFUN(ah_GET_GETCONF,
[AC_REQUIRE([ah_HAVE_GETCONF])
- AC_MSG_CHECKING([number of cpus])
- NUM_CPUS=
+ if test ! -z "$GETCONF";then
+ old_args="[$]@"
+ set -- $2
+ while eval test -z \"\$$1\" -a ! -z \"[$]1\";do
+ eval $1=`$GETCONF "[$]1" 2>/dev/null`
+ shift
+ done
+ fi
+ if eval test -z \"\$$1\" -o \"\$$1\" = "-1";then
+ eval $1="$3"
+ fi
+])
+AC_DEFUN(ah_NUM_CPUS,
+ [AC_MSG_CHECKING([number of cpus])
AC_ARG_WITH(cpus,
[ --with-cpus The number of cpus to be used for building(see --with-procs, default 1)],
- [if test "$withval" = "yes"; then
- if test ! -z "$GETCONF";then
- NUM_CPUS=`$GETCONF _NPROCESSORS_ONLN 2>/dev/null`
- fi
+ [
+ if test "$withval" = "yes"; then
+ ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1)
elif test ! "$withval" = "no";then
NUM_CPUS=$withval
+ elif test "$withval" = "no";then
+ NUM_CPUS=1
fi],
- [if test ! -z "$GETCONF";then
- NUM_CPUS=`$GETCONF _NPROCESSORS_ONLN 2>/dev/null`
- fi]
+ [ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1)]
)
- if test -z "$NUM_CPUS"; then
+ ah_NUM_CPUS_msg="$NUM_CPUS"
+ if test "$NUM_CPUS" = "0"; then
+ # broken getconf, time to bitch.
+ ah_NUM_CPUS_msg="found 0 cpus. Has someone done a lobotomy?"
NUM_CPUS=1
fi
if test $NUM_CPUS = 1 ;then
@@ -38,7 +53,7 @@ AC_DEFUN(ah_NUM_CPUS,
else
default_PROC_MULTIPLY=2
fi
- AC_MSG_RESULT([$NUM_CPUS])
+ AC_MSG_RESULT([$ah_NUM_CPUS_msg])
AC_SUBST(NUM_CPUS)
])
AC_DEFUN(ah_PROC_MULTIPLY,