From cd5e6743f744503f357b0877d6b5bad96ae53d1f Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Sat, 30 May 2009 15:56:42 +0000 Subject: Delegate c-ares linking magic on libtool and auto-makefiles when using the uninstalled c-ares libtool archive built from the CVS embedded tree. --- configure.ac | 17 +++++++++-------- lib/Makefile.am | 8 ++++++++ src/Makefile.am | 10 ++++++++-- tests/libtest/Makefile.am | 10 ++++++++-- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/configure.ac b/configure.ac index 68cc8d292..16bb0f064 100644 --- a/configure.ac +++ b/configure.ac @@ -2200,6 +2200,7 @@ fi dnl set variable for use in automakefile(s) AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1) +aresembedded="unknown" AC_MSG_CHECKING([whether to enable c-ares]) AC_ARG_ENABLE(ares, AC_HELP_STRING([--enable-ares=PATH],[Enable c-ares for name lookups]) @@ -2220,8 +2221,6 @@ AC_HELP_STRING([--disable-ares],[Disable c-ares for name lookups]), AC_SUBST(HAVE_ARES) curl_ares_msg="enabled" - LIBS="-lcares $LIBS" - dnl For backwards compatibility default to includes/lib in srcdir/ares dnl If a value is specified it is assumed that the libs are in $val/lib dnl and the includes are in $val/include. This is the default setup for @@ -2232,16 +2231,15 @@ AC_HELP_STRING([--disable-ares],[Disable c-ares for name lookups]), AC_CONFIG_SUBDIRS(ares) aresinc=`cd $srcdir/ares && pwd` CPPFLAGS="$CPPFLAGS -I$aresinc" - - dnl the pwd= below cannot 'cd' into the ares dir to get the full - dnl path to it, since it may not exist yet if we build outside of - dnl the source tree - pwd=`pwd` - LDFLAGS="$LDFLAGS -L$pwd/ares" + dnl This c-ares library is an uninstalled libtool archive, so + dnl we delegate all the linking magic on libtool and automake. + else + LIBS="-lcares $LIBS" fi else CPPFLAGS="$CPPFLAGS -I$enableval/include" LDFLAGS="$LDFLAGS -L$enableval/lib" + LIBS="-lcares $LIBS" fi if test -z "$aresembedded"; then @@ -2275,6 +2273,9 @@ AC_HELP_STRING([--disable-ares],[Disable c-ares for name lookups]), AC_MSG_RESULT(no) ) +dnl set variable for use in automakefile(s) +AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$aresembedded = xyes) + dnl ************************************************************ dnl disable verbose text strings dnl diff --git a/lib/Makefile.am b/lib/Makefile.am index f7bfadde8..ec1905745 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -103,6 +103,12 @@ if MIMPURE MIMPURE = -mimpure-text endif +if USE_EMBEDDED_ARES +EMBEDDEDARES = ../ares/libcares.la +else +EMBEDDEDARES = +endif + libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(LIBCURL_LIBS) # Makefile.inc provides the CSOURCES and HHEADERS defines @@ -110,6 +116,8 @@ include Makefile.inc libcurl_la_SOURCES = $(CSOURCES) $(HHEADERS) +libcurl_la_LIBADD = $(EMBEDDEDARES) + WIN32SOURCES = $(CSOURCES) WIN32HEADERS = $(HHEADERS) config-win32.h diff --git a/src/Makefile.am b/src/Makefile.am index a008dcb1c..b76aad104 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -45,8 +45,14 @@ bin_PROGRAMS = curl include Makefile.inc -curl_LDADD = ../lib/libcurl.la @CURL_LIBS@ -curl_DEPENDENCIES = ../lib/libcurl.la +if USE_EMBEDDED_ARES +EMBEDDEDARES = ../ares/libcares.la +else +EMBEDDEDARES = +endif + +curl_LDADD = ../lib/libcurl.la $(EMBEDDEDARES) @CURL_LIBS@ +curl_DEPENDENCIES = ../lib/libcurl.la $(EMBEDDEDARES) BUILT_SOURCES = hugehelp.c CLEANFILES = hugehelp.c # Use the C locale to ensure that only ASCII characters appear in the diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am index 770abf6ca..228ae6b49 100644 --- a/tests/libtest/Makefile.am +++ b/tests/libtest/Makefile.am @@ -42,9 +42,15 @@ LIBDIR = $(top_builddir)/lib EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl \ test1022.pl Makefile.inc +if USE_EMBEDDED_ARES +EMBEDDEDARES = $(top_builddir)/ares/libcares.la +else +EMBEDDEDARES = +endif + # Dependencies (may need to be overriden) -LDADD = $(LIBDIR)/libcurl.la -DEPENDENCIES = $(LIBDIR)/libcurl.la +LDADD = $(LIBDIR)/libcurl.la $(EMBEDDEDARES) +DEPENDENCIES = $(LIBDIR)/libcurl.la $(EMBEDDEDARES) # Makefile.inc provides the source defines (TESTUTIL, SUPPORTFILES, noinst_PROGRAMS, lib*_SOURCES, and lib*_CFLAGS) include Makefile.inc -- cgit v1.2.3