]> git.saurik.com Git - apt.git/blob - buildlib/tools.m4
New ah_GET_GETCONF macro, better abstraction in the rest.
[apt.git] / buildlib / tools.m4
1 AC_DEFUN(ah_HAVE_GETCONF,
2 [AC_ARG_WITH(getconf,
3 [ --with-getconf Enable automagical buildtime configuration],
4 [if test "$withval" = "yes"; then
5 AC_PATH_PROG(GETCONF, getconf)
6 elif test ! "$withval" = "no";then
7 AC_MSG_CHECKING([getconf])
8 AC_MSG_RESULT([$withval])
9 GETCONF=$withval
10 fi],
11 [AC_PATH_PROG(GETCONF, getconf)]
12 )
13 AC_SUBST(GETCONF)
14 ])
15
16 dnl ah_GET_CONF(variable, value ..., [default])
17 AC_DEFUN(ah_GET_GETCONF,
18 [AC_REQUIRE([ah_HAVE_GETCONF])
19 if test ! -z "$GETCONF";then
20 old_args="[$]@"
21 set -- $2
22 while eval test -z \"\$$1\" -a ! -z \"[$]1\";do
23 eval $1=`$GETCONF "[$]1" 2>/dev/null`
24 shift
25 done
26 fi
27 if eval test -z \"\$$1\" -o \"\$$1\" = "-1";then
28 eval $1="$3"
29 fi
30 ])
31 AC_DEFUN(ah_NUM_CPUS,
32 [AC_MSG_CHECKING([number of cpus])
33 AC_ARG_WITH(cpus,
34 [ --with-cpus The number of cpus to be used for building(see --with-procs, default 1)],
35 [
36 if test "$withval" = "yes"; then
37 ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1)
38 elif test ! "$withval" = "no";then
39 NUM_CPUS=$withval
40 elif test "$withval" = "no";then
41 NUM_CPUS=1
42 fi],
43 [ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1)]
44 )
45 ah_NUM_CPUS_msg="$NUM_CPUS"
46 if test "$NUM_CPUS" = "0"; then
47 # broken getconf, time to bitch.
48 ah_NUM_CPUS_msg="found 0 cpus. Has someone done a lobotomy?"
49 NUM_CPUS=1
50 fi
51 if test $NUM_CPUS = 1 ;then
52 default_PROC_MULTIPLY=1
53 else
54 default_PROC_MULTIPLY=2
55 fi
56 AC_MSG_RESULT([$ah_NUM_CPUS_msg])
57 AC_SUBST(NUM_CPUS)
58 ])
59 AC_DEFUN(ah_PROC_MULTIPLY,
60 [AC_REQUIRE([ah_NUM_CPUS])
61 AC_MSG_CHECKING([processor multiplier])
62 AC_ARG_WITH(proc-multiply,
63 [ --with-proc-multiply Multiply this * number of cpus for parallel making(default 2).],
64 [if test "$withval" = "yes"; then
65 PROC_MULTIPLY=$default_PROC_MULTIPLY
66 elif test ! "$withval" = "no";then
67 PROC_MULTIPLY=$withval
68 fi],
69 [PROC_MULTIPLY=$default_PROC_MULTIPLY]
70 )
71 AC_MSG_RESULT([$PROC_MULTIPLY])
72 AC_SUBST(PROC_MULTIPLY)
73 ])
74
75 AC_DEFUN(ah_NUM_PROCS,
76 [AC_REQUIRE([ah_PROC_MULTIPLY])
77 AC_REQUIRE([ah_NUM_CPUS])
78 AC_MSG_CHECKING([number of processes to run during make])
79 AC_ARG_WITH(procs,
80 [ --with-procs The number of processes to run in parallel during make(num_cpus * multiplier).],
81 [if test "$withval" = "yes"; then
82 NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY`
83 elif test ! "$withval" = "no";then
84 NUM_PROCS=$withval
85 fi],
86 [NUM_PROCS=`expr $NUM_CPUS \* $PROC_MULTIPLY`]
87 )
88 AC_MSG_RESULT([$NUM_PROCS])
89 AC_SUBST(NUM_PROCS)
90 ])