1bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#! /bin/sh 2bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libtoolT - Provide generalized library-building support services. 4bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated automatically by (GNU cmockery 0.1.2) 5bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NOTE: Changes made to this file will be lost: look at ltmain.sh. 6bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 7bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 8bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Free Software Foundation, Inc. 9bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 10bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This file is part of GNU Libtool: 11bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 12bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 13bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is free software; you can redistribute it and/or modify 14bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# it under the terms of the GNU General Public License as published by 15bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the Free Software Foundation; either version 2 of the License, or 16bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# (at your option) any later version. 17bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 18bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is distributed in the hope that it will be useful, but 19bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# WITHOUT ANY WARRANTY; without even the implied warranty of 20bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# General Public License for more details. 22bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 23bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# You should have received a copy of the GNU General Public License 24bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# along with this program; if not, write to the Free Software 25bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 26bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 27bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# As a special exception to the GNU General Public License, if you 28bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# distribute this file as part of a program that contains a 29bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration script generated by Autoconf, you may include it under 30bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the same distribution terms that you use for the rest of that program. 31bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 32bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A sed program that does not truncate output. 33bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSED="/bin/sed" 34bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 35bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed that helps us avoid accidentally triggering echo(1) options like -n. 36bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed="/bin/sed -e 1s/^X//" 37bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 38bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The HP-UX ksh and POSIX shell print the target directory to stdout 39bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if CDPATH is set. 40bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 41bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 42bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The names of the tagged configurations supported by this script. 43bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavailable_tags=" CXX" 44bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 45bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL CONFIG 46bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 47bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Libtool was configured on host battlefront.corp.google.com: 48bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 49bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shell to use when invoking shell scripts. 50bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSHELL="/bin/sh" 51bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 52bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build shared libraries. 53bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_libs=yes 54bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 55bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build static libraries. 56bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_old_libs=yes 57bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 58bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to add -lc for building shared libraries. 59bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_need_lc=no 60bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 61bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to disallow shared libs when runtime libs are static 62bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_libtool_libs_with_static_runtimes=no 63bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 64bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to optimize for fast installation. 65bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfast_install=yes 66bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 67bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The host system. 68bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_alias= 69bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost=x86_64-unknown-linux-gnu 70bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_os=linux-gnu 71bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 72bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The build system. 73bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_alias= 74bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild=x86_64-unknown-linux-gnu 75bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_os=linux-gnu 76bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 77bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An echo program that does not interpret backslashes. 78bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonecho="echo" 79bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 80bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The archiver. 81bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR="ar" 82bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR_FLAGS="cru" 83bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 84bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A C compiler. 85bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCC="gcc" 86bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 87bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# LTCC compiler flags. 88bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCFLAGS="-g -O2" 89bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 90bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A language-specific compiler. 91bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCC="gcc" 92bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 93bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is the compiler the GNU C compiler? 94bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwith_gcc=yes 95bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 96bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An ERE matcher. 97bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEGREP="grep -E" 98bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 99bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The linker used to build libraries. 100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLD="/usr/bin/ld -m elf_i386" 101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need hard or soft links. 103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLN_S="ln -s" 104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A BSD-compatible nm program. 106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonNM="/usr/bin/nm -B" 107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A symbol stripping program 109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSTRIP="strip" 110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used to examine libraries when file_magic_cmd begins "file" 112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMAGIC_CMD=file 113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: DLL creation program. 115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonDLLTOOL="dlltool" 116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: object dumper. 118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonOBJDUMP="objdump" 119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: assembler. 121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAS="as" 122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of the directory that contains temporary libtool files. 124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjdir=.libs 125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to create reloadable object files. 127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_flag=" -r" 128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" 129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to pass a linker flag through the compiler. 131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwl="-Wl," 132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Object file suffix (normally "o"). 134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjext="o" 135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Old archive suffix (normally "a"). 137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibext="a" 138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shared library suffix (normally ".so"). 140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshrext_cmds='.so' 141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Executable file suffix (normally ""). 143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexeext="" 144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Additional compiler flags for building library objects. 146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_flag=" -fPIC -DPIC" 147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_mode=default 148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# What is the maximum length of a command? 150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmax_cmd_len=131072 151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Does compiler simultaneously support -c and -o options? 153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_c_o="yes" 154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Must we lock files when doing compilation? 156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_locks="no" 157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need the lib prefix for modules? 159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_lib_prefix=no 160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need a version for libraries? 162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_version=no 163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen is supported. 165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_support=unknown 166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of programs is supported. 168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self=unknown 169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of statically linked programs is supported. 171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self_static=unknown 172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to prevent dynamic linking. 174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_static_flag="-static" 175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to turn off builtin functions. 177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_builtin_flag=" -fno-builtin" 178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to allow reflexive dlopens. 180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_dynamic_flag_spec="\${wl}--export-dynamic" 181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate shared objects directly from archives. 183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwhole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" 184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate thread-safe objects. 186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonthread_safe_flag_spec="" 187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Library versioning type. 189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonversion_type=linux 190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Format of library name prefix. 192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibname_spec="lib\$name" 193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# List of archive names. First name is the real one, the rest are links. 195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The last name is the one that the linker finds with -lNAME. 196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" 197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The coded name of the library, if different from the real name. 199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsoname_spec="\${libname}\${release}\${shared_ext}\$major" 200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install an old-style archive. 202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRANLIB="ranlib" 203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib" 204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib" 205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postuninstall_cmds="" 206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create an old-style archive from a shared archive. 208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_new_cmds="" 209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create a temporary old-style archive to link instead of a shared archive. 211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_expsyms_cmds="" 212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install a shared archive. 214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" 215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ 216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ 217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ 218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib" 219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostinstall_cmds="" 220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostuninstall_cmds="" 221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build a loadable module (assumed same as above if empty) 223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_cmds="" 224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_expsym_cmds="" 225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands to strip libraries. 227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_striplib="strip --strip-debug" 228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstriplib="strip --strip-unneeded" 229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a 231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredep_objects="" 233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a 235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdep_objects="" 237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a 239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredeps="" 241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a 243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdeps="" 245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The library search path used internally by the compiler when linking 247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a shared library. 248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_lib_search_path="" 249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Method to check whether dependent libraries are shared objects. 251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondeplibs_check_method="pass_all" 252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Command to use when deplibs_check_method == file_magic. 254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfile_magic_cmd="\$MAGIC_CMD" 255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that allows shared libraries with undefined symbols to be built. 257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_undefined_flag="" 258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that forces no undefined symbols. 260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_undefined_flag="" 261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to finish a libtool library installation in a directory. 263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" 264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Same as above, but a single script fragment to be evaled but not shown. 266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_eval="" 267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Take the output of nm and produce a listing of raw symbols and C names. 269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" 270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a proper C declaration 272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'" 273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a C name address pair 275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'" 276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library runtime path variable. 278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrunpath_var=LD_RUN_PATH 279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library path variable. 281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_var=LD_LIBRARY_PATH 282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is shlibpath searched before the hard-coded library search path? 284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_overrides_runpath=no 285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to hardcode a shared library path into an executable. 287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_action=immediate 288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we should hardcode library paths into libraries. 290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_into_libs=yes 291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag to hardcode $libdir into a binary during linking. 293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This must work even if $libdir does not exist. 294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir" 295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If ld is used when linking, flag to hardcode $libdir into 297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a binary during linking. This must work even if $libdir does 298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# not exist. 299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec_ld="" 300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need a single -rpath flag with a separated argument. 302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_separator="" 303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using DIR/libNAME during linking hardcodes DIR into the 305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary. 306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_direct=no 307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using the -LDIR flag during linking hardcodes DIR into the 309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary. 310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_minus_L=no 311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into 313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the resulting binary. 314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_shlibpath_var=unsupported 315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if building a shared library automatically hardcodes DIR into the library 317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# and all subsequent libraries and executables linked against it. 318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_automatic=no 319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Variables whose values should be saved in libtool wrapper scripts and 321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# restored at relink time. 322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvariables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" 323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether libtool must link a program against all its dependency libraries. 325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_all_deplibs=no 326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compile-time system search path for libraries 328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_search_path_spec=" /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../ /lib/i486-linux-gnu/4.0.3/ /lib/ /usr/lib/i486-linux-gnu/4.0.3/ /usr/lib/" 329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Run-time system search path for libraries 331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas " 332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Fix the shell variable $srcfile for the compiler. 334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfix_srcfile_path="" 335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if exported symbols are required. 337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonalways_export_symbols=no 338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to list exported symbols. 340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" 341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to extract the exported symbol list from a shared archive. 343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonextract_expsyms_cmds="" 344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that should not be listed in the preloaded symbols. 346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexclude_expsyms="_GLOBAL_OFFSET_TABLE_" 347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that must always be exported. 349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninclude_expsyms="" 350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL CONFIG 352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ltmain.sh - Provide generalized library-building support services. 354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NOTE: Changing this file will not affect anything until you rerun configure. 355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Free Software Foundation, Inc. 358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is free software; you can redistribute it and/or modify 361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# it under the terms of the GNU General Public License as published by 362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the Free Software Foundation; either version 2 of the License, or 363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# (at your option) any later version. 364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is distributed in the hope that it will be useful, but 366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# WITHOUT ANY WARRANTY; without even the implied warranty of 367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# General Public License for more details. 369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# You should have received a copy of the GNU General Public License 371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# along with this program; if not, write to the Free Software 372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# As a special exception to the GNU General Public License, if you 375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# distribute this file as part of a program that contains a 376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration script generated by Autoconf, you may include it under 377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the same distribution terms that you use for the rest of that program. 378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbasename="s,^.*/,,g" 380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# is ksh but when the shell is invoked as "sh" and the current value of 383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the _XPG environment variable is not equal to 1 (one), the special 384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# positional parameter $0, within a function call, is the name of the 385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# function. 386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprogpath="$0" 387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of this program: 389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprogname=`echo "$progpath" | $SED $basename` 390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodename="$progname" 391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Global variables: 393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEXIT_SUCCESS=0 394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEXIT_FAILURE=1 395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonPROGRAM=ltmain.sh 397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonPACKAGE=libtool 398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonVERSION="1.5.22 Debian 1.5.22-2" 399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" 400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# See if we are running on zsh, and set the options which allow our 402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# commands through without removal of \ escapes. 403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "${ZSH_VERSION+set}" ; then 404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson setopt NO_GLOB_SUBST 405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Check that we have a working $echo. 408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "X$1" = X--no-reexec; then 409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Discard the --no-reexec flag, and continue. 410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelif test "X$1" = X--fallback-echo; then 412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Avoid inline document here, it may be left over 413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Yippee, $echo works! 416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelse 418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Restart under the correct shell, and then maybe $echo will work. 419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exec $SHELL "$progpath" --no-reexec ${1+"$@"} 420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "X$1" = X--fallback-echo; then 423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # used as fallback echo 424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat <<EOF 426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$* 427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondefault_mode= 432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhelp="Try \`$progname --help' for more information." 433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmagic="%%%MAGIC variable%%%" 434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmkdir="mkdir" 435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmv="mv -f" 436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrm="rm -f" 437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed substitution that helps us do robust quoting. It backslashifies 439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# metacharacters that are still active within double-quoted strings. 440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed="${SED}"' -e 1s/^X//' 441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# test EBCDIC or ASCII 443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase `echo X|tr X '\101'` in 444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson A) # ASCII based system 445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson SP2NL='tr \040 \012' 447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson NL2SP='tr \015\012 \040\040' 448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) # EBCDIC based system 450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson SP2NL='tr \100 \n' 451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson NL2SP='tr \r\n \100\100' 452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac 454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NLS nuisances. 456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Only set LANG and LC_ALL to C if already set. 457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# These must not be set unconditionally because not all systems understand 458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# e.g. LANG=C (notably SCO). 459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# We save the old values to restore during execute mode. 460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "${LC_ALL+set}" = set; then 461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL 462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "${LANG+set}" = set; then 464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_LANG="$LANG"; LANG=C; export LANG 465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Make sure IFS has a sensible default 468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_nl=' 469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson' 470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIFS=" $lt_nl" 471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: not configured to build any kind of library" 1>&2 474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Global variables. 479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmode=$default_mode 480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnonopt= 481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprev= 482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprevopt= 483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrun= 484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshow="$echo" 485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshow_help= 486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexecute_dlfiles= 487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonduplicate_deps=no 488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpreserve_args= 489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlo2o="s/\\.lo\$/.${objext}/" 490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsono2lo="s/\\.${objext}\$/.lo/" 491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson##################################### 493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shell function definitions: 494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This seems to be the best place for them 495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_mktempdir [string] 497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Make a temporary directory that won't clash with other running 498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libtool processes, and avoids race conditions if possible. If 499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# given, STRING is the basename for that directory. 500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_mktempdir () 501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_template="${TMPDIR-/tmp}/${1-$progname}" 503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$run" = ":"; then 505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Return a directory name, but don't create it in dry-run mode 506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_tmpdir="${my_template}-$$" 507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If mktemp works, use that first and foremost 510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -d "$my_tmpdir"; then 513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Failing that, at least try and use $RANDOM to avoid a race 514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_tmpdir="${my_template}-${RANDOM-0}$$" 515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_mktempdir_umask=`umask` 517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson umask 0077 518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $mkdir "$my_tmpdir" 519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson umask $save_mktempdir_umask 520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If we're not in dry-run mode, bomb out on failure 523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -d "$my_tmpdir" || { 524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "X$my_tmpdir" | $Xsed 530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_win32_libid arg 534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# return the library type of file 'arg' 535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Need a lot of goo to handle *both* DLLs and import libs 537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Has to be a shell function in order to 'eat' the argument 538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# that is supplied when $file_magic_command is called. 539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_win32_libid () 540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson win32_libid_type="unknown" 542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson win32_fileres=`file -L $1 2>/dev/null` 543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $win32_fileres in 544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *ar\ archive\ import\ library*) # definitely import 545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson win32_libid_type="x86 archive import" 546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *ar\ archive*) # could be an import, or static 548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson win32_nmres=`eval $NM -f posix -A $1 | \ 551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` 552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $win32_nmres in 553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson import*) win32_libid_type="x86 archive import";; 554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) win32_libid_type="x86 archive static";; 555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *DLL*) 559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson win32_libid_type="x86 DLL" 560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *executable*) # but shell scripts are "executable" too... 562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $win32_fileres in 563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *MS\ Windows\ PE\ Intel*) 564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson win32_libid_type="x86 DLL" 565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo $win32_libid_type 570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_infer_tag arg 574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Infer tagged configuration to use if any are available and 575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if one wasn't chosen via the "--tag" command line option. 576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Only attempt this if the compiler in the base compile 577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# command doesn't match the default compiler. 578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# arg is usually of the form 'gcc ...' 579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_infer_tag () 580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$available_tags" && test -z "$tagname"; then 582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson CC_quoted= 583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg in $CC; do 584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson CC_quoted="$CC_quoted $arg" 590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $@ in 592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Blanks in the command may have been stripped by the calling shell, 593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # but not from the CC environment variable when configure was run. 594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Blanks at the start of $base_compile will cause this to fail 596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # if we don't check for them as well. 597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for z in $available_tags; do 599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Evaluate the configuration. 601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson CC_quoted= 603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg in $CC; do 604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Double-quote args containing other shell metacharacters. 605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson CC_quoted="$CC_quoted $arg" 611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$@ " in 613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The compiler in the base compile command matches 615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the one in the tagged configuration. 616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Assume this is the tagged configuration we want. 617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tagname=$z 618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If $tagname still isn't set, then no tagged configuration 624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # was found and let the user know that the "--tag" command 625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # line option must be used. 626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$tagname"; then 627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: unable to infer tagged configuration" 628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: specify a tag with \`--tag'" 1>&2 629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# else 631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $echo "$modename: using $tagname tagged configuration" 632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_extract_an_archive dir oldlib 640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_extract_an_archive () 641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson f_ex_an_ar_dir="$1"; shift 643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson f_ex_an_ar_oldlib="$1" 644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_extract_archives gentop oldlib ... 656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_extract_archives () 657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_gentop="$1"; shift 659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_oldlibs=${1+"$@"} 660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_oldobjs="" 661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_xlib="" 662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_xabs="" 663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_xdir="" 664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_status="" 665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $my_gentop" 667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r "$my_gentop" 668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mkdir $my_gentop" 669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $mkdir "$my_gentop" 670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_status=$? 671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $my_status 673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for my_xlib in $my_oldlibs; do 676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Extract the objects. 677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $my_xlib in 678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) my_xabs=`pwd`"/$my_xlib" ;; 680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_xdir="$my_gentop/$my_xlib" 683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $my_xdir" 685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r "$my_xdir" 686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mkdir $my_xdir" 687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $mkdir "$my_xdir" 688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=$? 689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $exit_status 691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-darwin*) 694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "Extracting $my_xabs" 695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do not bother doing anything if just a dry run 696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$run"; then 697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_orig_dir=`pwd` 698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cd $my_xdir || exit $? 699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_archive=$my_xabs 700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_curdir=`pwd` 701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$darwin_arches"; then 704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_arch= 706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$darwin_base_archive has multiple architectures $darwin_arches" 707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for darwin_arch in $darwin_arches ; do 708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_extract_an_archive "`pwd`" "${darwin_base_archive}" 712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cd "$darwin_curdir" 713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # $darwin_arches 715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ## Okay now we have a bunch of thin objects, gotta fatten them up :) 716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_file= 718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_files= 719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for darwin_file in $darwin_filelist; do 720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lipo -create -output "$darwin_file" $darwin_files 722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # $darwin_filelist 723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ${rm}r unfat-$$ 724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cd "$darwin_orig_dir" 725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cd "$darwin_orig_dir" 727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_extract_an_archive "$my_xdir" "$my_xabs" 728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $darwin_arches 729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $run 730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_extract_an_archive "$my_xdir" "$my_xabs" 733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_extract_archives_result="$my_oldobjs" 738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# End of Shell function definitions 740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson##################################### 741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Darwin sucks 743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoneval std_shrext=\"$shrext_cmds\" 744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=no 746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Parse our command line options once, thoroughly. 748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwhile test "$#" -gt 0 749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondo 750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$1" 751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) optarg= ;; 756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the previous option needs an argument, assign it. 759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$prev"; then 760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $prev in 761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson execute_dlfiles) 762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson execute_dlfiles="$execute_dlfiles $arg" 763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tag) 765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tagname="$arg" 766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson preserve_args="${preserve_args}=$arg" 767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check whether tagname contains only valid characters 769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $tagname in 770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[!-_A-Za-z0-9,/]*) 771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$progname: invalid tag name: $tagname" 1>&2 772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $tagname in 777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson CC) 778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't test for the "default" C tag, as we know, it's there, but 779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # not specially marked. 780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson taglist="$taglist $tagname" 784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Evaluate the configuration. 785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$progname: ignoring unknown tag $tagname" 1>&2 788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$prev=\$arg" 794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prevopt= 799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Have we seen a non-optional argument yet? 803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --help) 805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson show_help=yes 806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --version) 809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" 810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "Copyright (C) 2005 Free Software Foundation, Inc." 812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "This is free software; see the source for copying conditions. There is NO" 813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $? 815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --config) 818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now print the configurations for the tags. 820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for tagname in $taglist; do 821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $? 824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --debug) 827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$progname: enabling shell trace mode" 828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set -x 829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson preserve_args="$preserve_args $arg" 830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --dry-run | -n) 833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson run=: 834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --features) 837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "host: $host" 838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes; then 839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "enable shared libraries" 840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "disable shared libraries" 842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = yes; then 844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "enable static libraries" 845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "disable static libraries" 847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $? 849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --finish) mode="finish" ;; 852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --mode) prevopt="--mode" prev=mode ;; 854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --mode=*) mode="$optarg" ;; 855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --preserve-dup-deps) duplicate_deps="yes" ;; 857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --quiet | --silent) 859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson show=: 860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson preserve_args="$preserve_args $arg" 861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --tag) 864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prevopt="--tag" 865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=tag 866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson preserve_args="$preserve_args --tag" 867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --tag=*) 869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set tag "$optarg" ${1+"$@"} 870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=tag 872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson preserve_args="$preserve_args --tag" 873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -dlopen) 876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prevopt="-dlopen" 877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=execute_dlfiles 878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -*) 881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: unrecognized option \`$arg'" 1>&2 882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson nonopt="$arg" 888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondone 892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "$prevopt"; then 894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: option \`$prevopt' requires an argument" 1>&2 895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase $disable_libs in 900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno) 901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshared) 903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic) 907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac 910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If this variable is set in any of the actions, the command in it 912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# will be execed at the end. This prevents here-documents from being 913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# left over by shells. 914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexec_cmd= 915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -z "$show_help"; then 917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Infer the operation mode. 919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$mode"; then 920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $nonopt in 923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson mode=link 925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg 926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -c) 929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson mode=compile 930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *db | *dbx | *strace | *truss) 936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson mode=execute 937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *install*|cp|mv) 939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson mode=install 940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *rm) 942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson mode=uninstall 943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If we have no mode, but dlfiles were specified, then do execute mode. 946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$execute_dlfiles" && mode=execute 947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just use the default operation mode. 949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$mode"; then 950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$nonopt"; then 951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only execute mode is allowed to have -dlopen flags. 961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$execute_dlfiles" && test "$mode" != execute; then 962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: unrecognized option \`-dlopen'" 1>&2 963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Change the help message to a mode-specific one. 968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson generic_help="$help" 969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson help="Try \`$modename --help --mode=$mode' for more information." 970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # These modes are in order of execution frequency so that they run quickly. 972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $mode in 973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # libtool compile mode 974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile) 975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson modename="$modename: compile" 976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Get the compilation command and the source file. 977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson base_compile= 978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson srcfile="$nonopt" # always keep a non-empty value in "srcfile" 979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson suppress_opt=yes 980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson suppress_output= 981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg_mode=normal 982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobj= 983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson later= 984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg 986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg_mode in 988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg ) 989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # do not "continue". Instead, add this to base_compile 990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lastarg="$arg" 991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg_mode=normal 992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson target ) 995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobj="$arg" 996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg_mode=normal 997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson normal ) 1001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Accept any command-line options. 1002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -o) 1004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$libobj" ; then 1005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you cannot specify \`-o' more than once" 1>&2 1006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg_mode=target 1009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -static | -prefer-pic | -prefer-non-pic) 1013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson later="$later $arg" 1014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -no-suppress) 1018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson suppress_opt=no 1019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -Xcompiler) 1023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg_mode=arg # the next one goes into the "base_compile" arg list 1024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue # The current "srcfile" will either be retained or 1025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; # replaced later. I would guess that would be a bug. 1026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -Wc,*) 1028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 1029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lastarg= 1030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS=',' 1031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg in $args; do 1032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 1033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Double-quote args containing other shell metacharacters. 1035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Many Bourne shells cannot handle close brackets correctly 1036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # in scan sets, so we specify it separately. 1037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 1040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lastarg="$lastarg $arg" 1043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 1044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 1045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 1046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add the arguments to base_compile. 1048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson base_compile="$base_compile $lastarg" 1049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson * ) 1053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Accept the current argument as the source file. 1054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The previous "srcfile" becomes the current argument. 1055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # 1056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lastarg="$srcfile" 1057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson srcfile="$arg" 1058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac # case $arg 1060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac # case $arg_mode 1062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Aesthetically quote the previous argument. 1064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 1065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $lastarg in 1067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Double-quote args containing other shell metacharacters. 1068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Many Bourne shells cannot handle close brackets correctly 1069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # in scan sets, and some SunOS ksh mistreat backslash-escaping 1070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # in scan sets (worked around with variable expansion), 1071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # and furthermore cannot handle '|' '&' '(' ')' in scan sets 1072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # at all, so we specify them separately. 1073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lastarg="\"$lastarg\"" 1075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson base_compile="$base_compile $lastarg" 1079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # for arg 1080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg_mode in 1082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg) 1083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify an argument for -Xcompile" 1084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson target) 1087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify a target with \`-o'" 1>&2 1088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Get the name of the library object. 1092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 1093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Recognize several different file suffixes. 1097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the user specifies -o file.o, it is replaced with file.lo 1098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xform='[cCFSifmso]' 1099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $libobj in 1100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.ada) xform=ada ;; 1101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.adb) xform=adb ;; 1102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.ads) xform=ads ;; 1103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.asm) xform=asm ;; 1104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.c++) xform=c++ ;; 1105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.cc) xform=cc ;; 1106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.ii) xform=ii ;; 1107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.class) xform=class ;; 1108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.cpp) xform=cpp ;; 1109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.cxx) xform=cxx ;; 1110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.f90) xform=f90 ;; 1111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.for) xform=for ;; 1112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.java) xform=java ;; 1113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 1116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $libobj in 1118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 1119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 1121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_infer_tag $base_compile 1126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg in $later; do 1128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -static) 1130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 1131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -prefer-pic) 1135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_mode=yes 1136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -prefer-non-pic) 1140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_mode=no 1141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 1145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 1147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $qlibobj in 1148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson qlibobj="\"$qlibobj\"" ;; 1150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$libobj" != "X$qlibobj" \ 1152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 1153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 1154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 1155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 1156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$xdir" = "X$obj"; then 1157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir= 1158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir=$xdir/ 1160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lobj=${xdir}$objdir/$objname 1162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$base_compile"; then 1164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify a compilation command" 1>&2 1165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 1166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Delete any leftover library objects. 1170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = yes; then 1171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson removelist="$obj $lobj $libobj ${libobj}T" 1172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson removelist="$lobj $libobj ${libobj}T" 1174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $removelist 1177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 1178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # On Cygwin there's no "real" PIC flag so we must build both object types 1180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host_os in 1181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cygwin* | mingw* | pw32* | os2*) 1182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_mode=default 1183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 1186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # non-PIC code in shared libraries is not supported 1187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_mode=default 1188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Calculate the filename of the output object if compiler does 1191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # not support -o with -c 1192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$compiler_c_o" = no; then 1193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 1194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lockfile="$output_obj.lock" 1195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson removelist="$removelist $output_obj $lockfile" 1196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 1197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_obj= 1199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson need_locks=no 1200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lockfile= 1201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Lock this critical section if it is needed 1204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We use this script file to make the link, it avoids creating a new file 1205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$need_locks" = yes; then 1206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson until $run ln "$progpath" "$lockfile" 2>/dev/null; do 1207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "Waiting for $lockfile to be removed" 1208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson sleep 2 1209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 1210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$need_locks" = warn; then 1211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$lockfile"; then 1212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "\ 1213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile exists and contains: 1214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null` 1215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same 1217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because 1218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together. If you 1219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better 1220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better 1221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler." 1222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $removelist 1224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$srcfile" > "$lockfile" 1227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$fix_srcfile_path"; then 1230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval srcfile=\"$fix_srcfile_path\" 1231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 1233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $qsrcfile in 1234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson qsrcfile="\"$qsrcfile\"" ;; 1236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm "$libobj" "${libobj}T" 1239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Create a libtool object file (analogous to a ".la" file), 1241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # but don't create it if we're doing a dry run. 1242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$run" && cat > ${libobj}T <<EOF 1243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $libobj - a libtool object file 1244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 1245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 1246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Please DO NOT delete this file! 1247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# It is necessary for linking the library. 1248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the PIC object. 1250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 1251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only build a PIC object if we are building libtool libraries. 1253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes; then 1254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Without this assignment, base_compile gets emptied. 1255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fbsd_hideous_sh_bug=$base_compile 1256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pic_mode" != no; then 1258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson command="$base_compile $qsrcfile $pic_flag" 1259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't build PIC code 1261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson command="$base_compile $qsrcfile" 1262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -d "${xdir}$objdir"; then 1265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mkdir ${xdir}$objdir" 1266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $mkdir ${xdir}$objdir 1267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=$? 1268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 1269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $exit_status 1270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$output_obj"; then 1274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Place PIC objects in $objdir 1275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson command="$command -o $lobj" 1276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm "$lobj" "$output_obj" 1279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$command" 1281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if $run eval "$command"; then : 1282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$output_obj" && $run $rm $removelist 1284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$need_locks" = warn && 1288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "\ 1290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile contains: 1291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null` 1292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbut it should contain: 1294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$srcfile 1295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same 1297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because 1298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together. If you 1299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better 1300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better 1301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler." 1302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $removelist 1304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just move the object if needed, then go on to compile the next one 1308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 1309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mv $output_obj $lobj" 1310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if $run $mv $output_obj $lobj; then : 1311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson error=$? 1313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $removelist 1314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $error 1315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Append the name of the PIC object to the libtool object file. 1319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$run" && cat >> ${libobj}T <<EOF 1320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_object='$objdir/$objname' 1321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 1323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Allow error messages only from the first compilation. 1325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$suppress_opt" = yes; then 1326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson suppress_output=' >/dev/null 2>&1' 1327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # No PIC object so indicate it doesn't exist in the libtool 1330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # object file. 1331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$run" && cat >> ${libobj}T <<EOF 1332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_object=none 1333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 1335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only build a position-dependent object if we build old libraries. 1338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = yes; then 1339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pic_mode" != yes; then 1340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't build PIC code 1341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson command="$base_compile $qsrcfile" 1342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson command="$base_compile $qsrcfile $pic_flag" 1344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$compiler_c_o" = yes; then 1346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson command="$command -o $obj" 1347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Suppress compiler output if we already did a PIC compilation. 1350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson command="$command$suppress_output" 1351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm "$obj" "$output_obj" 1352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$command" 1353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if $run eval "$command"; then : 1354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $removelist 1356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$need_locks" = warn && 1360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "\ 1362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile contains: 1363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null` 1364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbut it should contain: 1366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$srcfile 1367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same 1369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because 1370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together. If you 1371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better 1372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better 1373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler." 1374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $removelist 1376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just move the object if needed 1380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mv $output_obj $obj" 1382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if $run $mv $output_obj $obj; then : 1383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson error=$? 1385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $removelist 1386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $error 1387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Append the name of the non-PIC object the libtool object file. 1391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only append if the libtool object file exists. 1392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$run" && cat >> ${libobj}T <<EOF 1393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the non-PIC object. 1394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnon_pic_object='$objname' 1395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 1397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Append the name of the non-PIC object the libtool object file. 1399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only append if the libtool object file exists. 1400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$run" && cat >> ${libobj}T <<EOF 1401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the non-PIC object. 1402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnon_pic_object=none 1403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 1405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $mv "${libobj}T" "${libobj}" 1408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Unlock the critical section if it was locked 1410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$need_locks" != no; then 1411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm "$lockfile" 1412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 1415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # libtool link mode 1418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link | relink) 1419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson modename="$modename: link" 1420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 1421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # It is impossible to link a dll without this setting, and 1423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # we shouldn't force the makefile maintainer to figure out 1424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # which system we are compiling for in order to pass an extra 1425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # flag for every libtool invocation. 1426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # allow_undefined=no 1427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # FIXME: Unfortunately, there are problems with the above when trying 1429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # to make a dll which has undefined symbols, in which case not 1430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # even a static library is built. For now, we need to specify 1431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -no-undefined on the libtool link line when we can be certain 1432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # that all symbols are satisfied, otherwise we get a static library. 1433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson allow_undefined=yes 1434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson allow_undefined=yes 1437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libtool_args="$nonopt" 1440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson base_compile="$nonopt $@" 1441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$nonopt" 1442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$nonopt" 1443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_rpath= 1445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_rpath= 1446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_shlibpath= 1447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_shlibpath= 1448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson convenience= 1449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_convenience= 1450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs= 1451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_deplibs= 1452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags= 1453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linker_flags= 1454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dllsearchpath= 1455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib_search_path=`pwd` 1456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson inst_prefix_dir= 1457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson avoid_version=no 1459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles= 1460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles= 1461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlself=no 1462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_dynamic=no 1463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_symbols= 1464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_symbols_regex= 1465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson generated= 1466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs= 1467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ltlibs= 1468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson module=no 1469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson no_install=no 1470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objs= 1471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_objects= 1472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_path= # paths that contain not-installed libtool libraries 1473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson precious_files_regex= 1474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prefer_static_libs=no 1475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson preload=no 1476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prevarg= 1478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson release= 1479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath= 1480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xrpath= 1481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson perm_rpath= 1482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson temp_rpath= 1483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson thread_safe=no 1484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson vinfo= 1485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson vinfo_number=no 1486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_infer_tag $base_compile 1488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need to know -static, to get the right output filenames. 1490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg 1491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 1492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -all-static | -static) 1494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$arg" = "X-all-static"; then 1495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 1496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 1497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$link_static_flag"; then 1499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlopen_self=$dlopen_self_static 1500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prefer_static_libs=yes 1502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$pic_flag" && test -n "$link_static_flag"; then 1504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlopen_self=$dlopen_self_static 1505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prefer_static_libs=built 1507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 1509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 1510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 1511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 1514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # See if our shared archives depend on static archives. 1516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$old_archive_from_new_cmds" && build_old_libs=yes 1517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Go through the arguments, transforming them on the way. 1519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson while test "$#" -gt 0; do 1520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$1" 1521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 1522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 1525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) qarg=$arg ;; 1527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libtool_args="$libtool_args $qarg" 1529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the previous option needs an argument, assign it. 1531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$prev"; then 1532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $prev in 1533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output) 1534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command @OUTPUT@" 1535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command @OUTPUT@" 1536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $prev in 1540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles|dlprefiles) 1541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$preload" = no; then 1542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add the symbol object into the linking commands. 1543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command @SYMFILE@" 1544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command @SYMFILE@" 1545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson preload=yes 1546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la | *.lo) ;; # We handle these cases below. 1549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson force) 1550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$dlself" = no; then 1551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlself=needless 1552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_dynamic=yes 1553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson self) 1558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = dlprefiles; then 1559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlself=yes 1560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 1561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlself=yes 1562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlself=needless 1564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_dynamic=yes 1565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = dlfiles; then 1571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles="$dlfiles $arg" 1572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$dlprefiles $arg" 1574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson expsyms) 1581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_symbols="$arg" 1582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -f "$arg"; then 1583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: symbol file \`$arg' does not exist" 1584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson expsyms_regex) 1590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_symbols_regex="$arg" 1591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson inst_prefix) 1595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson inst_prefix_dir="$arg" 1596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson precious_regex) 1600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson precious_files_regex="$arg" 1601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson release) 1605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson release="-$arg" 1606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objectlist) 1610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$arg"; then 1611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_arg=$arg 1612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson moreargs= 1613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for fil in `cat $save_arg` 1614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 1615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# moreargs="$moreargs $fil" 1616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=$fil 1617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A libtool-controlled object. 1618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see that this really is a libtool object. 1620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_object= 1622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object= 1623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Read the .lo file 1625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 1626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $arg ;; 1628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$arg ;; 1629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$pic_object" || \ 1632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$non_pic_object" || 1633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$pic_object" = none && \ 1634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$non_pic_object" = none; then 1635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Extract subdirectory from the argument. 1640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$xdir" = "X$arg"; then 1642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir= 1643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir="$xdir/" 1645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pic_object" != none; then 1648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Prepend the subdirectory the object is found in. 1649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_object="$xdir$pic_object" 1650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = dlfiles; then 1652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles="$dlfiles $pic_object" 1654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If libtool objects are unsupported, then we need to preload. 1658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=dlprefiles 1659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # CHECK ME: I think I busted this. -Ossama 1663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = dlprefiles; then 1664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Preload the old-style object. 1665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$dlprefiles $pic_object" 1666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A PIC object. 1670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs="$libobjs $pic_object" 1671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$pic_object" 1672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Non-PIC object. 1675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$non_pic_object" != none; then 1676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Prepend the subdirectory the object is found in. 1677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object="$xdir$non_pic_object" 1678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A standard non-PIC object 1680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_objects="$non_pic_objects $non_pic_object" 1681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$pic_object" || test "$pic_object" = none ; then 1682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$non_pic_object" 1683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the PIC object exists, use it instead. 1686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # $xdir was prepended to $pic_object above. 1687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object="$pic_object" 1688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_objects="$non_pic_objects $non_pic_object" 1689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only an error if not doing a dry-run. 1692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$run"; then 1693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Dry-run case. 1697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Extract subdirectory from the argument. 1699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$xdir" = "X$arg"; then 1701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir= 1702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir="$xdir/" 1704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs="$libobjs $pic_object" 1709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_objects="$non_pic_objects $non_pic_object" 1710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 1713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: link input file \`$save_arg' does not exist" 1715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=$save_arg 1718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath | xrpath) 1722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need an absolute path. 1723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) ;; 1725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: only absolute run-paths are allowed" 1>&2 1727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = rpath; then 1731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$rpath " in 1732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $arg "*) ;; 1733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) rpath="$rpath $arg" ;; 1734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$xrpath " in 1737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $arg "*) ;; 1738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) xrpath="$xrpath $arg" ;; 1739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xcompiler) 1745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $qarg" 1746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $qarg" 1748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $qarg" 1749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xlinker) 1752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linker_flags="$linker_flags $qarg" 1753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $wl$qarg" 1754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $wl$qarg" 1756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $wl$qarg" 1757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xcclinker) 1760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linker_flags="$linker_flags $qarg" 1761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $qarg" 1762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $qarg" 1764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $qarg" 1765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shrext) 1768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shrext_cmds="$arg" 1769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin_framework|darwin_framework_skip) 1773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 1774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 1775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 1776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$prev=\"\$arg\"" 1781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 1782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # test -n "$prev" 1786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prevarg="$arg" 1788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -all-static) 1791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$link_static_flag"; then 1792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $link_static_flag" 1793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $link_static_flag" 1794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -allow-undefined) 1799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # FIXME: remove this flag sometime in the future. 1800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 1801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -avoid-version) 1805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson avoid_version=yes 1806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -dlopen) 1810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=dlfiles 1811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -dlpreopen) 1815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=dlprefiles 1816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -export-dynamic) 1820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_dynamic=yes 1821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -export-symbols | -export-symbols-regex) 1825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 1826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: more than one -exported-symbols argument is not allowed" 1827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 1828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$arg" = "X-export-symbols"; then 1830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=expsyms 1831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 1832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=expsyms_regex 1833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -framework|-arch|-isysroot) 1838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $CC " in 1839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" ${arg} ${1} "* | *" ${arg} ${1} "*) 1840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=darwin_framework_skip ;; 1841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) compiler_flags="$compiler_flags $arg" 1842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=darwin_framework ;; 1843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 1845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 1846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -inst-prefix-dir) 1850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=inst_prefix 1851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 1855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # so, if we see these flags be careful not to treat them like -L 1856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L[A-Z][A-Z]*:*) 1857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $with_gcc/$host in 1858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson no/*-*-irix* | /*-*-irix*) 1859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 1860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 1861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) 1867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 1868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need an absolute path. 1869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $dir in 1870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) ;; 1871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir=`cd "$dir" && pwd` 1873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$absdir"; then 1874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 1875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir="$dir" 1876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_path="$notinst_path $dir" 1877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir="$absdir" 1879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$deplibs " in 1882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" -L$dir "*) ;; 1883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 1884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplibs -L$dir" 1885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib_search_path="$lib_search_path $dir" 1886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 1889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 1891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case :$dllsearchpath: in 1892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *":$dir:"*) ;; 1893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) dllsearchpath="$dllsearchpath:$dir";; 1894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case :$dllsearchpath: in 1896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *":$testbindir:"*) ;; 1897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) dllsearchpath="$dllsearchpath:$testbindir";; 1898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -l*) 1905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 1906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 1907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 1908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # These systems don't actually have a C or math library (as such) 1909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-os2*) 1912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # These systems don't actually have a C library (as such) 1913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$arg" = "X-lc" && continue 1914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do not include libc due to us having libc/libc_r. 1917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$arg" = "X-lc" && continue 1918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-rhapsody* | *-*-darwin1.[012]) 1920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Rhapsody C and math libraries are in the System framework 1921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplibs -framework System" 1922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sco3.2v5* | *-*-sco5v6*) 1925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Causes problems with __ctype 1926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$arg" = "X-lc" && continue 1927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 1929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Compiler inserts libc in the correct place for threads to work 1930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$arg" = "X-lc" && continue 1931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "X$arg" = "X-lc_r"; then 1934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 1935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do not include libc_r directly, use -pthread flag. 1937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 1941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplibs $arg" 1942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Tru64 UNIX uses -model [arg] to determine the layout of C++ 1946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # classes, name mangling, and exception handling. 1947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -model) 1948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 1949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $arg" 1950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 1951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=xcompiler 1952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 1956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $arg" 1957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 1958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 1959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -module) 1963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson module=yes 1964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 1968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -r[0-9][0-9]* specifies the processor on the SGI compiler 1969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 1970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # +DA*, +DD* enable 64-bit mode on the HP compiler 1971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -q* pass through compiler args for the IBM compiler 1972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -m* pass through architecture-specific compiler args for GCC 1973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -m*, -t[45]*, -txscale* pass through architecture-specific 1974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # compiler args for GCC 1975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -pg pass through profiling flag for GCC 1976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # @file GCC response files 1977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ 1978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -t[45]*|-txscale*|@*) 1979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Unknown arguments in both finalize_command and compile_command need 1981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # to be aesthetically quoted because they are evaled later. 1982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 1984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 1986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 1988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 1989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 1990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $arg" 1991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -shrext) 1995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=shrext 1996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 1997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 1998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 1999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -no-fast-install) 2000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fast_install=no 2001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -no-install) 2005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 2006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 2007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The PATH hackery in wrapper scripts is required on Windows 2008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # in order for the loader to find any dlls it needs. 2009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 2010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 2011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fast_install=no 2012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) no_install=yes ;; 2014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -no-undefined) 2019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson allow_undefined=no 2020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -objectlist) 2024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=objectlist 2025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -o) prev=output ;; 2029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -precious-files-regex) 2031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=precious_regex 2032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -release) 2036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=release 2037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -rpath) 2041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=rpath 2042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -R) 2046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=xrpath 2047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -R*) 2051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 2052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need an absolute path. 2053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $dir in 2054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) ;; 2055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: only absolute run-paths are allowed" 1>&2 2057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$xrpath " in 2061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $dir "*) ;; 2062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) xrpath="$xrpath $dir" ;; 2063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -static) 2068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The effects of -static are defined in a previous loop. 2069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We used to do the same as -all-static on platforms that 2070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # didn't have a PIC flag, but the assumption that the effects 2071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # would be equivalent was wrong. It would break on at least 2072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Digital Unix and AIX. 2073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -thread-safe) 2077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson thread_safe=yes 2078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -version-info) 2082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=vinfo 2083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -version-number) 2086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=vinfo 2087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson vinfo_number=yes 2088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -Wc,*) 2092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 2093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg= 2094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS=',' 2095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for flag in $args; do 2096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $flag in 2098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson flag="\"$flag\"" 2100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$arg $wl$flag" 2103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $flag" 2104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 2107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -Wl,*) 2110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 2111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg= 2112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS=',' 2113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for flag in $args; do 2114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $flag in 2116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson flag="\"$flag\"" 2118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$arg $wl$flag" 2121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $wl$flag" 2122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linker_flags="$linker_flags $flag" 2123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 2126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -Xcompiler) 2129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=xcompiler 2130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -Xlinker) 2134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=xlinker 2135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -XCClinker) 2139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=xcclinker 2140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Some other compiler flag. 2144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -* | +*) 2145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Unknown arguments in both finalize_command and compile_command need 2146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # to be aesthetically quoted because they are evaled later. 2147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 2148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 2149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 2151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.$objext) 2156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A standard object. 2157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objs="$objs $arg" 2158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) 2161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A libtool-controlled object. 2162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see that this really is a libtool object. 2164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 2165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_object= 2166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object= 2167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Read the .lo file 2169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 2170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 2171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $arg ;; 2172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$arg ;; 2173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$pic_object" || \ 2176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$non_pic_object" || 2177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$pic_object" = none && \ 2178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$non_pic_object" = none; then 2179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot find name of object for \`$arg'" 1>&2 2180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Extract subdirectory from the argument. 2184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 2185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$xdir" = "X$arg"; then 2186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir= 2187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir="$xdir/" 2189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pic_object" != none; then 2192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Prepend the subdirectory the object is found in. 2193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_object="$xdir$pic_object" 2194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = dlfiles; then 2196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 2197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles="$dlfiles $pic_object" 2198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 2199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If libtool objects are unsupported, then we need to preload. 2202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev=dlprefiles 2203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # CHECK ME: I think I busted this. -Ossama 2207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = dlprefiles; then 2208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Preload the old-style object. 2209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$dlprefiles $pic_object" 2210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 2211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A PIC object. 2214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs="$libobjs $pic_object" 2215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$pic_object" 2216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Non-PIC object. 2219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$non_pic_object" != none; then 2220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Prepend the subdirectory the object is found in. 2221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object="$xdir$non_pic_object" 2222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A standard non-PIC object 2224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_objects="$non_pic_objects $non_pic_object" 2225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$pic_object" || test "$pic_object" = none ; then 2226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$non_pic_object" 2227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the PIC object exists, use it instead. 2230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # $xdir was prepended to $pic_object above. 2231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object="$pic_object" 2232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_objects="$non_pic_objects $non_pic_object" 2233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only an error if not doing a dry-run. 2236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$run"; then 2237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 2238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Dry-run case. 2241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Extract subdirectory from the argument. 2243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 2244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$xdir" = "X$arg"; then 2245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir= 2246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson xdir="$xdir/" 2248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 2251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 2252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs="$libobjs $pic_object" 2253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson non_pic_objects="$non_pic_objects $non_pic_object" 2254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.$libext) 2259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # An archive. 2260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplibs $arg" 2261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_deplibs="$old_deplibs $arg" 2262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) 2266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # A libtool-controlled library. 2267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$prev" = dlfiles; then 2269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This library was specified with -dlopen. 2270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles="$dlfiles $arg" 2271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 2272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$prev" = dlprefiles; then 2273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The library was specified with -dlpreopen. 2274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$dlprefiles $arg" 2275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 2276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplibs $arg" 2278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Some other compiler argument. 2283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Unknown arguments in both finalize_command and compile_command need 2285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # to be aesthetically quoted because they are evaled later. 2286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 2287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 2288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 2289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 2290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac # arg 2294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now actually substitute the argument into the commands. 2296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$arg"; then 2297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 2298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 2299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # argument parsing loop 2301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$prev"; then 2303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 2304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 2305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 2309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval arg=\"$export_dynamic_flag_spec\" 2310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $arg" 2311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $arg" 2312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlibs= 2315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # calculate the name of the file, without its directory 2316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 2317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs_save="$libobjs" 2318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$shlibpath_var"; then 2320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # get the directories listed in $shlibpath_var 2321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 2322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shlib_search_path= 2324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 2326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 2327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 2329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$output_objdir" = "X$output"; then 2330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_objdir="$objdir" 2331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_objdir="$output_objdir/$objdir" 2333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Create the object directory. 2335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -d "$output_objdir"; then 2336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mkdir $output_objdir" 2337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $mkdir $output_objdir 2338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=$? 2339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then 2340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $exit_status 2341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Determine the type of output 2345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $output in 2346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson "") 2347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify an output file" 1>&2 2348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 2349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.$libext) linkmode=oldlib ;; 2352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo | *.$objext) linkmode=obj ;; 2353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) linkmode=lib ;; 2354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) linkmode=prog ;; # Anything else should be a program. 2355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 2358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin* | *mingw* | *pw32*) 2359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # don't eliminate duplications in $postdeps and $predeps 2360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson duplicate_compiler_generated_deps=yes 2361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson duplicate_compiler_generated_deps=$duplicate_deps 2364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson specialdeplibs= 2367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libs= 2369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Find all interdependent deplibs by searching for libraries 2370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # that are linked more than once (e.g. -la -lb -la) 2371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $deplibs; do 2372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$duplicate_deps" = "Xyes" ; then 2373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$libs " in 2374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libs="$libs $deplib" 2378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = lib; then 2381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libs="$predeps $libs $compiler_lib_search_path $postdeps" 2382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Compute libraries that are listed more than once in $predeps 2384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # $postdeps and mark them as special (i.e., whose duplicates are 2385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # not to be eliminated). 2386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pre_post_deps= 2387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 2388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for pre_post_dep in $predeps $postdeps; do 2389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$pre_post_deps " in 2390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 2391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pre_post_deps="$pre_post_deps $pre_post_dep" 2393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pre_post_deps= 2396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs= 2399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdependency_libs= 2400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newlib_search_path= 2401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson need_relink=no # whether we're linking any uninstalled libtool libraries 2402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_deplibs= # not-installed libtool libraries 2403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $linkmode in 2404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib) 2405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson passes="conv link" 2406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for file in $dlfiles $dlprefiles; do 2407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 2408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) ;; 2409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 2411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prog) 2417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs= 2418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs= 2419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson alldeplibs=no 2420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlfiles= 2421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles= 2422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson passes="conv scan dlopen dlpreopen link" 2423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) passes="conv" 2425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for pass in $passes; do 2428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode,$pass" = "lib,link" || 2429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$linkmode,$pass" = "prog,scan"; then 2430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libs="$deplibs" 2431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs= 2432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog; then 2434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $pass in 2435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlopen) libs="$dlfiles" ;; 2436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlpreopen) libs="$dlprefiles" ;; 2437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link) 2438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libs="$deplibs %DEPLIBS%" 2439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" 2440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = dlopen; then 2444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Collect dlpreopened libraries 2445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_deplibs="$deplibs" 2446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs= 2447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $libs; do 2449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib= 2450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson found=no 2451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 2452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) 2453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode,$pass" = "prog,link"; then 2454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$deplib $compile_deplibs" 2455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$deplib $finalize_deplibs" 2456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compiler_flags="$compiler_flags $deplib" 2458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -l*) 2462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" != lib && test "$linkmode" != prog; then 2463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 2464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 2467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do 2468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for search_ext in .la $std_shrext .so .a; do 2469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Search the libtool library 2470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib="$searchdir/lib${name}${search_ext}" 2471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$lib"; then 2472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$search_ext" = ".la"; then 2473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson found=yes 2474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson found=no 2476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 2 2478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$found" != yes; then 2482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # deplib doesn't seem to be a libtool library 2483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode,$pass" = "prog,link"; then 2484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$deplib $compile_deplibs" 2485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$deplib $finalize_deplibs" 2486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else # deplib is a libtool library 2492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 2493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need to do some special things here, and not later. 2494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 2495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $predeps $postdeps " in 2496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) 2497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $lib | 2498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 2499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson library_names= 2500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_library= 2501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $lib in 2502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $lib ;; 2503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$lib ;; 2504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for l in $old_library $library_names; do 2506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ll="$l" 2507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$ll" = "X$old_library" ; then # only static version available 2509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson found=no 2510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$ladir" = "X$lib" && ladir="." 2512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib=$ladir/$old_library 2513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode,$pass" = "prog,link"; then 2514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$deplib $compile_deplibs" 2515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$deplib $finalize_deplibs" 2516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) ;; 2525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; # -l 2529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) 2530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $linkmode in 2531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib) 2532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$pass" = conv && continue 2534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdependency_libs="$deplib $newdependency_libs" 2535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prog) 2538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = conv; then 2539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = scan; then 2543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$deplib $compile_deplibs" 2546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$deplib $finalize_deplibs" 2547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 2552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac # linkmode 2554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; # -L 2556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -R*) 2557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = link; then 2558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 2559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure the xrpath contains only unique directories. 2560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$xrpath " in 2561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $dir "*) ;; 2562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) xrpath="$xrpath $dir" ;; 2563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) lib="$deplib" ;; 2569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.$libext) 2570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = conv; then 2571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $linkmode in 2575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib) 2576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson valid_a_lib=no 2577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplibs_check_method in 2578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson match_pattern*) 2579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $deplibs_check_method 2580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 2581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if eval $echo \"$deplib\" 2>/dev/null \ 2582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | $SED 10q \ 2583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | $EGREP "$match_pattern_regex" > /dev/null; then 2584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson valid_a_lib=yes 2585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pass_all) 2588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson valid_a_lib=yes 2589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$valid_a_lib" != yes; then 2592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 2593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: Trying to link with static lib archive $deplib." 2594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** I have the capability to make that library automatically link in when" 2595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** you link to this library. But I can only do this if you have a" 2596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** shared version of the library, which you do not appear to have" 2597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** because the file extensions .$libext of this argument makes me believe" 2598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** that it is just a static archive that I should not used here." 2599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 2601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: Linking the shared library $output against the" 2602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** static library $deplib is not portable!" 2603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prog) 2608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" != link; then 2609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$deplib $compile_deplibs" 2612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$deplib $finalize_deplibs" 2613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac # linkmode 2617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; # *.$libext 2618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo | *.$objext) 2619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = conv; then 2620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$linkmode" = prog; then 2622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 2623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no dlopen support or we're linking statically, 2624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # we need to preload. 2625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles="$newdlprefiles $deplib" 2626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$deplib $compile_deplibs" 2627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$deplib $finalize_deplibs" 2628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlfiles="$newdlfiles $deplib" 2630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson %DEPLIBS%) 2635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson alldeplibs=yes 2636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac # case $deplib 2639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$found" = yes || test -f "$lib"; then : 2640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 2642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see that this really is a libtool archive. 2646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 2647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 2649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$ladir" = "X$lib" && ladir="." 2654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlname= 2656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlopen= 2657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlpreopen= 2658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdir= 2659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson library_names= 2660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_library= 2661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the library was installed with an old release of libtool, 2662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # it will not redefine variables installed, or shouldnotlink 2663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson installed=yes 2664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shouldnotlink=no 2665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson avoidtemprpath= 2666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Read the .la file 2669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $lib in 2670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $lib ;; 2671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$lib ;; 2672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode,$pass" = "lib,link" || 2675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$linkmode,$pass" = "prog,scan" || 2676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { test "$linkmode" != prog && test "$linkmode" != lib; }; then 2677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 2678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 2679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = conv; then 2682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only check for convenience libraries 2683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$lib $deplibs" 2684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 2685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$old_library"; then 2686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # It is a libtool convenience library, so add in its objects. 2690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson convenience="$convenience $ladir/$objdir/$old_library" 2691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_convenience="$old_convenience $ladir/$objdir/$old_library" 2692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs= 2693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $dependency_libs; do 2694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$duplicate_deps" = "Xyes" ; then 2696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$tmp_libs " in 2697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs="$tmp_libs $deplib" 2701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$linkmode" != prog && test "$linkmode" != lib; then 2703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$lib' is not a convenience library" 1>&2 2704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $pass = conv 2708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Get the name of the library we link against. 2711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linklib= 2712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for l in $old_library $library_names; do 2713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linklib="$l" 2714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$linklib"; then 2716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This library was specified with -dlopen. 2721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = dlopen; then 2722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 2723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 2724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$dlname" || 2727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$dlopen_support" != yes || 2728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$build_libtool_libs" = no; then 2729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no dlname, no dlopen support or we're linking 2730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # statically, we need to preload. We also need to preload any 2731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # dependent libraries so libltdl's deplib preloader doesn't 2732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # bomb out in the load deplibs phase. 2733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$dlprefiles $lib $dependency_libs" 2734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlfiles="$newdlfiles $lib" 2736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $pass = dlopen 2739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need an absolute path. 2741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $ladir in 2742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 2743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson abs_ladir=`cd "$ladir" && pwd` 2745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$abs_ladir"; then 2746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 2747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 2748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson abs_ladir="$ladir" 2749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 2753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Find the relevant object directory and library name. 2755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$installed" = Xyes; then 2756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: library \`$lib' was moved." 1>&2 2758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir="$ladir" 2759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir="$abs_ladir" 2760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdir="$abs_ladir" 2761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir="$libdir" 2763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir="$libdir" 2764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 2766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir="$ladir" 2769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir="$abs_ladir" 2770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Remove this search path later 2771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_path="$notinst_path $abs_ladir" 2772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir="$ladir/$objdir" 2774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir="$abs_ladir/$objdir" 2775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Remove this search path later 2776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_path="$notinst_path $abs_ladir" 2777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $installed = yes 2779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 2780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This library was specified with -dlpreopen. 2782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = dlpreopen; then 2783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 2784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 2785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 2786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Prefer using a static library (so that no silly _DYNAMIC symbols 2788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # are required to link). 2789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$old_library"; then 2790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles="$newdlprefiles $dir/$old_library" 2791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Otherwise, use the dlname, so that lt_dlopen finds it. 2792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test -n "$dlname"; then 2793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles="$newdlprefiles $dir/$dlname" 2794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles="$newdlprefiles $dir/$linklib" 2796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $pass = dlpreopen 2798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 2800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Link the convenience library 2801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = lib; then 2802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$dir/$old_library $deplibs" 2803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$linkmode,$pass" = "prog,link"; then 2804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$dir/$old_library $compile_deplibs" 2805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$dir/$old_library $finalize_deplibs" 2806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$lib $deplibs" # used for prog,scan pass 2808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog && test "$pass" != link; then 2814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newlib_search_path="$newlib_search_path $ladir" 2815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$lib $deplibs" 2816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linkalldeplibs=no 2818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$link_all_deplibs" != no || test -z "$library_names" || 2819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$build_libtool_libs" = no; then 2820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linkalldeplibs=yes 2821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs= 2824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $dependency_libs; do 2825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 2826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 2827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Need to link against all dependency_libs? 2829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkalldeplibs" = yes; then 2830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 2831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Need to hardcode shared library paths 2833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # or/and link against static libraries 2834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdependency_libs="$deplib $newdependency_libs" 2835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$duplicate_deps" = "Xyes" ; then 2837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$tmp_libs " in 2838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs="$tmp_libs $deplib" 2842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # for deplib 2843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $linkmode = prog... 2845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode,$pass" = "prog,link"; then 2847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$library_names" && 2848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { test "$prefer_static_libs" = no || test -z "$old_library"; }; then 2849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need to hardcode the library path 2850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 2851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure the rpath contains only unique directories. 2852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$temp_rpath " in 2853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $dir "*) ;; 2854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $absdir "*) ;; 2855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) temp_rpath="$temp_rpath $absdir" ;; 2856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Hardcode the library path. 2860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Skip directories that are in the system default run-time 2861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # search path. 2862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $sys_lib_dlsearch_path " in 2863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $absdir "*) ;; 2864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$compile_rpath " in 2866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $absdir "*) ;; 2867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) compile_rpath="$compile_rpath $absdir" 2868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $sys_lib_dlsearch_path " in 2872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 2873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$finalize_rpath " in 2875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 2876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) finalize_rpath="$finalize_rpath $libdir" 2877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # $linkmode,$pass = prog,link... 2881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$alldeplibs" = yes && 2883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { test "$deplibs_check_method" = pass_all || 2884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { test "$build_libtool_libs" = yes && 2885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$library_names"; }; }; then 2886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We only need to search for static libraries 2887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 2888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_static=no # Whether the deplib will be linked statically 2892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson use_static_libs=$prefer_static_libs 2893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$use_static_libs" = built && test "$installed" = yes ; then 2894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson use_static_libs=no 2895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$library_names" && 2897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { test "$use_static_libs" = no || test -z "$old_library"; }; then 2898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$installed" = no; then 2899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_deplibs="$notinst_deplibs $lib" 2900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson need_relink=yes 2901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This is a shared library 2903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Warn about portability, can't link against -module's on 2905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # some systems (darwin) 2906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$shouldnotlink" = yes && test "$pass" = link ; then 2907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 2908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog; then 2909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: Linking the executable $output against the loadable module" 2910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: Linking the shared library $output against the loadable module" 2912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** $linklib is not portable!" 2914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = lib && 2916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$hardcode_into_libs" = yes; then 2917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Hardcode the library path. 2918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Skip directories that are in the system default run-time 2919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # search path. 2920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $sys_lib_dlsearch_path " in 2921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $absdir "*) ;; 2922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$compile_rpath " in 2924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $absdir "*) ;; 2925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) compile_rpath="$compile_rpath $absdir" 2926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $sys_lib_dlsearch_path " in 2930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 2931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 2932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$finalize_rpath " in 2933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 2934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) finalize_rpath="$finalize_rpath $libdir" 2935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$old_archive_from_expsyms_cmds"; then 2941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # figure out the soname 2942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $library_names 2943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson realname="$2" 2944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift; shift 2945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname=`eval \\$echo \"$libname_spec\"` 2946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # use dlname if we got it. it's perfectly good, no? 2947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dlname"; then 2948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson soname="$dlname" 2949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test -n "$soname_spec"; then 2950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # bleh windows 2951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 2952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin* | mingw*) 2953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=`expr $current - $age` 2954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix="-$major" 2955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 2956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 2957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval soname=\"$soname_spec\" 2958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson soname="$realname" 2960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make a new name for the extract_expsyms_cmds to use 2963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson soroot="$soname" 2964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 2965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 2966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the library has no export list, then create one now 2968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$output_objdir/$soname-def"; then : 2969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 2970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "extracting exported symbol list from \`$soname'" 2971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 2972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$extract_expsyms_cmds 2973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 2974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 2976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 2977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 2978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 2982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Create $newlib 2983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$output_objdir/$newlib"; then :; else 2984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "generating import library for \`$soname'" 2985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 2986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$old_archive_from_expsyms_cmds 2987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 2988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 2990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 2991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 2992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 2993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 2994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 2995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # make sure the library variables are pointing to the new library 2996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=$output_objdir 2997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linklib=$newlib 2998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # test -n "$old_archive_from_expsyms_cmds" 2999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog || test "$mode" != relink; then 3001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_shlibpath= 3002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir= 3003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add= 3004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib_linked=yes 3005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $hardcode_action in 3006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson immediate | unsupported) 3007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_direct" = no; then 3008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="$dir/$linklib" 3009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 3010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 3011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sysv4*uw2*) add_dir="-L$dir" ;; 3012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 3013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-unixware7*) add_dir="-L$dir" ;; 3014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-darwin* ) 3015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # if the lib is a module then we can not link against 3016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # it, someone is ignoring the new warnings I added 3017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if /usr/bin/file -L $add 2> /dev/null | 3018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $EGREP ": [^:]* bundle" >/dev/null ; then 3019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "** Warning, lib $linklib is a module, not a shared library" 3020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$old_library" ; then 3021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 3022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "** And there doesn't seem to be a static archive available" 3023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "** The link will probably fail, sorry" 3024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="$dir/$old_library" 3026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$hardcode_minus_L" = no; then 3030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 3031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sunos*) add_shlibpath="$dir" ;; 3032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir="-L$dir" 3034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="-l$name" 3035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$hardcode_shlibpath_var" = no; then 3036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_shlibpath="$dir" 3037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="-l$name" 3038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib_linked=no 3040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink) 3043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_direct" = yes; then 3044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="$dir/$linklib" 3045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$hardcode_minus_L" = yes; then 3046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir="-L$dir" 3047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Try looking first in the location we're being installed to. 3048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$inst_prefix_dir"; then 3049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $libdir in 3050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]*) 3051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir="$add_dir -L$inst_prefix_dir$libdir" 3052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="-l$name" 3056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$hardcode_shlibpath_var" = yes; then 3057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_shlibpath="$dir" 3058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="-l$name" 3059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib_linked=no 3061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) lib_linked=no ;; 3064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$lib_linked" != yes; then 3067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: configuration error: unsupported hardcode properties" 3068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$add_shlibpath"; then 3072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case :$compile_shlibpath: in 3073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *":$add_shlibpath:"*) ;; 3074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 3075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog; then 3078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 3079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add" && compile_deplibs="$add $compile_deplibs" 3080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add_dir" && deplibs="$add_dir $deplibs" 3082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add" && deplibs="$add $deplibs" 3083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_direct" != yes && \ 3084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$hardcode_minus_L" != yes && \ 3085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$hardcode_shlibpath_var" = yes; then 3086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case :$finalize_shlibpath: in 3087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *":$libdir:"*) ;; 3088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 3089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog || test "$mode" = relink; then 3095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_shlibpath= 3096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir= 3097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add= 3098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Finalize command for both is simple: just hardcode it. 3099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_direct" = yes; then 3100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="$libdir/$linklib" 3101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$hardcode_minus_L" = yes; then 3102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir="-L$libdir" 3103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="-l$name" 3104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$hardcode_shlibpath_var" = yes; then 3105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case :$finalize_shlibpath: in 3106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *":$libdir:"*) ;; 3107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 3108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="-l$name" 3110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$hardcode_automatic" = yes; then 3111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$inst_prefix_dir" && 3112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -f "$inst_prefix_dir$libdir/$linklib" ; then 3113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="$inst_prefix_dir$libdir/$linklib" 3114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="$libdir/$linklib" 3116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We cannot seem to hardcode it, guess we'll fake it. 3119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir="-L$libdir" 3120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Try looking first in the location we're being installed to. 3121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$inst_prefix_dir"; then 3122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $libdir in 3123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]*) 3124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add_dir="$add_dir -L$inst_prefix_dir$libdir" 3125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson add="-l$name" 3129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog; then 3132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 3133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 3134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add_dir" && deplibs="$add_dir $deplibs" 3136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$add" && deplibs="$add $deplibs" 3137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$linkmode" = prog; then 3140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Here we assume that one of hardcode_direct or hardcode_minus_L 3141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # is not unsupported. This is valid on all known static and 3142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # shared platforms. 3143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_direct" != unsupported; then 3144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$old_library" && linklib="$old_library" 3145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$dir/$linklib $compile_deplibs" 3146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="$dir/$linklib $finalize_deplibs" 3147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="-l$name -L$dir $compile_deplibs" 3149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs="-l$name -L$dir $finalize_deplibs" 3150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$build_libtool_libs" = yes; then 3152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Not a shared library 3153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$deplibs_check_method" != pass_all; then 3154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We're trying link a shared library against a static one 3155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # but the system doesn't support it. 3156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just print a warning and add the library to dependency_libs so 3158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # that the program can be linked against the static library. 3159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 3160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: This system can not link to static lib archive $lib." 3161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** I have the capability to make that library automatically link in when" 3162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** you link to this library. But I can only do this if you have a" 3163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** shared version of the library, which you do not appear to have." 3164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$module" = yes; then 3165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** But as you try to build a module library, libtool will still create " 3166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** a static module, that should work as long as the dlopening application" 3167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 3168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$global_symbol_pipe"; then 3169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 3170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** However, this would only work if libtool was able to extract symbol" 3171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 3172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** not find such a program. So, this module is probably useless." 3173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** \`nm' from GNU binutils and a full rebuild may help." 3174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = no; then 3176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=module 3177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 3178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 3180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$dir/$old_library $deplibs" 3184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_static=yes 3185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # link shared/static library? 3187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = lib; then 3189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dependency_libs" && 3190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { test "$hardcode_into_libs" != yes || 3191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$build_old_libs" = yes || 3192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$link_static" = yes; }; then 3193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Extract -R from dependency_libs 3194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson temp_deplibs= 3195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $dependency_libs; do 3196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $libdir in 3197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 3198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $xrpath " in 3199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $temp_xrpath "*) ;; 3200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) xrpath="$xrpath $temp_xrpath";; 3201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac;; 3202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) temp_deplibs="$temp_deplibs $libdir";; 3203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dependency_libs="$temp_deplibs" 3206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newlib_search_path="$newlib_search_path $absdir" 3209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Link against this library 3210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 3211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # ... and its dependency_libs 3212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs= 3213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $dependency_libs; do 3214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdependency_libs="$deplib $newdependency_libs" 3215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$duplicate_deps" = "Xyes" ; then 3216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$tmp_libs " in 3217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 3218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs="$tmp_libs $deplib" 3221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$link_all_deplibs" != no; then 3224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add the search paths of all dependency libraries 3225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $dependency_libs; do 3226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 3227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) path="$deplib" ;; 3228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) 3229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 3230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$dir" = "X$deplib" && dir="." 3231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need an absolute path. 3232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $dir in 3233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 3234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir=`cd "$dir" && pwd` 3236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$absdir"; then 3237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 3238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir="$dir" 3239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if grep "^installed=no" $deplib > /dev/null; then 3243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson path="$absdir/$objdir" 3244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 3246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 3247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 3248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$absdir" != "$libdir"; then 3251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 3252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson path="$absdir" 3254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson depdepl= 3256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 3257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-darwin*) 3258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # we do not want to link against static libs, 3259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # but need to link against shared 3260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 3261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$deplibrary_names" ; then 3262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for tmp in $deplibrary_names ; do 3263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson depdepl=$tmp 3264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$path/$depdepl" ; then 3266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson depdepl="$path/$depdepl" 3267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # do not add paths which are already there 3269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $newlib_search_path " in 3270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $path "*) ;; 3271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) newlib_search_path="$newlib_search_path $path";; 3272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson path="" 3275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson path="-L$path" 3278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -l*) 3282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 3283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-darwin*) 3284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Again, we only want to link against shared libraries 3285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` 3286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for tmp in $newlib_search_path ; do 3287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$tmp/lib$tmp_libs.dylib" ; then 3288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval depdepl="$tmp/lib$tmp_libs.dylib" 3289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 3290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson path="" 3293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) continue ;; 3295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) continue ;; 3298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $deplibs " in 3300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $path "*) ;; 3301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) deplibs="$path $deplibs" ;; 3302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $deplibs " in 3304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $depdepl "*) ;; 3305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) deplibs="$depdepl $deplibs" ;; 3306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # link_all_deplibs != no 3309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi # linkmode = lib 3310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # for deplib in $libs 3311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dependency_libs="$newdependency_libs" 3312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" = dlpreopen; then 3313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Link the dlpreopened libraries before other libraries 3314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $save_deplibs; do 3315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplib $deplibs" 3316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" != dlopen; then 3319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$pass" != conv; then 3320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure lib_search_path contains only unique directories. 3321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib_search_path= 3322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for dir in $newlib_search_path; do 3323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$lib_search_path " in 3324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $dir "*) ;; 3325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) lib_search_path="$lib_search_path $dir" ;; 3326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newlib_search_path= 3329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode,$pass" != "prog,link"; then 3332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson vars="deplibs" 3333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson vars="compile_deplibs finalize_deplibs" 3335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for var in $vars dependency_libs; do 3337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add libraries to $var in reverse order 3338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval tmp_libs=\"\$$var\" 3339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson new_libs= 3340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $tmp_libs; do 3341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # FIXME: Pedantically, this is the right thing to do, so 3342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # that some nasty dependency loop isn't accidentally 3343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # broken: 3344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson #new_libs="$deplib $new_libs" 3345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Pragmatically, this seems to cause very few problems in 3346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # practice: 3347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 3348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) new_libs="$deplib $new_libs" ;; 3349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -R*) ;; 3350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # And here is the reason: when a library appears more 3352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # than once as an explicit dependence of a library, or 3353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # is implicitly linked in more than once by the 3354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # compiler, it is considered special, and multiple 3355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # occurrences thereof are not removed. Compare this 3356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # with having the same library being listed as a 3357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # dependency of multiple other libraries: in this case, 3358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # we know (pedantically, we assume) the library does not 3359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # need to be listed more than once, so we keep only the 3360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # last copy. This is not always right, but it is rare 3361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # enough that we require users that really mean to play 3362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # such unportable linking tricks to link the library 3363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # using -Wl,-lname, so that libtool does not consider it 3364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # for duplicate removal. 3365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $specialdeplibs " in 3366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) new_libs="$deplib $new_libs" ;; 3367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $new_libs " in 3369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) ;; 3370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) new_libs="$deplib $new_libs" ;; 3371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs= 3378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $new_libs; do 3379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 3380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) 3381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $tmp_libs " in 3382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) ;; 3383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) tmp_libs="$tmp_libs $deplib" ;; 3384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) tmp_libs="$tmp_libs $deplib" ;; 3387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval $var=\"$tmp_libs\" 3390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # for var 3391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Last step: remove runtime libs from dependency_libs 3393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # (they stay in deplibs) 3394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs= 3395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for i in $dependency_libs ; do 3396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $predeps $postdeps $compiler_lib_search_path " in 3397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $i "*) 3398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson i="" 3399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$i" ; then 3402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_libs="$tmp_libs $i" 3403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dependency_libs=$tmp_libs 3406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # for pass 3407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkmode" = prog; then 3408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles="$newdlfiles" 3409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$newdlprefiles" 3410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $linkmode in 3413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlib) 3414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$deplibs"; then 3415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 3416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 3419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 3420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$rpath"; then 3423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 3424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$xrpath"; then 3427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 3428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$vinfo"; then 3431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 3432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$release"; then 3435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 3436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 3439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 3440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now set the variables for building old libraries. 3443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 3444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlibs="$output" 3445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objs="$objs$old_deplibs" 3446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib) 3449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure we only generate libraries of the form `libNAME.la'. 3450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $outputname in 3451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib*) 3452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 3453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval shared_ext=\"$shrext_cmds\" 3454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libname=\"$libname_spec\" 3455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$module" = no; then 3458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 3459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 3460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$need_lib_prefix" != no; then 3463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add the "lib" prefix for modules if required 3464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval shared_ext=\"$shrext_cmds\" 3466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libname=\"$libname_spec\" 3467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$objs"; then 3474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$deplibs_check_method" != pass_all; then 3475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 3476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 3479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: Linking the shared library $output against the non-libtool" 3480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** objects $objs is not portable!" 3481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs="$libobjs $objs" 3482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$dlself" != no; then 3486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 3487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $rpath 3490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$#" -gt 2; then 3491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 3492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install_libdir="$2" 3494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlibs= 3496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$rpath"; then 3497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes; then 3498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Building a libtool convenience library. 3499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Some compilers have problems with a `.al' extension so 3500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # convenience libraries should have the same extension an 3501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # archive normally would. 3502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlibs="$output_objdir/$libname.$libext $oldlibs" 3503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=convenience 3504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 3505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$vinfo"; then 3508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 3509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$release"; then 3512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 3513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Parse the version information argument. 3517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS=':' 3518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $vinfo 0 0 0 3519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 3520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$8"; then 3522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: too many parameters to \`-version-info'" 1>&2 3523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 3524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # convert absolute version numbers to libtool ages 3528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # this retains compatibility with .la files and attempts 3529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # to make the code below a bit more comprehensible 3530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $vinfo_number in 3532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson yes) 3533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson number_major="$2" 3534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson number_minor="$3" 3535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson number_revision="$4" 3536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # 3537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # There are really only two kinds -- those that 3538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # use the current revision as the major version 3539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # and those that subtract age and use age as 3540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # a minor version. But, then there is irix 3541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # which has an extra 1 added just for fun 3542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # 3543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $version_type in 3544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin|linux|osf|windows) 3545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson current=`expr $number_major + $number_minor` 3546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson age="$number_minor" 3547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson revision="$number_revision" 3548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson freebsd-aout|freebsd-elf|sunos) 3550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson current="$number_major" 3551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson revision="$number_minor" 3552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson age="0" 3553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson irix|nonstopux) 3555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson current=`expr $number_major + $number_minor - 1` 3556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson age="$number_minor" 3557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson revision="$number_minor" 3558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: unknown library version type \`$version_type'" 1>&2 3561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson no) 3567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson current="$2" 3568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson revision="$3" 3569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson age="$4" 3570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check that each of the things are valid numbers. 3574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $current in 3575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 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]) ;; 3576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 3578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $revision in 3584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 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]) ;; 3585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 3587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $age in 3593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 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]) ;; 3594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 3596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$age" -gt "$current"; then 3602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 3603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Calculate the version variables. 3608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major= 3609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix= 3610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring= 3611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $version_type in 3612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson none) ;; 3613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin) 3615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Like Linux, but with the current version available in 3616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # verstring for coding it into the library header 3617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=.`expr $current - $age` 3618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix="$major.$age.$revision" 3619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Darwin ld doesn't like 0 for these options... 3620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson minor_current=`expr $current + 1` 3621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 3622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson freebsd-aout) 3625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=".$current" 3626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix=".$current.$revision"; 3627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson freebsd-elf) 3630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=".$current" 3631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix=".$current"; 3632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson irix | nonstopux) 3635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=`expr $current - $age + 1` 3636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $version_type in 3638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson nonstopux) verstring_prefix=nonstopux ;; 3639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) verstring_prefix=sgi ;; 3640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="$verstring_prefix$major.$revision" 3642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add in all the interfaces that we are compatible with. 3644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson loop=$revision 3645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson while test "$loop" -ne 0; do 3646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson iface=`expr $revision - $loop` 3647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson loop=`expr $loop - 1` 3648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="$verstring_prefix$major.$iface:$verstring" 3649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Before this point, $major must not contain `.'. 3652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=.$major 3653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix="$major.$revision" 3654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linux) 3657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=.`expr $current - $age` 3658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix="$major.$age.$revision" 3659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson osf) 3662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=.`expr $current - $age` 3663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix=".$current.$age.$revision" 3664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="$current.$age.$revision" 3665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add in all the interfaces that we are compatible with. 3667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson loop=$age 3668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson while test "$loop" -ne 0; do 3669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson iface=`expr $current - $loop` 3670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson loop=`expr $loop - 1` 3671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="$verstring:${iface}.0" 3672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make executables depend on our current version. 3675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="$verstring:${current}.0" 3676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson sunos) 3679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=".$current" 3680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix=".$current.$revision" 3681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson windows) 3684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Use '-' rather than '.', since we only want one 3685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # extension on DOS 8.3 filesystems. 3686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=`expr $current - $age` 3687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix="-$major" 3688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: unknown library version type \`$version_type'" 1>&2 3692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 3694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Clear the version info if we defaulted, and they specified a release. 3698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$vinfo" && test -n "$release"; then 3699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major= 3700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $version_type in 3701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson darwin) 3702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # we can't check for "0.0" in archive_cmds due to quoting 3703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # problems, so we reset it completely 3704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring= 3705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="0.0" 3708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$need_version" = no; then 3711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix= 3712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix=".0.0" 3714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Remove version info from name if versioning should be avoided 3718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$avoid_version" = yes && test "$need_version" = no; then 3719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major= 3720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix= 3721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson verstring="" 3722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see if the archive will have undefined symbols. 3725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$allow_undefined" = yes; then 3726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$allow_undefined_flag" = unsupported; then 3727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 3728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 3729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 3730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't allow undefined symbols. 3733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson allow_undefined_flag="$no_undefined_flag" 3734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$mode" != relink; then 3738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Remove our outputs, but don't remove object files since they 3739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # may have been created when compiling PIC objects. 3740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson removelist= 3741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tempremovelist=`$echo "$output_objdir/*"` 3742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for p in $tempremovelist; do 3743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $p in 3744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.$objext) 3745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 3747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$precious_files_regex" != "X"; then 3748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 3749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson then 3750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 3751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson removelist="$removelist $p" 3754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) ;; 3756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$removelist"; then 3759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $removelist" 3760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r $removelist 3761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now set the variables for building old libraries. 3765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 3766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlibs="$oldlibs $output_objdir/$libname.$libext" 3767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Transform .lo files to .o files. 3769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 3770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Eliminate all temporary directories. 3773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for path in $notinst_path; do 3774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 3775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 3776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 3777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$xrpath"; then 3780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the user specified any rpath flags, then add them. 3781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson temp_xrpath= 3782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $xrpath; do 3783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson temp_xrpath="$temp_xrpath -R$libdir" 3784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$finalize_rpath " in 3785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 3786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) finalize_rpath="$finalize_rpath $libdir" ;; 3787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 3790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dependency_libs="$temp_xrpath $dependency_libs" 3791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure dlfiles contains only unique files that won't be dlpreopened 3795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_dlfiles="$dlfiles" 3796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles= 3797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for lib in $old_dlfiles; do 3798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $dlprefiles $dlfiles " in 3799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $lib "*) ;; 3800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) dlfiles="$dlfiles $lib" ;; 3801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure dlprefiles contains only unique files 3805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_dlprefiles="$dlprefiles" 3806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles= 3807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for lib in $old_dlprefiles; do 3808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$dlprefiles " in 3809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $lib "*) ;; 3810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) dlprefiles="$dlprefiles $lib" ;; 3811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes; then 3815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$rpath"; then 3816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 3817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 3818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # these systems don't actually have a c library (as such)! 3819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-rhapsody* | *-*-darwin1.[012]) 3821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Rhapsody C library is in the System framework 3822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplibs -framework System" 3823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-netbsd*) 3825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't link with libc until the a.out ld.so is fixed. 3826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 3828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do not include libc due to us having libc/libc_r. 3829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sco3.2v5* | *-*-sco5v6*) 3831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Causes problems with __ctype 3832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 3834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Compiler inserts libc in the correct place for threads to work 3835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 3837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add libc to deplibs on all other systems if necessary. 3838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_need_lc" = "yes"; then 3839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$deplibs -lc" 3840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 3845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Transform deplibs into only deplibs that can be linked in shared. 3846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name_save=$name 3847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname_save=$libname 3848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson release_save=$release 3849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix_save=$versuffix 3850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major_save=$major 3851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # I'm not sure if I'm treating the release correctly. I think 3852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # release should show up in the -l (ie -lgmp5) so we don't want to 3853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # add it in twice. Is that correct? 3854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson release="" 3855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix="" 3856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major="" 3857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs= 3858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson droppeddeps=no 3859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplibs_check_method in 3860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pass_all) 3861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't check for shared/static. Everything works. 3862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This might be a little naive. We might want to check 3863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # whether the library exists or not. But this is on 3864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # osf3 & osf4 and I'm not really sure... Just 3865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # implementing what was already the behavior. 3866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs=$deplibs 3867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test_compile) 3869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This code stresses the "libraries are programs" paradigm to its 3870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # limits. Maybe even breaks it. We compile a program, linking it 3871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # against the deplibs as a proxy for the library. Then we can check 3872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # whether they linked in statically or dynamically with ldd. 3873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm conftest.c 3874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat > conftest.c <<EOF 3875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson int main() { return 0; } 3876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 3877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm conftest 3878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $LTCC $LTCFLAGS -o conftest conftest.c $deplibs 3879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$?" -eq 0 ; then 3880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ldd_output=`ldd conftest` 3881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for i in $deplibs; do 3882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`expr $i : '-l\(.*\)'` 3883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If $name is empty we are operating on a -L argument. 3884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$name" != "" && test "$name" -ne "0"; then 3885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $predeps $postdeps " in 3887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $i "*) 3888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $i" 3889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson i="" 3890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$i" ; then 3894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname=`eval \\$echo \"$libname_spec\"` 3895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplib_matches=`eval \\$echo \"$library_names_spec\"` 3896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $deplib_matches 3897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplib_match=$2 3898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $i" 3900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson droppeddeps=yes 3902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 3903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: dynamic linker does not accept needed library $i." 3904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** I have the capability to make that library automatically link in when" 3905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** you link to this library. But I can only do this if you have a" 3906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** shared version of the library, which I believe you do not have" 3907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** because a test_compile did reveal that the linker did not use it for" 3908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** its dynamic dependency list that programs get resolved with at runtime." 3909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $i" 3913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Error occurred in the first compile. Let's try to salvage 3917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the situation: Compile a separate program for each library. 3918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for i in $deplibs; do 3919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`expr $i : '-l\(.*\)'` 3920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If $name is empty we are operating on a -L argument. 3921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$name" != "" && test "$name" != "0"; then 3922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm conftest 3923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $LTCC $LTCFLAGS -o conftest conftest.c $i 3924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Did it work? 3925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$?" -eq 0 ; then 3926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ldd_output=`ldd conftest` 3927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $predeps $postdeps " in 3929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $i "*) 3930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $i" 3931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson i="" 3932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$i" ; then 3936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname=`eval \\$echo \"$libname_spec\"` 3937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplib_matches=`eval \\$echo \"$library_names_spec\"` 3938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $deplib_matches 3939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplib_match=$2 3940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $i" 3942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson droppeddeps=yes 3944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 3945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: dynamic linker does not accept needed library $i." 3946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** I have the capability to make that library automatically link in when" 3947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** you link to this library. But I can only do this if you have a" 3948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** shared version of the library, which you do not appear to have" 3949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** because a test_compile did reveal that the linker did not use this one" 3950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 3951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson droppeddeps=yes 3955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 3956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning! Library $i is needed by this library but I was not able to" 3957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** make it link in! You will probably need to install it or some" 3958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** library that it depends on before this library will be fully" 3959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** functional. Installing it before continuing would be even better." 3960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 3962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $i" 3963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 3965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file_magic*) 3968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $deplibs_check_method 3969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for a_deplib in $deplibs; do 3971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`expr $a_deplib : '-l\(.*\)'` 3972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If $name is empty we are operating on a -L argument. 3973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$name" != "" && test "$name" != "0"; then 3974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $predeps $postdeps " in 3976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $a_deplib "*) 3977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $a_deplib" 3978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson a_deplib="" 3979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 3980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 3981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$a_deplib" ; then 3983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname=`eval \\$echo \"$libname_spec\"` 3984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for potent_lib in $potential_libs; do 3987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Follow soft links. 3988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if ls -lLd "$potent_lib" 2>/dev/null \ 3989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | grep " -> " >/dev/null; then 3990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 3991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 3992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The statement above tries to avoid entering an 3993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # endless loop below, in case of cyclic links. 3994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We might still enter an endless loop, since a link 3995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # loop can be closed while we follow links, 3996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # but so what? 3997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson potlib="$potent_lib" 3998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson while test -h "$potlib" 2>/dev/null; do 3999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 4000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $potliblink in 4001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 4002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 4003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 4006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | ${SED} 10q \ 4007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | $EGREP "$file_magic_regex" > /dev/null; then 4008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $a_deplib" 4009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson a_deplib="" 4010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 2 4011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$a_deplib" ; then 4016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson droppeddeps=yes 4017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 4018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: linker path does not have real file for library $a_deplib." 4019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** I have the capability to make that library automatically link in when" 4020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** you link to this library. But I can only do this if you have a" 4021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** shared version of the library, which you do not appear to have" 4022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** because I did check the linker path looking for a file starting" 4023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$potlib" ; then 4024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** with $libname but no candidates were found. (...for file magic test)" 4025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** with $libname and none of the candidates passed a file format test" 4027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** using a file magic. Last file checked: $potlib" 4028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add a -L argument. 4032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $a_deplib" 4033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # Gone through all deplibs. 4035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson match_pattern*) 4037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $deplibs_check_method 4038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 4039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for a_deplib in $deplibs; do 4040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`expr $a_deplib : '-l\(.*\)'` 4041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If $name is empty we are operating on a -L argument. 4042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$name" && test "$name" != "0"; then 4043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 4044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $predeps $postdeps " in 4045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $a_deplib "*) 4046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $a_deplib" 4047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson a_deplib="" 4048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$a_deplib" ; then 4052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname=`eval \\$echo \"$libname_spec\"` 4053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 4054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 4055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for potent_lib in $potential_libs; do 4056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson potlib="$potent_lib" # see symlink-check above in file_magic test 4057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if eval $echo \"$potent_lib\" 2>/dev/null \ 4058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | ${SED} 10q \ 4059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | $EGREP "$match_pattern_regex" > /dev/null; then 4060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $a_deplib" 4061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson a_deplib="" 4062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 2 4063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$a_deplib" ; then 4068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson droppeddeps=yes 4069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 4070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: linker path does not have real file for library $a_deplib." 4071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** I have the capability to make that library automatically link in when" 4072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** you link to this library. But I can only do this if you have a" 4073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** shared version of the library, which you do not appear to have" 4074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** because I did check the linker path looking for a file starting" 4075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$potlib" ; then 4076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 4077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** with $libname and none of the candidates passed a file format test" 4079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** using a regex pattern. Last file checked: $potlib" 4080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add a -L argument. 4084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="$newdeplibs $a_deplib" 4085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done # Gone through all deplibs. 4087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson none | unknown | *) 4089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs="" 4090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 4091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -e 's/ -[LR][^ ]*//g'` 4092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 4093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for i in $predeps $postdeps ; do 4094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # can't use Xsed below, because $i might contain '/' 4095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 4096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 4099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson | grep . >/dev/null; then 4100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 4101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$deplibs_check_method" = "Xnone"; then 4102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: inter-library dependencies are not supported in this platform." 4103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: inter-library dependencies are not known to be supported." 4105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** All declared inter-library dependencies are being dropped." 4107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson droppeddeps=yes 4108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson versuffix=$versuffix_save 4112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson major=$major_save 4113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson release=$release_save 4114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libname=$libname_save 4115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=$name_save 4116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-rhapsody* | *-*-darwin1.[012]) 4119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # On Rhapsody replace the C library is the System framework 4120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 4121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$droppeddeps" = yes; then 4125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$module" = yes; then 4126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 4127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Warning: libtool could not satisfy all declared inter-library" 4128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** dependencies of module $libname. Therefore, libtool will create" 4129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** a static module, that should work as long as the dlopening" 4130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** application is linked with the -dlopen flag." 4131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$global_symbol_pipe"; then 4132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 4133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** However, this would only work if libtool was able to extract symbol" 4134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 4135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** not find such a program. So, this module is probably useless." 4136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** \`nm' from GNU binutils and a full rebuild may help." 4137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = no; then 4139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlibs="$output_objdir/$libname.$libext" 4140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=module 4141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 4142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 4144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** The inter-library dependencies that have been dropped here will be" 4147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** automatically added whenever a program is linked with this library" 4148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** or is declared to -dlopen it." 4149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$allow_undefined" = no; then 4151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 4152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** Since this library must not contain undefined symbols," 4153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** because either the platform does not support them or" 4154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** it was explicitly requested with -no-undefined," 4155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "*** libtool will only create a static version of it." 4156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = no; then 4157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlibs="$output_objdir/$libname.$libext" 4158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=module 4159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_old_libs=yes 4160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 4162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Done checking deplibs! 4167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs=$newdeplibs 4168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # move library search paths that coincide with paths to not yet 4172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # installed libraries to the beginning of the library search list 4173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson new_libs= 4174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for path in $notinst_path; do 4175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $new_libs " in 4176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" -L$path/$objdir "*) ;; 4177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 4178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $deplibs " in 4179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" -L$path/$objdir "*) 4180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson new_libs="$new_libs -L$path/$objdir" ;; 4181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $deplibs; do 4186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 4187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) 4188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $new_libs " in 4189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) ;; 4190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) new_libs="$new_libs $deplib" ;; 4191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) new_libs="$new_libs $deplib" ;; 4194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$new_libs" 4197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # All the library-specific variables (install_libdir is set above). 4200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson library_names= 4201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_library= 4202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlname= 4203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Test again, we may have decided not to build it any more 4205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = yes; then 4206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_into_libs" = yes; then 4207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Hardcode the library paths 4208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs= 4209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dep_rpath= 4210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$finalize_rpath" 4211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$mode" != relink && rpath="$compile_rpath$rpath" 4212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $rpath; do 4213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_flag_spec"; then 4214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_separator"; then 4215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$hardcode_libdirs"; then 4216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs="$libdir" 4217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just accumulate the unique libdirs. 4219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 4223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval flag=\"$hardcode_libdir_flag_spec\" 4229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dep_rpath="$dep_rpath $flag" 4230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test -n "$runpath_var"; then 4232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$perm_rpath " in 4233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 4234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) perm_rpath="$perm_rpath $libdir" ;; 4235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Substitute the hardcoded libdirs into the rpath. 4239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_separator" && 4240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$hardcode_libdirs"; then 4241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdir="$hardcode_libdirs" 4242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_flag_spec_ld"; then 4243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" 4244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval dep_rpath=\"$hardcode_libdir_flag_spec\" 4246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$runpath_var" && test -n "$perm_rpath"; then 4249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We should set the runpath_var. 4250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath= 4251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for dir in $perm_rpath; do 4252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$rpath$dir:" 4253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 4255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 4257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shlibpath="$finalize_shlibpath" 4260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 4261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$shlibpath"; then 4262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 4263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Get the real and link names of the library. 4266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval shared_ext=\"$shrext_cmds\" 4267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval library_names=\"$library_names_spec\" 4268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $library_names 4269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson realname="$2" 4270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift; shift 4271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$soname_spec"; then 4273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval soname=\"$soname_spec\" 4274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson soname="$realname" 4276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$dlname"; then 4278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlname=$soname 4279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib="$output_objdir/$realname" 4282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linknames= 4283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for link 4284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 4285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linknames="$linknames $link" 4286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Use standard objects if they are pic 4289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Prepare the list of exported symbols 4292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$export_symbols"; then 4293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 4294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "generating symbol list for \`$libname.la'" 4295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_symbols="$output_objdir/$libname.exp" 4296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $export_symbols 4297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$export_symbols_cmds 4298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 4299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 4300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 4302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if len=`expr "X$cmd" : ".*"` && 4303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 4304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 4305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 4306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson skipped_export=false 4307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The command line is too long to execute in one step. 4309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "using reloadable object file for export list..." 4310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson skipped_export=: 4311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Break out early, otherwise skipped_export may be 4312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # set to false by a later but shorter cmd. 4313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 4314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols_regex"; then 4318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 4319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 4320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mv \"${export_symbols}T\" \"$export_symbols\"" 4321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$mv "${export_symbols}T" "$export_symbols"' 4322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols" && test -n "$include_expsyms"; then 4327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 4328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_deplibs= 4331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for test_deplib in $deplibs; do 4332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $convenience " in 4333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $test_deplib "*) ;; 4334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 4335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_deplibs="$tmp_deplibs $test_deplib" 4336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson deplibs="$tmp_deplibs" 4340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$convenience"; then 4342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$whole_archive_flag_spec"; then 4343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_libobjs=$libobjs 4344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 4345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson gentop="$output_objdir/${outputname}x" 4347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson generated="$generated $gentop" 4348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_extract_archives $gentop $convenience 4350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs="$libobjs $func_extract_archives_result" 4351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 4355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval flag=\"$thread_safe_flag_spec\" 4356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson linker_flags="$linker_flags $flag" 4357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make a backup of the uninstalled library when relinking 4360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$mode" = relink; then 4361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 4362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each of the archive commands. 4365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$module" = yes && test -n "$module_cmds" ; then 4366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval test_cmds=\"$module_expsym_cmds\" 4368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$module_expsym_cmds 4369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval test_cmds=\"$module_cmds\" 4371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$module_cmds 4372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval test_cmds=\"$archive_expsym_cmds\" 4376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$archive_expsym_cmds 4377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval test_cmds=\"$archive_cmds\" 4379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$archive_cmds 4380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$skipped_export" != "X:" && 4384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 4386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 4387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The command line is too long to link in one step, link piecewise. 4389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "creating reloadable object files..." 4390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Save the value of $output and $libobjs because we want to 4392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # use them later. If we have whole_archive_flag_spec, we 4393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # want to use save_libobjs as it was before 4394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # whole_archive_flag_spec was expanded, because we can't 4395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # assume the linker understands whole_archive_flag_spec. 4396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This may have to be revisited, in case too many 4397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # convenience libraries get linked in and end up exceeding 4398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the spec. 4399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 4400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_libobjs=$libobjs 4401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_output=$output 4403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_la=`$echo "X$output" | $Xsed -e "$basename"` 4404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Clear the reloadable object creation command queue and 4406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # initialize k to one. 4407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test_cmds= 4408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_cmds= 4409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objlist= 4410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson delfiles= 4411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson last_robj= 4412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson k=1 4413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output=$output_objdir/$output_la-${k}.$objext 4414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Loop over the list of objects to be linked. 4415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for obj in $save_libobjs 4416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 4417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval test_cmds=\"$reload_cmds $objlist $last_robj\" 4418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$objlist" = X || 4419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$len" -le "$max_cmd_len"; }; then 4421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objlist="$objlist $obj" 4422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The command $test_cmds is almost too long, add a 4424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # command to the queue. 4425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$k" -eq 1 ; then 4426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The first file doesn't have a previous command to add. 4427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 4428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # All subsequent reloadable object files will link in 4430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the last one created. 4431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 4432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson last_robj=$output_objdir/$output_la-${k}.$objext 4434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson k=`expr $k + 1` 4435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output=$output_objdir/$output_la-${k}.$objext 4436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objlist=$obj 4437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson len=1 4438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Handle the remaining objects by creating one last 4441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # reloadable object file. All subsequent reloadable object 4442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # files will link in the last one created. 4443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 4444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 4445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if ${skipped_export-false}; then 4447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "generating symbol list for \`$libname.la'" 4448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_symbols="$output_objdir/$libname.exp" 4449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $export_symbols 4450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs=$output 4451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Append the command to create the export file. 4452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" 4453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Set up a command to remove the reloadable object files 4456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # after they are used. 4457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson i=0 4458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson while test "$i" -lt "$k" 4459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 4460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson i=`expr $i + 1` 4461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" 4462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "creating a temporary reloadable object file: $output" 4465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Loop through the commands generated above and execute them. 4467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 4468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $concat_cmds; do 4469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 4471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 4472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobjs=$output 4476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Restore the value of output. 4477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output=$save_output 4478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 4480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 4481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Expand the library linking commands again to reset the 4483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # value of $libobjs for piecewise linking. 4484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each of the archive commands. 4486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$module" = yes && test -n "$module_cmds" ; then 4487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$module_expsym_cmds 4489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$module_cmds 4491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$archive_expsym_cmds 4495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$archive_cmds 4497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Append the command to remove the reloadable object files 4501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # to the just-reset $cmds. 4502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmds=\"\$cmds~\$rm $delfiles\" 4503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 4505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 4506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 4508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 4509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || { 4510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_exit=$? 4511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Restore the uninstalled library and exit 4513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$mode" = relink; then 4514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 4515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $lt_exit 4518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 4519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Restore the uninstalled library and exit 4523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$mode" = relink; then 4524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 4525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$convenience"; then 4527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$whole_archive_flag_spec"; then 4528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $gentop" 4529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r "$gentop" 4530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 4534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Create links to the real library. 4537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for linkname in $linknames; do 4538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$realname" != "$linkname"; then 4539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 4540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? 4541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If -module or -export-dynamic was specified, set the dlname. 4545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$module" = yes || test "$export_dynamic" = yes; then 4546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # On all known operating systems, these are identical. 4547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlname="$soname" 4548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson obj) 4553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$deplibs"; then 4554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 4555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 4559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$rpath"; then 4562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 4563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$xrpath"; then 4566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 4567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$vinfo"; then 4570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 4571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$release"; then 4574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 4575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $output in 4578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) 4579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$objs$old_deplibs"; then 4580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 4581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 4582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobj="$output" 4584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson obj=`$echo "X$output" | $Xsed -e "$lo2o"` 4585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 4587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libobj= 4588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson obj="$output" 4589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Delete the old objects. 4593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $obj $libobj 4594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Objects from convenience libraries. This assumes 4596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # single-version convenience libraries. Whenever we create 4597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # different ones for PIC/non-PIC, this we'll have to duplicate 4598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the extraction. 4599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson reload_conv_objs= 4600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson gentop= 4601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # reload_cmds runs $LD directly, so let us get rid of 4602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # -Wl from whole_archive_flag_spec 4603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson wl= 4604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$convenience"; then 4606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$whole_archive_flag_spec"; then 4607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" 4608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson gentop="$output_objdir/${obj}x" 4610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson generated="$generated $gentop" 4611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_extract_archives $gentop $convenience 4613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson reload_conv_objs="$reload_objs $func_extract_archives_result" 4614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Create the old-style object. 4618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test 4619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output="$obj" 4621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$reload_cmds 4622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 4623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 4624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 4626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 4627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 4628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Exit if we aren't doing a library object file. 4632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libobj"; then 4633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$gentop"; then 4634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $gentop" 4635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r $gentop 4636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 4639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" != yes; then 4642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$gentop"; then 4643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $gentop" 4644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r $gentop 4645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Create an invalid libtool object if no PIC, so that we don't 4648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # accidentally link it into a program. 4649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # $show "echo timestamp > $libobj" 4650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # $run eval "echo timestamp > $libobj" || exit $? 4651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 4652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$pic_flag" || test "$pic_mode" != default; then 4655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only do commands if we really have different PIC objects. 4656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson reload_objs="$libobjs $reload_conv_objs" 4657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output="$libobj" 4658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$reload_cmds 4659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 4660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 4661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 4663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 4664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 4665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 4667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$gentop"; then 4670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $gentop" 4671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r $gentop 4672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 4675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prog) 4678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 4680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$vinfo"; then 4682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 4683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$release"; then 4686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 4687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$preload" = yes; then 4690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 4691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$dlopen_self_static" = unknown; then 4692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 4693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-rhapsody* | *-*-darwin1.[012]) 4698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # On Rhapsody replace the C library is the System framework 4699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *darwin*) 4706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't allow lazy linking, it breaks C++ global constructors 4707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$tagname" = CXX ; then 4708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command ${wl}-bind_at_load" 4709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command ${wl}-bind_at_load" 4710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # move library search paths that coincide with paths to not yet 4716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # installed libraries to the beginning of the library search list 4717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson new_libs= 4718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for path in $notinst_path; do 4719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $new_libs " in 4720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" -L$path/$objdir "*) ;; 4721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 4722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $compile_deplibs " in 4723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" -L$path/$objdir "*) 4724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson new_libs="$new_libs -L$path/$objdir" ;; 4725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $compile_deplibs; do 4730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 4731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -L*) 4732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $new_libs " in 4733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $deplib "*) ;; 4734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) new_libs="$new_libs $deplib" ;; 4735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) new_libs="$new_libs $deplib" ;; 4738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_deplibs="$new_libs" 4741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$compile_command $compile_deplibs" 4744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$finalize_command $finalize_deplibs" 4745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$rpath$xrpath"; then 4747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the user specified any rpath flags, then add them. 4748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $rpath $xrpath; do 4749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This is the magic to use -rpath. 4750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$finalize_rpath " in 4751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 4752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) finalize_rpath="$finalize_rpath $libdir" ;; 4753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now hardcode the library paths 4758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath= 4759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs= 4760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $compile_rpath $finalize_rpath; do 4761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_flag_spec"; then 4762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_separator"; then 4763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$hardcode_libdirs"; then 4764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs="$libdir" 4765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just accumulate the unique libdirs. 4767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 4771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval flag=\"$hardcode_libdir_flag_spec\" 4777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$rpath $flag" 4778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test -n "$runpath_var"; then 4780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$perm_rpath " in 4781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 4782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) perm_rpath="$perm_rpath $libdir" ;; 4783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 4787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 4788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case :$dllsearchpath: in 4789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *":$libdir:"*) ;; 4790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) dllsearchpath="$dllsearchpath:$libdir";; 4791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case :$dllsearchpath: in 4793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *":$testbindir:"*) ;; 4794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) dllsearchpath="$dllsearchpath:$testbindir";; 4795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Substitute the hardcoded libdirs into the rpath. 4800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_separator" && 4801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$hardcode_libdirs"; then 4802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdir="$hardcode_libdirs" 4803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval rpath=\" $hardcode_libdir_flag_spec\" 4804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_rpath="$rpath" 4806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath= 4808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs= 4809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $finalize_rpath; do 4810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_flag_spec"; then 4811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_separator"; then 4812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$hardcode_libdirs"; then 4813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs="$libdir" 4814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just accumulate the unique libdirs. 4816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 4820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval flag=\"$hardcode_libdir_flag_spec\" 4826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$rpath $flag" 4827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test -n "$runpath_var"; then 4829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$finalize_perm_rpath " in 4830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 4831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 4832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Substitute the hardcoded libdirs into the rpath. 4836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_separator" && 4837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$hardcode_libdirs"; then 4838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdir="$hardcode_libdirs" 4839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval rpath=\" $hardcode_libdir_flag_spec\" 4840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_rpath="$rpath" 4842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$libobjs" && test "$build_old_libs" = yes; then 4844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Transform all the library objects into standard objects. 4845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlsyms= 4850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$NM" && test -n "$global_symbol_pipe"; then 4852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlsyms="${outputname}S.c" 4853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 4855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dlsyms"; then 4859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $dlsyms in 4860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson "") ;; 4861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.c) 4862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Discover the nlist of each of the dlfiles. 4863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson nlist="$output_objdir/${outputname}.nm" 4864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$rm $nlist ${nlist}S ${nlist}T" 4866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm "$nlist" "${nlist}S" "${nlist}T" 4867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Parse the name list into a source file. 4869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "creating $output_objdir/$dlsyms" 4870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ 4872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ 4873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ 4874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef __cplusplus 4876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonextern \"C\" { 4877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 4878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Prevent the only kind of declaration conflicts we can make. */ 4880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define lt_preloaded_symbols some_other_symbol 4881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* External symbol declarations for the compiler. */\ 4883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 4884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$dlself" = yes; then 4886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "generating symbol list for \`$output'" 4887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" 4889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add our own program objects to the symbol list. 4891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg in $progfiles; do 4893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "extracting global C symbols from \`$arg'" 4894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$exclude_expsyms"; then 4898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 4899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$mv "$nlist"T "$nlist"' 4900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$export_symbols_regex"; then 4903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 4904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$mv "$nlist"T "$nlist"' 4905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Prepare the list of exported symbols 4908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$export_symbols"; then 4909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export_symbols="$output_objdir/$outputname.exp" 4910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $export_symbols 4911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 4912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin* | *mingw* ) 4914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 4916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 4920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 4921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval 'mv "$nlist"T "$nlist"' 4922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin* | *mingw* ) 4924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 4926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg in $dlprefiles; do 4932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "extracting global C symbols from \`$arg'" 4933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 4934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '$echo ": $name " >> "$nlist"' 4935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 4937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$run"; then 4939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure we have at least an empty file. 4940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -f "$nlist" || : > "$nlist" 4941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$exclude_expsyms"; then 4943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 4944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $mv "$nlist"T "$nlist" 4945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Try sorting and uniquifying the output. 4948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if grep -v "^: " < "$nlist" | 4949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if sort -k 3 </dev/null >/dev/null 2>&1; then 4950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson sort -k 3 4951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson sort +2 4953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi | 4954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson uniq > "$nlist"S; then 4955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 4956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson grep -v "^: " < "$nlist" > "$nlist"S 4958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$nlist"S; then 4961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' 4962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 4963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo '/* NONE */' >> "$output_objdir/$dlsyms" 4964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 4965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> "$output_objdir/$dlsyms" "\ 4967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#undef lt_preloaded_symbols 4969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (__STDC__) && __STDC__ 4971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define lt_ptr void * 4972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else 4973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define lt_ptr char * 4974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define const 4975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 4976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* The mapping between symbol names and symbols. */ 4978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 4979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 4981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin* | *mingw* ) 4982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> "$output_objdir/$dlsyms" "\ 4983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* DATA imports from DLLs on WIN32 can't be const, because 4984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson runtime relocations are performed -- see ld's documentation 4985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson on pseudo-relocs */ 4986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstruct { 4987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 4988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson * ) 4990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> "$output_objdir/$dlsyms" "\ 4991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst struct { 4992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 4993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 4994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 4995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 4997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> "$output_objdir/$dlsyms" "\ 4998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson const char *name; 4999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_ptr address; 5000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_preloaded_symbols[] = 5002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{\ 5003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" 5006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> "$output_objdir/$dlsyms" "\ 5008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson {0, (lt_ptr) 0} 5009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}; 5010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* This works around a problem in FreeBSD linker */ 5012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef FREEBSD_WORKAROUND 5013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic const void *lt_preloaded_setup() { 5014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return lt_preloaded_symbols; 5015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef __cplusplus 5019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif\ 5021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson pic_flag_for_symtable= 5025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 5026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # compiling the symbol table file with pic_flag works around 5027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # a FreeBSD bug that causes programs to crash when -lm is 5028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # linked before any other PIC object. But we must not use 5029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # pic_flag when linking with -static. The problem exists in 5030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 5031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 5032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$compile_command " in 5033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" -static "*) ;; 5034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; 5035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac;; 5036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-hpux*) 5037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$compile_command " in 5038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" -static "*) ;; 5039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) pic_flag_for_symtable=" $pic_flag";; 5040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now compile the dynamic symbol file. 5044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" 5045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? 5046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Clean up the generated files. 5048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" 5049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" 5050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Transform the symbol file into the correct name. 5052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 5053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin* | *mingw* ) 5054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$output_objdir/${outputname}.def" ; then 5055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 5056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` 5057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 5059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 5060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson * ) 5063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 5064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` 5065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 5069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 5070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 5071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We keep going just in case the user didn't refer to 5075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 5076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # really was required. 5077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Nullify the symbol file. 5079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 5080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 5081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 5084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Replace the output file specification. 5085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 5086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_command="$compile_command$compile_rpath" 5087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We have no uninstalled library dependencies, so finalize right now. 5089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$link_command" 5090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$link_command" 5091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=$? 5092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Delete the generated files. 5094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dlsyms"; then 5095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$rm $output_objdir/${outputname}S.${objext}" 5096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm "$output_objdir/${outputname}S.${objext}" 5097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $exit_status 5100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$shlibpath_var"; then 5103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We should set the shlibpath_var 5104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath= 5105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for dir in $temp_rpath; do 5106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $dir in 5107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) 5108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Absolute path. 5109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$rpath$dir:" 5110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 5112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Relative path: add a thisdir entry. 5113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$rpath\$thisdir/$dir:" 5114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson temp_rpath="$rpath" 5118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$compile_shlibpath$finalize_shlibpath"; then 5121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 5122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$finalize_shlibpath"; then 5124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 5125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_var= 5128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_var= 5129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$runpath_var"; then 5130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$perm_rpath"; then 5131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We should set the runpath_var. 5132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath= 5133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for dir in $perm_rpath; do 5134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$rpath$dir:" 5135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 5137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$finalize_perm_rpath"; then 5139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We should set the runpath_var. 5140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath= 5141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for dir in $finalize_perm_rpath; do 5142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rpath="$rpath$dir:" 5143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 5145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$no_install" = yes; then 5149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We don't need to create a wrapper script. 5150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_command="$compile_var$compile_command$compile_rpath" 5151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Replace the output file specification. 5152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 5153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Delete the old output file. 5154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $output 5155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Link the executable and exit 5156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$link_command" 5157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$link_command" || exit $? 5158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 5159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_action" = relink; then 5162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Fast installation is not supported 5163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_command="$compile_var$compile_command$compile_rpath" 5164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="$finalize_var$finalize_command$finalize_rpath" 5165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 5167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$output' will be relinked during installation" 1>&2 5168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$fast_install" != no; then 5170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_command="$finalize_var$compile_command$finalize_rpath" 5171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$fast_install" = yes; then 5172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` 5173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # fast_install is set to needless 5175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command= 5176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_command="$compile_var$compile_command$compile_rpath" 5179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="$finalize_var$finalize_command$finalize_rpath" 5180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Replace the output file specification. 5184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 5185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Delete the old output files. 5187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 5188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$link_command" 5190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$link_command" || exit $? 5191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now create the wrapper script. 5193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "creating $output" 5194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Quote the relink command for shipping. 5196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$relink_command"; then 5197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Preserve any variables that may affect compiler behavior 5198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for var in $variables_saved_for_relink; do 5199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if eval test -z \"\${$var+set}\"; then 5200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 5201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif eval var_value=\$$var; test -z "$var_value"; then 5202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="$var=; export $var; $relink_command" 5203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 5205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="$var=\"$var_value\"; export $var; $relink_command" 5206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="(cd `pwd`; $relink_command)" 5209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 5210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Quote $echo for shipping. 5213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 5214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $progpath in 5215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 5216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 5217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 5219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 5221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only actually do things if our run command is non-null. 5224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$run"; then 5225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # win32 will think the script is a binary if it has 5226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # a .exe suffix, so we strip it off here. 5227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $output in 5228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 5229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # test for cygwin because mv fails w/o .exe extensions 5231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 5232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin*) 5233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exeext=.exe 5234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 5235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) exeext= ;; 5236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 5238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin* | *mingw* ) 5239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_name=`basename $output` 5240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output_path=`dirname $output` 5241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cwrappersource="$output_path/$objdir/lt-$output_name.c" 5242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cwrapper="$output_path/$output_name.exe" 5243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm $cwrappersource $cwrapper 5244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 5245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat > $cwrappersource <<EOF 5247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 5249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson The $output program cannot be directly executed until all the libtool 5252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libraries that it depends on are installed. 5253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson This wrapper executable should never be moved out of the build directory. 5255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson If it is, it will not operate correctly. 5256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson Currently, it simply execs the wrapper *script* "/bin/sh $output", 5258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson but could eventually absorb all of the scripts functionality and 5259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exec $objdir/$outputname directly. 5260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*/ 5261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 5262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat >> $cwrappersource<<"EOF" 5263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdio.h> 5264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdlib.h> 5265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <unistd.h> 5266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <malloc.h> 5267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdarg.h> 5268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <assert.h> 5269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <string.h> 5270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <ctype.h> 5271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <sys/stat.h> 5272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined(PATH_MAX) 5274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX PATH_MAX 5275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#elif defined(MAXPATHLEN) 5276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX MAXPATHLEN 5277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else 5278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX 1024 5279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef DIR_SEPARATOR 5282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DIR_SEPARATOR '/' 5283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define PATH_SEPARATOR ':' 5284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 5287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson defined (__OS2__) 5288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define HAVE_DOS_BASED_FILE_SYSTEM 5289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ifndef DIR_SEPARATOR_2 5290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DIR_SEPARATOR_2 '\\' 5291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# endif 5292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ifndef PATH_SEPARATOR_2 5293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define PATH_SEPARATOR_2 ';' 5294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# endif 5295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef DIR_SEPARATOR_2 5298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 5299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else /* DIR_SEPARATOR_2 */ 5300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_DIR_SEPARATOR(ch) \ 5301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 5302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif /* DIR_SEPARATOR_2 */ 5303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef PATH_SEPARATOR_2 5305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 5306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else /* PATH_SEPARATOR_2 */ 5307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 5308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif /* PATH_SEPARATOR_2 */ 5309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 5311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define XFREE(stale) do { \ 5312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (stale) { free ((void *) stale); stale = 0; } \ 5313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} while (0) 5314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* -DDEBUG is fairly common in CFLAGS. */ 5316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#undef DEBUG 5317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined DEBUGWRAPPER 5318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) 5319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else 5320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DEBUG(format, ...) 5321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char *program_name = NULL; 5324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid * xmalloc (size_t num); 5326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * xstrdup (const char *string); 5327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char * base_name (const char *name); 5328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * find_executable(const char *wrapper); 5329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint check_executable(const char *path); 5330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * strendzap(char *str, const char *pat); 5331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid lt_fatal (const char *message, ...); 5332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint 5334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmain (int argc, char *argv[]) 5335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson char **newargz; 5337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson int i; 5338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson program_name = (char *) xstrdup (base_name (argv[0])); 5340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson DEBUG("(main) argv[0] : %s\n",argv[0]); 5341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson DEBUG("(main) program_name : %s\n",program_name); 5342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newargz = XMALLOC(char *, argc+2); 5343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 5344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat >> $cwrappersource <<EOF 5346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newargz[0] = (char *) xstrdup("$SHELL"); 5347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 5348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat >> $cwrappersource <<"EOF" 5350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newargz[1] = find_executable(argv[0]); 5351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (newargz[1] == NULL) 5352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_fatal("Couldn't find %s", argv[0]); 5353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson DEBUG("(main) found exe at : %s\n",newargz[1]); 5354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* we know the script has the same name, without the .exe */ 5355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* so make sure newargz[1] doesn't end in .exe */ 5356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson strendzap(newargz[1],".exe"); 5357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for (i = 1; i < argc; i++) 5358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newargz[i+1] = xstrdup(argv[i]); 5359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newargz[argc+1] = NULL; 5360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for (i=0; i<argc+1; i++) 5362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); 5364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ; 5365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 5368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host_os in 5370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson mingw*) 5371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat >> $cwrappersource <<EOF 5372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson execv("$SHELL",(char const **)newargz); 5373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 5374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 5376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat >> $cwrappersource <<EOF 5377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson execv("$SHELL",newargz); 5378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 5379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cat >> $cwrappersource <<"EOF" 5383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return 127; 5384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid * 5387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonxmalloc (size_t num) 5388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson void * p = (void *) malloc (num); 5390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (!p) 5391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_fatal ("Memory exhausted"); 5392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return p; 5394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * 5397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonxstrdup (const char *string) 5398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL 5400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson; 5401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char * 5404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbase_name (const char *name) 5405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson const char *base; 5407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* Skip over the disk name in MSDOS pathnames. */ 5410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (isalpha ((unsigned char)name[0]) && name[1] == ':') 5411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name += 2; 5412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for (base = name; *name; name++) 5415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (IS_DIR_SEPARATOR (*name)) 5416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson base = name + 1; 5417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return base; 5418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint 5421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncheck_executable(const char * path) 5422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson struct stat st; 5424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); 5426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if ((!path) || (!*path)) 5427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return 0; 5428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if ((stat (path, &st) >= 0) && 5430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ( 5431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ 5432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (S_IXOTH) 5433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ((st.st_mode & S_IXOTH) == S_IXOTH) || 5434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (S_IXGRP) 5436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ((st.st_mode & S_IXGRP) == S_IXGRP) || 5437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ((st.st_mode & S_IXUSR) == S_IXUSR)) 5439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ) 5440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return 1; 5441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return 0; 5443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Searches for the full path of the wrapper. Returns 5446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newly allocated full path name if found, NULL otherwise */ 5447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * 5448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfind_executable (const char* wrapper) 5449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson int has_slash = 0; 5451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson const char* p; 5452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson const char* p_next; 5453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* static buffer for getcwd */ 5454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson char tmp[LT_PATHMAX + 1]; 5455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson int tmp_len; 5456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson char* concat_name; 5457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 5459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if ((wrapper == NULL) || (*wrapper == '\0')) 5461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return NULL; 5462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* Absolute path? */ 5464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') 5466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name = xstrdup (wrapper); 5468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (check_executable(concat_name)) 5469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return concat_name; 5470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson XFREE(concat_name); 5471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (IS_DIR_SEPARATOR (wrapper[0])) 5476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name = xstrdup (wrapper); 5478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (check_executable(concat_name)) 5479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return concat_name; 5480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson XFREE(concat_name); 5481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif 5485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for (p = wrapper; *p; p++) 5487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (*p == '/') 5488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson has_slash = 1; 5490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break; 5491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (!has_slash) 5493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* no slashes; search PATH */ 5495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson const char* path = getenv ("PATH"); 5496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (path != NULL) 5497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for (p = path; *p; p = p_next) 5499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson const char* q; 5501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson size_t p_len; 5502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for (q = p; *q; q++) 5503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (IS_PATH_SEPARATOR(*q)) 5504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break; 5505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson p_len = q - p; 5506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson p_next = (*q == '\0' ? q : q + 1); 5507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (p_len == 0) 5508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* empty path: current directory */ 5510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (getcwd (tmp, LT_PATHMAX) == NULL) 5511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_fatal ("getcwd failed"); 5512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_len = strlen(tmp); 5513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson memcpy (concat_name, tmp, tmp_len); 5515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name[tmp_len] = '/'; 5516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson strcpy (concat_name + tmp_len + 1, wrapper); 5517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); 5521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson memcpy (concat_name, p, p_len); 5522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name[p_len] = '/'; 5523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson strcpy (concat_name + p_len + 1, wrapper); 5524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (check_executable(concat_name)) 5526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return concat_name; 5527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson XFREE(concat_name); 5528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* not found in PATH; assume curdir */ 5531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson /* Relative path | not found in path: prepend cwd */ 5533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (getcwd (tmp, LT_PATHMAX) == NULL) 5534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_fatal ("getcwd failed"); 5535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmp_len = strlen(tmp); 5536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson memcpy (concat_name, tmp, tmp_len); 5538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_name[tmp_len] = '/'; 5539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson strcpy (concat_name + tmp_len + 1, wrapper); 5540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (check_executable(concat_name)) 5542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return concat_name; 5543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson XFREE(concat_name); 5544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return NULL; 5545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * 5548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstrendzap(char *str, const char *pat) 5549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson size_t len, patlen; 5551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson assert(str != NULL); 5553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson assert(pat != NULL); 5554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson len = strlen(str); 5556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson patlen = strlen(pat); 5557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (patlen <= len) 5559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { 5560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson str += len - patlen; 5561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (strcmp(str, pat) == 0) 5562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *str = '\0'; 5563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 5564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson return str; 5565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic void 5568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_error_core (int exit_status, const char * mode, 5569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson const char * message, va_list ap) 5570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fprintf (stderr, "%s: %s: ", program_name, mode); 5572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson vfprintf (stderr, message, ap); 5573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fprintf (stderr, ".\n"); 5574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (exit_status >= 0) 5576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit (exit_status); 5577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid 5580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_fatal (const char *message, ...) 5581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{ 5582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson va_list ap; 5583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson va_start (ap, message); 5584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 5585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson va_end (ap); 5586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} 5587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF 5588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # we should really use a build-platform specific compiler 5589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # here, but OTOH, the wrappers (shell script and this C one) 5590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # are only useful if you want to execute the "real" binary. 5591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Since the "real" binary is built for $host, then this 5592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # wrapper might as well be built for $host, too. 5593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource 5594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm $output 5597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 5598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo > $output "\ 5600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#! $SHELL 5601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $output - temporary wrapper script for $objdir/$outputname 5603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 5605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The $output program cannot be directly executed until all the libtool 5606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libraries that it depends on are installed. 5607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 5608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This wrapper script should never be moved out of the build directory. 5609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If it is, it will not operate correctly. 5610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed substitution that helps us do robust quoting. It backslashifies 5612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# metacharacters that are still active within double-quoted strings. 5613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed='${SED} -e 1s/^X//' 5614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsed_quote_subst='$sed_quote_subst' 5615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The HP-UX ksh and POSIX shell print the target directory to stdout 5617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if CDPATH is set. 5618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 5619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrelink_command=\"$relink_command\" 5621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This environment variable determines our operation mode. 5623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test \"\$libtool_install_magic\" = \"$magic\"; then 5624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # install mode needs the following variable: 5625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_deplibs='$notinst_deplibs' 5626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelse 5627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # When we are sourced in execute mode, \$file and \$echo are already set. 5628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test \"\$libtool_execute_magic\" != \"$magic\"; then 5629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson echo=\"$qecho\" 5630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=\"\$0\" 5631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure echo works. 5632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test \"X\$1\" = X--no-reexec; then 5633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Discard the --no-reexec flag, and continue. 5634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 5635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then 5636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Yippee, \$echo works! 5637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 5638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Restart under the correct shell, and then maybe \$echo will work. 5640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 5641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi\ 5643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Find the directory that this script lives in. 5647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 5648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test \"x\$thisdir\" = \"x\$file\" && thisdir=. 5649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Follow symbolic links until we get to the real thisdir. 5651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 5652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson while test -n \"\$file\"; do 5653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 5654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there was a directory component, then change thisdir. 5656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test \"x\$destdir\" != \"x\$file\"; then 5657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case \"\$destdir\" in 5658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 5659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) thisdir=\"\$thisdir/\$destdir\" ;; 5660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 5664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 5665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Try to get the absolute directory name. 5668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir=\`cd \"\$thisdir\" && pwd\` 5669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n \"\$absdir\" && thisdir=\"\$absdir\" 5670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$fast_install" = yes; then 5673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson program=lt-'$outputname'$exeext 5675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson progdir=\"\$thisdir/$objdir\" 5676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -f \"\$progdir/\$program\" || \\ 5678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 5679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test \"X\$file\" != \"X\$progdir/\$program\"; }; then 5680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=\"\$\$-\$program\" 5682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -d \"\$progdir\"; then 5684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $mkdir \"\$progdir\" 5685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm \"\$progdir/\$file\" 5687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi" 5688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # relink executable if necessary 5692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n \"\$relink_command\"; then 5693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if relink_command_output=\`eval \$relink_command 2>&1\`; then : 5694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \"\$relink_command_output\" >&2 5696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm \"\$progdir/\$file\" 5697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 5698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 5702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson { $rm \"\$progdir/\$program\"; 5703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } 5704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm \"\$progdir/\$file\" 5705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi" 5706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson program='$outputname' 5709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson progdir=\"\$thisdir/$objdir\" 5710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f \"\$progdir/\$program\"; then" 5716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Export our shlibpath_var if we have one. 5718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 5719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add our own library path to $shlibpath_var 5721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 5722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Some systems cannot cope with colon-terminated $shlibpath_var 5724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The second colon is a workaround for a bug in BeOS R4 sed 5725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 5726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson export $shlibpath_var 5728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # fixup the dll searchpath if we need to. 5732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dllsearchpath"; then 5733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add the dll search path components to the executable PATH 5735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson PATH=$dllsearchpath:\$PATH 5736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test \"\$libtool_execute_magic\" != \"$magic\"; then 5741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Run the actual program with our arguments. 5742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 5744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Backslashes separate directories on plain windows 5745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *-*-mingw | *-*-os2*) 5746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 5748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 5752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exec \"\$progdir/\$program\" \${1+\"\$@\"} 5754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 5758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" 5759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 5760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The program doesn't exist. 5763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 5764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson \$echo \"This script is just a wrapper for \$program.\" 1>&2 5765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \"See the $PACKAGE documentation for more information.\" 1>&2 5766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 5767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi\ 5769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson" 5770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson chmod +x $output 5771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 5773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # See if we need to build an old-fashioned archive. 5777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for oldlib in $oldlibs; do 5778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = convenience; then 5780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs="$libobjs_save" 5781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson addlibs="$convenience" 5782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 5783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_libtool_libs" = module; then 5785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs="$libobjs_save" 5786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson build_libtool_libs=no 5787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs="$old_deplibs $non_pic_objects" 5789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson addlibs="$old_convenience" 5791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$addlibs"; then 5794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson gentop="$output_objdir/${outputname}x" 5795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson generated="$generated $gentop" 5796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson func_extract_archives $gentop $addlibs 5798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs="$oldobjs $func_extract_archives_result" 5799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each command in the archive commands. 5802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 5803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$old_archive_from_new_cmds 5804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # POSIX demands no paths to be encoded in archives. We have 5806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # to avoid creating archives with duplicate basenames if we 5807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # might have to extract them afterwards, e.g., when creating a 5808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # static archive out of a convenience library, or when linking 5809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the entirety of a libtool archive into another (currently 5810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # not supported by libtool). 5811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (for obj in $oldobjs 5812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 5813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "X$obj" | $Xsed -e 's%^.*/%%' 5814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done | sort | sort -uc >/dev/null 2>&1); then 5815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 5816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "copying selected object files to avoid basename conflicts..." 5818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$gentop"; then 5820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson gentop="$output_objdir/${outputname}x" 5821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson generated="$generated $gentop" 5822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r $gentop" 5824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r "$gentop" 5825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$mkdir $gentop" 5826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $mkdir "$gentop" 5827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=$? 5828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$exit_status" -ne 0 && test ! -d "$gentop"; then 5829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $exit_status 5830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_oldobjs=$oldobjs 5834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs= 5835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson counter=1 5836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for obj in $save_oldobjs 5837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 5838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 5839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $oldobjs " in 5840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson " ") oldobjs=$obj ;; 5841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\ /]"$objbase "*) 5842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson while :; do 5843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Make sure we don't pick an alternate name that also 5844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # overlaps. 5845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newobj=lt$counter-$objbase 5846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson counter=`expr $counter + 1` 5847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $oldobjs " in 5848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\ /]"$newobj "*) ;; 5849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) if test ! -f "$gentop/$newobj"; then break; fi ;; 5850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 5853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ln "$obj" "$gentop/$newobj" || 5854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run cp "$obj" "$gentop/$newobj" 5855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs="$oldobjs $gentop/$newobj" 5856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) oldobjs="$oldobjs $obj" ;; 5858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmds=\"$old_archive_cmds\" 5863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if len=`expr "X$cmds" : ".*"` && 5865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 5866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$old_archive_cmds 5867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the command line is too long to link in one step, link in parts 5869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "using piecewise archive linking..." 5870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_RANLIB=$RANLIB 5871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson RANLIB=: 5872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objlist= 5873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson concat_cmds= 5874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_oldobjs=$oldobjs 5875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Is there a better way of finding the last object in the list? 5877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for obj in $save_oldobjs 5878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 5879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson last_oldobj=$obj 5880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for obj in $save_oldobjs 5882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 5883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs="$objlist $obj" 5884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objlist="$objlist $obj" 5885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval test_cmds=\"$old_archive_cmds\" 5886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 5887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$len" -le "$max_cmd_len"; then 5888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 5889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the above command should be used before it gets too long 5891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs=$objlist 5892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$obj" = "$last_oldobj" ; then 5893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson RANLIB=$save_RANLIB 5894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 5896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 5897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objlist= 5898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson RANLIB=$save_RANLIB 5901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldobjs=$objlist 5902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$oldobjs" = "X" ; then 5903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmds=\"\$concat_cmds\" 5904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 5906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 5910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 5911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 5912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 5913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 5914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 5915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 5917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$generated"; then 5920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "${rm}r$generated" 5921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run ${rm}r$generated 5922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now create the libtool archive. 5925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $output in 5926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) 5927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_library= 5928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$build_old_libs" = yes && old_library="$libname.$libext" 5929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "creating $output" 5930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Preserve any variables that may affect compiler behavior 5932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for var in $variables_saved_for_relink; do 5933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if eval test -z \"\${$var+set}\"; then 5934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 5935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif eval var_value=\$$var; test -z "$var_value"; then 5936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="$var=; export $var; $relink_command" 5937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 5939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="$var=\"$var_value\"; export $var; $relink_command" 5940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Quote the link command for shipping. 5943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 5944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` 5945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$hardcode_automatic" = yes ; then 5946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command= 5947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 5950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Only create the output if not a dry run. 5951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$run"; then 5952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for installed in no yes; do 5953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$installed" = yes; then 5954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$install_libdir"; then 5955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson break 5956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson output="$output_objdir/$outputname"i 5958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Replace all uninstalled libtool libraries with the installed ones 5959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdependency_libs= 5960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for deplib in $dependency_libs; do 5961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $deplib in 5962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) 5963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 5964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 5965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 5966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 5967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 5968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdependency_libs="$newdependency_libs $libdir/$name" 5970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 5971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) newdependency_libs="$newdependency_libs $deplib" ;; 5972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 5973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dependency_libs="$newdependency_libs" 5975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlfiles= 5976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for lib in $dlfiles; do 5977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 5980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 5982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlfiles="$newdlfiles $libdir/$name" 5984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles="$newdlfiles" 5986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles= 5987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for lib in $dlprefiles; do 5988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$libdir"; then 5991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 5993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 5994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles="$newdlprefiles $libdir/$name" 5995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 5996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$newdlprefiles" 5997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 5998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlfiles= 5999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for lib in $dlfiles; do 6000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $lib in 6001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 6002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) abs=`pwd`"/$lib" ;; 6003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlfiles="$newdlfiles $abs" 6005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlfiles="$newdlfiles" 6007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles= 6008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for lib in $dlprefiles; do 6009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $lib in 6010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 6011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) abs=`pwd`"/$lib" ;; 6012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson newdlprefiles="$newdlprefiles $abs" 6014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlprefiles="$newdlprefiles" 6016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $rm $output 6018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # place dlname in correct position for cygwin 6019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tdlname=$dlname 6020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host,$output,$installed,$module,$dlname in 6021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 6022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo > $output "\ 6024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $outputname - a libtool library file 6025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 6026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# 6027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Please DO NOT delete this file! 6028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# It is necessary for linking the library. 6029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name that we can dlopen(3). 6031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlname='$tdlname' 6032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Names of this library. 6034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary_names='$library_names' 6035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of the static archive. 6037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_library='$old_library' 6038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Libraries that this one depends upon. 6040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondependency_libs='$dependency_libs' 6041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Version information for $libname. 6043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncurrent=$current 6044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonage=$age 6045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrevision=$revision 6046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is this an already installed library? 6048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninstalled=$installed 6049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Should we warn about portability when linking against -modules? 6051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshouldnotlink=$module 6052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Files to dlopen/dlpreopen 6054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen='$dlfiles' 6055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlpreopen='$dlprefiles' 6056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Directory that this library needs to be installed in: 6058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibdir='$install_libdir'" 6059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$installed" = no && test "$need_relink" = yes; then 6060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo >> $output "\ 6061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrelink_command=\"$relink_command\"" 6062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do a symbolic link so that the libtool archive can be found in 6067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # LD_LIBRARY_PATH before the program is installed. 6068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 6069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? 6070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 6073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # libtool install mode 6076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install) 6077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson modename="$modename: install" 6078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # There may be an optional sh(1) argument at the beginning of 6080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # install_prog (especially on Windows NT). 6081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 6082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Allow the use of GNU shtool's install command. 6083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "X$nonopt" | grep shtool > /dev/null; then 6084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Aesthetically quote it. 6085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 6086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 6087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 6088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 6089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install_prog="$arg " 6092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="$1" 6093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 6094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install_prog= 6096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=$nonopt 6097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The real first argument should be the name of the installation program. 6100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Aesthetically quote it. 6101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 6102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 6103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 6104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 6105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install_prog="$install_prog$arg" 6108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # We need to accept at least all the BSD install flags. 6110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dest= 6111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson files= 6112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson opts= 6113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 6114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install_type= 6115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson isdir=no 6116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson stripme= 6117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg 6118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 6119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$dest"; then 6120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson files="$files $dest" 6121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dest=$arg 6122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 6126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -d) isdir=yes ;; 6127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -f) 6128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $install_prog " in 6129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\\\ /]cp\ *) ;; 6130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) prev=$arg ;; 6131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -g | -m | -o) prev=$arg ;; 6134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -s) 6135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson stripme=" -s" 6136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -*) 6139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the previous option needed an argument, then skip it. 6142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$prev"; then 6143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson prev= 6144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dest=$arg 6146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Aesthetically quote the argument. 6152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 6153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 6154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 6155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson arg="\"$arg\"" 6156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install_prog="$install_prog $arg" 6159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$install_prog"; then 6162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify an install program" 1>&2 6163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$prev"; then 6168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: the \`$prev' option requires an argument" 1>&2 6169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$files"; then 6174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$dest"; then 6175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: no file or destination specified" 1>&2 6176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify a destination" 1>&2 6178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Strip any trailing slash from the destination. 6184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 6185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see that the destination is a directory. 6187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -d "$dest" && isdir=yes 6188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$isdir" = yes; then 6189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destdir="$dest" 6190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destname= 6191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 6193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$destdir" = "X$dest" && destdir=. 6194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 6195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Not a directory, so check to see that there is only one file specified. 6197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $files 6198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$#" -gt 2; then 6199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$dest' is not a directory" 1>&2 6200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $destdir in 6205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson [\\/]* | [A-Za-z]:[\\/]*) ;; 6206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for file in $files; do 6208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) ;; 6210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 6212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This variable tells wrapper scripts just to set variables rather 6221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # than running their programs. 6222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libtool_install_magic="$magic" 6223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson staticlibs= 6225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson future_libdirs= 6226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson current_libdirs= 6227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for file in $files; do 6228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each installation. 6230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.$libext) 6232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do the static libraries later. 6233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson staticlibs="$staticlibs $file" 6234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) 6237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see that this really is a libtool archive. 6238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 6239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 6241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson library_names= 6246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson old_library= 6247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command= 6248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 6249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $file ;; 6251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$file ;; 6252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add the libdir to current_libdirs if it is the destination. 6255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$destdir" = "X$libdir"; then 6256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$current_libdirs " in 6257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 6258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) current_libdirs="$current_libdirs $libdir" ;; 6259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Note the libdir as a future libdir. 6262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$future_libdirs " in 6263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $libdir "*) ;; 6264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) future_libdirs="$future_libdirs $libdir" ;; 6265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ 6269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$dir" = "X$file/" && dir= 6270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir="$dir$objdir" 6271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$relink_command"; then 6273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Determine the prefix the user has applied to our future dir. 6274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` 6275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't allow the user to place us outside of our expected 6277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # location b/c this prevents finding dependent libraries that 6278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # are installed to the same prefix. 6279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # At present, this check doesn't affect windows .dll's that 6280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # are installed into $libdir/../bin (currently, that works fine) 6281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # but it's something to keep an eye on. 6282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$inst_prefix_dir" = "$destdir"; then 6283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 6284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$inst_prefix_dir"; then 6288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Stick the inst_prefix_dir data into the link command. 6289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` 6290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` 6292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: relinking \`$file'" 1>&2 6295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$relink_command" 6296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if $run eval "$relink_command"; then : 6297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 6299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # See the names of the shared library. 6304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson set dummy $library_names 6305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$2"; then 6306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson realname="$2" 6307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 6308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson shift 6309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson srcname="$realname" 6311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$relink_command" && srcname="$realname"T 6312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Install the shared library and build the symlinks. 6314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$install_prog $dir/$srcname $destdir/$realname" 6315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? 6316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$stripme" && test -n "$striplib"; then 6317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$striplib $destdir/$realname" 6318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$striplib $destdir/$realname" || exit $? 6319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$#" -gt 0; then 6322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Delete the old symlinks, and create new ones. 6323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Try `ln -sf' first, because the `ln' binary might depend on 6324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # the symlink we replace! Solaris /bin/ln does not understand -f, 6325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # so we also need to try rm && ln -s. 6326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for linkname 6327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 6328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$linkname" != "$realname"; then 6329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 6330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 6331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each command in the postinstall commands. 6336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lib="$destdir/$realname" 6337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$postinstall_cmds 6338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 6339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 6340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 6342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 6343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || { 6344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson lt_exit=$? 6345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Restore the uninstalled library and exit 6347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$mode" = relink; then 6348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 6349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $lt_exit 6352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson } 6353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Install the pseudo-library for information purposes. 6358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson instname="$dir/$name"i 6360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$install_prog $instname $destdir/$name" 6361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$install_prog $instname $destdir/$name" || exit $? 6362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Maybe install the static library, too. 6364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 6365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) 6368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Install (i.e. copy) a libtool object. 6369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Figure out destination file name, if it wasn't already specified. 6371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$destname"; then 6372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile="$destdir/$destname" 6373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile="$destdir/$destfile" 6376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Deduce the name of the destination old-style object file. 6379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $destfile in 6380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) 6381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` 6382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.$objext) 6384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson staticdest="$destfile" 6385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile= 6386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 6389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Install the libtool object if requested. 6395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$destfile"; then 6396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$install_prog $file $destfile" 6397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$install_prog $file $destfile" || exit $? 6398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Install the old object if enabled. 6401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$build_old_libs" = yes; then 6402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Deduce the name of the old-style object file. 6403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` 6404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$install_prog $staticobj $staticdest" 6406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$install_prog \$staticobj \$staticdest" || exit $? 6407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 6409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Figure out destination file name, if it wasn't already specified. 6413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$destname"; then 6414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile="$destdir/$destname" 6415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile="$destdir/$destfile" 6418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If the file is missing, and there is a .exe on the end, strip it 6421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # because it is most likely a libtool script we actually want to 6422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # install 6423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson stripped_ext="" 6424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.exe) 6426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -f "$file"; then 6427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=`$echo $file|${SED} 's,.exe$,,'` 6428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson stripped_ext=".exe" 6429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do a test to see if this is really a libtool program. 6434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $host in 6435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *cygwin*|*mingw*) 6436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` 6437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson wrapper=$file 6440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then 6443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson notinst_deplibs= 6444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command= 6445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Note that it is not necessary on cygwin/mingw to append a dot to 6447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # foo even if both foo and FILE.exe exist: automatic-append-.exe 6448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # behavior happens only for exec(3), not for open(2)! Also, sourcing 6449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # `FILE.' does not work on cygwin managed mounts. 6450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # 6451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 6452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $wrapper in 6453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . ${wrapper} ;; 6454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./${wrapper} ;; 6455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check the variables that should have been set. 6458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$notinst_deplibs"; then 6459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 6460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize=yes 6464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for lib in $notinst_deplibs; do 6465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see that each library is installed. 6466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdir= 6467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$lib"; then 6468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 6469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $lib in 6470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $lib ;; 6471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$lib ;; 6472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 6475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$libdir" && test ! -f "$libfile"; then 6476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 6477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finalize=no 6478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command= 6482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Note that it is not necessary on cygwin/mingw to append a dot to 6483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # foo even if both foo and FILE.exe exist: automatic-append-.exe 6484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # behavior happens only for exec(3), not for open(2)! Also, sourcing 6485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # `FILE.' does not work on cygwin managed mounts. 6486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # 6487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 6488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $wrapper in 6489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . ${wrapper} ;; 6490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./${wrapper} ;; 6491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson outputname= 6494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$fast_install" = no && test -n "$relink_command"; then 6495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$finalize" = yes && test -z "$run"; then 6496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson tmpdir=`func_mktempdir` 6497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` 6498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson outputname="$tmpdir/$file" 6499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Replace the output file specification. 6500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` 6501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$relink_command" 6503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if $run eval "$relink_command"; then : 6504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 6506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ${rm}r "$tmpdir" 6507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file="$outputname" 6510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: cannot relink \`$file'" 1>&2 6512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Install the binary that we compiled earlier. 6515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 6516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # remove .exe since cygwin /usr/bin/install will append another 6520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # one anyway 6521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $install_prog,$host in 6522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */usr/bin/install*,*cygwin*) 6523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file:$destfile in 6524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.exe:*.exe) 6525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # this is ok 6526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.exe:*) 6528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile=$destfile.exe 6529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *:*.exe) 6531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` 6532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$install_prog$stripme $file $destfile" 6537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$install_prog\$stripme \$file \$destfile" || exit $? 6538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$outputname" && ${rm}r "$tmpdir" 6539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for file in $staticlibs; do 6544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Set up the ranlib parameters. 6547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson oldlib="$destdir/$name" 6548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$install_prog $file $oldlib" 6550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$install_prog \$file \$oldlib" || exit $? 6551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$stripme" && test -n "$old_striplib"; then 6553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$old_striplib $oldlib" 6554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$old_striplib $oldlib" || exit $? 6555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each command in the postinstall commands. 6558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$old_postinstall_cmds 6559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 6560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 6561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 6563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 6564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || exit $? 6565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$future_libdirs"; then 6570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 6571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$current_libdirs"; then 6574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Maybe just do a dry run. 6575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$run" && current_libdirs=" -n$current_libdirs" 6576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 6577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 6579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # libtool finish mode 6583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finish) 6584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson modename="$modename: finish" 6585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdirs="$nonopt" 6586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson admincmds= 6587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 6589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for dir 6590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 6591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdirs="$libdirs $dir" 6592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $libdirs; do 6595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$finish_cmds"; then 6596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each command in the finish commands. 6597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$finish_cmds 6598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 6599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 6600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 6602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 6603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" || admincmds="$admincmds 6604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $cmd" 6605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$finish_eval"; then 6609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do the single finish_eval. 6610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmds=\"$finish_eval\" 6611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmds" || admincmds="$admincmds 6612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $cmds" 6613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Exit here if they wanted silent mode. 6618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$show" = : && exit $EXIT_SUCCESS 6619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "X----------------------------------------------------------------------" | $Xsed 6621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "Libraries have been installed in:" 6622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for libdir in $libdirs; do 6623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " $libdir" 6624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 6626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "If you ever happen to want to link against installed libraries" 6627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "in a given directory, LIBDIR, you must either use libtool, and" 6628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 6629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "flag during linking and do at least one of the following:" 6630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$shlibpath_var"; then 6631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 6632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " during execution" 6633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$runpath_var"; then 6635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " - add LIBDIR to the \`$runpath_var' environment variable" 6636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " during linking" 6637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$hardcode_libdir_flag_spec"; then 6639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libdir=LIBDIR 6640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval flag=\"$hardcode_libdir_flag_spec\" 6641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " - use the \`$flag' linker flag" 6643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$admincmds"; then 6645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " - have your system administrator run these commands:$admincmds" 6646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f /etc/ld.so.conf; then 6648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 6649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo 6651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "See any operating system documentation about shared libraries for" 6652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "more information, such as the ld(1) and ld.so(8) manual pages." 6653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "X----------------------------------------------------------------------" | $Xsed 6654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 6655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # libtool execute mode 6658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson execute) 6659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson modename="$modename: execute" 6660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # The first argument is the command name. 6662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmd="$nonopt" 6663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$cmd"; then 6664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify a COMMAND" 1>&2 6665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 6666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Handle -dlopen flags immediately. 6670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for file in $execute_dlfiles; do 6671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test ! -f "$file"; then 6672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$file' is not a file" 1>&2 6673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir= 6678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) 6680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check to see that this really is a libtool archive. 6681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 6682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 6684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Read the libtool library. 6689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dlname= 6690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson library_names= 6691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 6693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $file ;; 6695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$file ;; 6696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Skip this library if it cannot be dlopened. 6699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$dlname"; then 6700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Warn if it was a shared library. 6701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 6702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$dir" = "X$file" && dir=. 6707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -f "$dir/$objdir/$dlname"; then 6709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir="$dir/$objdir" 6710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 6712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) 6717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Just add the directory containing the .lo file. 6718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "X$dir" = "X$file" && dir=. 6720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 6724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Get the absolute pathname. 6729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson absdir=`cd "$dir" && pwd` 6730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$absdir" && dir="$absdir" 6731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now add the directory to shlibpath_var. 6733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if eval "test -z \"\$$shlibpath_var\""; then 6734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$shlibpath_var=\"\$dir\"" 6735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 6737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This variable tells wrapper scripts just to set shlibpath_var 6741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # rather than running their programs. 6742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libtool_execute_magic="$magic" 6743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Check if any of the arguments is a wrapper script. 6745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson args= 6746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for file 6747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 6748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -*) ;; 6750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do a test to see if this is really a libtool program. 6752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # If there is no directory component, then add one. 6754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson */* | *\\*) . $file ;; 6756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) . ./$file ;; 6757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Transform arg to wrapped name. 6760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file="$progdir/$program" 6761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Quote arguments (to preserve shell metacharacters). 6765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 6766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson args="$args \"$file\"" 6767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$run"; then 6770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$shlibpath_var"; then 6771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Export the shlibpath_var. 6772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "export $shlibpath_var" 6773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Restore saved environment variables 6776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "${save_LC_ALL+set}" = set; then 6777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson LC_ALL="$save_LC_ALL"; export LC_ALL 6778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "${save_LANG+set}" = set; then 6780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson LANG="$save_LANG"; export LANG 6781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Now prepare to actually exec the command. 6784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exec_cmd="\$cmd$args" 6785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Display what would be done. 6787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$shlibpath_var"; then 6788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 6789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "export $shlibpath_var" 6790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$cmd$args" 6792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 6793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # libtool clean and uninstall mode 6797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson clean | uninstall) 6798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson modename="$modename: $mode" 6799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rm="$nonopt" 6800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson files= 6801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmforce= 6802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=0 6803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # This variable tells wrapper scripts just to set variables rather 6805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # than running their programs. 6806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson libtool_install_magic="$magic" 6807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for arg 6809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson do 6810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $arg in 6811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -f) rm="$rm $arg"; rmforce=yes ;; 6812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -*) rm="$rm $arg" ;; 6813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) files="$files $arg" ;; 6814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$rm"; then 6818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify an RM program" 1>&2 6819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 6820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmdirs= 6824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson origobjdir="$objdir" 6826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for file in $files; do 6827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$dir" = "X$file"; then 6829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson dir=. 6830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objdir="$origobjdir" 6831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson else 6832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objdir="$dir/$origobjdir" 6833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test "$mode" = uninstall && objdir="$dir" 6836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Remember objdir for removal later, being careful to avoid duplicates 6838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$mode" = clean; then 6839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $rmdirs " in 6840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $objdir "*) ;; 6841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) rmdirs="$rmdirs $objdir" ;; 6842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Don't error if the file doesn't exist and rm -f was used. 6846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (test -L "$file") >/dev/null 2>&1 \ 6847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson || (test -h "$file") >/dev/null 2>&1 \ 6848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson || test -f "$file"; then 6849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson : 6850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test -d "$file"; then 6851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=1 6852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson elif test "$rmforce" = yes; then 6854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson continue 6855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$file" 6858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $name in 6860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.la) 6861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Possibly a libtool archive, so verify it. 6862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson . $dir/$name 6864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Delete the libtool libraries and symlinks. 6866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for n in $library_names; do 6867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$rmfiles $objdir/$n" 6868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 6870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case "$mode" in 6872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson clean) 6873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case " $library_names " in 6874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # " " in the beginning catches empty $dlname 6875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *" $dlname "*) ;; 6876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) rmfiles="$rmfiles $objdir/$dlname" ;; 6877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 6879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson uninstall) 6881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$library_names"; then 6882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each command in the postuninstall commands. 6883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$postuninstall_cmds 6884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 6885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 6886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 6888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 6889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" 6890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$?" -ne 0 && test "$rmforce" != yes; then 6891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=1 6892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$old_library"; then 6898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do each command in the old_postuninstall commands. 6899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson cmds=$old_postuninstall_cmds 6900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson save_ifs="$IFS"; IFS='~' 6901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for cmd in $cmds; do 6902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval cmd=\"$cmd\" 6904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$cmd" 6905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run eval "$cmd" 6906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$?" -ne 0 && test "$rmforce" != yes; then 6907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit_status=1 6908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson IFS="$save_ifs" 6911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # FIXME: should reinstall the best remaining shared library. 6913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.lo) 6919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Possibly a libtool object, so verify it. 6920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Read the .lo file 6923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson . $dir/$name 6924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add PIC object to the list of files to remove. 6926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$pic_object" \ 6927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson && test "$pic_object" != none; then 6928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$rmfiles $dir/$pic_object" 6929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Add non-PIC object to the list of files to remove. 6932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -n "$non_pic_object" \ 6933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson && test "$non_pic_object" != none; then 6934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$rmfiles $dir/$non_pic_object" 6935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) 6940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$mode" = clean ; then 6941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson noexename=$name 6942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson case $file in 6943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *.exe) 6944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson file=`$echo $file|${SED} 's,.exe$,,'` 6945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson noexename=`$echo $name|${SED} 's,.exe$,,'` 6946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # $file with .exe has already been added to rmfiles, 6947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # add $file without .exe 6948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$rmfiles $file" 6949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Do a test to see if this is a libtool program. 6952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson relink_command= 6954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson . $dir/$noexename 6955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # note $name still contains .exe if it was in $file originally 6957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # as does the version of $file that was added into $rmfiles 6958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 6959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "$fast_install" = yes && test -n "$relink_command"; then 6960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$rmfiles $objdir/lt-$name" 6961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test "X$noexename" != "X$name" ; then 6963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson rmfiles="$rmfiles $objdir/lt-${noexename}.c" 6964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "$rm $rmfiles" 6970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run $rm $rmfiles || exit_status=1 6971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson objdir="$origobjdir" 6973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson # Try to remove the ${objdir}s in the directories where we deleted files 6975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson for dir in $rmdirs; do 6976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -d "$dir"; then 6977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $show "rmdir $dir" 6978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $run rmdir $dir >/dev/null 2>&1 6979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson done 6981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $exit_status 6983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson "") 6986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: you must specify a MODE" 1>&2 6987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$generic_help" 1>&2 6988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 6990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson esac 6991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson if test -z "$exec_cmd"; then 6993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: invalid operation mode \`$mode'" 1>&2 6994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$generic_help" 1>&2 6995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 6996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson fi 6997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi # test -z "$show_help" 6998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 6999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "$exec_cmd"; then 7000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson eval exec $exec_cmd 7001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 7002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi 7003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# We need to display help for each of the modes. 7005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase $mode in 7006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"") $echo \ 7007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... [MODE-ARG]... 7008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonProvide generalized library-building support services. 7010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --config show all configuration variables 7012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --debug enable verbose shell tracing 7013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson-n, --dry-run display commands without modifying any files 7014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --features display basic configuration information and exit 7015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --finish same as \`--mode=finish' 7016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --help display this help message and exit 7017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 7018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --quiet same as \`--silent' 7019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --silent don't print informational messages 7020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --tag=TAG use configuration variables from tag TAG 7021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson --version print version information 7022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMODE must be one of the following: 7024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson clean remove files from the build directory 7026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson compile compile a source file into a libtool object 7027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson execute automatically set library path, then run a program 7028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson finish complete the installation of libtool libraries 7029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson install install libraries or executables 7030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson link create a library or an executable 7031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson uninstall remove libraries from an installed directory 7032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 7034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsona more detailed description of MODE. 7035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonReport bugs to <bug-libtool@gnu.org>." 7037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_SUCCESS 7038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonclean) 7041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \ 7042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 7043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRemove files from the build directory. 7045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRM is the name of the program to use to delete files associated with each FILE 7047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 7048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonto RM. 7049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf FILE is a libtool library, object or program, all the files associated 7051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwith it are deleted. Otherwise, only FILE itself is deleted using RM." 7052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompile) 7055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \ 7056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 7057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCompile a source file into a libtool library object. 7059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode accepts the following additional options: 7061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -o OUTPUT-FILE set the output file name to OUTPUT-FILE 7063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -prefer-pic try to building PIC objects only 7064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -prefer-non-pic try to building non-PIC objects only 7065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -static always build a \`.o' file suitable for static linking 7066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 7068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfrom the given SOURCEFILE. 7069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe output file name is determined by removing the directory component from 7071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSOURCEFILE, then substituting the C source code suffix \`.c' with the 7072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary object suffix, \`.lo'." 7073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexecute) 7076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \ 7077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 7078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAutomatically set library path, then run a program. 7080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode accepts the following additional options: 7082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -dlopen FILE add the directory containing FILE to the library path 7084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode sets the library path environment variable according to \`-dlopen' 7086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonflags. 7087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf any of the ARGS are libtool executable wrappers, then they are translated 7089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninto their corresponding uninstalled binary, and any of their required library 7090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondirectories are added to the library path. 7091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThen, COMMAND is executed, with ARGS as arguments." 7093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish) 7096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \ 7097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 7098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonComplete the installation of libtool libraries. 7100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEach LIBDIR is a directory that contains libtool libraries. 7102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe commands that this mode executes may require superuser privileges. Use 7104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonthe \`--dry-run' option if you just want to see what would be executed." 7105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninstall) 7108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \ 7109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 7110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonInstall executables or libraries. 7112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonINSTALL-COMMAND is the installation command. The first component should be 7114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoneither the \`install' or \`cp' program. 7115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe rest of the components are interpreted as arguments to that command (only 7117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonBSD-compatible install options are recognized)." 7118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink) 7121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \ 7122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 7123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLink object files or libraries together to form another library, or to 7125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncreate an executable program. 7126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLINK-COMMAND is a command using the C compiler that you would use to create 7128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsona program from several object files. 7129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe following components of LINK-COMMAND are treated specially: 7131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -all-static do not do any dynamic linking at all 7133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -avoid-version do not add a version suffix if possible 7134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 7135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 7136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 7137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -export-symbols SYMFILE 7138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson try to export only the symbols listed in SYMFILE 7139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -export-symbols-regex REGEX 7140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson try to export only the symbols matching REGEX 7141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -LLIBDIR search LIBDIR for required installed libraries 7142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -lNAME OUTPUT-FILE requires the installed library libNAME 7143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -module build a library that can dlopened 7144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -no-fast-install disable the fast-install mode 7145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -no-install link a not-installable executable 7146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -no-undefined declare that a library does not refer to external symbols 7147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 7148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -objectlist FILE Use a list of object files found in FILE to specify objects 7149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -precious-files-regex REGEX 7150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson don't remove output files matching REGEX 7151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -release RELEASE specify package release information 7152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -rpath LIBDIR the created library will eventually be installed in LIBDIR 7153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 7154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -static do not do any dynamic linking of libtool libraries 7155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson -version-info CURRENT[:REVISION[:AGE]] 7156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson specify library version info [each variable defaults to 0] 7157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAll other options (arguments beginning with \`-') are ignored. 7159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEvery other argument is treated as a filename. Files ending in \`.la' are 7161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontreated as uninstalled libtool libraries, other files are standard or library 7162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobject files. 7163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, 7165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsononly library objects (\`.lo' files) may be specified, and \`-rpath' is 7166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrequired, except when creating a convenience library. 7167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 7169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonusing \`ar' and \`ranlib', or on Windows using \`lib'. 7170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 7172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonis created, otherwise an executable program is created." 7173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonuninstall) 7176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo \ 7177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 7178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRemove libraries from an installation directory. 7180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRM is the name of the program to use to delete files associated with each FILE 7182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 7183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonto RM. 7184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf FILE is a libtool library, all the files associated with it are deleted. 7186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonOtherwise, only FILE itself is deleted using RM." 7187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*) 7190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$modename: invalid operation mode \`$mode'" 1>&2 7191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson $echo "$help" 1>&2 7192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson exit $EXIT_FAILURE 7193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson ;; 7194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac 7195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$echo 7197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$echo "Try \`$modename --help' for more information about other modes." 7198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexit $? 7200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The TAGs below are defined such that we never get into a situation 7202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# in which we disable both kinds of libraries. Given conflicting 7203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# choices, we go for a static library, that is the most portable, 7204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# since we can't tell whether shared libraries were disabled because 7205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the user asked for that or because the platform doesn't support 7206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# them. This is particularly important on AIX, because we don't 7207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# support having both static and shared libraries enabled at the same 7208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# time on that platform, so we default to a shared-only configuration. 7209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If a disable-shared tag is given, we'll fallback to a static-only 7210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration. But we'll never go from static-only to shared-only. 7211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 7213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=shared 7214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: disable-shared 7215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: disable-static 7217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=static 7218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: disable-static 7219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Local Variables: 7221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# mode:shell-script 7222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# sh-indentation:2 7223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# End: 7224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: CXX 7225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Libtool was configured on host battlefront.corp.google.com: 7227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shell to use when invoking shell scripts. 7229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSHELL="/bin/sh" 7230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build shared libraries. 7232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_libs=yes 7233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to build static libraries. 7235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_old_libs=yes 7236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to add -lc for building shared libraries. 7238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_libtool_need_lc=no 7239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to disallow shared libs when runtime libs are static 7241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_libtool_libs_with_static_runtimes=no 7242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether or not to optimize for fast installation. 7244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfast_install=yes 7245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The host system. 7247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_alias= 7248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost=x86_64-unknown-linux-gnu 7249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhost_os=linux-gnu 7250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The build system. 7252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_alias= 7253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild=x86_64-unknown-linux-gnu 7254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbuild_os=linux-gnu 7255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An echo program that does not interpret backslashes. 7257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonecho="echo" 7258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The archiver. 7260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR="ar" 7261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAR_FLAGS="cru" 7262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A C compiler. 7264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCC="gcc" 7265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# LTCC compiler flags. 7267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLTCFLAGS="-g -O2" 7268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A language-specific compiler. 7270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCC="g++" 7271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is the compiler the GNU C compiler? 7273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwith_gcc=yes 7274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# An ERE matcher. 7276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEGREP="grep -E" 7277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The linker used to build libraries. 7279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLD="/usr/bin/ld -m elf_i386" 7280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need hard or soft links. 7282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLN_S="ln -s" 7283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A BSD-compatible nm program. 7285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonNM="/usr/bin/nm -B" 7286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# A symbol stripping program 7288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSTRIP="strip" 7289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used to examine libraries when file_magic_cmd begins "file" 7291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMAGIC_CMD=file 7292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: DLL creation program. 7294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonDLLTOOL="dlltool" 7295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: object dumper. 7297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonOBJDUMP="objdump" 7298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Used on cygwin: assembler. 7300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAS="as" 7301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of the directory that contains temporary libtool files. 7303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjdir=.libs 7304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to create reloadable object files. 7306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_flag=" -r" 7307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonreload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" 7308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to pass a linker flag through the compiler. 7310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwl="-Wl," 7311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Object file suffix (normally "o"). 7313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobjext="o" 7314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Old archive suffix (normally "a"). 7316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibext="a" 7317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shared library suffix (normally ".so"). 7319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshrext_cmds='.so' 7320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Executable file suffix (normally ""). 7322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexeext="" 7323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Additional compiler flags for building library objects. 7325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_flag=" -fPIC -DPIC" 7326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_mode=default 7327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# What is the maximum length of a command? 7329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmax_cmd_len=131072 7330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Does compiler simultaneously support -c and -o options? 7332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_c_o="yes" 7333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Must we lock files when doing compilation? 7335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_locks="no" 7336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need the lib prefix for modules? 7338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_lib_prefix=no 7339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Do we need a version for libraries? 7341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonneed_version=no 7342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen is supported. 7344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_support=unknown 7345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of programs is supported. 7347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self=unknown 7348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether dlopen of statically linked programs is supported. 7350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen_self_static=unknown 7351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to prevent dynamic linking. 7353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_static_flag="-static" 7354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to turn off builtin functions. 7356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_builtin_flag=" -fno-builtin" 7357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to allow reflexive dlopens. 7359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_dynamic_flag_spec="\${wl}--export-dynamic" 7360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate shared objects directly from archives. 7362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwhole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" 7363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compiler flag to generate thread-safe objects. 7365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonthread_safe_flag_spec="" 7366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Library versioning type. 7368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonversion_type=linux 7369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Format of library name prefix. 7371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibname_spec="lib\$name" 7372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# List of archive names. First name is the real one, the rest are links. 7374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The last name is the one that the linker finds with -lNAME. 7375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" 7376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The coded name of the library, if different from the real name. 7378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsoname_spec="\${libname}\${release}\${shared_ext}\$major" 7379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install an old-style archive. 7381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRANLIB="ranlib" 7382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib" 7383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib" 7384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_postuninstall_cmds="" 7385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create an old-style archive from a shared archive. 7387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_new_cmds="" 7388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Create a temporary old-style archive to link instead of a shared archive. 7390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_archive_from_expsyms_cmds="" 7391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build and install a shared archive. 7393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" 7394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonarchive_expsym_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib" 7395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostinstall_cmds="" 7396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostuninstall_cmds="" 7397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to build a loadable module (assumed same as above if empty) 7399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_cmds="" 7400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodule_expsym_cmds="" 7401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands to strip libraries. 7403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_striplib="strip --strip-debug" 7404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstriplib="strip --strip-unneeded" 7405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a 7407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 7408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredep_objects="/usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.0.3/crtbeginS.o" 7409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a 7411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 7412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdep_objects="/usr/lib/gcc/i486-linux-gnu/4.0.3/crtendS.o /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib/crtn.o" 7413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place before the objects being linked to create a 7415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 7416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpredeps="" 7417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Dependencies to place after the objects being linked to create a 7419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# shared library. 7420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpostdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s" 7421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The library search path used internally by the compiler when linking 7423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a shared library. 7424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler_lib_search_path="-L/usr/lib/gcc/i486-linux-gnu/4.0.3 -L/usr/lib/gcc/i486-linux-gnu/4.0.3 -L/usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../lib -L/usr/lib/gcc/i486-linux-gnu/4.0.3/../../.. -L/lib/../lib -L/usr/lib/../lib" 7425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Method to check whether dependent libraries are shared objects. 7427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondeplibs_check_method="pass_all" 7428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Command to use when deplibs_check_method == file_magic. 7430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfile_magic_cmd="\$MAGIC_CMD" 7431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that allows shared libraries with undefined symbols to be built. 7433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonallow_undefined_flag="" 7434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag that forces no undefined symbols. 7436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno_undefined_flag="" 7437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Commands used to finish a libtool library installation in a directory. 7439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" 7440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Same as above, but a single script fragment to be evaled but not shown. 7442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish_eval="" 7443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Take the output of nm and produce a listing of raw symbols and C names. 7445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" 7446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a proper C declaration 7448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'" 7449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Transform the output of nm in a C name address pair 7451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonglobal_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'" 7452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library runtime path variable. 7454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrunpath_var=LD_RUN_PATH 7455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This is the shared library path variable. 7457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_var=LD_LIBRARY_PATH 7458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is shlibpath searched before the hard-coded library search path? 7460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshlibpath_overrides_runpath=no 7461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# How to hardcode a shared library path into an executable. 7463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_action=immediate 7464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we should hardcode library paths into libraries. 7466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_into_libs=yes 7467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Flag to hardcode $libdir into a binary during linking. 7469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This must work even if $libdir does not exist. 7470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir" 7471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If ld is used when linking, flag to hardcode $libdir into 7473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# a binary during linking. This must work even if $libdir does 7474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# not exist. 7475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_flag_spec_ld="" 7476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether we need a single -rpath flag with a separated argument. 7478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_libdir_separator="" 7479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using DIR/libNAME during linking hardcodes DIR into the 7481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary. 7482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_direct=no 7483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using the -LDIR flag during linking hardcodes DIR into the 7485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# resulting binary. 7486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_minus_L=no 7487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into 7489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the resulting binary. 7490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_shlibpath_var=unsupported 7491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if building a shared library automatically hardcodes DIR into the library 7493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# and all subsequent libraries and executables linked against it. 7494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhardcode_automatic=no 7495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Variables whose values should be saved in libtool wrapper scripts and 7497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# restored at relink time. 7498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvariables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" 7499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Whether libtool must link a program against all its dependency libraries. 7501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink_all_deplibs=no 7502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Compile-time system search path for libraries 7504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_search_path_spec=" /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../i486-linux-gnu/lib/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../i486-linux-gnu/4.0.3/ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../ /lib/i486-linux-gnu/4.0.3/ /lib/ /usr/lib/i486-linux-gnu/4.0.3/ /usr/lib/" 7505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Run-time system search path for libraries 7507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas " 7508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Fix the shell variable $srcfile for the compiler. 7510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfix_srcfile_path="" 7511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Set to yes if exported symbols are required. 7513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonalways_export_symbols=no 7514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to list exported symbols. 7516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexport_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" 7517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The commands to extract the exported symbol list from a shared archive. 7519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonextract_expsyms_cmds="" 7520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that should not be listed in the preloaded symbols. 7522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexclude_expsyms="" 7523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Symbols that must always be exported. 7525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninclude_expsyms="" 7526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: CXX 7528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 7529