1*593dc095SDavid du Colombier# ltmain.sh - Provide generalized library-building support services. 2*593dc095SDavid du Colombier# NOTE: Changing this file will not affect anything until you rerun ltconfig. 3*593dc095SDavid du Colombier# 4*593dc095SDavid du Colombier# Copyright (C) 1996-1998 Free Software Foundation, Inc. 5*593dc095SDavid du Colombier# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 6*593dc095SDavid du Colombier# 7*593dc095SDavid du Colombier# This program is free software; you can redistribute it and/or modify 8*593dc095SDavid du Colombier# it under the terms of the GNU General Public License as published by 9*593dc095SDavid du Colombier# the Free Software Foundation; either version 2 of the License, or 10*593dc095SDavid du Colombier# (at your option) any later version. 11*593dc095SDavid du Colombier# 12*593dc095SDavid du Colombier# This program is distributed in the hope that it will be useful, but 13*593dc095SDavid du Colombier# WITHOUT ANY WARRANTY; without even the implied warranty of 14*593dc095SDavid du Colombier# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15*593dc095SDavid du Colombier# General Public License for more details. 16*593dc095SDavid du Colombier# 17*593dc095SDavid du Colombier# You should have received a copy of the GNU General Public License 18*593dc095SDavid du Colombier# along with this program; if not, write to the Free Software 19*593dc095SDavid du Colombier# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20*593dc095SDavid du Colombier# 21*593dc095SDavid du Colombier# As a special exception to the GNU General Public License, if you 22*593dc095SDavid du Colombier# distribute this file as part of a program that contains a 23*593dc095SDavid du Colombier# configuration script generated by Autoconf, you may include it under 24*593dc095SDavid du Colombier# the same distribution terms that you use for the rest of that program. 25*593dc095SDavid du Colombier 26*593dc095SDavid du Colombier# The name of this program. 27*593dc095SDavid du Colombierprogname=`$echo "$0" | sed 's%^.*/%%'` 28*593dc095SDavid du Colombiermodename="$progname" 29*593dc095SDavid du Colombier 30*593dc095SDavid du Colombier# Constants. 31*593dc095SDavid du ColombierPROGRAM=ltmain.sh 32*593dc095SDavid du ColombierPACKAGE=libtool 33*593dc095SDavid du ColombierVERSION=1.2 34*593dc095SDavid du Colombier 35*593dc095SDavid du Colombierdefault_mode= 36*593dc095SDavid du Colombierhelp="Try \`$progname --help' for more information." 37*593dc095SDavid du Colombiermagic="%%%MAGIC variable%%%" 38*593dc095SDavid du Colombiermkdir="mkdir" 39*593dc095SDavid du Colombiermv="mv -f" 40*593dc095SDavid du Colombierrm="rm -f" 41*593dc095SDavid du Colombier 42*593dc095SDavid du Colombier# Sed substitution that helps us do robust quoting. It backslashifies 43*593dc095SDavid du Colombier# metacharacters that are still active within double-quoted strings. 44*593dc095SDavid du ColombierXsed='sed -e s/^X//' 45*593dc095SDavid du Colombiersed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 46*593dc095SDavid du Colombier 47*593dc095SDavid du Colombier# NLS nuisances. 48*593dc095SDavid du Colombier# Only set LANG and LC_ALL to C if already set. 49*593dc095SDavid du Colombier# These must not be set unconditionally because not all systems understand 50*593dc095SDavid du Colombier# e.g. LANG=C (notably SCO). 51*593dc095SDavid du Colombierif test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi 52*593dc095SDavid du Colombierif test "${LANG+set}" = set; then LANG=C; export LANG; fi 53*593dc095SDavid du Colombier 54*593dc095SDavid du Colombierif test "$LTCONFIG_VERSION" != "$VERSION"; then 55*593dc095SDavid du Colombier echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 56*593dc095SDavid du Colombier echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 57*593dc095SDavid du Colombier exit 1 58*593dc095SDavid du Colombierfi 59*593dc095SDavid du Colombier 60*593dc095SDavid du Colombierif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 61*593dc095SDavid du Colombier echo "$modename: not configured to build any kind of library" 1>&2 62*593dc095SDavid du Colombier echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 63*593dc095SDavid du Colombier exit 1 64*593dc095SDavid du Colombierfi 65*593dc095SDavid du Colombier 66*593dc095SDavid du Colombier# Global variables. 67*593dc095SDavid du Colombiermode=$default_mode 68*593dc095SDavid du Colombiernonopt= 69*593dc095SDavid du Colombierprev= 70*593dc095SDavid du Colombierprevopt= 71*593dc095SDavid du Colombierrun= 72*593dc095SDavid du Colombiershow="$echo" 73*593dc095SDavid du Colombiershow_help= 74*593dc095SDavid du Colombierexecute_dlfiles= 75*593dc095SDavid du Colombier 76*593dc095SDavid du Colombier# Parse our command line options once, thoroughly. 77*593dc095SDavid du Colombierwhile test $# -gt 0 78*593dc095SDavid du Colombierdo 79*593dc095SDavid du Colombier arg="$1" 80*593dc095SDavid du Colombier shift 81*593dc095SDavid du Colombier 82*593dc095SDavid du Colombier case "$arg" in 83*593dc095SDavid du Colombier -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 84*593dc095SDavid du Colombier *) optarg= ;; 85*593dc095SDavid du Colombier esac 86*593dc095SDavid du Colombier 87*593dc095SDavid du Colombier # If the previous option needs an argument, assign it. 88*593dc095SDavid du Colombier if test -n "$prev"; then 89*593dc095SDavid du Colombier case "$prev" in 90*593dc095SDavid du Colombier execute_dlfiles) 91*593dc095SDavid du Colombier eval "$prev=\"\$$prev \$arg\"" 92*593dc095SDavid du Colombier ;; 93*593dc095SDavid du Colombier *) 94*593dc095SDavid du Colombier eval "$prev=\$arg" 95*593dc095SDavid du Colombier ;; 96*593dc095SDavid du Colombier esac 97*593dc095SDavid du Colombier 98*593dc095SDavid du Colombier prev= 99*593dc095SDavid du Colombier prevopt= 100*593dc095SDavid du Colombier continue 101*593dc095SDavid du Colombier fi 102*593dc095SDavid du Colombier 103*593dc095SDavid du Colombier # Have we seen a non-optional argument yet? 104*593dc095SDavid du Colombier case "$arg" in 105*593dc095SDavid du Colombier --help) 106*593dc095SDavid du Colombier show_help=yes 107*593dc095SDavid du Colombier ;; 108*593dc095SDavid du Colombier 109*593dc095SDavid du Colombier --version) 110*593dc095SDavid du Colombier echo "$PROGRAM (GNU $PACKAGE) $VERSION" 111*593dc095SDavid du Colombier exit 0 112*593dc095SDavid du Colombier ;; 113*593dc095SDavid du Colombier 114*593dc095SDavid du Colombier --dry-run | -n) 115*593dc095SDavid du Colombier run=: 116*593dc095SDavid du Colombier ;; 117*593dc095SDavid du Colombier 118*593dc095SDavid du Colombier --features) 119*593dc095SDavid du Colombier echo "host: $host" 120*593dc095SDavid du Colombier if test "$build_libtool_libs" = yes; then 121*593dc095SDavid du Colombier echo "enable shared libraries" 122*593dc095SDavid du Colombier else 123*593dc095SDavid du Colombier echo "disable shared libraries" 124*593dc095SDavid du Colombier fi 125*593dc095SDavid du Colombier if test "$build_old_libs" = yes; then 126*593dc095SDavid du Colombier echo "enable static libraries" 127*593dc095SDavid du Colombier else 128*593dc095SDavid du Colombier echo "disable static libraries" 129*593dc095SDavid du Colombier fi 130*593dc095SDavid du Colombier exit 0 131*593dc095SDavid du Colombier ;; 132*593dc095SDavid du Colombier 133*593dc095SDavid du Colombier --finish) mode="finish" ;; 134*593dc095SDavid du Colombier 135*593dc095SDavid du Colombier --mode) prevopt="--mode" prev=mode ;; 136*593dc095SDavid du Colombier --mode=*) mode="$optarg" ;; 137*593dc095SDavid du Colombier 138*593dc095SDavid du Colombier --quiet | --silent) 139*593dc095SDavid du Colombier show=: 140*593dc095SDavid du Colombier ;; 141*593dc095SDavid du Colombier 142*593dc095SDavid du Colombier -dlopen) 143*593dc095SDavid du Colombier prevopt="-dlopen" 144*593dc095SDavid du Colombier prev=execute_dlfiles 145*593dc095SDavid du Colombier ;; 146*593dc095SDavid du Colombier 147*593dc095SDavid du Colombier -*) 148*593dc095SDavid du Colombier $echo "$modename: unrecognized option \`$arg'" 1>&2 149*593dc095SDavid du Colombier $echo "$help" 1>&2 150*593dc095SDavid du Colombier exit 1 151*593dc095SDavid du Colombier ;; 152*593dc095SDavid du Colombier 153*593dc095SDavid du Colombier *) 154*593dc095SDavid du Colombier nonopt="$arg" 155*593dc095SDavid du Colombier break 156*593dc095SDavid du Colombier ;; 157*593dc095SDavid du Colombier esac 158*593dc095SDavid du Colombierdone 159*593dc095SDavid du Colombier 160*593dc095SDavid du Colombierif test -n "$prevopt"; then 161*593dc095SDavid du Colombier $echo "$modename: option \`$prevopt' requires an argument" 1>&2 162*593dc095SDavid du Colombier $echo "$help" 1>&2 163*593dc095SDavid du Colombier exit 1 164*593dc095SDavid du Colombierfi 165*593dc095SDavid du Colombier 166*593dc095SDavid du Colombierif test -z "$show_help"; then 167*593dc095SDavid du Colombier 168*593dc095SDavid du Colombier # Infer the operation mode. 169*593dc095SDavid du Colombier if test -z "$mode"; then 170*593dc095SDavid du Colombier case "$nonopt" in 171*593dc095SDavid du Colombier *cc | *++ | gcc* | *-gcc*) 172*593dc095SDavid du Colombier mode=link 173*593dc095SDavid du Colombier for arg 174*593dc095SDavid du Colombier do 175*593dc095SDavid du Colombier case "$arg" in 176*593dc095SDavid du Colombier -c) 177*593dc095SDavid du Colombier mode=compile 178*593dc095SDavid du Colombier break 179*593dc095SDavid du Colombier ;; 180*593dc095SDavid du Colombier esac 181*593dc095SDavid du Colombier done 182*593dc095SDavid du Colombier ;; 183*593dc095SDavid du Colombier *db | *dbx) 184*593dc095SDavid du Colombier mode=execute 185*593dc095SDavid du Colombier ;; 186*593dc095SDavid du Colombier *install*|cp|mv) 187*593dc095SDavid du Colombier mode=install 188*593dc095SDavid du Colombier ;; 189*593dc095SDavid du Colombier *rm) 190*593dc095SDavid du Colombier mode=uninstall 191*593dc095SDavid du Colombier ;; 192*593dc095SDavid du Colombier *) 193*593dc095SDavid du Colombier # If we have no mode, but dlfiles were specified, then do execute mode. 194*593dc095SDavid du Colombier test -n "$execute_dlfiles" && mode=execute 195*593dc095SDavid du Colombier 196*593dc095SDavid du Colombier # Just use the default operation mode. 197*593dc095SDavid du Colombier if test -z "$mode"; then 198*593dc095SDavid du Colombier if test -n "$nonopt"; then 199*593dc095SDavid du Colombier $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 200*593dc095SDavid du Colombier else 201*593dc095SDavid du Colombier $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 202*593dc095SDavid du Colombier fi 203*593dc095SDavid du Colombier fi 204*593dc095SDavid du Colombier ;; 205*593dc095SDavid du Colombier esac 206*593dc095SDavid du Colombier fi 207*593dc095SDavid du Colombier 208*593dc095SDavid du Colombier # Only execute mode is allowed to have -dlopen flags. 209*593dc095SDavid du Colombier if test -n "$execute_dlfiles" && test "$mode" != execute; then 210*593dc095SDavid du Colombier $echo "$modename: unrecognized option \`-dlopen'" 1>&2 211*593dc095SDavid du Colombier $echo "$help" 1>&2 212*593dc095SDavid du Colombier exit 1 213*593dc095SDavid du Colombier fi 214*593dc095SDavid du Colombier 215*593dc095SDavid du Colombier # Change the help message to a mode-specific one. 216*593dc095SDavid du Colombier generic_help="$help" 217*593dc095SDavid du Colombier help="Try \`$modename --help --mode=$mode' for more information." 218*593dc095SDavid du Colombier 219*593dc095SDavid du Colombier # These modes are in order of execution frequency so that they run quickly. 220*593dc095SDavid du Colombier case "$mode" in 221*593dc095SDavid du Colombier # libtool compile mode 222*593dc095SDavid du Colombier compile) 223*593dc095SDavid du Colombier modename="$modename: compile" 224*593dc095SDavid du Colombier # Get the compilation command and the source file. 225*593dc095SDavid du Colombier base_compile= 226*593dc095SDavid du Colombier lastarg= 227*593dc095SDavid du Colombier srcfile="$nonopt" 228*593dc095SDavid du Colombier suppress_output= 229*593dc095SDavid du Colombier 230*593dc095SDavid du Colombier for arg 231*593dc095SDavid du Colombier do 232*593dc095SDavid du Colombier # Accept any command-line options. 233*593dc095SDavid du Colombier case "$arg" in 234*593dc095SDavid du Colombier -o) 235*593dc095SDavid du Colombier $echo "$modename: you cannot specify the output filename with \`-o'" 1>&2 236*593dc095SDavid du Colombier $echo "$help" 1>&2 237*593dc095SDavid du Colombier exit 1 238*593dc095SDavid du Colombier ;; 239*593dc095SDavid du Colombier 240*593dc095SDavid du Colombier -static) 241*593dc095SDavid du Colombier build_libtool_libs=no 242*593dc095SDavid du Colombier build_old_libs=yes 243*593dc095SDavid du Colombier continue 244*593dc095SDavid du Colombier ;; 245*593dc095SDavid du Colombier esac 246*593dc095SDavid du Colombier 247*593dc095SDavid du Colombier # Accept the current argument as the source file. 248*593dc095SDavid du Colombier lastarg="$srcfile" 249*593dc095SDavid du Colombier srcfile="$arg" 250*593dc095SDavid du Colombier 251*593dc095SDavid du Colombier # Aesthetically quote the previous argument. 252*593dc095SDavid du Colombier 253*593dc095SDavid du Colombier # Backslashify any backslashes, double quotes, and dollar signs. 254*593dc095SDavid du Colombier # These are the only characters that are still specially 255*593dc095SDavid du Colombier # interpreted inside of double-quoted scrings. 256*593dc095SDavid du Colombier lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 257*593dc095SDavid du Colombier 258*593dc095SDavid du Colombier # Double-quote args containing other shell metacharacters. 259*593dc095SDavid du Colombier # Many Bourne shells cannot handle close brackets correctly in scan 260*593dc095SDavid du Colombier # sets, so we specify it separately. 261*593dc095SDavid du Colombier case "$lastarg" in 262*593dc095SDavid du Colombier *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 263*593dc095SDavid du Colombier lastarg="\"$lastarg\"" 264*593dc095SDavid du Colombier ;; 265*593dc095SDavid du Colombier esac 266*593dc095SDavid du Colombier 267*593dc095SDavid du Colombier # Add the previous argument to base_compile. 268*593dc095SDavid du Colombier if test -z "$base_compile"; then 269*593dc095SDavid du Colombier base_compile="$lastarg" 270*593dc095SDavid du Colombier else 271*593dc095SDavid du Colombier base_compile="$base_compile $lastarg" 272*593dc095SDavid du Colombier fi 273*593dc095SDavid du Colombier done 274*593dc095SDavid du Colombier 275*593dc095SDavid du Colombier # Get the name of the library object. 276*593dc095SDavid du Colombier libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 277*593dc095SDavid du Colombier 278*593dc095SDavid du Colombier # Recognize several different file suffixes. 279*593dc095SDavid du Colombier xform='[cCFSfms]' 280*593dc095SDavid du Colombier case "$libobj" in 281*593dc095SDavid du Colombier *.ada) xform=ada ;; 282*593dc095SDavid du Colombier *.adb) xform=adb ;; 283*593dc095SDavid du Colombier *.ads) xform=ads ;; 284*593dc095SDavid du Colombier *.asm) xform=asm ;; 285*593dc095SDavid du Colombier *.c++) xform=c++ ;; 286*593dc095SDavid du Colombier *.cc) xform=cc ;; 287*593dc095SDavid du Colombier *.cpp) xform=cpp ;; 288*593dc095SDavid du Colombier *.cxx) xform=cxx ;; 289*593dc095SDavid du Colombier *.f90) xform=f90 ;; 290*593dc095SDavid du Colombier *.for) xform=for ;; 291*593dc095SDavid du Colombier esac 292*593dc095SDavid du Colombier 293*593dc095SDavid du Colombier libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 294*593dc095SDavid du Colombier 295*593dc095SDavid du Colombier case "$libobj" in 296*593dc095SDavid du Colombier *.lo) obj=`$echo "X$libobj" | $Xsed -e 's/\.lo$/.o/'` ;; 297*593dc095SDavid du Colombier *) 298*593dc095SDavid du Colombier $echo "$modename: cannot determine name of library object from \`$srcfile'" 1>&2 299*593dc095SDavid du Colombier exit 1 300*593dc095SDavid du Colombier ;; 301*593dc095SDavid du Colombier esac 302*593dc095SDavid du Colombier 303*593dc095SDavid du Colombier if test -z "$base_compile"; then 304*593dc095SDavid du Colombier $echo "$modename: you must specify a compilation command" 1>&2 305*593dc095SDavid du Colombier $echo "$help" 1>&2 306*593dc095SDavid du Colombier exit 1 307*593dc095SDavid du Colombier fi 308*593dc095SDavid du Colombier 309*593dc095SDavid du Colombier # Delete any leftover library objects. 310*593dc095SDavid du Colombier if test "$build_old_libs" = yes; then 311*593dc095SDavid du Colombier $run $rm $obj $libobj 312*593dc095SDavid du Colombier trap "$run $rm $obj $libobj; exit 1" 1 2 15 313*593dc095SDavid du Colombier else 314*593dc095SDavid du Colombier $run $rm $libobj 315*593dc095SDavid du Colombier trap "$run $rm $libobj; exit 1" 1 2 15 316*593dc095SDavid du Colombier fi 317*593dc095SDavid du Colombier 318*593dc095SDavid du Colombier # Only build a PIC object if we are building libtool libraries. 319*593dc095SDavid du Colombier if test "$build_libtool_libs" = yes; then 320*593dc095SDavid du Colombier # Without this assignment, base_compile gets emptied. 321*593dc095SDavid du Colombier fbsd_hideous_sh_bug=$base_compile 322*593dc095SDavid du Colombier 323*593dc095SDavid du Colombier # All platforms use -DPIC, to notify preprocessed assembler code. 324*593dc095SDavid du Colombier $show "$base_compile$pic_flag -DPIC $srcfile" 325*593dc095SDavid du Colombier if $run eval "$base_compile\$pic_flag -DPIC \$srcfile"; then : 326*593dc095SDavid du Colombier else 327*593dc095SDavid du Colombier test -n "$obj" && $run $rm $obj 328*593dc095SDavid du Colombier exit 1 329*593dc095SDavid du Colombier fi 330*593dc095SDavid du Colombier 331*593dc095SDavid du Colombier # If we have no pic_flag, then copy the object into place and finish. 332*593dc095SDavid du Colombier if test -z "$pic_flag"; then 333*593dc095SDavid du Colombier $show "$LN_S $obj $libobj" 334*593dc095SDavid du Colombier $run $LN_S $obj $libobj 335*593dc095SDavid du Colombier exit $? 336*593dc095SDavid du Colombier fi 337*593dc095SDavid du Colombier 338*593dc095SDavid du Colombier # Just move the object, then go on to compile the next one 339*593dc095SDavid du Colombier $show "$mv $obj $libobj" 340*593dc095SDavid du Colombier $run $mv $obj $libobj || exit 1 341*593dc095SDavid du Colombier 342*593dc095SDavid du Colombier # Allow error messages only from the first compilation. 343*593dc095SDavid du Colombier suppress_output=' >/dev/null 2>&1' 344*593dc095SDavid du Colombier fi 345*593dc095SDavid du Colombier 346*593dc095SDavid du Colombier # Only build a position-dependent object if we build old libraries. 347*593dc095SDavid du Colombier if test "$build_old_libs" = yes; then 348*593dc095SDavid du Colombier # Suppress compiler output if we already did a PIC compilation. 349*593dc095SDavid du Colombier $show "$base_compile $srcfile$suppress_output" 350*593dc095SDavid du Colombier if $run eval "$base_compile \$srcfile$suppress_output"; then : 351*593dc095SDavid du Colombier else 352*593dc095SDavid du Colombier $run $rm $obj $libobj 353*593dc095SDavid du Colombier exit 1 354*593dc095SDavid du Colombier fi 355*593dc095SDavid du Colombier fi 356*593dc095SDavid du Colombier 357*593dc095SDavid du Colombier # Create an invalid libtool object if no PIC, so that we do not 358*593dc095SDavid du Colombier # accidentally link it into a program. 359*593dc095SDavid du Colombier if test "$build_libtool_libs" != yes; then 360*593dc095SDavid du Colombier $show "echo timestamp > $libobj" 361*593dc095SDavid du Colombier $run eval "echo timestamp > \$libobj" || exit $? 362*593dc095SDavid du Colombier fi 363*593dc095SDavid du Colombier 364*593dc095SDavid du Colombier exit 0 365*593dc095SDavid du Colombier ;; 366*593dc095SDavid du Colombier 367*593dc095SDavid du Colombier # libtool link mode 368*593dc095SDavid du Colombier link) 369*593dc095SDavid du Colombier modename="$modename: link" 370*593dc095SDavid du Colombier CC="$nonopt" 371*593dc095SDavid du Colombier allow_undefined=yes 372*593dc095SDavid du Colombier compile_command="$CC" 373*593dc095SDavid du Colombier finalize_command="$CC" 374*593dc095SDavid du Colombier 375*593dc095SDavid du Colombier compile_shlibpath= 376*593dc095SDavid du Colombier finalize_shlibpath= 377*593dc095SDavid du Colombier deplibs= 378*593dc095SDavid du Colombier dlfiles= 379*593dc095SDavid du Colombier dlprefiles= 380*593dc095SDavid du Colombier export_dynamic=no 381*593dc095SDavid du Colombier hardcode_libdirs= 382*593dc095SDavid du Colombier libobjs= 383*593dc095SDavid du Colombier link_against_libtool_libs= 384*593dc095SDavid du Colombier ltlibs= 385*593dc095SDavid du Colombier objs= 386*593dc095SDavid du Colombier prev= 387*593dc095SDavid du Colombier prevarg= 388*593dc095SDavid du Colombier release= 389*593dc095SDavid du Colombier rpath= 390*593dc095SDavid du Colombier perm_rpath= 391*593dc095SDavid du Colombier temp_rpath= 392*593dc095SDavid du Colombier vinfo= 393*593dc095SDavid du Colombier 394*593dc095SDavid du Colombier # We need to know -static, to get the right output filenames. 395*593dc095SDavid du Colombier for arg 396*593dc095SDavid du Colombier do 397*593dc095SDavid du Colombier case "$arg" in 398*593dc095SDavid du Colombier -all-static | -static) 399*593dc095SDavid du Colombier if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 400*593dc095SDavid du Colombier $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 401*593dc095SDavid du Colombier fi 402*593dc095SDavid du Colombier build_libtool_libs=no 403*593dc095SDavid du Colombier build_old_libs=yes 404*593dc095SDavid du Colombier break 405*593dc095SDavid du Colombier ;; 406*593dc095SDavid du Colombier esac 407*593dc095SDavid du Colombier done 408*593dc095SDavid du Colombier 409*593dc095SDavid du Colombier # See if our shared archives depend on static archives. 410*593dc095SDavid du Colombier test -n "$old_archive_from_new_cmds" && build_old_libs=yes 411*593dc095SDavid du Colombier 412*593dc095SDavid du Colombier # Go through the arguments, transforming them on the way. 413*593dc095SDavid du Colombier for arg 414*593dc095SDavid du Colombier do 415*593dc095SDavid du Colombier # If the previous option needs an argument, assign it. 416*593dc095SDavid du Colombier if test -n "$prev"; then 417*593dc095SDavid du Colombier case "$prev" in 418*593dc095SDavid du Colombier output) 419*593dc095SDavid du Colombier compile_command="$compile_command @OUTPUT@" 420*593dc095SDavid du Colombier finalize_command="$finalize_command @OUTPUT@" 421*593dc095SDavid du Colombier ;; 422*593dc095SDavid du Colombier esac 423*593dc095SDavid du Colombier 424*593dc095SDavid du Colombier case "$prev" in 425*593dc095SDavid du Colombier dlfiles|dlprefiles) 426*593dc095SDavid du Colombier case "$arg" in 427*593dc095SDavid du Colombier *.la | *.lo) ;; # We handle these cases below. 428*593dc095SDavid du Colombier *) 429*593dc095SDavid du Colombier dlprefiles="$dlprefiles $arg" 430*593dc095SDavid du Colombier test "$prev" = dlfiles && dlfiles="$dlfiles $arg" 431*593dc095SDavid du Colombier prev= 432*593dc095SDavid du Colombier ;; 433*593dc095SDavid du Colombier esac 434*593dc095SDavid du Colombier ;; 435*593dc095SDavid du Colombier release) 436*593dc095SDavid du Colombier release="-$arg" 437*593dc095SDavid du Colombier prev= 438*593dc095SDavid du Colombier continue 439*593dc095SDavid du Colombier ;; 440*593dc095SDavid du Colombier rpath) 441*593dc095SDavid du Colombier rpath="$rpath $arg" 442*593dc095SDavid du Colombier prev= 443*593dc095SDavid du Colombier continue 444*593dc095SDavid du Colombier ;; 445*593dc095SDavid du Colombier *) 446*593dc095SDavid du Colombier eval "$prev=\"\$arg\"" 447*593dc095SDavid du Colombier prev= 448*593dc095SDavid du Colombier continue 449*593dc095SDavid du Colombier ;; 450*593dc095SDavid du Colombier esac 451*593dc095SDavid du Colombier fi 452*593dc095SDavid du Colombier 453*593dc095SDavid du Colombier prevarg="$arg" 454*593dc095SDavid du Colombier 455*593dc095SDavid du Colombier case "$arg" in 456*593dc095SDavid du Colombier -all-static) 457*593dc095SDavid du Colombier if test -n "$link_static_flag"; then 458*593dc095SDavid du Colombier compile_command="$compile_command $link_static_flag" 459*593dc095SDavid du Colombier finalize_command="$finalize_command $link_static_flag" 460*593dc095SDavid du Colombier fi 461*593dc095SDavid du Colombier continue 462*593dc095SDavid du Colombier ;; 463*593dc095SDavid du Colombier 464*593dc095SDavid du Colombier -allow-undefined) 465*593dc095SDavid du Colombier # FIXME: remove this flag sometime in the future. 466*593dc095SDavid du Colombier $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 467*593dc095SDavid du Colombier continue 468*593dc095SDavid du Colombier ;; 469*593dc095SDavid du Colombier 470*593dc095SDavid du Colombier -dlopen) 471*593dc095SDavid du Colombier prev=dlfiles 472*593dc095SDavid du Colombier continue 473*593dc095SDavid du Colombier ;; 474*593dc095SDavid du Colombier 475*593dc095SDavid du Colombier -dlpreopen) 476*593dc095SDavid du Colombier prev=dlprefiles 477*593dc095SDavid du Colombier continue 478*593dc095SDavid du Colombier ;; 479*593dc095SDavid du Colombier 480*593dc095SDavid du Colombier -export-dynamic) 481*593dc095SDavid du Colombier if test "$export_dynamic" != yes; then 482*593dc095SDavid du Colombier export_dynamic=yes 483*593dc095SDavid du Colombier if test -n "$export_dynamic_flag_spec"; then 484*593dc095SDavid du Colombier eval arg=\"$export_dynamic_flag_spec\" 485*593dc095SDavid du Colombier else 486*593dc095SDavid du Colombier arg= 487*593dc095SDavid du Colombier fi 488*593dc095SDavid du Colombier 489*593dc095SDavid du Colombier # Add the symbol object into the linking commands. 490*593dc095SDavid du Colombier compile_command="$compile_command @SYMFILE@" 491*593dc095SDavid du Colombier finalize_command="$finalize_command @SYMFILE@" 492*593dc095SDavid du Colombier fi 493*593dc095SDavid du Colombier ;; 494*593dc095SDavid du Colombier 495*593dc095SDavid du Colombier -L*) 496*593dc095SDavid du Colombier dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` 497*593dc095SDavid du Colombier case "$dir" in 498*593dc095SDavid du Colombier /* | [A-Za-z]:\\*) 499*593dc095SDavid du Colombier # Add the corresponding hardcode_libdir_flag, if it is not identical. 500*593dc095SDavid du Colombier ;; 501*593dc095SDavid du Colombier *) 502*593dc095SDavid du Colombier $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 503*593dc095SDavid du Colombier exit 1 504*593dc095SDavid du Colombier ;; 505*593dc095SDavid du Colombier esac 506*593dc095SDavid du Colombier deplibs="$deplibs $arg" 507*593dc095SDavid du Colombier ;; 508*593dc095SDavid du Colombier 509*593dc095SDavid du Colombier -l*) deplibs="$deplibs $arg" ;; 510*593dc095SDavid du Colombier 511*593dc095SDavid du Colombier -no-undefined) 512*593dc095SDavid du Colombier allow_undefined=no 513*593dc095SDavid du Colombier continue 514*593dc095SDavid du Colombier ;; 515*593dc095SDavid du Colombier 516*593dc095SDavid du Colombier -o) prev=output ;; 517*593dc095SDavid du Colombier 518*593dc095SDavid du Colombier -release) 519*593dc095SDavid du Colombier prev=release 520*593dc095SDavid du Colombier continue 521*593dc095SDavid du Colombier ;; 522*593dc095SDavid du Colombier 523*593dc095SDavid du Colombier -rpath) 524*593dc095SDavid du Colombier prev=rpath 525*593dc095SDavid du Colombier continue 526*593dc095SDavid du Colombier ;; 527*593dc095SDavid du Colombier 528*593dc095SDavid du Colombier -static) 529*593dc095SDavid du Colombier # If we have no pic_flag, then this is the same as -all-static. 530*593dc095SDavid du Colombier if test -z "$pic_flag" && test -n "$link_static_flag"; then 531*593dc095SDavid du Colombier compile_command="$compile_command $link_static_flag" 532*593dc095SDavid du Colombier finalize_command="$finalize_command $link_static_flag" 533*593dc095SDavid du Colombier fi 534*593dc095SDavid du Colombier continue 535*593dc095SDavid du Colombier ;; 536*593dc095SDavid du Colombier 537*593dc095SDavid du Colombier -version-info) 538*593dc095SDavid du Colombier prev=vinfo 539*593dc095SDavid du Colombier continue 540*593dc095SDavid du Colombier ;; 541*593dc095SDavid du Colombier 542*593dc095SDavid du Colombier # Some other compiler flag. 543*593dc095SDavid du Colombier -* | +*) 544*593dc095SDavid du Colombier # Unknown arguments in both finalize_command and compile_command need 545*593dc095SDavid du Colombier # to be aesthetically quoted because they are evaled later. 546*593dc095SDavid du Colombier arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 547*593dc095SDavid du Colombier case "$arg" in 548*593dc095SDavid du Colombier *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 549*593dc095SDavid du Colombier arg="\"$arg\"" 550*593dc095SDavid du Colombier ;; 551*593dc095SDavid du Colombier esac 552*593dc095SDavid du Colombier ;; 553*593dc095SDavid du Colombier 554*593dc095SDavid du Colombier *.o | *.a) 555*593dc095SDavid du Colombier # A standard object. 556*593dc095SDavid du Colombier objs="$objs $arg" 557*593dc095SDavid du Colombier ;; 558*593dc095SDavid du Colombier 559*593dc095SDavid du Colombier *.lo) 560*593dc095SDavid du Colombier # A library object. 561*593dc095SDavid du Colombier if test "$prev" = dlfiles; then 562*593dc095SDavid du Colombier dlfiles="$dlfiles $arg" 563*593dc095SDavid du Colombier if test "$build_libtool_libs" = yes; then 564*593dc095SDavid du Colombier prev= 565*593dc095SDavid du Colombier continue 566*593dc095SDavid du Colombier else 567*593dc095SDavid du Colombier # If libtool objects are unsupported, then we need to preload. 568*593dc095SDavid du Colombier prev=dlprefiles 569*593dc095SDavid du Colombier fi 570*593dc095SDavid du Colombier fi 571*593dc095SDavid du Colombier 572*593dc095SDavid du Colombier if test "$prev" = dlprefiles; then 573*593dc095SDavid du Colombier # Preload the old-style object. 574*593dc095SDavid du Colombier dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e 's/\.lo$/\.o/'` 575*593dc095SDavid du Colombier prev= 576*593dc095SDavid du Colombier fi 577*593dc095SDavid du Colombier libobjs="$libobjs $arg" 578*593dc095SDavid du Colombier ;; 579*593dc095SDavid du Colombier 580*593dc095SDavid du Colombier *.la) 581*593dc095SDavid du Colombier # A libtool-controlled library. 582*593dc095SDavid du Colombier 583*593dc095SDavid du Colombier dlname= 584*593dc095SDavid du Colombier libdir= 585*593dc095SDavid du Colombier library_names= 586*593dc095SDavid du Colombier old_library= 587*593dc095SDavid du Colombier 588*593dc095SDavid du Colombier # Check to see that this really is a libtool archive. 589*593dc095SDavid du Colombier if (sed -e '2q' $arg | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : 590*593dc095SDavid du Colombier else 591*593dc095SDavid du Colombier $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 592*593dc095SDavid du Colombier exit 1 593*593dc095SDavid du Colombier fi 594*593dc095SDavid du Colombier 595*593dc095SDavid du Colombier # If there is no directory component, then add one. 596*593dc095SDavid du Colombier case "$arg" in 597*593dc095SDavid du Colombier */* | *\\*) . $arg ;; 598*593dc095SDavid du Colombier *) . ./$arg ;; 599*593dc095SDavid du Colombier esac 600*593dc095SDavid du Colombier 601*593dc095SDavid du Colombier if test -z "$libdir"; then 602*593dc095SDavid du Colombier $echo "$modename: \`$arg' contains no -rpath information" 1>&2 603*593dc095SDavid du Colombier exit 1 604*593dc095SDavid du Colombier fi 605*593dc095SDavid du Colombier 606*593dc095SDavid du Colombier # Get the name of the library we link against. 607*593dc095SDavid du Colombier linklib= 608*593dc095SDavid du Colombier for l in $old_library $library_names; do 609*593dc095SDavid du Colombier linklib="$l" 610*593dc095SDavid du Colombier done 611*593dc095SDavid du Colombier 612*593dc095SDavid du Colombier if test -z "$linklib"; then 613*593dc095SDavid du Colombier $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 614*593dc095SDavid du Colombier exit 1 615*593dc095SDavid du Colombier fi 616*593dc095SDavid du Colombier 617*593dc095SDavid du Colombier # Find the relevant object directory and library name. 618*593dc095SDavid du Colombier name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` 619*593dc095SDavid du Colombier dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 620*593dc095SDavid du Colombier if test "X$dir" = "X$arg"; then 621*593dc095SDavid du Colombier dir="$objdir" 622*593dc095SDavid du Colombier else 623*593dc095SDavid du Colombier dir="$dir/$objdir" 624*593dc095SDavid du Colombier fi 625*593dc095SDavid du Colombier 626*593dc095SDavid du Colombier # This library was specified with -dlopen. 627*593dc095SDavid du Colombier if test "$prev" = dlfiles; then 628*593dc095SDavid du Colombier dlfiles="$dlfiles $arg" 629*593dc095SDavid du Colombier if test -z "$dlname"; then 630*593dc095SDavid du Colombier # If there is no dlname, we need to preload. 631*593dc095SDavid du Colombier prev=dlprefiles 632*593dc095SDavid du Colombier else 633*593dc095SDavid du Colombier # We should not create a dependency on this library, but we 634*593dc095SDavid du Colombier # may need any libraries it requires. 635*593dc095SDavid du Colombier compile_command="$compile_command$dependency_libs" 636*593dc095SDavid du Colombier finalize_command="$finalize_command$dependency_libs" 637*593dc095SDavid du Colombier prev= 638*593dc095SDavid du Colombier continue 639*593dc095SDavid du Colombier fi 640*593dc095SDavid du Colombier fi 641*593dc095SDavid du Colombier 642*593dc095SDavid du Colombier # The library was specified with -dlpreopen. 643*593dc095SDavid du Colombier if test "$prev" = dlprefiles; then 644*593dc095SDavid du Colombier # Prefer using a static library (so that no silly _DYNAMIC symbols 645*593dc095SDavid du Colombier # are required to link). 646*593dc095SDavid du Colombier if test -n "$old_library"; then 647*593dc095SDavid du Colombier dlprefiles="$dlprefiles $dir/$old_library" 648*593dc095SDavid du Colombier else 649*593dc095SDavid du Colombier dlprefiles="$dlprefiles $dir/$linklib" 650*593dc095SDavid du Colombier fi 651*593dc095SDavid du Colombier prev= 652*593dc095SDavid du Colombier fi 653*593dc095SDavid du Colombier 654*593dc095SDavid du Colombier if test "$build_libtool_libs" = yes && test -n "$library_names"; then 655*593dc095SDavid du Colombier link_against_libtool_libs="$link_against_libtool_libs $arg" 656*593dc095SDavid du Colombier if test -n "$shlibpath_var"; then 657*593dc095SDavid du Colombier # Make sure the rpath contains only unique directories. 658*593dc095SDavid du Colombier case "$temp_rpath " in 659*593dc095SDavid du Colombier *" $dir "*) ;; 660*593dc095SDavid du Colombier *) temp_rpath="$temp_rpath $dir" ;; 661*593dc095SDavid du Colombier esac 662*593dc095SDavid du Colombier fi 663*593dc095SDavid du Colombier 664*593dc095SDavid du Colombier # This is the magic to use -rpath. 665*593dc095SDavid du Colombier if test -n "$hardcode_libdir_flag_spec"; then 666*593dc095SDavid du Colombier if test -n "$hardcode_libdir_separator"; then 667*593dc095SDavid du Colombier if test -z "$hardcode_libdirs"; then 668*593dc095SDavid du Colombier # Put the magic libdir with the hardcode flag. 669*593dc095SDavid du Colombier hardcode_libdirs="$libdir" 670*593dc095SDavid du Colombier libdir="@HARDCODE_LIBDIRS@" 671*593dc095SDavid du Colombier else 672*593dc095SDavid du Colombier # Just accumulate the unique libdirs. 673*593dc095SDavid du Colombier case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in 674*593dc095SDavid du Colombier *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 675*593dc095SDavid du Colombier ;; 676*593dc095SDavid du Colombier *) 677*593dc095SDavid du Colombier hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 678*593dc095SDavid du Colombier ;; 679*593dc095SDavid du Colombier esac 680*593dc095SDavid du Colombier libdir= 681*593dc095SDavid du Colombier fi 682*593dc095SDavid du Colombier fi 683*593dc095SDavid du Colombier 684*593dc095SDavid du Colombier if test -n "$libdir"; then 685*593dc095SDavid du Colombier eval flag=\"$hardcode_libdir_flag_spec\" 686*593dc095SDavid du Colombier 687*593dc095SDavid du Colombier compile_command="$compile_command $flag" 688*593dc095SDavid du Colombier finalize_command="$finalize_command $flag" 689*593dc095SDavid du Colombier fi 690*593dc095SDavid du Colombier elif test -n "$runpath_var"; then 691*593dc095SDavid du Colombier # Do the same for the permanent run path. 692*593dc095SDavid du Colombier case "$perm_rpath " in 693*593dc095SDavid du Colombier *" $libdir "*) ;; 694*593dc095SDavid du Colombier *) perm_rpath="$perm_rpath $libdir" ;; 695*593dc095SDavid du Colombier esac 696*593dc095SDavid du Colombier fi 697*593dc095SDavid du Colombier 698*593dc095SDavid du Colombier 699*593dc095SDavid du Colombier case "$hardcode_action" in 700*593dc095SDavid du Colombier immediate) 701*593dc095SDavid du Colombier if test "$hardcode_direct" = no; then 702*593dc095SDavid du Colombier compile_command="$compile_command $dir/$linklib" 703*593dc095SDavid du Colombier elif test "$hardcode_minus_L" = no; then 704*593dc095SDavid du Colombier compile_command="$compile_command -L$dir -l$name" 705*593dc095SDavid du Colombier elif test "$hardcode_shlibpath_var" = no; then 706*593dc095SDavid du Colombier compile_shlibpath="$compile_shlibpath$dir:" 707*593dc095SDavid du Colombier compile_command="$compile_command -l$name" 708*593dc095SDavid du Colombier fi 709*593dc095SDavid du Colombier ;; 710*593dc095SDavid du Colombier 711*593dc095SDavid du Colombier relink) 712*593dc095SDavid du Colombier # We need an absolute path. 713*593dc095SDavid du Colombier case "$dir" in 714*593dc095SDavid du Colombier /* | [A-Za-z]:\\*) ;; 715*593dc095SDavid du Colombier *) 716*593dc095SDavid du Colombier absdir=`cd "$dir" && pwd` 717*593dc095SDavid du Colombier if test -z "$absdir"; then 718*593dc095SDavid du Colombier $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 719*593dc095SDavid du Colombier exit 1 720*593dc095SDavid du Colombier fi 721*593dc095SDavid du Colombier dir="$absdir" 722*593dc095SDavid du Colombier ;; 723*593dc095SDavid du Colombier esac 724*593dc095SDavid du Colombier 725*593dc095SDavid du Colombier if test "$hardcode_direct" = yes; then 726*593dc095SDavid du Colombier compile_command="$compile_command $dir/$linklib" 727*593dc095SDavid du Colombier elif test "$hardcode_minus_L" = yes; then 728*593dc095SDavid du Colombier compile_command="$compile_command -L$dir -l$name" 729*593dc095SDavid du Colombier elif test "$hardcode_shlibpath_var" = yes; then 730*593dc095SDavid du Colombier compile_shlibpath="$compile_shlibpath$dir:" 731*593dc095SDavid du Colombier compile_command="$compile_command -l$name" 732*593dc095SDavid du Colombier fi 733*593dc095SDavid du Colombier ;; 734*593dc095SDavid du Colombier 735*593dc095SDavid du Colombier *) 736*593dc095SDavid du Colombier $echo "$modename: \`$hardcode_action' is an unknown hardcode action" 1>&2 737*593dc095SDavid du Colombier exit 1 738*593dc095SDavid du Colombier ;; 739*593dc095SDavid du Colombier esac 740*593dc095SDavid du Colombier 741*593dc095SDavid du Colombier # Finalize command for both is simple: just hardcode it. 742*593dc095SDavid du Colombier if test "$hardcode_direct" = yes; then 743*593dc095SDavid du Colombier finalize_command="$finalize_command $libdir/$linklib" 744*593dc095SDavid du Colombier elif test "$hardcode_minus_L" = yes; then 745*593dc095SDavid du Colombier finalize_command="$finalize_command -L$libdir -l$name" 746*593dc095SDavid du Colombier elif test "$hardcode_shlibpath_var" = yes; then 747*593dc095SDavid du Colombier finalize_shlibpath="$finalize_shlibpath$libdir:" 748*593dc095SDavid du Colombier finalize_command="$finalize_command -l$name" 749*593dc095SDavid du Colombier else 750*593dc095SDavid du Colombier # We cannot seem to hardcode it, guess we'll fake it. 751*593dc095SDavid du Colombier finalize_command="$finalize_command -L$libdir -l$name" 752*593dc095SDavid du Colombier fi 753*593dc095SDavid du Colombier else 754*593dc095SDavid du Colombier # Transform directly to old archives if we don't build new libraries. 755*593dc095SDavid du Colombier if test -n "$pic_flag" && test -z "$old_library"; then 756*593dc095SDavid du Colombier $echo "$modename: cannot find static library for \`$arg'" 1>&2 757*593dc095SDavid du Colombier exit 1 758*593dc095SDavid du Colombier fi 759*593dc095SDavid du Colombier 760*593dc095SDavid du Colombier # Here we assume that one of hardcode_direct or hardcode_minus_L 761*593dc095SDavid du Colombier # is not unsupported. This is valid on all known static and 762*593dc095SDavid du Colombier # shared platforms. 763*593dc095SDavid du Colombier if test "$hardcode_direct" != unsupported; then 764*593dc095SDavid du Colombier test -n "$old_library" && linklib="$old_library" 765*593dc095SDavid du Colombier compile_command="$compile_command $dir/$linklib" 766*593dc095SDavid du Colombier finalize_command="$finalize_command $dir/$linklib" 767*593dc095SDavid du Colombier else 768*593dc095SDavid du Colombier compile_command="$compile_command -L$dir -l$name" 769*593dc095SDavid du Colombier finalize_command="$finalize_command -L$dir -l$name" 770*593dc095SDavid du Colombier fi 771*593dc095SDavid du Colombier fi 772*593dc095SDavid du Colombier 773*593dc095SDavid du Colombier # Add in any libraries that this one depends upon. 774*593dc095SDavid du Colombier compile_command="$compile_command$dependency_libs" 775*593dc095SDavid du Colombier finalize_command="$finalize_command$dependency_libs" 776*593dc095SDavid du Colombier continue 777*593dc095SDavid du Colombier ;; 778*593dc095SDavid du Colombier 779*593dc095SDavid du Colombier # Some other compiler argument. 780*593dc095SDavid du Colombier *) 781*593dc095SDavid du Colombier # Unknown arguments in both finalize_command and compile_command need 782*593dc095SDavid du Colombier # to be aesthetically quoted because they are evaled later. 783*593dc095SDavid du Colombier arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 784*593dc095SDavid du Colombier case "$arg" in 785*593dc095SDavid du Colombier *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 786*593dc095SDavid du Colombier arg="\"$arg\"" 787*593dc095SDavid du Colombier ;; 788*593dc095SDavid du Colombier esac 789*593dc095SDavid du Colombier ;; 790*593dc095SDavid du Colombier esac 791*593dc095SDavid du Colombier 792*593dc095SDavid du Colombier # Now actually substitute the argument into the commands. 793*593dc095SDavid du Colombier if test -n "$arg"; then 794*593dc095SDavid du Colombier compile_command="$compile_command $arg" 795*593dc095SDavid du Colombier finalize_command="$finalize_command $arg" 796*593dc095SDavid du Colombier fi 797*593dc095SDavid du Colombier done 798*593dc095SDavid du Colombier 799*593dc095SDavid du Colombier if test -n "$prev"; then 800*593dc095SDavid du Colombier $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 801*593dc095SDavid du Colombier $echo "$help" 1>&2 802*593dc095SDavid du Colombier exit 1 803*593dc095SDavid du Colombier fi 804*593dc095SDavid du Colombier 805*593dc095SDavid du Colombier if test -n "$vinfo" && test -n "$release"; then 806*593dc095SDavid du Colombier $echo "$modename: you cannot specify both \`-version-info' and \`-release'" 1>&2 807*593dc095SDavid du Colombier $echo "$help" 1>&2 808*593dc095SDavid du Colombier exit 1 809*593dc095SDavid du Colombier fi 810*593dc095SDavid du Colombier 811*593dc095SDavid du Colombier oldlib= 812*593dc095SDavid du Colombier oldobjs= 813*593dc095SDavid du Colombier case "$output" in 814*593dc095SDavid du Colombier "") 815*593dc095SDavid du Colombier $echo "$modename: you must specify an output file" 1>&2 816*593dc095SDavid du Colombier $echo "$help" 1>&2 817*593dc095SDavid du Colombier exit 1 818*593dc095SDavid du Colombier ;; 819*593dc095SDavid du Colombier 820*593dc095SDavid du Colombier */* | *\\*) 821*593dc095SDavid du Colombier $echo "$modename: output file \`$output' must have no directory components" 1>&2 822*593dc095SDavid du Colombier exit 1 823*593dc095SDavid du Colombier ;; 824*593dc095SDavid du Colombier 825*593dc095SDavid du Colombier *.a) 826*593dc095SDavid du Colombier # Now set the variables for building old libraries. 827*593dc095SDavid du Colombier build_libtool_libs=no 828*593dc095SDavid du Colombier build_old_libs=yes 829*593dc095SDavid du Colombier oldlib="$output" 830*593dc095SDavid du Colombier $show "$rm $oldlib" 831*593dc095SDavid du Colombier $run $rm $oldlib 832*593dc095SDavid du Colombier ;; 833*593dc095SDavid du Colombier 834*593dc095SDavid du Colombier *.la) 835*593dc095SDavid du Colombier # Make sure we only generate libraries of the form `libNAME.la'. 836*593dc095SDavid du Colombier case "$output" in 837*593dc095SDavid du Colombier lib*) ;; 838*593dc095SDavid du Colombier *) 839*593dc095SDavid du Colombier $echo "$modename: libtool library \`$arg' must begin with \`lib'" 1>&2 840*593dc095SDavid du Colombier $echo "$help" 1>&2 841*593dc095SDavid du Colombier exit 1 842*593dc095SDavid du Colombier ;; 843*593dc095SDavid du Colombier esac 844*593dc095SDavid du Colombier 845*593dc095SDavid du Colombier name=`$echo "X$output" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 846*593dc095SDavid du Colombier eval libname=\"$libname_spec\" 847*593dc095SDavid du Colombier 848*593dc095SDavid du Colombier # All the library-specific variables (install_libdir is set above). 849*593dc095SDavid du Colombier library_names= 850*593dc095SDavid du Colombier old_library= 851*593dc095SDavid du Colombier dlname= 852*593dc095SDavid du Colombier current=0 853*593dc095SDavid du Colombier revision=0 854*593dc095SDavid du Colombier age=0 855*593dc095SDavid du Colombier 856*593dc095SDavid du Colombier if test -n "$objs"; then 857*593dc095SDavid du Colombier $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 858*593dc095SDavid du Colombier exit 1 859*593dc095SDavid du Colombier fi 860*593dc095SDavid du Colombier 861*593dc095SDavid du Colombier # How the heck are we supposed to write a wrapper for a shared library? 862*593dc095SDavid du Colombier if test -n "$link_against_libtool_libs"; then 863*593dc095SDavid du Colombier $echo "$modename: libtool library \`$output' may not depend on uninstalled libraries:$link_against_libtool_libs" 1>&2 864*593dc095SDavid du Colombier exit 1 865*593dc095SDavid du Colombier fi 866*593dc095SDavid du Colombier 867*593dc095SDavid du Colombier if test -n "$dlfiles$dlprefiles"; then 868*593dc095SDavid du Colombier $echo "$modename: warning: \`-dlopen' is ignored while creating libtool libraries" 1>&2 869*593dc095SDavid du Colombier # Nullify the symbol file. 870*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 871*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 872*593dc095SDavid du Colombier fi 873*593dc095SDavid du Colombier 874*593dc095SDavid du Colombier if test -z "$rpath"; then 875*593dc095SDavid du Colombier $echo "$modename: you must specify an installation directory with \`-rpath'" 1>&2 876*593dc095SDavid du Colombier $echo "$help" 1>&2 877*593dc095SDavid du Colombier exit 1 878*593dc095SDavid du Colombier fi 879*593dc095SDavid du Colombier 880*593dc095SDavid du Colombier set dummy $rpath 881*593dc095SDavid du Colombier if test $# -gt 2; then 882*593dc095SDavid du Colombier $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 883*593dc095SDavid du Colombier fi 884*593dc095SDavid du Colombier install_libdir="$2" 885*593dc095SDavid du Colombier 886*593dc095SDavid du Colombier # Parse the version information argument. 887*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' 888*593dc095SDavid du Colombier set dummy $vinfo 889*593dc095SDavid du Colombier IFS="$save_ifs" 890*593dc095SDavid du Colombier 891*593dc095SDavid du Colombier if test -n "$5"; then 892*593dc095SDavid du Colombier $echo "$modename: too many parameters to \`-version-info'" 1>&2 893*593dc095SDavid du Colombier $echo "$help" 1>&2 894*593dc095SDavid du Colombier exit 1 895*593dc095SDavid du Colombier fi 896*593dc095SDavid du Colombier 897*593dc095SDavid du Colombier test -n "$2" && current="$2" 898*593dc095SDavid du Colombier test -n "$3" && revision="$3" 899*593dc095SDavid du Colombier test -n "$4" && age="$4" 900*593dc095SDavid du Colombier 901*593dc095SDavid du Colombier # Check that each of the things are valid numbers. 902*593dc095SDavid du Colombier case "$current" in 903*593dc095SDavid du Colombier 0 | [1-9] | [1-9][0-9]*) ;; 904*593dc095SDavid du Colombier *) 905*593dc095SDavid du Colombier $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 906*593dc095SDavid du Colombier $echo "$modename: \`$vinfo' is not valid version information" 1>&2 907*593dc095SDavid du Colombier exit 1 908*593dc095SDavid du Colombier ;; 909*593dc095SDavid du Colombier esac 910*593dc095SDavid du Colombier 911*593dc095SDavid du Colombier case "$revision" in 912*593dc095SDavid du Colombier 0 | [1-9] | [1-9][0-9]*) ;; 913*593dc095SDavid du Colombier *) 914*593dc095SDavid du Colombier $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 915*593dc095SDavid du Colombier $echo "$modename: \`$vinfo' is not valid version information" 1>&2 916*593dc095SDavid du Colombier exit 1 917*593dc095SDavid du Colombier ;; 918*593dc095SDavid du Colombier esac 919*593dc095SDavid du Colombier 920*593dc095SDavid du Colombier case "$age" in 921*593dc095SDavid du Colombier 0 | [1-9] | [1-9][0-9]*) ;; 922*593dc095SDavid du Colombier *) 923*593dc095SDavid du Colombier $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 924*593dc095SDavid du Colombier $echo "$modename: \`$vinfo' is not valid version information" 1>&2 925*593dc095SDavid du Colombier exit 1 926*593dc095SDavid du Colombier ;; 927*593dc095SDavid du Colombier esac 928*593dc095SDavid du Colombier 929*593dc095SDavid du Colombier if test $age -gt $current; then 930*593dc095SDavid du Colombier $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 931*593dc095SDavid du Colombier $echo "$modename: \`$vinfo' is not valid version information" 1>&2 932*593dc095SDavid du Colombier exit 1 933*593dc095SDavid du Colombier fi 934*593dc095SDavid du Colombier 935*593dc095SDavid du Colombier # Calculate the version variables. 936*593dc095SDavid du Colombier version_vars="version_type current age revision" 937*593dc095SDavid du Colombier case "$version_type" in 938*593dc095SDavid du Colombier none) ;; 939*593dc095SDavid du Colombier 940*593dc095SDavid du Colombier linux) 941*593dc095SDavid du Colombier version_vars="$version_vars major versuffix" 942*593dc095SDavid du Colombier major=`expr $current - $age` 943*593dc095SDavid du Colombier versuffix="$major.$age.$revision" 944*593dc095SDavid du Colombier ;; 945*593dc095SDavid du Colombier 946*593dc095SDavid du Colombier osf) 947*593dc095SDavid du Colombier version_vars="$version_vars versuffix verstring" 948*593dc095SDavid du Colombier major=`expr $current - $age` 949*593dc095SDavid du Colombier versuffix="$current.$age.$revision" 950*593dc095SDavid du Colombier verstring="$versuffix" 951*593dc095SDavid du Colombier 952*593dc095SDavid du Colombier # Add in all the interfaces that we are compatible with. 953*593dc095SDavid du Colombier loop=$age 954*593dc095SDavid du Colombier while test $loop != 0; do 955*593dc095SDavid du Colombier iface=`expr $current - $loop` 956*593dc095SDavid du Colombier loop=`expr $loop - 1` 957*593dc095SDavid du Colombier verstring="$verstring:${iface}.0" 958*593dc095SDavid du Colombier done 959*593dc095SDavid du Colombier 960*593dc095SDavid du Colombier # Make executables depend on our current version. 961*593dc095SDavid du Colombier verstring="$verstring:${current}.0" 962*593dc095SDavid du Colombier ;; 963*593dc095SDavid du Colombier 964*593dc095SDavid du Colombier sunos) 965*593dc095SDavid du Colombier version_vars="$version_vars major versuffix" 966*593dc095SDavid du Colombier major="$current" 967*593dc095SDavid du Colombier versuffix="$current.$revision" 968*593dc095SDavid du Colombier ;; 969*593dc095SDavid du Colombier 970*593dc095SDavid du Colombier *) 971*593dc095SDavid du Colombier $echo "$modename: unknown library version type \`$version_type'" 1>&2 972*593dc095SDavid du Colombier echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 973*593dc095SDavid du Colombier exit 1 974*593dc095SDavid du Colombier ;; 975*593dc095SDavid du Colombier esac 976*593dc095SDavid du Colombier 977*593dc095SDavid du Colombier # Create the output directory, or remove our outputs if we need to. 978*593dc095SDavid du Colombier if test -d $objdir; then 979*593dc095SDavid du Colombier $show "$rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.*" 980*593dc095SDavid du Colombier $run $rm $objdir/$output $objdir/$libname.* $objdir/${libname}${release}.* 981*593dc095SDavid du Colombier else 982*593dc095SDavid du Colombier $show "$mkdir $objdir" 983*593dc095SDavid du Colombier $run $mkdir $objdir 984*593dc095SDavid du Colombier status=$? 985*593dc095SDavid du Colombier if test $status -eq 0 || test -d $objdir; then : 986*593dc095SDavid du Colombier else 987*593dc095SDavid du Colombier exit $status 988*593dc095SDavid du Colombier fi 989*593dc095SDavid du Colombier fi 990*593dc095SDavid du Colombier 991*593dc095SDavid du Colombier # Check to see if the archive will have undefined symbols. 992*593dc095SDavid du Colombier if test "$allow_undefined" = yes; then 993*593dc095SDavid du Colombier if test "$allow_undefined_flag" = unsupported; then 994*593dc095SDavid du Colombier $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 995*593dc095SDavid du Colombier build_libtool_libs=no 996*593dc095SDavid du Colombier build_old_libs=yes 997*593dc095SDavid du Colombier fi 998*593dc095SDavid du Colombier else 999*593dc095SDavid du Colombier # Don't allow undefined symbols. 1000*593dc095SDavid du Colombier allow_undefined_flag="$no_undefined_flag" 1001*593dc095SDavid du Colombier fi 1002*593dc095SDavid du Colombier 1003*593dc095SDavid du Colombier # Add libc to deplibs on all systems. 1004*593dc095SDavid du Colombier dependency_libs="$deplibs" 1005*593dc095SDavid du Colombier deplibs="$deplibs -lc" 1006*593dc095SDavid du Colombier 1007*593dc095SDavid du Colombier if test "$build_libtool_libs" = yes; then 1008*593dc095SDavid du Colombier # Get the real and link names of the library. 1009*593dc095SDavid du Colombier eval library_names=\"$library_names_spec\" 1010*593dc095SDavid du Colombier set dummy $library_names 1011*593dc095SDavid du Colombier realname="$2" 1012*593dc095SDavid du Colombier shift; shift 1013*593dc095SDavid du Colombier 1014*593dc095SDavid du Colombier if test -n "$soname_spec"; then 1015*593dc095SDavid du Colombier eval soname=\"$soname_spec\" 1016*593dc095SDavid du Colombier else 1017*593dc095SDavid du Colombier soname="$realname" 1018*593dc095SDavid du Colombier fi 1019*593dc095SDavid du Colombier 1020*593dc095SDavid du Colombier lib="$objdir/$realname" 1021*593dc095SDavid du Colombier for link 1022*593dc095SDavid du Colombier do 1023*593dc095SDavid du Colombier linknames="$linknames $link" 1024*593dc095SDavid du Colombier done 1025*593dc095SDavid du Colombier 1026*593dc095SDavid du Colombier # Use standard objects if they are PIC. 1027*593dc095SDavid du Colombier test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//g'` 1028*593dc095SDavid du Colombier 1029*593dc095SDavid du Colombier # Do each of the archive commands. 1030*593dc095SDavid du Colombier eval cmds=\"$archive_cmds\" 1031*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 1032*593dc095SDavid du Colombier for cmd in $cmds; do 1033*593dc095SDavid du Colombier IFS="$save_ifs" 1034*593dc095SDavid du Colombier $show "$cmd" 1035*593dc095SDavid du Colombier $run eval "$cmd" || exit $? 1036*593dc095SDavid du Colombier done 1037*593dc095SDavid du Colombier IFS="$save_ifs" 1038*593dc095SDavid du Colombier 1039*593dc095SDavid du Colombier # Create links to the real library. 1040*593dc095SDavid du Colombier for linkname in $linknames; do 1041*593dc095SDavid du Colombier $show "(cd $objdir && $LN_S $realname $linkname)" 1042*593dc095SDavid du Colombier $run eval '(cd $objdir && $LN_S $realname $linkname)' || exit $? 1043*593dc095SDavid du Colombier done 1044*593dc095SDavid du Colombier 1045*593dc095SDavid du Colombier # If -export-dynamic was specified, set the dlname. 1046*593dc095SDavid du Colombier if test "$export_dynamic" = yes; then 1047*593dc095SDavid du Colombier # On all known operating systems, these are identical. 1048*593dc095SDavid du Colombier dlname="$soname" 1049*593dc095SDavid du Colombier fi 1050*593dc095SDavid du Colombier fi 1051*593dc095SDavid du Colombier 1052*593dc095SDavid du Colombier # Now set the variables for building old libraries. 1053*593dc095SDavid du Colombier oldlib="$objdir/$libname.a" 1054*593dc095SDavid du Colombier ;; 1055*593dc095SDavid du Colombier 1056*593dc095SDavid du Colombier *.lo | *.o) 1057*593dc095SDavid du Colombier if test -n "$link_against_libtool_libs"; then 1058*593dc095SDavid du Colombier $echo "$modename: error: cannot link libtool libraries into reloadable objects" 1>&2 1059*593dc095SDavid du Colombier exit 1 1060*593dc095SDavid du Colombier fi 1061*593dc095SDavid du Colombier 1062*593dc095SDavid du Colombier if test -n "$deplibs"; then 1063*593dc095SDavid du Colombier $echo "$modename: warning: \`-l' and \`-L' are ignored while creating objects" 1>&2 1064*593dc095SDavid du Colombier fi 1065*593dc095SDavid du Colombier 1066*593dc095SDavid du Colombier if test -n "$dlfiles$dlprefiles"; then 1067*593dc095SDavid du Colombier $echo "$modename: warning: \`-dlopen' is ignored while creating objects" 1>&2 1068*593dc095SDavid du Colombier # Nullify the symbol file. 1069*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 1070*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 1071*593dc095SDavid du Colombier fi 1072*593dc095SDavid du Colombier 1073*593dc095SDavid du Colombier if test -n "$rpath"; then 1074*593dc095SDavid du Colombier $echo "$modename: warning: \`-rpath' is ignored while creating objects" 1>&2 1075*593dc095SDavid du Colombier fi 1076*593dc095SDavid du Colombier 1077*593dc095SDavid du Colombier if test -n "$vinfo"; then 1078*593dc095SDavid du Colombier $echo "$modename: warning: \`-version-info' is ignored while creating objects" 1>&2 1079*593dc095SDavid du Colombier fi 1080*593dc095SDavid du Colombier 1081*593dc095SDavid du Colombier if test -n "$release"; then 1082*593dc095SDavid du Colombier $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 1083*593dc095SDavid du Colombier fi 1084*593dc095SDavid du Colombier 1085*593dc095SDavid du Colombier case "$output" in 1086*593dc095SDavid du Colombier *.lo) 1087*593dc095SDavid du Colombier if test -n "$objs"; then 1088*593dc095SDavid du Colombier $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 1089*593dc095SDavid du Colombier exit 1 1090*593dc095SDavid du Colombier fi 1091*593dc095SDavid du Colombier libobj="$output" 1092*593dc095SDavid du Colombier obj=`$echo "X$output" | $Xsed -e 's/\.lo$/.o/'` 1093*593dc095SDavid du Colombier ;; 1094*593dc095SDavid du Colombier *) 1095*593dc095SDavid du Colombier libobj= 1096*593dc095SDavid du Colombier obj="$output" 1097*593dc095SDavid du Colombier ;; 1098*593dc095SDavid du Colombier esac 1099*593dc095SDavid du Colombier 1100*593dc095SDavid du Colombier # Delete the old objects. 1101*593dc095SDavid du Colombier $run $rm $obj $libobj 1102*593dc095SDavid du Colombier 1103*593dc095SDavid du Colombier # Create the old-style object. 1104*593dc095SDavid du Colombier reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` 1105*593dc095SDavid du Colombier 1106*593dc095SDavid du Colombier output="$obj" 1107*593dc095SDavid du Colombier eval cmds=\"$reload_cmds\" 1108*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 1109*593dc095SDavid du Colombier for cmd in $cmds; do 1110*593dc095SDavid du Colombier IFS="$save_ifs" 1111*593dc095SDavid du Colombier $show "$cmd" 1112*593dc095SDavid du Colombier $run eval "$cmd" || exit $? 1113*593dc095SDavid du Colombier done 1114*593dc095SDavid du Colombier IFS="$save_ifs" 1115*593dc095SDavid du Colombier 1116*593dc095SDavid du Colombier # Exit if we aren't doing a library object file. 1117*593dc095SDavid du Colombier test -z "$libobj" && exit 0 1118*593dc095SDavid du Colombier 1119*593dc095SDavid du Colombier if test "$build_libtool_libs" != yes; then 1120*593dc095SDavid du Colombier # Create an invalid libtool object if no PIC, so that we don't 1121*593dc095SDavid du Colombier # accidentally link it into a program. 1122*593dc095SDavid du Colombier $show "echo timestamp > $libobj" 1123*593dc095SDavid du Colombier $run eval "echo timestamp > $libobj" || exit $? 1124*593dc095SDavid du Colombier exit 0 1125*593dc095SDavid du Colombier fi 1126*593dc095SDavid du Colombier 1127*593dc095SDavid du Colombier if test -n "$pic_flag"; then 1128*593dc095SDavid du Colombier # Only do commands if we really have different PIC objects. 1129*593dc095SDavid du Colombier reload_objs="$libobjs" 1130*593dc095SDavid du Colombier output="$libobj" 1131*593dc095SDavid du Colombier eval cmds=\"$reload_cmds\" 1132*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 1133*593dc095SDavid du Colombier for cmd in $cmds; do 1134*593dc095SDavid du Colombier IFS="$save_ifs" 1135*593dc095SDavid du Colombier $show "$cmd" 1136*593dc095SDavid du Colombier $run eval "$cmd" || exit $? 1137*593dc095SDavid du Colombier done 1138*593dc095SDavid du Colombier IFS="$save_ifs" 1139*593dc095SDavid du Colombier else 1140*593dc095SDavid du Colombier # Just create a symlink. 1141*593dc095SDavid du Colombier $show "$LN_S $obj $libobj" 1142*593dc095SDavid du Colombier $run $LN_S $obj $libobj || exit 1 1143*593dc095SDavid du Colombier fi 1144*593dc095SDavid du Colombier 1145*593dc095SDavid du Colombier exit 0 1146*593dc095SDavid du Colombier ;; 1147*593dc095SDavid du Colombier 1148*593dc095SDavid du Colombier *) 1149*593dc095SDavid du Colombier if test -n "$vinfo"; then 1150*593dc095SDavid du Colombier $echo "$modename: warning: \`-version-info' is ignored while linking programs" 1>&2 1151*593dc095SDavid du Colombier fi 1152*593dc095SDavid du Colombier 1153*593dc095SDavid du Colombier if test -n "$release"; then 1154*593dc095SDavid du Colombier $echo "$modename: warning: \`-release' is ignored while creating objects" 1>&2 1155*593dc095SDavid du Colombier fi 1156*593dc095SDavid du Colombier 1157*593dc095SDavid du Colombier if test -n "$rpath"; then 1158*593dc095SDavid du Colombier # If the user specified any rpath flags, then add them. 1159*593dc095SDavid du Colombier for libdir in $rpath; do 1160*593dc095SDavid du Colombier if test -n "$hardcode_libdir_flag_spec"; then 1161*593dc095SDavid du Colombier if test -n "$hardcode_libdir_separator"; then 1162*593dc095SDavid du Colombier if test -z "$hardcode_libdirs"; then 1163*593dc095SDavid du Colombier # Put the magic libdir with the hardcode flag. 1164*593dc095SDavid du Colombier hardcode_libdirs="$libdir" 1165*593dc095SDavid du Colombier libdir="@HARDCODE_LIBDIRS@" 1166*593dc095SDavid du Colombier else 1167*593dc095SDavid du Colombier # Just accumulate the unique libdirs. 1168*593dc095SDavid du Colombier case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in 1169*593dc095SDavid du Colombier *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 1170*593dc095SDavid du Colombier ;; 1171*593dc095SDavid du Colombier *) 1172*593dc095SDavid du Colombier hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 1173*593dc095SDavid du Colombier ;; 1174*593dc095SDavid du Colombier esac 1175*593dc095SDavid du Colombier libdir= 1176*593dc095SDavid du Colombier fi 1177*593dc095SDavid du Colombier fi 1178*593dc095SDavid du Colombier 1179*593dc095SDavid du Colombier if test -n "$libdir"; then 1180*593dc095SDavid du Colombier eval flag=\"$hardcode_libdir_flag_spec\" 1181*593dc095SDavid du Colombier 1182*593dc095SDavid du Colombier compile_command="$compile_command $flag" 1183*593dc095SDavid du Colombier finalize_command="$finalize_command $flag" 1184*593dc095SDavid du Colombier fi 1185*593dc095SDavid du Colombier elif test -n "$runpath_var"; then 1186*593dc095SDavid du Colombier case "$perm_rpath " in 1187*593dc095SDavid du Colombier *" $libdir "*) ;; 1188*593dc095SDavid du Colombier *) perm_rpath="$perm_rpath $libdir" ;; 1189*593dc095SDavid du Colombier esac 1190*593dc095SDavid du Colombier fi 1191*593dc095SDavid du Colombier done 1192*593dc095SDavid du Colombier fi 1193*593dc095SDavid du Colombier 1194*593dc095SDavid du Colombier # Substitute the hardcoded libdirs into the compile commands. 1195*593dc095SDavid du Colombier if test -n "$hardcode_libdir_separator"; then 1196*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` 1197*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` 1198*593dc095SDavid du Colombier fi 1199*593dc095SDavid du Colombier 1200*593dc095SDavid du Colombier if test -n "$libobjs" && test "$build_old_libs" = yes; then 1201*593dc095SDavid du Colombier # Transform all the library objects into standard objects. 1202*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` 1203*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` 1204*593dc095SDavid du Colombier fi 1205*593dc095SDavid du Colombier 1206*593dc095SDavid du Colombier if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then 1207*593dc095SDavid du Colombier dlsyms="${output}S.c" 1208*593dc095SDavid du Colombier else 1209*593dc095SDavid du Colombier dlsyms= 1210*593dc095SDavid du Colombier fi 1211*593dc095SDavid du Colombier 1212*593dc095SDavid du Colombier if test -n "$dlsyms"; then 1213*593dc095SDavid du Colombier # Add our own program objects to the preloaded list. 1214*593dc095SDavid du Colombier dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e 's/\.lo /.o /g' -e 's/ $//'` 1215*593dc095SDavid du Colombier 1216*593dc095SDavid du Colombier # Discover the nlist of each of the dlfiles. 1217*593dc095SDavid du Colombier nlist="$objdir/${output}.nm" 1218*593dc095SDavid du Colombier 1219*593dc095SDavid du Colombier if test -d $objdir; then 1220*593dc095SDavid du Colombier $show "$rm $nlist ${nlist}T" 1221*593dc095SDavid du Colombier $run $rm "$nlist" "${nlist}T" 1222*593dc095SDavid du Colombier else 1223*593dc095SDavid du Colombier $show "$mkdir $objdir" 1224*593dc095SDavid du Colombier $run $mkdir $objdir 1225*593dc095SDavid du Colombier status=$? 1226*593dc095SDavid du Colombier if test $status -eq 0 || test -d $objdir; then : 1227*593dc095SDavid du Colombier else 1228*593dc095SDavid du Colombier exit $status 1229*593dc095SDavid du Colombier fi 1230*593dc095SDavid du Colombier fi 1231*593dc095SDavid du Colombier 1232*593dc095SDavid du Colombier for arg in $dlprefiles; do 1233*593dc095SDavid du Colombier $show "extracting global C symbols from \`$arg'" 1234*593dc095SDavid du Colombier $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 1235*593dc095SDavid du Colombier done 1236*593dc095SDavid du Colombier 1237*593dc095SDavid du Colombier # Parse the name list into a source file. 1238*593dc095SDavid du Colombier $show "creating $objdir/$dlsyms" 1239*593dc095SDavid du Colombier if test -z "$run"; then 1240*593dc095SDavid du Colombier # Make sure we at least have an empty file. 1241*593dc095SDavid du Colombier test -f "$nlist" || : > "$nlist" 1242*593dc095SDavid du Colombier 1243*593dc095SDavid du Colombier # Try sorting and uniquifying the output. 1244*593dc095SDavid du Colombier if sort "$nlist" | uniq > "$nlist"T; then 1245*593dc095SDavid du Colombier mv -f "$nlist"T "$nlist" 1246*593dc095SDavid du Colombier wcout=`wc "$nlist" 2>/dev/null` 1247*593dc095SDavid du Colombier count=`echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` 1248*593dc095SDavid du Colombier (test "$count" -ge 0) 2>/dev/null || count=-1 1249*593dc095SDavid du Colombier else 1250*593dc095SDavid du Colombier $rm "$nlist"T 1251*593dc095SDavid du Colombier count=-1 1252*593dc095SDavid du Colombier fi 1253*593dc095SDavid du Colombier 1254*593dc095SDavid du Colombier case "$dlsyms" in 1255*593dc095SDavid du Colombier "") ;; 1256*593dc095SDavid du Colombier *.c) 1257*593dc095SDavid du Colombier $echo > "$objdir/$dlsyms" "\ 1258*593dc095SDavid du Colombier/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ 1259*593dc095SDavid du Colombier/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ 1260*593dc095SDavid du Colombier 1261*593dc095SDavid du Colombier#ifdef __cplusplus 1262*593dc095SDavid du Colombierextern \"C\" { 1263*593dc095SDavid du Colombier#endif 1264*593dc095SDavid du Colombier 1265*593dc095SDavid du Colombier/* Prevent the only kind of declaration conflicts we can make. */ 1266*593dc095SDavid du Colombier#define dld_preloaded_symbol_count some_other_symbol 1267*593dc095SDavid du Colombier#define dld_preloaded_symbols some_other_symbol 1268*593dc095SDavid du Colombier 1269*593dc095SDavid du Colombier/* External symbol declarations for the compiler. */\ 1270*593dc095SDavid du Colombier" 1271*593dc095SDavid du Colombier 1272*593dc095SDavid du Colombier if test -f "$nlist"; then 1273*593dc095SDavid du Colombier sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" 1274*593dc095SDavid du Colombier else 1275*593dc095SDavid du Colombier echo '/* NONE */' >> "$objdir/$dlsyms" 1276*593dc095SDavid du Colombier fi 1277*593dc095SDavid du Colombier 1278*593dc095SDavid du Colombier $echo >> "$objdir/$dlsyms" "\ 1279*593dc095SDavid du Colombier 1280*593dc095SDavid du Colombier#undef dld_preloaded_symbol_count 1281*593dc095SDavid du Colombier#undef dld_preloaded_symbols 1282*593dc095SDavid du Colombier 1283*593dc095SDavid du Colombier#if defined (__STDC__) && __STDC__ 1284*593dc095SDavid du Colombier# define __ptr_t void * 1285*593dc095SDavid du Colombier#else 1286*593dc095SDavid du Colombier# define __ptr_t char * 1287*593dc095SDavid du Colombier#endif 1288*593dc095SDavid du Colombier 1289*593dc095SDavid du Colombier/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */ 1290*593dc095SDavid du Colombierint dld_preloaded_symbol_count = $count; 1291*593dc095SDavid du Colombier 1292*593dc095SDavid du Colombier/* The mapping between symbol names and symbols. */ 1293*593dc095SDavid du Colombierstruct { 1294*593dc095SDavid du Colombier char *name; 1295*593dc095SDavid du Colombier __ptr_t address; 1296*593dc095SDavid du Colombier} 1297*593dc095SDavid du Colombierdld_preloaded_symbols[] = 1298*593dc095SDavid du Colombier{\ 1299*593dc095SDavid du Colombier" 1300*593dc095SDavid du Colombier 1301*593dc095SDavid du Colombier if test -f "$nlist"; then 1302*593dc095SDavid du Colombier sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" 1303*593dc095SDavid du Colombier fi 1304*593dc095SDavid du Colombier 1305*593dc095SDavid du Colombier $echo >> "$objdir/$dlsyms" "\ 1306*593dc095SDavid du Colombier {0, (__ptr_t) 0} 1307*593dc095SDavid du Colombier}; 1308*593dc095SDavid du Colombier 1309*593dc095SDavid du Colombier#ifdef __cplusplus 1310*593dc095SDavid du Colombier} 1311*593dc095SDavid du Colombier#endif\ 1312*593dc095SDavid du Colombier" 1313*593dc095SDavid du Colombier ;; 1314*593dc095SDavid du Colombier 1315*593dc095SDavid du Colombier *) 1316*593dc095SDavid du Colombier $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 1317*593dc095SDavid du Colombier exit 1 1318*593dc095SDavid du Colombier ;; 1319*593dc095SDavid du Colombier esac 1320*593dc095SDavid du Colombier fi 1321*593dc095SDavid du Colombier 1322*593dc095SDavid du Colombier # Now compile the dynamic symbol file. 1323*593dc095SDavid du Colombier $show "(cd $objdir && $CC -c$no_builtin_flag \"$dlsyms\")" 1324*593dc095SDavid du Colombier $run eval '(cd $objdir && $CC -c$no_builtin_flag "$dlsyms")' || exit $? 1325*593dc095SDavid du Colombier 1326*593dc095SDavid du Colombier # Transform the symbol file into the correct name. 1327*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` 1328*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.o%"` 1329*593dc095SDavid du Colombier elif test "$export_dynamic" != yes; then 1330*593dc095SDavid du Colombier test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 1331*593dc095SDavid du Colombier else 1332*593dc095SDavid du Colombier # We keep going just in case the user didn't refer to 1333*593dc095SDavid du Colombier # dld_preloaded_symbols. The linker will fail if global_symbol_pipe 1334*593dc095SDavid du Colombier # really was required. 1335*593dc095SDavid du Colombier $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 1336*593dc095SDavid du Colombier 1337*593dc095SDavid du Colombier # Nullify the symbol file. 1338*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` 1339*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` 1340*593dc095SDavid du Colombier fi 1341*593dc095SDavid du Colombier 1342*593dc095SDavid du Colombier if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then 1343*593dc095SDavid du Colombier # Replace the output file specification. 1344*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 1345*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 1346*593dc095SDavid du Colombier 1347*593dc095SDavid du Colombier # We have no uninstalled library dependencies, so finalize right now. 1348*593dc095SDavid du Colombier $show "$compile_command" 1349*593dc095SDavid du Colombier $run eval "$compile_command" 1350*593dc095SDavid du Colombier exit $? 1351*593dc095SDavid du Colombier fi 1352*593dc095SDavid du Colombier 1353*593dc095SDavid du Colombier # Replace the output file specification. 1354*593dc095SDavid du Colombier compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'%g'` 1355*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$objdir/$output"'T%g'` 1356*593dc095SDavid du Colombier 1357*593dc095SDavid du Colombier # Create the binary in the object directory, then wrap it. 1358*593dc095SDavid du Colombier if test -d $objdir; then : 1359*593dc095SDavid du Colombier else 1360*593dc095SDavid du Colombier $show "$mkdir $objdir" 1361*593dc095SDavid du Colombier $run $mkdir $objdir 1362*593dc095SDavid du Colombier status=$? 1363*593dc095SDavid du Colombier if test $status -eq 0 || test -d $objdir; then : 1364*593dc095SDavid du Colombier else 1365*593dc095SDavid du Colombier exit $status 1366*593dc095SDavid du Colombier fi 1367*593dc095SDavid du Colombier fi 1368*593dc095SDavid du Colombier 1369*593dc095SDavid du Colombier if test -n "$shlibpath_var"; then 1370*593dc095SDavid du Colombier # We should set the shlibpath_var 1371*593dc095SDavid du Colombier rpath= 1372*593dc095SDavid du Colombier for dir in $temp_rpath; do 1373*593dc095SDavid du Colombier case "$dir" in 1374*593dc095SDavid du Colombier /* | [A-Za-z]:\\*) 1375*593dc095SDavid du Colombier # Absolute path. 1376*593dc095SDavid du Colombier rpath="$rpath$dir:" 1377*593dc095SDavid du Colombier ;; 1378*593dc095SDavid du Colombier *) 1379*593dc095SDavid du Colombier # Relative path: add a thisdir entry. 1380*593dc095SDavid du Colombier rpath="$rpath\$thisdir/$dir:" 1381*593dc095SDavid du Colombier ;; 1382*593dc095SDavid du Colombier esac 1383*593dc095SDavid du Colombier done 1384*593dc095SDavid du Colombier temp_rpath="$rpath" 1385*593dc095SDavid du Colombier fi 1386*593dc095SDavid du Colombier 1387*593dc095SDavid du Colombier # Delete the old output file. 1388*593dc095SDavid du Colombier $run $rm $output 1389*593dc095SDavid du Colombier 1390*593dc095SDavid du Colombier if test -n "$compile_shlibpath"; then 1391*593dc095SDavid du Colombier compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command" 1392*593dc095SDavid du Colombier fi 1393*593dc095SDavid du Colombier if test -n "$finalize_shlibpath"; then 1394*593dc095SDavid du Colombier finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 1395*593dc095SDavid du Colombier fi 1396*593dc095SDavid du Colombier 1397*593dc095SDavid du Colombier if test -n "$runpath_var" && test -n "$perm_rpath"; then 1398*593dc095SDavid du Colombier # We should set the runpath_var. 1399*593dc095SDavid du Colombier rpath= 1400*593dc095SDavid du Colombier for dir in $perm_rpath; do 1401*593dc095SDavid du Colombier rpath="$rpath$dir:" 1402*593dc095SDavid du Colombier done 1403*593dc095SDavid du Colombier compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command" 1404*593dc095SDavid du Colombier finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command" 1405*593dc095SDavid du Colombier fi 1406*593dc095SDavid du Colombier 1407*593dc095SDavid du Colombier case "$hardcode_action" in 1408*593dc095SDavid du Colombier relink) 1409*593dc095SDavid du Colombier # AGH! Flame the AIX and HP-UX people for me, will ya? 1410*593dc095SDavid du Colombier $echo "$modename: warning: using a buggy system linker" 1>&2 1411*593dc095SDavid du Colombier $echo "$modename: relinking will be required before \`$output' can be installed" 1>&2 1412*593dc095SDavid du Colombier ;; 1413*593dc095SDavid du Colombier esac 1414*593dc095SDavid du Colombier 1415*593dc095SDavid du Colombier $show "$compile_command" 1416*593dc095SDavid du Colombier $run eval "$compile_command" || exit $? 1417*593dc095SDavid du Colombier 1418*593dc095SDavid du Colombier # Now create the wrapper script. 1419*593dc095SDavid du Colombier $show "creating $output" 1420*593dc095SDavid du Colombier 1421*593dc095SDavid du Colombier # Quote the finalize command for shipping. 1422*593dc095SDavid du Colombier finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` 1423*593dc095SDavid du Colombier 1424*593dc095SDavid du Colombier # Quote $echo for shipping. 1425*593dc095SDavid du Colombier qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 1426*593dc095SDavid du Colombier 1427*593dc095SDavid du Colombier # Only actually do things if our run command is non-null. 1428*593dc095SDavid du Colombier if test -z "$run"; then 1429*593dc095SDavid du Colombier $rm $output 1430*593dc095SDavid du Colombier trap "$rm $output; exit 1" 1 2 15 1431*593dc095SDavid du Colombier 1432*593dc095SDavid du Colombier $echo > $output "\ 1433*593dc095SDavid du Colombier#! /bin/sh 1434*593dc095SDavid du Colombier 1435*593dc095SDavid du Colombier# $output - temporary wrapper script for $objdir/$output 1436*593dc095SDavid du Colombier# Generated by ltmain.sh - GNU $PACKAGE $VERSION 1437*593dc095SDavid du Colombier# 1438*593dc095SDavid du Colombier# The $output program cannot be directly executed until all the libtool 1439*593dc095SDavid du Colombier# libraries that it depends on are installed. 1440*593dc095SDavid du Colombier# 1441*593dc095SDavid du Colombier# This wrapper script should never be moved out of \``pwd`'. 1442*593dc095SDavid du Colombier# If it is, it will not operate correctly. 1443*593dc095SDavid du Colombier 1444*593dc095SDavid du Colombier# Sed substitution that helps us do robust quoting. It backslashifies 1445*593dc095SDavid du Colombier# metacharacters that are still active within double-quoted strings. 1446*593dc095SDavid du ColombierXsed='sed -e s/^X//' 1447*593dc095SDavid du Colombiersed_quote_subst='$sed_quote_subst' 1448*593dc095SDavid du Colombier 1449*593dc095SDavid du Colombier# The HP-UX ksh and POSIX shell print the target directory to stdout 1450*593dc095SDavid du Colombier# if CDPATH is set. 1451*593dc095SDavid du Colombierif test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi 1452*593dc095SDavid du Colombier 1453*593dc095SDavid du Colombier# This environment variable determines our operation mode. 1454*593dc095SDavid du Colombierif test \"\$libtool_install_magic\" = \"$magic\"; then 1455*593dc095SDavid du Colombier # install mode needs the following variables: 1456*593dc095SDavid du Colombier link_against_libtool_libs='$link_against_libtool_libs' 1457*593dc095SDavid du Colombier finalize_command=\"$finalize_command\" 1458*593dc095SDavid du Colombierelse 1459*593dc095SDavid du Colombier # When we are sourced in execute mode, \$file and \$echo are already set. 1460*593dc095SDavid du Colombier if test \"\$libtool_execute_magic\" = \"$magic\"; then : 1461*593dc095SDavid du Colombier else 1462*593dc095SDavid du Colombier echo=\"$qecho\" 1463*593dc095SDavid du Colombier file=\"\$0\" 1464*593dc095SDavid du Colombier fi\ 1465*593dc095SDavid du Colombier" 1466*593dc095SDavid du Colombier $echo >> $output "\ 1467*593dc095SDavid du Colombier 1468*593dc095SDavid du Colombier # Find the directory that this script lives in. 1469*593dc095SDavid du Colombier thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 1470*593dc095SDavid du Colombier test \"x\$thisdir\" = \"x\$file\" && thisdir=. 1471*593dc095SDavid du Colombier 1472*593dc095SDavid du Colombier # Follow symbolic links until we get to the real thisdir. 1473*593dc095SDavid du Colombier file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` 1474*593dc095SDavid du Colombier while test -n \"\$file\"; do 1475*593dc095SDavid du Colombier destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 1476*593dc095SDavid du Colombier 1477*593dc095SDavid du Colombier # If there was a directory component, then change thisdir. 1478*593dc095SDavid du Colombier if test \"x\$destdir\" != \"x\$file\"; then 1479*593dc095SDavid du Colombier case \"\$destdir\" in 1480*593dc095SDavid du Colombier /* | [A-Za-z]:\\*) thisdir=\"\$destdir\" ;; 1481*593dc095SDavid du Colombier *) thisdir=\"\$thisdir/\$destdir\" ;; 1482*593dc095SDavid du Colombier esac 1483*593dc095SDavid du Colombier fi 1484*593dc095SDavid du Colombier 1485*593dc095SDavid du Colombier file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 1486*593dc095SDavid du Colombier file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` 1487*593dc095SDavid du Colombier done 1488*593dc095SDavid du Colombier 1489*593dc095SDavid du Colombier # Try to get the absolute directory name. 1490*593dc095SDavid du Colombier absdir=\`cd \"\$thisdir\" && pwd\` 1491*593dc095SDavid du Colombier test -n \"\$absdir\" && thisdir=\"\$absdir\" 1492*593dc095SDavid du Colombier 1493*593dc095SDavid du Colombier progdir=\"\$thisdir/$objdir\" 1494*593dc095SDavid du Colombier program='$output' 1495*593dc095SDavid du Colombier 1496*593dc095SDavid du Colombier if test -f \"\$progdir/\$program\"; then" 1497*593dc095SDavid du Colombier 1498*593dc095SDavid du Colombier # Export our shlibpath_var if we have one. 1499*593dc095SDavid du Colombier if test -n "$shlibpath_var" && test -n "$temp_rpath"; then 1500*593dc095SDavid du Colombier $echo >> $output "\ 1501*593dc095SDavid du Colombier # Add our own library path to $shlibpath_var 1502*593dc095SDavid du Colombier $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 1503*593dc095SDavid du Colombier 1504*593dc095SDavid du Colombier # Some systems cannot cope with colon-terminated $shlibpath_var 1505*593dc095SDavid du Colombier $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\` 1506*593dc095SDavid du Colombier 1507*593dc095SDavid du Colombier export $shlibpath_var 1508*593dc095SDavid du Colombier" 1509*593dc095SDavid du Colombier fi 1510*593dc095SDavid du Colombier 1511*593dc095SDavid du Colombier $echo >> $output "\ 1512*593dc095SDavid du Colombier if test \"\$libtool_execute_magic\" != \"$magic\"; then 1513*593dc095SDavid du Colombier # Run the actual program with our arguments. 1514*593dc095SDavid du Colombier 1515*593dc095SDavid du Colombier # Export the path to the program. 1516*593dc095SDavid du Colombier PATH=\"\$progdir:\$PATH\" 1517*593dc095SDavid du Colombier export PATH 1518*593dc095SDavid du Colombier 1519*593dc095SDavid du Colombier exec \$program \${1+\"\$@\"} 1520*593dc095SDavid du Colombier 1521*593dc095SDavid du Colombier \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" 1522*593dc095SDavid du Colombier exit 1 1523*593dc095SDavid du Colombier fi 1524*593dc095SDavid du Colombier else 1525*593dc095SDavid du Colombier # The program doesn't exist. 1526*593dc095SDavid du Colombier \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 1527*593dc095SDavid du Colombier \$echo \"This script is just a wrapper for \$program.\" 1>&2 1528*593dc095SDavid du Colombier echo \"See the $PACKAGE documentation for more information.\" 1>&2 1529*593dc095SDavid du Colombier exit 1 1530*593dc095SDavid du Colombier fi 1531*593dc095SDavid du Colombierfi\ 1532*593dc095SDavid du Colombier" 1533*593dc095SDavid du Colombier chmod +x $output 1534*593dc095SDavid du Colombier fi 1535*593dc095SDavid du Colombier exit 0 1536*593dc095SDavid du Colombier ;; 1537*593dc095SDavid du Colombier esac 1538*593dc095SDavid du Colombier 1539*593dc095SDavid du Colombier # See if we need to build an old-fashioned archive. 1540*593dc095SDavid du Colombier if test "$build_old_libs" = "yes"; then 1541*593dc095SDavid du Colombier # Transform .lo files to .o files. 1542*593dc095SDavid du Colombier oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.a //g' -e 's/\.lo /.o /g' -e 's/ $//g'` 1543*593dc095SDavid du Colombier 1544*593dc095SDavid du Colombier # Do each command in the archive commands. 1545*593dc095SDavid du Colombier if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 1546*593dc095SDavid du Colombier eval cmds=\"$old_archive_from_new_cmds\" 1547*593dc095SDavid du Colombier else 1548*593dc095SDavid du Colombier eval cmds=\"$old_archive_cmds\" 1549*593dc095SDavid du Colombier fi 1550*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 1551*593dc095SDavid du Colombier for cmd in $cmds; do 1552*593dc095SDavid du Colombier IFS="$save_ifs" 1553*593dc095SDavid du Colombier $show "$cmd" 1554*593dc095SDavid du Colombier $run eval "$cmd" || exit $? 1555*593dc095SDavid du Colombier done 1556*593dc095SDavid du Colombier IFS="$save_ifs" 1557*593dc095SDavid du Colombier fi 1558*593dc095SDavid du Colombier 1559*593dc095SDavid du Colombier # Now create the libtool archive. 1560*593dc095SDavid du Colombier case "$output" in 1561*593dc095SDavid du Colombier *.la) 1562*593dc095SDavid du Colombier old_library= 1563*593dc095SDavid du Colombier test "$build_old_libs" = yes && old_library="$libname.a" 1564*593dc095SDavid du Colombier 1565*593dc095SDavid du Colombier $show "creating $output" 1566*593dc095SDavid du Colombier 1567*593dc095SDavid du Colombier # Only create the output if not a dry run. 1568*593dc095SDavid du Colombier if test -z "$run"; then 1569*593dc095SDavid du Colombier $echo > $output "\ 1570*593dc095SDavid du Colombier# $output - a libtool library file 1571*593dc095SDavid du Colombier# Generated by ltmain.sh - GNU $PACKAGE $VERSION 1572*593dc095SDavid du Colombier 1573*593dc095SDavid du Colombier# The name that we can dlopen(3). 1574*593dc095SDavid du Colombierdlname='$dlname' 1575*593dc095SDavid du Colombier 1576*593dc095SDavid du Colombier# Names of this library. 1577*593dc095SDavid du Colombierlibrary_names='$library_names' 1578*593dc095SDavid du Colombier 1579*593dc095SDavid du Colombier# The name of the static archive. 1580*593dc095SDavid du Colombierold_library='$old_library' 1581*593dc095SDavid du Colombier 1582*593dc095SDavid du Colombier# Libraries that this one depends upon. 1583*593dc095SDavid du Colombierdependency_libs='$dependency_libs' 1584*593dc095SDavid du Colombier 1585*593dc095SDavid du Colombier# Version information for $libname. 1586*593dc095SDavid du Colombiercurrent=$current 1587*593dc095SDavid du Colombierage=$age 1588*593dc095SDavid du Colombierrevision=$revision 1589*593dc095SDavid du Colombier 1590*593dc095SDavid du Colombier# Directory that this library needs to be installed in: 1591*593dc095SDavid du Colombierlibdir='$install_libdir'\ 1592*593dc095SDavid du Colombier" 1593*593dc095SDavid du Colombier fi 1594*593dc095SDavid du Colombier 1595*593dc095SDavid du Colombier # Do a symbolic link so that the libtool archive can be found in 1596*593dc095SDavid du Colombier # LD_LIBRARY_PATH before the program is installed. 1597*593dc095SDavid du Colombier $show "(cd $objdir && $LN_S ../$output $output)" 1598*593dc095SDavid du Colombier $run eval "(cd $objdir && $LN_S ../$output $output)" || exit 1 1599*593dc095SDavid du Colombier ;; 1600*593dc095SDavid du Colombier esac 1601*593dc095SDavid du Colombier exit 0 1602*593dc095SDavid du Colombier ;; 1603*593dc095SDavid du Colombier 1604*593dc095SDavid du Colombier # libtool install mode 1605*593dc095SDavid du Colombier install) 1606*593dc095SDavid du Colombier modename="$modename: install" 1607*593dc095SDavid du Colombier 1608*593dc095SDavid du Colombier # There may be an optional /bin/sh argument at the beginning of 1609*593dc095SDavid du Colombier # install_prog (especially on Windows NT). 1610*593dc095SDavid du Colombier if test "$nonopt" = "$SHELL"; then 1611*593dc095SDavid du Colombier # Aesthetically quote it. 1612*593dc095SDavid du Colombier arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 1613*593dc095SDavid du Colombier case "$arg" in 1614*593dc095SDavid du Colombier *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 1615*593dc095SDavid du Colombier arg="\"$arg\"" 1616*593dc095SDavid du Colombier ;; 1617*593dc095SDavid du Colombier esac 1618*593dc095SDavid du Colombier install_prog="$arg " 1619*593dc095SDavid du Colombier arg="$1" 1620*593dc095SDavid du Colombier shift 1621*593dc095SDavid du Colombier else 1622*593dc095SDavid du Colombier install_prog= 1623*593dc095SDavid du Colombier arg="$nonopt" 1624*593dc095SDavid du Colombier fi 1625*593dc095SDavid du Colombier 1626*593dc095SDavid du Colombier # The real first argument should be the name of the installation program. 1627*593dc095SDavid du Colombier # Aesthetically quote it. 1628*593dc095SDavid du Colombier arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1629*593dc095SDavid du Colombier case "$arg" in 1630*593dc095SDavid du Colombier *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 1631*593dc095SDavid du Colombier arg="\"$arg\"" 1632*593dc095SDavid du Colombier ;; 1633*593dc095SDavid du Colombier esac 1634*593dc095SDavid du Colombier install_prog="$install_prog$arg" 1635*593dc095SDavid du Colombier 1636*593dc095SDavid du Colombier # We need to accept at least all the BSD install flags. 1637*593dc095SDavid du Colombier dest= 1638*593dc095SDavid du Colombier files= 1639*593dc095SDavid du Colombier opts= 1640*593dc095SDavid du Colombier prev= 1641*593dc095SDavid du Colombier install_type= 1642*593dc095SDavid du Colombier isdir= 1643*593dc095SDavid du Colombier stripme= 1644*593dc095SDavid du Colombier for arg 1645*593dc095SDavid du Colombier do 1646*593dc095SDavid du Colombier if test -n "$dest"; then 1647*593dc095SDavid du Colombier files="$files $dest" 1648*593dc095SDavid du Colombier dest="$arg" 1649*593dc095SDavid du Colombier continue 1650*593dc095SDavid du Colombier fi 1651*593dc095SDavid du Colombier 1652*593dc095SDavid du Colombier case "$arg" in 1653*593dc095SDavid du Colombier -d) isdir=yes ;; 1654*593dc095SDavid du Colombier -f) prev="-f" ;; 1655*593dc095SDavid du Colombier -g) prev="-g" ;; 1656*593dc095SDavid du Colombier -m) prev="-m" ;; 1657*593dc095SDavid du Colombier -o) prev="-o" ;; 1658*593dc095SDavid du Colombier -s) 1659*593dc095SDavid du Colombier stripme=" -s" 1660*593dc095SDavid du Colombier continue 1661*593dc095SDavid du Colombier ;; 1662*593dc095SDavid du Colombier -*) ;; 1663*593dc095SDavid du Colombier 1664*593dc095SDavid du Colombier *) 1665*593dc095SDavid du Colombier # If the previous option needed an argument, then skip it. 1666*593dc095SDavid du Colombier if test -n "$prev"; then 1667*593dc095SDavid du Colombier prev= 1668*593dc095SDavid du Colombier else 1669*593dc095SDavid du Colombier dest="$arg" 1670*593dc095SDavid du Colombier continue 1671*593dc095SDavid du Colombier fi 1672*593dc095SDavid du Colombier ;; 1673*593dc095SDavid du Colombier esac 1674*593dc095SDavid du Colombier 1675*593dc095SDavid du Colombier # Aesthetically quote the argument. 1676*593dc095SDavid du Colombier arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1677*593dc095SDavid du Colombier case "$arg" in 1678*593dc095SDavid du Colombier *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) 1679*593dc095SDavid du Colombier arg="\"$arg\"" 1680*593dc095SDavid du Colombier ;; 1681*593dc095SDavid du Colombier esac 1682*593dc095SDavid du Colombier install_prog="$install_prog $arg" 1683*593dc095SDavid du Colombier done 1684*593dc095SDavid du Colombier 1685*593dc095SDavid du Colombier if test -z "$install_prog"; then 1686*593dc095SDavid du Colombier $echo "$modename: you must specify an install program" 1>&2 1687*593dc095SDavid du Colombier $echo "$help" 1>&2 1688*593dc095SDavid du Colombier exit 1 1689*593dc095SDavid du Colombier fi 1690*593dc095SDavid du Colombier 1691*593dc095SDavid du Colombier if test -n "$prev"; then 1692*593dc095SDavid du Colombier $echo "$modename: the \`$prev' option requires an argument" 1>&2 1693*593dc095SDavid du Colombier $echo "$help" 1>&2 1694*593dc095SDavid du Colombier exit 1 1695*593dc095SDavid du Colombier fi 1696*593dc095SDavid du Colombier 1697*593dc095SDavid du Colombier if test -z "$files"; then 1698*593dc095SDavid du Colombier if test -z "$dest"; then 1699*593dc095SDavid du Colombier $echo "$modename: no file or destination specified" 1>&2 1700*593dc095SDavid du Colombier else 1701*593dc095SDavid du Colombier $echo "$modename: you must specify a destination" 1>&2 1702*593dc095SDavid du Colombier fi 1703*593dc095SDavid du Colombier $echo "$help" 1>&2 1704*593dc095SDavid du Colombier exit 1 1705*593dc095SDavid du Colombier fi 1706*593dc095SDavid du Colombier 1707*593dc095SDavid du Colombier # Strip any trailing slash from the destination. 1708*593dc095SDavid du Colombier dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 1709*593dc095SDavid du Colombier 1710*593dc095SDavid du Colombier # Check to see that the destination is a directory. 1711*593dc095SDavid du Colombier test -d "$dest" && isdir=yes 1712*593dc095SDavid du Colombier if test -n "$isdir"; then 1713*593dc095SDavid du Colombier destdir="$dest" 1714*593dc095SDavid du Colombier destname= 1715*593dc095SDavid du Colombier else 1716*593dc095SDavid du Colombier destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 1717*593dc095SDavid du Colombier test "X$destdir" = "X$dest" && destdir=. 1718*593dc095SDavid du Colombier destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 1719*593dc095SDavid du Colombier 1720*593dc095SDavid du Colombier # Not a directory, so check to see that there is only one file specified. 1721*593dc095SDavid du Colombier set dummy $files 1722*593dc095SDavid du Colombier if test $# -gt 2; then 1723*593dc095SDavid du Colombier $echo "$modename: \`$dest' is not a directory" 1>&2 1724*593dc095SDavid du Colombier $echo "$help" 1>&2 1725*593dc095SDavid du Colombier exit 1 1726*593dc095SDavid du Colombier fi 1727*593dc095SDavid du Colombier fi 1728*593dc095SDavid du Colombier case "$destdir" in 1729*593dc095SDavid du Colombier /* | [A-Za-z]:\\*) ;; 1730*593dc095SDavid du Colombier *) 1731*593dc095SDavid du Colombier for file in $files; do 1732*593dc095SDavid du Colombier case "$file" in 1733*593dc095SDavid du Colombier *.lo) ;; 1734*593dc095SDavid du Colombier *) 1735*593dc095SDavid du Colombier $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 1736*593dc095SDavid du Colombier $echo "$help" 1>&2 1737*593dc095SDavid du Colombier exit 1 1738*593dc095SDavid du Colombier ;; 1739*593dc095SDavid du Colombier esac 1740*593dc095SDavid du Colombier done 1741*593dc095SDavid du Colombier ;; 1742*593dc095SDavid du Colombier esac 1743*593dc095SDavid du Colombier 1744*593dc095SDavid du Colombier # This variable tells wrapper scripts just to set variables rather 1745*593dc095SDavid du Colombier # than running their programs. 1746*593dc095SDavid du Colombier libtool_install_magic="$magic" 1747*593dc095SDavid du Colombier 1748*593dc095SDavid du Colombier staticlibs= 1749*593dc095SDavid du Colombier future_libdirs= 1750*593dc095SDavid du Colombier current_libdirs= 1751*593dc095SDavid du Colombier for file in $files; do 1752*593dc095SDavid du Colombier 1753*593dc095SDavid du Colombier # Do each installation. 1754*593dc095SDavid du Colombier case "$file" in 1755*593dc095SDavid du Colombier *.a) 1756*593dc095SDavid du Colombier # Do the static libraries later. 1757*593dc095SDavid du Colombier staticlibs="$staticlibs $file" 1758*593dc095SDavid du Colombier ;; 1759*593dc095SDavid du Colombier 1760*593dc095SDavid du Colombier *.la) 1761*593dc095SDavid du Colombier # Check to see that this really is a libtool archive. 1762*593dc095SDavid du Colombier if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : 1763*593dc095SDavid du Colombier else 1764*593dc095SDavid du Colombier $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 1765*593dc095SDavid du Colombier $echo "$help" 1>&2 1766*593dc095SDavid du Colombier exit 1 1767*593dc095SDavid du Colombier fi 1768*593dc095SDavid du Colombier 1769*593dc095SDavid du Colombier library_names= 1770*593dc095SDavid du Colombier old_library= 1771*593dc095SDavid du Colombier # If there is no directory component, then add one. 1772*593dc095SDavid du Colombier case "$file" in 1773*593dc095SDavid du Colombier */* | *\\*) . $file ;; 1774*593dc095SDavid du Colombier *) . ./$file ;; 1775*593dc095SDavid du Colombier esac 1776*593dc095SDavid du Colombier 1777*593dc095SDavid du Colombier # Add the libdir to current_libdirs if it is the destination. 1778*593dc095SDavid du Colombier if test "X$destdir" = "X$libdir"; then 1779*593dc095SDavid du Colombier case "$current_libdirs " in 1780*593dc095SDavid du Colombier *" $libdir "*) ;; 1781*593dc095SDavid du Colombier *) current_libdirs="$current_libdirs $libdir" ;; 1782*593dc095SDavid du Colombier esac 1783*593dc095SDavid du Colombier else 1784*593dc095SDavid du Colombier # Note the libdir as a future libdir. 1785*593dc095SDavid du Colombier case "$future_libdirs " in 1786*593dc095SDavid du Colombier *" $libdir "*) ;; 1787*593dc095SDavid du Colombier *) future_libdirs="$future_libdirs $libdir" ;; 1788*593dc095SDavid du Colombier esac 1789*593dc095SDavid du Colombier fi 1790*593dc095SDavid du Colombier 1791*593dc095SDavid du Colombier dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" 1792*593dc095SDavid du Colombier test "X$dir" = "X$file/" && dir= 1793*593dc095SDavid du Colombier dir="$dir$objdir" 1794*593dc095SDavid du Colombier 1795*593dc095SDavid du Colombier # See the names of the shared library. 1796*593dc095SDavid du Colombier set dummy $library_names 1797*593dc095SDavid du Colombier if test -n "$2"; then 1798*593dc095SDavid du Colombier realname="$2" 1799*593dc095SDavid du Colombier shift 1800*593dc095SDavid du Colombier shift 1801*593dc095SDavid du Colombier 1802*593dc095SDavid du Colombier # Install the shared library and build the symlinks. 1803*593dc095SDavid du Colombier $show "$install_prog $dir/$realname $destdir/$realname" 1804*593dc095SDavid du Colombier $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? 1805*593dc095SDavid du Colombier test "X$dlname" = "X$realname" && dlname= 1806*593dc095SDavid du Colombier 1807*593dc095SDavid du Colombier if test $# -gt 0; then 1808*593dc095SDavid du Colombier # Delete the old symlinks. 1809*593dc095SDavid du Colombier rmcmd="$rm" 1810*593dc095SDavid du Colombier for linkname 1811*593dc095SDavid du Colombier do 1812*593dc095SDavid du Colombier rmcmd="$rmcmd $destdir/$linkname" 1813*593dc095SDavid du Colombier done 1814*593dc095SDavid du Colombier $show "$rmcmd" 1815*593dc095SDavid du Colombier $run $rmcmd 1816*593dc095SDavid du Colombier 1817*593dc095SDavid du Colombier # ... and create new ones. 1818*593dc095SDavid du Colombier for linkname 1819*593dc095SDavid du Colombier do 1820*593dc095SDavid du Colombier test "X$dlname" = "X$linkname" && dlname= 1821*593dc095SDavid du Colombier $show "(cd $destdir && $LN_S $realname $linkname)" 1822*593dc095SDavid du Colombier $run eval "(cd $destdir && $LN_S $realname $linkname)" 1823*593dc095SDavid du Colombier done 1824*593dc095SDavid du Colombier fi 1825*593dc095SDavid du Colombier 1826*593dc095SDavid du Colombier if test -n "$dlname"; then 1827*593dc095SDavid du Colombier # Install the dynamically-loadable library. 1828*593dc095SDavid du Colombier $show "$install_prog $dir/$dlname $destdir/$dlname" 1829*593dc095SDavid du Colombier $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $? 1830*593dc095SDavid du Colombier fi 1831*593dc095SDavid du Colombier 1832*593dc095SDavid du Colombier # Do each command in the postinstall commands. 1833*593dc095SDavid du Colombier lib="$destdir/$realname" 1834*593dc095SDavid du Colombier eval cmds=\"$postinstall_cmds\" 1835*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 1836*593dc095SDavid du Colombier for cmd in $cmds; do 1837*593dc095SDavid du Colombier IFS="$save_ifs" 1838*593dc095SDavid du Colombier $show "$cmd" 1839*593dc095SDavid du Colombier $run eval "$cmd" || exit $? 1840*593dc095SDavid du Colombier done 1841*593dc095SDavid du Colombier IFS="$save_ifs" 1842*593dc095SDavid du Colombier fi 1843*593dc095SDavid du Colombier 1844*593dc095SDavid du Colombier # Install the pseudo-library for information purposes. 1845*593dc095SDavid du Colombier name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 1846*593dc095SDavid du Colombier $show "$install_prog $file $destdir/$name" 1847*593dc095SDavid du Colombier $run eval "$install_prog $file $destdir/$name" || exit $? 1848*593dc095SDavid du Colombier 1849*593dc095SDavid du Colombier # Maybe install the static library, too. 1850*593dc095SDavid du Colombier test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 1851*593dc095SDavid du Colombier ;; 1852*593dc095SDavid du Colombier 1853*593dc095SDavid du Colombier *.lo) 1854*593dc095SDavid du Colombier # Install (i.e. copy) a libtool object. 1855*593dc095SDavid du Colombier 1856*593dc095SDavid du Colombier # Figure out destination file name, if it wasn't already specified. 1857*593dc095SDavid du Colombier if test -n "$destname"; then 1858*593dc095SDavid du Colombier destfile="$destdir/$destname" 1859*593dc095SDavid du Colombier else 1860*593dc095SDavid du Colombier destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 1861*593dc095SDavid du Colombier destfile="$destdir/$destfile" 1862*593dc095SDavid du Colombier fi 1863*593dc095SDavid du Colombier 1864*593dc095SDavid du Colombier # Deduce the name of the destination old-style object file. 1865*593dc095SDavid du Colombier case "$destfile" in 1866*593dc095SDavid du Colombier *.lo) 1867*593dc095SDavid du Colombier staticdest=`$echo "X$destfile" | $Xsed -e 's/\.lo$/\.o/'` 1868*593dc095SDavid du Colombier ;; 1869*593dc095SDavid du Colombier *.o) 1870*593dc095SDavid du Colombier staticdest="$destfile" 1871*593dc095SDavid du Colombier destfile= 1872*593dc095SDavid du Colombier ;; 1873*593dc095SDavid du Colombier *) 1874*593dc095SDavid du Colombier $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 1875*593dc095SDavid du Colombier $echo "$help" 1>&2 1876*593dc095SDavid du Colombier exit 1 1877*593dc095SDavid du Colombier ;; 1878*593dc095SDavid du Colombier esac 1879*593dc095SDavid du Colombier 1880*593dc095SDavid du Colombier # Install the libtool object if requested. 1881*593dc095SDavid du Colombier if test -n "$destfile"; then 1882*593dc095SDavid du Colombier $show "$install_prog $file $destfile" 1883*593dc095SDavid du Colombier $run eval "$install_prog $file $destfile" || exit $? 1884*593dc095SDavid du Colombier fi 1885*593dc095SDavid du Colombier 1886*593dc095SDavid du Colombier # Install the old object if enabled. 1887*593dc095SDavid du Colombier if test "$build_old_libs" = yes; then 1888*593dc095SDavid du Colombier # Deduce the name of the old-style object file. 1889*593dc095SDavid du Colombier staticobj=`$echo "X$file" | $Xsed -e 's/\.lo$/\.o/'` 1890*593dc095SDavid du Colombier 1891*593dc095SDavid du Colombier $show "$install_prog $staticobj $staticdest" 1892*593dc095SDavid du Colombier $run eval "$install_prog \$staticobj \$staticdest" || exit $? 1893*593dc095SDavid du Colombier fi 1894*593dc095SDavid du Colombier exit 0 1895*593dc095SDavid du Colombier ;; 1896*593dc095SDavid du Colombier 1897*593dc095SDavid du Colombier *) 1898*593dc095SDavid du Colombier # Do a test to see if this is really a libtool program. 1899*593dc095SDavid du Colombier if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then 1900*593dc095SDavid du Colombier link_against_libtool_libs= 1901*593dc095SDavid du Colombier finalize_command= 1902*593dc095SDavid du Colombier 1903*593dc095SDavid du Colombier # If there is no directory component, then add one. 1904*593dc095SDavid du Colombier case "$file" in 1905*593dc095SDavid du Colombier */* | *\\*) . $file ;; 1906*593dc095SDavid du Colombier *) . ./$file ;; 1907*593dc095SDavid du Colombier esac 1908*593dc095SDavid du Colombier 1909*593dc095SDavid du Colombier # Check the variables that should have been set. 1910*593dc095SDavid du Colombier if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then 1911*593dc095SDavid du Colombier $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 1912*593dc095SDavid du Colombier exit 1 1913*593dc095SDavid du Colombier fi 1914*593dc095SDavid du Colombier 1915*593dc095SDavid du Colombier finalize=yes 1916*593dc095SDavid du Colombier for lib in $link_against_libtool_libs; do 1917*593dc095SDavid du Colombier # Check to see that each library is installed. 1918*593dc095SDavid du Colombier libdir= 1919*593dc095SDavid du Colombier if test -f "$lib"; then 1920*593dc095SDavid du Colombier # If there is no directory component, then add one. 1921*593dc095SDavid du Colombier case "$lib" in 1922*593dc095SDavid du Colombier */* | *\\*) . $lib ;; 1923*593dc095SDavid du Colombier *) . ./$lib ;; 1924*593dc095SDavid du Colombier esac 1925*593dc095SDavid du Colombier fi 1926*593dc095SDavid du Colombier libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" 1927*593dc095SDavid du Colombier if test -z "$libdir"; then 1928*593dc095SDavid du Colombier $echo "$modename: warning: \`$lib' contains no -rpath information" 1>&2 1929*593dc095SDavid du Colombier elif test -f "$libfile"; then : 1930*593dc095SDavid du Colombier else 1931*593dc095SDavid du Colombier $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 1932*593dc095SDavid du Colombier finalize=no 1933*593dc095SDavid du Colombier fi 1934*593dc095SDavid du Colombier done 1935*593dc095SDavid du Colombier 1936*593dc095SDavid du Colombier if test "$hardcode_action" = relink; then 1937*593dc095SDavid du Colombier if test "$finalize" = yes; then 1938*593dc095SDavid du Colombier $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 1939*593dc095SDavid du Colombier $show "$finalize_command" 1940*593dc095SDavid du Colombier if $run eval "$finalize_command"; then : 1941*593dc095SDavid du Colombier else 1942*593dc095SDavid du Colombier $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 1943*593dc095SDavid du Colombier continue 1944*593dc095SDavid du Colombier fi 1945*593dc095SDavid du Colombier file="$objdir/$file"T 1946*593dc095SDavid du Colombier else 1947*593dc095SDavid du Colombier $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 1948*593dc095SDavid du Colombier fi 1949*593dc095SDavid du Colombier else 1950*593dc095SDavid du Colombier # Install the binary that we compiled earlier. 1951*593dc095SDavid du Colombier file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 1952*593dc095SDavid du Colombier fi 1953*593dc095SDavid du Colombier fi 1954*593dc095SDavid du Colombier 1955*593dc095SDavid du Colombier $show "$install_prog$stripme $file $dest" 1956*593dc095SDavid du Colombier $run eval "$install_prog\$stripme \$file \$dest" || exit $? 1957*593dc095SDavid du Colombier ;; 1958*593dc095SDavid du Colombier esac 1959*593dc095SDavid du Colombier done 1960*593dc095SDavid du Colombier 1961*593dc095SDavid du Colombier for file in $staticlibs; do 1962*593dc095SDavid du Colombier name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 1963*593dc095SDavid du Colombier 1964*593dc095SDavid du Colombier # Set up the ranlib parameters. 1965*593dc095SDavid du Colombier oldlib="$destdir/$name" 1966*593dc095SDavid du Colombier 1967*593dc095SDavid du Colombier $show "$install_prog $file $oldlib" 1968*593dc095SDavid du Colombier $run eval "$install_prog \$file \$oldlib" || exit $? 1969*593dc095SDavid du Colombier 1970*593dc095SDavid du Colombier # Do each command in the postinstall commands. 1971*593dc095SDavid du Colombier eval cmds=\"$old_postinstall_cmds\" 1972*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 1973*593dc095SDavid du Colombier for cmd in $cmds; do 1974*593dc095SDavid du Colombier IFS="$save_ifs" 1975*593dc095SDavid du Colombier $show "$cmd" 1976*593dc095SDavid du Colombier $run eval "$cmd" || exit $? 1977*593dc095SDavid du Colombier done 1978*593dc095SDavid du Colombier IFS="$save_ifs" 1979*593dc095SDavid du Colombier done 1980*593dc095SDavid du Colombier 1981*593dc095SDavid du Colombier if test -n "$future_libdirs"; then 1982*593dc095SDavid du Colombier $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 1983*593dc095SDavid du Colombier fi 1984*593dc095SDavid du Colombier 1985*593dc095SDavid du Colombier if test -n "$current_libdirs"; then 1986*593dc095SDavid du Colombier # Maybe just do a dry run. 1987*593dc095SDavid du Colombier test -n "$run" && current_libdirs=" -n$current_libdirs" 1988*593dc095SDavid du Colombier exec $SHELL $0 --finish$current_libdirs 1989*593dc095SDavid du Colombier exit 1 1990*593dc095SDavid du Colombier fi 1991*593dc095SDavid du Colombier 1992*593dc095SDavid du Colombier exit 0 1993*593dc095SDavid du Colombier ;; 1994*593dc095SDavid du Colombier 1995*593dc095SDavid du Colombier # libtool finish mode 1996*593dc095SDavid du Colombier finish) 1997*593dc095SDavid du Colombier modename="$modename: finish" 1998*593dc095SDavid du Colombier libdirs="$nonopt" 1999*593dc095SDavid du Colombier 2000*593dc095SDavid du Colombier if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 2001*593dc095SDavid du Colombier for dir 2002*593dc095SDavid du Colombier do 2003*593dc095SDavid du Colombier libdirs="$libdirs $dir" 2004*593dc095SDavid du Colombier done 2005*593dc095SDavid du Colombier 2006*593dc095SDavid du Colombier for libdir in $libdirs; do 2007*593dc095SDavid du Colombier if test -n "$finish_cmds"; then 2008*593dc095SDavid du Colombier # Do each command in the finish commands. 2009*593dc095SDavid du Colombier eval cmds=\"$finish_cmds\" 2010*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 2011*593dc095SDavid du Colombier for cmd in $cmds; do 2012*593dc095SDavid du Colombier IFS="$save_ifs" 2013*593dc095SDavid du Colombier $show "$cmd" 2014*593dc095SDavid du Colombier $run eval "$cmd" 2015*593dc095SDavid du Colombier done 2016*593dc095SDavid du Colombier IFS="$save_ifs" 2017*593dc095SDavid du Colombier fi 2018*593dc095SDavid du Colombier if test -n "$finish_eval"; then 2019*593dc095SDavid du Colombier # Do the single finish_eval. 2020*593dc095SDavid du Colombier eval cmds=\"$finish_eval\" 2021*593dc095SDavid du Colombier $run eval "$cmds" 2022*593dc095SDavid du Colombier fi 2023*593dc095SDavid du Colombier done 2024*593dc095SDavid du Colombier fi 2025*593dc095SDavid du Colombier 2026*593dc095SDavid du Colombier echo "------------------------------------------------------------------------------" 2027*593dc095SDavid du Colombier echo "Libraries have been installed in:" 2028*593dc095SDavid du Colombier for libdir in $libdirs; do 2029*593dc095SDavid du Colombier echo " $libdir" 2030*593dc095SDavid du Colombier done 2031*593dc095SDavid du Colombier echo 2032*593dc095SDavid du Colombier echo "To link against installed libraries in a given directory, LIBDIR," 2033*593dc095SDavid du Colombier echo "you must use the \`-LLIBDIR' flag during linking." 2034*593dc095SDavid du Colombier echo 2035*593dc095SDavid du Colombier echo " You will also need to do one of the following:" 2036*593dc095SDavid du Colombier if test -n "$shlibpath_var"; then 2037*593dc095SDavid du Colombier echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 2038*593dc095SDavid du Colombier echo " during execution" 2039*593dc095SDavid du Colombier fi 2040*593dc095SDavid du Colombier if test -n "$runpath_var"; then 2041*593dc095SDavid du Colombier echo " - add LIBDIR to the \`$runpath_var' environment variable" 2042*593dc095SDavid du Colombier echo " during linking" 2043*593dc095SDavid du Colombier fi 2044*593dc095SDavid du Colombier if test -n "$hardcode_libdir_flag_spec"; then 2045*593dc095SDavid du Colombier libdir=LIBDIR 2046*593dc095SDavid du Colombier eval flag=\"$hardcode_libdir_flag_spec\" 2047*593dc095SDavid du Colombier 2048*593dc095SDavid du Colombier echo " - use the \`$flag' linker flag" 2049*593dc095SDavid du Colombier fi 2050*593dc095SDavid du Colombier if test -f /etc/ld.so.conf; then 2051*593dc095SDavid du Colombier echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 2052*593dc095SDavid du Colombier fi 2053*593dc095SDavid du Colombier echo 2054*593dc095SDavid du Colombier echo "See any operating system documentation about shared libraries for" 2055*593dc095SDavid du Colombier echo "more information, such as the ld(1) and ld.so(8) manual pages." 2056*593dc095SDavid du Colombier echo "------------------------------------------------------------------------------" 2057*593dc095SDavid du Colombier exit 0 2058*593dc095SDavid du Colombier ;; 2059*593dc095SDavid du Colombier 2060*593dc095SDavid du Colombier # libtool execute mode 2061*593dc095SDavid du Colombier execute) 2062*593dc095SDavid du Colombier modename="$modename: execute" 2063*593dc095SDavid du Colombier 2064*593dc095SDavid du Colombier # The first argument is the command name. 2065*593dc095SDavid du Colombier cmd="$nonopt" 2066*593dc095SDavid du Colombier if test -z "$cmd"; then 2067*593dc095SDavid du Colombier $echo "$modename: you must specify a COMMAND" 1>&2 2068*593dc095SDavid du Colombier $echo "$help" 2069*593dc095SDavid du Colombier exit 1 2070*593dc095SDavid du Colombier fi 2071*593dc095SDavid du Colombier 2072*593dc095SDavid du Colombier # Handle -dlopen flags immediately. 2073*593dc095SDavid du Colombier for file in $execute_dlfiles; do 2074*593dc095SDavid du Colombier if test -f "$file"; then : 2075*593dc095SDavid du Colombier else 2076*593dc095SDavid du Colombier $echo "$modename: \`$file' is not a file" 1>&2 2077*593dc095SDavid du Colombier $echo "$help" 1>&2 2078*593dc095SDavid du Colombier exit 1 2079*593dc095SDavid du Colombier fi 2080*593dc095SDavid du Colombier 2081*593dc095SDavid du Colombier dir= 2082*593dc095SDavid du Colombier case "$file" in 2083*593dc095SDavid du Colombier *.la) 2084*593dc095SDavid du Colombier # Check to see that this really is a libtool archive. 2085*593dc095SDavid du Colombier if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then : 2086*593dc095SDavid du Colombier else 2087*593dc095SDavid du Colombier $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 2088*593dc095SDavid du Colombier $echo "$help" 1>&2 2089*593dc095SDavid du Colombier exit 1 2090*593dc095SDavid du Colombier fi 2091*593dc095SDavid du Colombier 2092*593dc095SDavid du Colombier # Read the libtool library. 2093*593dc095SDavid du Colombier dlname= 2094*593dc095SDavid du Colombier library_names= 2095*593dc095SDavid du Colombier 2096*593dc095SDavid du Colombier # If there is no directory component, then add one. 2097*593dc095SDavid du Colombier case "$file" in 2098*593dc095SDavid du Colombier */* | *\\*) . $file ;; 2099*593dc095SDavid du Colombier *) . ./$file ;; 2100*593dc095SDavid du Colombier esac 2101*593dc095SDavid du Colombier 2102*593dc095SDavid du Colombier # Skip this library if it cannot be dlopened. 2103*593dc095SDavid du Colombier if test -z "$dlname"; then 2104*593dc095SDavid du Colombier # Warn if it was a shared library. 2105*593dc095SDavid du Colombier test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 2106*593dc095SDavid du Colombier continue 2107*593dc095SDavid du Colombier fi 2108*593dc095SDavid du Colombier 2109*593dc095SDavid du Colombier dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 2110*593dc095SDavid du Colombier test "X$dir" = "X$file" && dir=. 2111*593dc095SDavid du Colombier 2112*593dc095SDavid du Colombier if test -f "$dir/$objdir/$dlname"; then 2113*593dc095SDavid du Colombier dir="$dir/$objdir" 2114*593dc095SDavid du Colombier else 2115*593dc095SDavid du Colombier $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 2116*593dc095SDavid du Colombier exit 1 2117*593dc095SDavid du Colombier fi 2118*593dc095SDavid du Colombier ;; 2119*593dc095SDavid du Colombier 2120*593dc095SDavid du Colombier *.lo) 2121*593dc095SDavid du Colombier # Just add the directory containing the .lo file. 2122*593dc095SDavid du Colombier dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 2123*593dc095SDavid du Colombier test "X$dir" = "X$file" && dir=. 2124*593dc095SDavid du Colombier ;; 2125*593dc095SDavid du Colombier 2126*593dc095SDavid du Colombier *) 2127*593dc095SDavid du Colombier $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 2128*593dc095SDavid du Colombier continue 2129*593dc095SDavid du Colombier ;; 2130*593dc095SDavid du Colombier esac 2131*593dc095SDavid du Colombier 2132*593dc095SDavid du Colombier # Get the absolute pathname. 2133*593dc095SDavid du Colombier absdir=`cd "$dir" && pwd` 2134*593dc095SDavid du Colombier test -n "$absdir" && dir="$absdir" 2135*593dc095SDavid du Colombier 2136*593dc095SDavid du Colombier # Now add the directory to shlibpath_var. 2137*593dc095SDavid du Colombier if eval "test -z \"\$$shlibpath_var\""; then 2138*593dc095SDavid du Colombier eval "$shlibpath_var=\"\$dir\"" 2139*593dc095SDavid du Colombier else 2140*593dc095SDavid du Colombier eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 2141*593dc095SDavid du Colombier fi 2142*593dc095SDavid du Colombier done 2143*593dc095SDavid du Colombier 2144*593dc095SDavid du Colombier # This variable tells wrapper scripts just to set shlibpath_var 2145*593dc095SDavid du Colombier # rather than running their programs. 2146*593dc095SDavid du Colombier libtool_execute_magic="$magic" 2147*593dc095SDavid du Colombier 2148*593dc095SDavid du Colombier # Check if any of the arguments is a wrapper script. 2149*593dc095SDavid du Colombier args= 2150*593dc095SDavid du Colombier for file 2151*593dc095SDavid du Colombier do 2152*593dc095SDavid du Colombier case "$file" in 2153*593dc095SDavid du Colombier -*) ;; 2154*593dc095SDavid du Colombier *) 2155*593dc095SDavid du Colombier # Do a test to see if this is really a libtool program. 2156*593dc095SDavid du Colombier if (sed -e '4q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then 2157*593dc095SDavid du Colombier # If there is no directory component, then add one. 2158*593dc095SDavid du Colombier case "$file" in 2159*593dc095SDavid du Colombier */* | *\\*) . $file ;; 2160*593dc095SDavid du Colombier *) . ./$file ;; 2161*593dc095SDavid du Colombier esac 2162*593dc095SDavid du Colombier 2163*593dc095SDavid du Colombier # Transform arg to wrapped name. 2164*593dc095SDavid du Colombier file="$progdir/$program" 2165*593dc095SDavid du Colombier fi 2166*593dc095SDavid du Colombier ;; 2167*593dc095SDavid du Colombier esac 2168*593dc095SDavid du Colombier # Quote arguments (to preserve shell metacharacters). 2169*593dc095SDavid du Colombier file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 2170*593dc095SDavid du Colombier args="$args \"$file\"" 2171*593dc095SDavid du Colombier done 2172*593dc095SDavid du Colombier 2173*593dc095SDavid du Colombier if test -z "$run"; then 2174*593dc095SDavid du Colombier # Export the shlibpath_var. 2175*593dc095SDavid du Colombier eval "export $shlibpath_var" 2176*593dc095SDavid du Colombier 2177*593dc095SDavid du Colombier # Now actually exec the command. 2178*593dc095SDavid du Colombier eval "exec \$cmd$args" 2179*593dc095SDavid du Colombier 2180*593dc095SDavid du Colombier $echo "$modename: cannot exec \$cmd$args" 2181*593dc095SDavid du Colombier exit 1 2182*593dc095SDavid du Colombier else 2183*593dc095SDavid du Colombier # Display what would be done. 2184*593dc095SDavid du Colombier eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 2185*593dc095SDavid du Colombier $echo "export $shlibpath_var" 2186*593dc095SDavid du Colombier $echo "$cmd$args" 2187*593dc095SDavid du Colombier exit 0 2188*593dc095SDavid du Colombier fi 2189*593dc095SDavid du Colombier ;; 2190*593dc095SDavid du Colombier 2191*593dc095SDavid du Colombier # libtool uninstall mode 2192*593dc095SDavid du Colombier uninstall) 2193*593dc095SDavid du Colombier modename="$modename: uninstall" 2194*593dc095SDavid du Colombier rm="$nonopt" 2195*593dc095SDavid du Colombier files= 2196*593dc095SDavid du Colombier 2197*593dc095SDavid du Colombier for arg 2198*593dc095SDavid du Colombier do 2199*593dc095SDavid du Colombier case "$arg" in 2200*593dc095SDavid du Colombier -*) rm="$rm $arg" ;; 2201*593dc095SDavid du Colombier *) files="$files $arg" ;; 2202*593dc095SDavid du Colombier esac 2203*593dc095SDavid du Colombier done 2204*593dc095SDavid du Colombier 2205*593dc095SDavid du Colombier if test -z "$rm"; then 2206*593dc095SDavid du Colombier $echo "$modename: you must specify an RM program" 1>&2 2207*593dc095SDavid du Colombier $echo "$help" 1>&2 2208*593dc095SDavid du Colombier exit 1 2209*593dc095SDavid du Colombier fi 2210*593dc095SDavid du Colombier 2211*593dc095SDavid du Colombier for file in $files; do 2212*593dc095SDavid du Colombier dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 2213*593dc095SDavid du Colombier test "X$dir" = "X$file" && dir=. 2214*593dc095SDavid du Colombier name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 2215*593dc095SDavid du Colombier 2216*593dc095SDavid du Colombier rmfiles="$file" 2217*593dc095SDavid du Colombier 2218*593dc095SDavid du Colombier case "$name" in 2219*593dc095SDavid du Colombier *.la) 2220*593dc095SDavid du Colombier # Possibly a libtool archive, so verify it. 2221*593dc095SDavid du Colombier if (sed -e '2q' $file | egrep '^# Generated by ltmain\.sh') >/dev/null 2>&1; then 2222*593dc095SDavid du Colombier . $dir/$name 2223*593dc095SDavid du Colombier 2224*593dc095SDavid du Colombier # Delete the libtool libraries and symlinks. 2225*593dc095SDavid du Colombier for n in $library_names; do 2226*593dc095SDavid du Colombier rmfiles="$rmfiles $dir/$n" 2227*593dc095SDavid du Colombier test "X$n" = "X$dlname" && dlname= 2228*593dc095SDavid du Colombier done 2229*593dc095SDavid du Colombier test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" 2230*593dc095SDavid du Colombier test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" 2231*593dc095SDavid du Colombier 2232*593dc095SDavid du Colombier $show "$rm $rmfiles" 2233*593dc095SDavid du Colombier $run $rm $rmfiles 2234*593dc095SDavid du Colombier 2235*593dc095SDavid du Colombier if test -n "$library_names"; then 2236*593dc095SDavid du Colombier # Do each command in the postuninstall commands. 2237*593dc095SDavid du Colombier eval cmds=\"$postuninstall_cmds\" 2238*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 2239*593dc095SDavid du Colombier for cmd in $cmds; do 2240*593dc095SDavid du Colombier IFS="$save_ifs" 2241*593dc095SDavid du Colombier $show "$cmd" 2242*593dc095SDavid du Colombier $run eval "$cmd" 2243*593dc095SDavid du Colombier done 2244*593dc095SDavid du Colombier IFS="$save_ifs" 2245*593dc095SDavid du Colombier fi 2246*593dc095SDavid du Colombier 2247*593dc095SDavid du Colombier if test -n "$old_library"; then 2248*593dc095SDavid du Colombier # Do each command in the old_postuninstall commands. 2249*593dc095SDavid du Colombier eval cmds=\"$old_postuninstall_cmds\" 2250*593dc095SDavid du Colombier IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' 2251*593dc095SDavid du Colombier for cmd in $cmds; do 2252*593dc095SDavid du Colombier IFS="$save_ifs" 2253*593dc095SDavid du Colombier $show "$cmd" 2254*593dc095SDavid du Colombier $run eval "$cmd" 2255*593dc095SDavid du Colombier done 2256*593dc095SDavid du Colombier IFS="$save_ifs" 2257*593dc095SDavid du Colombier fi 2258*593dc095SDavid du Colombier 2259*593dc095SDavid du Colombier # FIXME: should reinstall the best remaining shared library. 2260*593dc095SDavid du Colombier fi 2261*593dc095SDavid du Colombier ;; 2262*593dc095SDavid du Colombier 2263*593dc095SDavid du Colombier *.lo) 2264*593dc095SDavid du Colombier if test "$build_old_libs" = yes; then 2265*593dc095SDavid du Colombier oldobj=`$echo "X$name" | $Xsed -e 's/\.lo$/\.o/'` 2266*593dc095SDavid du Colombier rmfiles="$rmfiles $dir/$oldobj" 2267*593dc095SDavid du Colombier fi 2268*593dc095SDavid du Colombier $show "$rm $rmfiles" 2269*593dc095SDavid du Colombier $run $rm $rmfiles 2270*593dc095SDavid du Colombier ;; 2271*593dc095SDavid du Colombier 2272*593dc095SDavid du Colombier *) 2273*593dc095SDavid du Colombier $show "$rm $rmfiles" 2274*593dc095SDavid du Colombier $run $rm $rmfiles 2275*593dc095SDavid du Colombier ;; 2276*593dc095SDavid du Colombier esac 2277*593dc095SDavid du Colombier done 2278*593dc095SDavid du Colombier exit 0 2279*593dc095SDavid du Colombier ;; 2280*593dc095SDavid du Colombier 2281*593dc095SDavid du Colombier "") 2282*593dc095SDavid du Colombier $echo "$modename: you must specify a MODE" 1>&2 2283*593dc095SDavid du Colombier $echo "$generic_help" 1>&2 2284*593dc095SDavid du Colombier exit 1 2285*593dc095SDavid du Colombier ;; 2286*593dc095SDavid du Colombier esac 2287*593dc095SDavid du Colombier 2288*593dc095SDavid du Colombier $echo "$modename: invalid operation mode \`$mode'" 1>&2 2289*593dc095SDavid du Colombier $echo "$generic_help" 1>&2 2290*593dc095SDavid du Colombier exit 1 2291*593dc095SDavid du Colombierfi # test -z "$show_help" 2292*593dc095SDavid du Colombier 2293*593dc095SDavid du Colombier# We need to display help for each of the modes. 2294*593dc095SDavid du Colombiercase "$mode" in 2295*593dc095SDavid du Colombier"") $echo \ 2296*593dc095SDavid du Colombier"Usage: $modename [OPTION]... [MODE-ARG]... 2297*593dc095SDavid du Colombier 2298*593dc095SDavid du ColombierProvide generalized library-building support services. 2299*593dc095SDavid du Colombier 2300*593dc095SDavid du Colombier-n, --dry-run display commands without modifying any files 2301*593dc095SDavid du Colombier --features display configuration information and exit 2302*593dc095SDavid du Colombier --finish same as \`--mode=finish' 2303*593dc095SDavid du Colombier --help display this help message and exit 2304*593dc095SDavid du Colombier --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 2305*593dc095SDavid du Colombier --quiet same as \`--silent' 2306*593dc095SDavid du Colombier --silent don't print informational messages 2307*593dc095SDavid du Colombier --version print version information 2308*593dc095SDavid du Colombier 2309*593dc095SDavid du ColombierMODE must be one of the following: 2310*593dc095SDavid du Colombier 2311*593dc095SDavid du Colombier compile compile a source file into a libtool object 2312*593dc095SDavid du Colombier execute automatically set library path, then run a program 2313*593dc095SDavid du Colombier finish complete the installation of libtool libraries 2314*593dc095SDavid du Colombier install install libraries or executables 2315*593dc095SDavid du Colombier link create a library or an executable 2316*593dc095SDavid du Colombier uninstall remove libraries from an installed directory 2317*593dc095SDavid du Colombier 2318*593dc095SDavid du ColombierMODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 2319*593dc095SDavid du Colombiera more detailed description of MODE." 2320*593dc095SDavid du Colombier exit 0 2321*593dc095SDavid du Colombier ;; 2322*593dc095SDavid du Colombier 2323*593dc095SDavid du Colombiercompile) 2324*593dc095SDavid du Colombier $echo \ 2325*593dc095SDavid du Colombier"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 2326*593dc095SDavid du Colombier 2327*593dc095SDavid du ColombierCompile a source file into a libtool library object. 2328*593dc095SDavid du Colombier 2329*593dc095SDavid du ColombierCOMPILE-COMMAND is a command to be used in creating a \`standard' object file 2330*593dc095SDavid du Colombierfrom the given SOURCEFILE. 2331*593dc095SDavid du Colombier 2332*593dc095SDavid du ColombierThe output file name is determined by removing the directory component from 2333*593dc095SDavid du ColombierSOURCEFILE, then substituting the C source code suffix \`.c' with the 2334*593dc095SDavid du Colombierlibrary object suffix, \`.lo'." 2335*593dc095SDavid du Colombier ;; 2336*593dc095SDavid du Colombier 2337*593dc095SDavid du Colombierexecute) 2338*593dc095SDavid du Colombier $echo \ 2339*593dc095SDavid du Colombier"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 2340*593dc095SDavid du Colombier 2341*593dc095SDavid du ColombierAutomatically set library path, then run a program. 2342*593dc095SDavid du Colombier 2343*593dc095SDavid du ColombierThis mode accepts the following additional options: 2344*593dc095SDavid du Colombier 2345*593dc095SDavid du Colombier -dlopen FILE add the directory containing FILE to the library path 2346*593dc095SDavid du Colombier 2347*593dc095SDavid du ColombierThis mode sets the library path environment variable according to \`-dlopen' 2348*593dc095SDavid du Colombierflags. 2349*593dc095SDavid du Colombier 2350*593dc095SDavid du ColombierIf any of the ARGS are libtool executable wrappers, then they are translated 2351*593dc095SDavid du Colombierinto their corresponding uninstalled binary, and any of their required library 2352*593dc095SDavid du Colombierdirectories are added to the library path. 2353*593dc095SDavid du Colombier 2354*593dc095SDavid du ColombierThen, COMMAND is executed, with ARGS as arguments." 2355*593dc095SDavid du Colombier ;; 2356*593dc095SDavid du Colombier 2357*593dc095SDavid du Colombierfinish) 2358*593dc095SDavid du Colombier $echo \ 2359*593dc095SDavid du Colombier"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 2360*593dc095SDavid du Colombier 2361*593dc095SDavid du ColombierComplete the installation of libtool libraries. 2362*593dc095SDavid du Colombier 2363*593dc095SDavid du ColombierEach LIBDIR is a directory that contains libtool libraries. 2364*593dc095SDavid du Colombier 2365*593dc095SDavid du ColombierThe commands that this mode executes may require superuser privileges. Use 2366*593dc095SDavid du Colombierthe \`--dry-run' option if you just want to see what would be executed." 2367*593dc095SDavid du Colombier ;; 2368*593dc095SDavid du Colombier 2369*593dc095SDavid du Colombierinstall) 2370*593dc095SDavid du Colombier $echo \ 2371*593dc095SDavid du Colombier"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 2372*593dc095SDavid du Colombier 2373*593dc095SDavid du ColombierInstall executables or libraries. 2374*593dc095SDavid du Colombier 2375*593dc095SDavid du ColombierINSTALL-COMMAND is the installation command. The first component should be 2376*593dc095SDavid du Colombiereither the \`install' or \`cp' program. 2377*593dc095SDavid du Colombier 2378*593dc095SDavid du ColombierThe rest of the components are interpreted as arguments to that command (only 2379*593dc095SDavid du ColombierBSD-compatible install options are recognized)." 2380*593dc095SDavid du Colombier ;; 2381*593dc095SDavid du Colombier 2382*593dc095SDavid du Colombierlink) 2383*593dc095SDavid du Colombier $echo \ 2384*593dc095SDavid du Colombier"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 2385*593dc095SDavid du Colombier 2386*593dc095SDavid du ColombierLink object files or libraries together to form another library, or to 2387*593dc095SDavid du Colombiercreate an executable program. 2388*593dc095SDavid du Colombier 2389*593dc095SDavid du ColombierLINK-COMMAND is a command using the C compiler that you would use to create 2390*593dc095SDavid du Colombiera program from several object files. 2391*593dc095SDavid du Colombier 2392*593dc095SDavid du ColombierThe following components of LINK-COMMAND are treated specially: 2393*593dc095SDavid du Colombier 2394*593dc095SDavid du Colombier -all-static do not do any dynamic linking at all 2395*593dc095SDavid du Colombier -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 2396*593dc095SDavid du Colombier -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols 2397*593dc095SDavid du Colombier -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 2398*593dc095SDavid du Colombier -LLIBDIR search LIBDIR for required installed libraries 2399*593dc095SDavid du Colombier -lNAME OUTPUT-FILE requires the installed library libNAME 2400*593dc095SDavid du Colombier -no-undefined declare that a library does not refer to external symbols 2401*593dc095SDavid du Colombier -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 2402*593dc095SDavid du Colombier -release RELEASE specify package release information 2403*593dc095SDavid du Colombier -rpath LIBDIR the created library will eventually be installed in LIBDIR 2404*593dc095SDavid du Colombier -static do not do any dynamic linking of libtool libraries 2405*593dc095SDavid du Colombier -version-info CURRENT[:REVISION[:AGE]] 2406*593dc095SDavid du Colombier specify library version info [each variable defaults to 0] 2407*593dc095SDavid du Colombier 2408*593dc095SDavid du ColombierAll other options (arguments beginning with \`-') are ignored. 2409*593dc095SDavid du Colombier 2410*593dc095SDavid du ColombierEvery other argument is treated as a filename. Files ending in \`.la' are 2411*593dc095SDavid du Colombiertreated as uninstalled libtool libraries, other files are standard or library 2412*593dc095SDavid du Colombierobject files. 2413*593dc095SDavid du Colombier 2414*593dc095SDavid du ColombierIf the OUTPUT-FILE ends in \`.la', then a libtool library is created, only 2415*593dc095SDavid du Colombierlibrary objects (\`.lo' files) may be specified, and \`-rpath' is required. 2416*593dc095SDavid du Colombier 2417*593dc095SDavid du ColombierIf OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar' 2418*593dc095SDavid du Colombierand \`ranlib'. 2419*593dc095SDavid du Colombier 2420*593dc095SDavid du ColombierIf OUTPUT-FILE ends in \`.lo' or \`.o', then a reloadable object file is 2421*593dc095SDavid du Colombiercreated, otherwise an executable program is created." 2422*593dc095SDavid du Colombier ;; 2423*593dc095SDavid du Colombier 2424*593dc095SDavid du Colombieruninstall) 2425*593dc095SDavid du Colombier $echo 2426*593dc095SDavid du Colombier"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 2427*593dc095SDavid du Colombier 2428*593dc095SDavid du ColombierRemove libraries from an installation directory. 2429*593dc095SDavid du Colombier 2430*593dc095SDavid du ColombierRM is the name of the program to use to delete files associated with each FILE 2431*593dc095SDavid du Colombier(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 2432*593dc095SDavid du Colombierto RM. 2433*593dc095SDavid du Colombier 2434*593dc095SDavid du ColombierIf FILE is a libtool library, all the files associated with it are deleted. 2435*593dc095SDavid du ColombierOtherwise, only FILE itself is deleted using RM." 2436*593dc095SDavid du Colombier ;; 2437*593dc095SDavid du Colombier 2438*593dc095SDavid du Colombier*) 2439*593dc095SDavid du Colombier $echo "$modename: invalid operation mode \`$mode'" 1>&2 2440*593dc095SDavid du Colombier $echo "$help" 1>&2 2441*593dc095SDavid du Colombier exit 1 2442*593dc095SDavid du Colombier ;; 2443*593dc095SDavid du Colombieresac 2444*593dc095SDavid du Colombier 2445*593dc095SDavid du Colombierecho 2446*593dc095SDavid du Colombier$echo "Try \`$modename --help' for more information about other modes." 2447*593dc095SDavid du Colombier 2448*593dc095SDavid du Colombierexit 0 2449*593dc095SDavid du Colombier 2450*593dc095SDavid du Colombier# Local Variables: 2451*593dc095SDavid du Colombier# mode:shell-script 2452*593dc095SDavid du Colombier# sh-indentation:2 2453*593dc095SDavid du Colombier# End: 2454