From e4db9d109c4b3cc42d1d87c6fbc3c6363ba78960 Mon Sep 17 00:00:00 2001 From: "Craig E. Despeaux" Date: Sun, 2 Feb 2014 15:50:11 -0500 Subject: [PATCH 01/10] Added tests for getdns_hostname() --- src/test/check_getdns.c | 7 +- src/test/check_getdns_hostname.h | 480 +++++++++++++++++++++++++++++++ 2 files changed, 485 insertions(+), 2 deletions(-) create mode 100644 src/test/check_getdns_hostname.h diff --git a/src/test/check_getdns.c b/src/test/check_getdns.c index dcf0e0b4..fa991227 100644 --- a/src/test/check_getdns.c +++ b/src/test/check_getdns.c @@ -10,11 +10,12 @@ #include "check_getdns_common.h" #include "check_getdns_general.h" #include "check_getdns_general_sync.h" +#include "check_getdns_address.h" +#include "check_getdns_address_sync.h" +#include "check_getdns_hostname.h" #include "check_getdns_context_create.h" #include "check_getdns_context_destroy.h" #include "check_getdns_cancel_callback.h" -#include "check_getdns_address.h" -#include "check_getdns_address_sync.h" #include "check_getdns_list_get_length.h" #include "check_getdns_list_get_data_type.h" #include "check_getdns_list_get_dict.h" @@ -49,6 +50,7 @@ main (void) Suite *getdns_general_sync_suite(void); Suite *getdns_address_suite(void); Suite *getdns_address_sync_suite(void); + Suite *getdns_hostname_suite(void); Suite *getdns_context_create_suite(void); Suite *getdns_context_destroy_suite(void); Suite *getdns_cancel_callback_suite(void); @@ -80,6 +82,7 @@ main (void) srunner_add_suite(sr, getdns_general_sync_suite()); srunner_add_suite(sr, getdns_address_suite()); srunner_add_suite(sr, getdns_address_sync_suite()); + srunner_add_suite(sr, getdns_hostname_suite()); srunner_add_suite(sr, getdns_context_create_suite()); srunner_add_suite(sr, getdns_context_destroy_suite()); srunner_add_suite(sr, getdns_cancel_callback_suite()); diff --git a/src/test/check_getdns_hostname.h b/src/test/check_getdns_hostname.h new file mode 100644 index 00000000..fb2539a9 --- /dev/null +++ b/src/test/check_getdns_hostname.h @@ -0,0 +1,480 @@ +#ifndef _check_getdns_hostname_h_ +#define _check_getdns_hostname_h_ + + /* + ************************************************************************** + * * + * T E S T S F O R G E T D N S _ H O S T N A M E * + * * + ************************************************************************** + */ + + START_TEST (getdns_hostname_1) + { + /* + * context = NULL + * expect: GETDNS_RETURN_BAD_CONTEXT + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + getdns_transaction_t transaction_id = 0; + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_BAD_CONTEXT, "Return code from getdns_hostname()"); + + DICT_DESTROY(address); + } + END_TEST + + START_TEST (getdns_hostname_2) + { + /* + * address = NULL + * expect: GETDNS_RETURN_INVALID_PARAMETER + */ + struct getdns_context *context = NULL; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, NULL, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_INVALID_PARAMETER, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_3) + { + /* + * dict in address does not contain getdns_bindata + * expect: GETDNS_RETURN_NO_SUCH_DICT_NAME + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + DICT_CREATE(address) + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_NO_SUCH_DICT_NAME, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_4) + { + /* + * dict in address does not contain two names + * expect: GETDNS_RETURN_NO_SUCH_DICT_NAME + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *) "IPv4" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_NO_SUCH_DICT_NAME, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_5) + { + /* + * dict in address contains names other than adddress_type + * and address_data. + * expect: GETDNS_RETURN_NO_SUCH_DICT_NAME + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_int(address, "not_address_type", 100), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()"); + ASSERT_RC(getdns_dict_set_bindata(address, "not_address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_NO_SUCH_DICT_NAME, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_6) + { + /* + * dict in address contains names address_type + * and address_data but data type is not bindata + * expect: GETDNS_RETURN_WRONG_TYPE_REQUESTED + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_int(address, "address_type", 100), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()"); + ASSERT_RC(getdns_dict_set_int(address, "address_data", 200), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_WRONG_TYPE_REQUESTED, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_7) + { + /* + * dict in address contains invalid address_type + * expect: GETDNS_RETURN_GENERIC_ERROR + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv5" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_GENERIC_ERROR, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_8) + { + /* + * dict in address contains invalid address_data + * expect: GETDNS_RETURN_GENERIC_ERROR + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 5, (void *)"\x08\x08\x08\x08\x08" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, callbackfn), + GETDNS_RETURN_GENERIC_ERROR, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_9) + { + /* + * callbackfn = NULL + * expect: GETDNS_RETURN_INVALID_PARAMETER + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + NULL, &transaction_id, NULL), + GETDNS_RETURN_INVALID_PARAMETER, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_10) + { + /* + * dict in address has resolvable IPv4 address + * expect: response with correct hostname + */ + void verify_getdns_hostname_10(struct extracted_response *ex_response); + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + verify_getdns_hostname_10, &transaction_id, callbackfn), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + void verify_getdns_hostname_10(struct extracted_response *ex_response) + { + assert_noerror(ex_response); + assert_ptr_in_answer(ex_response); + } + + START_TEST (getdns_hostname_11) + { + /* + * dict in address has unresolvable IPv4 address + * expect: response with no hostname + */ + void verify_getdns_hostname_11(struct extracted_response *ex_response); + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x01\x01\x01\x01" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + verify_getdns_hostname_11, &transaction_id, callbackfn), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + void verify_getdns_hostname_11(struct extracted_response *ex_response) + { + assert_nxdomain(ex_response); + assert_nodata(ex_response); + assert_soa_in_authority(ex_response); + } + + START_TEST (getdns_hostname_12) + { + /* + * dict in address has resolvable IPv6 address + * expect: response with correct hostname + */ + void verify_getdns_hostname_12(struct extracted_response *ex_response); + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv6" }; + struct getdns_bindata address_data = { 16, (void *)"\x26\x07\xf8\xb0\x40\x06\x08\x02\x00\x00\x00\x00\x00\x00\x10\x04" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + verify_getdns_hostname_12, &transaction_id, callbackfn), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + void verify_getdns_hostname_12(struct extracted_response *ex_response) + { + assert_noerror(ex_response); + assert_ptr_in_answer(ex_response); + } + + START_TEST (getdns_hostname_13) + { + /* + * dict in address has unresolvable IPv4 address + * expect: response with no hostname + */ + void verify_getdns_hostname_13(struct extracted_response *ex_response); + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv6" }; + struct getdns_bindata address_data = { 16, (void *)"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" }; + struct event_base *event_base = NULL; + getdns_transaction_t transaction_id = 0; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + EVENT_BASE_CREATE; + + ASSERT_RC(getdns_hostname(context, address, NULL, + verify_getdns_hostname_13, &transaction_id, callbackfn), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname()"); + + RUN_EVENT_LOOP; + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + void verify_getdns_hostname_13(struct extracted_response *ex_response) + { + assert_nxdomain(ex_response); + assert_nodata(ex_response); + assert_soa_in_authority(ex_response); + } + + Suite * + getdns_hostname_suite (void) + { + Suite *s = suite_create ("getdns_hostname()"); + + /* Negative test caseis */ + TCase *tc_neg = tcase_create("Negative"); + tcase_add_test(tc_neg, getdns_hostname_1); + tcase_add_test(tc_neg, getdns_hostname_2); + tcase_add_test(tc_neg, getdns_hostname_3); + tcase_add_test(tc_neg, getdns_hostname_4); + tcase_add_test(tc_neg, getdns_hostname_5); + tcase_add_test(tc_neg, getdns_hostname_6); + tcase_add_test(tc_neg, getdns_hostname_7); + tcase_add_test(tc_neg, getdns_hostname_8); + tcase_add_test(tc_neg, getdns_hostname_9); + suite_add_tcase(s, tc_neg); + + /* Positive test cases */ + TCase *tc_pos = tcase_create("Positive"); + tcase_add_test(tc_pos, getdns_hostname_10); + tcase_add_test(tc_pos, getdns_hostname_11); + tcase_add_test(tc_pos, getdns_hostname_12); + tcase_add_test(tc_pos, getdns_hostname_13); + suite_add_tcase(s, tc_pos); + + return s; + } + +#endif From 121d3949d8929d40302d3bdf383e3fcd803c4769 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 3 Feb 2014 14:00:45 +0100 Subject: [PATCH 02/10] Fix libevent2 detection on FreeBSD --- aclocal.m4 | 8601 +-------------------------------- configure | 65 + configure.ac | 4 + src/example/getdns_libevent.h | 1 + 4 files changed, 78 insertions(+), 8593 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index 4e52c652..46c33112 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.12.2 -*- Autoconf -*- +# generated automatically by aclocal 1.14 -*- Autoconf -*- -# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -11,8594 +11,9 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT - -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl -dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -_LT_OUTPUT_LIBTOOL_INIT -]) - -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." - -while test $[#] != 0 -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; - - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; - - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; - esac - shift -done - -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF - -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" - -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT - - -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING -_LT_LIBTOOL_TAGS - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - _LT_PROG_LTMAIN - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_REPLACE_SHELLFNS - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" - -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG - - -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) - - -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) - - -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Go], [_LT_LANG(GO)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Fortran], [_LT_LANG(FC)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG - - -# _LT_LANG(LANGNAME) -# ------------------ -m4_defun([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [LT_SUPPORTED_TAG([$1])dnl - m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG - - -m4_ifndef([AC_PROG_GO], [ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_GO. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -m4_defun([AC_PROG_GO], -[AC_LANG_PUSH(Go)dnl -AC_ARG_VAR([GOC], [Go compiler command])dnl -AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl -_AC_ARG_VAR_LDFLAGS()dnl -AC_CHECK_TOOL(GOC, gccgo) -if test -z "$GOC"; then - if test -n "$ac_tool_prefix"; then - AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) - fi -fi -if test -z "$GOC"; then - AC_CHECK_PROG(GOC, gccgo, gccgo, false) -fi -])#m4_defun -])#m4_ifndef - - -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_defun([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) - -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) - -AC_PROVIDE_IFELSE([AC_PROG_FC], - [LT_LANG(FC)], - [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) - -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) - -AC_PROVIDE_IFELSE([AC_PROG_GO], - [LT_LANG(GO)], - [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) - -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG - -# Obsolete macros: -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -dnl AC_DEFUN([AC_LIBTOOL_F77], []) -dnl AC_DEFUN([AC_LIBTOOL_FC], []) -dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -dnl AC_DEFUN([AC_LIBTOOL_RC], []) - - -# _LT_TAG_COMPILER -# ---------------- -m4_defun([_LT_TAG_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_TAG_COMPILER - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -m4_defun([_LT_COMPILER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -m4_defun([_LT_LINKER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* -])# _LT_LINKER_BOILERPLATE - -# _LT_REQUIRED_DARWIN_CHECKS -# ------------------------- -m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - AC_CHECK_TOOL([LIPO], [lipo], [:]) - AC_CHECK_TOOL([OTOOL], [otool], [:]) - AC_CHECK_TOOL([OTOOL64], [otool64], [:]) - _LT_DECL([], [DSYMUTIL], [1], - [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) - _LT_DECL([], [NMEDIT], [1], - [Tool to change global to local symbols on Mac OS X]) - _LT_DECL([], [LIPO], [1], - [Tool to manipulate fat objects and archives on Mac OS X]) - _LT_DECL([], [OTOOL], [1], - [ldd/readelf like tool for Mach-O binaries on Mac OS X]) - _LT_DECL([], [OTOOL64], [1], - [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) - - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) - - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) - - AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], - [lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD - echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD - $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac -]) - - -# _LT_DARWIN_LINKER_FEATURES([TAG]) -# --------------------------------- -# Checks for linker and compiler features on darwin -m4_defun([_LT_DARWIN_LINKER_FEATURES], -[ - m4_require([_LT_REQUIRED_DARWIN_CHECKS]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_automatic, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], - [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -]) - -# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -# ---------------------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -# Store the results from the different compilers for each TAGNAME. -# Allow to override them for all tags through lt_cv_aix_libpath. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ - lt_aix_libpath_sed='[ - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }]' - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi],[]) - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" - fi - ]) - aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -fi -])# _LT_SYS_MODULE_PATH_AIX - - -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[m4_divert_text([M4SH-INIT], [$1 -])])# _LT_SHELL_INIT - - - -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Find how we can fake an echo command that does not interpret backslash. -# In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -AC_MSG_CHECKING([how to print strings]) -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$[]1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -case "$ECHO" in - printf*) AC_MSG_RESULT([printf]) ;; - print*) AC_MSG_RESULT([print -r]) ;; - *) AC_MSG_RESULT([cat]) ;; -esac - -m4_ifdef([_AS_DETECT_SUGGESTED], -[_AS_DETECT_SUGGESTED([ - test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test "X`printf %s $ECHO`" = "X$ECHO" \ - || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) - -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) -])# _LT_PROG_ECHO_BACKSLASH - - -# _LT_WITH_SYSROOT -# ---------------- -AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) -AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], -[], [with_sysroot=no]) - -dnl lt_sysroot will always be passed unquoted. We quote it here -dnl in case the user passed a directory name. -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - AC_MSG_RESULT([${with_sysroot}]) - AC_MSG_ERROR([The sysroot must be an absolute path.]) - ;; -esac - - AC_MSG_RESULT([${lt_sysroot:-no}]) -_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) - -# _LT_ENABLE_LOCK -# --------------- -m4_defun([_LT_ENABLE_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AS_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" -])# _LT_ENABLE_LOCK - - -# _LT_PROG_AR -# ----------- -m4_defun([_LT_PROG_AR], -[AC_CHECK_TOOLS(AR, [ar], false) -: ${AR=ar} -: ${AR_FLAGS=cru} -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) - -AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], - [lt_cv_ar_at_file=no - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi -_LT_DECL([], [archiver_list_spec], [1], - [How to feed a file listing to the archiver]) -])# _LT_PROG_AR - - -# _LT_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[_LT_PROG_AR - -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) - -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -_LT_DECL([], [lock_old_archive_extraction], [0], - [Whether to use a lock for old archive extraction]) -])# _LT_CMD_OLD_ARCHIVE - - -# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([_LT_COMPILER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $RM conftest* -]) - -if test x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) - - -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) - - -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN - -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) - - -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN - - -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_TRY_DLOPEN_SELF - - -# LT_SYS_DLOPEN_SELF -# ------------------ -AC_DEFUN([LT_SYS_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF - -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) - - -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# _LT_COMPILER_C_O - - -# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -# ---------------------------------- -# Check to see if we can do hard links to lock some files if needed -m4_defun([_LT_COMPILER_FILE_LOCKS], -[m4_require([_LT_ENABLE_LOCK])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_COMPILER_C_O([$1]) - -hard_links="nottested" -if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS - - -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR - - -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH - - -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB - - -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[[4-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[23]].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[[3-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], - [lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [lt_cv_shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - ]) - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [install_override_mode], [1], - [Permission mode override for installation of shared libraries]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [[As "finish_cmds", except a single script fragment to be evaled but - not shown]]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER - - -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX - -# Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - - -# _LT_PATH_MAGIC -# -------------- -# find a file program which can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# _LT_PATH_MAGIC - - -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PROG_ECHO_BACKSLASH])dnl - -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method = "file_magic"]) -_LT_DECL([], [file_magic_glob], [1], - [How to find potential files when deplibs_check_method = "file_magic"]) -_LT_DECL([], [want_nocaseglob], [1], - [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) -])# _LT_CHECK_MAGIC_METHOD - - -# LT_PATH_NM -# ---------- -# find the pathname to a BSD- or MS-compatible name lister -AC_DEFUN([LT_PATH_NM], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - AC_SUBST([DUMPBIN]) - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - -AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], - [lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) - cat conftest.out >&AS_MESSAGE_LOG_FD - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest*]) -])# LT_PATH_NM - -# Old names: -AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_NM], []) -dnl AC_DEFUN([AC_PROG_NM], []) - -# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -# -------------------------------- -# how to determine the name of the shared library -# associated with a specific link library. -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -m4_require([_LT_DECL_DLLTOOL]) -AC_CACHE_CHECK([how to associate runtime and link libraries], -lt_cv_sharedlib_from_linklib_cmd, -[lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac -]) -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - -_LT_DECL([], [sharedlib_from_linklib_cmd], [1], - [Command to associate shared and link libraries]) -])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - - -# _LT_PATH_MANIFEST_TOOL -# ---------------------- -# locate the manifest tool -m4_defun([_LT_PATH_MANIFEST_TOOL], -[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], - [lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&AS_MESSAGE_LOG_FD - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL - - -# LT_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -AC_SUBST([LIBM]) -])# LT_LIB_M - -# Old name: -AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_CHECK_LIBM], []) - - -# _LT_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------- -m4_defun([_LT_COMPILER_NO_RTTI], -[m4_require([_LT_TAG_COMPILER])dnl - -_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; - *) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; - esac - - _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# _LT_COMPILER_NO_RTTI - - -# _LT_CMD_GLOBAL_SYMBOLS -# ---------------------- -m4_defun([_LT_CMD_GLOBAL_SYMBOLS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([LT_PATH_NM])dnl -AC_REQUIRE([LT_PATH_LD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_TAG_COMPILER])dnl - -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT@&t@_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT@&t@_DLSYM_CONST -#else -# define LT@&t@_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -_LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -_LT_DECL([], [nm_file_list_spec], [1], - [Specify filename containing input files for $NM]) -]) # _LT_CMD_GLOBAL_SYMBOLS - - -# _LT_COMPILER_PIC([TAGNAME]) -# --------------------------- -m4_defun([_LT_COMPILER_PIC], -[m4_require([_LT_TAG_COMPILER])dnl -_LT_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_TAGVAR(lt_prog_compiler_static, $1)= - -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - icpc* ) - # Intel C++, used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) - # IBM XL 8.0, 9.0 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - *Sun\ F* | *Sun*Fortran*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - *Intel*\ [[CF]]*Compiler*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - *Portland\ Group*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - rdos*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - sunos4*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - unicos*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - uts4*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -AC_CACHE_CHECK([for $compiler option to produce PIC], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], - [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) -# -# Check to make sure the static flag actually works. -# -wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# _LT_COMPILER_PIC - - -# _LT_LINKER_SHLIBS([TAGNAME]) -# ---------------------------- -# See if the linker supports building shared libraries. -m4_defun([_LT_LINKER_SHLIBS], -[AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - case $cc_basename in - cl*) - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - ;; - esac - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(archive_cmds, $1)= - _LT_TAGVAR(archive_expsym_cmds, $1)= - _LT_TAGVAR(compiler_needs_object, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(hardcode_automatic, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_separator, $1)= - _LT_TAGVAR(hardcode_minus_L, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(inherit_rpath, $1)=no - _LT_TAGVAR(link_all_deplibs, $1)=unknown - _LT_TAGVAR(module_cmds, $1)= - _LT_TAGVAR(module_expsym_cmds, $1)= - _LT_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_TAGVAR(thread_safe_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; - *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - _LT_TAGVAR(whole_archive_flag_spec, $1)= - tmp_sharedflag='--shared' ;; - xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - esac - ;; - - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - m4_if($1, [], [ - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - _LT_LINKER_OPTION([if $CC understands -b], - _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], - [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], - [lt_cv_irix_exported_symbol], - [save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE( - [AC_LANG_SOURCE( - [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], - [C++], [[int foo (void) { return 0; }]], - [Fortran 77], [[ - subroutine foo - end]], - [Fortran], [[ - subroutine foo - end]])])], - [lt_cv_irix_exported_symbol=yes], - [lt_cv_irix_exported_symbol=no]) - LDFLAGS="$save_LDFLAGS"]) - if test "$lt_cv_irix_exported_symbol" = yes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - solaris*) - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld - -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) - -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), - [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; - esac - fi - ;; -esac - -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [compiler_needs_object], [1], - [Whether the compiler copes with passing no objects directly]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [with_gnu_ld], [1], - [Whether we are building with GNU ld or not]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting ${shlibpath_var} if the - library is relocated]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -_LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -_LT_TAGDECL([], [postlink_cmds], [2], - [Commands necessary for finishing linking programs]) -_LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# _LT_LINKER_SHLIBS - - -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_C_CONFIG], -[m4_require([_LT_DECL_EGREP])dnl -lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_TAG_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - LT_SYS_DLOPEN_SELF - _LT_CMD_STRIPLIB - - # Report which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG - - -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_CXX_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi - -AC_LANG_PUSH(C++) -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(compiler_needs_object, $1)=no -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the CXX compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" - - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC - lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX - lt_save_with_gnu_ld=$with_gnu_ld - lt_save_path_LD=$lt_cv_path_LD - if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx - else - $as_unset lt_cv_prog_gnu_ld - fi - if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX - else - $as_unset lt_cv_path_LD - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} - CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - LT_PATH_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - GXX=no - with_gnu_ld=no - wlarc= - fi - - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_TAGVAR(ld_shlibs, $1)=yes - case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # g++ - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - freebsd2.*) - # C++ shared libraries reported to be fairly broken before - # switch to ELF - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - freebsd-elf*) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - gnu*) - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc* | ecpc* ) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - case `$CC -V` in - *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' - ;; - xl* | mpixl* | bgxl*) - # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - - lynxos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - m88k*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - - *nto* | *qnx*) - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - openbsd2*) - # C++ shared libraries are fairly broken - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=func_echo_all - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - case $host in - osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; - *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; - esac - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - case $host in - osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - ;; - *) - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - case $host in - osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - psos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - fi - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" - _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - vxworks*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC - with_gnu_ld=$lt_save_with_gnu_ld - lt_cv_path_LDCXX=$lt_cv_path_LD - lt_cv_path_LD=$lt_save_path_LD - lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld - lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes - -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG - - -# _LT_FUNC_STRIPNAME_CNF -# ---------------------- -# func_stripname_cnf prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# -# This function is identical to the (non-XSI) version of func_stripname, -# except this one can be used by m4 code that may be executed by configure, -# rather than the libtool script. -m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -AC_REQUIRE([_LT_DECL_SED]) -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -func_stripname_cnf () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname_cnf -])# _LT_FUNC_STRIPNAME_CNF - -# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -# --------------------------------- -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl -# Dependencies to place before and after the object being linked: -_LT_TAGVAR(predep_objects, $1)= -_LT_TAGVAR(postdep_objects, $1)= -_LT_TAGVAR(predeps, $1)= -_LT_TAGVAR(postdeps, $1)= -_LT_TAGVAR(compiler_lib_search_path, $1)= - -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF -package foo -func foo() { -} -_LT_EOF -]) - -_lt_libdeps_save_CFLAGS=$CFLAGS -case "$CC $CFLAGS " in #( -*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; -esac - -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - fi - - # Expand the sysroot to ease extracting the directories later. - if test -z "$prev"; then - case $p in - -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; - -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; - -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; - esac - fi - case $p in - =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; - esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in - -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - prev= - ;; - - *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$RM -f confest.$objext -CFLAGS=$_lt_libdeps_save_CFLAGS - -# PORTME: override above test on systems where it is broken -m4_if([$1], [CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_TAGVAR(predep_objects,$1)= - _LT_TAGVAR(postdep_objects,$1)= - _LT_TAGVAR(postdeps,$1)= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) - -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS - - -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_F77_CONFIG], -[AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the F77 compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_F77" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} - CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - GCC=$G77 - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes - -AC_LANG_POP -])# _LT_LANG_F77_CONFIG - - -# _LT_LANG_FC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for a Fortran compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_FC_CONFIG], -[AC_LANG_PUSH(Fortran) - -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for fc test sources. -ac_ext=${ac_fc_srcext-f} - -# Object file extension for compiled fc test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the FC compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_FC" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} - CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes - -AC_LANG_POP -])# _LT_LANG_FC_CONFIG - - -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -CFLAGS=$GCJFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GCJ_CONFIG - - -# _LT_LANG_GO_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Go compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GO_CONFIG], -[AC_REQUIRE([LT_PROG_GO])dnl -AC_LANG_SAVE - -# Source file extension for Go test sources. -ac_ext=go - -# Object file extension for compiled Go test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="package main; func main() { }" - -# Code to be used in simple link tests -lt_simple_link_test_code='package main; func main() { }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GOC-"gccgo"} -CFLAGS=$GOFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) - -# Go did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GO_CONFIG - - -# _LT_LANG_RC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC])dnl -AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC= -CC=${RC-"windres"} -CFLAGS= -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi - -GCC=$lt_save_GCC -AC_LANG_RESTORE -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_RC_CONFIG - - -# LT_PROG_GCJ -# ----------- -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) - - -# LT_PROG_GO -# ---------- -AC_DEFUN([LT_PROG_GO], -[AC_CHECK_TOOL(GOC, gccgo,) -]) - - -# LT_PROG_RC -# ---------- -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_RC], []) - - -# _LT_DECL_EGREP -# -------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_EGREP], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -_LT_DECL([], [FGREP], [1], [A literal string matcher]) -dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -AC_SUBST([GREP]) -]) - - -# _LT_DECL_OBJDUMP -# -------------- -# If we don't have a new enough Autoconf to choose the best objdump -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_OBJDUMP], -[AC_CHECK_TOOL(OBJDUMP, objdump, false) -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -AC_SUBST([OBJDUMP]) -]) - -# _LT_DECL_DLLTOOL -# ---------------- -# Ensure DLLTOOL variable is set. -m4_defun([_LT_DECL_DLLTOOL], -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -AC_SUBST([DLLTOOL]) -]) - -# _LT_DECL_SED -# ------------ -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -m4_defun([_LT_DECL_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# _LT_DECL_SED - -m4_ifndef([AC_PROG_SED], [ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # - -m4_defun([AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef - -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) - - -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES - - -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) - - -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi - -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) - -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine which file name conversion functions should be used by -# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -# for certain cross-compile configurations and native mingw. -m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_MSG_CHECKING([how to convert $build file names to $host format]) -AC_CACHE_VAL(lt_cv_to_host_file_cmd, -[case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -]) -to_host_file_cmd=$lt_cv_to_host_file_cmd -AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], - [0], [convert $build file names to $host format])dnl - -AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -[#assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac -]) -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS - -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 7 ltoptions.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) - - -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) - - -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl -]) - - -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) - - -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) - - -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) - -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - ]) -])# _LT_SET_OPTIONS - - - -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) - - -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE - - -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) - -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) - - -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac - -test -z "$AS" && AS=as -_LT_DECL([], [AS], [1], [Assembler program])dnl - -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl - -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl -])# win32-dll - -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -_LT_SET_OPTION([LT_INIT], [win32-dll]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `win32-dll' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) - - -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_SHARED], -[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) - - _LT_DECL([build_libtool_libs], [enable_shared], [0], - [Whether or not to build shared libraries]) -])# _LT_ENABLE_SHARED - -LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) -]) - -AC_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], [disable-shared]) -]) - -AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_SHARED], []) -dnl AC_DEFUN([AM_DISABLE_SHARED], []) - - - -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_STATIC], -[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]_LT_ENABLE_STATIC_DEFAULT) - - _LT_DECL([build_old_libs], [enable_static], [0], - [Whether or not to build static libraries]) -])# _LT_ENABLE_STATIC - -LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -]) - -AC_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], [disable-static]) -]) - -AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_STATIC], []) -dnl AC_DEFUN([AM_DISABLE_STATIC], []) - - - -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_FAST_INSTALL], -[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([fast-install], - [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) - -_LT_DECL([fast_install], [enable_fast_install], [0], - [Whether or not to optimize for fast installation])dnl -])# _LT_ENABLE_FAST_INSTALL - -LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `fast-install' option into LT_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-fast-install' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) - - -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' -# LT_INIT options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [pic_mode=default]) - -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) - -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC - -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) - -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) - - -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) - -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) - -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 6 ltsugar.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) - - -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) - - -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) - - -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) - - - -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) - - -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) - - -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) - - -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) - - -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) - - -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) - - -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -]) - -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# @configure_input@ - -# serial 3337 ltversion.m4 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], [2.4.2]) -m4_define([LT_PACKAGE_REVISION], [1.3337]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.2' -macro_revision='1.3337' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) - -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 5 lt~obsolete.m4 - -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) - -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) - +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) diff --git a/configure b/configure index 5aa781ff..47c1a3f1 100755 --- a/configure +++ b/configure @@ -7103,6 +7103,10 @@ _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= @@ -10893,6 +10897,64 @@ fi done if ${ac_cv_search_event_loop+:} false; then : +else + ac_cv_search_event_loop=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_loop" >&5 +$as_echo "$ac_cv_search_event_loop" >&6; } +ac_res=$ac_cv_search_event_loop +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + +ac_cv_search_event_loop='' +LDFLAGS="$LDFLAGS -L/usr/local/lib/event" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_loop" >&5 +$as_echo_n "checking for library containing event_loop... " >&6; } +if ${ac_cv_search_event_loop+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_loop (); +int +main () +{ +return event_loop (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core event; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_loop=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_loop+:} false; then : + break +fi +done +if ${ac_cv_search_event_loop+:} false; then : + else ac_cv_search_event_loop=no fi @@ -10909,6 +10971,9 @@ else found_all_libs=0 fi + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldns_dname_new_frm_str in -lldns" >&5 $as_echo_n "checking for ldns_dname_new_frm_str in -lldns... " >&6; } if ${ac_cv_lib_ldns_ldns_dname_new_frm_str+:} false; then : diff --git a/configure.ac b/configure.ac index 81e2e464..eeb70675 100644 --- a/configure.ac +++ b/configure.ac @@ -129,7 +129,11 @@ fi # Checks for libraries. found_all_libs=1 AC_MSG_NOTICE([Checking for dependencies libevent, ldns]) +AC_SEARCH_LIBS([event_loop], [event_core event], [], [ +ac_cv_search_event_loop='' +LDFLAGS="$LDFLAGS -L/usr/local/lib/event" AC_SEARCH_LIBS([event_loop], [event_core event], [], [found_all_libs=0]) +]) AC_CHECK_LIB([ldns], [ldns_dname_new_frm_str], [], [found_all_libs=0]) AC_CHECK_LIB([idn], [idna_to_ascii_8z], [], [found_all_libs=0]) diff --git a/src/example/getdns_libevent.h b/src/example/getdns_libevent.h index 8b4a19ac..0d3ec94f 100644 --- a/src/example/getdns_libevent.h +++ b/src/example/getdns_libevent.h @@ -1,4 +1,5 @@ #include +#include "config.h" #ifdef HAVE_EVENT2_EVENT_H #include #else From 8992eecf1a0a61e7bb876862329aeaef7cf347b4 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 3 Feb 2014 14:37:09 +0100 Subject: [PATCH 03/10] Detection of which libevent fix --- src/test/check_getdns_libevent.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/check_getdns_libevent.h b/src/test/check_getdns_libevent.h index 3dbcaf75..f9e519c9 100644 --- a/src/test/check_getdns_libevent.h +++ b/src/test/check_getdns_libevent.h @@ -1,3 +1,4 @@ +#include "config.h" #ifdef HAVE_EVENT2_EVENT_H #include #else From 752ad0d420f8867d9c3c5e586ed30c4cdec1495b Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 3 Feb 2014 14:37:32 +0100 Subject: [PATCH 04/10] Adapt for new unbound-event-api --- src/general.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/general.c b/src/general.c index e5198dd9..5a609746 100644 --- a/src/general.c +++ b/src/general.c @@ -56,8 +56,8 @@ #define UNUSED_PARAM(x) ((void)(x)) /* declarations */ -static void ub_resolve_callback(void *arg, int err, ldns_buffer * result, - int sec, char *bogus); +static void ub_resolve_callback(void *arg, int err, void* result, + int packet_len, int sec, char *bogus); static void ub_resolve_timeout(evutil_socket_t fd, short what, void *arg); static void ub_local_resolve_timeout(evutil_socket_t fd, short what, void *arg); @@ -70,7 +70,8 @@ typedef struct netreq_cb_data { getdns_network_req *netreq; int err; - ldns_buffer *result; + void *result; + int packet_len; int sec; char *bogus; } netreq_cb_data; @@ -120,10 +121,10 @@ ub_local_resolve_timeout(evutil_socket_t fd, short what, void *arg) /* just call ub_resolve_callback */ ub_resolve_callback(cb_data->netreq, cb_data->err, cb_data->result, - cb_data->sec, cb_data->bogus); + cb_data->packet_len, cb_data->sec, cb_data->bogus); /* cleanup the state */ - ldns_buffer_free(cb_data->result); + free(cb_data->result); if (cb_data->bogus) { free(cb_data->bogus); } @@ -177,8 +178,8 @@ struct chain_link { static void submit_link(struct validation_chain *chain, char *name); static void callback_on_complete_chain(struct validation_chain *chain); static void -ub_supporting_callback(void *arg, int err, ldns_buffer *result, int sec, - char *bogus) +ub_supporting_callback(void *arg, int err, void *result, int packet_len, + int sec, char *bogus) { struct chain_response *response = (struct chain_response *) arg; ldns_status r; @@ -194,7 +195,7 @@ ub_supporting_callback(void *arg, int err, ldns_buffer *result, int sec, if (result == NULL) goto done; - r = ldns_buffer2pkt_wire(&p, result); + r = ldns_wire2pkt(&p, (uint8_t *)result, (size_t)packet_len); if (r != LDNS_STATUS_OK) { if (err == 0) response->err = r; @@ -402,8 +403,8 @@ submit_network_request(getdns_network_req * netreq) } static void -ub_resolve_callback(void *arg, int err, ldns_buffer * result, int sec, - char *bogus) +ub_resolve_callback(void *arg, int err, void *result, int packet_len, + int sec, char *bogus) { getdns_network_req *netreq = (getdns_network_req *) arg; /* if netreq->state == NET_REQ_NOT_SENT here, that implies @@ -426,13 +427,13 @@ ub_resolve_callback(void *arg, int err, ldns_buffer * result, int sec, cb_data->result = NULL; cb_data->bogus = NULL; /* unused but here in case we need it */ if (result) { - cb_data->result = - ldns_buffer_new(ldns_buffer_limit(result)); + cb_data->result = (uint8_t *) malloc(packet_len); if (!cb_data->result) { cb_data->err = GETDNS_RETURN_GENERIC_ERROR; } else { /* copy */ - ldns_buffer_copy(cb_data->result, result); + (void) memcpy( + cb_data->result, result, packet_len); } } /* schedule the timeout */ @@ -451,7 +452,7 @@ ub_resolve_callback(void *arg, int err, ldns_buffer * result, int sec, } else { /* parse */ ldns_status r = - ldns_buffer2pkt_wire(&(netreq->result), result); + ldns_wire2pkt(&(netreq->result), result, packet_len); if (r != LDNS_STATUS_OK) { handle_network_request_error(netreq, r); } else { From 191929d10553cbd39f9eb747e18b28d95c923d09 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 3 Feb 2014 16:08:15 +0100 Subject: [PATCH 05/10] val. chain dont lookup "." DS and better cb lock --- src/general.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/general.c b/src/general.c index 5a609746..7cd0b53d 100644 --- a/src/general.c +++ b/src/general.c @@ -268,19 +268,22 @@ static void submit_link(struct validation_chain *chain, char *name) link->DS.unbound_id = -1; ldns_rbtree_insert(&(chain->root), (ldns_rbnode_t *)link); - /* fprintf(stderr, "submitting for: %s\n", name); */ + chain->todo++; r = ub_resolve_event(chain->dns_req->unbound, name, LDNS_RR_TYPE_DNSKEY, LDNS_RR_CLASS_IN, &link->DNSKEY, ub_supporting_callback, &link->DNSKEY.unbound_id); if (r != 0) link->DNSKEY.err = r; - r = ub_resolve_event(chain->dns_req->unbound, - name, LDNS_RR_TYPE_DS, LDNS_RR_CLASS_IN, &link->DS, - ub_supporting_callback, &link->DS.unbound_id); - if (r != 0) - link->DS.err = r; + if (name[0] != '.' || name[1] != '\0') { + r = ub_resolve_event(chain->dns_req->unbound, + name, LDNS_RR_TYPE_DS, LDNS_RR_CLASS_IN, &link->DS, + ub_supporting_callback, &link->DS.unbound_id); + if (r != 0) + link->DS.err = r; + } + chain->todo--; } void destroy_chain_link(ldns_rbnode_t * node, void *arg) @@ -320,7 +323,6 @@ static void callback_on_complete_chain(struct validation_chain *chain) ((const char *)link->node.key)[1] != '\0' )) todo++; } - /* fprintf(stderr, "todo until validation: %d\n", (int)todo); */ if (todo == 0) { getdns_dns_req *dns_req = chain->dns_req; response = create_getdns_response(chain->dns_req); @@ -355,7 +357,7 @@ static void get_validation_chain(getdns_dns_req *dns_req) chain->mf.mf.ext.realloc = dns_req->context->mf.mf.ext.realloc; chain->mf.mf.ext.free = dns_req->context->mf.mf.ext.free; chain->dns_req = dns_req; - chain->todo = 1; + chain->todo = 0; while (netreq) { size_t i; @@ -368,7 +370,6 @@ static void get_validation_chain(getdns_dns_req *dns_req) } netreq = netreq->next; } - chain->todo--; callback_on_complete_chain(chain); } From af1d2ad667454fa7794f7539e017bb444ffa9015 Mon Sep 17 00:00:00 2001 From: "Craig E. Despeaux" Date: Mon, 3 Feb 2014 10:53:08 -0500 Subject: [PATCH 06/10] minor change --- src/test/check_getdns_hostname.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/check_getdns_hostname.h b/src/test/check_getdns_hostname.h index fb2539a9..bf496049 100644 --- a/src/test/check_getdns_hostname.h +++ b/src/test/check_getdns_hostname.h @@ -69,7 +69,7 @@ getdns_transaction_t transaction_id = 0; CONTEXT_CREATE(TRUE); - DICT_CREATE(address) + DICT_CREATE(address); EVENT_BASE_CREATE; ASSERT_RC(getdns_hostname(context, address, NULL, From 69e61934b039c600f9d45517afc7dca02613e86d Mon Sep 17 00:00:00 2001 From: "Craig E. Despeaux" Date: Mon, 3 Feb 2014 10:53:26 -0500 Subject: [PATCH 07/10] Added tests for getdns_hostname_sync() --- src/test/check_getdns.c | 3 + src/test/check_getdns_hostname_sync.h | 402 ++++++++++++++++++++++++++ 2 files changed, 405 insertions(+) create mode 100644 src/test/check_getdns_hostname_sync.h diff --git a/src/test/check_getdns.c b/src/test/check_getdns.c index fa991227..fec45abb 100644 --- a/src/test/check_getdns.c +++ b/src/test/check_getdns.c @@ -13,6 +13,7 @@ #include "check_getdns_address.h" #include "check_getdns_address_sync.h" #include "check_getdns_hostname.h" +#include "check_getdns_hostname_sync.h" #include "check_getdns_context_create.h" #include "check_getdns_context_destroy.h" #include "check_getdns_cancel_callback.h" @@ -51,6 +52,7 @@ main (void) Suite *getdns_address_suite(void); Suite *getdns_address_sync_suite(void); Suite *getdns_hostname_suite(void); + Suite *getdns_hostname_sync_suite(void); Suite *getdns_context_create_suite(void); Suite *getdns_context_destroy_suite(void); Suite *getdns_cancel_callback_suite(void); @@ -83,6 +85,7 @@ main (void) srunner_add_suite(sr, getdns_address_suite()); srunner_add_suite(sr, getdns_address_sync_suite()); srunner_add_suite(sr, getdns_hostname_suite()); + srunner_add_suite(sr, getdns_hostname_sync_suite()); srunner_add_suite(sr, getdns_context_create_suite()); srunner_add_suite(sr, getdns_context_destroy_suite()); srunner_add_suite(sr, getdns_cancel_callback_suite()); diff --git a/src/test/check_getdns_hostname_sync.h b/src/test/check_getdns_hostname_sync.h new file mode 100644 index 00000000..c984987f --- /dev/null +++ b/src/test/check_getdns_hostname_sync.h @@ -0,0 +1,402 @@ +#ifndef _check_getdns_hostname_sync_h_ +#define _check_getdns_hostname_sync_h_ + + /* + ************************************************************************** + * * + * T E S T S F O R G E T D N S _ H O S T N A M E _ S Y N C * + * * + ************************************************************************** + */ + + START_TEST (getdns_hostname_sync_1) + { + /* + * context = NULL + * expect: GETDNS_RETURN_BAD_CONTEXT + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct getdns_dict *response = NULL; + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_BAD_CONTEXT, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + } + END_TEST + + START_TEST (getdns_hostname_sync_2) + { + /* + * address = NULL + * expect: GETDNS_RETURN_INVALID_PARAMETER + */ + struct getdns_context *context = NULL; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + ASSERT_RC(getdns_hostname_sync(context, NULL, NULL, &response), + GETDNS_RETURN_INVALID_PARAMETER, "Return code from getdns_hostname_sync()"); + + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_3) + { + /* + * response = NULL + * expect: GETDNS_RETURN_INVALID_PARAMETER + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, NULL), + GETDNS_RETURN_INVALID_PARAMETER, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_4) + { + /* + * dict in address does not contain getdns_bindata + * expect: GETDNS_RETURN_NO_SUCH_DICT_NAME + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + DICT_CREATE(address); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_NO_SUCH_DICT_NAME, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_5) + { + /* + * dict in address does not contain two names + * expect: GETDNS_RETURN_NO_SUCH_DICT_NAME + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *) "IPv4" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_NO_SUCH_DICT_NAME, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_6) + { + /* + * dict in address contains names other than adddress_type + * and address_data. + * expect: GETDNS_RETURN_NO_SUCH_DICT_NAME + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_int(address, "not_address_type", 100), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()"); + ASSERT_RC(getdns_dict_set_bindata(address, "not_address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_NO_SUCH_DICT_NAME, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_7) + { + /* + * dict in address contains names address_type + * and address_data but data type is not bindata + * expect: GETDNS_RETURN_WRONG_TYPE_REQUESTED + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_int(address, "address_type", 100), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()"); + ASSERT_RC(getdns_dict_set_int(address, "address_data", 200), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_WRONG_TYPE_REQUESTED, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_8) + { + /* + * dict in address contains invalid address_type + * expect: GETDNS_RETURN_WRONG_TYPE_REQUESTED + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv5" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_GENERIC_ERROR, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_9) + { + /* + * dict in address contains invalid address_data + * expect: GETDNS_RETURN_GENERIC_ERROR + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 5, (void *)"\x08\x08\x08\x08\x08" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_GENERIC_ERROR, "Return code from getdns_hostname_sync()"); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_10) + { + /* + * dict in address has resolvable IPv4 address + * expect: response with correct hostnam + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x08\x08\x08\x08" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname_sync()"); + + EXTRACT_RESPONSE; + + assert_noerror(&ex_response); + assert_ptr_in_answer(&ex_response); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_11) + { + /* + * dict in address has unresolvable IPv4 address + * expect: response with no hostname + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv4" }; + struct getdns_bindata address_data = { 4, (void *)"\x01\x01\x01\x01" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname_sync()"); + + EXTRACT_RESPONSE; + + assert_nxdomain(&ex_response); + assert_nodata(&ex_response); + assert_soa_in_authority(&ex_response); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_12) + { + /* + * dict in address has resolvable IPv6 address + * expect: response with correct hostnam + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv6" }; + struct getdns_bindata address_data = { 16, (void *)"\x26\x07\xf8\xb0\x40\x06\x08\x02\x00\x00\x00\x00\x00\x00\x10\x04" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname_sync()"); + + EXTRACT_RESPONSE; + + assert_noerror(&ex_response); + assert_ptr_in_answer(&ex_response); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + START_TEST (getdns_hostname_sync_13) + { + /* + * dict in address has unresolvable IPv6 address + * expect: response with no hostname + */ + struct getdns_context *context = NULL; + struct getdns_dict *address = NULL; + struct getdns_bindata address_type = { 5, (void *)"IPv6" }; + struct getdns_bindata address_data = { 16, (void *)"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" }; + struct getdns_dict *response = NULL; + + CONTEXT_CREATE(TRUE); + + DICT_CREATE(address); + ASSERT_RC(getdns_dict_set_bindata(address, "address_type", &address_type), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + ASSERT_RC(getdns_dict_set_bindata(address, "address_data", &address_data), + GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_bindata()"); + + ASSERT_RC(getdns_hostname_sync(context, address, NULL, &response), + GETDNS_RETURN_GOOD, "Return code from getdns_hostname_sync()"); + + EXTRACT_RESPONSE; + + assert_nxdomain(&ex_response); + assert_nodata(&ex_response); + assert_soa_in_authority(&ex_response); + + DICT_DESTROY(address); + CONTEXT_DESTROY; + } + END_TEST + + Suite * + getdns_hostname_sync_suite (void) + { + Suite *s = suite_create ("getdns_hostname_sync()"); + + /* Negative test caseis */ + TCase *tc_neg = tcase_create("Negative"); + tcase_add_test(tc_neg, getdns_hostname_sync_1); + tcase_add_test(tc_neg, getdns_hostname_sync_2); + tcase_add_test(tc_neg, getdns_hostname_sync_3); + tcase_add_test(tc_neg, getdns_hostname_sync_4); + tcase_add_test(tc_neg, getdns_hostname_sync_5); + tcase_add_test(tc_neg, getdns_hostname_sync_6); + tcase_add_test(tc_neg, getdns_hostname_sync_7); + tcase_add_test(tc_neg, getdns_hostname_sync_8); + tcase_add_test(tc_neg, getdns_hostname_sync_9); + suite_add_tcase(s, tc_neg); + /* Positive test cases */ + + TCase *tc_pos = tcase_create("Positive"); + tcase_add_test(tc_pos, getdns_hostname_sync_10); + tcase_add_test(tc_pos, getdns_hostname_sync_11); + tcase_add_test(tc_pos, getdns_hostname_sync_12); + tcase_add_test(tc_pos, getdns_hostname_sync_13); + suite_add_tcase(s, tc_pos); + + return s; + } + +#endif From 83bed63dc84dba09461cd94bbe0a57a79fdbef7d Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 3 Feb 2014 16:56:06 +0100 Subject: [PATCH 08/10] [API 0.380] rename supporting_responses Into validation_chain and "addition_dnssec" attribute into "validation_chain" --- spec/getdns-0.379.tgz | Bin 36720 -> 0 bytes spec/getdns-0.380.tgz | Bin 0 -> 36959 bytes spec/getdns_core_only.h | 2 +- spec/index.html | 80 ++++++++++++++++++++++++++++++++++++---- 4 files changed, 74 insertions(+), 8 deletions(-) delete mode 100644 spec/getdns-0.379.tgz create mode 100644 spec/getdns-0.380.tgz diff --git a/spec/getdns-0.379.tgz b/spec/getdns-0.379.tgz deleted file mode 100644 index 351c128ea06e074e53cfd5e293112baafea96c02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36720 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 H0B{2Uq}nU} literal 0 HcmV?d00001 diff --git a/spec/getdns_core_only.h b/spec/getdns_core_only.h index 87e57d08..70c417c7 100644 --- a/spec/getdns_core_only.h +++ b/spec/getdns_core_only.h @@ -1,4 +1,4 @@ -/* Created at 2014-01-22-10-48-59*/ +/* Created at 2014-02-03-16-52-47*/ #ifndef GETDNS_H #define GETDNS_H diff --git a/spec/index.html b/spec/index.html index 32fd5f16..e55de930 100644 --- a/spec/index.html +++ b/spec/index.html @@ -645,7 +645,7 @@ getdns_dict_destroy(this_extensions);
  • dnssec_return_only_secure
  • -
  • dnssec_return_supporting_responses
  • +
  • dnssec_return_validation_chain
  • return_both_v4_and_v6
  • @@ -692,15 +692,81 @@ are determined to be secure, the error code at the top level of the response obj GETDNS_RESPSTATUS_NO_SECURE_ANSWERS.

    Applications that want to do their own validation will want to have the DNSSEC-related records -for a particular response. Use the dnssec_return_supporting_responses extension. The +for a particular response. Use the dnssec_return_validation_chain extension. The extension's value (an int) is set to GETDNS_EXTENSION_TRUE to cause a set of additional DNSSEC-related records needed for validation to be returned in the response object. -This set comes as additional_dnssec (a list) at the top level of the response object. -This list includes any trust anchors needed for the validation. Thus, a reply might look like:

    +This set comes as validation_chain (a list) at the top level of the response object. +This list includes all resource record dicts for all the resource records (DS, DNSKEY and their RRSIGs) that are needed to perform the validation from the root up. Thus, a reply might look like:

     {     # This is the response object
    -  "additional_dnssec": [ <bindata of the first DNSSEC record>, <bindata of the second DNSSEC record> ... ],
    +  "validation_chain":
    +  [ { "name": ,
    +      "type": GETDNS_RRTYPE_DNSKEY,
    +      "rdata": { "flags": 256, . . . },
    +      . . . 
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_DNSKEY,
    +      "rdata": { "flags": 257, . . . },
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_RRSIG,
    +      "rdata": { "signers_name": ,
    +                 "type_covered": GETDNS_RRTYPE_DNSKEY,
    +                 . . .
    +               },
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_DS,
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_RRSIG
    +      "rdata": { "signers_name": ,
    +                 "type_covered": GETDNS_RRTYPE_DS,
    +                 . . .
    +               },
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_DNSKEY
    +      "rdata": { "flags": 256, . . . },
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_DNSKEY
    +      "rdata": { "flags": 257, . . . },
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_RRSIG
    +      "rdata": { "signers_name": ,
    +                 "type_covered": GETDNS_RRTYPE_DNSKEY,
    +                 . . .
    +               },
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_DS,
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_RRSIG
    +      "rdata": { "signers_name": ,
    +                 "type_covered": GETDNS_RRTYPE_DS,
    +                 . . .
    +               },
    +      . . .
    +    },
    +    { "name": ,
    +      "type": GETDNS_RRTYPE_DNSKEY
    +      "rdata": { "flags": 257, ... },
    +      . . .
    +    },
    +    . . .
    +  ]
       "replies_tree":
       [
       . . .
    @@ -708,7 +774,7 @@ This list includes any trust anchors needed for the validation. Thus, a reply mi
     
     

    If a request is using a context in which stub resolution is set, and that request also has any of the dnssec_return_status, dnssec_return_only_secure, or -dnssec_return_supporting_responses extensions specified, the API will not perform +dnssec_return_validation_chain extensions specified, the API will not perform the request and will instead return an error of GETDNS_RETURN_DNSSEC_WITH_STUB_DISALLOWED.

    3.2 Returning Both IPv4 and IPv6 Responses

    @@ -2210,7 +2276,7 @@ The response dicts inherit the custom memory management functions and the value

    9. The Generated Files

    -

    There is a tarball that includes the .h files, +

    There is a tarball that includes the .h files, the examples, and so on. The examples all make, even though there is no API implementation, based on a pseudo-implementation in the tarball; see make-examples-PLATFORM.sh. Note that this currently builds fine on the Macintosh and Ubuntu; help is definitely appreciated on making the build process From 31683080343f17e3adc0625a971238f5bbf09610 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Mon, 3 Feb 2014 21:10:31 +0100 Subject: [PATCH 09/10] Correct unbound revision requirement in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 45caeefb..3726753a 100644 --- a/README.md +++ b/README.md @@ -50,8 +50,8 @@ External dependencies are linked outside the getdns API build tree (we rely on c * [libevent](http://libevent.org) version 2.0.21 stable Sometimes called libevent2 -* [libldns from NL](https://www.nlnetlabs.nl/projects/ldns/) version 1.6.16 (ldns may require openssl headers and libraries) -* [libunbound from NL](http://www.nlnetlabs.nl/projects/unbound/) svn revision 3012, configure must be run with the --with-libevent option (recommended to also use --with-libunbound-only). +* [libldns from NL](https://www.nlnetlabs.nl/projects/ldns/) version 1.6.17 (ldns requires openssl headers and libraries) +* [libunbound from NL](http://www.nlnetlabs.nl/projects/unbound/) svn revision 3069, configure must be run with the --with-libevent and the --enable-event-api option (recommended to also use --with-libunbound-only). * [libexpat](http://expat.sourceforge.net/) for libunbound. * [libidn from the FSF](http://www.gnu.org/software/libidn/) version 1. * Doxygen is used to generate documentation, while this is not technically necessary for the build it makes things a lot more pleasant. From 16e58b28a3fba37af4d09258dde976449573b206 Mon Sep 17 00:00:00 2001 From: Glen Wiley Date: Mon, 3 Feb 2014 15:39:09 -0500 Subject: [PATCH 10/10] cleaned up example, added error code checks --- src/context.c | 8 +- src/example/example-simple-answers.c | 173 +++++++++++++++++++++------ 2 files changed, 140 insertions(+), 41 deletions(-) diff --git a/src/context.c b/src/context.c index 3e991d43..71b4d047 100644 --- a/src/context.c +++ b/src/context.c @@ -3,7 +3,7 @@ * \file context.c * @brief getdns context management functions * - * Originally taken from the getdns API description pseudo implementation. + * Declarations taken from the getdns API description pseudo implementation. * */ @@ -192,6 +192,7 @@ create_from_ldns_list(struct getdns_context *context, ldns_rdf ** ldns_list, return result; } +/*---------------------------------------- set_os_defaults */ static getdns_return_t set_os_defaults(struct getdns_context *context) { @@ -213,8 +214,9 @@ set_os_defaults(struct getdns_context *context) } /** cleanup **/ ldns_resolver_deep_free(lr); + return GETDNS_RETURN_GOOD; -} +} /* set_os_defaults */ static int transaction_id_cmp(const void *id1, const void *id2) @@ -323,7 +325,7 @@ getdns_context_create_with_extended_memory_functions( GETDNS_CONTEXT_UDP_FIRST_AND_FALL_BACK_TO_TCP); return GETDNS_RETURN_GOOD; -} /* getdns_context_create */ +} /* getdns_context_create */ /* * getdns_context_create diff --git a/src/example/example-simple-answers.c b/src/example/example-simple-answers.c index e9d75608..a2a3b375 100644 --- a/src/example/example-simple-answers.c +++ b/src/example/example-simple-answers.c @@ -1,3 +1,39 @@ +/** + * + * \file example-simple-answers.c + * @brief example using getdns to resolve a simple query + * + * Originally taken from the getdns API description pseudo implementation. + * + */ + +/* + * Copyright (c) 2013, Versign, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Verisign, Inc. BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + #include #include #include @@ -14,62 +50,118 @@ void this_callbackfn(struct getdns_context *this_context, void *this_userarg, getdns_transaction_t this_transaction_id) { - UNUSED_PARAM(this_userarg); /* Not looking at the userarg for this example */ - UNUSED_PARAM(this_context); /* Not looking at the context for this example */ - getdns_return_t this_ret; /* Holder for all function returns */ + getdns_return_t this_ret; + uint32_t this_error; + size_t num_addresses; + struct getdns_list *just_the_addresses_ptr; + struct getdns_dict *this_address; + struct getdns_bindata *this_address_data; + size_t rec_count; + char *this_address_str; + + UNUSED_PARAM(this_userarg); + UNUSED_PARAM(this_context); + if (this_callback_type == GETDNS_CALLBACK_COMPLETE) /* This is a callback with data */ { /* Be sure the search returned something */ - uint32_t this_error; - this_ret = getdns_dict_get_int(this_response, "status", &this_error); // Ignore any error - if (this_error != GETDNS_RESPSTATUS_GOOD) // If the search didn't return "good" + + this_ret = getdns_dict_get_int(this_response, "status", &this_error); + if (this_ret != GETDNS_RETURN_GOOD) + { + fprintf(stderr, "The dictionary does not contain \"status\" (this shouldn't have happened). Exiting\n"); + getdns_dict_destroy(this_response); + return; + } + + if (this_error != GETDNS_RESPSTATUS_GOOD) { fprintf(stderr, "The search had no results, and a return value of %d. Exiting.\n", this_error); getdns_dict_destroy(this_response); return; } - struct getdns_list * just_the_addresses_ptr; + this_ret = getdns_dict_get_list(this_response, "just_address_answers", &just_the_addresses_ptr); - if (this_ret != GETDNS_RETURN_GOOD) // This check is really not needed, but prevents a compiler error under "pedantic" + if (this_ret != GETDNS_RETURN_GOOD) { - fprintf(stderr, "Trying to get the answers failed: %d\n", this_ret); + fprintf(stderr, "The dict does not contain \"just_address_answers\" (this shouldn't have happened), and returned %d. Exiting.\n", this_ret); getdns_dict_destroy(this_response); return; } - size_t num_addresses; - this_ret = getdns_list_get_length(just_the_addresses_ptr, &num_addresses); // Ignore any error - /* Go through each record */ - for ( size_t rec_count = 0; rec_count < num_addresses; ++rec_count ) + + this_ret = getdns_list_get_length(just_the_addresses_ptr, &num_addresses); + if (this_ret != GETDNS_RETURN_GOOD) { - struct getdns_dict * this_address; - this_ret = getdns_list_get_dict(just_the_addresses_ptr, rec_count, &this_address); // Ignore any error + fprintf(stderr, "The address list is invalid (this shouldn't have happened). Exiting\n"); + getdns_dict_destroy(this_response); + return; + } + + if (num_addresses == 0) + fprintf(stderr, "The address list has 0 records. Exiting\n"); + + /* Go through each record */ + for (rec_count = 0; rec_count < num_addresses; ++rec_count) + { + this_ret = getdns_list_get_dict(just_the_addresses_ptr, rec_count, &this_address); + if(this_ret != GETDNS_RETURN_GOOD) + { + fprintf(stderr, "Record %d is invalid (this shouldn't have happened). skipping.\n", (int) rec_count); + continue; + } + /* Just print the address */ - struct getdns_bindata * this_address_data; - this_ret = getdns_dict_get_bindata(this_address, "address_data", &this_address_data); // Ignore any error - char *this_address_str = getdns_display_ip_address(this_address_data); - printf("The address is %s\n", this_address_str); - free(this_address_str); + this_ret = getdns_dict_get_bindata(this_address, "address_data", &this_address_data); + if(this_ret != GETDNS_RETURN_GOOD) + { + fprintf(stderr, "Record %d does not contain \"address_data\" (this shouldn't happen), skipping\n", (int) rec_count); + } + else + { + this_address_str = getdns_display_ip_address(this_address_data); + printf("The address is %s\n", this_address_str); + free(this_address_str); + } } } else if (this_callback_type == GETDNS_CALLBACK_CANCEL) fprintf(stderr, "The callback with ID %"PRIu64" was cancelled. Exiting.\n", this_transaction_id); else fprintf(stderr, "The callback got a callback_type of %d. Exiting.\n", this_callback_type); - getdns_dict_destroy(this_response); -} -int main() + getdns_dict_destroy(this_response); +} /* this_callbackfn */ + +/*---------------------------------------- main */ +int +main(int argc, char *argv[]) { - /* Create the DNS context for this call */ + char *this_name = "www.example.com"; + char *this_userarg = "somestring"; + int dispatch_return; + int exitval = EXIT_SUCCESS; struct getdns_context *this_context = NULL; - getdns_return_t context_create_return = getdns_context_create(&this_context, 1); + struct event_base *this_event_base; + getdns_return_t dns_request_return; + getdns_transaction_t this_transaction_id; + getdns_return_t context_create_return; + + if(argc > 1) + this_name = argv[1]; + + printf("resolving %s\n", this_name); + + /* Create the DNS context for this call, use OS configs such as resolv.conf */ + + context_create_return = getdns_context_create(&this_context, 1); if (context_create_return != GETDNS_RETURN_GOOD) { fprintf(stderr, "Trying to create the context failed: %d", context_create_return); return(GETDNS_RETURN_GENERIC_ERROR); } + /* Create an event base and put it in the context using the unknown function name */ - struct event_base *this_event_base; + this_event_base = event_base_new(); if (this_event_base == NULL) { @@ -77,32 +169,37 @@ int main() getdns_context_destroy(this_context); return(GETDNS_RETURN_GENERIC_ERROR); } - (void)getdns_extension_set_libevent_base(this_context, this_event_base); + getdns_extension_set_libevent_base(this_context, this_event_base); + /* Set up the getdns call */ - const char * this_name = "www.example.com"; - char* this_userarg = "somestring"; // Could add things here to help identify this call - getdns_transaction_t this_transaction_id = 0; + + this_transaction_id = 0; /* Make the call */ - getdns_return_t dns_request_return = getdns_address(this_context, this_name, + + dns_request_return = getdns_address(this_context, this_name, NULL, this_userarg, &this_transaction_id, this_callbackfn); if (dns_request_return == GETDNS_RETURN_BAD_DOMAIN_NAME) { fprintf(stderr, "A bad domain name was used: %s. Exiting.\n", this_name); - event_base_free(this_event_base); - getdns_context_destroy(this_context); - return(GETDNS_RETURN_GENERIC_ERROR); + exitval = GETDNS_RETURN_GENERIC_ERROR; } else { /* Call the event loop */ - int dispatch_return = event_base_dispatch(this_event_base); + + dispatch_return = event_base_dispatch(this_event_base); + UNUSED_PARAM(dispatch_return); // TODO: check the return value above } + /* Clean up */ + event_base_free(this_event_base); getdns_context_destroy(this_context); - /* Assuming we get here, leave gracefully */ - exit(EXIT_SUCCESS); -} + + return exitval; +} /* main */ + +/* example-simple-answers.c */