renamed some macros to please doogie :P
[ntk/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 ])
91
92 AC_DEFUN(rc_GLIBC_VER,
93 [AC_MSG_CHECKING([glibc version])
94 dummy=if$$
95 cat <<_GLIBC_>$dummy.c
96 #include <features.h>
97 #include <stdio.h>
98 #include <stdlib.h>
99 int main(int argc, char **argv) { printf("libc6.%d",__GLIBC_MINOR__); exit(0); }
100 _GLIBC_
101 ${CC-cc} $dummy.c -o $dummy > /dev/null 2>&1
102 if test "$?" = 0; then
103 GLIBC_VER=`./$dummy`
104 AC_MSG_RESULT([$GLIBC_VER])
105 GLIBC_VER="-$GLIBC_VER"
106 else
107 AC_MSG_WARN([cannot determine GNU C library minor version number])
108 fi
109 rm -f $dummy $dummy.c
110 AC_SUBST(GLIBC_VER)
111 ])
112
113 AC_DEFUN(rc_LIBSTDCPP_VER,
114 [AC_MSG_CHECKING([libstdc++ version])
115 dummy=if$$
116 cat <<_LIBSTDCPP_>$dummy.cc
117 #include <features.h>
118 #include <stdio.h>
119 #include <stdlib.h>
120 int main(int argc, char **argv) { exit(0); }
121 _LIBSTDCPP_
122 ${CXX-c++} $dummy.cc -o $dummy > /dev/null 2>&1
123
124 if test "$?" = 0; then
125 soname=`objdump -p ./$dummy |grep NEEDED|grep libstd`
126 LIBSTDCPP_VER=`echo $soname | sed -e 's/.*NEEDED.*libstdc++\(-libc.*\(-.*\)\)\?.so.\(.*\)/\3\2/'`
127 fi
128 rm -f $dummy $dummy.cc
129
130 if test -z "$LIBSTDCPP_VER"; then
131 AC_MSG_WARN([cannot determine standard C++ library version number])
132 else
133 AC_MSG_RESULT([$LIBSTDCPP_VER])
134 LIBSTDCPP_VER="-$LIBSTDCPP_VER"
135 fi
136 AC_SUBST(LIBSTDCPP_VER)
137 ])
138
139 AC_DEFUN(ah_GCC3DEP,[
140 AC_MSG_CHECKING(if $CXX -MD works)
141 touch gcc3dep.cc
142 ${CXX-c++} -MD -o gcc3dep_test.o -c gcc3dep.cc
143 rm -f gcc3dep.cc gcc3dep_test.o
144 if test -e gcc3dep.d; then
145 rm -f gcc3dep.d
146 GCC_MD=input
147 GCC3DEP=
148 elif test -e gcc3dep_test.d; then
149 rm -f gcc3dep_test.d
150 GCC_MD=output
151 GCC3DEP=yes
152 else
153 AC_MSG_ERROR(no)
154 fi
155 AC_MSG_RESULT([yes, for $GCC_MD])
156 AC_SUBST(GCC3DEP)
157 ])