170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# ltmain.sh - Provide generalized library-building support services. 270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# NOTE: Changing this file will not affect anything until you rerun ltconfig. 370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# 470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Copyright (C) 1996-1998 Free Software Foundation, Inc. 570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# 770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# This program is free software; you can redistribute it and/or modify 870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# it under the terms of the GNU General Public License as published by 970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# the Free Software Foundation; either version 2 of the License, or 1070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# (at your option) any later version. 1170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# 1270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# This program is distributed in the hope that it will be useful, but 1370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# WITHOUT ANY WARRANTY; without even the implied warranty of 1470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# General Public License for more details. 1670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# 1770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# You should have received a copy of the GNU General Public License 1870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# along with this program; if not, write to the Free Software 1970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 2070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# 2170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# As a special exception to the GNU General Public License, if you 2270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# distribute this file as part of a program that contains a 2370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# configuration script generated by Autoconf, you may include it under 2470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# the same distribution terms that you use for the rest of that program. 2570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 2670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# The name of this program. 2770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineprogname=`$echo "$0" | sed 's%^.*/%%'` 2870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinemodename="$progname" 2970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 3070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Constants. 3170a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkinePROGRAM=ltmain.sh 3270a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkinePACKAGE=libtool 3370a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineVERSION=1.2 3470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 3570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinedefault_mode= 3670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinehelp="Try \`$progname --help' for more information." 3770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinemagic="%%%MAGIC variable%%%" 3870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinemkdir="mkdir" 3970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinemv="mv -f" 4070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinerm="rm -f" 4170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 4270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Sed substitution that helps us do robust quoting. It backslashifies 4370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# metacharacters that are still active within double-quoted strings. 4470a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineXsed='sed -e s/^X//' 4570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinesed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 4670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 4770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# NLS nuisances. 4870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Only set LANG and LC_ALL to C if already set. 4970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# These must not be set unconditionally because not all systems understand 5070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# e.g. LANG=C (notably SCO). 5170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi 5270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test "${LANG+set}" = set; then LANG=C; export LANG; fi 5370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 5470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test "$LTCONFIG_VERSION" != "$VERSION"; then 5570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 5670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 5770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 5870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinefi 5970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 6070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 6170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "$modename: not configured to build any kind of library" 1>&2 6270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 6370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 6470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinefi 6570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 6670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Global variables. 6770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinemode=$default_mode 6870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinenonopt= 6970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineprev= 7070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineprevopt= 7170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinerun= 7270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineshow="$echo" 7370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineshow_help= 7470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineexecute_dlfiles= 7570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 7670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Parse our command line options once, thoroughly. 7770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinewhile test $# -gt 0 7870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinedo 7970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="$1" 8070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine shift 8170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 8270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 8370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 8470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) optarg= ;; 8570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 8670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 8770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If the previous option needs an argument, assign it. 8870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$prev"; then 8970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$prev" in 9070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine execute_dlfiles) 9170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "$prev=\"\$$prev \$arg\"" 9270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 9370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 9470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "$prev=\$arg" 9570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 9670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 9770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 9870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 9970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prevopt= 10070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 10170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 10270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 10370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Have we seen a non-optional argument yet? 10470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 10570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --help) 10670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine show_help=yes 10770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 10870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 10970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --version) 11070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "$PROGRAM (GNU $PACKAGE) $VERSION" 11170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 11270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 11370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 11470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --dry-run | -n) 11570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine run=: 11670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 11770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 11870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --features) 11970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "host: $host" 12070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_libtool_libs" = yes; then 12170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "enable shared libraries" 12270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 12370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "disable shared libraries" 12470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 12570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_old_libs" = yes; then 12670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "enable static libraries" 12770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 12870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "disable static libraries" 12970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 13070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 13170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 13270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 13370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --finish) mode="finish" ;; 13470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 13570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --mode) prevopt="--mode" prev=mode ;; 13670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --mode=*) mode="$optarg" ;; 13770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 13870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --quiet | --silent) 13970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine show=: 14070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 14170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 14270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -dlopen) 14370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prevopt="-dlopen" 14470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=execute_dlfiles 14570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 14670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 14770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -*) 14870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: unrecognized option \`$arg'" 1>&2 14970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 15070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 15170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 15270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 15370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 15470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine nonopt="$arg" 15570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine break 15670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 15770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 15870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinedone 15970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 16070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test -n "$prevopt"; then 16170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: option \`$prevopt' requires an argument" 1>&2 16270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 16370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 16470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinefi 16570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 16670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test -z "$show_help"; then 16770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 16870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Infer the operation mode. 16970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$mode"; then 17070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$nonopt" in 17170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *cc | *++ | gcc* | *-gcc*) 17270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine mode=link 17370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for arg 17470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 17570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 17670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -c) 17770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine mode=compile 17870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine break 17970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 18070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 18170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 18270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 18370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *db | *dbx) 18470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine mode=execute 18570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 18670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *install*|cp|mv) 18770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine mode=install 18870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 18970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *rm) 19070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine mode=uninstall 19170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 19270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 19370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If we have no mode, but dlfiles were specified, then do execute mode. 19470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$execute_dlfiles" && mode=execute 19570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 19670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Just use the default operation mode. 19770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$mode"; then 19870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$nonopt"; then 19970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 20070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 20170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 20270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 20370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 20470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 20570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 20670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 20770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 20870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Only execute mode is allowed to have -dlopen flags. 20970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$execute_dlfiles" && test "$mode" != execute; then 21070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: unrecognized option \`-dlopen'" 1>&2 21170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 21270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 21370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 21470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 21570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Change the help message to a mode-specific one. 21670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine generic_help="$help" 21770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine help="Try \`$modename --help --mode=$mode' for more information." 21870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 21970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # These modes are in order of execution frequency so that they run quickly. 22070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$mode" in 22170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # libtool compile mode 22270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile) 22370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine modename="$modename: compile" 22470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Get the compilation command and the source file. 22570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine base_compile= 22670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine lastarg= 22770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine srcfile="$nonopt" 22870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine suppress_output= 22970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 23070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for arg 23170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 23270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Accept any command-line options. 23370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 23470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -o) 23570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 23670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 23770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 23870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 23970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 24070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -static) 24170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_libtool_libs=no 24270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_old_libs=yes 24370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 24470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 24570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 24670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 24770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Accept the current argument as the source file. 24870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine lastarg="$srcfile" 24970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine srcfile="$arg" 25070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 25170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Aesthetically quote the previous argument. 25270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 25370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Backslashify any backslashes, double quotes, and dollar signs. 25470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # These are the only characters that are still specially 25570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # interpreted inside of double-quoted scrings. 25670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 25770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 25870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Double-quote args containing other shell metacharacters. 25970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Many Bourne shells cannot handle close brackets correctly in scan 26070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # sets, so we specify it separately. 26170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$lastarg" in 26270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 26370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine lastarg="\"$lastarg\"" 26470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 26570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 26670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 26770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add the previous argument to base_compile. 26870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$base_compile"; then 26970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine base_compile="$lastarg" 27070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 27170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine base_compile="$base_compile $lastarg" 27270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 27370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 27470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 27570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Get the name of the library object. 27670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 27770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 27870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Recognize several different file suffixes. 27970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine xform='[cCFSfms]' 28070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$libobj" in 28170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.ada) xform=ada ;; 28270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.adb) xform=adb ;; 28370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.ads) xform=ads ;; 28470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.asm) xform=asm ;; 28570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.c++) xform=c++ ;; 28670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.cc) xform=cc ;; 28770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.cpp) xform=cpp ;; 28870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.cxx) xform=cxx ;; 28970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.f90) xform=f90 ;; 29070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.for) xform=for ;; 29170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 29270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 29370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 29470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 29570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$libobj" in 29670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;; 29770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 29870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 29970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 30070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 30170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 30270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 30370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$base_compile"; then 30470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify a compilation command" 1>&2 30570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 30670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 30770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 30870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 30970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Delete any leftover library objects. 31070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_old_libs" = yes; then 31170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $obj $libobj 31270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine trap "$run $rm $obj $libobj; exit 1" 1 2 15 31370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 31470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $libobj 31570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine trap "$run $rm $libobj; exit 1" 1 2 15 31670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 31770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 31870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Only build a PIC object if we are building libtool libraries. 31970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_libtool_libs" = yes; then 32070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Without this assignment, base_compile gets emptied. 32170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fbsd_hideous_sh_bug=$base_compile 32270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 32370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # All platforms use -DPIC, to notify preprocessed assembler code. 32470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$base_compile$pic_flag -DPIC $srcfile" 32570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then : 32670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 32770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$obj" && $run $rm $obj 32870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 32970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 33070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 33170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If we have no pic_flag, then copy the object into place and finish. 33270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$pic_flag"; then 33370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$LN_S $obj $libobj" 33470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $LN_S $obj $libobj 33570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit $? 33670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 33770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 33870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Just move the object, then go on to compile the next one 33970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$mv $obj $libobj" 34070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $mv $obj $libobj || exit 1 34170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 34270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Allow error messages only from the first compilation. 34370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine suppress_output=' >/dev/null 2>&1' 34470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 34570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 34670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Only build a position-dependent object if we build old libraries. 34770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_old_libs" = yes; then 34870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Suppress compiler output if we already did a PIC compilation. 34970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$base_compile $srcfile$suppress_output" 35070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if $run eval "$base_compile \$srcfile$suppress_output"; then : 35170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 35270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $obj $libobj 35370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 35470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 35570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 35670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 35770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Create an invalid libtool object if no PIC, so that we do not 35870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # accidentally link it into a program. 35970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_libtool_libs" != yes; then 36070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "echo timestamp > $libobj" 36170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "echo timestamp > \$libobj" || exit $? 36270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 36370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 36470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 36570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 36670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 36770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # libtool link mode 36870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine link) 36970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine modename="$modename: link" 37070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine CC="$nonopt" 37170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine allow_undefined=yes 37270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$CC" 37370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$CC" 37470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 37570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_shlibpath= 37670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_shlibpath= 37770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine deplibs= 37870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlfiles= 37970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlprefiles= 38070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine export_dynamic=no 38170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine hardcode_libdirs= 38270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libobjs= 38370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine link_against_libtool_libs= 38470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ltlibs= 38570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine objs= 38670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 38770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prevarg= 38870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine release= 38970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath= 39070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine perm_rpath= 39170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine temp_rpath= 39270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine vinfo= 39370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 39470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We need to know -static, to get the right output filenames. 39570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for arg 39670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 39770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 39870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -all-static | -static) 39970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 40070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 40170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 40270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_libtool_libs=no 40370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_old_libs=yes 40470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine break 40570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 40670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 40770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 40870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 40970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # See if our shared archives depend on static archives. 41070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$old_archive_from_new_cmds" && build_old_libs=yes 41170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 41270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Go through the arguments, transforming them on the way. 41370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for arg 41470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 41570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If the previous option needs an argument, assign it. 41670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$prev"; then 41770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$prev" in 41870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine output) 41970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command @OUTPUT@" 42070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command @OUTPUT@" 42170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 42270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 42370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 42470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$prev" in 42570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlfiles|dlprefiles) 42670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 42770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.la | *.lo) ;; # We handle these cases below. 42870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 42970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlprefiles="$dlprefiles $arg" 43070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "$prev" = dlfiles && dlfiles="$dlfiles $arg" 43170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 43270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 43370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 43470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 43570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine release) 43670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine release="-$arg" 43770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 43870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 43970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 44070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath) 44170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath="$rpath $arg" 44270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 44370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 44470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 44570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 44670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "$prev=\"\$arg\"" 44770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 44870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 44970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 45070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 45170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 45270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 45370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prevarg="$arg" 45470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 45570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 45670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -all-static) 45770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$link_static_flag"; then 45870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $link_static_flag" 45970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command $link_static_flag" 46070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 46170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 46270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 46370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 46470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -allow-undefined) 46570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # FIXME: remove this flag sometime in the future. 46670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 46770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 46870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 46970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 47070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -dlopen) 47170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=dlfiles 47270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 47370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 47470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 47570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -dlpreopen) 47670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=dlprefiles 47770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 47870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 47970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 48070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -export-dynamic) 48170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$export_dynamic" != yes; then 48270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine export_dynamic=yes 48370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$export_dynamic_flag_spec"; then 48470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval arg=\"$export_dynamic_flag_spec\" 48570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 48670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg= 48770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 48870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 48970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add the symbol object into the linking commands. 49070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command @SYMFILE@" 49170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command @SYMFILE@" 49270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 49370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 49470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 49570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -L*) 49670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` 49770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$dir" in 49870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine /* | [A-Za-z]:\\*) 49970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add the corresponding hardcode_libdir_flag, if it is not identical. 50070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 50170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 50270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 50370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 50470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 50570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 50670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine deplibs="$deplibs $arg" 50770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 50870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 50970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -l*) deplibs="$deplibs $arg" ;; 51070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 51170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -no-undefined) 51270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine allow_undefined=no 51370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 51470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 51570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 51670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -o) prev=output ;; 51770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 51870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -release) 51970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=release 52070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 52170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 52270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 52370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -rpath) 52470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=rpath 52570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 52670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 52770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 52870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -static) 52970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If we have no pic_flag, then this is the same as -all-static. 53070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$pic_flag" && test -n "$link_static_flag"; then 53170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $link_static_flag" 53270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command $link_static_flag" 53370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 53470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 53570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 53670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 53770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -version-info) 53870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=vinfo 53970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 54070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 54170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 54270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Some other compiler flag. 54370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -* | +*) 54470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Unknown arguments in both finalize_command and compile_command need 54570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # to be aesthetically quoted because they are evaled later. 54670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 54770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 54870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 54970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="\"$arg\"" 55070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 55170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 55270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 55370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 55470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.o | *.a) 55570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # A standard object. 55670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine objs="$objs $arg" 55770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 55870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 55970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) 56070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # A library object. 56170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$prev" = dlfiles; then 56270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlfiles="$dlfiles $arg" 56370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_libtool_libs" = yes; then 56470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 56570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 56670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 56770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If libtool objects are unsupported, then we need to preload. 56870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=dlprefiles 56970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 57070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 57170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 57270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$prev" = dlprefiles; then 57370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Preload the old-style object. 57470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'` 57570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 57670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 57770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libobjs="$libobjs $arg" 57870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 57970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 58070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.la) 58170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # A libtool-controlled library. 58270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 58370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlname= 58470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdir= 58570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine library_names= 58670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine old_library= 58770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 58870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check to see that this really is a libtool archive. 58970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : 59070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 59170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 59270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 59370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 59470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 59570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there is no directory component, then add one. 59670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 59770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */* | *\\*) . $arg ;; 59870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) . ./$arg ;; 59970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 60070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 60170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$libdir"; then 60270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$arg' contains no -rpath information" 1>&2 60370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 60470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 60570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 60670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Get the name of the library we link against. 60770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine linklib= 60870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for l in $old_library $library_names; do 60970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine linklib="$l" 61070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 61170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 61270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$linklib"; then 61370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 61470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 61570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 61670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 61770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Find the relevant object directory and library name. 61870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` 61970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 62070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "X$dir" = "X$arg"; then 62170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir="$objdir" 62270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 62370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir="$dir/$objdir" 62470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 62570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 62670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # This library was specified with -dlopen. 62770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$prev" = dlfiles; then 62870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlfiles="$dlfiles $arg" 62970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$dlname"; then 63070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there is no dlname, we need to preload. 63170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev=dlprefiles 63270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 63370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We should not create a dependency on this library, but we 63470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # may need any libraries it requires. 63570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command$dependency_libs" 63670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command$dependency_libs" 63770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 63870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 63970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 64070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 64170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 64270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # The library was specified with -dlpreopen. 64370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$prev" = dlprefiles; then 64470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Prefer using a static library (so that no silly _DYNAMIC symbols 64570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # are required to link). 64670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$old_library"; then 64770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlprefiles="$dlprefiles $dir/$old_library" 64870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 64970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlprefiles="$dlprefiles $dir/$linklib" 65070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 65170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 65270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 65370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 65470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_libtool_libs" = yes && test -n "$library_names"; then 65570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine link_against_libtool_libs="$link_against_libtool_libs $arg" 65670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$shlibpath_var"; then 65770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Make sure the rpath contains only unique directories. 65870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$temp_rpath " in 65970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *" $dir "*) ;; 66070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) temp_rpath="$temp_rpath $dir" ;; 66170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 66270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 66370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 66470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # This is the magic to use -rpath. 66570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$hardcode_libdir_flag_spec"; then 66670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$hardcode_libdir_separator"; then 66770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$hardcode_libdirs"; then 66870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Put the magic libdir with the hardcode flag. 66970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine hardcode_libdirs="$libdir" 67070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdir="@HARDCODE_LIBDIRS@" 67170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 67270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Just accumulate the unique libdirs. 67370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in 67470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 67570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 67670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 67770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 67870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 67970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 68070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdir= 68170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 68270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 68370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 68470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$libdir"; then 68570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval flag=\"$hardcode_libdir_flag_spec\" 68670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 68770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $flag" 68870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command $flag" 68970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 69070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test -n "$runpath_var"; then 69170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do the same for the permanent run path. 69270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$perm_rpath " in 69370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *" $libdir "*) ;; 69470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) perm_rpath="$perm_rpath $libdir" ;; 69570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 69670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 69770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 69870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 69970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$hardcode_action" in 70070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine immediate) 70170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$hardcode_direct" = no; then 70270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $dir/$linklib" 70370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test "$hardcode_minus_L" = no; then 70470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command -L$dir -l$name" 70570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test "$hardcode_shlibpath_var" = no; then 70670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_shlibpath="$compile_shlibpath$dir:" 70770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command -l$name" 70870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 70970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 71070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 71170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine relink) 71270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We need an absolute path. 71370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$dir" in 71470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine /* | [A-Za-z]:\\*) ;; 71570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 71670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine absdir=`cd "$dir" && pwd` 71770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$absdir"; then 71870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 71970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 72070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 72170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir="$absdir" 72270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 72370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 72470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 72570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$hardcode_direct" = yes; then 72670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $dir/$linklib" 72770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test "$hardcode_minus_L" = yes; then 72870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command -L$dir -l$name" 72970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test "$hardcode_shlibpath_var" = yes; then 73070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_shlibpath="$compile_shlibpath$dir:" 73170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command -l$name" 73270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 73370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 73470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 73570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 73670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 73770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 73870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 73970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 74070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 74170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Finalize command for both is simple: just hardcode it. 74270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$hardcode_direct" = yes; then 74370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command $libdir/$linklib" 74470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test "$hardcode_minus_L" = yes; then 74570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command -L$libdir -l$name" 74670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test "$hardcode_shlibpath_var" = yes; then 74770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_shlibpath="$finalize_shlibpath$libdir:" 74870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command -l$name" 74970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 75070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We cannot seem to hardcode it, guess we'll fake it. 75170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command -L$libdir -l$name" 75270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 75370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 75470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Transform directly to old archives if we don't build new libraries. 75570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$pic_flag" && test -z "$old_library"; then 75670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot find static library for \`$arg'" 1>&2 75770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 75870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 75970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 76070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Here we assume that one of hardcode_direct or hardcode_minus_L 76170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # is not unsupported. This is valid on all known static and 76270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # shared platforms. 76370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$hardcode_direct" != unsupported; then 76470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$old_library" && linklib="$old_library" 76570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $dir/$linklib" 76670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command $dir/$linklib" 76770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 76870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command -L$dir -l$name" 76970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command -L$dir -l$name" 77070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 77170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 77270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 77370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add in any libraries that this one depends upon. 77470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command$dependency_libs" 77570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command$dependency_libs" 77670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 77770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 77870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 77970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Some other compiler argument. 78070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 78170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Unknown arguments in both finalize_command and compile_command need 78270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # to be aesthetically quoted because they are evaled later. 78370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 78470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 78570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 78670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="\"$arg\"" 78770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 78870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 78970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 79070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 79170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 79270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now actually substitute the argument into the commands. 79370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$arg"; then 79470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $arg" 79570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command $arg" 79670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 79770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 79870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 79970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$prev"; then 80070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 80170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 80270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 80370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 80470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 80570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$vinfo" && test -n "$release"; then 80670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2 80770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 80870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 80970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 81070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 81170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine oldlib= 81270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine oldobjs= 81370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$output" in 81470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine "") 81570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify an output file" 1>&2 81670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 81770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 81870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 81970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 82070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */* | *\\*) 82170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: output file \`$output' must have no directory components" 1>&2 82270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 82370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 82470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 82570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.a) 82670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now set the variables for building old libraries. 82770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_libtool_libs=no 82870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_old_libs=yes 82970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine oldlib="$output" 83070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$rm $oldlib" 83170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $oldlib 83270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 83370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 83470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.la) 83570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Make sure we only generate libraries of the form `libNAME.la'. 83670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$output" in 83770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine lib*) ;; 83870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 83970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 84070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 84170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 84270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 84370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 84470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 84570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 84670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval libname=\"$libname_spec\" 84770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 84870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # All the library-specific variables (install_libdir is set above). 84970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine library_names= 85070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine old_library= 85170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlname= 85270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine current=0 85370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine revision=0 85470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine age=0 85570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 85670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$objs"; then 85770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 85870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 85970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 86070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 86170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # How the heck are we supposed to write a wrapper for a shared library? 86270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$link_against_libtool_libs"; then 86370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 86470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 86570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 86670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 86770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$dlfiles$dlprefiles"; then 86870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 86970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Nullify the symbol file. 87070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 87170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 87270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 87370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 87470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$rpath"; then 87570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 87670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 87770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 87870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 87970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 88070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine set dummy $rpath 88170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test $# -gt 2; then 88270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 88370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 88470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install_libdir="$2" 88570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 88670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Parse the version information argument. 88770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' 88870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine set dummy $vinfo 88970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 89070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 89170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$5"; then 89270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: too many parameters to \`-version-info'" 1>&2 89370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 89470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 89570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 89670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 89770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$2" && current="$2" 89870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$3" && revision="$3" 89970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$4" && age="$4" 90070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 90170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check that each of the things are valid numbers. 90270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$current" in 90370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 0 | [1-9] | [1-9][0-9]*) ;; 90470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 90570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 90670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$vinfo' is not valid version information" 1>&2 90770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 90870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 90970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 91070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 91170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$revision" in 91270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 0 | [1-9] | [1-9][0-9]*) ;; 91370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 91470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 91570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$vinfo' is not valid version information" 1>&2 91670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 91770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 91870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 91970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 92070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$age" in 92170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 0 | [1-9] | [1-9][0-9]*) ;; 92270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 92370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 92470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$vinfo' is not valid version information" 1>&2 92570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 92670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 92770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 92870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 92970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test $age -gt $current; then 93070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 93170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$vinfo' is not valid version information" 1>&2 93270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 93370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 93470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 93570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Calculate the version variables. 93670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine version_vars="version_type current age revision" 93770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$version_type" in 93870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine none) ;; 93970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 94070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine linux) 94170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine version_vars="$version_vars major versuffix" 94270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine major=`expr $current - $age` 94370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine versuffix="$major.$age.$revision" 94470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 94570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 94670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine osf) 94770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine version_vars="$version_vars versuffix verstring" 94870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine major=`expr $current - $age` 94970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine versuffix="$current.$age.$revision" 95070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine verstring="$versuffix" 95170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 95270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add in all the interfaces that we are compatible with. 95370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine loop=$age 95470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine while test $loop != 0; do 95570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine iface=`expr $current - $loop` 95670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine loop=`expr $loop - 1` 95770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine verstring="$verstring:${iface}.0" 95870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 95970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 96070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Make executables depend on our current version. 96170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine verstring="$verstring:${current}.0" 96270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 96370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 96470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine sunos) 96570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine version_vars="$version_vars major versuffix" 96670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine major="$current" 96770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine versuffix="$current.$revision" 96870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 96970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 97070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 97170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: unknown library version type \`$version_type'" 1>&2 97270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 97370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 97470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 97570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 97670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 97770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Create the output directory, or remove our outputs if we need to. 97870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -d $objdir; then 97970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*" 98070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.* 98170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 98270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$mkdir $objdir" 98370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $mkdir $objdir 98470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine status=$? 98570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test $status -eq 0 || test -d $objdir; then : 98670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 98770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit $status 98870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 98970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 99070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 99170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check to see if the archive will have undefined symbols. 99270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$allow_undefined" = yes; then 99370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$allow_undefined_flag" = unsupported; then 99470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 99570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_libtool_libs=no 99670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine build_old_libs=yes 99770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 99870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 99970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Don't allow undefined symbols. 100070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine allow_undefined_flag="$no_undefined_flag" 100170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 100270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 100370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add libc to deplibs on all systems. 100470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dependency_libs="$deplibs" 100570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine deplibs="$deplibs -lc" 100670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 100770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_libtool_libs" = yes; then 100870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Get the real and link names of the library. 100970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval library_names=\"$library_names_spec\" 101070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine set dummy $library_names 101170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine realname="$2" 101270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine shift; shift 101370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 101470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$soname_spec"; then 101570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval soname=\"$soname_spec\" 101670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 101770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine soname="$realname" 101870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 101970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 102070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine lib="$objdir/$realname" 102170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for link 102270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 102370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine linknames="$linknames $link" 102470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 102570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 102670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Use standard objects if they are PIC. 102770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'` 102870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 102970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each of the archive commands. 103070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$archive_cmds\" 103170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 103270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 103370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 103470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 103570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" || exit $? 103670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 103770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 103870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 103970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Create links to the real library. 104070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for linkname in $linknames; do 104170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "(cd $objdir && $LN_S $realname $linkname)" 104270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? 104370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 104470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 104570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If -export-dynamic was specified, set the dlname. 104670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$export_dynamic" = yes; then 104770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # On all known operating systems, these are identical. 104870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlname="$soname" 104970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 105070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 105170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 105270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now set the variables for building old libraries. 105370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine oldlib="$objdir/$libname.a" 105470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 105570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 105670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo | *.o) 105770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$link_against_libtool_libs"; then 105870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 105970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 106070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 106170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 106270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$deplibs"; then 106370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 106470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 106570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 106670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$dlfiles$dlprefiles"; then 106770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 106870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Nullify the symbol file. 106970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 107070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 107170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 107270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 107370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$rpath"; then 107470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 107570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 107670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 107770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$vinfo"; then 107870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 107970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 108070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 108170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$release"; then 108270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 108370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 108470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 108570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$output" in 108670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) 108770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$objs"; then 108870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 108970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 109070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 109170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libobj="$output" 109270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'` 109370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 109470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 109570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libobj= 109670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine obj="$output" 109770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 109870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 109970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 110070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Delete the old objects. 110170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $obj $libobj 110270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 110370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Create the old-style object. 110470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` 110570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 110670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine output="$obj" 110770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$reload_cmds\" 110870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 110970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 111070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 111170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 111270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" || exit $? 111370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 111470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 111570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 111670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Exit if we aren't doing a library object file. 111770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -z "$libobj" && exit 0 111870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 111970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_libtool_libs" != yes; then 112070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Create an invalid libtool object if no PIC, so that we don't 112170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # accidentally link it into a program. 112270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "echo timestamp > $libobj" 112370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "echo timestamp > $libobj" || exit $? 112470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 112570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 112670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 112770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$pic_flag"; then 112870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Only do commands if we really have different PIC objects. 112970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine reload_objs="$libobjs" 113070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine output="$libobj" 113170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$reload_cmds\" 113270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 113370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 113470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 113570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 113670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" || exit $? 113770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 113870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 113970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 114070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Just create a symlink. 114170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$LN_S $obj $libobj" 114270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $LN_S $obj $libobj || exit 1 114370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 114470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 114570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 114670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 114770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 114870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 114970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$vinfo"; then 115070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 115170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 115270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 115370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$release"; then 115470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 115570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 115670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 115770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$rpath"; then 115870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If the user specified any rpath flags, then add them. 115970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for libdir in $rpath; do 116070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$hardcode_libdir_flag_spec"; then 116170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$hardcode_libdir_separator"; then 116270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$hardcode_libdirs"; then 116370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Put the magic libdir with the hardcode flag. 116470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine hardcode_libdirs="$libdir" 116570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdir="@HARDCODE_LIBDIRS@" 116670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 116770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Just accumulate the unique libdirs. 116870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in 116970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 117070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 117170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 117270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 117370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 117470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 117570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdir= 117670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 117770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 117870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 117970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$libdir"; then 118070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval flag=\"$hardcode_libdir_flag_spec\" 118170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 118270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$compile_command $flag" 118370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$finalize_command $flag" 118470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 118570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test -n "$runpath_var"; then 118670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$perm_rpath " in 118770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *" $libdir "*) ;; 118870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) perm_rpath="$perm_rpath $libdir" ;; 118970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 119070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 119170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 119270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 119370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 119470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Substitute the hardcoded libdirs into the compile commands. 119570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$hardcode_libdir_separator"; then 119670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` 119770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` 119870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 119970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 120070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$libobjs" && test "$build_old_libs" = yes; then 120170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Transform all the library objects into standard objects. 120270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` 120370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` 120470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 120570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 120670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then 120770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlsyms="${output}S.c" 120870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 120970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlsyms= 121070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 121170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 121270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$dlsyms"; then 121370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add our own program objects to the preloaded list. 121470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` 121570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 121670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Discover the nlist of each of the dlfiles. 121770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine nlist="$objdir/${output}.nm" 121870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 121970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -d $objdir; then 122070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$rm $nlist ${nlist}T" 122170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm "$nlist" "${nlist}T" 122270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 122370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$mkdir $objdir" 122470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $mkdir $objdir 122570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine status=$? 122670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test $status -eq 0 || test -d $objdir; then : 122770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 122870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit $status 122970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 123070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 123170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 123270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for arg in $dlprefiles; do 123370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "extracting global C symbols from \`$arg'" 123470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 123570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 123670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 123770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Parse the name list into a source file. 123870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "creating $objdir/$dlsyms" 123970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$run"; then 124070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Make sure we at least have an empty file. 124170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -f "$nlist" || : > "$nlist" 124270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 124370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Try sorting and uniquifying the output. 124470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if sort "$nlist" | uniq > "$nlist"T; then 124570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine mv -f "$nlist"T "$nlist" 124670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine wcout=`wc "$nlist" 2>/dev/null` 124770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine count=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` 124870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine (test "$count" -ge 0) 2>/dev/null || count=-1 124970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 125070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $rm "$nlist"T 125170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine count=-1 125270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 125370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 125470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$dlsyms" in 125570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine "") ;; 125670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.c) 125770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo > "$objdir/$dlsyms" "\ 125870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ 125970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ 126070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 126170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#ifdef __cplusplus 126270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineextern \"C\" { 126370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#endif 126470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 126570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Prevent the only kind of declaration conflicts we can make. */ 126670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define dld_preloaded_symbol_count some_other_symbol 126770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define dld_preloaded_symbols some_other_symbol 126870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 126970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* External symbol declarations for the compiler. */\ 127070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine" 127170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 127270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -f "$nlist"; then 127370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" 127470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 127570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo '/* NONE */' >> "$objdir/$dlsyms" 127670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 127770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 127870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo >> "$objdir/$dlsyms" "\ 127970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 128070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef dld_preloaded_symbol_count 128170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef dld_preloaded_symbols 128270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 128370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#if defined (__STDC__) && __STDC__ 128470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# define __ptr_t void * 128570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#else 128670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# define __ptr_t char * 128770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#endif 128870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 128970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */ 129070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineint dld_preloaded_symbol_count = $count; 129170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 129270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* The mapping between symbol names and symbols. */ 129370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinestruct { 129470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine char *name; 129570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine __ptr_t address; 129670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine} 129770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinedld_preloaded_symbols[] = 129870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine{\ 129970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine" 130070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 130170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -f "$nlist"; then 130270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" 130370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 130470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 130570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo >> "$objdir/$dlsyms" "\ 130670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine {0, (__ptr_t) 0} 130770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine}; 130870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 130970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#ifdef __cplusplus 131070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine} 131170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#endif\ 131270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine" 131370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 131470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 131570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 131670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 131770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 131870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 131970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 132070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 132170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 132270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now compile the dynamic symbol file. 132370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")" 132470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? 132570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 132670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Transform the symbol file into the correct name. 132770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` 132870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` 132970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test "$export_dynamic" != yes; then 133070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 133170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 133270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We keep going just in case the user didn't refer to 133370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # dld_preloaded_symbols. The linker will fail if global_symbol_pipe 133470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # really was required. 133570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 133670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 133770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Nullify the symbol file. 133870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 133970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 134070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 134170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 134270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then 134370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Replace the output file specification. 134470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 134570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 134670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 134770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We have no uninstalled library dependencies, so finalize right now. 134870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$compile_command" 134970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$compile_command" 135070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit $? 135170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 135270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 135370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Replace the output file specification. 135470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'` 135570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'` 135670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 135770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Create the binary in the object directory, then wrap it. 135870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -d $objdir; then : 135970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 136070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$mkdir $objdir" 136170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $mkdir $objdir 136270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine status=$? 136370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test $status -eq 0 || test -d $objdir; then : 136470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 136570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit $status 136670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 136770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 136870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 136970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$shlibpath_var"; then 137070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We should set the shlibpath_var 137170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath= 137270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for dir in $temp_rpath; do 137370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$dir" in 137470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine /* | [A-Za-z]:\\*) 137570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Absolute path. 137670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath="$rpath$dir:" 137770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 137870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 137970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Relative path: add a thisdir entry. 138070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath="$rpath\$thisdir/$dir:" 138170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 138270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 138370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 138470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine temp_rpath="$rpath" 138570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 138670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 138770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Delete the old output file. 138870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $output 138970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 139070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$compile_shlibpath"; then 139170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command" 139270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 139370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$finalize_shlibpath"; then 139470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 139570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 139670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 139770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$runpath_var" && test -n "$perm_rpath"; then 139870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We should set the runpath_var. 139970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath= 140070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for dir in $perm_rpath; do 140170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rpath="$rpath$dir:" 140270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 140370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command" 140470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command" 140570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 140670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 140770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$hardcode_action" in 140870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine relink) 140970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # AGH! Flame the AIX and HP-UX people for me, will ya? 141070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: using a buggy system linker" 1>&2 141170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 141270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 141370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 141470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 141570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$compile_command" 141670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$compile_command" || exit $? 141770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 141870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now create the wrapper script. 141970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "creating $output" 142070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 142170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Quote the finalize command for shipping. 142270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` 142370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 142470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Quote $echo for shipping. 142570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 142670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 142770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Only actually do things if our run command is non-null. 142870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$run"; then 142970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $rm $output 143070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine trap "$rm $output; exit 1" 1 2 15 143170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 143270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo > $output "\ 143370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#! /bin/sh 143470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 143570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# $output - temporary wrapper script for $objdir/$output 143670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Generated by ltmain.sh - GNU $PACKAGE $VERSION 143770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# 143870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# The $output program cannot be directly executed until all the libtool 143970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# libraries that it depends on are installed. 144070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# 144170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# This wrapper script should never be moved out of \``pwd`'. 144270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# If it is, it will not operate correctly. 144370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 144470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Sed substitution that helps us do robust quoting. It backslashifies 144570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# metacharacters that are still active within double-quoted strings. 144670a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineXsed='sed -e s/^X//' 144770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinesed_quote_subst='$sed_quote_subst' 144870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 144970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# The HP-UX ksh and POSIX shell print the target directory to stdout 145070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# if CDPATH is set. 145170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi 145270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 145370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# This environment variable determines our operation mode. 145470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineif test \"\$libtool_install_magic\" = \"$magic\"; then 145570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # install mode needs the following variables: 145670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine link_against_libtool_libs='$link_against_libtool_libs' 145770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command=\"$finalize_command\" 145870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineelse 145970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # When we are sourced in execute mode, \$file and \$echo are already set. 146070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test \"\$libtool_execute_magic\" = \"$magic\"; then : 146170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 146270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo=\"$qecho\" 146370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file=\"\$0\" 146470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi\ 146570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine" 146670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo >> $output "\ 146770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 146870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Find the directory that this script lives in. 146970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 147070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test \"x\$thisdir\" = \"x\$file\" && thisdir=. 147170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 147270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Follow symbolic links until we get to the real thisdir. 147370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` 147470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine while test -n \"\$file\"; do 147570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 147670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 147770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there was a directory component, then change thisdir. 147870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test \"x\$destdir\" != \"x\$file\"; then 147970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case \"\$destdir\" in 148070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;; 148170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) thisdir=\"\$thisdir/\$destdir\" ;; 148270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 148370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 148470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 148570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 148670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` 148770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 148870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 148970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Try to get the absolute directory name. 149070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine absdir=\`cd \"\$thisdir\" && pwd\` 149170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n \"\$absdir\" && thisdir=\"\$absdir\" 149270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 149370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine progdir=\"\$thisdir/$objdir\" 149470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine program='$output' 149570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 149670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -f \"\$progdir/\$program\"; then" 149770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 149870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Export our shlibpath_var if we have one. 149970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$shlibpath_var" && test -n "$temp_rpath"; then 150070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo >> $output "\ 150170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add our own library path to $shlibpath_var 150270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 150370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 150470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Some systems cannot cope with colon-terminated $shlibpath_var 150570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\` 150670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 150770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine export $shlibpath_var 150870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine" 150970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 151070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 151170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo >> $output "\ 151270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test \"\$libtool_execute_magic\" != \"$magic\"; then 151370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Run the actual program with our arguments. 151470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 151570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Export the path to the program. 151670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine PATH=\"\$progdir:\$PATH\" 151770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine export PATH 151870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 151970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exec \$program \${1+\"\$@\"} 152070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 152170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" 152270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 152370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 152470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 152570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # The program doesn't exist. 152670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 152770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine \$echo \"This script is just a wrapper for \$program.\" 1>&2 152870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo \"See the $PACKAGE documentation for more information.\" 1>&2 152970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 153070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 153170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinefi\ 153270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine" 153370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine chmod +x $output 153470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 153570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 153670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 153770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 153870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 153970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # See if we need to build an old-fashioned archive. 154070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_old_libs" = "yes"; then 154170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Transform .lo files to .o files. 154270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` 154370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 154470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each command in the archive commands. 154570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 154670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$old_archive_from_new_cmds\" 154770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 154870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$old_archive_cmds\" 154970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 155070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 155170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 155270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 155370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 155470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" || exit $? 155570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 155670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 155770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 155870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 155970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now create the libtool archive. 156070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$output" in 156170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.la) 156270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine old_library= 156370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "$build_old_libs" = yes && old_library="$libname.a" 156470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 156570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "creating $output" 156670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 156770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Only create the output if not a dry run. 156870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$run"; then 156970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo > $output "\ 157070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# $output - a libtool library file 157170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Generated by ltmain.sh - GNU $PACKAGE $VERSION 157270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 157370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# The name that we can dlopen(3). 157470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinedlname='$dlname' 157570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 157670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Names of this library. 157770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinelibrary_names='$library_names' 157870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 157970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# The name of the static archive. 158070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineold_library='$old_library' 158170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 158270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Libraries that this one depends upon. 158370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinedependency_libs='$dependency_libs' 158470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 158570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Version information for $libname. 158670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinecurrent=$current 158770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineage=$age 158870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinerevision=$revision 158970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 159070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Directory that this library needs to be installed in: 159170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinelibdir='$install_libdir'\ 159270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine" 159370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 159470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 159570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do a symbolic link so that the libtool archive can be found in 159670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # LD_LIBRARY_PATH before the program is installed. 159770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "(cd $objdir && $LN_S ../$output $output)" 159870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1 159970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 160070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 160170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 160270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 160370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 160470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # libtool install mode 160570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install) 160670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine modename="$modename: install" 160770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 160870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # There may be an optional /bin/sh argument at the beginning of 160970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # install_prog (especially on Windows NT). 161070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$nonopt" = "$SHELL"; then 161170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Aesthetically quote it. 161270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 161370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 161470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 161570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="\"$arg\"" 161670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 161770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 161870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install_prog="$arg " 161970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="$1" 162070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine shift 162170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 162270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install_prog= 162370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="$nonopt" 162470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 162570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 162670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # The real first argument should be the name of the installation program. 162770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Aesthetically quote it. 162870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 162970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 163070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 163170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="\"$arg\"" 163270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 163370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 163470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install_prog="$install_prog$arg" 163570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 163670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # We need to accept at least all the BSD install flags. 163770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dest= 163870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine files= 163970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine opts= 164070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 164170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install_type= 164270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine isdir= 164370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine stripme= 164470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for arg 164570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 164670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$dest"; then 164770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine files="$files $dest" 164870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dest="$arg" 164970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 165070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 165170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 165270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 165370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -d) isdir=yes ;; 165470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -f) prev="-f" ;; 165570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -g) prev="-g" ;; 165670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -m) prev="-m" ;; 165770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -o) prev="-o" ;; 165870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -s) 165970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine stripme=" -s" 166070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 166170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 166270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -*) ;; 166370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 166470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 166570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If the previous option needed an argument, then skip it. 166670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$prev"; then 166770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine prev= 166870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 166970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dest="$arg" 167070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 167170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 167270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 167370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 167470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 167570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Aesthetically quote the argument. 167670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 167770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 167870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 167970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine arg="\"$arg\"" 168070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 168170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 168270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install_prog="$install_prog $arg" 168370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 168470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 168570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$install_prog"; then 168670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify an install program" 1>&2 168770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 168870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 168970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 169070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 169170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$prev"; then 169270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: the \`$prev' option requires an argument" 1>&2 169370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 169470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 169570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 169670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 169770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$files"; then 169870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$dest"; then 169970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: no file or destination specified" 1>&2 170070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 170170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify a destination" 1>&2 170270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 170370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 170470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 170570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 170670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 170770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Strip any trailing slash from the destination. 170870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 170970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 171070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check to see that the destination is a directory. 171170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -d "$dest" && isdir=yes 171270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$isdir"; then 171370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destdir="$dest" 171470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destname= 171570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 171670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 171770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$destdir" = "X$dest" && destdir=. 171870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 171970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 172070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Not a directory, so check to see that there is only one file specified. 172170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine set dummy $files 172270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test $# -gt 2; then 172370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$dest' is not a directory" 1>&2 172470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 172570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 172670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 172770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 172870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$destdir" in 172970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine /* | [A-Za-z]:\\*) ;; 173070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 173170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for file in $files; do 173270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 173370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) ;; 173470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 173570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 173670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 173770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 173870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 173970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 174070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 174170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 174270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 174370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 174470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # This variable tells wrapper scripts just to set variables rather 174570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # than running their programs. 174670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libtool_install_magic="$magic" 174770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 174870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine staticlibs= 174970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine future_libdirs= 175070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine current_libdirs= 175170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for file in $files; do 175270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 175370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each installation. 175470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 175570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.a) 175670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do the static libraries later. 175770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine staticlibs="$staticlibs $file" 175870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 175970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 176070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.la) 176170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check to see that this really is a libtool archive. 176270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : 176370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 176470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 176570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 176670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 176770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 176870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 176970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine library_names= 177070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine old_library= 177170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there is no directory component, then add one. 177270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 177370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */* | *\\*) . $file ;; 177470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) . ./$file ;; 177570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 177670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 177770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Add the libdir to current_libdirs if it is the destination. 177870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "X$destdir" = "X$libdir"; then 177970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$current_libdirs " in 178070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *" $libdir "*) ;; 178170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) current_libdirs="$current_libdirs $libdir" ;; 178270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 178370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 178470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Note the libdir as a future libdir. 178570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$future_libdirs " in 178670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *" $libdir "*) ;; 178770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) future_libdirs="$future_libdirs $libdir" ;; 178870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 178970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 179070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 179170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" 179270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$dir" = "X$file/" && dir= 179370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir="$dir$objdir" 179470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 179570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # See the names of the shared library. 179670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine set dummy $library_names 179770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$2"; then 179870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine realname="$2" 179970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine shift 180070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine shift 180170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 180270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Install the shared library and build the symlinks. 180370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$install_prog $dir/$realname $destdir/$realname" 180470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? 180570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$dlname" = "X$realname" && dlname= 180670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 180770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test $# -gt 0; then 180870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Delete the old symlinks. 180970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rmcmd="$rm" 181070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for linkname 181170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 181270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rmcmd="$rmcmd $destdir/$linkname" 181370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 181470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$rmcmd" 181570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rmcmd 181670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 181770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # ... and create new ones. 181870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for linkname 181970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 182070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$dlname" = "X$linkname" && dlname= 182170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "(cd $destdir && $LN_S $realname $linkname)" 182270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "(cd $destdir && $LN_S $realname $linkname)" 182370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 182470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 182570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 182670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$dlname"; then 182770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Install the dynamically-loadable library. 182870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$install_prog $dir/$dlname $destdir/$dlname" 182970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $? 183070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 183170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 183270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each command in the postinstall commands. 183370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine lib="$destdir/$realname" 183470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$postinstall_cmds\" 183570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 183670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 183770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 183870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 183970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" || exit $? 184070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 184170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 184270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 184370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 184470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Install the pseudo-library for information purposes. 184570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 184670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$install_prog $file $destdir/$name" 184770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$install_prog $file $destdir/$name" || exit $? 184870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 184970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Maybe install the static library, too. 185070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 185170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 185270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 185370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) 185470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Install (i.e. copy) a libtool object. 185570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 185670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Figure out destination file name, if it wasn't already specified. 185770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$destname"; then 185870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destfile="$destdir/$destname" 185970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 186070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 186170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destfile="$destdir/$destfile" 186270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 186370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 186470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Deduce the name of the destination old-style object file. 186570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$destfile" in 186670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) 186770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'` 186870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 186970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.o) 187070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine staticdest="$destfile" 187170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine destfile= 187270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 187370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 187470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 187570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 187670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 187770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 187870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 187970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 188070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Install the libtool object if requested. 188170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$destfile"; then 188270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$install_prog $file $destfile" 188370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$install_prog $file $destfile" || exit $? 188470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 188570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 188670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Install the old object if enabled. 188770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_old_libs" = yes; then 188870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Deduce the name of the old-style object file. 188970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'` 189070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 189170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$install_prog $staticobj $staticdest" 189270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$install_prog \$staticobj \$staticdest" || exit $? 189370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 189470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 189570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 189670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 189770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 189870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do a test to see if this is really a libtool program. 189970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then 190070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine link_against_libtool_libs= 190170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize_command= 190270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 190370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there is no directory component, then add one. 190470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 190570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */* | *\\*) . $file ;; 190670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) . ./$file ;; 190770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 190870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 190970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check the variables that should have been set. 191070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then 191170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 191270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 191370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 191470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 191570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize=yes 191670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for lib in $link_against_libtool_libs; do 191770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check to see that each library is installed. 191870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdir= 191970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -f "$lib"; then 192070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there is no directory component, then add one. 192170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$lib" in 192270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */* | *\\*) . $lib ;; 192370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) . ./$lib ;; 192470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 192570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 192670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" 192770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$libdir"; then 192870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 192970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine elif test -f "$libfile"; then : 193070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 193170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 193270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finalize=no 193370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 193470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 193570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 193670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$hardcode_action" = relink; then 193770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$finalize" = yes; then 193870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 193970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$finalize_command" 194070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if $run eval "$finalize_command"; then : 194170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 194270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 194370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 194470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 194570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file="$objdir/$file"T 194670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 194770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 194870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 194970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 195070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Install the binary that we compiled earlier. 195170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 195270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 195370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 195470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 195570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$install_prog$stripme $file $dest" 195670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$install_prog\$stripme \$file \$dest" || exit $? 195770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 195870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 195970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 196070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 196170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for file in $staticlibs; do 196270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 196370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 196470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Set up the ranlib parameters. 196570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine oldlib="$destdir/$name" 196670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 196770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$install_prog $file $oldlib" 196870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$install_prog \$file \$oldlib" || exit $? 196970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 197070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each command in the postinstall commands. 197170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$old_postinstall_cmds\" 197270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 197370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 197470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 197570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 197670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" || exit $? 197770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 197870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 197970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 198070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 198170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$future_libdirs"; then 198270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 198370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 198470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 198570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$current_libdirs"; then 198670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Maybe just do a dry run. 198770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$run" && current_libdirs=" -n$current_libdirs" 198870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exec $SHELL $0 --finish$current_libdirs 198970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 199070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 199170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 199270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 199370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 199470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 199570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # libtool finish mode 199670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finish) 199770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine modename="$modename: finish" 199870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdirs="$nonopt" 199970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 200070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 200170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for dir 200270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 200370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdirs="$libdirs $dir" 200470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 200570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 200670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for libdir in $libdirs; do 200770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$finish_cmds"; then 200870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each command in the finish commands. 200970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$finish_cmds\" 201070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 201170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 201270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 201370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 201470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" 201570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 201670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 201770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 201870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$finish_eval"; then 201970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do the single finish_eval. 202070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$finish_eval\" 202170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmds" 202270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 202370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 202470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 202570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 202670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "------------------------------------------------------------------------------" 202770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "Libraries have been installed in:" 202870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for libdir in $libdirs; do 202970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " $libdir" 203070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 203170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo 203270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "To link against installed libraries in a given directory, LIBDIR," 203370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "you must use the \`-LLIBDIR' flag during linking." 203470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo 203570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " You will also need to do one of the following:" 203670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$shlibpath_var"; then 203770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 203870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " during execution" 203970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 204070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$runpath_var"; then 204170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " - add LIBDIR to the \`$runpath_var' environment variable" 204270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " during linking" 204370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 204470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$hardcode_libdir_flag_spec"; then 204570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libdir=LIBDIR 204670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval flag=\"$hardcode_libdir_flag_spec\" 204770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 204870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " - use the \`$flag' linker flag" 204970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 205070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -f /etc/ld.so.conf; then 205170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 205270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 205370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo 205470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "See any operating system documentation about shared libraries for" 205570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "more information, such as the ld(1) and ld.so(8) manual pages." 205670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine echo "------------------------------------------------------------------------------" 205770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 205870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 205970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 206070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # libtool execute mode 206170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine execute) 206270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine modename="$modename: execute" 206370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 206470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # The first argument is the command name. 206570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine cmd="$nonopt" 206670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$cmd"; then 206770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify a COMMAND" 1>&2 206870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 206970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 207070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 207170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 207270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Handle -dlopen flags immediately. 207370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for file in $execute_dlfiles; do 207470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -f "$file"; then : 207570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 207670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$file' is not a file" 1>&2 207770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 207870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 207970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 208070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 208170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir= 208270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 208370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.la) 208470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check to see that this really is a libtool archive. 208570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : 208670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 208770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 208870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 208970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 209070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 209170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 209270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Read the libtool library. 209370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dlname= 209470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine library_names= 209570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 209670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there is no directory component, then add one. 209770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 209870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */* | *\\*) . $file ;; 209970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) . ./$file ;; 210070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 210170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 210270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Skip this library if it cannot be dlopened. 210370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$dlname"; then 210470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Warn if it was a shared library. 210570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 210670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 210770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 210870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 210970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 211070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$dir" = "X$file" && dir=. 211170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 211270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -f "$dir/$objdir/$dlname"; then 211370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir="$dir/$objdir" 211470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 211570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 211670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 211770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 211870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 211970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 212070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) 212170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Just add the directory containing the .lo file. 212270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 212370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$dir" = "X$file" && dir=. 212470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 212570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 212670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 212770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 212870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine continue 212970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 213070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 213170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 213270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Get the absolute pathname. 213370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine absdir=`cd "$dir" && pwd` 213470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$absdir" && dir="$absdir" 213570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 213670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now add the directory to shlibpath_var. 213770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if eval "test -z \"\$$shlibpath_var\""; then 213870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "$shlibpath_var=\"\$dir\"" 213970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 214070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 214170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 214270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 214370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 214470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # This variable tells wrapper scripts just to set shlibpath_var 214570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # rather than running their programs. 214670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine libtool_execute_magic="$magic" 214770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 214870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Check if any of the arguments is a wrapper script. 214970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine args= 215070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for file 215170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 215270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 215370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -*) ;; 215470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 215570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do a test to see if this is really a libtool program. 215670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then 215770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # If there is no directory component, then add one. 215870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$file" in 215970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */* | *\\*) . $file ;; 216070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) . ./$file ;; 216170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 216270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 216370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Transform arg to wrapped name. 216470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file="$progdir/$program" 216570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 216670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 216770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 216870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Quote arguments (to preserve shell metacharacters). 216970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 217070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine args="$args \"$file\"" 217170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 217270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 217370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$run"; then 217470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Export the shlibpath_var. 217570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "export $shlibpath_var" 217670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 217770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Now actually exec the command. 217870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "exec \$cmd$args" 217970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 218070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: cannot exec \$cmd$args" 218170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 218270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine else 218370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Display what would be done. 218470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 218570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "export $shlibpath_var" 218670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$cmd$args" 218770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 218870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 218970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 219070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 219170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # libtool uninstall mode 219270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine uninstall) 219370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine modename="$modename: uninstall" 219470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rm="$nonopt" 219570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine files= 219670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 219770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for arg 219870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine do 219970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$arg" in 220070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -*) rm="$rm $arg" ;; 220170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) files="$files $arg" ;; 220270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 220370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 220470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 220570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -z "$rm"; then 220670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify an RM program" 1>&2 220770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 220870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 220970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 221070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 221170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for file in $files; do 221270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 221370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$dir" = "X$file" && dir=. 221470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 221570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 221670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rmfiles="$file" 221770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 221870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine case "$name" in 221970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.la) 222070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Possibly a libtool archive, so verify it. 222170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then 222270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine . $dir/$name 222370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 222470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Delete the libtool libraries and symlinks. 222570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for n in $library_names; do 222670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rmfiles="$rmfiles $dir/$n" 222770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test "X$n" = "X$dlname" && dlname= 222870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 222970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" 223070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" 223170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 223270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$rm $rmfiles" 223370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $rmfiles 223470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 223570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$library_names"; then 223670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each command in the postuninstall commands. 223770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$postuninstall_cmds\" 223870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 223970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 224070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 224170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 224270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" 224370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 224470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 224570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 224670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 224770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test -n "$old_library"; then 224870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # Do each command in the old_postuninstall commands. 224970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine eval cmds=\"$old_postuninstall_cmds\" 225070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 225170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine for cmd in $cmds; do 225270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 225370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$cmd" 225470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run eval "$cmd" 225570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 225670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine IFS="$save_ifs" 225770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 225870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 225970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine # FIXME: should reinstall the best remaining shared library. 226070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 226170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 226270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 226370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *.lo) 226470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine if test "$build_old_libs" = yes; then 226570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'` 226670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine rmfiles="$rmfiles $dir/$oldobj" 226770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine fi 226870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$rm $rmfiles" 226970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $rmfiles 227070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 227170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 227270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine *) 227370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $show "$rm $rmfiles" 227470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $run $rm $rmfiles 227570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 227670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 227770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine done 227870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 227970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 228070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 228170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine "") 228270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: you must specify a MODE" 1>&2 228370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$generic_help" 1>&2 228470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 228570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 228670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine esac 228770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 228870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: invalid operation mode \`$mode'" 1>&2 228970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$generic_help" 1>&2 229070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 229170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinefi # test -z "$show_help" 229270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 229370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# We need to display help for each of the modes. 229470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinecase "$mode" in 229570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"") $echo \ 229670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"Usage: $modename [OPTION]... [MODE-ARG]... 229770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 229870a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineProvide generalized library-building support services. 229970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 230070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine-n, --dry-run display commands without modifying any files 230170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --features display configuration information and exit 230270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --finish same as \`--mode=finish' 230370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --help display this help message and exit 230470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 230570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --quiet same as \`--silent' 230670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --silent don't print informational messages 230770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine --version print version information 230870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 230970a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineMODE must be one of the following: 231070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 231170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine compile compile a source file into a libtool object 231270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine execute automatically set library path, then run a program 231370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine finish complete the installation of libtool libraries 231470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine install install libraries or executables 231570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine link create a library or an executable 231670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine uninstall remove libraries from an installed directory 231770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 231870a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineMODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 231970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinea more detailed description of MODE." 232070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 0 232170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 232270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 232370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinecompile) 232470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo \ 232570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 232670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 232770a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineCompile a source file into a libtool library object. 232870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 232970a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 233070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinefrom the given SOURCEFILE. 233170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 233270a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineThe output file name is determined by removing the directory component from 233370a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineSOURCEFILE, then substituting the C source code suffix \`.c' with the 233470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinelibrary object suffix, \`.lo'." 233570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 233670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 233770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineexecute) 233870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo \ 233970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 234070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 234170a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineAutomatically set library path, then run a program. 234270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 234370a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineThis mode accepts the following additional options: 234470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 234570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -dlopen FILE add the directory containing FILE to the library path 234670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 234770a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineThis mode sets the library path environment variable according to \`-dlopen' 234870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineflags. 234970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 235070a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineIf any of the ARGS are libtool executable wrappers, then they are translated 235170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineinto their corresponding uninstalled binary, and any of their required library 235270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinedirectories are added to the library path. 235370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 235470a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineThen, COMMAND is executed, with ARGS as arguments." 235570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 235670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 235770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinefinish) 235870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo \ 235970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 236070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 236170a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineComplete the installation of libtool libraries. 236270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 236370a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineEach LIBDIR is a directory that contains libtool libraries. 236470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 236570a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineThe commands that this mode executes may require superuser privileges. Use 236670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinethe \`--dry-run' option if you just want to see what would be executed." 236770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 236870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 236970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineinstall) 237070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo \ 237170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 237270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 237370a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineInstall executables or libraries. 237470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 237570a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineINSTALL-COMMAND is the installation command. The first component should be 237670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineeither the \`install' or \`cp' program. 237770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 237870a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineThe rest of the components are interpreted as arguments to that command (only 237970a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineBSD-compatible install options are recognized)." 238070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 238170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 238270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinelink) 238370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo \ 238470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 238570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 238670a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineLink object files or libraries together to form another library, or to 238770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinecreate an executable program. 238870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 238970a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineLINK-COMMAND is a command using the C compiler that you would use to create 239070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinea program from several object files. 239170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 239270a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineThe following components of LINK-COMMAND are treated specially: 239370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 239470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -all-static do not do any dynamic linking at all 239570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 239670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols 239770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 239870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -LLIBDIR search LIBDIR for required installed libraries 239970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -lNAME OUTPUT-FILE requires the installed library libNAME 240070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -no-undefined declare that a library does not refer to external symbols 240170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 240270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -release RELEASE specify package release information 240370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -rpath LIBDIR the created library will eventually be installed in LIBDIR 240470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -static do not do any dynamic linking of libtool libraries 240570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine -version-info CURRENT[:REVISION[:AGE]] 240670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine specify library version info [each variable defaults to 0] 240770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 240870a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineAll other options (arguments beginning with \`-') are ignored. 240970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 241070a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineEvery other argument is treated as a filename. Files ending in \`.la' are 241170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinetreated as uninstalled libtool libraries, other files are standard or library 241270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineobject files. 241370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 241470a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, only 241570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinelibrary objects (\`.lo' files) may be specified, and \`-rpath' is required. 241670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 241770a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineIf OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar' 241870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineand \`ranlib'. 241970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 242070a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineIf OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is 242170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkinecreated, otherwise an executable program is created." 242270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 242370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 242470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineuninstall) 242570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo 242670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 242770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 242870a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineRemove libraries from an installation directory. 242970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 243070a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineRM is the name of the program to use to delete files associated with each FILE 243170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 243270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineto RM. 243370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 243470a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineIf FILE is a libtool library, all the files associated with it are deleted. 243570a18cd874a22452aca9e39e22275ed4538ed20bVladimir ChtchetkineOtherwise, only FILE itself is deleted using RM." 243670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 243770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 243870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine*) 243970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$modename: invalid operation mode \`$mode'" 1>&2 244070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine $echo "$help" 1>&2 244170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine exit 1 244270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine ;; 244370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineesac 244470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 244570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineecho 244670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine$echo "Try \`$modename --help' for more information about other modes." 244770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 244870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkineexit 0 244970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 245070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# Local Variables: 245170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# mode:shell-script 245270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# sh-indentation:2 245370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine# End: 2454