aboutsummaryrefslogtreecommitdiff
path: root/ares
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2008-11-16 02:23:18 +0000
committerYang Tse <yangsita@gmail.com>2008-11-16 02:23:18 +0000
commit3f01d9a043664caa17e764d53c62b2bef58027a0 (patch)
tree6b8c8eb7251dae841a84af07553312bde909d546 /ares
parentdbc6fe3e84a592bf69f140311a79c9116e561ad8 (diff)
trim down configure script size
Diffstat (limited to 'ares')
-rw-r--r--ares/configure.ac18
-rw-r--r--ares/m4/cares-override.m487
2 files changed, 89 insertions, 16 deletions
diff --git a/ares/configure.ac b/ares/configure.ac
index 1b1b20d59..56bcf6e80 100644
--- a/ares/configure.ac
+++ b/ares/configure.ac
@@ -4,6 +4,8 @@ dnl Version not hardcoded here. Fetched later from ares_version.h
AC_INIT([c-ares], [-],
[c-ares mailing list => http://cool.haxx.se/mailman/listinfo/c-ares])
+CARES_OVERRIDE_AUTOCONF
+
AC_CONFIG_SRCDIR([ares_ipv6.h])
AM_CONFIG_HEADER([config.h])
AM_MAINTAINER_MODE
@@ -95,22 +97,6 @@ CARES_PROCESS_DEBUG_BUILD_OPTS
AM_CONDITIONAL(DEBUGBUILD, test x$want_debug = xyes)
AM_CONDITIONAL(CURLDEBUG, test x$want_debug = xyes)
-dnl skip libtool C++ and Fortran compiler checks
-m4_ifdef([AC_PROG_CXX], [m4_undefine([AC_PROG_CXX])])
-m4_defun([AC_PROG_CXX],[])
-m4_ifdef([AC_PROG_CXXCPP], [m4_undefine([AC_PROG_CXXCPP])])
-m4_defun([AC_PROG_CXXCPP],[true])
-m4_ifdef([AC_PROG_F77], [m4_undefine([AC_PROG_F77])])
-m4_defun([AC_PROG_F77],[])
-
-dnl skip libtool C++ and Fortran linker checks
-m4_ifdef([AC_LIBTOOL_CXX], [m4_undefine([AC_LIBTOOL_CXX])])
-m4_defun([AC_LIBTOOL_CXX],[])
-m4_ifdef([AC_LIBTOOL_CXXCPP], [m4_undefine([AC_LIBTOOL_CXXCPP])])
-m4_defun([AC_LIBTOOL_CXXCPP],[true])
-m4_ifdef([AC_LIBTOOL_F77], [m4_undefine([AC_LIBTOOL_F77])])
-m4_defun([AC_LIBTOOL_F77],[])
-
dnl force libtool to build static libraries with PIC on AMD64-Linux & FreeBSD
AC_MSG_CHECKING([if arch-OS host is AMD64-Linux/FreeBSD (to build static libraries with PIC)])
case $host in
diff --git a/ares/m4/cares-override.m4 b/ares/m4/cares-override.m4
new file mode 100644
index 000000000..9377adba9
--- /dev/null
+++ b/ares/m4/cares-override.m4
@@ -0,0 +1,87 @@
+#***************************************************************************
+# $Id$
+#***************************************************************************
+
+# File version for 'aclocal' use. Keep it a single number.
+# serial 1
+
+dnl CARES_OVERRIDE_AUTOCONF
+dnl -------------------------------------------------
+dnl Placing a call to this macro in configure.ac after
+dnl the one to AC_INIT will make macros in this file
+dnl visible to the rest of the compilation overriding
+dnl those from Autoconf.
+
+AC_DEFUN([CARES_OVERRIDE_AUTOCONF], [
+AC_BEFORE([$0],[AC_PROG_LIBTOOL])
+# using cares-override.m4
+])
+
+dnl Override some Libtool tests
+dnl -------------------------------------------------
+dnl This is done to prevent Libtool 1.5.X from doing
+dnl unnecesary C++, Fortran and Java tests and reduce
+dnl resulting configure script by nearly 300 Kb.
+
+m4_define([AC_LIBTOOL_LANG_CXX_CONFIG],[:])
+m4_define([AC_LIBTOOL_LANG_F77_CONFIG],[:])
+m4_define([AC_LIBTOOL_LANG_GCJ_CONFIG],[:])
+
+dnl Override Autoconf's AC_LANG_PROGRAM (C)
+dnl -------------------------------------------------
+dnl This is done to prevent compiler warning
+dnl 'function declaration isn't a prototype'
+dnl in function main. This requires at least
+dnl a c89 compiler and does not suport K&R.
+
+m4_define([AC_LANG_PROGRAM(C)],
+[$1
+int main (void)
+{
+$2
+; return 0;
+}])
+
+dnl Override Autoconf's AC_LANG_CALL (C)
+dnl -------------------------------------------------
+dnl This is a backport of Autoconf's 2.60 with the
+dnl embedded comments that hit the resulting script
+dnl removed. This is done to reduce configure size
+dnl and use fixed macro across Autoconf versions.
+
+m4_define([AC_LANG_CALL(C)],
+[AC_LANG_PROGRAM([$1
+m4_if([$2], [main], ,
+[
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();])], [return $2 ();])])
+
+dnl Override Autoconf's AC_LANG_FUNC_LINK_TRY (C)
+dnl -------------------------------------------------
+dnl This is a backport of Autoconf's 2.60 with the
+dnl embedded comments that hit the resulting script
+dnl removed. This is done to reduce configure size
+dnl and use fixed macro across Autoconf versions.
+
+m4_define([AC_LANG_FUNC_LINK_TRY(C)],
+[AC_LANG_PROGRAM(
+[
+#define $1 innocuous_$1
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+#undef $1
+#ifdef __cplusplus
+extern "C"
+#endif
+char $1 ();
+#if defined __stub_$1 || defined __stub___$1
+choke me
+#endif
+], [return $1 ();])])
+
+