X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/6a15675b2a78d2ed14da05befdd94a7f633b82ad..7def24826c298df77e34fd17bb72c570a22b04bd:/buildlib/tools.m4

diff --git a/buildlib/tools.m4 b/buildlib/tools.m4
index 3ee703c00..433d5ca32 100644
--- a/buildlib/tools.m4
+++ b/buildlib/tools.m4
@@ -1,4 +1,4 @@
-AC_DEFUN(ah_HAVE_GETCONF,
+AC_DEFUN([ah_HAVE_GETCONF],
 	[AC_ARG_WITH(getconf,
 		[  --with-getconf          Enable automagical buildtime configuration],
 		[if test "$withval" = "yes"; then
@@ -13,35 +13,50 @@ 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])
+	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 "$GETCONF";then
-				NUM_CPUS=`$GETCONF _NPROCESSORS_ONLN 2>/dev/null`
-			else
-				NUM_CPUS=1
-			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
-		fi],
-		[if test "$GETCONF";then
-			NUM_CPUS=`$GETCONF _NPROCESSORS_ONLN 2>/dev/null`
-		else
+		elif test "$withval" = "no";then
 			NUM_CPUS=1
-		fi]
+		fi],
+		[ah_GET_GETCONF(NUM_CPUS, SC_NPROCESSORS_ONLN _NPROCESSORS_ONLN, 1)]
 	)
+	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
 		default_PROC_MULTIPLY=1
 	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,
+AC_DEFUN([ah_PROC_MULTIPLY],
 	[AC_REQUIRE([ah_NUM_CPUS])
 	AC_MSG_CHECKING([processor multiplier])
 	AC_ARG_WITH(proc-multiply,
@@ -57,7 +72,7 @@ AC_DEFUN(ah_PROC_MULTIPLY,
 	AC_SUBST(PROC_MULTIPLY)
 ])
 
-AC_DEFUN(ah_NUM_PROCS,
+AC_DEFUN([ah_NUM_PROCS],
 	[AC_REQUIRE([ah_PROC_MULTIPLY])
 	AC_REQUIRE([ah_NUM_CPUS])
 	AC_MSG_CHECKING([number of processes to run during make])
@@ -73,3 +88,23 @@ AC_DEFUN(ah_NUM_PROCS,
 	AC_MSG_RESULT([$NUM_PROCS])
 	AC_SUBST(NUM_PROCS)
 ])
+
+AC_DEFUN([ah_GCC3DEP],[
+	AC_MSG_CHECKING(if $CXX -MD works)
+	touch gcc3dep.cc
+	${CXX-c++} -MD -o gcc3dep_test.o -c gcc3dep.cc
+	rm -f gcc3dep.cc gcc3dep_test.o
+	if test -e gcc3dep.d; then
+		rm -f gcc3dep.d
+		GCC_MD=input
+		GCC3DEP=
+	elif test -e gcc3dep_test.d; then
+		rm -f gcc3dep_test.d
+		GCC_MD=output
+		GCC3DEP=yes
+	else
+		AC_MSG_ERROR(no)
+	fi
+	AC_MSG_RESULT([yes, for $GCC_MD])
+	AC_SUBST(GCC3DEP)
+])