18ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# libtool (GNU libtool) 2.4.2 38ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 48ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 68ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. 78ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This is free software; see the source for copying conditions. There is NO 88ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 98ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# GNU Libtool is free software; you can redistribute it and/or modify 118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# it under the terms of the GNU General Public License as published by 128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# the Free Software Foundation; either version 2 of the License, or 138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# (at your option) any later version. 148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# As a special exception to the GNU General Public License, 168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# if you distribute this file as part of a program or library that 178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# is built using GNU Libtool, you may include this file under the 188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# same distribution terms that you use for the rest of that program. 198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# GNU Libtool is distributed in the hope that it will be useful, but 218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# WITHOUT ANY WARRANTY; without even the implied warranty of 228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# General Public License for more details. 248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# You should have received a copy of the GNU General Public License 268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# along with GNU Libtool; see the file COPYING. If not, a copy 278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# can be downloaded from http://www.gnu.org/licenses/gpl.html, 288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# or obtained by writing to the Free Software Foundation, Inc., 298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Usage: $progname [OPTION]... [MODE-ARG]... 328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Provide generalized library-building support services. 348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --config show all configuration variables 368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --debug enable verbose shell tracing 378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# -n, --dry-run display commands without modifying any files 388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --features display basic configuration information and exit 398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --mode=MODE use operation mode MODE 408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --preserve-dup-deps don't remove duplicate dependency libraries 418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --quiet, --silent don't print informational messages 428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --no-quiet, --no-silent 438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# print informational messages (default) 448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --no-warn don't display warning messages 458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --tag=TAG use configuration variables from tag TAG 468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# -v, --verbose print more informational messages than default 478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --no-verbose don't print the extra informational messages 488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --version print version information 498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# -h, --help, --help-all print short, long, or detailed help message 508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# MODE must be one of the following: 528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# clean remove files from the build directory 548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# compile compile a source file into a libtool object 558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# execute automatically set library path, then run a program 568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# finish complete the installation of libtool libraries 578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# install install libraries or executables 588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# link create a library or an executable 598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# uninstall remove libraries from an installed directory 608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# MODE-ARGS vary depending on the MODE. When passed as first option, 628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. 638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Try `$progname --help --mode=MODE' for a more detailed description of MODE. 648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# When reporting a bug, please describe a test case to reproduce it and 668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# include the following information: 678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# host-triplet: $host 698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# shell: $SHELL 708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# compiler: $LTCC 718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# compiler flags: $LTCFLAGS 728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# linker: $LD (gnu? $with_gnu_ld) 738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.1 748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# automake: $automake_version 758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# autoconf: $autoconf_version 768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Report bugs to <bug-libtool@gnu.org>. 788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# GNU libtool home page: <http://www.gnu.org/software/libtool/>. 798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# General help using GNU software: <http://www.gnu.org/gethelp/>. 808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarPROGRAM=libtool 828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarPACKAGE=libtool 838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarVERSION="2.4.2 Debian-2.4.2-1.1" 848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarTIMESTAMP="" 858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarpackage_revision=1.3337 868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Be Bourne compatible 888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar emulate sh 908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar NULLCMD=: 918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which 928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # is contrary to our usage. Disable this feature. 938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar alias -g '${1+"$@"}'='"$@"' 948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar setopt NO_GLOB_SUBST 958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarelse 968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfi 988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarBIN_SH=xpg4; export BIN_SH # for Tru64 998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarDUALCASE=1; export DUALCASE # for MKS sh 1008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# A function that is used when there is no print builtin or printf. 1028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_fallback_echo () 1038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 1048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval 'cat <<_LTECHO_EOF 1058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$1 1068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar_LTECHO_EOF' 1078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 1088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# NLS nuisances: We save the old values to restore during execute mode. 1108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_user_locale= 1118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_safe_locale= 1128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 1138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardo 1148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "if test \"\${$lt_var+set}\" = set; then 1158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_$lt_var=\$$lt_var 1168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $lt_var=C 1178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export $lt_var 1188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" 1198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" 1208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi" 1218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardone 1228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarLC_ALL=C 1238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarLANGUAGE=C 1248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarexport LANGUAGE LC_ALL 1258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$lt_unset CDPATH 1278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 1308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# is ksh but when the shell is invoked as "sh" and the current value of 1318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# the _XPG environment variable is not equal to 1 (one), the special 1328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# positional parameter $0, within a function call, is the name of the 1338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# function. 1348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarprogpath="$0" 1358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar: ${CP="cp -f"} 1398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartest "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} 1408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar: ${MAKE="make"} 1418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar: ${MKDIR="mkdir"} 1428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar: ${MV="mv -f"} 1438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar: ${RM="rm -f"} 1448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar: ${SHELL="${CONFIG_SHELL-/bin/sh}"} 1458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar: ${Xsed="$SED -e 1s/^X//"} 1468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Global variables: 1488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEXIT_SUCCESS=0 1498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEXIT_FAILURE=1 1508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. 1518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. 1528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarexit_status=$EXIT_SUCCESS 1548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Make sure IFS has a sensible default 1568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_nl=' 1578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar' 1588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarIFS=" $lt_nl" 1598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardirname="s,/[^/]*$,," 1618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbasename="s,^.*/,," 1628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_dirname file append nondir_replacement 1648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Compute the dirname of FILE. If nonempty, add APPEND to the result, 1658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# otherwise set result to NONDIR_REPLACEMENT. 1668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_dirname () 1678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 1688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` 1698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$func_dirname_result" = "X${1}"; then 1708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_result="${3}" 1718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 1728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_result="$func_dirname_result${2}" 1738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 1748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_dirname may be replaced by extended shell implementation 1758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_basename file 1788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_basename () 1798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 1808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename_result=`$ECHO "${1}" | $SED "$basename"` 1818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_basename may be replaced by extended shell implementation 1828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_dirname_and_basename file append nondir_replacement 1858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# perform func_basename and func_dirname in a single function 1868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# call: 1878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# dirname: Compute the dirname of FILE. If nonempty, 1888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# add APPEND to the result, otherwise set result 1898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# to NONDIR_REPLACEMENT. 1908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# value returned in "$func_dirname_result" 1918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# basename: Compute filename of FILE. 1928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# value retuned in "$func_basename_result" 1938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Implementation must be kept synchronized with func_dirname 1948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# and func_basename. For efficiency, we do not delegate to 1958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# those functions but instead duplicate the functionality here. 1968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_dirname_and_basename () 1978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 1988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Extract subdirectory from the argument. 1998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` 2008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$func_dirname_result" = "X${1}"; then 2018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_result="${3}" 2028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 2038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_result="$func_dirname_result${2}" 2048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 2058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` 2068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_dirname_and_basename may be replaced by extended shell implementation 2078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 2088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 2098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_stripname prefix suffix name 2108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# strip PREFIX and SUFFIX off of NAME. 2118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# PREFIX and SUFFIX must not contain globbing or regex special 2128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# characters, hashes, percent signs, but SUFFIX may contain a leading 2138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# dot (in which case that matches only a dot). 2148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_strip_suffix prefix name 2158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_stripname () 2168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 2178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case ${2} in 2188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; 2198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; 2208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 2218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_stripname may be replaced by extended shell implementation 2228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 2238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 2248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# These SED scripts presuppose an absolute path with a trailing slash. 2258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarpathcar='s,^/\([^/]*\).*$,\1,' 2268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarpathcdr='s,^/[^/]*,,' 2278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarremovedotparts=':dotsl 2288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s@/\./@/@g 2298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar t dotsl 2308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s,/\.$,/,' 2318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcollapseslashes='s@/\{1,\}@/@g' 2328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfinalslash='s,/*$,/,' 2338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 2348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_normal_abspath PATH 2358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Remove doubled-up and trailing slashes, "." path components, 2368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# and cancel out any ".." path components in PATH after making 2378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# it an absolute path. 2388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# value returned in "$func_normal_abspath_result" 2398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_normal_abspath () 2408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 2418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Start from root dir and reassemble the path. 2428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_result= 2438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_tpath=$1 2448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_altnamespace= 2458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $func_normal_abspath_tpath in 2468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "") 2478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Empty path, that just means $cwd. 2488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '/' "`pwd`" 2498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_result=$func_stripname_result 2508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return 2518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 2528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The next three entries are used to spot a run of precisely 2538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # two leading slashes without using negated character classes; 2548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # we take advantage of case's first-match behaviour. 2558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ///*) 2568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Unusual form of absolute path, do nothing. 2578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 2588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar //*) 2598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Not necessarily an ordinary path; POSIX reserves leading '//' 2608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # and for example Cygwin uses it to access remote file shares 2618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # over CIFS/SMB, so we conserve a leading double slash if found. 2628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_altnamespace=/ 2638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 2648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /*) 2658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Absolute path, do nothing. 2668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 2678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 2688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Relative path, prepend $cwd. 2698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath 2708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 2718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 2728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Cancel out all the simple stuff to save iterations. We also want 2738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the path to end with a slash for ease of parsing, so make sure 2748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # there is one (and only one) here. 2758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ 2768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` 2778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while :; do 2788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Processed it all yet? 2798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$func_normal_abspath_tpath" = / ; then 2808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If we ascended to the root using ".." the result may be empty now. 2818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$func_normal_abspath_result" ; then 2828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_result=/ 2838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 2848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 2858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 2868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ 2878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -e "$pathcar"` 2888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ 2898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -e "$pathcdr"` 2908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Figure out what to do with it 2918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $func_normal_abspath_tcomponent in 2928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "") 2938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Trailing empty path component, ignore it. 2948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 2958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ..) 2968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Parent dir; strip last assembled component from result. 2978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$func_normal_abspath_result" 2988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_result=$func_dirname_result 2998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 3008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 3018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Actual path component, append it. 3028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent 3038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 3048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 3058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 3068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Restore leading double-slash if one was found on entry. 3078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result 3088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 3098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 3108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_relative_path SRCDIR DSTDIR 3118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# generates a relative path from SRCDIR to DSTDIR, with a trailing 3128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# slash if non-empty, suitable for immediately appending a filename 3138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# without needing to append a separator. 3148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# value returned in "$func_relative_path_result" 3158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_relative_path () 3168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 3178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_result= 3188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath "$1" 3198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_tlibdir=$func_normal_abspath_result 3208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_normal_abspath "$2" 3218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_tbindir=$func_normal_abspath_result 3228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 3238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Ascend the tree starting from libdir 3248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while :; do 3258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # check if we have found a prefix of bindir 3268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $func_relative_path_tbindir in 3278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $func_relative_path_tlibdir) 3288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # found an exact match 3298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_tcancelled= 3308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 3318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 3328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $func_relative_path_tlibdir*) 3338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # found a matching prefix 3348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" 3358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_tcancelled=$func_stripname_result 3368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$func_relative_path_result"; then 3378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_result=. 3388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 3398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 3408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 3418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 3428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname $func_relative_path_tlibdir 3438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_tlibdir=${func_dirname_result} 3448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "x$func_relative_path_tlibdir" = x ; then 3458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Have to descend all the way to the root! 3468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_result=../$func_relative_path_result 3478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_tcancelled=$func_relative_path_tbindir 3488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 3498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 3508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_result=../$func_relative_path_result 3518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 3528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 3538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 3548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 3558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now calculate path; take care to avoid doubling-up slashes. 3568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '/' "$func_relative_path_result" 3578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_result=$func_stripname_result 3588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '/' '/' "$func_relative_path_tcancelled" 3598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "x$func_stripname_result" != x ; then 3608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_result=${func_relative_path_result}/${func_stripname_result} 3618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 3628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 3638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Normalisation. If bindir is libdir, return empty string, 3648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # else relative path ending with a slash; either way, target 3658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # file name can be directly appended. 3668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -z "$func_relative_path_result"; then 3678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname './' '' "$func_relative_path_result/" 3688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path_result=$func_stripname_result 3698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 3708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 3718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 3728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The name of this program: 3738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_dirname_and_basename "$progpath" 3748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarprogname=$func_basename_result 3758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 3768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Make sure we have an absolute path for reexecution: 3778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcase $progpath in 3788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]*|[A-Za-z]:\\*) ;; 3798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\\/]*) 3808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar progdir=$func_dirname_result 3818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar progdir=`cd "$progdir" && pwd` 3828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar progpath="$progdir/$progname" 3838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 3848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 3858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_IFS="$IFS" 3868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS=${PATH_SEPARATOR-:} 3878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for progdir in $PATH; do 3888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_IFS" 3898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -x "$progdir/$progname" && break 3908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 3918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_IFS" 3928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$progdir" || progdir=`pwd` 3938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar progpath="$progdir/$progname" 3948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 3958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaresac 3968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 3978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Sed substitution that helps us do robust quoting. It backslashifies 3988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# metacharacters that are still active within double-quoted strings. 3998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarXsed="${SED}"' -e 1s/^X//' 4008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarsed_quote_subst='s/\([`"$\\]\)/\\\1/g' 4018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Same as above, but do not quote variable references. 4038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardouble_quote_subst='s/\(["`\\]\)/\\\1/g' 4048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Sed substitution that turns a string into a regex matching for the 4068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# string literally. 4078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarsed_make_literal_regex='s,[].[^$\\*\/],\\&,g' 4088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Sed substitution that converts a w32 file name or path 4108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# which contains forward slashes, into one that contains 4118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# (escaped) backslashes. A very naive implementation. 4128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' 4138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Re-`\' parameter expansions in output of double_quote_subst that were 4158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# `\'-ed in input to the same. If an odd number of `\' preceded a '$' 4168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in input to double_quote_subst, that '$' was protected from expansion. 4178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Since each input `\' is now two `\'s, look for any number of runs of 4188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# four `\'s followed by two `\'s and then a '$'. `\' that '$'. 4198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbs='\\' 4208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbs2='\\\\' 4218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbs4='\\\\\\\\' 4228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardollar='\$' 4238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarsed_double_backslash="\ 4248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/$bs4/&\\ 4258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/g 4268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^$bs2$dollar/$bs&/ 4278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g 4288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\n//g" 4298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Standard options: 4318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_dry_run=false 4328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_help=false 4338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_quiet=false 4348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_verbose=false 4358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_warning=: 4368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_echo arg... 4388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed message, along with the current mode 4398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# name if it has been set yet. 4408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_echo () 4418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 4428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$progname: ${opt_mode+$opt_mode: }$*" 4438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 4448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_verbose arg... 4468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed message in verbose mode only. 4478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_verbose () 4488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 4498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_verbose && func_echo ${1+"$@"} 4508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A bug in bash halts the script if the last line of a function 4528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # fails when set -e is in force, so we need another command to 4538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # work around that: 4548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 4558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 4568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_echo_all arg... 4588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Invoke $ECHO with all args, space-separated. 4598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_echo_all () 4608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 4618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$*" 4628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 4638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_error arg... 4658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed message to standard error. 4668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_error () 4678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 4688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 4698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 4708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_warning arg... 4728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed warning message to standard error. 4738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_warning () 4748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 4758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 4768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # bash bug again: 4788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 4798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 4808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_fatal_error arg... 4828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed message to standard error, and exit. 4838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_fatal_error () 4848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 4858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error ${1+"$@"} 4868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_FAILURE 4878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 4888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_fatal_help arg... 4908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed message to standard error, followed by 4918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# a help hint, and exit. 4928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_fatal_help () 4938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 4948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error ${1+"$@"} 4958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "$help" 4968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 4978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarhelp="Try \`$progname --help' for more information." ## default 4988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 4998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_grep expression filename 5018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Check whether EXPRESSION matches any line of FILENAME, without output. 5028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_grep () 5038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 5048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $GREP "$1" "$2" >/dev/null 2>&1 5058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 5068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mkdir_p directory-path 5098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Make sure the entire path to DIRECTORY-PATH is available. 5108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mkdir_p () 5118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 5128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_directory_path="$1" 5138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_dir_list= 5148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then 5168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Protect directory names starting with `-' 5188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $my_directory_path in 5198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -*) my_directory_path="./$my_directory_path" ;; 5208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 5218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # While some portion of DIR does not yet exist... 5238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while test ! -d "$my_directory_path"; do 5248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # ...make a list in topmost first order. Use a colon delimited 5258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # list incase some portion of path contains whitespace. 5268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_dir_list="$my_directory_path:$my_dir_list" 5278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the last portion added has no slash in it, the list is done 5298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $my_directory_path in */*) ;; *) break ;; esac 5308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # ...otherwise throw away the child directory and loop 5328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` 5338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 5348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` 5358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_mkdir_p_IFS="$IFS"; IFS=':' 5378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for my_dir in $my_dir_list; do 5388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_mkdir_p_IFS" 5398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # mkdir can fail with a `File exist' error if two processes 5408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # try to create one of the directories concurrently. Don't 5418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # stop in that case! 5428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MKDIR "$my_dir" 2>/dev/null || : 5438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 5448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_mkdir_p_IFS" 5458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Bail out if we (or some other process) failed to create a directory. 5478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -d "$my_directory_path" || \ 5488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "Failed to create \`$1'" 5498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 5508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 5518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mktempdir [string] 5548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Make a temporary directory that won't clash with other running 5558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# libtool processes, and avoids race conditions if possible. If 5568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# given, STRING is the basename for that directory. 5578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mktempdir () 5588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 5598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_template="${TMPDIR-/tmp}/${1-$progname}" 5608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_dry_run" = ":"; then 5628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Return a directory name, but don't create it in dry-run mode 5638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_tmpdir="${my_template}-$$" 5648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 5658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If mktemp works, use that first and foremost 5678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 5688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -d "$my_tmpdir"; then 5708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Failing that, at least try and use $RANDOM to avoid a race 5718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_tmpdir="${my_template}-${RANDOM-0}$$" 5728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_mktempdir_umask=`umask` 5748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar umask 0077 5758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MKDIR "$my_tmpdir" 5768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar umask $save_mktempdir_umask 5778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 5788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If we're not in dry-run mode, bomb out on failure 5808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -d "$my_tmpdir" || \ 5818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot create temporary directory \`$my_tmpdir'" 5828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 5838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$my_tmpdir" 5858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 5868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 5888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_quote_for_eval arg 5898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Aesthetically quote ARG to be evaled later. 5908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT 5918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# is double-quoted, suitable for a subsequent eval, whereas 5928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters 5938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# which are still active within double quotes backslashified. 5948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_quote_for_eval () 5958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 5968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $1 in 5978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\\\`\"\$]*) 5988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; 5998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 6008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval_unquoted_result="$1" ;; 6018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 6028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $func_quote_for_eval_unquoted_result in 6048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Double-quote args containing shell metacharacters to delay 6058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # word splitting, command substitution and and variable 6068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # expansion for a subsequent eval. 6078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Many Bourne shells cannot handle close brackets correctly 6088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # in scan sets, so we specify it separately. 6098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 6108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" 6118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 6128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 6138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" 6148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 6158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 6168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_quote_for_expand arg 6198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Aesthetically quote ARG to be evaled later; same as above, 6208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# but do not quote variable references. 6218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_quote_for_expand () 6228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 6238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $1 in 6248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\\\`\"]*) 6258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_arg=`$ECHO "$1" | $SED \ 6268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -e "$double_quote_subst" -e "$sed_double_backslash"` ;; 6278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 6288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_arg="$1" ;; 6298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 6308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $my_arg in 6328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Double-quote args containing shell metacharacters to delay 6338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # word splitting and command substitution for a subsequent eval. 6348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Many Bourne shells cannot handle close brackets correctly 6358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # in scan sets, so we specify it separately. 6368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 6378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_arg="\"$my_arg\"" 6388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 6398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 6408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_expand_result="$my_arg" 6428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 6438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_show_eval cmd [fail_exp] 6468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 6478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 6488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# is given, then evaluate it. 6498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_show_eval () 6508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 6518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_cmd="$1" 6528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_fail_exp="${2-:}" 6538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ${opt_silent-false} || { 6558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_expand "$my_cmd" 6568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "func_echo $func_quote_for_expand_result" 6578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 6588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ${opt_dry_run-false}; then :; else 6608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$my_cmd" 6618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_status=$? 6628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$my_status" -eq 0; then :; else 6638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "(exit $my_status); $my_fail_exp" 6648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 6658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 6668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 6678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_show_eval_locale cmd [fail_exp] 6708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is 6718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP 6728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# is given, then evaluate it. Use the saved locale for evaluation. 6738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_show_eval_locale () 6748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 6758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_cmd="$1" 6768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_fail_exp="${2-:}" 6778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ${opt_silent-false} || { 6798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_expand "$my_cmd" 6808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "func_echo $func_quote_for_expand_result" 6818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 6828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ${opt_dry_run-false}; then :; else 6848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$lt_user_locale 6858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $my_cmd" 6868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_status=$? 6878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$lt_safe_locale" 6888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$my_status" -eq 0; then :; else 6898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "(exit $my_status); $my_fail_exp" 6908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 6918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 6928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 6938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 6948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_tr_sh 6958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Turn $1 into a string suitable for a shell variable name. 6968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Result is stored in $func_tr_sh_result. All characters 6978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# not in the set a-zA-Z0-9_ are replaced with '_'. Further, 6988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# if $1 begins with a digit, a '_' is prepended as well. 6998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_tr_sh () 7008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 7018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $1 in 7028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [0-9]* | *[!a-zA-Z0-9_]*) 7038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` 7048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 7058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * ) 7068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_tr_sh_result=$1 7078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 7088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 7098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 7108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_version 7138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo version message to standard output and exit. 7148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_version () 7158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 7168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 7178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -n '/(C)/!b go 7198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar :more 7208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /\./!{ 7218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar N 7228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\n# / / 7238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar b more 7248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 7258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar :go 7268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^# '$PROGRAM' (GNU /,/# warranty; / { 7278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^# // 7288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^# *$// 7298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ 7308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p 7318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar }' < "$progpath" 7328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $? 7338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 7348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_usage 7368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo short help message to standard output and exit. 7378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_usage () 7388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 7398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 7408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -n '/^# Usage:/,/^# *.*--help/ { 7428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^# // 7438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^# *$// 7448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\$progname/'$progname'/ 7458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p 7468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar }' < "$progpath" 7478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 7488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "run \`$progname --help | more' for full usage" 7498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $? 7508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 7518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_help [NOEXIT] 7538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo long help message to standard output and exit, 7548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# unless 'noexit' is passed as argument. 7558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_help () 7568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 7578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 7588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -n '/^# Usage:/,/# Report bugs to/ { 7608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar :print 7618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^# // 7628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^# *$// 7638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s*\$progname*'$progname'* 7648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s*\$host*'"$host"'* 7658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s*\$SHELL*'"$SHELL"'* 7668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s*\$LTCC*'"$LTCC"'* 7678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s*\$LTCFLAGS*'"$LTCFLAGS"'* 7688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s*\$LD*'"$LD"'* 7698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\$with_gnu_ld/'"$with_gnu_ld"'/ 7708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ 7718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ 7728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p 7738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar d 7748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 7758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^# .* home page:/b print 7768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^# General help using/b print 7778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ' < "$progpath" 7788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ret=$? 7798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$1"; then 7808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $ret 7818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 7828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 7838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_missing_arg argname 7858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed message to standard error and set global 7868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# exit_cmd. 7878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_missing_arg () 7888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 7898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 7908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "missing argument for $1." 7928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit_cmd=exit 7938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 7948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 7968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_split_short_opt shortopt 7978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Set func_split_short_opt_name and func_split_short_opt_arg shell 7988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# variables after splitting SHORTOPT after the 2nd character. 7998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_split_short_opt () 8008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_sed_short_opt='1s/^\(..\).*$/\1/;q' 8028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_sed_short_rest='1s/^..\(.*\)$/\1/;q' 8038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` 8058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` 8068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_split_short_opt may be replaced by extended shell implementation 8078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_split_long_opt longopt 8108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Set func_split_long_opt_name and func_split_long_opt_arg shell 8118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# variables after splitting LONGOPT at the `=' sign. 8128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_split_long_opt () 8138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' 8158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_sed_long_arg='1s/^--[^=]*=//' 8168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` 8188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` 8198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_split_long_opt may be replaced by extended shell implementation 8208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarexit_cmd=: 8228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarmagic="%%%MAGIC variable%%%" 8288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarmagic_exe="%%%MAGIC EXE variable%%%" 8298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Global variables. 8318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarnonopt= 8328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarpreserve_args= 8338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlo2o="s/\\.lo\$/.${objext}/" 8348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaro2lo="s/\\.${objext}\$/.lo/" 8358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarextracted_archives= 8368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarextracted_serial=0 8378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# If this variable is set in any of the actions, the command in it 8398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# will be execed at the end. This prevents here-documents from being 8408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# left over by shells. 8418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarexec_cmd= 8428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_append var value 8448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Append VALUE to the end of shell variable VAR. 8458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append () 8468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "${1}=\$${1}\${2}" 8488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_append may be replaced by extended shell implementation 8498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_append_quoted var value 8518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Quote VALUE and append to the end of shell variable VAR, separated 8528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# by a space. 8538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append_quoted () 8548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "${2}" 8568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "${1}=\$${1}\\ \$func_quote_for_eval_result" 8578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_append_quoted may be replaced by extended shell implementation 8588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_arith arithmetic-term... 8618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_arith () 8628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith_result=`expr "${@}"` 8648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_arith may be replaced by extended shell implementation 8658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_len string 8688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# STRING may not start with a hyphen. 8698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_len () 8708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` 8728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_len may be replaced by extended shell implementation 8738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_lo2o object 8768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_lo2o () 8778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` 8798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_lo2o may be replaced by extended shell implementation 8808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_xform libobj-or-source 8838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_xform () 8848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` 8868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} # func_xform may be replaced by extended shell implementation 8878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_fatal_configuration arg... 8908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echo program name prefixed message to standard error, followed by 8918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# a configuration failure hint, and exit. 8928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_fatal_configuration () 8938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 8948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error ${1+"$@"} 8958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "See the $PACKAGE documentation for more information." 8968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "Fatal configuration error." 8978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 8988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 8998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_config 9018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Display the configuration for all the tags in this script. 9028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_config () 9038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 9048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar re_begincf='^# ### BEGIN LIBTOOL' 9058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar re_endcf='^# ### END LIBTOOL' 9068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Default configuration. 9088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" 9098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now print the configurations for the tags. 9118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for tagname in $taglist; do 9128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" 9138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 9148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $? 9168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 9178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_features 9198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Display the features supported by this script. 9208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_features () 9218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 9228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "host: $host" 9238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes; then 9248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "enable shared libraries" 9258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 9268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "disable shared libraries" 9278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 9288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = yes; then 9298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "enable static libraries" 9308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 9318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "disable static libraries" 9328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 9338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $? 9358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 9368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_enable_tag tagname 9388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Verify that TAGNAME is valid, and either flag an error and exit, or 9398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# enable the TAGNAME tag. We also add TAGNAME to the global $taglist 9408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# variable here. 9418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_enable_tag () 9428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 9438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Global variable: 9448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tagname="$1" 9458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" 9478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" 9488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sed_extractcf="/$re_begincf/,/$re_endcf/p" 9498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Validate tagname. 9518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $tagname in 9528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[!-_A-Za-z0-9,/]*) 9538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "invalid tag name: $tagname" 9548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 9558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 9568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't test for the "default" C tag, as we know it's 9588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # there but not specially marked. 9598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $tagname in 9608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CC) ;; 9618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 9628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then 9638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar taglist="$taglist $tagname" 9648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Evaluate the configuration. Be careful to quote the path 9668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # and the sed script, to avoid splitting on whitespace, but 9678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # also don't use non-portable quotes within backquotes within 9688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # quotes we have to do it in 2 steps: 9698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` 9708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$extractedcf" 9718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 9728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "ignoring unknown tag $tagname" 9738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 9748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 9758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 9768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 9778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_check_version_match 9798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Ensure that we are using m4 macros, and libtool script from the same 9808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# release of libtool. 9818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_check_version_match () 9828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 9838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$package_revision" != "$macro_revision"; then 9848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$VERSION" != "$macro_version"; then 9858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$macro_version"; then 9868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat >&2 <<_LT_EOF 9878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 9888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: definition of this LT_INIT comes from an older release. 9898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 9908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: and run autoconf again. 9918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar_LT_EOF 9928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 9938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat >&2 <<_LT_EOF 9948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: Version mismatch error. This is $PACKAGE $VERSION, but the 9958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. 9968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION 9978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: and run autoconf again. 9988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar_LT_EOF 9998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 10008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 10018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat >&2 <<_LT_EOF 10028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, 10038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: but the definition of this LT_INIT comes from revision $macro_revision. 10048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: You should recreate aclocal.m4 with macros from revision $package_revision 10058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$progname: of $PACKAGE $VERSION and run autoconf again. 10068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar_LT_EOF 10078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 10088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_MISMATCH 10108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 10118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 10128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Shorthand for --mode=foo, only valid as the first argument 10158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcase $1 in 10168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarclean|clea|cle|cl) 10178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift; set dummy --mode clean ${1+"$@"}; shift 10188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcompile|compil|compi|comp|com|co|c) 10208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift; set dummy --mode compile ${1+"$@"}; shift 10218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarexecute|execut|execu|exec|exe|ex|e) 10238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift; set dummy --mode execute ${1+"$@"}; shift 10248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfinish|finis|fini|fin|fi|f) 10268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift; set dummy --mode finish ${1+"$@"}; shift 10278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarinstall|instal|insta|inst|ins|in|i) 10298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift; set dummy --mode install ${1+"$@"}; shift 10308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlink|lin|li|l) 10328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift; set dummy --mode link ${1+"$@"}; shift 10338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaruninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) 10358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift; set dummy --mode uninstall ${1+"$@"}; shift 10368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaresac 10388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Option defaults: 10428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_debug=: 10438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_dry_run=false 10448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_config=false 10458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_preserve_dup_deps=false 10468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_features=false 10478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_finish=false 10488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_help=false 10498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_help_all=false 10508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_silent=: 10518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_warning=: 10528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_verbose=: 10538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_silent=false 10548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_verbose=false 10558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Parse options once, thoroughly. This comes as soon as possible in the 10588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# script to make things like `--version' happen as quickly as we can. 10598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 10608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # this just eases exit handling 10618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while test $# -gt 0; do 10628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt="$1" 10638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 10648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $opt in 10658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --debug|-x) opt_debug='set -x' 10668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_echo "enabling shell trace mode" 10678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 10688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --dry-run|--dryrun|-n) 10708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_dry_run=: 10718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --config) 10738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_config=: 10748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_config 10758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --dlopen|-dlopen) 10778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar optarg="$1" 10788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_dlopen="${opt_dlopen+$opt_dlopen 10798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar}$optarg" 10808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 10818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --preserve-dup-deps) 10838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_preserve_dup_deps=: 10848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --features) 10868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_features=: 10878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_features 10888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --finish) 10908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_finish=: 10918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarset dummy --mode finish ${1+"$@"}; shift 10928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --help) 10948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_help=: 10958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 10968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --help-all) 10978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_help_all=: 10988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_help=': help-all' 10998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --mode) 11018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test $# = 0 && func_missing_arg $opt && break 11028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar optarg="$1" 11038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_mode="$optarg" 11048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcase $optarg in 11058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Valid mode arguments: 11068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar clean|compile|execute|finish|install|link|relink|uninstall) ;; 11078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Catch anything else as an error 11098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_error "invalid argument for $opt" 11108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit_cmd=exit 11118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 11128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaresac 11148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 11158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --no-silent|--no-quiet) 11178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_silent=false 11188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append preserve_args " $opt" 11198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --no-warning|--no-warn) 11218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_warning=false 11228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append preserve_args " $opt" 11238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --no-verbose) 11258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_verbose=false 11268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append preserve_args " $opt" 11278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --silent|--quiet) 11298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_silent=: 11308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append preserve_args " $opt" 11318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_verbose=false 11328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --verbose|-v) 11348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_verbose=: 11358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append preserve_args " $opt" 11368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaropt_silent=false 11378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --tag) 11398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test $# = 0 && func_missing_arg $opt && break 11408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar optarg="$1" 11418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_tag="$optarg" 11428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_append preserve_args " $opt $optarg" 11438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_enable_tag "$optarg" 11448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 11458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -\?|-h) func_usage ;; 11488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --help) func_help ;; 11498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --version) func_version ;; 11508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Separate optargs to long options: 11528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --*=*) 11538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_split_long_opt "$opt" 11548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} 11558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 11568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Separate non-argument short options: 11598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -\?*|-h*|-n*|-v*) 11608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_split_short_opt "$opt" 11618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} 11628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 11638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --) break ;; 11668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -*) func_fatal_help "unrecognized option \`$opt'" ;; 11678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) set dummy "$opt" ${1+"$@"}; shift; break ;; 11688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 11698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 11708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Validate options: 11728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # save first non-option argument 11748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$#" -gt 0; then 11758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonopt="$opt" 11768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 11778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 11788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # preserve --debug 11808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$opt_debug" = : || func_append preserve_args " --debug" 11818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 11838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* | *pw32* | *cegcc*) 11848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # don't eliminate duplications in $postdeps and $predeps 11858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_duplicate_compiler_generated_deps=: 11868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 11888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps 11898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 11908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 11918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_help || { 11938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Sanity checks first: 11948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_check_version_match 11958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 11968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 11978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_configuration "not configured to build any kind of library" 11988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 11998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Darwin sucks 12018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval std_shrext=\"$shrext_cmds\" 12028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only execute mode is allowed to have -dlopen flags. 12048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$opt_dlopen" && test "$opt_mode" != execute; then 12058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "unrecognized option \`-dlopen'" 12068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$help" 1>&2 12078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_FAILURE 12088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 12098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Change the help message to a mode-specific one. 12118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar generic_help="$help" 12128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar help="Try \`$progname --help --mode=$opt_mode' for more information." 12138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 12148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Bail if the options were screwed 12178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $exit_cmd $EXIT_FAILURE 12188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 12198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar## ----------- ## 12248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar## Main. ## 12258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar## ----------- ## 12268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_lalib_p file 12288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# True iff FILE is a libtool `.la' library or `.lo' object file. 12298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This function is only a basic sanity check; it will hardly flush out 12308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# determined imposters. 12318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_lalib_p () 12328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 12338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -f "$1" && 12348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -e 4q "$1" 2>/dev/null \ 12358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 12368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 12378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_lalib_unsafe_p file 12398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# True iff FILE is a libtool `.la' library or `.lo' object file. 12408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This function implements the same check as func_lalib_p without 12418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# resorting to external programs. To this end, it redirects stdin and 12428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# closes it afterwards, without saving the original file descriptor. 12438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# As a safety measure, use it only where a negative result would be 12448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# fatal anyway. Works if `file' does not exist. 12458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_lalib_unsafe_p () 12468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 12478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lalib_p=no 12488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then 12498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lalib_p_l in 1 2 3 4 12508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 12518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar read lalib_p_line 12528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$lalib_p_line" in 12538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; 12548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 12558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 12568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exec 0<&5 5<&- 12578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 12588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$lalib_p" = yes 12598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 12608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_ltwrapper_script_p file 12628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# True iff FILE is a libtool wrapper script 12638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This function is only a basic sanity check; it will hardly flush out 12648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# determined imposters. 12658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_ltwrapper_script_p () 12668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 12678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lalib_p "$1" 12688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 12698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_ltwrapper_executable_p file 12718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# True iff FILE is a libtool wrapper executable 12728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This function is only a basic sanity check; it will hardly flush out 12738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# determined imposters. 12748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_ltwrapper_executable_p () 12758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 12768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_ltwrapper_exec_suffix= 12778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $1 in 12788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.exe) ;; 12798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_ltwrapper_exec_suffix=.exe ;; 12808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 12818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 12828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 12838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_ltwrapper_scriptname file 12858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Assumes file is an ltwrapper_executable 12868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# uses $file to determine the appropriate filename for a 12878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# temporary ltwrapper_script. 12888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_ltwrapper_scriptname () 12898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 12908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_and_basename "$1" "" "." 12918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.exe' "$func_basename_result" 12928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" 12938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 12948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 12958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_ltwrapper_p file 12968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# True iff FILE is a libtool wrapper script or wrapper executable 12978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This function is only a basic sanity check; it will hardly flush out 12988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# determined imposters. 12998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_ltwrapper_p () 13008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 13018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" 13028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 13038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_execute_cmds commands fail_cmd 13068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Execute tilde-delimited COMMANDS. 13078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# If FAIL_CMD is given, eval that upon failure. 13088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# FAIL_CMD may read-access the current command in variable CMD! 13098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_execute_cmds () 13108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 13118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 13128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs=$IFS; IFS='~' 13138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for cmd in $1; do 13148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS=$save_ifs 13158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmd=\"$cmd\" 13168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$cmd" "${2-:}" 13178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 13188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS=$save_ifs 13198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 13208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_source file 13238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Source FILE, adding directory component if necessary. 13248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Note that it is not necessary on cygwin/mingw to append a dot to 13258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# FILE even if both FILE and FILE.exe exist: automatic-append-.exe 13268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# behavior happens only for exec(3), not for open(2)! Also, sourcing 13278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# `FILE.' does not work on cygwin managed mounts. 13288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_source () 13298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 13308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 13318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $1 in 13328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar */* | *\\*) . "$1" ;; 13338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) . "./$1" ;; 13348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 13358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 13368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_resolve_sysroot PATH 13398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Replace a leading = in PATH with a sysroot. Store the result into 13408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_resolve_sysroot_result 13418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_resolve_sysroot () 13428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 13438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot_result=$1 13448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $func_resolve_sysroot_result in 13458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar =*) 13468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '=' '' "$func_resolve_sysroot_result" 13478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot_result=$lt_sysroot$func_stripname_result 13488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 13498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 13508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 13518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_replace_sysroot PATH 13538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# If PATH begins with the sysroot, replace it with = and 13548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# store the result into func_replace_sysroot_result. 13558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_replace_sysroot () 13568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 13578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$lt_sysroot:$1" in 13588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ?*:"$lt_sysroot"*) 13598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname "$lt_sysroot" '' "$1" 13608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_replace_sysroot_result="=$func_stripname_result" 13618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 13628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 13638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Including no sysroot. 13648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_replace_sysroot_result=$1 13658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 13668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 13678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 13688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 13698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_infer_tag arg 13708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Infer tagged configuration to use if any are available and 13718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# if one wasn't chosen via the "--tag" command line option. 13728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Only attempt this if the compiler in the base compile 13738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# command doesn't match the default compiler. 13748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# arg is usually of the form 'gcc ...' 13758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_infer_tag () 13768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 13778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 13788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$available_tags" && test -z "$tagname"; then 13798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CC_quoted= 13808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg in $CC; do 13818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append_quoted CC_quoted "$arg" 13828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 13838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CC_expanded=`func_echo_all $CC` 13848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CC_quoted_expanded=`func_echo_all $CC_quoted` 13858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $@ in 13868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Blanks in the command may have been stripped by the calling shell, 13878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # but not from the CC environment variable when configure was run. 13888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 13898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; 13908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Blanks at the start of $base_compile will cause this to fail 13918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # if we don't check for them as well. 13928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 13938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for z in $available_tags; do 13948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 13958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Evaluate the configuration. 13968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 13978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CC_quoted= 13988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg in $CC; do 13998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Double-quote args containing other shell metacharacters. 14008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append_quoted CC_quoted "$arg" 14018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 14028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CC_expanded=`func_echo_all $CC` 14038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CC_quoted_expanded=`func_echo_all $CC_quoted` 14048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$@ " in 14058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ 14068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) 14078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The compiler in the base compile command matches 14088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the one in the tagged configuration. 14098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Assume this is the tagged configuration we want. 14108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tagname=$z 14118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 14128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 14138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 14148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 14158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 14168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If $tagname still isn't set, then no tagged configuration 14178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # was found and let the user know that the "--tag" command 14188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # line option must be used. 14198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$tagname"; then 14208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_echo "unable to infer tagged configuration" 14218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "specify a tag with \`--tag'" 14228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# else 14238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_verbose "using $tagname tagged configuration" 14248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 14258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 14268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 14278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 14288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 14298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_write_libtool_object output_name pic_name nonpic_name 14338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Create a libtool object file (analogous to a ".la" file), 14348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# but don't create it if we're doing a dry run. 14358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_write_libtool_object () 14368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 14378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar write_libobj=${1} 14388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes; then 14398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar write_lobj=\'${2}\' 14408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 14418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar write_lobj=none 14428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 14438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = yes; then 14458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar write_oldobj=\'${3}\' 14468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 14478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar write_oldobj=none 14488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 14498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 14518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat >${write_libobj}T <<EOF 14528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $write_libobj - a libtool object file 14538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 14548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 14558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Please DO NOT delete this file! 14568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# It is necessary for linking the library. 14578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Name of the PIC object. 14598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarpic_object=$write_lobj 14608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Name of the non-PIC object 14628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarnon_pic_object=$write_oldobj 14638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 14658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MV "${write_libobj}T" "${write_libobj}" 14668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 14678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 14688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar################################################## 14718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # 14728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar################################################## 14738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 14748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_core_file_wine_to_w32 ARG 14758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Helper function used by file name conversion functions when $build is *nix, 14768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# and $host is mingw, cygwin, or some other w32 environment. Relies on a 14778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# correctly configured wine environment available, with the winepath program 14788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in $build's $PATH. 14798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 14808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ARG is the $build file name to be converted to w32 format. 14818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Result is available in $func_convert_core_file_wine_to_w32_result, and will 14828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# be empty on error (or when ARG is empty) 14838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_core_file_wine_to_w32 () 14848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 14858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 14868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_file_wine_to_w32_result="$1" 14878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 14888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Unfortunately, winepath does not exit with a non-zero error code, so we 14898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # are forced to check the contents of stdout. On the other hand, if the 14908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # command is not found, the shell will set an exit code of 127 and print 14918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # *an error message* to stdout. So we must check for both error code of 14928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # zero AND non-empty stdout, which explains the odd construction: 14938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` 14948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then 14958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | 14968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -e "$lt_sed_naive_backslashify"` 14978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 14988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_file_wine_to_w32_result= 14998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 15028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end: func_convert_core_file_wine_to_w32 15038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_core_path_wine_to_w32 ARG 15068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Helper function used by path conversion functions when $build is *nix, and 15078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly 15088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# configured wine environment available, with the winepath program in $build's 15098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $PATH. Assumes ARG has no leading or trailing path separator characters. 15108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 15118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ARG is path to be converted from $build format to win32. 15128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Result is available in $func_convert_core_path_wine_to_w32_result. 15138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Unconvertible file (directory) names in ARG are skipped; if no directory names 15148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# are convertible, then the result may be empty. 15158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_core_path_wine_to_w32 () 15168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 15178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 15188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # unfortunately, winepath doesn't convert paths, only file names 15198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_path_wine_to_w32_result="" 15208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 15218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldIFS=$IFS 15228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS=: 15238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for func_convert_core_path_wine_to_w32_f in $1; do 15248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS=$oldIFS 15258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" 15268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$func_convert_core_file_wine_to_w32_result" ; then 15278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$func_convert_core_path_wine_to_w32_result"; then 15288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" 15298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 15308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" 15318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 15348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS=$oldIFS 15358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 15378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end: func_convert_core_path_wine_to_w32 15388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_cygpath ARGS... 15418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when 15428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) 15438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or 15448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# (2), returns the Cygwin file name or path in func_cygpath_result (input 15458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# file name or path is assumed to be in w32 format, as previously converted 15468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# from $build's *nix or MSYS format). In case (3), returns the w32 file name 15478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# or path in func_cygpath_result (input file name or path is assumed to be in 15488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Cygwin format). Returns an empty string on error. 15498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 15508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ARGS are passed to cygpath, with the last one being the file name or path to 15518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# be converted. 15528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 15538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH 15548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# environment variable; do not put it in $PATH. 15558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_cygpath () 15568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 15578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 15588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then 15598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` 15608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$?" -ne 0; then 15618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # on failure, ensure result is empty 15628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygpath_result= 15638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 15658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygpath_result= 15668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" 15678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 15698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#end: func_cygpath 15708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_core_msys_to_w32 ARG 15738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert file name or path ARG from MSYS format to w32 format. Return 15748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# result in func_convert_core_msys_to_w32_result. 15758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_core_msys_to_w32 () 15768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 15778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 15788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # awkward: cmd appends spaces to result 15798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | 15808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` 15818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 15828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#end: func_convert_core_msys_to_w32 15838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 15858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_file_check ARG1 ARG2 15868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Verify that ARG1 (a file name in $build format) was converted to $host 15878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# format in ARG2. Otherwise, emit an error message, but continue (resetting 15888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_file_result to ARG1). 15898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_file_check () 15908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 15918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 15928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$2" && test -n "$1" ; then 15938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "Could not determine host file name corresponding to" 15948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error " \`$1'" 15958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "Continuing, but uninstalled executables may not work." 15968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Fallback: 15978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$1" 15988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 15998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 16008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_file_check 16018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH 16048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Verify that FROM_PATH (a path in $build format) was converted to $host 16058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# format in TO_PATH. Otherwise, emit an error message, but continue, resetting 16068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_file_result to a simplistic fallback value (see below). 16078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_check () 16088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 16098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 16108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$4" && test -n "$3"; then 16118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "Could not determine the host path corresponding to" 16128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error " \`$3'" 16138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "Continuing, but uninstalled executables may not work." 16148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Fallback. This is a deliberately simplistic "conversion" and 16158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # should not be "improved". See libtool.info. 16168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "x$1" != "x$2"; then 16178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_replace_pathsep_chars="s|$1|$2|g" 16188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result=`echo "$3" | 16198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -e "$lt_replace_pathsep_chars"` 16208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 16218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$3" 16228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 16238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 16248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 16258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_check 16268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG 16298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT 16308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# and appending REPL if ORIG matches BACKPAT. 16318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_front_back_pathsep () 16328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 16338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 16348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $4 in 16358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $1 ) func_to_host_path_result="$3$func_to_host_path_result" 16368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 16378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 16388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $4 in 16398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $2 ) func_append func_to_host_path_result "$3" 16408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 16418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 16428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 16438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_front_back_pathsep 16448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar################################################## 16478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $build to $host FILE NAME CONVERSION FUNCTIONS # 16488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar################################################## 16498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# invoked via `$to_host_file_cmd ARG' 16508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 16518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# In each case, ARG is the path to be converted from $build to $host format. 16528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Result will be available in $func_to_host_file_result. 16538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_file ARG 16568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Converts the file name ARG from $build format to $host format. Return result 16578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in func_to_host_file_result. 16588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_to_host_file () 16598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 16608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 16618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $to_host_file_cmd "$1" 16628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 16638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_to_host_file 16648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_tool_file ARG LAZY 16678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# converts the file name ARG from $build format to toolchain format. Return 16688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# result in func_to_tool_file_result. If the conversion in use is listed 16698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in (the comma separated) LAZY, no conversion takes place. 16708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_to_tool_file () 16718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 16728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 16738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case ,$2, in 16748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *,"$to_tool_file_cmd",*) 16758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file_result=$1 16768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 16778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 16788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $to_tool_file_cmd "$1" 16798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file_result=$func_to_host_file_result 16808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 16818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 16828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 16838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_to_tool_file 16848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_file_noop ARG 16878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Copy ARG to func_to_host_file_result. 16888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_file_noop () 16898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 16908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$1" 16918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 16928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_file_noop 16938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 16958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_file_msys_to_w32 ARG 16968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic 16978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# conversion to w32 is not available inside the cwrapper. Returns result in 16988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_file_result. 16998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_file_msys_to_w32 () 17008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 17018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 17028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$1" 17038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 17048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_msys_to_w32 "$1" 17058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$func_convert_core_msys_to_w32_result" 17068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 17078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_file_check "$1" "$func_to_host_file_result" 17088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 17098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_file_msys_to_w32 17108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_file_cygwin_to_w32 ARG 17138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert file name ARG from Cygwin to w32 format. Returns result in 17148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_file_result. 17158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_file_cygwin_to_w32 () 17168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 17178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 17188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$1" 17198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 17208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # because $build is cygwin, we call "the" cygpath in $PATH; no need to use 17218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # LT_CYGPATH in this case. 17228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result=`cygpath -m "$1"` 17238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 17248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_file_check "$1" "$func_to_host_file_result" 17258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 17268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_file_cygwin_to_w32 17278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_file_nix_to_w32 ARG 17308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert file name ARG from *nix to w32 format. Requires a wine environment 17318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# and a working winepath. Returns result in func_to_host_file_result. 17328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_file_nix_to_w32 () 17338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 17348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 17358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$1" 17368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 17378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_file_wine_to_w32 "$1" 17388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" 17398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 17408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_file_check "$1" "$func_to_host_file_result" 17418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 17428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_file_nix_to_w32 17438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_file_msys_to_cygwin ARG 17468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. 17478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Returns result in func_to_host_file_result. 17488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_file_msys_to_cygwin () 17498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 17508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 17518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$1" 17528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 17538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_msys_to_w32 "$1" 17548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygpath -u "$func_convert_core_msys_to_w32_result" 17558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$func_cygpath_result" 17568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 17578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_file_check "$1" "$func_to_host_file_result" 17588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 17598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_file_msys_to_cygwin 17608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_file_nix_to_cygwin ARG 17638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed 17648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in a wine environment, working winepath, and LT_CYGPATH set. Returns result 17658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in func_to_host_file_result. 17668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_file_nix_to_cygwin () 17678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 17688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 17698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$1" 17708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 17718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. 17728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_file_wine_to_w32 "$1" 17738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygpath -u "$func_convert_core_file_wine_to_w32_result" 17748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_file_result="$func_cygpath_result" 17758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 17768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_file_check "$1" "$func_to_host_file_result" 17778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 17788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_file_nix_to_cygwin 17798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 17818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar############################################# 17828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $build to $host PATH CONVERSION FUNCTIONS # 17838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar############################################# 17848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# invoked via `$to_host_path_cmd ARG' 17858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 17868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# In each case, ARG is the path to be converted from $build to $host format. 17878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The result will be available in $func_to_host_path_result. 17888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 17898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Path separators are also converted from $build format to $host format. If 17908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ARG begins or ends with a path separator character, it is preserved (but 17918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# converted to $host format) on output. 17928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 17938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# All path conversion functions are named using the following convention: 17948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# file name conversion function : func_convert_file_X_to_Y () 17958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# path conversion function : func_convert_path_X_to_Y () 17968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# where, for any given $build/$host combination the 'X_to_Y' value is the 17978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# same. If conversion functions are added for new $build/$host combinations, 17988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# the two new functions must follow this pattern, or func_init_to_host_path_cmd 17998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# will break. 18008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_init_to_host_path_cmd 18038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Ensures that function "pointer" variable $to_host_path_cmd is set to the 18048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# appropriate value, based on the value of $to_host_file_cmd. 18058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarto_host_path_cmd= 18068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_init_to_host_path_cmd () 18078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 18088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 18098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$to_host_path_cmd"; then 18108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname 'func_convert_file_' '' "$to_host_file_cmd" 18118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar to_host_path_cmd="func_convert_path_${func_stripname_result}" 18128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 18138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 18148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_path ARG 18178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Converts the path ARG from $build format to $host format. Return result 18188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in func_to_host_path_result. 18198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_to_host_path () 18208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 18218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 18228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_init_to_host_path_cmd 18238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $to_host_path_cmd "$1" 18248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 18258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_to_host_path 18268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_noop ARG 18298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Copy ARG to func_to_host_path_result. 18308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_noop () 18318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 18328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$1" 18338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 18348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_noop 18358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_msys_to_w32 ARG 18388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic 18398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# conversion to w32 is not available inside the cwrapper. Returns result in 18408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_path_result. 18418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_msys_to_w32 () 18428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 18438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 18448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$1" 18458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 18468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove leading and trailing path separator characters from ARG. MSYS 18478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; 18488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # and winepath ignores them completely. 18498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname : : "$1" 18508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_tmp1=$func_stripname_result 18518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" 18528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$func_convert_core_msys_to_w32_result" 18538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_check : ";" \ 18548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "$func_to_host_path_tmp1" "$func_to_host_path_result" 18558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 18568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 18578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 18588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_msys_to_w32 18598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_cygwin_to_w32 ARG 18628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert path ARG from Cygwin to w32 format. Returns result in 18638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_file_result. 18648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_cygwin_to_w32 () 18658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 18668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 18678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$1" 18688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 18698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # See func_convert_path_msys_to_w32: 18708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname : : "$1" 18718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_tmp1=$func_stripname_result 18728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` 18738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_check : ";" \ 18748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "$func_to_host_path_tmp1" "$func_to_host_path_result" 18758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 18768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 18778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 18788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_cygwin_to_w32 18798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 18818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_nix_to_w32 ARG 18828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert path ARG from *nix to w32 format. Requires a wine environment and 18838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# a working winepath. Returns result in func_to_host_file_result. 18848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_nix_to_w32 () 18858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 18868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 18878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$1" 18888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 18898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # See func_convert_path_msys_to_w32: 18908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname : : "$1" 18918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_tmp1=$func_stripname_result 18928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" 18938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" 18948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_check : ";" \ 18958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "$func_to_host_path_tmp1" "$func_to_host_path_result" 18968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" 18978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 18988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 18998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_nix_to_w32 19008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_msys_to_cygwin ARG 19038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. 19048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Returns result in func_to_host_file_result. 19058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_msys_to_cygwin () 19068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 19078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 19088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$1" 19098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 19108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # See func_convert_path_msys_to_w32: 19118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname : : "$1" 19128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_tmp1=$func_stripname_result 19138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" 19148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygpath -u -p "$func_convert_core_msys_to_w32_result" 19158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$func_cygpath_result" 19168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_check : : \ 19178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "$func_to_host_path_tmp1" "$func_to_host_path_result" 19188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_front_back_pathsep ":*" "*:" : "$1" 19198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 19208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 19218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_msys_to_cygwin 19228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_convert_path_nix_to_cygwin ARG 19258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a 19268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# a wine environment, working winepath, and LT_CYGPATH set. Returns result in 19278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_to_host_file_result. 19288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_convert_path_nix_to_cygwin () 19298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 19308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 19318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$1" 19328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 19338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove leading and trailing path separator characters from 19348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # ARG. msys behavior is inconsistent here, cygpath turns them 19358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # into '.;' and ';.', and winepath ignores them completely. 19368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname : : "$1" 19378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_tmp1=$func_stripname_result 19388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" 19398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" 19408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path_result="$func_cygpath_result" 19418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_check : : \ 19428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "$func_to_host_path_tmp1" "$func_to_host_path_result" 19438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_convert_path_front_back_pathsep ":*" "*:" : "$1" 19448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 19458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 19468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end func_convert_path_nix_to_cygwin 19478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mode_compile arg... 19508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mode_compile () 19518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 19528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 19538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Get the compilation command and the source file. 19548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar base_compile= 19558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar srcfile="$nonopt" # always keep a non-empty value in "srcfile" 19568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar suppress_opt=yes 19578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar suppress_output= 19588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg_mode=normal 19598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobj= 19608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar later= 19618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pie_flag= 19628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg 19648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 19658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg_mode in 19668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg ) 19678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # do not "continue". Instead, add this to base_compile 19688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lastarg="$arg" 19698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg_mode=normal 19708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 19718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar target ) 19738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobj="$arg" 19748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg_mode=normal 19758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 19768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 19778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar normal ) 19798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Accept any command-line options. 19808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 19818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -o) 19828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$libobj" && \ 19838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "you cannot specify \`-o' more than once" 19848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg_mode=target 19858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 19868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 19878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -pie | -fpie | -fPIE) 19898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append pie_flag " $arg" 19908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 19918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 19928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shared | -static | -prefer-pic | -prefer-non-pic) 19948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append later " $arg" 19958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 19968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 19978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 19988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-suppress) 19998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar suppress_opt=no 20008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 20018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Xcompiler) 20048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg_mode=arg # the next one goes into the "base_compile" arg list 20058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue # The current "srcfile" will either be retained or 20068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; # replaced later. I would guess that would be a bug. 20078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Wc,*) 20098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-Wc,' '' "$arg" 20108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar args=$func_stripname_result 20118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lastarg= 20128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs="$IFS"; IFS=',' 20138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg in $args; do 20148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 20158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append_quoted lastarg "$arg" 20168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 20178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 20188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname ' ' '' "$lastarg" 20198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lastarg=$func_stripname_result 20208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add the arguments to base_compile. 20228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append base_compile " $lastarg" 20238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 20248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 20278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Accept the current argument as the source file. 20288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The previous "srcfile" becomes the current argument. 20298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 20308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lastarg="$srcfile" 20318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar srcfile="$arg" 20328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac # case $arg 20348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac # case $arg_mode 20368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Aesthetically quote the previous argument. 20388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append_quoted base_compile "$lastarg" 20398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # for arg 20408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg_mode in 20428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg) 20438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "you must specify an argument for -Xcompile" 20448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar target) 20468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "you must specify a target with \`-o'" 20478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 20498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Get the name of the library object. 20508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libobj" && { 20518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$srcfile" 20528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobj="$func_basename_result" 20538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 20548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 20568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Recognize several different file suffixes. 20588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the user specifies -o file.o, it is replaced with file.lo 20598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $libobj in 20608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.[cCFSifmso] | \ 20618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.ada | *.adb | *.ads | *.asm | \ 20628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ 20638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) 20648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_xform "$libobj" 20658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobj=$func_xform_result 20668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 20688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $libobj in 20708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; 20718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 20728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot determine name of library object from \`$libobj'" 20738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 20758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_infer_tag $base_compile 20778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg in $later; do 20798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 20808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shared) 20818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$build_libtool_libs" != yes && \ 20828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_configuration "can not build a shared library" 20838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=no 20848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 20858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -static) 20888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 20898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=yes 20908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 20918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -prefer-pic) 20948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_mode=yes 20958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 20968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 20978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 20988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -prefer-non-pic) 20998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_mode=no 21008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 21018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 21028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 21038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 21048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$libobj" 21068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$libobj" != "X$func_quote_for_eval_result" \ 21078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ 21088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && func_warning "libobj name \`$libobj' may not contain shell special characters." 21098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_and_basename "$obj" "/" "" 21108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objname="$func_basename_result" 21118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xdir="$func_dirname_result" 21128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lobj=${xdir}$objdir/$objname 21138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$base_compile" && \ 21158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "you must specify a compilation command" 21168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Delete any leftover library objects. 21188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = yes; then 21198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar removelist="$obj $lobj $libobj ${libobj}T" 21208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 21218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar removelist="$lobj $libobj ${libobj}T" 21228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 21238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # On Cygwin there's no "real" PIC flag so we must build both object types 21258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host_os in 21268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cygwin* | mingw* | pw32* | os2* | cegcc*) 21278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_mode=default 21288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 21298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 21308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 21318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # non-PIC code in shared libraries is not supported 21328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_mode=default 21338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 21348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Calculate the filename of the output object if compiler does 21368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # not support -o with -c 21378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$compiler_c_o" = no; then 21388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} 21398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lockfile="$output_obj.lock" 21408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 21418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output_obj= 21428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar need_locks=no 21438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lockfile= 21448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 21458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Lock this critical section if it is needed 21478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We use this script file to make the link, it avoids creating a new file 21488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$need_locks" = yes; then 21498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do 21508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_echo "Waiting for $lockfile to be removed" 21518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sleep 2 21528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 21538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$need_locks" = warn; then 21548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$lockfile"; then 21558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 21568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar*** ERROR, $lockfile exists and contains: 21578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar`cat $lockfile 2>/dev/null` 21588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThis indicates that another process is trying to use the same 21608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartemporary object file, and libtool could not work around it because 21618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaryour compiler does not support \`-c' and \`-o' together. If you 21628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarrepeat this compilation, it may succeed, by chance, but you had better 21638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaravoid parallel builds (make -j) in this platform, or get a better 21648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcompiler." 21658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $removelist 21678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_FAILURE 21688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 21698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append removelist " $output_obj" 21708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$srcfile" > "$lockfile" 21718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 21728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $removelist 21748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append removelist " $lockfile" 21758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 21768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 21788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar srcfile=$func_to_tool_file_result 21798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$srcfile" 21808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar qsrcfile=$func_quote_for_eval_result 21818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only build a PIC object if we are building libtool libraries. 21838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes; then 21848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Without this assignment, base_compile gets emptied. 21858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fbsd_hideous_sh_bug=$base_compile 21868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pic_mode" != no; then 21888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar command="$base_compile $qsrcfile $pic_flag" 21898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 21908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't build PIC code 21918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar command="$base_compile $qsrcfile" 21928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 21938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mkdir_p "$xdir$objdir" 21958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 21968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$output_obj"; then 21978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Place PIC objects in $objdir 21988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append command " -o $lobj" 21998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval_locale "$command" \ 22028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' 22038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$need_locks" = warn && 22058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 22068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 22078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar*** ERROR, $lockfile contains: 22088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar`cat $lockfile 2>/dev/null` 22098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbut it should contain: 22118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$srcfile 22128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThis indicates that another process is trying to use the same 22148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartemporary object file, and libtool could not work around it because 22158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaryour compiler does not support \`-c' and \`-o' together. If you 22168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarrepeat this compilation, it may succeed, by chance, but you had better 22178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaravoid parallel builds (make -j) in this platform, or get a better 22188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcompiler." 22198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $removelist 22218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_FAILURE 22228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Just move the object if needed, then go on to compile the next one 22258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 22268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$MV "$output_obj" "$lobj"' \ 22278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 22288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Allow error messages only from the first compilation. 22318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$suppress_opt" = yes; then 22328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar suppress_output=' >/dev/null 2>&1' 22338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only build a position-dependent object if we build old libraries. 22378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = yes; then 22388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pic_mode" != yes; then 22398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't build PIC code 22408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar command="$base_compile $qsrcfile$pie_flag" 22418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 22428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar command="$base_compile $qsrcfile $pic_flag" 22438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$compiler_c_o" = yes; then 22458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append command " -o $obj" 22468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Suppress compiler output if we already did a PIC compilation. 22498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append command "$suppress_output" 22508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval_locale "$command" \ 22518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 22528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$need_locks" = warn && 22548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 22558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 22568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar*** ERROR, $lockfile contains: 22578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar`cat $lockfile 2>/dev/null` 22588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbut it should contain: 22608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$srcfile 22618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThis indicates that another process is trying to use the same 22638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartemporary object file, and libtool could not work around it because 22648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaryour compiler does not support \`-c' and \`-o' together. If you 22658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarrepeat this compilation, it may succeed, by chance, but you had better 22668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaravoid parallel builds (make -j) in this platform, or get a better 22678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcompiler." 22688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $removelist 22708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_FAILURE 22718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Just move the object if needed 22748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 22758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$MV "$output_obj" "$obj"' \ 22768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 'error=$?; $opt_dry_run || $RM $removelist; exit $error' 22778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 22818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" 22828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Unlock the critical section if it was locked 22848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$need_locks" != no; then 22858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar removelist=$lockfile 22868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM "$lockfile" 22878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 22888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 22898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 22918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 22928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar$opt_help || { 22948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$opt_mode" = compile && func_mode_compile ${1+"$@"} 22958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 22968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 22978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mode_help () 22988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 22998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need to display help for each of the modes. 23008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $opt_mode in 23018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "") 23028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Generic help is extracted from the usage comments 23038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # at the start of this file. 23048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_help 23058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 23068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar clean) 23088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \ 23098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 23108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarRemove files from the build directory. 23128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarRM is the name of the program to use to delete files associated with each FILE 23148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 23158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarto RM. 23168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarIf FILE is a libtool library, object or program, all the files associated 23188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarwith it are deleted. Otherwise, only FILE itself is deleted using RM." 23198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 23208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile) 23228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \ 23238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 23248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarCompile a source file into a libtool library object. 23268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThis mode accepts the following additional options: 23288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -o OUTPUT-FILE set the output file name to OUTPUT-FILE 23308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-suppress do not suppress compiler output for multiple passes 23318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -prefer-pic try to build PIC objects only 23328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -prefer-non-pic try to build non-PIC objects only 23338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shared do not build a \`.o' file suitable for static linking 23348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -static only build a \`.o' file suitable for static linking 23358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Wc,FLAG pass FLAG directly to the compiler 23368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 23388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfrom the given SOURCEFILE. 23398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThe output file name is determined by removing the directory component from 23418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarSOURCEFILE, then substituting the C source code suffix \`.c' with the 23428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlibrary object suffix, \`.lo'." 23438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 23448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar execute) 23468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \ 23478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... 23488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarAutomatically set library path, then run a program. 23508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThis mode accepts the following additional options: 23528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -dlopen FILE add the directory containing FILE to the library path 23548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThis mode sets the library path environment variable according to \`-dlopen' 23568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarflags. 23578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarIf any of the ARGS are libtool executable wrappers, then they are translated 23598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarinto their corresponding uninstalled binary, and any of their required library 23608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardirectories are added to the library path. 23618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThen, COMMAND is executed, with ARGS as arguments." 23638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 23648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finish) 23668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \ 23678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... 23688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarComplete the installation of libtool libraries. 23708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEach LIBDIR is a directory that contains libtool libraries. 23728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThe commands that this mode executes may require superuser privileges. Use 23748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarthe \`--dry-run' option if you just want to see what would be executed." 23758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 23768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar install) 23788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \ 23798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... 23808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarInstall executables or libraries. 23828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarINSTALL-COMMAND is the installation command. The first component should be 23848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwareither the \`install' or \`cp' program. 23858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThe following components of INSTALL-COMMAND are treated specially: 23878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation 23898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThe rest of the components are interpreted as arguments to that command (only 23918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarBSD-compatible install options are recognized)." 23928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 23938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link) 23958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \ 23968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... 23978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 23988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarLink object files or libraries together to form another library, or to 23998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcreate an executable program. 24008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarLINK-COMMAND is a command using the C compiler that you would use to create 24028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwara program from several object files. 24038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarThe following components of LINK-COMMAND are treated specially: 24058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -all-static do not do any dynamic linking at all 24078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -avoid-version do not add a version suffix if possible 24088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -bindir BINDIR specify path to binaries directory (for systems where 24098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libraries must be found in the PATH setting at runtime) 24108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 24118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 24128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 24138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -export-symbols SYMFILE 24148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar try to export only the symbols listed in SYMFILE 24158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -export-symbols-regex REGEX 24168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar try to export only the symbols matching REGEX 24178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -LLIBDIR search LIBDIR for required installed libraries 24188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -lNAME OUTPUT-FILE requires the installed library libNAME 24198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -module build a library that can dlopened 24208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-fast-install disable the fast-install mode 24218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-install link a not-installable executable 24228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-undefined declare that a library does not refer to external symbols 24238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 24248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -objectlist FILE Use a list of object files found in FILE to specify objects 24258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -precious-files-regex REGEX 24268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar don't remove output files matching REGEX 24278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -release RELEASE specify package release information 24288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -rpath LIBDIR the created library will eventually be installed in LIBDIR 24298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 24308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shared only do dynamic linking of libtool libraries 24318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shrext SUFFIX override the standard shared library file extension 24328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -static do not do any dynamic linking of uninstalled libtool libraries 24338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -static-libtool-libs 24348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do not do any dynamic linking of libtool libraries 24358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -version-info CURRENT[:REVISION[:AGE]] 24368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar specify library version info [each variable defaults to 0] 24378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -weak LIBNAME declare that the target provides the LIBNAME interface 24388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Wc,FLAG 24398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Xcompiler FLAG pass linker-specific FLAG directly to the compiler 24408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Wl,FLAG 24418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Xlinker FLAG pass linker-specific FLAG directly to the linker 24428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) 24438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarAll other options (arguments beginning with \`-') are ignored. 24458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEvery other argument is treated as a filename. Files ending in \`.la' are 24478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartreated as uninstalled libtool libraries, other files are standard or library 24488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarobject files. 24498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 24518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaronly library objects (\`.lo' files) may be specified, and \`-rpath' is 24528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarrequired, except when creating a convenience library. 24538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 24558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarusing \`ar' and \`ranlib', or on Windows using \`lib'. 24568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 24588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwaris created, otherwise an executable program is created." 24598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 24608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar uninstall) 24628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \ 24638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 24648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarRemove libraries from an installation directory. 24668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarRM is the name of the program to use to delete files associated with each FILE 24688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 24698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarto RM. 24708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarIf FILE is a libtool library, all the files associated with it are deleted. 24728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarOtherwise, only FILE itself is deleted using RM." 24738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 24748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 24768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "invalid operation mode \`$opt_mode'" 24778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 24788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 24798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 24818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "Try \`$progname --help' for more information about other modes." 24828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 24838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 24848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Now that we've collected a possible --mode arg, show help if necessary 24858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarif $opt_help; then 24868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_help" = :; then 24878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mode_help 24888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 24898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 24908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_help noexit 24918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for opt_mode in compile link execute install finish uninstall clean; do 24928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mode_help 24938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 24948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } | sed -n '1p; 2,$s/^Usage:/ or: /p' 24958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 24968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_help noexit 24978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for opt_mode in compile link execute install finish uninstall clean; do 24988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 24998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mode_help 25008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 25018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } | 25028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sed '1d 25038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^When reporting/,/^Report/{ 25048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar H 25058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar d 25068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 25078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $x 25088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /information about other modes/d 25098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /more detailed .*MODE/d 25108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' 25118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 25128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $? 25138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfi 25148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mode_execute arg... 25178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mode_execute () 25188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 25198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 25208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The first argument is the command name. 25218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmd="$nonopt" 25228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$cmd" && \ 25238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "you must specify a COMMAND" 25248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Handle -dlopen flags immediately. 25268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for file in $opt_dlopen; do 25278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -f "$file" \ 25288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar || func_fatal_help "\`$file' is not a file" 25298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir= 25318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file in 25328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 25338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$file" 25348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=$func_resolve_sysroot_result 25358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see that this really is a libtool archive. 25378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lalib_unsafe_p "$file" \ 25388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar || func_fatal_help "\`$lib' is not a valid libtool archive" 25398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Read the libtool library. 25418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlname= 25428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar library_names= 25438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$file" 25448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Skip this library if it cannot be dlopened. 25468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$dlname"; then 25478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Warn if it was a shared library. 25488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$library_names" && \ 25498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`$file' was not linked with \`-export-dynamic'" 25508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 25518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 25528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$file" "" "." 25548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$func_dirname_result" 25558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$dir/$objdir/$dlname"; then 25578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dir "/$objdir" 25588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 25598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -f "$dir/$dlname"; then 25608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 25618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 25628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 25638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 25648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) 25668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Just add the directory containing the .lo file. 25678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$file" "" "." 25688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$func_dirname_result" 25698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 25708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 25728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" 25738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 25748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 25758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 25768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Get the absolute pathname. 25788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir=`cd "$dir" && pwd` 25798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$absdir" && dir="$absdir" 25808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now add the directory to shlibpath_var. 25828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval "test -z \"\$$shlibpath_var\""; then 25838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$shlibpath_var=\"\$dir\"" 25848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 25858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 25868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 25878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 25888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This variable tells wrapper scripts just to set shlibpath_var 25908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # rather than running their programs. 25918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libtool_execute_magic="$magic" 25928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 25938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check if any of the arguments is a wrapper script. 25948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar args= 25958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for file 25968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 25978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file in 25988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -* | *.la | *.lo ) ;; 25998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 26008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do a test to see if this is really a libtool program. 26018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_ltwrapper_script_p "$file"; then 26028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$file" 26038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Transform arg to wrapped name. 26048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file="$progdir/$program" 26058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif func_ltwrapper_executable_p "$file"; then 26068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_ltwrapper_scriptname "$file" 26078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$func_ltwrapper_scriptname_result" 26088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Transform arg to wrapped name. 26098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file="$progdir/$program" 26108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 26128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 26138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Quote arguments (to preserve shell metacharacters). 26148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append_quoted args "$file" 26158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 26168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$opt_dry_run" = Xfalse; then 26188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$shlibpath_var"; then 26198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Export the shlibpath_var. 26208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "export $shlibpath_var" 26218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Restore saved environment variables 26248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 26258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 26268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "if test \"\${save_$lt_var+set}\" = set; then 26278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $lt_var=\$save_$lt_var; export $lt_var 26288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 26298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $lt_unset $lt_var 26308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi" 26318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 26328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now prepare to actually exec the command. 26348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exec_cmd="\$cmd$args" 26358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 26368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Display what would be done. 26378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$shlibpath_var"; then 26388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" 26398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "export $shlibpath_var" 26408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$cmd$args" 26428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 26438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 26458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartest "$opt_mode" = execute && func_mode_execute ${1+"$@"} 26478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mode_finish arg... 26508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mode_finish () 26518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 26528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 26538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libs= 26548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdirs= 26558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar admincmds= 26568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for opt in "$nonopt" ${1+"$@"} 26588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 26598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -d "$opt"; then 26608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libdirs " $opt" 26618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -f "$opt"; then 26638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_lalib_unsafe_p "$opt"; then 26648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libs " $opt" 26658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 26668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`$opt' is not a valid libtool archive" 26678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 26708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "invalid argument \`$opt'" 26718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 26738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$libs"; then 26758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$lt_sysroot"; then 26768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` 26778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" 26788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 26798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sysroot_cmd= 26808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove sysroot references 26838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_dry_run; then 26848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $libs; do 26858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "removing references to $lt_sysroot and \`=' prefixes from $lib" 26868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 26878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 26888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmpdir=`func_mktempdir` 26898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $libs; do 26908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ 26918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar > $tmpdir/tmp-la 26928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar mv -f $tmpdir/tmp-la $lib 26938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 26948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ${RM}r "$tmpdir" 26958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 26978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 26988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 26998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $libdirs; do 27008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$finish_cmds"; then 27018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each command in the finish commands. 27028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$finish_cmds" 'admincmds="$admincmds 27038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar'"$cmd"'"' 27048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$finish_eval"; then 27068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do the single finish_eval. 27078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmds=\"$finish_eval\" 27088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval "$cmds" || func_append admincmds " 27098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $cmds" 27108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 27128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Exit here if they wanted silent mode. 27158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_silent && exit $EXIT_SUCCESS 27168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 27188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "----------------------------------------------------------------------" 27198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "Libraries have been installed in:" 27208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $libdirs; do 27218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO " $libdir" 27228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 27238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 27248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "If you ever happen to want to link against installed libraries" 27258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "in a given directory, LIBDIR, you must either use libtool, and" 27268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 27278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "flag during linking and do at least one of the following:" 27288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$shlibpath_var"; then 27298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 27308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo " during execution" 27318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$runpath_var"; then 27338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo " - add LIBDIR to the \`$runpath_var' environment variable" 27348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo " during linking" 27358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_flag_spec"; then 27378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir=LIBDIR 27388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval flag=\"$hardcode_libdir_flag_spec\" 27398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO " - use the \`$flag' linker flag" 27418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$admincmds"; then 27438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO " - have your system administrator run these commands:$admincmds" 27448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f /etc/ld.so.conf; then 27468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 27478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 27498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "See any operating system documentation about shared libraries for" 27518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 27528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar solaris2.[6789]|solaris2.1[0-9]) 27538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" 27548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "pages." 27558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 27568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 27578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "more information, such as the ld(1) and ld.so(8) manual pages." 27588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 27598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 27608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "----------------------------------------------------------------------" 27618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 27638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 27648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartest "$opt_mode" = finish && func_mode_finish ${1+"$@"} 27668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mode_install arg... 27698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mode_install () 27708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 27718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 27728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # There may be an optional sh(1) argument at the beginning of 27738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # install_prog (especially on Windows NT). 27748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 27758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Allow the use of GNU shtool's install command. 27768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $nonopt in *shtool*) :;; *) false;; esac; then 27778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Aesthetically quote it. 27788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$nonopt" 27798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar install_prog="$func_quote_for_eval_result " 27808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg=$1 27818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 27828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 27838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar install_prog= 27848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg=$nonopt 27858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 27868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The real first argument should be the name of the installation program. 27888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Aesthetically quote it. 27898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg" 27908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append install_prog "$func_quote_for_eval_result" 27918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar install_shared_prog=$install_prog 27928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $install_prog " in 27938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\\\ /]cp\ *) install_cp=: ;; 27948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) install_cp=false ;; 27958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 27968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 27978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need to accept at least all the BSD install flags. 27988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dest= 27998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar files= 28008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar opts= 28018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 28028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar install_type= 28038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar isdir=no 28048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar stripme= 28058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar no_mode=: 28068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg 28078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 28088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg2= 28098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dest"; then 28108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append files " $dest" 28118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dest=$arg 28128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 28138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 28168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -d) isdir=yes ;; 28178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -f) 28188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $install_cp; then :; else 28198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=$arg 28208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 28228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -g | -m | -o) 28238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=$arg 28248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 28258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -s) 28268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar stripme=" -s" 28278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 28288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 28298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -*) 28308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 28318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 28328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the previous option needed an argument, then skip it. 28338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$prev"; then 28348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "x$prev" = x-m && test -n "$install_override_mode"; then 28358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg2=$install_override_mode 28368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar no_mode=false 28378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 28398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 28408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dest=$arg 28418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 28428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 28448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 28458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Aesthetically quote the argument. 28478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg" 28488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append install_prog " $func_quote_for_eval_result" 28498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$arg2"; then 28508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg2" 28518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append install_shared_prog " $func_quote_for_eval_result" 28538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 28548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$install_prog" && \ 28568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "you must specify an install program" 28578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$prev" && \ 28598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "the \`$prev' option requires an argument" 28608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$install_override_mode" && $no_mode; then 28628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $install_cp; then :; else 28638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$install_override_mode" 28648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append install_shared_prog " -m $func_quote_for_eval_result" 28658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$files"; then 28698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$dest"; then 28708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "no file or destination specified" 28718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 28728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "you must specify a destination" 28738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Strip any trailing slash from the destination. 28778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '/' "$dest" 28788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dest=$func_stripname_result 28798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see that the destination is a directory. 28818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -d "$dest" && isdir=yes 28828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$isdir" = yes; then 28838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destdir="$dest" 28848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destname= 28858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 28868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_and_basename "$dest" "" "." 28878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destdir="$func_dirname_result" 28888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destname="$func_basename_result" 28898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 28908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Not a directory, so check to see that there is only one file specified. 28918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $files; shift 28928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$#" -gt 1 && \ 28938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "\`$dest' is not a directory" 28948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 28958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $destdir in 28968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) ;; 28978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 28988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for file in $files; do 28998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file in 29008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) ;; 29018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 29028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "\`$destdir' must be an absolute directory name" 29038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 29048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 29058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 29068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 29078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 29088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This variable tells wrapper scripts just to set variables rather 29108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # than running their programs. 29118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libtool_install_magic="$magic" 29128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar staticlibs= 29148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar future_libdirs= 29158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar current_libdirs= 29168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for file in $files; do 29178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each installation. 29198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file in 29208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.$libext) 29218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do the static libraries later. 29228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append staticlibs " $file" 29238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 29248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 29268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$file" 29278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=$func_resolve_sysroot_result 29288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see that this really is a libtool archive. 29308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lalib_unsafe_p "$file" \ 29318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar || func_fatal_help "\`$file' is not a valid libtool archive" 29328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar library_names= 29348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_library= 29358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command= 29368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$file" 29378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add the libdir to current_libdirs if it is the destination. 29398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$destdir" = "X$libdir"; then 29408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$current_libdirs " in 29418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 29428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append current_libdirs " $libdir" ;; 29438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 29448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 29458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Note the libdir as a future libdir. 29468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$future_libdirs " in 29478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 29488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append future_libdirs " $libdir" ;; 29498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 29508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 29518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$file" "/" "" 29538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$func_dirname_result" 29548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dir "$objdir" 29558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$relink_command"; then 29578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Determine the prefix the user has applied to our future dir. 29588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` 29598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't allow the user to place us outside of our expected 29618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # location b/c this prevents finding dependent libraries that 29628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # are installed to the same prefix. 29638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # At present, this check doesn't affect windows .dll's that 29648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # are installed into $libdir/../bin (currently, that works fine) 29658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # but it's something to keep an eye on. 29668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$inst_prefix_dir" = "$destdir" && \ 29678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" 29688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$inst_prefix_dir"; then 29708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Stick the inst_prefix_dir data into the link command. 29718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 29728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 29738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 29748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 29758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "relinking \`$file'" 29778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$relink_command" \ 29788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' 29798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 29808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # See the names of the shared library. 29828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $library_names; shift 29838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$1"; then 29848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar realname="$1" 29858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 29868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar srcname="$realname" 29888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$relink_command" && srcname="$realname"T 29898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 29908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Install the shared library and build the symlinks. 29918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 29928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 'exit $?' 29938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tstripme="$stripme" 29948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host_os in 29958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cygwin* | mingw* | pw32* | cegcc*) 29968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $realname in 29978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.dll.a) 29988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tstripme="" 29998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 30018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 30038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$tstripme" && test -n "$striplib"; then 30048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$striplib $destdir/$realname" 'exit $?' 30058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 30068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$#" -gt 0; then 30088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Delete the old symlinks, and create new ones. 30098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Try `ln -sf' first, because the `ln' binary might depend on 30108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the symlink we replace! Solaris /bin/ln does not understand -f, 30118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # so we also need to try rm && ln -s. 30128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for linkname 30138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 30148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$linkname" != "$realname" \ 30158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" 30168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 30178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 30188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each command in the postinstall commands. 30208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib="$destdir/$realname" 30218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$postinstall_cmds" 'exit $?' 30228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 30238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Install the pseudo-library for information purposes. 30258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$file" 30268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name="$func_basename_result" 30278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar instname="$dir/$name"i 30288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' 30298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Maybe install the static library, too. 30318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$old_library" && func_append staticlibs " $dir/$old_library" 30328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) 30358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Install (i.e. copy) a libtool object. 30368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Figure out destination file name, if it wasn't already specified. 30388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$destname"; then 30398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile="$destdir/$destname" 30408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 30418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$file" 30428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile="$func_basename_result" 30438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile="$destdir/$destfile" 30448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 30458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Deduce the name of the destination old-style object file. 30478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $destfile in 30488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) 30498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lo2o "$destfile" 30508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar staticdest=$func_lo2o_result 30518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.$objext) 30538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar staticdest="$destfile" 30548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile= 30558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 30578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "cannot copy a libtool object to \`$destfile'" 30588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 30608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Install the libtool object if requested. 30628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$destfile" && \ 30638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$install_prog $file $destfile" 'exit $?' 30648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Install the old object if enabled. 30668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = yes; then 30678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Deduce the name of the old-style object file. 30688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lo2o "$file" 30698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar staticobj=$func_lo2o_result 30708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' 30718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 30728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 30738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 30768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Figure out destination file name, if it wasn't already specified. 30778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$destname"; then 30788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile="$destdir/$destname" 30798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 30808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$file" 30818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile="$func_basename_result" 30828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile="$destdir/$destfile" 30838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 30848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the file is missing, and there is a .exe on the end, strip it 30868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # because it is most likely a libtool script we actually want to 30878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # install 30888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar stripped_ext="" 30898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file in 30908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.exe) 30918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -f "$file"; then 30928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.exe' "$file" 30938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=$func_stripname_result 30948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar stripped_ext=".exe" 30958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 30968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 30978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 30988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 30998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do a test to see if this is really a libtool program. 31008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 31018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw*) 31028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_ltwrapper_executable_p "$file"; then 31038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_ltwrapper_scriptname "$file" 31048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wrapper=$func_ltwrapper_scriptname_result 31058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 31068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.exe' "$file" 31078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wrapper=$func_stripname_result 31088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 31108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 31118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wrapper=$file 31128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 31138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 31148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_ltwrapper_script_p "$wrapper"; then 31158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar notinst_deplibs= 31168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command= 31178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$wrapper" 31198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check the variables that should have been set. 31218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$generated_by_libtool_version" && \ 31228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "invalid libtool wrapper script \`$wrapper'" 31238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize=yes 31258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $notinst_deplibs; do 31268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see that each library is installed. 31278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir= 31288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$lib"; then 31298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$lib" 31308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test 31328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$libdir" && test ! -f "$libfile"; then 31338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`$lib' has not been installed in \`$libdir'" 31348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize=no 31358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 31378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command= 31398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$wrapper" 31408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar outputname= 31428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$fast_install" = no && test -n "$relink_command"; then 31438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 31448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$finalize" = yes; then 31458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmpdir=`func_mktempdir` 31468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$file$stripped_ext" 31478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file="$func_basename_result" 31488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar outputname="$tmpdir/$file" 31498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Replace the output file specification. 31508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` 31518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_silent || { 31538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_expand "$relink_command" 31548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "func_echo $func_quote_for_expand_result" 31558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 31568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval "$relink_command"; then : 31578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 31588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "error: relink \`$file' with the above command before installing it" 31598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || ${RM}r "$tmpdir" 31608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 31618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file="$outputname" 31638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 31648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "cannot relink \`$file'" 31658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 31678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 31688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Install the binary that we compiled earlier. 31698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` 31708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # remove .exe since cygwin /usr/bin/install will append another 31748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # one anyway 31758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $install_prog,$host in 31768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar */usr/bin/install*,*cygwin*) 31778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file:$destfile in 31788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.exe:*.exe) 31798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # this is ok 31808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 31818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.exe:*) 31828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile=$destfile.exe 31838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 31848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *:*.exe) 31858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.exe' "$destfile" 31868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destfile=$func_stripname_result 31878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 31888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 31898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 31908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 31918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' 31928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || if test -n "$outputname"; then 31938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ${RM}r "$tmpdir" 31948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 31958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 31968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 31978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 31988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 31998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for file in $staticlibs; do 32008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$file" 32018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name="$func_basename_result" 32028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Set up the ranlib parameters. 32048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlib="$destdir/$name" 32058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 32068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tool_oldlib=$func_to_tool_file_result 32078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$install_prog \$file \$oldlib" 'exit $?' 32098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$stripme" && test -n "$old_striplib"; then 32118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$old_striplib $tool_oldlib" 'exit $?' 32128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 32138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each command in the postinstall commands. 32158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$old_postinstall_cmds" 'exit $?' 32168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 32178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$future_libdirs" && \ 32198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "remember to run \`$progname --finish$future_libdirs'" 32208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$current_libdirs"; then 32228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Maybe just do a dry run. 32238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run && current_libdirs=" -n$current_libdirs" 32248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 32258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 32268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 32278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 32288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 32298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartest "$opt_mode" = install && func_mode_install ${1+"$@"} 32318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_generate_dlsyms outputname originator pic_p 32348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Extract symbols from dlprefiles and create ${outputname}S.o with 32358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# a dlpreopen symbol table. 32368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_generate_dlsyms () 32378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 32388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 32398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_outputname="$1" 32408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_originator="$2" 32418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_pic_p="${3-no}" 32428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` 32438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_dlsyms= 32448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 32468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$NM" && test -n "$global_symbol_pipe"; then 32478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_dlsyms="${my_outputname}S.c" 32488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 32498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "not configured to extract global symbols from dlpreopened files" 32508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 32518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 32528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$my_dlsyms"; then 32548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $my_dlsyms in 32558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "") ;; 32568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.c) 32578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Discover the nlist of each of the dlfiles. 32588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nlist="$output_objdir/${my_outputname}.nm" 32598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$RM $nlist ${nlist}S ${nlist}T" 32618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Parse the name list into a source file. 32638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating $output_objdir/$my_dlsyms" 32648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ 32668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ 32678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ 32688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifdef __cplusplus 32708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarextern \"C\" { 32718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 32728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) 32748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" 32758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 32768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ 32788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) 32798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* DATA imports from DLLs on WIN32 con't be const, because runtime 32808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relocations are performed -- see ld's documentation on pseudo-relocs. */ 32818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define LT_DLSYM_CONST 32828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#elif defined(__osf__) 32838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* This system does not cope well with relocations in const data. */ 32848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define LT_DLSYM_CONST 32858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else 32868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define LT_DLSYM_CONST const 32878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 32888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* External symbol declarations for the compiler. */\ 32908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 32918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$dlself" = yes; then 32938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "generating symbol list for \`$output'" 32948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" 32968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 32978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add our own program objects to the symbol list. 32988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` 32998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for progfile in $progfiles; do 33008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$progfile" func_convert_file_msys_to_w32 33018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" 33028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" 33038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 33048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 33058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$exclude_expsyms"; then 33068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 33078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 33088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$MV "$nlist"T "$nlist"' 33098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 33108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 33128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols_regex"; then 33138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 33148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 33158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$MV "$nlist"T "$nlist"' 33168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 33178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 33198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Prepare the list of exported symbols 33208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$export_symbols"; then 33218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols="$output_objdir/$outputname.exp" 33228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 33238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM $export_symbols 33248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 33258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 33268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* | *cegcc* ) 33278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 33288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 33298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 33308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 33318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 33328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 33338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 33348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 33358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 33368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$MV "$nlist"T "$nlist"' 33378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 33388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* | *cegcc* ) 33398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 33408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 33418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 33428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 33438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 33448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 33478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for dlprefile in $dlprefiles; do 33488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "extracting global C symbols from \`$dlprefile'" 33498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$dlprefile" 33508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name="$func_basename_result" 33518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 33528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* | *cegcc* ) 33538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # if an import library, we need to obtain dlname 33548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_win32_import_lib_p "$dlprefile"; then 33558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_tr_sh "$dlprefile" 33568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "curr_lafile=\$libfile_$func_tr_sh_result" 33578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefile_dlbasename="" 33588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then 33598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Use subshell, to avoid clobbering current variable values 33608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` 33618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlprefile_dlname" ; then 33628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$dlprefile_dlname" 33638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefile_dlbasename="$func_basename_result" 33648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 33658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # no lafile. user explicitly requested -dlpreopen <import library>. 33668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $sharedlib_from_linklib_cmd "$dlprefile" 33678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefile_dlbasename=$sharedlib_from_linklib_result 33688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 33718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlprefile_dlbasename" ; then 33728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' 33738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 33748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "Could not compute DLL name from $name" 33758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$ECHO ": $name " >> "$nlist"' 33768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 33788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | 33798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" 33808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 33818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else # not an import lib 33828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 33838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$ECHO ": $name " >> "$nlist"' 33848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 33858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" 33868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 33878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 33888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 33898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 33908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 33918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval '$ECHO ": $name " >> "$nlist"' 33928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 33938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" 33948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 33958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 33968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 33978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 33988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 33998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 34008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure we have at least an empty file. 34018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -f "$nlist" || : > "$nlist" 34028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$exclude_expsyms"; then 34048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 34058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MV "$nlist"T "$nlist" 34068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 34078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Try sorting and uniquifying the output. 34098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $GREP -v "^: " < "$nlist" | 34108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if sort -k 3 </dev/null >/dev/null 2>&1; then 34118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sort -k 3 34128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 34138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sort +2 34148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi | 34158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar uniq > "$nlist"S; then 34168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 34178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 34188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $GREP -v "^: " < "$nlist" > "$nlist"S 34198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 34208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$nlist"S; then 34228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' 34238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 34248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo '/* NONE */' >> "$output_objdir/$my_dlsyms" 34258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 34268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo >> "$output_objdir/$my_dlsyms" "\ 34288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* The mapping between symbol names and symbols. */ 34308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartypedef struct { 34318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *name; 34328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar void *address; 34338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} lt_dlsymlist; 34348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarextern LT_DLSYM_CONST lt_dlsymlist 34358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_${my_prefix}_LTX_preloaded_symbols[]; 34368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarLT_DLSYM_CONST lt_dlsymlist 34378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_${my_prefix}_LTX_preloaded_symbols[] = 34388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{\ 34398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { \"$my_originator\", (void *) 0 }," 34408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $need_lib_prefix in 34428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar no) 34438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" 34448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 34458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 34468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" 34478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 34488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 34498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo >> "$output_objdir/$my_dlsyms" "\ 34508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar {0, (void *) 0} 34518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar}; 34528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* This works around a problem in FreeBSD linker */ 34548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifdef FREEBSD_WORKAROUND 34558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const void *lt_preloaded_setup() { 34568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return lt_${my_prefix}_LTX_preloaded_symbols; 34578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 34588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 34598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifdef __cplusplus 34618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 34628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif\ 34638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 34648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } # !$opt_dry_run 34658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_flag_for_symtable= 34678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$compile_command " in 34688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" -static "*) ;; 34698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 34708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 34718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # compiling the symbol table file with pic_flag works around 34728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # a FreeBSD bug that causes programs to crash when -lm is 34738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # linked before any other PIC object. But we must not use 34748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # pic_flag when linking with -static. The problem exists in 34758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 34768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 34778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; 34788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-hpux*) 34798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_flag_for_symtable=" $pic_flag" ;; 34808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 34818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$my_pic_p" != Xno; then 34828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_flag_for_symtable=" $pic_flag" 34838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 34848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 34858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 34868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 34878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 34888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar symtab_cflags= 34898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg in $LTCFLAGS; do 34908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 34918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -pie | -fpie | -fPIE) ;; 34928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append symtab_cflags " $arg" ;; 34938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 34948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 34958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now compile the dynamic symbol file. 34978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' 34988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 34998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Clean up the generated files. 35008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' 35018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 35028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Transform the symbol file into the correct name. 35038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar symfileobj="$output_objdir/${my_outputname}S.$objext" 35048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 35058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* | *cegcc* ) 35068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$output_objdir/$my_outputname.def"; then 35078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 35088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` 35098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 35108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 35138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 35158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` 35178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 35198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 35218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "unknown suffix for \`$my_dlsyms'" 35228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 35248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 35258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We keep going just in case the user didn't refer to 35268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 35278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # really was required. 35288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 35298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Nullify the symbol file. 35308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` 35318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` 35328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 35338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 35348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 35358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_win32_libid arg 35368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# return the library type of file 'arg' 35378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 35388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Need a lot of goo to handle *both* DLLs and import libs 35398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Has to be a shell function in order to 'eat' the argument 35408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# that is supplied when $file_magic_command is called. 35418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Despite the name, also deal with 64 bit binaries. 35428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_win32_libid () 35438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 35448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 35458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar win32_libid_type="unknown" 35468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar win32_fileres=`file -L $1 2>/dev/null` 35478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $win32_fileres in 35488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *ar\ archive\ import\ library*) # definitely import 35498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar win32_libid_type="x86 archive import" 35508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *ar\ archive*) # could be an import, or static 35528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. 35538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | 35548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then 35558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$1" func_convert_file_msys_to_w32 35568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | 35578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -n -e ' 35588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 1,100{ 35598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar / I /{ 35608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s,.*,import, 35618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p 35628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar q 35638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 35648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar }'` 35658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $win32_nmres in 35668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar import*) win32_libid_type="x86 archive import";; 35678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) win32_libid_type="x86 archive static";; 35688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 35698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 35708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *DLL*) 35728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar win32_libid_type="x86 DLL" 35738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *executable*) # but shell scripts are "executable" too... 35758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $win32_fileres in 35768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *MS\ Windows\ PE\ Intel*) 35778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar win32_libid_type="x86 DLL" 35788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 35808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 35818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 35828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$win32_libid_type" 35838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 35848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 35858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_cygming_dll_for_implib ARG 35868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 35878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Platform-specific function to extract the 35888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# name of the DLL associated with the specified 35898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# import library ARG. 35908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Invoked by eval'ing the libtool variable 35918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $sharedlib_from_linklib_cmd 35928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Result is available in the variable 35938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $sharedlib_from_linklib_result 35948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_cygming_dll_for_implib () 35958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 35968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 35978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` 35988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 35998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 36008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs 36018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 36028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The is the core of a fallback implementation of a 36038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# platform-specific function to extract the name of the 36048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# DLL associated with the specified import library LIBNAME. 36058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 36068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# SECTION_NAME is either .idata$6 or .idata$7, depending 36078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# on the platform and compiler that created the implib. 36088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 36098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Echos the name of the DLL associated with the 36108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# specified import library. 36118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_cygming_dll_for_implib_fallback_core () 36128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 36138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 36148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` 36158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $OBJDUMP -s --section "$1" "$2" 2>/dev/null | 36168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED '/^Contents of section '"$match_literal"':/{ 36178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Place marker at beginning of archive member dllname section 36188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/.*/====MARK====/ 36198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p 36208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar d 36218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 36228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # These lines can sometimes be longer than 43 characters, but 36238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # are always uninteresting 36248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /:[ ]*file format pe[i]\{,1\}-/d 36258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^In archive [^:]*:/d 36268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Ensure marker is printed 36278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^====MARK====/p 36288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove all lines with less than 43 characters 36298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^.\{43\}/!d 36308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # From remaining lines, remove first 43 characters 36318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^.\{43\}//' | 36328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -n ' 36338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Join marker and all lines until next marker into a single line 36348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /^====MARK====/ b para 36358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar H 36368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ b para 36378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar b 36388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar :para 36398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar x 36408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/\n//g 36418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove the marker 36428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/^====MARK====// 36438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove trailing dots and whitespace 36448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar s/[\. \t]*$// 36458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Print 36468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /./p' | 36478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # we now have a list, one entry per line, of the stringified 36488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # contents of the appropriate section of all members of the 36498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # archive which possess that section. Heuristic: eliminate 36508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # all those which have a first or second character that is 36518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # a '.' (that is, objdump's representation of an unprintable 36528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # character.) This should work for all archives with less than 36538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 0x302f exports -- but will fail for DLLs whose name actually 36548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # begins with a literal '.' or a single character followed by 36558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # a '.'. 36568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 36578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Of those that remain, print the first one. 36588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -e '/^\./d;/^.\./d;q' 36598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 36608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 36618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_cygming_gnu_implib_p ARG 36628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This predicate returns with zero status (TRUE) if 36638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ARG is a GNU/binutils-style import library. Returns 36648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# with nonzero status (FALSE) otherwise. 36658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_cygming_gnu_implib_p () 36668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 36678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 36688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$1" func_convert_file_msys_to_w32 36698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` 36708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$func_cygming_gnu_implib_tmp" 36718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 36728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 36738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_cygming_ms_implib_p ARG 36748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This predicate returns with zero status (TRUE) if 36758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ARG is an MS-style import library. Returns 36768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# with nonzero status (FALSE) otherwise. 36778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_cygming_ms_implib_p () 36788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 36798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 36808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$1" func_convert_file_msys_to_w32 36818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` 36828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$func_cygming_ms_implib_tmp" 36838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 36848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 36858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_cygming_dll_for_implib_fallback ARG 36868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Platform-specific function to extract the 36878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# name of the DLL associated with the specified 36888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# import library ARG. 36898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 36908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This fallback implementation is for use when $DLLTOOL 36918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# does not support the --identify-strict option. 36928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Invoked by eval'ing the libtool variable 36938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $sharedlib_from_linklib_cmd 36948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Result is available in the variable 36958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $sharedlib_from_linklib_result 36968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_cygming_dll_for_implib_fallback () 36978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 36988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 36998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_cygming_gnu_implib_p "$1" ; then 37008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # binutils import library 37018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` 37028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif func_cygming_ms_implib_p "$1" ; then 37038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # ms-generated import library 37048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` 37058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 37068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # unknown 37078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sharedlib_from_linklib_result="" 37088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 37098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 37108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 37118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 37128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_extract_an_archive dir oldlib 37138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_extract_an_archive () 37148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 37158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 37168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar f_ex_an_ar_dir="$1"; shift 37178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar f_ex_an_ar_oldlib="$1" 37188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$lock_old_archive_extraction" = yes; then 37198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lockfile=$f_ex_an_ar_oldlib.lock 37208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do 37218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_echo "Waiting for $lockfile to be removed" 37228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sleep 2 37238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 37248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 37258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 37268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 'stat=$?; rm -f "$lockfile"; exit $stat' 37278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$lock_old_archive_extraction" = yes; then 37288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || rm -f "$lockfile" 37298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 37308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 37318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 37328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 37338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 37348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 37358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 37368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 37378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 37388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_extract_archives gentop oldlib ... 37398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_extract_archives () 37408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 37418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 37428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_gentop="$1"; shift 37438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_oldlibs=${1+"$@"} 37448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_oldobjs="" 37458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_xlib="" 37468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_xabs="" 37478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_xdir="" 37488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 37498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for my_xlib in $my_oldlibs; do 37508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Extract the objects. 37518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $my_xlib in 37528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 37538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) my_xabs=`pwd`"/$my_xlib" ;; 37548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 37558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$my_xlib" 37568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_xlib="$func_basename_result" 37578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_xlib_u=$my_xlib 37588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while :; do 37598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $extracted_archives " in 37608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $my_xlib_u "*) 37618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $extracted_serial + 1 37628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar extracted_serial=$func_arith_result 37638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_xlib_u=lt$extracted_serial-$my_xlib ;; 37648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) break ;; 37658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 37668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 37678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar extracted_archives="$extracted_archives $my_xlib_u" 37688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_xdir="$my_gentop/$my_xlib_u" 37698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 37708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mkdir_p "$my_xdir" 37718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 37728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 37738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-darwin*) 37748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "Extracting $my_xabs" 37758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do not bother doing anything if just a dry run 37768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 37778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_orig_dir=`pwd` 37788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cd $my_xdir || exit $? 37798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_archive=$my_xabs 37808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_curdir=`pwd` 37818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_base_archive=`basename "$darwin_archive"` 37828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` 37838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$darwin_arches"; then 37848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` 37858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_arch= 37868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" 37878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for darwin_arch in $darwin_arches ; do 37888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 37898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 37908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 37918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_an_archive "`pwd`" "${darwin_base_archive}" 37928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cd "$darwin_curdir" 37938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 37948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # $darwin_arches 37958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ## Okay now we've a bunch of thin objects, gotta fatten them up :) 37968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` 37978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_file= 37988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_files= 37998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for darwin_file in $darwin_filelist; do 38008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` 38018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $LIPO -create -output "$darwin_file" $darwin_files 38028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # $darwin_filelist 38038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM -rf unfat-$$ 38048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cd "$darwin_orig_dir" 38058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 38068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cd $darwin_orig_dir 38078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_an_archive "$my_xdir" "$my_xabs" 38088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # $darwin_arches 38098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } # !$opt_dry_run 38108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 38118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 38128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_an_archive "$my_xdir" "$my_xabs" 38138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 38148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 38158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` 38168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 38178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_archives_result="$my_oldobjs" 38198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 38208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_emit_wrapper [arg=no] 38238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 38248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Emit a libtool wrapper script on stdout. 38258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Don't directly open a file because we may want to 38268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# incorporate the script contents within a cygwin/mingw 38278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# wrapper executable. Must ONLY be called from within 38288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mode_link because it depends on a number of variables 38298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# set therein. 38308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 38318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR 38328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# variable will take. If 'yes', then the emitted script 38338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# will assume that the directory in which it is stored is 38348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# the $objdir directory. This is a cygwin/mingw-specific 38358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# behavior. 38368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_emit_wrapper () 38378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 38388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_emit_wrapper_arg1=${1-no} 38398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 38418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#! $SHELL 38428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $output - temporary wrapper script for $objdir/$outputname 38448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 38458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 38468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The $output program cannot be directly executed until all the libtool 38478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# libraries that it depends on are installed. 38488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 38498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This wrapper script should never be moved out of the build directory. 38508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# If it is, it will not operate correctly. 38518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Sed substitution that helps us do robust quoting. It backslashifies 38538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# metacharacters that are still active within double-quoted strings. 38548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarsed_quote_subst='$sed_quote_subst' 38558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Be Bourne compatible 38578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then 38588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar emulate sh 38598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar NULLCMD=: 38608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which 38618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # is contrary to our usage. Disable this feature. 38628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar alias -g '\${1+\"\$@\"}'='\"\$@\"' 38638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar setopt NO_GLOB_SUBST 38648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarelse 38658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac 38668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfi 38678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarBIN_SH=xpg4; export BIN_SH # for Tru64 38688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarDUALCASE=1; export DUALCASE # for MKS sh 38698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The HP-UX ksh and POSIX shell print the target directory to stdout 38718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# if CDPATH is set. 38728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 38738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarrelink_command=\"$relink_command\" 38758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# This environment variable determines our operation mode. 38778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarif test \"\$libtool_install_magic\" = \"$magic\"; then 38788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # install mode needs the following variables: 38798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar generated_by_libtool_version='$macro_version' 38808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar notinst_deplibs='$notinst_deplibs' 38818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarelse 38828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # When we are sourced in execute mode, \$file and \$ECHO are already set. 38838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test \"\$libtool_execute_magic\" != \"$magic\"; then 38848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=\"\$0\"" 38858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` 38878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 38888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# A function that is used when there is no print builtin or printf. 38908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_fallback_echo () 38918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 38928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval 'cat <<_LTECHO_EOF 38938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar\$1 38948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar_LTECHO_EOF' 38958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 38968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ECHO=\"$qECHO\" 38978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 38988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 38998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Very basic option parsing. These options are (a) specific to 39008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# the libtool wrapper, (b) are identical between the wrapper 39018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# /script/ and the wrapper /executable/ which is used only on 39028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# windows platforms, and (c) all begin with the string "--lt-" 39038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# (application programs are unlikely to have options which match 39048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# this pattern). 39058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 39068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# There are only two supported options: --lt-debug and 39078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# --lt-dump-script. There is, deliberately, no --lt-help. 39088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 39098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The first argument to this parsing function should be the 39108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# script's $0 value, followed by "$@". 39118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_option_debug= 39128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_parse_lt_options () 39138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 39148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_script_arg0=\$0 39158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 39168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lt_opt 39178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 39188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case \"\$lt_opt\" in 39198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --lt-debug) lt_option_debug=1 ;; 39208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --lt-dump-script) 39218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` 39228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. 39238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` 39248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat \"\$lt_dump_D/\$lt_dump_F\" 39258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit 0 39268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 39278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --lt-*) 39288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 39298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit 1 39308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 39318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 39328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 39338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 39348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Print the debug banner immediately: 39358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n \"\$lt_option_debug\"; then 39368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 39378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 39388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 39398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 39408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Used when --lt-debug. Prints its arguments to stdout 39418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# (redirection is the responsibility of the caller) 39428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_lt_dump_args () 39438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 39448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_dump_args_N=1; 39458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lt_arg 39468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 39478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" 39488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` 39498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 39508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 39518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 39528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Core function for launching the target application 39538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_exec_program_core () 39548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 39558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 39568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 39578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Backslashes separate directories on plain windows 39588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-mingw | *-*-os2* | *-cegcc*) 39598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 39608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n \"\$lt_option_debug\"; then 39618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 39628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lt_dump_args \${1+\"\$@\"} 1>&2 39638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 39648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 39658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 39668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 39678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 39688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 39698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 39708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n \"\$lt_option_debug\"; then 39718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 39728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lt_dump_args \${1+\"\$@\"} 1>&2 39738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 39748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exec \"\$progdir/\$program\" \${1+\"\$@\"} 39758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 39768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 39778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 39788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 39798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 39808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit 1 39818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 39828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 39838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# A function to encapsulate launching the target application 39848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Strips options in the --lt-* namespace from \$@ and 39858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# launches target application with the remaining arguments. 39868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_exec_program () 39878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 39888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case \" \$* \" in 39898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *\\ --lt-*) 39908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lt_wr_arg 39918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 39928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case \$lt_wr_arg in 39938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar --lt-*) ;; 39948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; 39958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 39968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 39978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done ;; 39988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 39998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_exec_program_core \${1+\"\$@\"} 40008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 40018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Parse options 40038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_parse_lt_options \"\$0\" \${1+\"\$@\"} 40048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Find the directory that this script lives in. 40068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` 40078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test \"x\$thisdir\" = \"x\$file\" && thisdir=. 40088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Follow symbolic links until we get to the real thisdir. 40108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` 40118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while test -n \"\$file\"; do 40128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` 40138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If there was a directory component, then change thisdir. 40158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test \"x\$destdir\" != \"x\$file\"; then 40168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case \"\$destdir\" in 40178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 40188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) thisdir=\"\$thisdir/\$destdir\" ;; 40198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 40208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 40218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` 40238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` 40248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 40258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Usually 'no', except on cygwin/mingw when embedded into 40278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the cwrapper. 40288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 40298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then 40308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # special case for '.' 40318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test \"\$thisdir\" = \".\"; then 40328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar thisdir=\`pwd\` 40338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 40348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # remove .libs from thisdir 40358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case \"\$thisdir\" in 40368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; 40378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $objdir ) thisdir=. ;; 40388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 40398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 40408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Try to get the absolute directory name. 40428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir=\`cd \"\$thisdir\" && pwd\` 40438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n \"\$absdir\" && thisdir=\"\$absdir\" 40448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 40458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$fast_install" = yes; then 40478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 40488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar program=lt-'$outputname'$exeext 40498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar progdir=\"\$thisdir/$objdir\" 40508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -f \"\$progdir/\$program\" || 40528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 40538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test \"X\$file\" != \"X\$progdir/\$program\"; }; then 40548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=\"\$\$-\$program\" 40568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -d \"\$progdir\"; then 40588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MKDIR \"\$progdir\" 40598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 40608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM \"\$progdir/\$file\" 40618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi" 40628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 40648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # relink executable if necessary 40668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n \"\$relink_command\"; then 40678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if relink_command_output=\`eval \$relink_command 2>&1\`; then : 40688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 40698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO \"\$relink_command_output\" >&2 40708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM \"\$progdir/\$file\" 40718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit 1 40728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 40738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 40748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 40768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { $RM \"\$progdir/\$program\"; 40778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } 40788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM \"\$progdir/\$file\" 40798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi" 40808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 40818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 40828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar program='$outputname' 40838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar progdir=\"\$thisdir/$objdir\" 40848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 40858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 40868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 40888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f \"\$progdir/\$program\"; then" 40908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 40918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # fixup the dll searchpath if we need to. 40928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 40938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Fix the DLL searchpath if we need to. Do this before prepending 40948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # to shlibpath, because on Windows, both are PATH and uninstalled 40958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # libraries must come first. 40968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dllsearchpath"; then 40978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 40988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add the dll search path components to the executable PATH 40998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar PATH=$dllsearchpath:\$PATH 41008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 41018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 41028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Export our shlibpath_var if we have one. 41048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 41058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 41068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add our own library path to $shlibpath_var 41078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 41088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Some systems cannot cope with colon-terminated $shlibpath_var 41108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The second colon is a workaround for a bug in BeOS R4 sed 41118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` 41128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export $shlibpath_var 41148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 41158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 41168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "\ 41188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test \"\$libtool_execute_magic\" != \"$magic\"; then 41198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Run the actual program with our arguments. 41208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_exec_program \${1+\"\$@\"} 41218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 41228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 41238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The program doesn't exist. 41248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 41258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 41268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 41278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit 1 41288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 41298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfi\ 41308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar" 41318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 41328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_emit_cwrapperexe_src 41358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# emit the source code for a wrapper executable on stdout 41368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Must ONLY be called from within func_mode_link because 41378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# it depends on a number of variable set therein. 41388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_emit_cwrapperexe_src () 41398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 41408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 41418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 41438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 41448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar The $output program cannot be directly executed until all the libtool 41468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libraries that it depends on are installed. 41478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar This wrapper executable should never be moved out of the build directory. 41498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar If it is, it will not operate correctly. 41508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar*/ 41518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 41528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 41538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifdef _MSC_VER 41548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define _CRT_SECURE_NO_DEPRECATE 1 41558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 41568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <stdio.h> 41578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <stdlib.h> 41588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifdef _MSC_VER 41598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# include <direct.h> 41608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# include <process.h> 41618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# include <io.h> 41628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else 41638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# include <unistd.h> 41648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# include <stdint.h> 41658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ifdef __CYGWIN__ 41668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# include <io.h> 41678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# endif 41688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 41698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <malloc.h> 41708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <stdarg.h> 41718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <assert.h> 41728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <string.h> 41738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <ctype.h> 41748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <errno.h> 41758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <fcntl.h> 41768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#include <sys/stat.h> 41778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* declarations of non-ANSI functions */ 41798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined(__MINGW32__) 41808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ifdef __STRICT_ANSI__ 41818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint _putenv (const char *); 41828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# endif 41838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#elif defined(__CYGWIN__) 41848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ifdef __STRICT_ANSI__ 41858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar *realpath (const char *, char *); 41868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint putenv (char *); 41878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint setenv (const char *, const char *, int); 41888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# endif 41898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* #elif defined (other platforms) ... */ 41908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 41918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 41928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* portability defines, excluding path handling macros */ 41938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined(_MSC_VER) 41948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define setmode _setmode 41958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define stat _stat 41968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define chmod _chmod 41978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define getcwd _getcwd 41988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define putenv _putenv 41998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define S_IXUSR _S_IEXEC 42008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ifndef _INTPTR_T_DEFINED 42018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define _INTPTR_T_DEFINED 42028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define intptr_t int 42038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# endif 42048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#elif defined(__MINGW32__) 42058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define setmode _setmode 42068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define stat _stat 42078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define chmod _chmod 42088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define getcwd _getcwd 42098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define putenv _putenv 42108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#elif defined(__CYGWIN__) 42118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define HAVE_SETENV 42128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define FOPEN_WB "wb" 42138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* #elif defined (other platforms) ... */ 42148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined(PATH_MAX) 42178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define LT_PATHMAX PATH_MAX 42188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#elif defined(MAXPATHLEN) 42198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define LT_PATHMAX MAXPATHLEN 42208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else 42218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define LT_PATHMAX 1024 42228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef S_IXOTH 42258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define S_IXOTH 0 42268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef S_IXGRP 42288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define S_IXGRP 0 42298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* path handling portability macros */ 42328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef DIR_SEPARATOR 42338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define DIR_SEPARATOR '/' 42348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define PATH_SEPARATOR ':' 42358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 42388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar defined (__OS2__) 42398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define HAVE_DOS_BASED_FILE_SYSTEM 42408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define FOPEN_WB "wb" 42418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ifndef DIR_SEPARATOR_2 42428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define DIR_SEPARATOR_2 '\\' 42438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# endif 42448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ifndef PATH_SEPARATOR_2 42458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define PATH_SEPARATOR_2 ';' 42468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# endif 42478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef DIR_SEPARATOR_2 42508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 42518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else /* DIR_SEPARATOR_2 */ 42528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define IS_DIR_SEPARATOR(ch) \ 42538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 42548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif /* DIR_SEPARATOR_2 */ 42558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef PATH_SEPARATOR_2 42578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 42588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else /* PATH_SEPARATOR_2 */ 42598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 42608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif /* PATH_SEPARATOR_2 */ 42618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef FOPEN_WB 42638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define FOPEN_WB "w" 42648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef _O_BINARY 42668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# define _O_BINARY 0 42678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 42708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#define XFREE(stale) do { \ 42718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (stale) { free ((void *) stale); stale = 0; } \ 42728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} while (0) 42738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined(LT_DEBUGWRAPPER) 42758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic int lt_debug = 1; 42768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else 42778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic int lt_debug = 0; 42788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 42798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ 42818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 42828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid *xmalloc (size_t num); 42838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar *xstrdup (const char *string); 42848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char *base_name (const char *name); 42858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar *find_executable (const char *wrapper); 42868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar *chase_symlinks (const char *pathspec); 42878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint make_executable (const char *path); 42888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint check_executable (const char *path); 42898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar *strendzap (char *str, const char *pat); 42908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid lt_debugprintf (const char *file, int line, const char *fmt, ...); 42918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid lt_fatal (const char *file, int line, const char *message, ...); 42928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const char *nonnull (const char *s); 42938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const char *nonempty (const char *s); 42948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid lt_setenv (const char *name, const char *value); 42958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar *lt_extend_str (const char *orig_value, const char *add, int to_end); 42968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid lt_update_exe_path (const char *name, const char *value); 42978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid lt_update_lib_path (const char *name, const char *value); 42988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar **prepare_spawn (char **argv); 42998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid lt_dump_script (FILE *f); 43008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 43038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvolatile const char * MAGIC_EXE = "$magic_exe"; 43048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * LIB_PATH_VARNAME = "$shlibpath_var"; 43058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 43088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path "$temp_rpath" 43098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 43108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * LIB_PATH_VALUE = "$func_to_host_path_result"; 43118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 43138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 43148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * LIB_PATH_VALUE = ""; 43158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 43178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dllsearchpath"; then 43198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_host_path "$dllsearchpath:" 43208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 43218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * EXE_PATH_VARNAME = "PATH"; 43228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * EXE_PATH_VALUE = "$func_to_host_path_result"; 43238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 43258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 43268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * EXE_PATH_VARNAME = ""; 43278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * EXE_PATH_VALUE = ""; 43288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 43308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$fast_install" = yes; then 43328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 43338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ 43348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 43368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 43378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ 43388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 43408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 43438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#define LTWRAPPER_OPTION_PREFIX "--lt-" 43458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; 43478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; 43488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; 43498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint 43518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarmain (int argc, char *argv[]) 43528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 43538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char **newargz; 43548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int newargc; 43558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *tmp_pathspec; 43568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *actual_cwrapper_path; 43578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *actual_cwrapper_name; 43588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *target_name; 43598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *lt_argv_zero; 43608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar intptr_t rval = 127; 43618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int i; 43638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar program_name = (char *) xstrdup (base_name (argv[0])); 43658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newargz = XMALLOC (char *, argc + 1); 43668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* very simple arg parsing; don't want to rely on getopt 43688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * also, copy all non cwrapper options to newargz, except 43698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * argz[0], which is handled differently 43708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar */ 43718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newargc=0; 43728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (i = 1; i < argc; i++) 43738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 43748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (strcmp (argv[i], dumpscript_opt) == 0) 43758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 43768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 43778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$host" in 43788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *mingw* | *cygwin* ) 43798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # make stdout use "unix" line endings 43808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo " setmode(1,_O_BINARY);" 43818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 43828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 43838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 43848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 43858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_dump_script (stdout); 43868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return 0; 43878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 43888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (strcmp (argv[i], debug_opt) == 0) 43898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 43908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debug = 1; 43918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue; 43928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 43938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (strcmp (argv[i], ltwrapper_option_prefix) == 0) 43948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 43958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX 43968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar namespace, but it is not one of the ones we know about and 43978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar have already dealt with, above (inluding dump-script), then 43988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar report an error. Otherwise, targets might begin to believe 43998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar they are allowed to use options in the LTWRAPPER_OPTION_PREFIX 44008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar namespace. The first time any user complains about this, we'll 44018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar need to make LTWRAPPER_OPTION_PREFIX a configure-time option 44028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar or a configure.ac-settable value. 44038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar */ 44048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_fatal (__FILE__, __LINE__, 44058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "unrecognized %s option: '%s'", 44068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ltwrapper_option_prefix, argv[i]); 44078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 44088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* otherwise ... */ 44098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newargz[++newargc] = xstrdup (argv[i]); 44108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 44118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newargz[++newargc] = NULL; 44128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 44148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 44158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* The GNU banner must be the first non-error debug message */ 44168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); 44178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 44188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 44198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); 44208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); 44218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = find_executable (argv[0]); 44238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (tmp_pathspec == NULL) 44248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); 44258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 44268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "(main) found exe (before symlink chase) at: %s\n", 44278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec); 44288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar actual_cwrapper_path = chase_symlinks (tmp_pathspec); 44308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 44318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "(main) found exe (after symlink chase) at: %s\n", 44328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar actual_cwrapper_path); 44338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (tmp_pathspec); 44348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); 44368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strendzap (actual_cwrapper_path, actual_cwrapper_name); 44378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* wrapper name transforms */ 44398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strendzap (actual_cwrapper_name, ".exe"); 44408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); 44418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (actual_cwrapper_name); 44428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar actual_cwrapper_name = tmp_pathspec; 44438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = 0; 44448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* target_name transforms -- use actual target program name; might have lt- prefix */ 44468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); 44478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strendzap (target_name, ".exe"); 44488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = lt_extend_str (target_name, ".exe", 1); 44498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (target_name); 44508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar target_name = tmp_pathspec; 44518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = 0; 44528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 44548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "(main) libtool target name: %s\n", 44558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar target_name); 44568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 44578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<EOF 44598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newargz[0] = 44608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XMALLOC (char, (strlen (actual_cwrapper_path) + 44618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); 44628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (newargz[0], actual_cwrapper_path); 44638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcat (newargz[0], "$objdir"); 44648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcat (newargz[0], "/"); 44658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 44668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 44688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* stop here, and copy so we don't have to do this twice */ 44698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = xstrdup (newargz[0]); 44708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ 44728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcat (newargz[0], actual_cwrapper_name); 44738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* DO want the lt- prefix here if it exists, so use target_name */ 44758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); 44768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (tmp_pathspec); 44778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = NULL; 44788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 44798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host_os in 44818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar mingw*) 44828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 44838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 44848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char* p; 44858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while ((p = strchr (newargz[0], '\\')) != NULL) 44868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 44878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p = '/'; 44888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 44898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while ((p = strchr (lt_argv_zero, '\\')) != NULL) 44908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 44918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p = '/'; 44928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 44938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 44948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 44958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 44968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 44978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 44988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 44998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (target_name); 45008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (actual_cwrapper_path); 45018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (actual_cwrapper_name); 45028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ 45048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_setenv ("DUALCASE", "1"); /* for MSK sh */ 45058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must 45068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) 45078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar because on Windows, both *_VARNAMEs are PATH but uninstalled 45088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libraries must come first. */ 45098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); 45108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); 45118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", 45138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonnull (lt_argv_zero)); 45148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (i = 0; i < newargc; i++) 45158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 45168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", 45178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar i, nonnull (newargz[i])); 45188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 45198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 45218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host_os in 45238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar mingw*) 45248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 45258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* execv doesn't actually work on mingw as expected on unix */ 45268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newargz = prepare_spawn (newargz); 45278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); 45288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (rval == -1) 45298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 45308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* failed to start process */ 45318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 45328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "(main) failed to launch target \"%s\": %s\n", 45338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_argv_zero, nonnull (strerror (errno))); 45348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return 127; 45358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 45368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return rval; 45378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 45388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 45398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 45408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 45418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar execv (lt_argv_zero, newargz); 45428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return rval; /* =127, but avoids unused variable warning */ 45438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 45448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 45458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 45468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 45488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 45498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid * 45518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarxmalloc (size_t num) 45528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 45538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar void *p = (void *) malloc (num); 45548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (!p) 45558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_fatal (__FILE__, __LINE__, "memory exhausted"); 45568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return p; 45588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 45598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar * 45618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarxstrdup (const char *string) 45628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 45638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return string ? strcpy ((char *) xmalloc (strlen (string) + 1), 45648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar string) : NULL; 45658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 45668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarconst char * 45688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbase_name (const char *name) 45698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 45708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *base; 45718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 45738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* Skip over the disk name in MSDOS pathnames. */ 45748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (isalpha ((unsigned char) name[0]) && name[1] == ':') 45758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name += 2; 45768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 45778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (base = name; *name; name++) 45798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (IS_DIR_SEPARATOR (*name)) 45808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar base = name + 1; 45818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return base; 45828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 45838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint 45858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcheck_executable (const char *path) 45868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 45878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar struct stat st; 45888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", 45908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonempty (path)); 45918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ((!path) || (!*path)) 45928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return 0; 45938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 45948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ((stat (path, &st) >= 0) 45958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) 45968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return 1; 45978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 45988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return 0; 45998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 46008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarint 46028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarmake_executable (const char *path) 46038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 46048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int rval = 0; 46058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar struct stat st; 46068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", 46088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonempty (path)); 46098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ((!path) || (!*path)) 46108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return 0; 46118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (stat (path, &st) >= 0) 46138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); 46158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 46168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return rval; 46178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 46188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* Searches for the full path of the wrapper. Returns 46208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newly allocated full path name if found, NULL otherwise 46218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar Does not chase symlinks, even on platforms that support them. 46228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar*/ 46238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar * 46248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfind_executable (const char *wrapper) 46258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 46268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int has_slash = 0; 46278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *p; 46288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *p_next; 46298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* static buffer for getcwd */ 46308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char tmp[LT_PATHMAX + 1]; 46318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int tmp_len; 46328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *concat_name; 46338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", 46358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonempty (wrapper)); 46368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ((wrapper == NULL) || (*wrapper == '\0')) 46388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return NULL; 46398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* Absolute path? */ 46418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 46428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') 46438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name = xstrdup (wrapper); 46458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (check_executable (concat_name)) 46468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return concat_name; 46478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (concat_name); 46488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 46498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 46508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 46528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (IS_DIR_SEPARATOR (wrapper[0])) 46538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name = xstrdup (wrapper); 46558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (check_executable (concat_name)) 46568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return concat_name; 46578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (concat_name); 46588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 46598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 46608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 46618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 46628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 46638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (p = wrapper; *p; p++) 46648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (*p == '/') 46658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar has_slash = 1; 46678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break; 46688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 46698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (!has_slash) 46708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* no slashes; search PATH */ 46728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *path = getenv ("PATH"); 46738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (path != NULL) 46748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (p = path; *p; p = p_next) 46768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *q; 46788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar size_t p_len; 46798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (q = p; *q; q++) 46808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (IS_PATH_SEPARATOR (*q)) 46818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break; 46828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p_len = q - p; 46838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p_next = (*q == '\0' ? q : q + 1); 46848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (p_len == 0) 46858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* empty path: current directory */ 46878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (getcwd (tmp, LT_PATHMAX) == NULL) 46888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 46898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonnull (strerror (errno))); 46908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_len = strlen (tmp); 46918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name = 46928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 46938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar memcpy (concat_name, tmp, tmp_len); 46948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name[tmp_len] = '/'; 46958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (concat_name + tmp_len + 1, wrapper); 46968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 46978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 46988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 46998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name = 47008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); 47018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar memcpy (concat_name, p, p_len); 47028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name[p_len] = '/'; 47038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (concat_name + p_len + 1, wrapper); 47048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (check_executable (concat_name)) 47068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return concat_name; 47078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (concat_name); 47088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* not found in PATH; assume curdir */ 47118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* Relative path | not found in path: prepend cwd */ 47138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (getcwd (tmp, LT_PATHMAX) == NULL) 47148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", 47158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonnull (strerror (errno))); 47168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_len = strlen (tmp); 47178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); 47188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar memcpy (concat_name, tmp, tmp_len); 47198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_name[tmp_len] = '/'; 47208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (concat_name + tmp_len + 1, wrapper); 47218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (check_executable (concat_name)) 47238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return concat_name; 47248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (concat_name); 47258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return NULL; 47268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 47278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar * 47298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchase_symlinks (const char *pathspec) 47308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 47318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifndef S_ISLNK 47328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return xstrdup (pathspec); 47338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else 47348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char buf[LT_PATHMAX]; 47358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar struct stat s; 47368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *tmp_pathspec = xstrdup (pathspec); 47378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *p; 47388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int has_symlinks = 0; 47398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while (strlen (tmp_pathspec) && !has_symlinks) 47408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 47418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 47428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "checking path component for symlinks: %s\n", 47438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec); 47448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (lstat (tmp_pathspec, &s) == 0) 47458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 47468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (S_ISLNK (s.st_mode) != 0) 47478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 47488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar has_symlinks = 1; 47498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break; 47508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* search backwards for last DIR_SEPARATOR */ 47538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p = tmp_pathspec + strlen (tmp_pathspec) - 1; 47548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 47558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p--; 47568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) 47578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 47588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* no more DIR_SEPARATORS left */ 47598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break; 47608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p = '\0'; 47628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 47648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 47658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_fatal (__FILE__, __LINE__, 47668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "error accessing file \"%s\": %s", 47678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec, nonnull (strerror (errno))); 47688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (tmp_pathspec); 47718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (!has_symlinks) 47738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 47748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return xstrdup (pathspec); 47758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_pathspec = realpath (pathspec, buf); 47788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (tmp_pathspec == 0) 47798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 47808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_fatal (__FILE__, __LINE__, 47818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "could not follow symlinks for %s", pathspec); 47828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 47838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return xstrdup (tmp_pathspec); 47848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 47858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 47868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar * 47888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstrendzap (char *str, const char *pat) 47898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 47908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar size_t len, patlen; 47918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar assert (str != NULL); 47938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar assert (pat != NULL); 47948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len = strlen (str); 47968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar patlen = strlen (pat); 47978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 47988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (patlen <= len) 47998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar str += len - patlen; 48018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (strcmp (str, pat) == 0) 48028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *str = '\0'; 48038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 48048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return str; 48058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 48068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid 48088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_debugprintf (const char *file, int line, const char *fmt, ...) 48098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 48108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar va_list args; 48118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (lt_debug) 48128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); 48148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar va_start (args, fmt); 48158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar (void) vfprintf (stderr, fmt, args); 48168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar va_end (args); 48178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 48188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 48198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic void 48218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_error_core (int exit_status, const char *file, 48228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int line, const char *mode, 48238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *message, va_list ap) 48248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 48258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); 48268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar vfprintf (stderr, message, ap); 48278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fprintf (stderr, ".\n"); 48288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (exit_status >= 0) 48308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit (exit_status); 48318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 48328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid 48348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_fatal (const char *file, int line, const char *message, ...) 48358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 48368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar va_list ap; 48378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar va_start (ap, message); 48388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); 48398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar va_end (ap); 48408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 48418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const char * 48438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarnonnull (const char *s) 48448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 48458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return s ? s : "(null)"; 48468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 48478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarstatic const char * 48498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarnonempty (const char *s) 48508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 48518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return (s && !*s) ? "(empty)" : nonnull (s); 48528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 48538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid 48558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_setenv (const char *name, const char *value) 48568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 48578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 48588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "(lt_setenv) setting '%s' to '%s'\n", 48598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonnull (name), nonnull (value)); 48608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#ifdef HAVE_SETENV 48628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* always make a copy, for consistency with !HAVE_SETENV */ 48638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *str = xstrdup (value); 48648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar setenv (name, str, 1); 48658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#else 48668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int len = strlen (name) + 1 + strlen (value) + 1; 48678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *str = XMALLOC (char, len); 48688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sprintf (str, "%s=%s", name, value); 48698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (putenv (str) != EXIT_SUCCESS) 48708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (str); 48728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 48738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#endif 48748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 48758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 48768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 48778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar * 48788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_extend_str (const char *orig_value, const char *add, int to_end) 48798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 48808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *new_value; 48818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (orig_value && *orig_value) 48828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int orig_value_len = strlen (orig_value); 48848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int add_len = strlen (add); 48858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_value = XMALLOC (char, add_len + orig_value_len + 1); 48868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (to_end) 48878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (new_value, orig_value); 48898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (new_value + orig_value_len, add); 48908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 48918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 48928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (new_value, add); 48948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar strcpy (new_value + add_len, orig_value); 48958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 48968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 48978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 48988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 48998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_value = xstrdup (add); 49008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 49018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return new_value; 49028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 49038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid 49058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_update_exe_path (const char *name, const char *value) 49068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 49078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 49088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", 49098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonnull (name), nonnull (value)); 49108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (name && *name && value && *value) 49128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 49138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *new_value = lt_extend_str (getenv (name), value, 0); 49148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* some systems can't cope with a ':'-terminated path #' */ 49158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int len = strlen (new_value); 49168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) 49178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 49188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_value[len-1] = '\0'; 49198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 49208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_setenv (name, new_value); 49218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (new_value); 49228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 49238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 49248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid 49268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlt_update_lib_path (const char *name, const char *value) 49278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 49288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_debugprintf (__FILE__, __LINE__, 49298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", 49308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonnull (name), nonnull (value)); 49318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (name && *name && value && *value) 49338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 49348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *new_value = lt_extend_str (getenv (name), value, 0); 49358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_setenv (name, new_value); 49368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar XFREE (new_value); 49378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 49388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 49398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 49418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host_os in 49428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar mingw*) 49438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 49448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar/* Prepares an argument vector before calling spawn(). 49468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar Note that spawn() does not by itself call the command interpreter 49478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : 49488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 49498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar GetVersionEx(&v); 49508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar v.dwPlatformId == VER_PLATFORM_WIN32_NT; 49518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar }) ? "cmd.exe" : "command.com"). 49528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar Instead it simply concatenates the arguments, separated by ' ', and calls 49538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar CreateProcess(). We must quote the arguments since Win32 CreateProcess() 49548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a 49558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar special way: 49568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar - Space and tab are interpreted as delimiters. They are not treated as 49578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar delimiters if they are surrounded by double quotes: "...". 49588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar - Unescaped double quotes are removed from the input. Their only effect is 49598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar that within double quotes, space and tab are treated like normal 49608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar characters. 49618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar - Backslashes not followed by double quotes are not special. 49628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar - But 2*n+1 backslashes followed by a double quote become 49638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar n backslashes followed by a double quote (n >= 0): 49648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \" -> " 49658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \\\" -> \" 49668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar \\\\\" -> \\" 49678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar */ 49688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" 49698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" 49708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarchar ** 49718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarprepare_spawn (char **argv) 49728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 49738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar size_t argc; 49748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char **new_argv; 49758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar size_t i; 49768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* Count number of arguments. */ 49788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (argc = 0; argv[argc] != NULL; argc++) 49798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ; 49808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* Allocate new argument vector. */ 49828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_argv = XMALLOC (char *, argc + 1); 49838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar /* Put quoted arguments into the new argument vector. */ 49858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (i = 0; i < argc; i++) 49868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 49878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *string = argv[i]; 49888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 49898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (string[0] == '\0') 49908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_argv[i] = xstrdup ("\"\""); 49918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) 49928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 49938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); 49948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar size_t length; 49958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar unsigned int backslashes; 49968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar const char *s; 49978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *quoted_string; 49988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char *p; 49998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar length = 0; 50018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar backslashes = 0; 50028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (quote_around) 50038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar length++; 50048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (s = string; *s != '\0'; s++) 50058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 50068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char c = *s; 50078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (c == '"') 50088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar length += backslashes + 1; 50098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar length++; 50108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (c == '\\') 50118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar backslashes++; 50128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 50138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar backslashes = 0; 50148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 50158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (quote_around) 50168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar length += backslashes + 1; 50178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar quoted_string = XMALLOC (char, length + 1); 50198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar p = quoted_string; 50218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar backslashes = 0; 50228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (quote_around) 50238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p++ = '"'; 50248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (s = string; *s != '\0'; s++) 50258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 50268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar char c = *s; 50278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (c == '"') 50288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 50298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar unsigned int j; 50308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (j = backslashes + 1; j > 0; j--) 50318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p++ = '\\'; 50328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 50338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p++ = c; 50348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (c == '\\') 50358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar backslashes++; 50368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 50378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar backslashes = 0; 50388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 50398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (quote_around) 50408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { 50418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar unsigned int j; 50428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for (j = backslashes; j > 0; j--) 50438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p++ = '\\'; 50448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p++ = '"'; 50458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 50468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *p = '\0'; 50478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_argv[i] = quoted_string; 50498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 50508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 50518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_argv[i] = (char *) string; 50528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 50538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_argv[argc] = NULL; 50548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar return new_argv; 50568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 50578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 50588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 50598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 50608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 50628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarvoid lt_dump_script (FILE* f) 50638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 50648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 50658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_emit_wrapper yes | 50668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -n -e ' 50678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwars/^\(.\{79\}\)\(..*\)/\1\ 50688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar\2/ 50698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarh 50708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwars/\([\\"]\)/\\\1/g 50718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwars/$/\\n/ 50728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwars/\([^\n]*\).*/ fputs ("\1", f);/p 50738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarg 50748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarD' 50758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat <<"EOF" 50768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 50778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 50788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 50798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# end: func_emit_cwrapperexe_src 50808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_win32_import_lib_p ARG 50828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# True if ARG is an import lib, as indicated by $file_magic_cmd 50838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_win32_import_lib_p () 50848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 50858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 50868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in 50878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *import*) : ;; 50888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) false ;; 50898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 50908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 50918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 50928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mode_link arg... 50938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mode_link () 50948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 50958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 50968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 50978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 50988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # It is impossible to link a dll without this setting, and 50998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # we shouldn't force the makefile maintainer to figure out 51008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # which system we are compiling for in order to pass an extra 51018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # flag for every libtool invocation. 51028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # allow_undefined=no 51038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 51048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FIXME: Unfortunately, there are problems with the above when trying 51058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # to make a dll which has undefined symbols, in which case not 51068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # even a static library is built. For now, we need to specify 51078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -no-undefined on the libtool link line when we can be certain 51088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # that all symbols are satisfied, otherwise we get a static library. 51098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar allow_undefined=yes 51108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 51118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 51128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar allow_undefined=yes 51138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 51148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 51158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libtool_args=$nonopt 51168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar base_compile="$nonopt $@" 51178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command=$nonopt 51188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_command=$nonopt 51198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 51208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_rpath= 51218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_rpath= 51228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_shlibpath= 51238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_shlibpath= 51248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar convenience= 51258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_convenience= 51268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs= 51278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_deplibs= 51288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compiler_flags= 51298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linker_flags= 51308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dllsearchpath= 51318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib_search_path=`pwd` 51328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar inst_prefix_dir= 51338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_inherited_linker_flags= 51348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 51358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar avoid_version=no 51368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar bindir= 51378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlfiles= 51388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefiles= 51398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlself=no 51408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_dynamic=no 51418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols= 51428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols_regex= 51438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar generated= 51448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobjs= 51458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ltlibs= 51468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar module=no 51478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar no_install=no 51488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objs= 51498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_objects= 51508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar precious_files_regex= 51518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prefer_static_libs=no 51528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar preload=no 51538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 51548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prevarg= 51558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar release= 51568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath= 51578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xrpath= 51588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar perm_rpath= 51598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar temp_rpath= 51608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar thread_safe=no 51618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar vinfo= 51628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar vinfo_number=no 51638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar weak_libs= 51648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar single_module="${wl}-single_module" 51658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_infer_tag $base_compile 51668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 51678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need to know -static, to get the right output filenames. 51688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg 51698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 51708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 51718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shared) 51728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$build_libtool_libs" != yes && \ 51738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_configuration "can not build a shared library" 51748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=no 51758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 51768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 51778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -all-static | -static | -static-libtool-libs) 51788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 51798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -all-static) 51808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 51818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "complete static linking is impossible in this configuration" 51828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 51838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$link_static_flag"; then 51848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlopen_self=$dlopen_self_static 51858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 51868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prefer_static_libs=yes 51878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 51888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -static) 51898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$pic_flag" && test -n "$link_static_flag"; then 51908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlopen_self=$dlopen_self_static 51918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 51928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prefer_static_libs=built 51938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 51948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -static-libtool-libs) 51958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$pic_flag" && test -n "$link_static_flag"; then 51968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlopen_self=$dlopen_self_static 51978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 51988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prefer_static_libs=yes 51998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 52018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 52028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=yes 52038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 52048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 52068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 52078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 52088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # See if our shared archives depend on static archives. 52098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$old_archive_from_new_cmds" && build_old_libs=yes 52108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 52118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Go through the arguments, transforming them on the way. 52128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while test "$#" -gt 0; do 52138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$1" 52148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 52158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg" 52168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar qarg=$func_quote_for_eval_unquoted_result 52178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libtool_args " $func_quote_for_eval_result" 52188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 52198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the previous option needs an argument, assign it. 52208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$prev"; then 52218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $prev in 52228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output) 52238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " @OUTPUT@" 52248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " @OUTPUT@" 52258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 52278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 52288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $prev in 52298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar bindir) 52308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar bindir="$arg" 52318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 52328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 52338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlfiles|dlprefiles) 52358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$preload" = no; then 52368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add the symbol object into the linking commands. 52378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " @SYMFILE@" 52388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " @SYMFILE@" 52398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar preload=yes 52408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 52418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 52428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la | *.lo) ;; # We handle these cases below. 52438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar force) 52448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$dlself" = no; then 52458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlself=needless 52468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_dynamic=yes 52478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 52488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 52498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 52508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar self) 52528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = dlprefiles; then 52538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlself=yes 52548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 52558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlself=yes 52568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 52578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlself=needless 52588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_dynamic=yes 52598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 52608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 52618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 52628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 52648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = dlfiles; then 52658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlfiles " $arg" 52668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 52678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlprefiles " $arg" 52688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 52698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 52708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 52718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 52738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar expsyms) 52758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols="$arg" 52768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -f "$arg" \ 52778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar || func_fatal_error "symbol file \`$arg' does not exist" 52788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 52798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 52808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar expsyms_regex) 52828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols_regex="$arg" 52838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 52848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 52858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar framework) 52878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 52888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-darwin*) 52898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$deplibs " in 52908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $qarg.ltframework "*) ;; 52918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append deplibs " $qarg.ltframework" # this is fixed later 52928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 52948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 52968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 52978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 52988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 52998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar inst_prefix) 53008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar inst_prefix_dir="$arg" 53018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 53028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 53038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 53048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objectlist) 53058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$arg"; then 53068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_arg=$arg 53078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar moreargs= 53088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for fil in `cat "$save_arg"` 53098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 53108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_append moreargs " $fil" 53118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg=$fil 53128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A libtool-controlled object. 53138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see that this really is a libtool object. 53158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_lalib_unsafe_p "$arg"; then 53168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_object= 53178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object= 53188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Read the .lo file 53208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$arg" 53218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$pic_object" || 53238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$non_pic_object" || 53248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$pic_object" = none && 53258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$non_pic_object" = none; then 53268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot find name of object for \`$arg'" 53278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Extract subdirectory from the argument. 53308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$arg" "/" "" 53318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xdir="$func_dirname_result" 53328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pic_object" != none; then 53348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Prepend the subdirectory the object is found in. 53358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_object="$xdir$pic_object" 53368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = dlfiles; then 53388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 53398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlfiles " $pic_object" 53408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 53418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 53428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 53438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If libtool objects are unsupported, then we need to preload. 53448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=dlprefiles 53458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # CHECK ME: I think I busted this. -Ossama 53498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = dlprefiles; then 53508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Preload the old-style object. 53518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlprefiles " $pic_object" 53528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 53538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A PIC object. 53568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $pic_object" 53578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$pic_object" 53588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Non-PIC object. 53618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$non_pic_object" != none; then 53628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Prepend the subdirectory the object is found in. 53638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object="$xdir$non_pic_object" 53648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A standard non-PIC object 53668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append non_pic_objects " $non_pic_object" 53678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$pic_object" || test "$pic_object" = none ; then 53688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$non_pic_object" 53698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 53718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the PIC object exists, use it instead. 53728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # $xdir was prepended to $pic_object above. 53738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object="$pic_object" 53748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append non_pic_objects " $non_pic_object" 53758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 53778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only an error if not doing a dry-run. 53788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_dry_run; then 53798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Extract subdirectory from the argument. 53808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$arg" "/" "" 53818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xdir="$func_dirname_result" 53828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 53838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lo2o "$arg" 53848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_object=$xdir$objdir/$func_lo2o_result 53858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object=$xdir$func_lo2o_result 53868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $pic_object" 53878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append non_pic_objects " $non_pic_object" 53888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 53898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$arg' is not a valid libtool object" 53908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 53938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 53948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "link input file \`$arg' does not exist" 53958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 53968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg=$save_arg 53978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 53988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 53998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar precious_regex) 54018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar precious_files_regex="$arg" 54028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar release) 54068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar release="-$arg" 54078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath | xrpath) 54118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need an absolute path. 54128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 54138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) ;; 54148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 54158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "only absolute run-paths are allowed" 54168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 54188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = rpath; then 54198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$rpath " in 54208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $arg "*) ;; 54218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append rpath " $arg" ;; 54228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 54238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 54248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$xrpath " in 54258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $arg "*) ;; 54268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append xrpath " $arg" ;; 54278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 54288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 54298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shrext) 54338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shrext_cmds="$arg" 54348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar weak) 54388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append weak_libs " $arg" 54398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xcclinker) 54438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append linker_flags " $qarg" 54448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $qarg" 54458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $qarg" 54478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $qarg" 54488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xcompiler) 54518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $qarg" 54528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $qarg" 54548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $qarg" 54558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xlinker) 54588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append linker_flags " $qarg" 54598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $wl$qarg" 54608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $wl$qarg" 54628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $wl$qarg" 54638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 54668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$prev=\"\$arg\"" 54678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 54688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 54718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # test -n "$prev" 54728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 54738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prevarg="$arg" 54748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 54758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 54768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -all-static) 54778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$link_static_flag"; then 54788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # See comment for -static flag below, for more details. 54798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $link_static_flag" 54808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $link_static_flag" 54818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 54828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 54858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -allow-undefined) 54868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FIXME: remove this flag sometime in the future. 54878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`-allow-undefined' must not be used because it is the default" 54888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 54908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -avoid-version) 54918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar avoid_version=yes 54928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 54958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -bindir) 54968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=bindir 54978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 54988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 54998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -dlopen) 55018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=dlfiles 55028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -dlpreopen) 55068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=dlprefiles 55078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -export-dynamic) 55118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_dynamic=yes 55128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -export-symbols | -export-symbols-regex) 55168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 55178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "more than one -exported-symbols argument is not allowed" 55188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 55198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$arg" = "X-export-symbols"; then 55208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=expsyms 55218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 55228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=expsyms_regex 55238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 55248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -framework) 55288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=framework 55298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -inst-prefix-dir) 55338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=inst_prefix 55348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 55388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # so, if we see these flags be careful not to treat them like -L 55398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L[A-Z][A-Z]*:*) 55408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $with_gcc/$host in 55418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar no/*-*-irix* | /*-*-irix*) 55428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $arg" 55438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $arg" 55448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 55468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 55498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) 55508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname "-L" '' "$arg" 55518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$func_stripname_result"; then 55528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$#" -gt 0; then 55538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "require no space between \`-L' and \`$1'" 55548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 55558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "need path for \`-L' option" 55568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 55578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 55588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$func_stripname_result" 55598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir=$func_resolve_sysroot_result 55608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need an absolute path. 55618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $dir in 55628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) ;; 55638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 55648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir=`cd "$dir" && pwd` 55658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$absdir" && \ 55668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot determine absolute directory name of \`$dir'" 55678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$absdir" 55688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 55708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$deplibs " in 55718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" -L$dir "* | *" $arg "*) 55728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Will only happen for absolute or sysroot arguments 55738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 55758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Preserve sysroot, but never include relative directories 55768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $dir in 55778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; 55788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append deplibs " -L$dir" ;; 55798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 55808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append lib_search_path " $dir" 55818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 55838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 55848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 55858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` 55868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case :$dllsearchpath: in 55878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *":$dir:"*) ;; 55888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ::) dllsearchpath=$dir;; 55898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append dllsearchpath ":$dir";; 55908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 55918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case :$dllsearchpath: in 55928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *":$testbindir:"*) ;; 55938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ::) dllsearchpath=$testbindir;; 55948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append dllsearchpath ":$testbindir";; 55958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 55968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 55978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 55988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 55998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -l*) 56028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 56038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 56048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) 56058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # These systems don't actually have a C or math library (as such) 56068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-os2*) 56098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # These systems don't actually have a C library (as such) 56108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$arg" = "X-lc" && continue 56118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 56138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do not include libc due to us having libc/libc_r. 56148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$arg" = "X-lc" && continue 56158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-rhapsody* | *-*-darwin1.[012]) 56178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Rhapsody C and math libraries are in the System framework 56188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append deplibs " System.ltframework" 56198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sco3.2v5* | *-*-sco5v6*) 56228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Causes problems with __ctype 56238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$arg" = "X-lc" && continue 56248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 56268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Compiler inserts libc in the correct place for threads to work 56278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$arg" = "X-lc" && continue 56288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 56308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "X$arg" = "X-lc_r"; then 56318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 56328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 56338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do not include libc_r directly, use -pthread flag. 56348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 56378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 56388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append deplibs " $arg" 56398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -module) 56438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar module=yes 56448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Tru64 UNIX uses -model [arg] to determine the layout of C++ 56488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # classes, name mangling, and exception handling. 56498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Darwin uses the -arch flag to determine output architecture. 56508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -model|-arch|-isysroot|--sysroot) 56518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $arg" 56528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $arg" 56538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $arg" 56548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=xcompiler 56558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ 56598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) 56608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $arg" 56618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $arg" 56628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $arg" 56638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$new_inherited_linker_flags " in 56648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $arg "*) ;; 56658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * ) func_append new_inherited_linker_flags " $arg" ;; 56668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 56678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -multi_module) 56718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar single_module="${wl}-multi_module" 56728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-fast-install) 56768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fast_install=no 56778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-install) 56818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 56828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) 56838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The PATH hackery in wrapper scripts is required on Windows 56848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # and Darwin in order for the loader to find any dlls it needs. 56858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-no-install' is ignored for $host" 56868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "assuming \`-no-fast-install' instead" 56878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fast_install=no 56888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) no_install=yes ;; 56908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 56918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -no-undefined) 56958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar allow_undefined=no 56968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 56978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 56988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 56998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -objectlist) 57008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=objectlist 57018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -o) prev=output ;; 57058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -precious-files-regex) 57078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=precious_regex 57088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -release) 57128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=release 57138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -rpath) 57178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=rpath 57188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -R) 57228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=xrpath 57238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -R*) 57278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-R' '' "$arg" 57288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir=$func_stripname_result 57298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need an absolute path. 57308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $dir in 57318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) ;; 57328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar =*) 57338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '=' '' "$dir" 57348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir=$lt_sysroot$func_stripname_result 57358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 57378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "only absolute run-paths are allowed" 57388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 57408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$xrpath " in 57418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $dir "*) ;; 57428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append xrpath " $dir" ;; 57438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 57448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shared) 57488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The effects of -shared are defined in a previous loop. 57498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -shrext) 57538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=shrext 57548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -static | -static-libtool-libs) 57588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The effects of -static are defined in a previous loop. 57598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We used to do the same as -all-static on platforms that 57608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # didn't have a PIC flag, but the assumption that the effects 57618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # would be equivalent was wrong. It would break on at least 57628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Digital Unix and AIX. 57638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -thread-safe) 57678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar thread_safe=yes 57688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -version-info) 57728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=vinfo 57738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -version-number) 57778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=vinfo 57788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar vinfo_number=yes 57798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -weak) 57838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=weak 57848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 57858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 57868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 57878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Wc,*) 57888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-Wc,' '' "$arg" 57898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar args=$func_stripname_result 57908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg= 57918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs="$IFS"; IFS=',' 57928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for flag in $args; do 57938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 57948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$flag" 57958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append arg " $func_quote_for_eval_result" 57968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $func_quote_for_eval_result" 57978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 57988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 57998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname ' ' '' "$arg" 58008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg=$func_stripname_result 58018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Wl,*) 58048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-Wl,' '' "$arg" 58058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar args=$func_stripname_result 58068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg= 58078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs="$IFS"; IFS=',' 58088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for flag in $args; do 58098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 58108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$flag" 58118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append arg " $wl$func_quote_for_eval_result" 58128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $wl$func_quote_for_eval_result" 58138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append linker_flags " $func_quote_for_eval_result" 58148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 58158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 58168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname ' ' '' "$arg" 58178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg=$func_stripname_result 58188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Xcompiler) 58218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=xcompiler 58228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 58238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -Xlinker) 58268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=xlinker 58278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 58288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -XCClinker) 58318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=xcclinker 58328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 58338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -msg_* for osf cc 58368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -msg_*) 58378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg" 58388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$func_quote_for_eval_result" 58398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Flags to be passed through unchanged, with rationale: 58428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -64, -mips[0-9] enable 64-bit mode for the SGI compiler 58438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -r[0-9][0-9]* specify processor for the SGI compiler 58448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler 58458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # +DA*, +DD* enable 64-bit mode for the HP compiler 58468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -q* compiler args for the IBM compiler 58478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -m*, -t[45]*, -txscale* architecture-specific flags for GCC 58488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -F/path path to uninstalled frameworks, gcc on darwin 58498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -p, -pg, --coverage, -fprofile-* profiling flags for GCC 58508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # @file GCC response files 58518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -tp=* Portland pgcc target processor selection 58528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # --sysroot=* for sysroot support 58538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization 58548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 58558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ 58568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -O*|-flto*|-fwhopr*|-fuse-linker-plugin) 58578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg" 58588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$func_quote_for_eval_result" 58598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $arg" 58608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $arg" 58618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $arg" 58628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 58638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Some other compiler flag. 58668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -* | +*) 58678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg" 58688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$func_quote_for_eval_result" 58698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.$objext) 58728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A standard object. 58738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append objs " $arg" 58748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 58758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) 58778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A libtool-controlled object. 58788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see that this really is a libtool object. 58808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_lalib_unsafe_p "$arg"; then 58818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_object= 58828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object= 58838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Read the .lo file 58858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$arg" 58868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$pic_object" || 58888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$non_pic_object" || 58898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$pic_object" = none && 58908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$non_pic_object" = none; then 58918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot find name of object for \`$arg'" 58928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 58938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Extract subdirectory from the argument. 58958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$arg" "/" "" 58968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xdir="$func_dirname_result" 58978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 58988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pic_object" != none; then 58998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Prepend the subdirectory the object is found in. 59008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_object="$xdir$pic_object" 59018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = dlfiles; then 59038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 59048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlfiles " $pic_object" 59058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 59068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 59078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 59088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If libtool objects are unsupported, then we need to preload. 59098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev=dlprefiles 59108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # CHECK ME: I think I busted this. -Ossama 59148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = dlprefiles; then 59158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Preload the old-style object. 59168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlprefiles " $pic_object" 59178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 59188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A PIC object. 59218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $pic_object" 59228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$pic_object" 59238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Non-PIC object. 59268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$non_pic_object" != none; then 59278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Prepend the subdirectory the object is found in. 59288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object="$xdir$non_pic_object" 59298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A standard non-PIC object 59318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append non_pic_objects " $non_pic_object" 59328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$pic_object" || test "$pic_object" = none ; then 59338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$non_pic_object" 59348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 59368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the PIC object exists, use it instead. 59378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # $xdir was prepended to $pic_object above. 59388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object="$pic_object" 59398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append non_pic_objects " $non_pic_object" 59408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 59428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only an error if not doing a dry-run. 59438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_dry_run; then 59448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Extract subdirectory from the argument. 59458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$arg" "/" "" 59468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xdir="$func_dirname_result" 59478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lo2o "$arg" 59498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pic_object=$xdir$objdir/$func_lo2o_result 59508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar non_pic_object=$xdir$func_lo2o_result 59518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $pic_object" 59528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append non_pic_objects " $non_pic_object" 59538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 59548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$arg' is not a valid libtool object" 59558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 59588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.$libext) 59608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # An archive. 59618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append deplibs " $arg" 59628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append old_deplibs " $arg" 59638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 59648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 59658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 59678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # A libtool-controlled library. 59688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$arg" 59708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$prev" = dlfiles; then 59718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This library was specified with -dlopen. 59728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlfiles " $func_resolve_sysroot_result" 59738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 59748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$prev" = dlprefiles; then 59758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The library was specified with -dlpreopen. 59768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlprefiles " $func_resolve_sysroot_result" 59778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prev= 59788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 59798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append deplibs " $func_resolve_sysroot_result" 59808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 59828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 59838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Some other compiler argument. 59858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 59868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Unknown arguments in both finalize_command and compile_command need 59878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # to be aesthetically quoted because they are evaled later. 59888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$arg" 59898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar arg="$func_quote_for_eval_result" 59908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 59918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac # arg 59928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 59938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now actually substitute the argument into the commands. 59948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$arg"; then 59958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $arg" 59968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $arg" 59978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 59988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # argument parsing loop 59998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$prev" && \ 60018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "the \`$prevarg' option requires an argument" 60028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 60048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval arg=\"$export_dynamic_flag_spec\" 60058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $arg" 60068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $arg" 60078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 60088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlibs= 60108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # calculate the name of the file, without its directory 60118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$output" 60128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar outputname="$func_basename_result" 60138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobjs_save="$libobjs" 60148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$shlibpath_var"; then 60168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # get the directories listed in $shlibpath_var 60178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` 60188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 60198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shlib_search_path= 60208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 60218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 60228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 60238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$output" "/" "" 60258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output_objdir="$func_dirname_result$objdir" 60268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output_objdir/" 60278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tool_output_objdir=$func_to_tool_file_result 60288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Create the object directory. 60298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mkdir_p "$output_objdir" 60308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Determine the type of output 60328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $output in 60338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar "") 60348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "you must specify an output file" 60358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 60368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.$libext) linkmode=oldlib ;; 60378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo | *.$objext) linkmode=obj ;; 60388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) linkmode=lib ;; 60398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) linkmode=prog ;; # Anything else should be a program. 60408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 60418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar specialdeplibs= 60438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libs= 60458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Find all interdependent deplibs by searching for libraries 60468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # that are linked more than once (e.g. -la -lb -la) 60478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $deplibs; do 60488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_preserve_dup_deps ; then 60498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$libs " in 60508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) func_append specialdeplibs " $deplib" ;; 60518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 60528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 60538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libs " $deplib" 60548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 60558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = lib; then 60578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libs="$predeps $libs $compiler_lib_search_path $postdeps" 60588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Compute libraries that are listed more than once in $predeps 60608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # $postdeps and mark them as special (i.e., whose duplicates are 60618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # not to be eliminated). 60628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pre_post_deps= 60638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_duplicate_compiler_generated_deps; then 60648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for pre_post_dep in $predeps $postdeps; do 60658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$pre_post_deps " in 60668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; 60678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 60688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append pre_post_deps " $pre_post_dep" 60698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 60708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 60718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pre_post_deps= 60728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 60738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs= 60758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdependency_libs= 60768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newlib_search_path= 60778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar need_relink=no # whether we're linking any uninstalled libtool libraries 60788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar notinst_deplibs= # not-installed libtool libraries 60798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar notinst_path= # paths that contain not-installed libtool libraries 60808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 60818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $linkmode in 60828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib) 60838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar passes="conv dlpreopen link" 60848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for file in $dlfiles $dlprefiles; do 60858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file in 60868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) ;; 60878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 60888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" 60898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 60908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 60918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 60928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 60938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prog) 60948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs= 60958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs= 60968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar alldeplibs=no 60978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdlfiles= 60988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdlprefiles= 60998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar passes="conv scan dlopen dlpreopen link" 61008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 61018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) passes="conv" 61028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 61038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 61048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 61058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for pass in $passes; do 61068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The preopen pass in lib mode reverses $deplibs; put it back here 61078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # so that -L comes before libs that need it for instance... 61088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "lib,link"; then 61098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ## FIXME: Find the place where the list is rebuilt in the wrong 61108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ## order, and fix it there properly 61118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_deplibs= 61128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $deplibs; do 61138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_deplibs="$deplib $tmp_deplibs" 61148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 61158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$tmp_deplibs" 61168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 61188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "lib,link" || 61198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$linkmode,$pass" = "prog,scan"; then 61208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libs="$deplibs" 61218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs= 61228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog; then 61248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $pass in 61258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlopen) libs="$dlfiles" ;; 61268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlpreopen) libs="$dlprefiles" ;; 61278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link) 61288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libs="$deplibs %DEPLIBS%" 61298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" 61308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 61318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 61328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "lib,dlpreopen"; then 61348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Collect and forward deplibs of preopened libtool libs 61358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $dlprefiles; do 61368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Ignore non-libtool-libs 61378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dependency_libs= 61388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$lib" 61398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $lib in 61408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) func_source "$func_resolve_sysroot_result" ;; 61418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 61428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 61438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Collect preopened libtool deplibs, except any this library 61448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # has declared as weak libs 61458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $dependency_libs; do 61468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$deplib" 61478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplib_base=$func_basename_result 61488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $weak_libs " in 61498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib_base "*) ;; 61508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append deplibs " $deplib" ;; 61518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 61528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 61538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 61548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libs="$dlprefiles" 61558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = dlopen; then 61578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Collect dlpreopened libraries 61588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_deplibs="$deplibs" 61598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs= 61608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 61628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $libs; do 61638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib= 61648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar found=no 61658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 61668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ 61678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) 61688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "prog,link"; then 61698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$deplib $compile_deplibs" 61708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$deplib $finalize_deplibs" 61718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 61728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " $deplib" 61738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = lib ; then 61748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$new_inherited_linker_flags " in 61758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) ;; 61768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * ) func_append new_inherited_linker_flags " $deplib" ;; 61778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 61788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 61818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 61828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -l*) 61838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" != lib && test "$linkmode" != prog; then 61848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-l' is ignored for archives/objects" 61858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 61868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-l' '' "$deplib" 61888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 61898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = lib; then 61908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" 61918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 61928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" 61938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 61948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for searchdir in $searchdirs; do 61958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for search_ext in .la $std_shrext .so .a; do 61968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Search the libtool library 61978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib="$searchdir/lib${name}${search_ext}" 61988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$lib"; then 61998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$search_ext" = ".la"; then 62008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar found=yes 62018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 62028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar found=no 62038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 2 62058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 62078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 62088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$found" != yes; then 62098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # deplib doesn't seem to be a libtool library 62108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "prog,link"; then 62118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$deplib $compile_deplibs" 62128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$deplib $finalize_deplibs" 62138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 62148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 62158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 62168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 62188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else # deplib is a libtool library 62198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 62208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need to do some special things here, and not later. 62218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 62228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $predeps $postdeps " in 62238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) 62248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_lalib_p "$lib"; then 62258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar library_names= 62268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_library= 62278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$lib" 62288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for l in $old_library $library_names; do 62298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ll="$l" 62308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 62318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$ll" = "X$old_library" ; then # only static version available 62328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar found=no 62338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$lib" "" "." 62348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ladir="$func_dirname_result" 62358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib=$ladir/$old_library 62368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "prog,link"; then 62378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$deplib $compile_deplibs" 62388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$deplib $finalize_deplibs" 62398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 62408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 62418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 62428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 62448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 62478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) ;; 62488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 62498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; # -l 62528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.ltframework) 62538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "prog,link"; then 62548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$deplib $compile_deplibs" 62558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$deplib $finalize_deplibs" 62568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 62578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 62588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = lib ; then 62598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$new_inherited_linker_flags " in 62608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) ;; 62618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * ) func_append new_inherited_linker_flags " $deplib" ;; 62628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 62638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 62668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 62678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) 62688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $linkmode in 62698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib) 62708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 62718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$pass" = conv && continue 62728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdependency_libs="$deplib $newdependency_libs" 62738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-L' '' "$deplib" 62748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$func_stripname_result" 62758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newlib_search_path " $func_resolve_sysroot_result" 62768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 62778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prog) 62788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = conv; then 62798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 62808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 62818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = scan; then 62838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 62848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 62858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$deplib $compile_deplibs" 62868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$deplib $finalize_deplibs" 62878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 62888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-L' '' "$deplib" 62898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$func_stripname_result" 62908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newlib_search_path " $func_resolve_sysroot_result" 62918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 62928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 62938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-L' is ignored for archives/objects" 62948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 62958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac # linkmode 62968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 62978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; # -L 62988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -R*) 62998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = link; then 63008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '-R' '' "$deplib" 63018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$func_stripname_result" 63028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir=$func_resolve_sysroot_result 63038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure the xrpath contains only unique directories. 63048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$xrpath " in 63058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $dir "*) ;; 63068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append xrpath " $dir" ;; 63078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 63088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 63108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 63118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 63138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$deplib" 63148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib=$func_resolve_sysroot_result 63158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.$libext) 63178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = conv; then 63188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 63198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 63208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $linkmode in 63228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib) 63238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Linking convenience modules into shared libraries is allowed, 63248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # but linking other static libraries is non-portable. 63258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $dlpreconveniencelibs " in 63268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) ;; 63278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 63288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar valid_a_lib=no 63298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplibs_check_method in 63308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar match_pattern*) 63318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $deplibs_check_method; shift 63328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 63338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ 63348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar | $EGREP "$match_pattern_regex" > /dev/null; then 63358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar valid_a_lib=yes 63368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pass_all) 63398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar valid_a_lib=yes 63408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 63428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$valid_a_lib" != yes; then 63438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 63448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: Trying to link with static lib archive $deplib." 63458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** I have the capability to make that library automatically link in when" 63468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** you link to this library. But I can only do this if you have a" 63478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** shared version of the library, which you do not appear to have" 63488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** because the file extensions .$libext of this argument makes me believe" 63498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** that it is just a static archive that I should not use here." 63508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 63518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 63528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: Linking the shared library $output against the" 63538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** static library $deplib is not portable!" 63548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 63558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 63588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 63598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prog) 63618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" != link; then 63628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 63638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 63648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$deplib $compile_deplibs" 63658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$deplib $finalize_deplibs" 63668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 63688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac # linkmode 63708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; # *.$libext 63718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo | *.$objext) 63728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = conv; then 63738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 63748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$linkmode" = prog; then 63758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 63768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If there is no dlopen support or we're linking statically, 63778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # we need to preload. 63788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " $deplib" 63798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$deplib $compile_deplibs" 63808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$deplib $finalize_deplibs" 63818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 63828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlfiles " $deplib" 63838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 63868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar %DEPLIBS%) 63888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar alldeplibs=yes 63898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 63908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 63918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac # case $deplib 63928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 63938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$found" = yes || test -f "$lib"; then : 63948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 63958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" 63968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 63978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 63988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see that this really is a libtool archive. 63998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lalib_unsafe_p "$lib" \ 64008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar || func_fatal_error "\`$lib' is not a valid libtool archive" 64018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$lib" "" "." 64038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ladir="$func_dirname_result" 64048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlname= 64068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlopen= 64078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlpreopen= 64088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir= 64098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar library_names= 64108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_library= 64118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar inherited_linker_flags= 64128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the library was installed with an old release of libtool, 64138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # it will not redefine variables installed, or shouldnotlink 64148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar installed=yes 64158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shouldnotlink=no 64168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar avoidtemprpath= 64178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Read the .la file 64208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source "$lib" 64218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Convert "-framework foo" to "foo.ltframework" 64238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$inherited_linker_flags"; then 64248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` 64258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do 64268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $new_inherited_linker_flags " in 64278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $tmp_inherited_linker_flag "*) ;; 64288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; 64298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 64308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 64318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 64338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "lib,link" || 64348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$linkmode,$pass" = "prog,scan" || 64358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { test "$linkmode" != prog && test "$linkmode" != lib; }; then 64368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$dlopen" && func_append dlfiles " $dlopen" 64378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" 64388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = conv; then 64418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only check for convenience libraries 64428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$lib $deplibs" 64438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$libdir"; then 64448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$old_library"; then 64458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot find name of link library for \`$lib'" 64468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # It is a libtool convenience library, so add in its objects. 64488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append convenience " $ladir/$objdir/$old_library" 64498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append old_convenience " $ladir/$objdir/$old_library" 64508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_libs= 64518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $dependency_libs; do 64528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 64538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_preserve_dup_deps ; then 64548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$tmp_libs " in 64558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) func_append specialdeplibs " $deplib" ;; 64568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 64578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append tmp_libs " $deplib" 64598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 64608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$linkmode" != prog && test "$linkmode" != lib; then 64618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$lib' is not a convenience library" 64628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 64648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # $pass = conv 64658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Get the name of the library we link against. 64688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linklib= 64698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$old_library" && 64708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { test "$prefer_static_libs" = yes || 64718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$prefer_static_libs,$installed" = "built,no"; }; then 64728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linklib=$old_library 64738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 64748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for l in $old_library $library_names; do 64758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linklib="$l" 64768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 64778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$linklib"; then 64798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot find name of link library for \`$lib'" 64808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 64828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This library was specified with -dlopen. 64838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = dlopen; then 64848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$libdir"; then 64858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot -dlopen a convenience library: \`$lib'" 64868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$dlname" || 64888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$dlopen_support" != yes || 64898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$build_libtool_libs" = no; then 64908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If there is no dlname, no dlopen support or we're linking 64918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # statically, we need to preload. We also need to preload any 64928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # dependent libraries so libltdl's deplib preloader doesn't 64938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # bomb out in the load deplibs phase. 64948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlprefiles " $lib $dependency_libs" 64958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 64968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlfiles " $lib" 64978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 64988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 64998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # $pass = dlopen 65008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 65018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need an absolute path. 65028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $ladir in 65038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 65048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 65058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar abs_ladir=`cd "$ladir" && pwd` 65068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$abs_ladir"; then 65078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "cannot determine absolute directory name of \`$ladir'" 65088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "passing it literally to the linker, although it might fail" 65098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar abs_ladir="$ladir" 65108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 65118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 65128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 65138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$lib" 65148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar laname="$func_basename_result" 65158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 65168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Find the relevant object directory and library name. 65178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$installed" = Xyes; then 65188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 65198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "library \`$lib' was moved." 65208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$ladir" 65218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir="$abs_ladir" 65228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir="$abs_ladir" 65238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 65248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$lt_sysroot$libdir" 65258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir="$lt_sysroot$libdir" 65268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 65278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 65288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 65298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 65308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$ladir" 65318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir="$abs_ladir" 65328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove this search path later 65338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append notinst_path " $abs_ladir" 65348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 65358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$ladir/$objdir" 65368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir="$abs_ladir/$objdir" 65378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove this search path later 65388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append notinst_path " $abs_ladir" 65398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 65408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # $installed = yes 65418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname 'lib' '.la' "$laname" 65428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 65438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 65448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This library was specified with -dlpreopen. 65458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = dlpreopen; then 65468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$libdir" && test "$linkmode" = prog; then 65478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" 65488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 65498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$host" in 65508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # special handling for platforms with PE-DLLs. 65518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* | *cegcc* ) 65528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Linker will automatically link against shared library if both 65538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # static and shared are present. Therefore, ensure we extract 65548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # symbols from the import library if a shared library is present 65558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # (otherwise, the dlopen module name will be incorrect). We do 65568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # this by putting the import library name into $newdlprefiles. 65578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We recover the dlopen module name by 'saving' the la file 65588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # name in a special purpose variable, and (later) extracting the 65598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # dlname from the la file. 65608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlname"; then 65618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_tr_sh "$dir/$linklib" 65628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" 65638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " $dir/$linklib" 65648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 65658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " $dir/$old_library" 65668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Keep a list of preopened convenience libraries to check 65678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # that they are being used correctly in the link pass. 65688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libdir" && \ 65698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlpreconveniencelibs " $dir/$old_library" 65708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 65718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 65728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * ) 65738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Prefer using a static library (so that no silly _DYNAMIC symbols 65748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # are required to link). 65758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$old_library"; then 65768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " $dir/$old_library" 65778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Keep a list of preopened convenience libraries to check 65788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # that they are being used correctly in the link pass. 65798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libdir" && \ 65808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dlpreconveniencelibs " $dir/$old_library" 65818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Otherwise, use the dlname, so that lt_dlopen finds it. 65828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$dlname"; then 65838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " $dir/$dlname" 65848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 65858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " $dir/$linklib" 65868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 65878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 65888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 65898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # $pass = dlpreopen 65908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 65918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$libdir"; then 65928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Link the convenience library 65938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = lib; then 65948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$dir/$old_library $deplibs" 65958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$linkmode,$pass" = "prog,link"; then 65968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$dir/$old_library $compile_deplibs" 65978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$dir/$old_library $finalize_deplibs" 65988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 65998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$lib $deplibs" # used for prog,scan pass 66008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 66028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog && test "$pass" != link; then 66068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newlib_search_path " $ladir" 66078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$lib $deplibs" 66088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linkalldeplibs=no 66108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$link_all_deplibs" != no || test -z "$library_names" || 66118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$build_libtool_libs" = no; then 66128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linkalldeplibs=yes 66138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_libs= 66168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $dependency_libs; do 66178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 66188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) func_stripname '-L' '' "$deplib" 66198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$func_stripname_result" 66208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newlib_search_path " $func_resolve_sysroot_result" 66218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 66228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 66238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Need to link against all dependency_libs? 66248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkalldeplibs" = yes; then 66258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 66268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 66278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Need to hardcode shared library paths 66288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # or/and link against static libraries 66298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdependency_libs="$deplib $newdependency_libs" 66308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_preserve_dup_deps ; then 66328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$tmp_libs " in 66338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) func_append specialdeplibs " $deplib" ;; 66348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 66358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append tmp_libs " $deplib" 66378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # for deplib 66388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 66398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # $linkmode = prog... 66408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" = "prog,link"; then 66428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$library_names" && 66438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { { test "$prefer_static_libs" = no || 66448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$prefer_static_libs,$installed" = "built,yes"; } || 66458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$old_library"; }; then 66468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need to hardcode the library path 66478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 66488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure the rpath contains only unique directories. 66498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$temp_rpath:" in 66508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *"$absdir:"*) ;; 66518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append temp_rpath "$absdir:" ;; 66528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 66538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Hardcode the library path. 66568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Skip directories that are in the system default run-time 66578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # search path. 66588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $sys_lib_dlsearch_path " in 66598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $absdir "*) ;; 66608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 66618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$compile_rpath " in 66628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $absdir "*) ;; 66638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append compile_rpath " $absdir" ;; 66648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 66658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 66668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 66678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $sys_lib_dlsearch_path " in 66688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 66698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 66708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$finalize_rpath " in 66718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 66728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append finalize_rpath " $libdir" ;; 66738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 66748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 66758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 66768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # $linkmode,$pass = prog,link... 66778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$alldeplibs" = yes && 66798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { test "$deplibs_check_method" = pass_all || 66808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { test "$build_libtool_libs" = yes && 66818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$library_names"; }; }; then 66828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We only need to search for static libraries 66838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 66848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 66878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_static=no # Whether the deplib will be linked statically 66888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar use_static_libs=$prefer_static_libs 66898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$use_static_libs" = built && test "$installed" = yes; then 66908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar use_static_libs=no 66918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 66928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$library_names" && 66938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { test "$use_static_libs" = no || test -z "$old_library"; }; then 66948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 66958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* | *cegcc*) 66968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # No point in relinking DLLs because paths are not encoded 66978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append notinst_deplibs " $lib" 66988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar need_relink=no 66998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 67008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 67018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$installed" = no; then 67028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append notinst_deplibs " $lib" 67038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar need_relink=yes 67048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 67068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 67078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This is a shared library 67088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 67098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Warn about portability, can't link against -module's on some 67108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # systems (darwin). Don't bleat about dlopened modules though! 67118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlopenmodule="" 67128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for dlpremoduletest in $dlprefiles; do 67138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$dlpremoduletest" = "X$lib"; then 67148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlopenmodule="$dlpremoduletest" 67158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 67168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 67188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then 67198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 67208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog; then 67218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: Linking the executable $output against the loadable module" 67228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 67238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: Linking the shared library $output against the loadable module" 67248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** $linklib is not portable!" 67268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = lib && 67288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$hardcode_into_libs" = yes; then 67298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Hardcode the library path. 67308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Skip directories that are in the system default run-time 67318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # search path. 67328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $sys_lib_dlsearch_path " in 67338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $absdir "*) ;; 67348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 67358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$compile_rpath " in 67368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $absdir "*) ;; 67378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append compile_rpath " $absdir" ;; 67388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 67398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 67408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 67418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $sys_lib_dlsearch_path " in 67428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 67438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 67448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$finalize_rpath " in 67458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 67468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append finalize_rpath " $libdir" ;; 67478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 67488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 67498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 67508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 67528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$old_archive_from_expsyms_cmds"; then 67538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # figure out the soname 67548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $library_names 67558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 67568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar realname="$1" 67578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 67588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname=`eval "\\$ECHO \"$libname_spec\""` 67598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # use dlname if we got it. it's perfectly good, no? 67608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlname"; then 67618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar soname="$dlname" 67628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$soname_spec"; then 67638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # bleh windows 67648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 67658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | mingw* | *cegcc*) 67668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $age 67678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=$func_arith_result 67688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix="-$major" 67698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 67708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 67718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval soname=\"$soname_spec\" 67728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 67738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar soname="$realname" 67748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 67768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make a new name for the extract_expsyms_cmds to use 67778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar soroot="$soname" 67788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$soroot" 67798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar soname="$func_basename_result" 67808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname 'lib' '.dll' "$soname" 67818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newlib=libimp-$func_stripname_result.a 67828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 67838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the library has no export list, then create one now 67848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$output_objdir/$soname-def"; then : 67858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 67868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "extracting exported symbol list from \`$soname'" 67878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$extract_expsyms_cmds" 'exit $?' 67888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 67908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Create $newlib 67918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$output_objdir/$newlib"; then :; else 67928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "generating import library for \`$soname'" 67938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' 67948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 67958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # make sure the library variables are pointing to the new library 67968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir=$output_objdir 67978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linklib=$newlib 67988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # test -n "$old_archive_from_expsyms_cmds" 67998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 68008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog || test "$opt_mode" != relink; then 68018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_shlibpath= 68028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_dir= 68038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add= 68048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib_linked=yes 68058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $hardcode_action in 68068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar immediate | unsupported) 68078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_direct" = no; then 68088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="$dir/$linklib" 68098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 68108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 68118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sysv4*uw2*) add_dir="-L$dir" ;; 68128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 68138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-unixware7*) add_dir="-L$dir" ;; 68148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-darwin* ) 68158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # if the lib is a (non-dlopened) module then we can not 68168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # link against it, someone is ignoring the earlier warnings 68178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if /usr/bin/file -L $add 2> /dev/null | 68188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $GREP ": [^:]* bundle" >/dev/null ; then 68198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$dlopenmodule" != "X$lib"; then 68208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: lib $linklib is a module, not a shared library" 68218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$old_library" ; then 68228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 68238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** And there doesn't seem to be a static archive available" 68248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** The link will probably fail, sorry" 68258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 68268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="$dir/$old_library" 68278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$old_library"; then 68298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="$dir/$old_library" 68308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 68338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$hardcode_minus_L" = no; then 68348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 68358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sunos*) add_shlibpath="$dir" ;; 68368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 68378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_dir="-L$dir" 68388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="-l$name" 68398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$hardcode_shlibpath_var" = no; then 68408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_shlibpath="$dir" 68418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="-l$name" 68428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 68438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib_linked=no 68448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 68468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink) 68478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_direct" = yes && 68488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$hardcode_direct_absolute" = no; then 68498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="$dir/$linklib" 68508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$hardcode_minus_L" = yes; then 68518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_dir="-L$absdir" 68528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Try looking first in the location we're being installed to. 68538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$inst_prefix_dir"; then 68548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $libdir in 68558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]*) 68568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append add_dir " -L$inst_prefix_dir$libdir" 68578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 68588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 68598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="-l$name" 68618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$hardcode_shlibpath_var" = yes; then 68628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_shlibpath="$dir" 68638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="-l$name" 68648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 68658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib_linked=no 68668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 68688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) lib_linked=no ;; 68698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 68708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 68718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$lib_linked" != yes; then 68728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_configuration "unsupported hardcode properties" 68738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 68758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$add_shlibpath"; then 68768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case :$compile_shlibpath: in 68778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *":$add_shlibpath:"*) ;; 68788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append compile_shlibpath "$add_shlibpath:" ;; 68798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 68808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog; then 68828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 68838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add" && compile_deplibs="$add $compile_deplibs" 68848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 68858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add_dir" && deplibs="$add_dir $deplibs" 68868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add" && deplibs="$add $deplibs" 68878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_direct" != yes && 68888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$hardcode_minus_L" != yes && 68898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$hardcode_shlibpath_var" = yes; then 68908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case :$finalize_shlibpath: in 68918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *":$libdir:"*) ;; 68928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append finalize_shlibpath "$libdir:" ;; 68938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 68948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 68978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 68988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog || test "$opt_mode" = relink; then 68998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_shlibpath= 69008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_dir= 69018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add= 69028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Finalize command for both is simple: just hardcode it. 69038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_direct" = yes && 69048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$hardcode_direct_absolute" = no; then 69058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="$libdir/$linklib" 69068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$hardcode_minus_L" = yes; then 69078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_dir="-L$libdir" 69088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="-l$name" 69098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$hardcode_shlibpath_var" = yes; then 69108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case :$finalize_shlibpath: in 69118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *":$libdir:"*) ;; 69128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append finalize_shlibpath "$libdir:" ;; 69138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 69148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="-l$name" 69158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$hardcode_automatic" = yes; then 69168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$inst_prefix_dir" && 69178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -f "$inst_prefix_dir$libdir/$linklib" ; then 69188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="$inst_prefix_dir$libdir/$linklib" 69198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 69208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="$libdir/$linklib" 69218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 69238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We cannot seem to hardcode it, guess we'll fake it. 69248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add_dir="-L$libdir" 69258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Try looking first in the location we're being installed to. 69268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$inst_prefix_dir"; then 69278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $libdir in 69288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]*) 69298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append add_dir " -L$inst_prefix_dir$libdir" 69308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 69318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 69328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar add="-l$name" 69348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 69368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog; then 69378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 69388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 69398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 69408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add_dir" && deplibs="$add_dir $deplibs" 69418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$add" && deplibs="$add $deplibs" 69428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$linkmode" = prog; then 69458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Here we assume that one of hardcode_direct or hardcode_minus_L 69468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # is not unsupported. This is valid on all known static and 69478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # shared platforms. 69488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_direct" != unsupported; then 69498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$old_library" && linklib="$old_library" 69508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$dir/$linklib $compile_deplibs" 69518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$dir/$linklib $finalize_deplibs" 69528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 69538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="-l$name -L$dir $compile_deplibs" 69548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="-l$name -L$dir $finalize_deplibs" 69558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$build_libtool_libs" = yes; then 69578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Not a shared library 69588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$deplibs_check_method" != pass_all; then 69598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We're trying link a shared library against a static one 69608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # but the system doesn't support it. 69618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 69628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Just print a warning and add the library to dependency_libs so 69638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # that the program can be linked against the static library. 69648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 69658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: This system can not link to static lib archive $lib." 69668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** I have the capability to make that library automatically link in when" 69678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** you link to this library. But I can only do this if you have a" 69688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** shared version of the library, which you do not appear to have." 69698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$module" = yes; then 69708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** But as you try to build a module library, libtool will still create " 69718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** a static module, that should work as long as the dlopening application" 69728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 69738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$global_symbol_pipe"; then 69748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 69758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** However, this would only work if libtool was able to extract symbol" 69768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 69778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** not find such a program. So, this module is probably useless." 69788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** \`nm' from GNU binutils and a full rebuild may help." 69798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = no; then 69818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=module 69828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=yes 69838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 69848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 69858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 69888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$dir/$old_library $deplibs" 69898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_static=yes 69908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 69918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # link shared/static library? 69928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 69938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = lib; then 69948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dependency_libs" && 69958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { test "$hardcode_into_libs" != yes || 69968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$build_old_libs" = yes || 69978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$link_static" = yes; }; then 69988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Extract -R from dependency_libs 69998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar temp_deplibs= 70008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $dependency_libs; do 70018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $libdir in 70028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -R*) func_stripname '-R' '' "$libdir" 70038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar temp_xrpath=$func_stripname_result 70048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $xrpath " in 70058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $temp_xrpath "*) ;; 70068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append xrpath " $temp_xrpath";; 70078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac;; 70088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append temp_deplibs " $libdir";; 70098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 70108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 70118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dependency_libs="$temp_deplibs" 70128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 70138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 70148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newlib_search_path " $absdir" 70158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Link against this library 70168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 70178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # ... and its dependency_libs 70188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_libs= 70198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $dependency_libs; do 70208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdependency_libs="$deplib $newdependency_libs" 70218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 70228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) func_stripname '-L' '' "$deplib" 70238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$func_stripname_result";; 70248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_resolve_sysroot "$deplib" ;; 70258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 70268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $opt_preserve_dup_deps ; then 70278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$tmp_libs " in 70288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $func_resolve_sysroot_result "*) 70298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append specialdeplibs " $func_resolve_sysroot_result" ;; 70308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 70318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 70328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append tmp_libs " $func_resolve_sysroot_result" 70338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 70348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 70358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$link_all_deplibs" != no; then 70368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add the search paths of all dependency libraries 70378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $dependency_libs; do 70388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar path= 70398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 70408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) path="$deplib" ;; 70418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 70428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$deplib" 70438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplib=$func_resolve_sysroot_result 70448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$deplib" "" "." 70458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir=$func_dirname_result 70468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We need an absolute path. 70478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $dir in 70488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 70498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 70508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir=`cd "$dir" && pwd` 70518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$absdir"; then 70528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "cannot determine absolute directory name of \`$dir'" 70538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar absdir="$dir" 70548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 70558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 70568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 70578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $GREP "^installed=no" $deplib > /dev/null; then 70588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 70598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-darwin*) 70608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar depdepl= 70618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 70628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$deplibrary_names" ; then 70638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for tmp in $deplibrary_names ; do 70648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar depdepl=$tmp 70658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 70668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$absdir/$objdir/$depdepl" ; then 70678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar depdepl="$absdir/$objdir/$depdepl" 70688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 70698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$darwin_install_name"; then 70708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` 70718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 70728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" 70738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" 70748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar path= 70758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 70768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 70778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 70788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 70798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar path="-L$absdir/$objdir" 70808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 70818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 70828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 70838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 70848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libdir" && \ 70858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$deplib' is not a valid libtool archive" 70868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$absdir" != "$libdir" && \ 70878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`$deplib' seems to be moved" 70888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 70898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar path="-L$absdir" 70908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 70918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 70928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 70938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $deplibs " in 70948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $path "*) ;; 70958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) deplibs="$path $deplibs" ;; 70968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 70978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 70988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # link_all_deplibs != no 70998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi # linkmode = lib 71008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # for deplib in $libs 71018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = link; then 71028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = "prog"; then 71038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$new_inherited_linker_flags $compile_deplibs" 71048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" 71058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 71068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 71078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 71088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 71098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dependency_libs="$newdependency_libs" 71108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" = dlpreopen; then 71118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Link the dlpreopened libraries before other libraries 71128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $save_deplibs; do 71138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$deplib $deplibs" 71148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 71158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 71168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" != dlopen; then 71178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$pass" != conv; then 71188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure lib_search_path contains only unique directories. 71198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib_search_path= 71208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for dir in $newlib_search_path; do 71218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$lib_search_path " in 71228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $dir "*) ;; 71238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append lib_search_path " $dir" ;; 71248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 71258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 71268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newlib_search_path= 71278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 71288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 71298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode,$pass" != "prog,link"; then 71308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar vars="deplibs" 71318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 71328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar vars="compile_deplibs finalize_deplibs" 71338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 71348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for var in $vars dependency_libs; do 71358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add libraries to $var in reverse order 71368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval tmp_libs=\"\$$var\" 71378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_libs= 71388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $tmp_libs; do 71398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FIXME: Pedantically, this is the right thing to do, so 71408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # that some nasty dependency loop isn't accidentally 71418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # broken: 71428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar #new_libs="$deplib $new_libs" 71438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Pragmatically, this seems to cause very few problems in 71448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # practice: 71458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 71468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) new_libs="$deplib $new_libs" ;; 71478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -R*) ;; 71488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 71498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # And here is the reason: when a library appears more 71508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # than once as an explicit dependence of a library, or 71518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # is implicitly linked in more than once by the 71528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # compiler, it is considered special, and multiple 71538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # occurrences thereof are not removed. Compare this 71548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # with having the same library being listed as a 71558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # dependency of multiple other libraries: in this case, 71568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # we know (pedantically, we assume) the library does not 71578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # need to be listed more than once, so we keep only the 71588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # last copy. This is not always right, but it is rare 71598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # enough that we require users that really mean to play 71608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # such unportable linking tricks to link the library 71618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # using -Wl,-lname, so that libtool does not consider it 71628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # for duplicate removal. 71638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $specialdeplibs " in 71648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) new_libs="$deplib $new_libs" ;; 71658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 71668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $new_libs " in 71678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) ;; 71688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) new_libs="$deplib $new_libs" ;; 71698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 71708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 71718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 71728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 71738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 71748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 71758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_libs= 71768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $new_libs; do 71778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 71788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) 71798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $tmp_libs " in 71808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) ;; 71818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append tmp_libs " $deplib" ;; 71828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 71838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 71848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append tmp_libs " $deplib" ;; 71858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 71868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 71878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval $var=\"$tmp_libs\" 71888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # for var 71898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 71908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Last step: remove runtime libs from dependency_libs 71918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # (they stay in deplibs) 71928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_libs= 71938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for i in $dependency_libs ; do 71948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $predeps $postdeps $compiler_lib_search_path " in 71958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $i "*) 71968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar i="" 71978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 71988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 71998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$i" ; then 72008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append tmp_libs " $i" 72018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 72028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 72038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dependency_libs=$tmp_libs 72048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # for pass 72058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog; then 72068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlfiles="$newdlfiles" 72078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 72088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$linkmode" = prog || test "$linkmode" = lib; then 72098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefiles="$newdlprefiles" 72108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 72118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $linkmode in 72138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlib) 72148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 72158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-dlopen' is ignored for archives" 72168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 72178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $deplibs" in 72198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *\ -l* | *\ -L*) 72208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-l' and \`-L' are ignored for archives" ;; 72218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 72228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$rpath" && \ 72248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-rpath' is ignored for archives" 72258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$xrpath" && \ 72278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-R' is ignored for archives" 72288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$vinfo" && \ 72308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-version-info/-version-number' is ignored for archives" 72318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$release" && \ 72338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-release' is ignored for archives" 72348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$export_symbols$export_symbols_regex" && \ 72368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-export-symbols' is ignored for archives" 72378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now set the variables for building old libraries. 72398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 72408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlibs="$output" 72418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append objs "$old_deplibs" 72428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 72438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib) 72458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure we only generate libraries of the form `libNAME.la'. 72468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $outputname in 72478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib*) 72488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname 'lib' '.la' "$outputname" 72498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 72508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval shared_ext=\"$shrext_cmds\" 72518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libname=\"$libname_spec\" 72528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 72538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 72548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$module" = no && \ 72558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "libtool library \`$output' must begin with \`lib'" 72568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$need_lib_prefix" != no; then 72588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add the "lib" prefix for modules if required 72598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.la' "$outputname" 72608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 72618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval shared_ext=\"$shrext_cmds\" 72628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libname=\"$libname_spec\" 72638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 72648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.la' "$outputname" 72658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname=$func_stripname_result 72668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 72678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 72688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 72698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$objs"; then 72718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$deplibs_check_method" != pass_all; then 72728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 72738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 72748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 72758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: Linking the shared library $output against the non-libtool" 72768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** objects $objs is not portable!" 72778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $objs" 72788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 72798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 72808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$dlself" != no && \ 72828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-dlopen self' is ignored for libtool libraries" 72838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $rpath 72858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 72868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$#" -gt 1 && \ 72878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "ignoring multiple \`-rpath's for a libtool library" 72888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar install_libdir="$1" 72908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 72918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlibs= 72928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$rpath"; then 72938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes; then 72948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Building a libtool convenience library. 72958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Some compilers have problems with a `.al' extension so 72968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # convenience libraries should have the same extension an 72978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # archive normally would. 72988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlibs="$output_objdir/$libname.$libext $oldlibs" 72998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=convenience 73008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=yes 73018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 73028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$vinfo" && \ 73048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-version-info/-version-number' is ignored for convenience libraries" 73058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$release" && \ 73078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-release' is ignored for convenience libraries" 73088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 73098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Parse the version information argument. 73118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs="$IFS"; IFS=':' 73128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $vinfo 0 0 0 73138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 73148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 73158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$7" && \ 73178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "too many parameters to \`-version-info'" 73188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # convert absolute version numbers to libtool ages 73208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # this retains compatibility with .la files and attempts 73218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # to make the code below a bit more comprehensible 73228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $vinfo_number in 73248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar yes) 73258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar number_major="$1" 73268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar number_minor="$2" 73278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar number_revision="$3" 73288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 73298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # There are really only two kinds -- those that 73308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # use the current revision as the major version 73318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # and those that subtract age and use age as 73328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # a minor version. But, then there is irix 73338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # which has an extra 1 added just for fun 73348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 73358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $version_type in 73368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # correct linux to gnu/linux during the next big refactor 73378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin|linux|osf|windows|none) 73388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $number_major + $number_minor 73398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar current=$func_arith_result 73408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar age="$number_minor" 73418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar revision="$number_revision" 73428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar freebsd-aout|freebsd-elf|qnx|sunos) 73448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar current="$number_major" 73458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar revision="$number_minor" 73468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar age="0" 73478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar irix|nonstopux) 73498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $number_major + $number_minor 73508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar current=$func_arith_result 73518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar age="$number_minor" 73528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar revision="$number_minor" 73538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_irix_increment=no 73548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 73568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_configuration "$modename: unknown library version type \`$version_type'" 73578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 73598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar no) 73618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar current="$1" 73628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar revision="$2" 73638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar age="$3" 73648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 73668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check that each of the things are valid numbers. 73688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $current in 73698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 73708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 73718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "CURRENT \`$current' must be a nonnegative integer" 73728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$vinfo' is not valid version information" 73738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 73758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $revision in 73778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 73788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 73798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "REVISION \`$revision' must be a nonnegative integer" 73808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$vinfo' is not valid version information" 73818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 73838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $age in 73858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; 73868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 73878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "AGE \`$age' must be a nonnegative integer" 73888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$vinfo' is not valid version information" 73898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 73908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 73918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$age" -gt "$current"; then 73938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_error "AGE \`$age' is greater than the current interface number \`$current'" 73948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$vinfo' is not valid version information" 73958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 73968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 73978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Calculate the version variables. 73988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major= 73998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix= 74008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring= 74018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $version_type in 74028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar none) ;; 74038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin) 74058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Like Linux, but with the current version available in 74068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # verstring for coding it into the library header 74078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $age 74088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=.$func_arith_result 74098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix="$major.$age.$revision" 74108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Darwin ld doesn't like 0 for these options... 74118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current + 1 74128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar minor_current=$func_arith_result 74138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 74148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" 74158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar freebsd-aout) 74188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=".$current" 74198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix=".$current.$revision"; 74208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar freebsd-elf) 74238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=".$current" 74248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix=".$current" 74258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar irix | nonstopux) 74288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$lt_irix_increment" = "Xno"; then 74298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $age 74308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 74318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $age + 1 74328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 74338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=$func_arith_result 74348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $version_type in 74368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar nonstopux) verstring_prefix=nonstopux ;; 74378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) verstring_prefix=sgi ;; 74388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 74398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring="$verstring_prefix$major.$revision" 74408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add in all the interfaces that we are compatible with. 74428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar loop=$revision 74438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while test "$loop" -ne 0; do 74448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $revision - $loop 74458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar iface=$func_arith_result 74468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $loop - 1 74478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar loop=$func_arith_result 74488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring="$verstring_prefix$major.$iface:$verstring" 74498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 74508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Before this point, $major must not contain `.'. 74528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=.$major 74538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix="$major.$revision" 74548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linux) # correct to gnu/linux during the next big refactor 74578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $age 74588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=.$func_arith_result 74598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix="$major.$age.$revision" 74608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar osf) 74638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $age 74648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=.$func_arith_result 74658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix=".$current.$age.$revision" 74668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring="$current.$age.$revision" 74678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add in all the interfaces that we are compatible with. 74698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar loop=$age 74708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while test "$loop" -ne 0; do 74718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $loop 74728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar iface=$func_arith_result 74738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $loop - 1 74748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar loop=$func_arith_result 74758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring="$verstring:${iface}.0" 74768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 74778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make executables depend on our current version. 74798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append verstring ":${current}.0" 74808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar qnx) 74838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=".$current" 74848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix=".$current" 74858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar sunos) 74888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=".$current" 74898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix=".$current.$revision" 74908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 74928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar windows) 74938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Use '-' rather than '.', since we only want one 74948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # extension on DOS 8.3 filesystems. 74958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $current - $age 74968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=$func_arith_result 74978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix="-$major" 74988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 74998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 75018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_configuration "unknown library version type \`$version_type'" 75028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 75038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 75048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Clear the version info if we defaulted, and they specified a release. 75068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$vinfo" && test -n "$release"; then 75078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major= 75088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $version_type in 75098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar darwin) 75108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # we can't check for "0.0" in archive_cmds due to quoting 75118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # problems, so we reset it completely 75128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring= 75138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 75148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 75158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring="0.0" 75168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 75178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 75188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$need_version" = no; then 75198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix= 75208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 75218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix=".0.0" 75228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove version info from name if versioning should be avoided 75268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$avoid_version" = yes && test "$need_version" = no; then 75278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major= 75288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix= 75298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar verstring="" 75308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Check to see if the archive will have undefined symbols. 75338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$allow_undefined" = yes; then 75348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$allow_undefined_flag" = unsupported; then 75358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "undefined symbols not allowed in $host shared libraries" 75368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 75378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=yes 75388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 75408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't allow undefined symbols. 75418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar allow_undefined_flag="$no_undefined_flag" 75428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_generate_dlsyms "$libname" "$libname" "yes" 75478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $symfileobj" 75488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$libobjs" = "X " && libobjs= 75498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_mode" != relink; then 75518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove our outputs, but don't remove object files since they 75528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # may have been created when compiling PIC objects. 75538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar removelist= 75548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tempremovelist=`$ECHO "$output_objdir/*"` 75558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for p in $tempremovelist; do 75568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $p in 75578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.$objext | *.gcno) 75588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 75598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 75608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$precious_files_regex" != "X"; then 75618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 75628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar then 75638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 75648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append removelist " $p" 75678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 75688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) ;; 75698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 75708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 75718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$removelist" && \ 75728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "${RM}r \$removelist" 75738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now set the variables for building old libraries. 75768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 75778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append oldlibs " $output_objdir/$libname.$libext" 75788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Transform .lo files to .o files. 75808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` 75818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 75828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Eliminate all temporary directories. 75848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar #for path in $notinst_path; do 75858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` 75868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` 75878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` 75888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar #done 75898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 75908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$xrpath"; then 75918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the user specified any rpath flags, then add them. 75928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar temp_xrpath= 75938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $xrpath; do 75948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_replace_sysroot "$libdir" 75958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append temp_xrpath " -R$func_replace_sysroot_result" 75968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$finalize_rpath " in 75978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 75988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append finalize_rpath " $libdir" ;; 75998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 76008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 76018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 76028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dependency_libs="$temp_xrpath $dependency_libs" 76038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 76048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 76058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 76068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure dlfiles contains only unique files that won't be dlpreopened 76078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_dlfiles="$dlfiles" 76088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlfiles= 76098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $old_dlfiles; do 76108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $dlprefiles $dlfiles " in 76118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $lib "*) ;; 76128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append dlfiles " $lib" ;; 76138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 76148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 76158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 76168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure dlprefiles contains only unique files 76178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_dlprefiles="$dlprefiles" 76188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefiles= 76198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $old_dlprefiles; do 76208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$dlprefiles " in 76218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $lib "*) ;; 76228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append dlprefiles " $lib" ;; 76238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 76248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 76258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 76268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes; then 76278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$rpath"; then 76288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 76298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) 76308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # these systems don't actually have a c library (as such)! 76318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-rhapsody* | *-*-darwin1.[012]) 76338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Rhapsody C library is in the System framework 76348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append deplibs " System.ltframework" 76358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-netbsd*) 76378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't link with libc until the a.out ld.so is fixed. 76388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 76408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do not include libc due to us having libc/libc_r. 76418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sco3.2v5* | *-*-sco5v6*) 76438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Causes problems with __ctype 76448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 76468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Compiler inserts libc in the correct place for threads to work 76478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 76498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add libc to deplibs on all other systems if necessary. 76508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_need_lc" = "yes"; then 76518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append deplibs " -lc" 76528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 76538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 76558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 76568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 76578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Transform deplibs into only deplibs that can be linked in shared. 76588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name_save=$name 76598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname_save=$libname 76608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar release_save=$release 76618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix_save=$versuffix 76628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major_save=$major 76638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # I'm not sure if I'm treating the release correctly. I think 76648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # release should show up in the -l (ie -lgmp5) so we don't want to 76658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # add it in twice. Is that correct? 76668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar release="" 76678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix="" 76688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major="" 76698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdeplibs= 76708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar droppeddeps=no 76718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplibs_check_method in 76728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar pass_all) 76738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't check for shared/static. Everything works. 76748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This might be a little naive. We might want to check 76758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # whether the library exists or not. But this is on 76768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # osf3 & osf4 and I'm not really sure... Just 76778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # implementing what was already the behavior. 76788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdeplibs=$deplibs 76798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 76808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test_compile) 76818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This code stresses the "libraries are programs" paradigm to its 76828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # limits. Maybe even breaks it. We compile a program, linking it 76838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # against the deplibs as a proxy for the library. Then we can check 76848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # whether they linked in statically or dynamically with ldd. 76858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM conftest.c 76868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cat > conftest.c <<EOF 76878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar int main() { return 0; } 76888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarEOF 76898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM conftest 76908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then 76918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ldd_output=`ldd conftest` 76928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for i in $deplibs; do 76938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $i in 76948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -l*) 76958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname -l '' "$i" 76968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 76978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 76988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $predeps $postdeps " in 76998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $i "*) 77008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $i" 77018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar i="" 77028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 77048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$i" ; then 77068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname=`eval "\\$ECHO \"$libname_spec\""` 77078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 77088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $deplib_matches; shift 77098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplib_match=$1 77108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 77118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $i" 77128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 77138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar droppeddeps=yes 77148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 77158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: dynamic linker does not accept needed library $i." 77168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** I have the capability to make that library automatically link in when" 77178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** you link to this library. But I can only do this if you have a" 77188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** shared version of the library, which I believe you do not have" 77198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** because a test_compile did reveal that the linker did not use it for" 77208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** its dynamic dependency list that programs get resolved with at runtime." 77218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 77258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $i" 77268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 77288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 77298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 77308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Error occurred in the first compile. Let's try to salvage 77318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the situation: Compile a separate program for each library. 77328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for i in $deplibs; do 77338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $i in 77348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -l*) 77358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname -l '' "$i" 77368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 77378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM conftest 77388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 77398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ldd_output=`ldd conftest` 77408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 77418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $predeps $postdeps " in 77428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $i "*) 77438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $i" 77448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar i="" 77458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 77478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$i" ; then 77498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname=`eval "\\$ECHO \"$libname_spec\""` 77508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` 77518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $deplib_matches; shift 77528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplib_match=$1 77538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 77548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $i" 77558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 77568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar droppeddeps=yes 77578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 77588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: dynamic linker does not accept needed library $i." 77598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** I have the capability to make that library automatically link in when" 77608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** you link to this library. But I can only do this if you have a" 77618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** shared version of the library, which you do not appear to have" 77628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** because a test_compile did reveal that the linker did not use this one" 77638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** as a dynamic dependency that programs can get resolved with at runtime." 77648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 77678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar droppeddeps=yes 77688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 77698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning! Library $i is needed by this library but I was not able to" 77708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** make it link in! You will probably need to install it or some" 77718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** library that it depends on before this library will be fully" 77728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** functional. Installing it before continuing would be even better." 77738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 77768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $i" 77778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 77798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 77808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file_magic*) 77838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $deplibs_check_method; shift 77848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 77858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for a_deplib in $deplibs; do 77868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $a_deplib in 77878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -l*) 77888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname -l '' "$a_deplib" 77898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 77908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 77918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $predeps $postdeps " in 77928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $a_deplib "*) 77938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $a_deplib" 77948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar a_deplib="" 77958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 77968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 77978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 77988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$a_deplib" ; then 77998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname=`eval "\\$ECHO \"$libname_spec\""` 78008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$file_magic_glob"; then 78018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` 78028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 78038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libnameglob=$libname 78048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` 78068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 78078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$want_nocaseglob" = yes; then 78088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shopt -s nocaseglob 78098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` 78108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $nocaseglob 78118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 78128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` 78138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for potent_lib in $potential_libs; do 78158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Follow soft links. 78168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ls -lLd "$potent_lib" 2>/dev/null | 78178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $GREP " -> " >/dev/null; then 78188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 78198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The statement above tries to avoid entering an 78218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # endless loop below, in case of cyclic links. 78228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We might still enter an endless loop, since a link 78238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # loop can be closed while we follow links, 78248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # but so what? 78258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar potlib="$potent_lib" 78268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while test -h "$potlib" 2>/dev/null; do 78278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 78288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $potliblink in 78298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 78308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; 78318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 78328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 78338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | 78348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $SED -e 10q | 78358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $EGREP "$file_magic_regex" > /dev/null; then 78368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $a_deplib" 78378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar a_deplib="" 78388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 2 78398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 78418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 78428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$a_deplib" ; then 78448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar droppeddeps=yes 78458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 78468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 78478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** I have the capability to make that library automatically link in when" 78488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** you link to this library. But I can only do this if you have a" 78498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** shared version of the library, which you do not appear to have" 78508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** because I did check the linker path looking for a file starting" 78518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$potlib" ; then 78528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** with $libname but no candidates were found. (...for file magic test)" 78538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 78548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** with $libname and none of the candidates passed a file format test" 78558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** using a file magic. Last file checked: $potlib" 78568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 78598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 78608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add a -L argument. 78618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $a_deplib" 78628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 78638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 78648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # Gone through all deplibs. 78658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 78668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar match_pattern*) 78678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $deplibs_check_method; shift 78688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` 78698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for a_deplib in $deplibs; do 78708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $a_deplib in 78718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -l*) 78728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname -l '' "$a_deplib" 78738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$func_stripname_result 78748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 78758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $predeps $postdeps " in 78768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $a_deplib "*) 78778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $a_deplib" 78788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar a_deplib="" 78798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 78808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 78818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$a_deplib" ; then 78838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname=`eval "\\$ECHO \"$libname_spec\""` 78848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 78858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 78868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for potent_lib in $potential_libs; do 78878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar potlib="$potent_lib" # see symlink-check above in file_magic test 78888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ 78898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $EGREP "$match_pattern_regex" > /dev/null; then 78908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $a_deplib" 78918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar a_deplib="" 78928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 2 78938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 78958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 78968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 78978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$a_deplib" ; then 78988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar droppeddeps=yes 78998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 79008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** Warning: linker path does not have real file for library $a_deplib." 79018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** I have the capability to make that library automatically link in when" 79028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** you link to this library. But I can only do this if you have a" 79038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** shared version of the library, which you do not appear to have" 79048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** because I did check the linker path looking for a file starting" 79058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$potlib" ; then 79068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" 79078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 79088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** with $libname and none of the candidates passed a file format test" 79098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** using a regex pattern. Last file checked: $potlib" 79108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 79138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 79148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add a -L argument. 79158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdeplibs " $a_deplib" 79168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 79178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 79188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done # Gone through all deplibs. 79198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 79208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar none | unknown | *) 79218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdeplibs="" 79228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` 79238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 79248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for i in $predeps $postdeps ; do 79258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # can't use Xsed below, because $i might contain '/' 79268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` 79278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 79288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $tmp_deplibs in 79308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[!\ \ ]*) 79318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 79328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$deplibs_check_method" = "Xnone"; then 79338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** Warning: inter-library dependencies are not supported in this platform." 79348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 79358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** Warning: inter-library dependencies are not known to be supported." 79368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** All declared inter-library dependencies are being dropped." 79388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar droppeddeps=yes 79398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 79408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 79418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 79428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 79438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar versuffix=$versuffix_save 79448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar major=$major_save 79458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar release=$release_save 79468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libname=$libname_save 79478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name=$name_save 79488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 79498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 79508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-rhapsody* | *-*-darwin1.[012]) 79518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # On Rhapsody replace the C library with the System framework 79528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` 79538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 79548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 79558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 79568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$droppeddeps" = yes; then 79578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$module" = yes; then 79588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 79598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** Warning: libtool could not satisfy all declared inter-library" 79608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "*** dependencies of module $libname. Therefore, libtool will create" 79618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** a static module, that should work as long as the dlopening" 79628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** application is linked with the -dlopen flag." 79638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$global_symbol_pipe"; then 79648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 79658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** However, this would only work if libtool was able to extract symbol" 79668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 79678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** not find such a program. So, this module is probably useless." 79688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** \`nm' from GNU binutils and a full rebuild may help." 79698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = no; then 79718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlibs="$output_objdir/$libname.$libext" 79728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=module 79738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=yes 79748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 79758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 79768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 79788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** The inter-library dependencies that have been dropped here will be" 79798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** automatically added whenever a program is linked with this library" 79808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** or is declared to -dlopen it." 79818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 79828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$allow_undefined" = no; then 79838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 79848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** Since this library must not contain undefined symbols," 79858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** because either the platform does not support them or" 79868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** it was explicitly requested with -no-undefined," 79878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "*** libtool will only create a static version of it." 79888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_old_libs" = no; then 79898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldlibs="$output_objdir/$libname.$libext" 79908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=module 79918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_old_libs=yes 79928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 79938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 79948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 79988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Done checking deplibs! 79998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs=$newdeplibs 80008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 80018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Time to change all our "foo.ltframework" stuff back to "-framework foo" 80028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 80038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-darwin*) 80048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 80058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 80068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 80078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 80088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 80108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # move library search paths that coincide with paths to not yet 80118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # installed libraries to the beginning of the library search list 80128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_libs= 80138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for path in $notinst_path; do 80148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $new_libs " in 80158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" -L$path/$objdir "*) ;; 80168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 80178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $deplibs " in 80188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" -L$path/$objdir "*) 80198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append new_libs " -L$path/$objdir" ;; 80208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 80228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 80248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $deplibs; do 80258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 80268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) 80278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $new_libs " in 80288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) ;; 80298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append new_libs " $deplib" ;; 80308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 80328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append new_libs " $deplib" ;; 80338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 80358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$new_libs" 80368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 80378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # All the library-specific variables (install_libdir is set above). 80388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar library_names= 80398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_library= 80408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlname= 80418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 80428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Test again, we may have decided not to build it any more 80438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = yes; then 80448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remove ${wl} instances when linking with ld. 80458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FIXME: should test the right _cmds variable. 80468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $archive_cmds in 80478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *\$LD\ *) wl= ;; 80488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_into_libs" = yes; then 80508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Hardcode the library paths 80518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar hardcode_libdirs= 80528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dep_rpath= 80538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath="$finalize_rpath" 80548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$opt_mode" != relink && rpath="$compile_rpath$rpath" 80558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $rpath; do 80568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_flag_spec"; then 80578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_separator"; then 80588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_replace_sysroot "$libdir" 80598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir=$func_replace_sysroot_result 80608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$hardcode_libdirs"; then 80618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar hardcode_libdirs="$libdir" 80628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 80638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Just accumulate the unique libdirs. 80648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 80658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 80668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 80678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 80688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 80698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 80708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 80728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 80738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval flag=\"$hardcode_libdir_flag_spec\" 80748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append dep_rpath " $flag" 80758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 80768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$runpath_var"; then 80778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$perm_rpath " in 80788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 80798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append perm_rpath " $libdir" ;; 80808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 80818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 80828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 80838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Substitute the hardcoded libdirs into the rpath. 80848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_separator" && 80858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$hardcode_libdirs"; then 80868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir="$hardcode_libdirs" 80878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" 80888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 80898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$runpath_var" && test -n "$perm_rpath"; then 80908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We should set the runpath_var. 80918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath= 80928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for dir in $perm_rpath; do 80938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rpath "$dir:" 80948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 80958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 80968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 80978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 80988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 80998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shlibpath="$finalize_shlibpath" 81018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 81028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$shlibpath"; then 81038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 81048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 81058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Get the real and link names of the library. 81078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval shared_ext=\"$shrext_cmds\" 81088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval library_names=\"$library_names_spec\" 81098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set dummy $library_names 81108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 81118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar realname="$1" 81128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 81138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$soname_spec"; then 81158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval soname=\"$soname_spec\" 81168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 81178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar soname="$realname" 81188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 81198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$dlname"; then 81208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlname=$soname 81218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 81228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lib="$output_objdir/$realname" 81248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar linknames= 81258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for link 81268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 81278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append linknames " $link" 81288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 81298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Use standard objects if they are pic 81318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` 81328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$libobjs" = "X " && libobjs= 81338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar delfiles= 81358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -n "$include_expsyms"; then 81368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" 81378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols="$output_objdir/$libname.uexp" 81388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append delfiles " $export_symbols" 81398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 81408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar orig_export_symbols= 81428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host_os in 81438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cygwin* | mingw* | cegcc*) 81448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -z "$export_symbols_regex"; then 81458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # exporting using user supplied symfile 81468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "x`$SED 1q $export_symbols`" != xEXPORTS; then 81478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # and it's NOT already a .def file. Must figure out 81488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # which of the given symbols are data symbols and tag 81498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # them as such. So, trigger use of export_symbols_cmds. 81508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # export_symbols gets reassigned inside the "prepare 81518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the list of exported symbols" if statement, so the 81528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # include_expsyms logic still works. 81538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar orig_export_symbols="$export_symbols" 81548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols= 81558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar always_export_symbols=yes 81568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 81578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 81588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 81598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 81608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 81618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Prepare the list of exported symbols 81628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$export_symbols"; then 81638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 81648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "generating symbol list for \`$libname.la'" 81658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols="$output_objdir/$libname.exp" 81668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $export_symbols 81678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$export_symbols_cmds 81688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs="$IFS"; IFS='~' 81698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for cmd1 in $cmds; do 81708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 81718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Take the normal branch if the nm_file_list_spec branch 81728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # doesn't work or if tool conversion is not needed. 81738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $nm_file_list_spec~$to_tool_file_cmd in 81748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) 81758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar try_normal_branch=yes 81768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmd=\"$cmd1\" 81778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $cmd" 81788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$func_len_result 81798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 81808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 81818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar try_normal_branch=no 81828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 81838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 81848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$try_normal_branch" = yes \ 81858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && { test "$len" -lt "$max_cmd_len" \ 81868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar || test "$max_cmd_len" -le -1; } 81878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar then 81888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$cmd" 'exit $?' 81898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar skipped_export=false 81908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$nm_file_list_spec"; then 81918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$output" 81928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output_la=$func_basename_result 81938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_libobjs=$libobjs 81948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_output=$output 81958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=${output_objdir}/${output_la}.nm 81968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output" 81978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobjs=$nm_file_list_spec$func_to_tool_file_result 81988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append delfiles " $output" 81998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating $NM input file list: $output" 82008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj in $save_libobjs; do 82018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$obj" 82028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$func_to_tool_file_result" 82038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done > "$output" 82048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmd=\"$cmd1\" 82058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$cmd" 'exit $?' 82068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$save_output 82078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobjs=$save_libobjs 82088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar skipped_export=false 82098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 82108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The command line is too long to execute in one step. 82118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "using reloadable object file for export list..." 82128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar skipped_export=: 82138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Break out early, otherwise skipped_export may be 82148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # set to false by a later but shorter cmd. 82158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 82168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 82188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 82198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then 82208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 82218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 82228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -n "$include_expsyms"; then 82278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_export_symbols="$export_symbols" 82288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 82298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 82308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then 82338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The given exports_symbols file has to be filtered, so filter it. 82348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 82358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FIXME: $output_objdir/$libname.filter potentially contains lots of 82368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 's' commands which not all seds can handle. GNU sed should be fine 82378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # though. Also, the filter scales superlinearly with the number of 82388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # global variables. join(1) would be nice here, but unfortunately 82398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # isn't a blessed tool. 82408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 82418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append delfiles " $export_symbols $output_objdir/$libname.filter" 82428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols=$output_objdir/$libname.def 82438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 82448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_deplibs= 82478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for test_deplib in $deplibs; do 82488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $convenience " in 82498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $test_deplib "*) ;; 82508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 82518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append tmp_deplibs " $test_deplib" 82528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 82538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 82548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 82558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar deplibs="$tmp_deplibs" 82568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$convenience"; then 82588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$whole_archive_flag_spec" && 82598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$compiler_needs_object" = yes && 82608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libobjs"; then 82618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # extract the archives, so we have objects to list. 82628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # TODO: could optimize this to just extract one archive. 82638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar whole_archive_flag_spec= 82648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$whole_archive_flag_spec"; then 82668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_libobjs=$libobjs 82678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 82688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$libobjs" = "X " && libobjs= 82698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 82708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar gentop="$output_objdir/${outputname}x" 82718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append generated " $gentop" 82728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_archives $gentop $convenience 82748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $func_extract_archives_result" 82758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$libobjs" = "X " && libobjs= 82768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 82808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval flag=\"$thread_safe_flag_spec\" 82818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append linker_flags " $flag" 82828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make a backup of the uninstalled library when relinking 82858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_mode" = relink; then 82868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? 82878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 82898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each of the archive commands. 82908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$module" = yes && test -n "$module_cmds" ; then 82918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 82928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval test_cmds=\"$module_expsym_cmds\" 82938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$module_expsym_cmds 82948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 82958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval test_cmds=\"$module_cmds\" 82968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$module_cmds 82978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 82988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 82998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 83008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval test_cmds=\"$archive_expsym_cmds\" 83018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$archive_expsym_cmds 83028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 83038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval test_cmds=\"$archive_cmds\" 83048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$archive_cmds 83058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 83068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 83078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 83088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$skipped_export" != "X:" && 83098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $test_cmds" && 83108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$func_len_result && 83118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 83128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 83138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 83148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The command line is too long to link in one step, link piecewise 83158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # or, if using GNU ld and skipped_export is not :, use a linker 83168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # script. 83178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 83188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Save the value of $output and $libobjs because we want to 83198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # use them later. If we have whole_archive_flag_spec, we 83208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # want to use save_libobjs as it was before 83218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # whole_archive_flag_spec was expanded, because we can't 83228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # assume the linker understands whole_archive_flag_spec. 83238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This may have to be revisited, in case too many 83248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # convenience libraries get linked in and end up exceeding 83258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the spec. 83268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 83278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_libobjs=$libobjs 83288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 83298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_output=$output 83308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$output" 83318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output_la=$func_basename_result 83328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 83338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Clear the reloadable object creation command queue and 83348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # initialize k to one. 83358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test_cmds= 83368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_cmds= 83378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objlist= 83388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar last_robj= 83398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar k=1 83408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 83418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then 83428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=${output_objdir}/${output_la}.lnkscript 83438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating GNU ld script: $output" 83448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo 'INPUT (' > $output 83458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj in $save_libobjs 83468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 83478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$obj" 83488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$func_to_tool_file_result" >> $output 83498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 83508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo ')' >> $output 83518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append delfiles " $output" 83528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output" 83538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$func_to_tool_file_result 83548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then 83558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=${output_objdir}/${output_la}.lnk 83568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating linker input file list: $output" 83578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : > $output 83588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar set x $save_libobjs 83598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 83608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar firstobj= 83618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$compiler_needs_object" = yes; then 83628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar firstobj="$1 " 83638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar shift 83648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 83658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj 83668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 83678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$obj" 83688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$func_to_tool_file_result" >> $output 83698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 83708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append delfiles " $output" 83718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output" 83728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$firstobj\"$file_list_spec$func_to_tool_file_result\" 83738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 83748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$save_libobjs"; then 83758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating reloadable object files..." 83768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$output_objdir/$output_la-${k}.$objext 83778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval test_cmds=\"$reload_cmds\" 83788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $test_cmds" 83798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len0=$func_len_result 83808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$len0 83818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 83828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Loop over the list of objects to be linked. 83838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj in $save_libobjs 83848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 83858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $obj" 83868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $len + $func_len_result 83878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$func_arith_result 83888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$objlist" = X || 83898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$len" -lt "$max_cmd_len"; then 83908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append objlist " $obj" 83918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 83928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The command $test_cmds is almost too long, add a 83938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # command to the queue. 83948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$k" -eq 1 ; then 83958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The first file doesn't have a previous command to add. 83968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_objs=$objlist 83978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval concat_cmds=\"$reload_cmds\" 83988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 83998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # All subsequent reloadable object files will link in 84008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the last one created. 84018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_objs="$objlist $last_robj" 84028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" 84038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar last_robj=$output_objdir/$output_la-${k}.$objext 84058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $k + 1 84068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar k=$func_arith_result 84078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$output_objdir/$output_la-${k}.$objext 84088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objlist=" $obj" 84098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $last_robj" 84108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $len0 + $func_len_result 84118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$func_arith_result 84128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 84148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Handle the remaining objects by creating one last 84158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # reloadable object file. All subsequent reloadable object 84168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # files will link in the last one created. 84178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 84188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_objs="$objlist $last_robj" 84198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval concat_cmds=\"\${concat_cmds}$reload_cmds\" 84208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$last_robj"; then 84218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" 84228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append delfiles " $output" 84248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 84268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output= 84278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ${skipped_export-false}; then 84308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "generating symbol list for \`$libname.la'" 84318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols="$output_objdir/$libname.exp" 84328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $export_symbols 84338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobjs=$output 84348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Append the command to create the export file. 84358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 84368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" 84378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$last_robj"; then 84388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" 84398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$save_libobjs" && 84438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating a temporary reloadable object file: $output" 84448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Loop through the commands generated above and execute them. 84468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs="$IFS"; IFS='~' 84478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for cmd in $concat_cmds; do 84488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 84498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_silent || { 84508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_expand "$cmd" 84518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "func_echo $func_quote_for_expand_result" 84528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 84538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval "$cmd" || { 84548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_exit=$? 84558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Restore the uninstalled library and exit 84578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_mode" = relink; then 84588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ( cd "$output_objdir" && \ 84598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM "${realname}T" && \ 84608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MV "${realname}U" "$realname" ) 84618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $lt_exit 84648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 84658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 84668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 84678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols_regex" && ${skipped_export-false}; then 84698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 84708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$MV "${export_symbols}T" "$export_symbols"' 84718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if ${skipped_export-false}; then 84758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -n "$include_expsyms"; then 84768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tmp_export_symbols="$export_symbols" 84778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" 84788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' 84798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$orig_export_symbols"; then 84828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The given exports_symbols file has to be filtered, so filter it. 84838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" 84848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FIXME: $output_objdir/$libname.filter potentially contains lots of 84858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # 's' commands which not all seds can handle. GNU sed should be fine 84868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # though. Also, the filter scales superlinearly with the number of 84878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # global variables. join(1) would be nice here, but unfortunately 84888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # isn't a blessed tool. 84898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter 84908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append delfiles " $export_symbols $output_objdir/$libname.filter" 84918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar export_symbols=$output_objdir/$libname.def 84928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols 84938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 84958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 84968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobjs=$output 84978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Restore the value of output. 84988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$save_output 84998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 85018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 85028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$libobjs" = "X " && libobjs= 85038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Expand the library linking commands again to reset the 85058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # value of $libobjs for piecewise linking. 85068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each of the archive commands. 85088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$module" = yes && test -n "$module_cmds" ; then 85098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 85108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$module_expsym_cmds 85118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 85128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$module_cmds 85138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 85158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 85168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$archive_expsym_cmds 85178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 85188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$archive_cmds 85198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$delfiles"; then 85248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Append the command to remove temporary files to $cmds. 85258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmds=\"\$cmds~\$RM $delfiles\" 85268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add any objects from preloaded convenience libraries 85298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlprefiles"; then 85308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar gentop="$output_objdir/${outputname}x" 85318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append generated " $gentop" 85328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_archives $gentop $dlprefiles 85348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append libobjs " $func_extract_archives_result" 85358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "X$libobjs" = "X " && libobjs= 85368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_ifs="$IFS"; IFS='~' 85398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for cmd in $cmds; do 85408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 85418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmd=\"$cmd\" 85428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_silent || { 85438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_expand "$cmd" 85448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval "func_echo $func_quote_for_expand_result" 85458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 85468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval "$cmd" || { 85478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar lt_exit=$? 85488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Restore the uninstalled library and exit 85508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_mode" = relink; then 85518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ( cd "$output_objdir" && \ 85528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM "${realname}T" && \ 85538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $MV "${realname}U" "$realname" ) 85548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $lt_exit 85578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 85588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 85598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar IFS="$save_ifs" 85608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Restore the uninstalled library and exit 85628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_mode" = relink; then 85638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? 85648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$convenience"; then 85668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$whole_archive_flag_spec"; then 85678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '${RM}r "$gentop"' 85688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 85728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Create links to the real library. 85758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for linkname in $linknames; do 85768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$realname" != "$linkname"; then 85778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' 85788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 85808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If -module or -export-dynamic was specified, set the dlname. 85828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$module" = yes || test "$export_dynamic" = yes; then 85838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # On all known operating systems, these are identical. 85848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlname="$soname" 85858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 85888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar obj) 85908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 85918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-dlopen' is ignored for objects" 85928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 85938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $deplibs" in 85958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *\ -l* | *\ -L*) 85968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-l' and \`-L' are ignored for objects" ;; 85978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 85988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 85998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$rpath" && \ 86008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-rpath' is ignored for objects" 86018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$xrpath" && \ 86038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-R' is ignored for objects" 86048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$vinfo" && \ 86068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-version-info' is ignored for objects" 86078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$release" && \ 86098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-release' is ignored for objects" 86108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $output in 86128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) 86138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$objs$old_deplibs" && \ 86148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "cannot build library object \`$output' from non-libtool objects" 86158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobj=$output 86178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_lo2o "$libobj" 86188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar obj=$func_lo2o_result 86198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 86208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 86218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libobj= 86228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar obj="$output" 86238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 86248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 86258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Delete the old objects. 86278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $obj $libobj 86288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Objects from convenience libraries. This assumes 86308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # single-version convenience libraries. Whenever we create 86318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # different ones for PIC/non-PIC, this we'll have to duplicate 86328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the extraction. 86338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_conv_objs= 86348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar gentop= 86358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # reload_cmds runs $LD directly, so let us get rid of 86368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # -Wl from whole_archive_flag_spec and hope we can get by with 86378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # turning comma into space.. 86388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wl= 86398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$convenience"; then 86418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$whole_archive_flag_spec"; then 86428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 86438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` 86448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 86458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar gentop="$output_objdir/${obj}x" 86468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append generated " $gentop" 86478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_archives $gentop $convenience 86498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_conv_objs="$reload_objs $func_extract_archives_result" 86508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If we're not building shared, we need to use non_pic_objs 86548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" 86558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Create the old-style object. 86578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 86588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output="$obj" 86608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$reload_cmds" 'exit $?' 86618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Exit if we aren't doing a library object file. 86638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$libobj"; then 86648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$gentop"; then 86658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '${RM}r "$gentop"' 86668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 86698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" != yes; then 86728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$gentop"; then 86738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '${RM}r "$gentop"' 86748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Create an invalid libtool object if no PIC, so that we don't 86778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # accidentally link it into a program. 86788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # $show "echo timestamp > $libobj" 86798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? 86808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 86818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$pic_flag" || test "$pic_mode" != default; then 86848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only do commands if we really have different PIC objects. 86858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar reload_objs="$libobjs $reload_conv_objs" 86868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output="$libobj" 86878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$reload_cmds" 'exit $?' 86888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$gentop"; then 86918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '${RM}r "$gentop"' 86928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 86938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 86958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 86968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 86978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar prog) 86988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 86998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin*) func_stripname '' '.exe' "$output" 87008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$func_stripname_result.exe;; 87018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$vinfo" && \ 87038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-version-info' is ignored for programs" 87048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$release" && \ 87068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`-release' is ignored for programs" 87078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$preload" = yes \ 87098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && test "$dlopen_support" = unknown \ 87108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && test "$dlopen_self" = unknown \ 87118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar && test "$dlopen_self_static" = unknown && \ 87128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." 87138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 87158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-rhapsody* | *-*-darwin1.[012]) 87168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # On Rhapsody replace the C library is the System framework 87178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` 87188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` 87198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 87208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 87238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-darwin*) 87248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't allow lazy linking, it breaks C++ global constructors 87258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # But is supposedly fixed on 10.4 or later (yay!). 87268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$tagname" = CXX ; then 87278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 87288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 10.[0123]) 87298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " ${wl}-bind_at_load" 87308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " ${wl}-bind_at_load" 87318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 87328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 87348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Time to change all our "foo.ltframework" stuff back to "-framework foo" 87358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 87368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` 87378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 87388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # move library search paths that coincide with paths to not yet 87428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # installed libraries to the beginning of the library search list 87438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar new_libs= 87448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for path in $notinst_path; do 87458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $new_libs " in 87468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" -L$path/$objdir "*) ;; 87478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 87488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $compile_deplibs " in 87498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" -L$path/$objdir "*) 87508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append new_libs " -L$path/$objdir" ;; 87518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 87538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 87558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $compile_deplibs; do 87568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 87578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) 87588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $new_libs " in 87598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $deplib "*) ;; 87608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append new_libs " $deplib" ;; 87618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 87638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append new_libs " $deplib" ;; 87648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 87668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_deplibs="$new_libs" 87678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append compile_command " $compile_deplibs" 87708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append finalize_command " $finalize_deplibs" 87718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$rpath$xrpath"; then 87738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If the user specified any rpath flags, then add them. 87748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $rpath $xrpath; do 87758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This is the magic to use -rpath. 87768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$finalize_rpath " in 87778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 87788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append finalize_rpath " $libdir" ;; 87798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 87808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 87818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 87828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 87838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now hardcode the library paths 87848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath= 87858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar hardcode_libdirs= 87868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $compile_rpath $finalize_rpath; do 87878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_flag_spec"; then 87888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_separator"; then 87898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$hardcode_libdirs"; then 87908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar hardcode_libdirs="$libdir" 87918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 87928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Just accumulate the unique libdirs. 87938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 87948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 87958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 87968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 87978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 87988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 87998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 88008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 88028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval flag=\"$hardcode_libdir_flag_spec\" 88038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rpath " $flag" 88048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$runpath_var"; then 88068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$perm_rpath " in 88078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 88088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append perm_rpath " $libdir" ;; 88098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 88108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 88128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) 88138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` 88148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case :$dllsearchpath: in 88158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *":$libdir:"*) ;; 88168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ::) dllsearchpath=$libdir;; 88178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append dllsearchpath ":$libdir";; 88188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 88198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case :$dllsearchpath: in 88208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *":$testbindir:"*) ;; 88218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ::) dllsearchpath=$testbindir;; 88228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append dllsearchpath ":$testbindir";; 88238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 88248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 88258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 88268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 88278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Substitute the hardcoded libdirs into the rpath. 88288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_separator" && 88298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$hardcode_libdirs"; then 88308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir="$hardcode_libdirs" 88318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval rpath=\" $hardcode_libdir_flag_spec\" 88328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_rpath="$rpath" 88348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 88358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath= 88368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar hardcode_libdirs= 88378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for libdir in $finalize_rpath; do 88388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_flag_spec"; then 88398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_separator"; then 88408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$hardcode_libdirs"; then 88418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar hardcode_libdirs="$libdir" 88428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 88438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Just accumulate the unique libdirs. 88448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 88458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 88468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 88478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 88488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" 88498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 88508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 88518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 88538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval flag=\"$hardcode_libdir_flag_spec\" 88548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rpath " $flag" 88558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$runpath_var"; then 88578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$finalize_perm_rpath " in 88588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $libdir "*) ;; 88598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append finalize_perm_rpath " $libdir" ;; 88608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 88618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 88638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Substitute the hardcoded libdirs into the rpath. 88648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$hardcode_libdir_separator" && 88658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$hardcode_libdirs"; then 88668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libdir="$hardcode_libdirs" 88678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval rpath=\" $hardcode_libdir_flag_spec\" 88688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_rpath="$rpath" 88708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 88718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$libobjs" && test "$build_old_libs" = yes; then 88728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Transform all the library objects into standard objects. 88738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 88748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` 88758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 88778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_generate_dlsyms "$outputname" "@PROGRAM@" "no" 88788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 88798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # template prelinking step 88808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$prelink_cmds"; then 88818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$prelink_cmds" 'exit $?' 88828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 88848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wrappers_required=yes 88858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 88868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cegcc* | *mingw32ce*) 88878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. 88888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wrappers_required=no 88898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 88908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* ) 88918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" != yes; then 88928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wrappers_required=no 88938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 88958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 88968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 88978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar wrappers_required=no 88988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 88998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 89008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 89018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$wrappers_required" = no; then 89028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Replace the output file specification. 89038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 89048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_command="$compile_command$compile_rpath" 89058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We have no uninstalled library dependencies, so finalize right now. 89078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit_status=0 89088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$link_command" 'exit_status=$?' 89098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$postlink_cmds"; then 89118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output" 89128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 89138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$postlink_cmds" 'exit $?' 89148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Delete the generated files. 89178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -f "$output_objdir/${outputname}S.${objext}"; then 89188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' 89198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $exit_status 89228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$compile_shlibpath$finalize_shlibpath"; then 89258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 89268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$finalize_shlibpath"; then 89288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 89298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_var= 89328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_var= 89338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$runpath_var"; then 89348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$perm_rpath"; then 89358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We should set the runpath_var. 89368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath= 89378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for dir in $perm_rpath; do 89388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rpath "$dir:" 89398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 89408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 89418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$finalize_perm_rpath"; then 89438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We should set the runpath_var. 89448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rpath= 89458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for dir in $finalize_perm_rpath; do 89468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rpath "$dir:" 89478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 89488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 89498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$no_install" = yes; then 89538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # We don't need to create a wrapper script. 89548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_command="$compile_var$compile_command$compile_rpath" 89558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Replace the output file specification. 89568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` 89578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Delete the old output file. 89588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $output 89598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Link the executable and exit 89608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$link_command" 'exit $?' 89618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$postlink_cmds"; then 89638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output" 89648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 89658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$postlink_cmds" 'exit $?' 89668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 89698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_action" = relink; then 89728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Fast installation is not supported 89738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_command="$compile_var$compile_command$compile_rpath" 89748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="$finalize_var$finalize_command$finalize_rpath" 89758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "this platform does not like uninstalled shared libraries" 89778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_warning "\`$output' will be relinked during installation" 89788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 89798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$fast_install" != no; then 89808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_command="$finalize_var$compile_command$finalize_rpath" 89818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$fast_install" = yes; then 89828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` 89838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 89848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # fast_install is set to needless 89858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command= 89868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 89888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_command="$compile_var$compile_command$compile_rpath" 89898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="$finalize_var$finalize_command$finalize_rpath" 89908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 89928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Replace the output file specification. 89948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 89958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Delete the old output files. 89978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname 89988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 89998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$link_command" 'exit $?' 90008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$postlink_cmds"; then 90028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output_objdir/$outputname" 90038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` 90048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$postlink_cmds" 'exit $?' 90058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 90068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now create the wrapper script. 90088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating $output" 90098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Quote the relink command for shipping. 90118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$relink_command"; then 90128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Preserve any variables that may affect compiler behavior 90138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for var in $variables_saved_for_relink; do 90148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval test -z \"\${$var+set}\"; then 90158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 90168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif eval var_value=\$$var; test -z "$var_value"; then 90178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="$var=; export $var; $relink_command" 90188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 90198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$var_value" 90208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 90218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 90228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 90238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="(cd `pwd`; $relink_command)" 90248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 90258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 90268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only actually do things if not in dry run mode. 90288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 90298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # win32 will think the script is a binary if it has 90308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # a .exe suffix, so we strip it off here. 90318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $output in 90328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.exe) func_stripname '' '.exe' "$output" 90338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output=$func_stripname_result ;; 90348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 90358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # test for cygwin because mv fails w/o .exe extensions 90368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 90378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin*) 90388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exeext=.exe 90398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.exe' "$outputname" 90408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar outputname=$func_stripname_result ;; 90418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) exeext= ;; 90428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 90438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host in 90448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin* | *mingw* ) 90458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname_and_basename "$output" "" "." 90468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output_name=$func_basename_result 90478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output_path=$func_dirname_result 90488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cwrappersource="$output_path/$objdir/lt-$output_name.c" 90498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cwrapper="$output_path/$output_name.exe" 90508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM $cwrappersource $cwrapper 90518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 90528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_emit_cwrapperexe_src > $cwrappersource 90548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # The wrapper executable is built using the $host compiler, 90568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # because it contains $host paths and files. If cross- 90578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # compiling, it, like the target executable, must be 90588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # executed on the $host or under an emulation environment. 90598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 90608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $LTCC $LTCFLAGS -o $cwrapper $cwrappersource 90618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $STRIP $cwrapper 90628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 90638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now, create the wrapper script for func_source use: 90658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_ltwrapper_scriptname $cwrapper 90668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM $func_ltwrapper_scriptname_result 90678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 90688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 90698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # note: this script will not be executed, so do not chmod. 90708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "x$build" = "x$host" ; then 90718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result 90728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 90738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_emit_wrapper no > $func_ltwrapper_scriptname_result 90748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 90758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 90768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 90778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar * ) 90788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM $output 90798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 90808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_emit_wrapper no > $output 90828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar chmod +x $output 90838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 90848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 90858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 90868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 90878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 90888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 90898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # See if we need to build an old-fashioned archive. 90918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for oldlib in $oldlibs; do 90928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 90938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = convenience; then 90948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs="$libobjs_save $symfileobj" 90958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar addlibs="$convenience" 90968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 90978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 90988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$build_libtool_libs" = module; then 90998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs="$libobjs_save" 91008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar build_libtool_libs=no 91018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 91028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs="$old_deplibs $non_pic_objects" 91038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$preload" = yes && test -f "$symfileobj"; then 91048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append oldobjs " $symfileobj" 91058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 91068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 91078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar addlibs="$old_convenience" 91088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 91098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 91108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$addlibs"; then 91118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar gentop="$output_objdir/${outputname}x" 91128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append generated " $gentop" 91138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 91148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_archives $gentop $addlibs 91158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append oldobjs " $func_extract_archives_result" 91168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 91178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 91188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each command in the archive commands. 91198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 91208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$old_archive_from_new_cmds 91218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 91228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 91238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add any objects from preloaded convenience libraries 91248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$dlprefiles"; then 91258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar gentop="$output_objdir/${outputname}x" 91268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append generated " $gentop" 91278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 91288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_extract_archives $gentop $dlprefiles 91298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append oldobjs " $func_extract_archives_result" 91308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 91318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 91328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # POSIX demands no paths to be encoded in archives. We have 91338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # to avoid creating archives with duplicate basenames if we 91348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # might have to extract them afterwards, e.g., when creating a 91358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # static archive out of a convenience library, or when linking 91368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the entirety of a libtool archive into another (currently 91378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # not supported by libtool). 91388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if (for obj in $oldobjs 91398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 91408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$obj" 91418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$func_basename_result" 91428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done | sort | sort -uc >/dev/null 2>&1); then 91438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 91448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 91458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar echo "copying selected object files to avoid basename conflicts..." 91468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar gentop="$output_objdir/${outputname}x" 91478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append generated " $gentop" 91488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mkdir_p "$gentop" 91498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_oldobjs=$oldobjs 91508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs= 91518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar counter=1 91528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj in $save_oldobjs 91538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 91548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$obj" 91558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objbase="$func_basename_result" 91568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $oldobjs " in 91578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar " ") oldobjs=$obj ;; 91588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\ /]"$objbase "*) 91598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar while :; do 91608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Make sure we don't pick an alternate name that also 91618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # overlaps. 91628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newobj=lt$counter-$objbase 91638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $counter + 1 91648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar counter=$func_arith_result 91658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $oldobjs " in 91668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *[\ /]"$newobj "*) ;; 91678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) if test ! -f "$gentop/$newobj"; then break; fi ;; 91688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 91698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 91708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 91718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append oldobjs " $gentop/$newobj" 91728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 91738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append oldobjs " $obj" ;; 91748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 91758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 91768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 91778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 91788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tool_oldlib=$func_to_tool_file_result 91798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmds=\"$old_archive_cmds\" 91808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 91818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $cmds" 91828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$func_len_result 91838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then 91848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$old_archive_cmds 91858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -n "$archiver_list_spec"; then 91868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "using command file archive linking..." 91878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj in $oldobjs 91888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 91898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$obj" 91908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO "$func_to_tool_file_result" 91918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done > $output_objdir/$libname.libcmd 91928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_to_tool_file "$output_objdir/$libname.libcmd" 91938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs=" $archiver_list_spec$func_to_tool_file_result" 91948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar cmds=$old_archive_cmds 91958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 91968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the command line is too long to link in one step, link in parts 91978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "using piecewise archive linking..." 91988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_RANLIB=$RANLIB 91998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar RANLIB=: 92008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objlist= 92018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar concat_cmds= 92028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar save_oldobjs=$oldobjs 92038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs= 92048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Is there a better way of finding the last object in the list? 92058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj in $save_oldobjs 92068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 92078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar last_oldobj=$obj 92088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 92098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval test_cmds=\"$old_archive_cmds\" 92108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $test_cmds" 92118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len0=$func_len_result 92128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$len0 92138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for obj in $save_oldobjs 92148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 92158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_len " $obj" 92168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_arith $len + $func_len_result 92178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$func_arith_result 92188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append objlist " $obj" 92198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$len" -lt "$max_cmd_len"; then 92208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 92218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 92228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the above command should be used before it gets too long 92238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs=$objlist 92248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$obj" = "$last_oldobj" ; then 92258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar RANLIB=$save_RANLIB 92268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 92288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 92298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar objlist= 92308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar len=$len0 92318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 92338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar RANLIB=$save_RANLIB 92348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar oldobjs=$objlist 92358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$oldobjs" = "X" ; then 92368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmds=\"\$concat_cmds\" 92378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 92388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 92398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$cmds" 'exit $?' 92438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 92448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 92458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$generated" && \ 92468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "${RM}r$generated" 92478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 92488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Now create the libtool archive. 92498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $output in 92508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 92518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar old_library= 92528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$build_old_libs" = yes && old_library="$libname.$libext" 92538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_verbose "creating $output" 92548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 92558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Preserve any variables that may affect compiler behavior 92568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for var in $variables_saved_for_relink; do 92578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if eval test -z \"\${$var+set}\"; then 92588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" 92598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif eval var_value=\$$var; test -z "$var_value"; then 92608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="$var=; export $var; $relink_command" 92618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 92628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_quote_for_eval "$var_value" 92638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 92648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 92668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Quote the link command for shipping. 92678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 92688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` 92698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$hardcode_automatic" = yes ; then 92708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command= 92718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 92738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only create the output if not a dry run. 92748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_dry_run || { 92758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for installed in no yes; do 92768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$installed" = yes; then 92778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -z "$install_libdir"; then 92788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar break 92798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 92808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar output="$output_objdir/$outputname"i 92818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Replace all uninstalled libtool libraries with the installed ones 92828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdependency_libs= 92838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for deplib in $dependency_libs; do 92848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $deplib in 92858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 92868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$deplib" 92878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name="$func_basename_result" 92888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_resolve_sysroot "$deplib" 92898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` 92908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libdir" && \ 92918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$deplib' is not a valid libtool archive" 92928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" 92938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 92948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -L*) 92958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname -L '' "$deplib" 92968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_replace_sysroot "$func_stripname_result" 92978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdependency_libs " -L$func_replace_sysroot_result" 92988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 92998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -R*) 93008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname -R '' "$deplib" 93018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_replace_sysroot "$func_stripname_result" 93028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdependency_libs " -R$func_replace_sysroot_result" 93038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 93048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append newdependency_libs " $deplib" ;; 93058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 93068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 93078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dependency_libs="$newdependency_libs" 93088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdlfiles= 93098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 93108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $dlfiles; do 93118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $lib in 93128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 93138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$lib" 93148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name="$func_basename_result" 93158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 93168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libdir" && \ 93178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$lib' is not a valid libtool archive" 93188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" 93198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 93208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append newdlfiles " $lib" ;; 93218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 93228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 93238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlfiles="$newdlfiles" 93248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdlprefiles= 93258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $dlprefiles; do 93268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $lib in 93278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 93288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Only pass preopened files to the pseudo-archive (for 93298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # eventual linking with the app. that links it) if we 93308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # didn't already link the preopened objects directly into 93318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # the library: 93328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$lib" 93338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name="$func_basename_result" 93348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 93358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$libdir" && \ 93368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_error "\`$lib' is not a valid libtool archive" 93378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" 93388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 93398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 93408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 93418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefiles="$newdlprefiles" 93428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 93438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdlfiles= 93448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $dlfiles; do 93458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $lib in 93468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 93478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) abs=`pwd`"/$lib" ;; 93488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 93498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlfiles " $abs" 93508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 93518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlfiles="$newdlfiles" 93528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar newdlprefiles= 93538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for lib in $dlprefiles; do 93548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $lib in 93558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 93568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) abs=`pwd`"/$lib" ;; 93578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 93588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append newdlprefiles " $abs" 93598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 93608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dlprefiles="$newdlprefiles" 93618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 93628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $RM $output 93638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # place dlname in correct position for cygwin 93648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # In fact, it would be nice if we could use this code for all target 93658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # systems that can't hard-code library paths into their executables 93668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # and that have no shared library path variable independent of PATH, 93678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # but it turns out we can't easily determine that from inspecting 93688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # libtool variables, so we have to hard-code the OSs to which it 93698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # applies here; at the moment, that means platforms that use the PE 93708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # object format with DLL files. See the long comment at the top of 93718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # tests/bindir.at for full details. 93728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tdlname=$dlname 93738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $host,$output,$installed,$module,$dlname in 93748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) 93758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # If a -bindir argument was supplied, place the dll there. 93768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "x$bindir" != x ; 93778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar then 93788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_relative_path "$install_libdir" "$bindir" 93798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tdlname=$func_relative_path_result$dlname 93808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 93818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Otherwise fall back on heuristic. 93828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar tdlname=../bin/$dlname 93838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 93848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 93858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 93868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO > $output "\ 93878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# $outputname - a libtool library file 93888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION 93898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# 93908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Please DO NOT delete this file! 93918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# It is necessary for linking the library. 93928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 93938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The name that we can dlopen(3). 93948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardlname='$tdlname' 93958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 93968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Names of this library. 93978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlibrary_names='$library_names' 93988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 93998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The name of the static archive. 94008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarold_library='$old_library' 94018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Linker flags that can not go in dependency_libs. 94038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarinherited_linker_flags='$new_inherited_linker_flags' 94048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Libraries that this one depends upon. 94068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardependency_libs='$dependency_libs' 94078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Names of additional weak libraries provided by this library 94098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarweak_library_names='$weak_libs' 94108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Version information for $libname. 94128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarcurrent=$current 94138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarage=$age 94148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarrevision=$revision 94158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Is this an already installed library? 94178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarinstalled=$installed 94188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Should we warn about portability when linking against -modules? 94208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarshouldnotlink=$module 94218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Files to dlopen/dlpreopen 94238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardlopen='$dlfiles' 94248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwardlpreopen='$dlprefiles' 94258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Directory that this library needs to be installed in: 94278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarlibdir='$install_libdir'" 94288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$installed" = no && test "$need_relink" = yes; then 94298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $ECHO >> $output "\ 94308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarrelink_command=\"$relink_command\"" 94318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 94328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 94338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar } 94348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do a symbolic link so that the libtool archive can be found in 94368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # LD_LIBRARY_PATH before the program is installed. 94378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' 94388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 94398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 94408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_SUCCESS 94418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 94428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ test "$opt_mode" = link || test "$opt_mode" = relink; } && 94448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mode_link ${1+"$@"} 94458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# func_mode_uninstall arg... 94488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfunc_mode_uninstall () 94498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ 94508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar $opt_debug 94518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar RM="$nonopt" 94528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar files= 94538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rmforce= 94548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit_status=0 94558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # This variable tells wrapper scripts just to set variables rather 94578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # than running their programs. 94588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar libtool_install_magic="$magic" 94598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for arg 94618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar do 94628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $arg in 94638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -f) func_append RM " $arg"; rmforce=yes ;; 94648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar -*) func_append RM " $arg" ;; 94658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append files " $arg" ;; 94668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 94678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 94688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -z "$RM" && \ 94708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "you must specify an RM program" 94718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rmdirs= 94738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for file in $files; do 94758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_dirname "$file" "" "." 94768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar dir="$func_dirname_result" 94778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$dir" = X.; then 94788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar odir="$objdir" 94798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 94808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar odir="$dir/$objdir" 94818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 94828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_basename "$file" 94838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar name="$func_basename_result" 94848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$opt_mode" = uninstall && odir="$dir" 94858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Remember odir for removal later, being careful to avoid duplicates 94878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_mode" = clean; then 94888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $rmdirs " in 94898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $odir "*) ;; 94908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) func_append rmdirs " $odir" ;; 94918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 94928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 94938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 94948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Don't error if the file doesn't exist and rm -f was used. 94958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if { test -L "$file"; } >/dev/null 2>&1 || 94968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar { test -h "$file"; } >/dev/null 2>&1 || 94978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -f "$file"; then 94988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar : 94998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test -d "$file"; then 95008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit_status=1 95018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 95028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar elif test "$rmforce" = yes; then 95038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar continue 95048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar rmfiles="$file" 95078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $name in 95098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.la) 95108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Possibly a libtool archive, so verify it. 95118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_lalib_p "$file"; then 95128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source $dir/$name 95138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Delete the libtool libraries and symlinks. 95158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for n in $library_names; do 95168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $odir/$n" 95178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 95188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$old_library" && func_append rmfiles " $odir/$old_library" 95198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case "$opt_mode" in 95218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar clean) 95228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case " $library_names " in 95238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *" $dlname "*) ;; 95248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; 95258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 95268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" 95278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 95288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar uninstall) 95298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$library_names"; then 95308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each command in the postuninstall commands. 95318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 95328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$old_library"; then 95358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do each command in the old_postuninstall commands. 95368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' 95378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # FIXME: should reinstall the best remaining shared library. 95398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 95408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 95418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 95438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.lo) 95458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Possibly a libtool object, so verify it. 95468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_lalib_p "$file"; then 95478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Read the .lo file 95498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source $dir/$name 95508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add PIC object to the list of files to remove. 95528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$pic_object" && 95538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$pic_object" != none; then 95548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $dir/$pic_object" 95558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Add non-PIC object to the list of files to remove. 95588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -n "$non_pic_object" && 95598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar test "$non_pic_object" != none; then 95608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $dir/$non_pic_object" 95618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95628ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95638ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 95648ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95658ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *) 95668ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$opt_mode" = clean ; then 95678ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar noexename=$name 95688ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar case $file in 95698ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar *.exe) 95708ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.exe' "$file" 95718ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar file=$func_stripname_result 95728ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_stripname '' '.exe' "$name" 95738ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar noexename=$func_stripname_result 95748ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # $file with .exe has already been added to rmfiles, 95758ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # add $file without .exe 95768ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $file" 95778ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 95788ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 95798ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Do a test to see if this is a libtool program. 95808ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_ltwrapper_p "$file"; then 95818ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if func_ltwrapper_executable_p "$file"; then 95828ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_ltwrapper_scriptname "$file" 95838ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command= 95848ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source $func_ltwrapper_scriptname_result 95858ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $func_ltwrapper_scriptname_result" 95868ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar else 95878ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar relink_command= 95888ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_source $dir/$noexename 95898ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95908ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 95918ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # note $name still contains .exe if it was in $file originally 95928ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # as does the version of $file that was added into $rmfiles 95938ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $odir/$name $odir/${name}S.${objext}" 95948ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "$fast_install" = yes && test -n "$relink_command"; then 95958ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $odir/lt-$name" 95968ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 95978ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test "X$noexename" != "X$name" ; then 95988ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_append rmfiles " $odir/lt-${noexename}.c" 95998ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 96008ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 96018ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 96028ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar ;; 96038ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar esac 96048ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "$RM $rmfiles" 'exit_status=1' 96058ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 96068ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96078ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar # Try to remove the ${objdir}s in the directories where we deleted files 96088ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar for dir in $rmdirs; do 96098ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar if test -d "$dir"; then 96108ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_show_eval "rmdir $dir >/dev/null 2>&1" 96118ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar fi 96128ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar done 96138ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96148ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $exit_status 96158ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 96168ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96178ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && 96188ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_mode_uninstall ${1+"$@"} 96198ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96208ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartest -z "$opt_mode" && { 96218ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar help="$generic_help" 96228ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "you must specify a MODE" 96238ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar} 96248ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96258ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwartest -z "$exec_cmd" && \ 96268ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar func_fatal_help "invalid operation mode \`$opt_mode'" 96278ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96288ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarif test -n "$exec_cmd"; then 96298ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar eval exec "$exec_cmd" 96308ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar exit $EXIT_FAILURE 96318ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarfi 96328ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96338ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarexit $exit_status 96348ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96358ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96368ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# The TAGs below are defined such that we never get into a situation 96378ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# in which we disable both kinds of libraries. Given conflicting 96388ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# choices, we go for a static library, that is the most portable, 96398ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# since we can't tell whether shared libraries were disabled because 96408ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# the user asked for that or because the platform doesn't support 96418ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# them. This is particularly important on AIX, because we don't 96428ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# support having both static and shared libraries enabled at the same 96438ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# time on that platform, so we default to a shared-only configuration. 96448ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# If a disable-shared tag is given, we'll fallback to a static-only 96458ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# configuration. But we'll never go from static-only to shared-only. 96468ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96478ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 96488ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbuild_libtool_libs=no 96498ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbuild_old_libs=yes 96508ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ### END LIBTOOL TAG CONFIG: disable-shared 96518ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96528ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ### BEGIN LIBTOOL TAG CONFIG: disable-static 96538ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwarbuild_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 96548ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# ### END LIBTOOL TAG CONFIG: disable-static 96558ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 96568ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# Local Variables: 96578ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# mode:shell-script 96588ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# sh-indentation:2 96598ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# End: 96608ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar# vi:sw=2 96618ba9c0c5d4425ee8c2b0e363aa55d5877371cd1dpkanwar 9662