/ Hex Artifact Content
Login

Artifact 3ff0879076df340d2e23ae905484d8c15d5fdea8:


0000: 23 20 47 65 6e 65 72 61 74 65 64 20 66 72 6f 6d  # Generated from
0010: 20 6c 74 6d 61 69 6e 2e 6d 34 73 68 2e 0a 0a 23   ltmain.m4sh...#
0020: 20 6c 74 6d 61 69 6e 2e 73 68 20 28 47 4e 55 20   ltmain.sh (GNU 
0030: 6c 69 62 74 6f 6f 6c 29 20 32 2e 32 2e 36 0a 23  libtool) 2.2.6.#
0040: 20 57 72 69 74 74 65 6e 20 62 79 20 47 6f 72 64   Written by Gord
0050: 6f 6e 20 4d 61 74 7a 69 67 6b 65 69 74 20 3c 67  on Matzigkeit <g
0060: 6f 72 64 40 67 6e 75 2e 61 69 2e 6d 69 74 2e 65  ord@gnu.ai.mit.e
0070: 64 75 3e 2c 20 31 39 39 36 0a 0a 23 20 43 6f 70  du>, 1996..# Cop
0080: 79 72 69 67 68 74 20 28 43 29 20 31 39 39 36 2c  yright (C) 1996,
0090: 20 31 39 39 37 2c 20 31 39 39 38 2c 20 31 39 39   1997, 1998, 199
00a0: 39 2c 20 32 30 30 30 2c 20 32 30 30 31 2c 20 32  9, 2000, 2001, 2
00b0: 30 30 33 2c 20 32 30 30 34 2c 20 32 30 30 35 2c  003, 2004, 2005,
00c0: 20 32 30 30 36 2c 20 32 30 30 37 20 32 30 30 38   2006, 2007 2008
00d0: 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46   Free Software F
00e0: 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a  oundation, Inc..
00f0: 23 20 54 68 69 73 20 69 73 20 66 72 65 65 20 73  # This is free s
0100: 6f 66 74 77 61 72 65 3b 20 73 65 65 20 74 68 65  oftware; see the
0110: 20 73 6f 75 72 63 65 20 66 6f 72 20 63 6f 70 79   source for copy
0120: 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 20  ing conditions. 
0130: 20 54 68 65 72 65 20 69 73 20 4e 4f 0a 23 20 77   There is NO.# w
0140: 61 72 72 61 6e 74 79 3b 20 6e 6f 74 20 65 76 65  arranty; not eve
0150: 6e 20 66 6f 72 20 4d 45 52 43 48 41 4e 54 41 42  n for MERCHANTAB
0160: 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53  ILITY or FITNESS
0170: 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41   FOR A PARTICULA
0180: 52 20 50 55 52 50 4f 53 45 2e 0a 0a 23 20 47 4e  R PURPOSE...# GN
0190: 55 20 4c 69 62 74 6f 6f 6c 20 69 73 20 66 72 65  U Libtool is fre
01a0: 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20  e software; you 
01b0: 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65  can redistribute
01c0: 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66   it and/or modif
01d0: 79 0a 23 20 69 74 20 75 6e 64 65 72 20 74 68 65  y.# it under the
01e0: 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e   terms of the GN
01f0: 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  U General Public
0200: 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c   License as publ
0210: 69 73 68 65 64 20 62 79 0a 23 20 74 68 65 20 46  ished by.# the F
0220: 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75  ree Software Fou
0230: 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20  ndation; either 
0240: 76 65 72 73 69 6f 6e 20 32 20 6f 66 20 74 68 65  version 2 of the
0250: 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 23 20 28   License, or.# (
0260: 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20  at your option) 
0270: 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f  any later versio
0280: 6e 2e 0a 23 0a 23 20 41 73 20 61 20 73 70 65 63  n..#.# As a spec
0290: 69 61 6c 20 65 78 63 65 70 74 69 6f 6e 20 74 6f  ial exception to
02a0: 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c   the GNU General
02b0: 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c   Public License,
02c0: 0a 23 20 69 66 20 79 6f 75 20 64 69 73 74 72 69  .# if you distri
02d0: 62 75 74 65 20 74 68 69 73 20 66 69 6c 65 20 61  bute this file a
02e0: 73 20 70 61 72 74 20 6f 66 20 61 20 70 72 6f 67  s part of a prog
02f0: 72 61 6d 20 6f 72 20 6c 69 62 72 61 72 79 20 74  ram or library t
0300: 68 61 74 0a 23 20 69 73 20 62 75 69 6c 74 20 75  hat.# is built u
0310: 73 69 6e 67 20 47 4e 55 20 4c 69 62 74 6f 6f 6c  sing GNU Libtool
0320: 2c 20 79 6f 75 20 6d 61 79 20 69 6e 63 6c 75 64  , you may includ
0330: 65 20 74 68 69 73 20 66 69 6c 65 20 75 6e 64 65  e this file unde
0340: 72 20 74 68 65 0a 23 20 73 61 6d 65 20 64 69 73  r the.# same dis
0350: 74 72 69 62 75 74 69 6f 6e 20 74 65 72 6d 73 20  tribution terms 
0360: 74 68 61 74 20 79 6f 75 20 75 73 65 20 66 6f 72  that you use for
0370: 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 61   the rest of tha
0380: 74 20 70 72 6f 67 72 61 6d 2e 0a 23 0a 23 20 47  t program..#.# G
0390: 4e 55 20 4c 69 62 74 6f 6f 6c 20 69 73 20 64 69  NU Libtool is di
03a0: 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65  stributed in the
03b0: 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69   hope that it wi
03c0: 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75  ll be useful, bu
03d0: 74 0a 23 20 57 49 54 48 4f 55 54 20 41 4e 59 20  t.# WITHOUT ANY 
03e0: 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75  WARRANTY; withou
03f0: 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69  t even the impli
0400: 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 23  ed warranty of.#
0410: 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59   MERCHANTABILITY
0420: 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20   or FITNESS FOR 
0430: 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52  A PARTICULAR PUR
0440: 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47  POSE.  See the G
0450: 4e 55 0a 23 20 47 65 6e 65 72 61 6c 20 50 75 62  NU.# General Pub
0460: 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20  lic License for 
0470: 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 23 0a  more details..#.
0480: 23 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76  # You should hav
0490: 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70  e received a cop
04a0: 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e  y of the GNU Gen
04b0: 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65  eral Public Lice
04c0: 6e 73 65 0a 23 20 61 6c 6f 6e 67 20 77 69 74 68  nse.# along with
04d0: 20 47 4e 55 20 4c 69 62 74 6f 6f 6c 3b 20 73 65   GNU Libtool; se
04e0: 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49  e the file COPYI
04f0: 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 61 20 63  NG.  If not, a c
0500: 6f 70 79 0a 23 20 63 61 6e 20 62 65 20 64 6f 77  opy.# can be dow
0510: 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 20 68 74 74  nloaded from htt
0520: 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f  p://www.gnu.org/
0530: 6c 69 63 65 6e 73 65 73 2f 67 70 6c 2e 68 74 6d  licenses/gpl.htm
0540: 6c 2c 0a 23 20 6f 72 20 6f 62 74 61 69 6e 65 64  l,.# or obtained
0550: 20 62 79 20 77 72 69 74 69 6e 67 20 74 6f 20 74   by writing to t
0560: 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65  he Free Software
0570: 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63   Foundation, Inc
0580: 2e 2c 0a 23 20 35 31 20 46 72 61 6e 6b 6c 69 6e  .,.# 51 Franklin
0590: 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46   Street, Fifth F
05a0: 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41  loor, Boston, MA
05b0: 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41   02110-1301, USA
05c0: 2e 0a 0a 23 20 55 73 61 67 65 3a 20 24 70 72 6f  ...# Usage: $pro
05d0: 67 6e 61 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e 2e  gname [OPTION]..
05e0: 2e 20 5b 4d 4f 44 45 2d 41 52 47 5d 2e 2e 2e 0a  . [MODE-ARG]....
05f0: 23 0a 23 20 50 72 6f 76 69 64 65 20 67 65 6e 65  #.# Provide gene
0600: 72 61 6c 69 7a 65 64 20 6c 69 62 72 61 72 79 2d  ralized library-
0610: 62 75 69 6c 64 69 6e 67 20 73 75 70 70 6f 72 74  building support
0620: 20 73 65 72 76 69 63 65 73 2e 0a 23 0a 23 20 20   services..#.#  
0630: 20 20 20 2d 2d 63 6f 6e 66 69 67 20 20 20 20 20     --config     
0640: 20 20 20 20 20 20 20 20 73 68 6f 77 20 61 6c 6c          show all
0650: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 76   configuration v
0660: 61 72 69 61 62 6c 65 73 0a 23 20 20 20 20 20 2d  ariables.#     -
0670: 2d 64 65 62 75 67 20 20 20 20 20 20 20 20 20 20  -debug          
0680: 20 20 20 20 65 6e 61 62 6c 65 20 76 65 72 62 6f      enable verbo
0690: 73 65 20 73 68 65 6c 6c 20 74 72 61 63 69 6e 67  se shell tracing
06a0: 0a 23 20 2d 6e 2c 20 2d 2d 64 72 79 2d 72 75 6e  .# -n, --dry-run
06b0: 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70              disp
06c0: 6c 61 79 20 63 6f 6d 6d 61 6e 64 73 20 77 69 74  lay commands wit
06d0: 68 6f 75 74 20 6d 6f 64 69 66 79 69 6e 67 20 61  hout modifying a
06e0: 6e 79 20 66 69 6c 65 73 0a 23 20 20 20 20 20 2d  ny files.#     -
06f0: 2d 66 65 61 74 75 72 65 73 20 20 20 20 20 20 20  -features       
0700: 20 20 20 20 64 69 73 70 6c 61 79 20 62 61 73 69      display basi
0710: 63 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  c configuration 
0720: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20  information and 
0730: 65 78 69 74 0a 23 20 20 20 20 20 2d 2d 6d 6f 64  exit.#     --mod
0740: 65 3d 4d 4f 44 45 20 20 20 20 20 20 20 20 20 20  e=MODE          
0750: 75 73 65 20 6f 70 65 72 61 74 69 6f 6e 20 6d 6f  use operation mo
0760: 64 65 20 4d 4f 44 45 0a 23 20 20 20 20 20 2d 2d  de MODE.#     --
0770: 70 72 65 73 65 72 76 65 2d 64 75 70 2d 64 65 70  preserve-dup-dep
0780: 73 20 20 64 6f 6e 27 74 20 72 65 6d 6f 76 65 20  s  don't remove 
0790: 64 75 70 6c 69 63 61 74 65 20 64 65 70 65 6e 64  duplicate depend
07a0: 65 6e 63 79 20 6c 69 62 72 61 72 69 65 73 0a 23  ency libraries.#
07b0: 20 20 20 20 20 2d 2d 71 75 69 65 74 2c 20 2d 2d       --quiet, --
07c0: 73 69 6c 65 6e 74 20 20 20 20 64 6f 6e 27 74 20  silent    don't 
07d0: 70 72 69 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f  print informatio
07e0: 6e 61 6c 20 6d 65 73 73 61 67 65 73 0a 23 20 20  nal messages.#  
07f0: 20 20 20 2d 2d 74 61 67 3d 54 41 47 20 20 20 20     --tag=TAG    
0800: 20 20 20 20 20 20 20 20 75 73 65 20 63 6f 6e 66          use conf
0810: 69 67 75 72 61 74 69 6f 6e 20 76 61 72 69 61 62  iguration variab
0820: 6c 65 73 20 66 72 6f 6d 20 74 61 67 20 54 41 47  les from tag TAG
0830: 0a 23 20 2d 76 2c 20 2d 2d 76 65 72 62 6f 73 65  .# -v, --verbose
0840: 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e              prin
0850: 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 61 6c 20  t informational 
0860: 6d 65 73 73 61 67 65 73 20 28 64 65 66 61 75 6c  messages (defaul
0870: 74 29 0a 23 20 20 20 20 20 2d 2d 76 65 72 73 69  t).#     --versi
0880: 6f 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 72  on            pr
0890: 69 6e 74 20 76 65 72 73 69 6f 6e 20 69 6e 66 6f  int version info
08a0: 72 6d 61 74 69 6f 6e 0a 23 20 2d 68 2c 20 2d 2d  rmation.# -h, --
08b0: 68 65 6c 70 20 20 20 20 20 20 20 20 20 20 20 20  help            
08c0: 20 20 20 70 72 69 6e 74 20 73 68 6f 72 74 20 6f     print short o
08d0: 72 20 6c 6f 6e 67 20 68 65 6c 70 20 6d 65 73 73  r long help mess
08e0: 61 67 65 0a 23 0a 23 20 4d 4f 44 45 20 6d 75 73  age.#.# MODE mus
08f0: 74 20 62 65 20 6f 6e 65 20 6f 66 20 74 68 65 20  t be one of the 
0900: 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 23 0a 23 20 20  following:.#.#  
0910: 20 20 20 20 20 63 6c 65 61 6e 20 20 20 20 20 20       clean      
0920: 20 20 20 20 20 20 20 20 72 65 6d 6f 76 65 20 66          remove f
0930: 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 62 75  iles from the bu
0940: 69 6c 64 20 64 69 72 65 63 74 6f 72 79 0a 23 20  ild directory.# 
0950: 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 20 20        compile   
0960: 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 65           compile
0970: 20 61 20 73 6f 75 72 63 65 20 66 69 6c 65 20 69   a source file i
0980: 6e 74 6f 20 61 20 6c 69 62 74 6f 6f 6c 20 6f 62  nto a libtool ob
0990: 6a 65 63 74 0a 23 20 20 20 20 20 20 20 65 78 65  ject.#       exe
09a0: 63 75 74 65 20 20 20 20 20 20 20 20 20 20 20 20  cute            
09b0: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73 65  automatically se
09c0: 74 20 6c 69 62 72 61 72 79 20 70 61 74 68 2c 20  t library path, 
09d0: 74 68 65 6e 20 72 75 6e 20 61 20 70 72 6f 67 72  then run a progr
09e0: 61 6d 0a 23 20 20 20 20 20 20 20 66 69 6e 69 73  am.#       finis
09f0: 68 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f  h             co
0a00: 6d 70 6c 65 74 65 20 74 68 65 20 69 6e 73 74 61  mplete the insta
0a10: 6c 6c 61 74 69 6f 6e 20 6f 66 20 6c 69 62 74 6f  llation of libto
0a20: 6f 6c 20 6c 69 62 72 61 72 69 65 73 0a 23 20 20  ol libraries.#  
0a30: 20 20 20 20 20 69 6e 73 74 61 6c 6c 20 20 20 20       install    
0a40: 20 20 20 20 20 20 20 20 69 6e 73 74 61 6c 6c 20          install 
0a50: 6c 69 62 72 61 72 69 65 73 20 6f 72 20 65 78 65  libraries or exe
0a60: 63 75 74 61 62 6c 65 73 0a 23 20 20 20 20 20 20  cutables.#      
0a70: 20 6c 69 6e 6b 20 20 20 20 20 20 20 20 20 20 20   link           
0a80: 20 20 20 20 63 72 65 61 74 65 20 61 20 6c 69 62      create a lib
0a90: 72 61 72 79 20 6f 72 20 61 6e 20 65 78 65 63 75  rary or an execu
0aa0: 74 61 62 6c 65 0a 23 20 20 20 20 20 20 20 75 6e  table.#       un
0ab0: 69 6e 73 74 61 6c 6c 20 20 20 20 20 20 20 20 20  install         
0ac0: 20 72 65 6d 6f 76 65 20 6c 69 62 72 61 72 69 65   remove librarie
0ad0: 73 20 66 72 6f 6d 20 61 6e 20 69 6e 73 74 61 6c  s from an instal
0ae0: 6c 65 64 20 64 69 72 65 63 74 6f 72 79 0a 23 0a  led directory.#.
0af0: 23 20 4d 4f 44 45 2d 41 52 47 53 20 76 61 72 79  # MODE-ARGS vary
0b00: 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68   depending on th
0b10: 65 20 4d 4f 44 45 2e 0a 23 20 54 72 79 20 60 24  e MODE..# Try `$
0b20: 70 72 6f 67 6e 61 6d 65 20 2d 2d 68 65 6c 70 20  progname --help 
0b30: 2d 2d 6d 6f 64 65 3d 4d 4f 44 45 27 20 66 6f 72  --mode=MODE' for
0b40: 20 61 20 6d 6f 72 65 20 64 65 74 61 69 6c 65 64   a more detailed
0b50: 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20   description of 
0b60: 4d 4f 44 45 2e 0a 23 0a 23 20 57 68 65 6e 20 72  MODE..#.# When r
0b70: 65 70 6f 72 74 69 6e 67 20 61 20 62 75 67 2c 20  eporting a bug, 
0b80: 70 6c 65 61 73 65 20 64 65 73 63 72 69 62 65 20  please describe 
0b90: 61 20 74 65 73 74 20 63 61 73 65 20 74 6f 20 72  a test case to r
0ba0: 65 70 72 6f 64 75 63 65 20 69 74 20 61 6e 64 0a  eproduce it and.
0bb0: 23 20 69 6e 63 6c 75 64 65 20 74 68 65 20 66 6f  # include the fo
0bc0: 6c 6c 6f 77 69 6e 67 20 69 6e 66 6f 72 6d 61 74  llowing informat
0bd0: 69 6f 6e 3a 0a 23 0a 23 20 20 20 20 20 20 20 68  ion:.#.#       h
0be0: 6f 73 74 2d 74 72 69 70 6c 65 74 3a 09 24 68 6f  ost-triplet:.$ho
0bf0: 73 74 0a 23 20 20 20 20 20 20 20 73 68 65 6c 6c  st.#       shell
0c00: 3a 09 09 24 53 48 45 4c 4c 0a 23 20 20 20 20 20  :..$SHELL.#     
0c10: 20 20 63 6f 6d 70 69 6c 65 72 3a 09 09 24 4c 54    compiler:..$LT
0c20: 43 43 0a 23 20 20 20 20 20 20 20 63 6f 6d 70 69  CC.#       compi
0c30: 6c 65 72 20 66 6c 61 67 73 3a 09 09 24 4c 54 43  ler flags:..$LTC
0c40: 46 4c 41 47 53 0a 23 20 20 20 20 20 20 20 6c 69  FLAGS.#       li
0c50: 6e 6b 65 72 3a 09 09 24 4c 44 20 28 67 6e 75 3f  nker:..$LD (gnu?
0c60: 20 24 77 69 74 68 5f 67 6e 75 5f 6c 64 29 0a 23   $with_gnu_ld).#
0c70: 20 20 20 20 20 20 20 24 70 72 6f 67 6e 61 6d 65         $progname
0c80: 3a 09 09 28 47 4e 55 20 6c 69 62 74 6f 6f 6c 29  :..(GNU libtool)
0c90: 20 32 2e 32 2e 36 0a 23 20 20 20 20 20 20 20 61   2.2.6.#       a
0ca0: 75 74 6f 6d 61 6b 65 3a 09 09 24 61 75 74 6f 6d  utomake:..$autom
0cb0: 61 6b 65 5f 76 65 72 73 69 6f 6e 0a 23 20 20 20  ake_version.#   
0cc0: 20 20 20 20 61 75 74 6f 63 6f 6e 66 3a 09 09 24      autoconf:..$
0cd0: 61 75 74 6f 63 6f 6e 66 5f 76 65 72 73 69 6f 6e  autoconf_version
0ce0: 0a 23 0a 23 20 52 65 70 6f 72 74 20 62 75 67 73  .#.# Report bugs
0cf0: 20 74 6f 20 3c 62 75 67 2d 6c 69 62 74 6f 6f 6c   to <bug-libtool
0d00: 40 67 6e 75 2e 6f 72 67 3e 2e 0a 0a 50 52 4f 47  @gnu.org>...PROG
0d10: 52 41 4d 3d 6c 74 6d 61 69 6e 2e 73 68 0a 50 41  RAM=ltmain.sh.PA
0d20: 43 4b 41 47 45 3d 6c 69 62 74 6f 6f 6c 0a 56 45  CKAGE=libtool.VE
0d30: 52 53 49 4f 4e 3d 32 2e 32 2e 36 0a 54 49 4d 45  RSION=2.2.6.TIME
0d40: 53 54 41 4d 50 3d 22 22 0a 70 61 63 6b 61 67 65  STAMP="".package
0d50: 5f 72 65 76 69 73 69 6f 6e 3d 31 2e 33 30 31 32  _revision=1.3012
0d60: 0a 0a 23 20 42 65 20 42 6f 75 72 6e 65 20 63 6f  ..# Be Bourne co
0d70: 6d 70 61 74 69 62 6c 65 0a 69 66 20 74 65 73 74  mpatible.if test
0d80: 20 2d 6e 20 22 24 7b 5a 53 48 5f 56 45 52 53 49   -n "${ZSH_VERSI
0d90: 4f 4e 2b 73 65 74 7d 22 20 26 26 20 28 65 6d 75  ON+set}" && (emu
0da0: 6c 61 74 65 20 73 68 29 20 3e 2f 64 65 76 2f 6e  late sh) >/dev/n
0db0: 75 6c 6c 20 32 3e 26 31 3b 20 74 68 65 6e 0a 20  ull 2>&1; then. 
0dc0: 20 65 6d 75 6c 61 74 65 20 73 68 0a 20 20 4e 55   emulate sh.  NU
0dd0: 4c 4c 43 4d 44 3d 3a 0a 20 20 23 20 5a 73 68 20  LLCMD=:.  # Zsh 
0de0: 33 2e 78 20 61 6e 64 20 34 2e 78 20 70 65 72 66  3.x and 4.x perf
0df0: 6f 72 6d 73 20 77 6f 72 64 20 73 70 6c 69 74 74  orms word splitt
0e00: 69 6e 67 20 6f 6e 20 24 7b 31 2b 22 24 40 22 7d  ing on ${1+"$@"}
0e10: 2c 20 77 68 69 63 68 0a 20 20 23 20 69 73 20 63  , which.  # is c
0e20: 6f 6e 74 72 61 72 79 20 74 6f 20 6f 75 72 20 75  ontrary to our u
0e30: 73 61 67 65 2e 20 20 44 69 73 61 62 6c 65 20 74  sage.  Disable t
0e40: 68 69 73 20 66 65 61 74 75 72 65 2e 0a 20 20 61  his feature..  a
0e50: 6c 69 61 73 20 2d 67 20 27 24 7b 31 2b 22 24 40  lias -g '${1+"$@
0e60: 22 7d 27 3d 27 22 24 40 22 27 0a 20 20 73 65 74  "}'='"$@"'.  set
0e70: 6f 70 74 20 4e 4f 5f 47 4c 4f 42 5f 53 55 42 53  opt NO_GLOB_SUBS
0e80: 54 0a 65 6c 73 65 0a 20 20 63 61 73 65 20 60 28  T.else.  case `(
0e90: 73 65 74 20 2d 6f 29 20 32 3e 2f 64 65 76 2f 6e  set -o) 2>/dev/n
0ea0: 75 6c 6c 60 20 69 6e 20 2a 70 6f 73 69 78 2a 29  ull` in *posix*)
0eb0: 20 73 65 74 20 2d 6f 20 70 6f 73 69 78 3b 3b 20   set -o posix;; 
0ec0: 65 73 61 63 0a 66 69 0a 42 49 4e 5f 53 48 3d 78  esac.fi.BIN_SH=x
0ed0: 70 67 34 3b 20 65 78 70 6f 72 74 20 42 49 4e 5f  pg4; export BIN_
0ee0: 53 48 20 23 20 66 6f 72 20 54 72 75 36 34 0a 44  SH # for Tru64.D
0ef0: 55 41 4c 43 41 53 45 3d 31 3b 20 65 78 70 6f 72  UALCASE=1; expor
0f00: 74 20 44 55 41 4c 43 41 53 45 20 23 20 66 6f 72  t DUALCASE # for
0f10: 20 4d 4b 53 20 73 68 0a 0a 23 20 4e 4c 53 20 6e   MKS sh..# NLS n
0f20: 75 69 73 61 6e 63 65 73 3a 20 57 65 20 73 61 76  uisances: We sav
0f30: 65 20 74 68 65 20 6f 6c 64 20 76 61 6c 75 65 73  e the old values
0f40: 20 74 6f 20 72 65 73 74 6f 72 65 20 64 75 72 69   to restore duri
0f50: 6e 67 20 65 78 65 63 75 74 65 20 6d 6f 64 65 2e  ng execute mode.
0f60: 0a 23 20 4f 6e 6c 79 20 73 65 74 20 4c 41 4e 47  .# Only set LANG
0f70: 20 61 6e 64 20 4c 43 5f 41 4c 4c 20 74 6f 20 43   and LC_ALL to C
0f80: 20 69 66 20 61 6c 72 65 61 64 79 20 73 65 74 2e   if already set.
0f90: 0a 23 20 54 68 65 73 65 20 6d 75 73 74 20 6e 6f  .# These must no
0fa0: 74 20 62 65 20 73 65 74 20 75 6e 63 6f 6e 64 69  t be set uncondi
0fb0: 74 69 6f 6e 61 6c 6c 79 20 62 65 63 61 75 73 65  tionally because
0fc0: 20 6e 6f 74 20 61 6c 6c 20 73 79 73 74 65 6d 73   not all systems
0fd0: 20 75 6e 64 65 72 73 74 61 6e 64 0a 23 20 65 2e   understand.# e.
0fe0: 67 2e 20 4c 41 4e 47 3d 43 20 28 6e 6f 74 61 62  g. LANG=C (notab
0ff0: 6c 79 20 53 43 4f 29 2e 0a 6c 74 5f 75 73 65 72  ly SCO)..lt_user
1000: 5f 6c 6f 63 61 6c 65 3d 0a 6c 74 5f 73 61 66 65  _locale=.lt_safe
1010: 5f 6c 6f 63 61 6c 65 3d 0a 66 6f 72 20 6c 74 5f  _locale=.for lt_
1020: 76 61 72 20 69 6e 20 4c 41 4e 47 20 4c 41 4e 47  var in LANG LANG
1030: 55 41 47 45 20 4c 43 5f 41 4c 4c 20 4c 43 5f 43  UAGE LC_ALL LC_C
1040: 54 59 50 45 20 4c 43 5f 43 4f 4c 4c 41 54 45 20  TYPE LC_COLLATE 
1050: 4c 43 5f 4d 45 53 53 41 47 45 53 0a 64 6f 0a 20  LC_MESSAGES.do. 
1060: 20 65 76 61 6c 20 22 69 66 20 74 65 73 74 20 5c   eval "if test \
1070: 22 5c 24 7b 24 6c 74 5f 76 61 72 2b 73 65 74 7d  "\${$lt_var+set}
1080: 5c 22 20 3d 20 73 65 74 3b 20 74 68 65 6e 0a 20  \" = set; then. 
1090: 20 20 20 20 20 20 20 20 20 73 61 76 65 5f 24 6c           save_$l
10a0: 74 5f 76 61 72 3d 5c 24 24 6c 74 5f 76 61 72 0a  t_var=\$$lt_var.
10b0: 20 20 20 20 20 20 20 20 20 20 24 6c 74 5f 76 61            $lt_va
10c0: 72 3d 43 0a 09 20 20 65 78 70 6f 72 74 20 24 6c  r=C..  export $l
10d0: 74 5f 76 61 72 0a 09 20 20 6c 74 5f 75 73 65 72  t_var..  lt_user
10e0: 5f 6c 6f 63 61 6c 65 3d 5c 22 24 6c 74 5f 76 61  _locale=\"$lt_va
10f0: 72 3d 5c 5c 5c 24 73 61 76 65 5f 5c 24 6c 74 5f  r=\\\$save_\$lt_
1100: 76 61 72 3b 20 5c 24 6c 74 5f 75 73 65 72 5f 6c  var; \$lt_user_l
1110: 6f 63 61 6c 65 5c 22 0a 09 20 20 6c 74 5f 73 61  ocale\"..  lt_sa
1120: 66 65 5f 6c 6f 63 61 6c 65 3d 5c 22 24 6c 74 5f  fe_locale=\"$lt_
1130: 76 61 72 3d 43 3b 20 5c 24 6c 74 5f 73 61 66 65  var=C; \$lt_safe
1140: 5f 6c 6f 63 61 6c 65 5c 22 0a 09 66 69 22 0a 64  _locale\"..fi".d
1150: 6f 6e 65 0a 0a 24 6c 74 5f 75 6e 73 65 74 20 43  one..$lt_unset C
1160: 44 50 41 54 48 0a 0a 0a 0a 0a 0a 3a 20 24 7b 43  DPATH......: ${C
1170: 50 3d 22 63 70 20 2d 66 22 7d 0a 3a 20 24 7b 45  P="cp -f"}.: ${E
1180: 43 48 4f 3d 22 65 63 68 6f 22 7d 0a 3a 20 24 7b  CHO="echo"}.: ${
1190: 45 47 52 45 50 3d 22 2f 75 73 72 2f 62 69 6e 2f  EGREP="/usr/bin/
11a0: 67 72 65 70 20 2d 45 22 7d 0a 3a 20 24 7b 46 47  grep -E"}.: ${FG
11b0: 52 45 50 3d 22 2f 75 73 72 2f 62 69 6e 2f 67 72  REP="/usr/bin/gr
11c0: 65 70 20 2d 46 22 7d 0a 3a 20 24 7b 47 52 45 50  ep -F"}.: ${GREP
11d0: 3d 22 2f 75 73 72 2f 62 69 6e 2f 67 72 65 70 22  ="/usr/bin/grep"
11e0: 7d 0a 3a 20 24 7b 4c 4e 5f 53 3d 22 6c 6e 20 2d  }.: ${LN_S="ln -
11f0: 73 22 7d 0a 3a 20 24 7b 4d 41 4b 45 3d 22 6d 61  s"}.: ${MAKE="ma
1200: 6b 65 22 7d 0a 3a 20 24 7b 4d 4b 44 49 52 3d 22  ke"}.: ${MKDIR="
1210: 6d 6b 64 69 72 22 7d 0a 3a 20 24 7b 4d 56 3d 22  mkdir"}.: ${MV="
1220: 6d 76 20 2d 66 22 7d 0a 3a 20 24 7b 52 4d 3d 22  mv -f"}.: ${RM="
1230: 72 6d 20 2d 66 22 7d 0a 3a 20 24 7b 53 45 44 3d  rm -f"}.: ${SED=
1240: 22 2f 6f 70 74 2f 6c 6f 63 61 6c 2f 62 69 6e 2f  "/opt/local/bin/
1250: 67 73 65 64 22 7d 0a 3a 20 24 7b 53 48 45 4c 4c  gsed"}.: ${SHELL
1260: 3d 22 24 7b 43 4f 4e 46 49 47 5f 53 48 45 4c 4c  ="${CONFIG_SHELL
1270: 2d 2f 62 69 6e 2f 73 68 7d 22 7d 0a 3a 20 24 7b  -/bin/sh}"}.: ${
1280: 58 73 65 64 3d 22 24 53 45 44 20 2d 65 20 31 73  Xsed="$SED -e 1s
1290: 2f 5e 58 2f 2f 22 7d 0a 0a 23 20 47 6c 6f 62 61  /^X//"}..# Globa
12a0: 6c 20 76 61 72 69 61 62 6c 65 73 3a 0a 45 58 49  l variables:.EXI
12b0: 54 5f 53 55 43 43 45 53 53 3d 30 0a 45 58 49 54  T_SUCCESS=0.EXIT
12c0: 5f 46 41 49 4c 55 52 45 3d 31 0a 45 58 49 54 5f  _FAILURE=1.EXIT_
12d0: 4d 49 53 4d 41 54 43 48 3d 36 33 20 20 23 20 24  MISMATCH=63  # $
12e0: 3f 20 3d 20 36 33 20 69 73 20 75 73 65 64 20 74  ? = 63 is used t
12f0: 6f 20 69 6e 64 69 63 61 74 65 20 76 65 72 73 69  o indicate versi
1300: 6f 6e 20 6d 69 73 6d 61 74 63 68 20 74 6f 20 6d  on mismatch to m
1310: 69 73 73 69 6e 67 2e 0a 45 58 49 54 5f 53 4b 49  issing..EXIT_SKI
1320: 50 3d 37 37 09 20 20 23 20 24 3f 20 3d 20 37 37  P=77.  # $? = 77
1330: 20 69 73 20 75 73 65 64 20 74 6f 20 69 6e 64 69   is used to indi
1340: 63 61 74 65 20 61 20 73 6b 69 70 70 65 64 20 74  cate a skipped t
1350: 65 73 74 20 74 6f 20 61 75 74 6f 6d 61 6b 65 2e  est to automake.
1360: 0a 0a 65 78 69 74 5f 73 74 61 74 75 73 3d 24 45  ..exit_status=$E
1370: 58 49 54 5f 53 55 43 43 45 53 53 0a 0a 23 20 4d  XIT_SUCCESS..# M
1380: 61 6b 65 20 73 75 72 65 20 49 46 53 20 68 61 73  ake sure IFS has
1390: 20 61 20 73 65 6e 73 69 62 6c 65 20 64 65 66 61   a sensible defa
13a0: 75 6c 74 0a 6c 74 5f 6e 6c 3d 27 0a 27 0a 49 46  ult.lt_nl='.'.IF
13b0: 53 3d 22 20 09 24 6c 74 5f 6e 6c 22 0a 0a 64 69  S=" .$lt_nl"..di
13c0: 72 6e 61 6d 65 3d 22 73 2c 2f 5b 5e 2f 5d 2a 24  rname="s,/[^/]*$
13d0: 2c 2c 22 0a 62 61 73 65 6e 61 6d 65 3d 22 73 2c  ,,".basename="s,
13e0: 5e 2e 2a 2f 2c 2c 22 0a 0a 23 20 66 75 6e 63 5f  ^.*/,,"..# func_
13f0: 64 69 72 6e 61 6d 65 5f 61 6e 64 5f 62 61 73 65  dirname_and_base
1400: 6e 61 6d 65 20 66 69 6c 65 20 61 70 70 65 6e 64  name file append
1410: 20 6e 6f 6e 64 69 72 5f 72 65 70 6c 61 63 65 6d   nondir_replacem
1420: 65 6e 74 0a 23 20 70 65 72 66 6f 72 6d 20 66 75  ent.# perform fu
1430: 6e 63 5f 62 61 73 65 6e 61 6d 65 20 61 6e 64 20  nc_basename and 
1440: 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20 69 6e 20  func_dirname in 
1450: 61 20 73 69 6e 67 6c 65 20 66 75 6e 63 74 69 6f  a single functio
1460: 6e 0a 23 20 63 61 6c 6c 3a 0a 23 20 20 20 64 69  n.# call:.#   di
1470: 72 6e 61 6d 65 3a 20 20 43 6f 6d 70 75 74 65 20  rname:  Compute 
1480: 74 68 65 20 64 69 72 6e 61 6d 65 20 6f 66 20 46  the dirname of F
1490: 49 4c 45 2e 20 20 49 66 20 6e 6f 6e 65 6d 70 74  ILE.  If nonempt
14a0: 79 2c 0a 23 20 20 20 20 20 20 20 20 20 20 20 20  y,.#            
14b0: 20 61 64 64 20 41 50 50 45 4e 44 20 74 6f 20 74   add APPEND to t
14c0: 68 65 20 72 65 73 75 6c 74 2c 20 6f 74 68 65 72  he result, other
14d0: 77 69 73 65 20 73 65 74 20 72 65 73 75 6c 74 0a  wise set result.
14e0: 23 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f  #             to
14f0: 20 4e 4f 4e 44 49 52 5f 52 45 50 4c 41 43 45 4d   NONDIR_REPLACEM
1500: 45 4e 54 2e 0a 23 20 20 20 20 20 20 20 20 20 20  ENT..#          
1510: 20 20 20 76 61 6c 75 65 20 72 65 74 75 72 6e 65     value returne
1520: 64 20 69 6e 20 22 24 66 75 6e 63 5f 64 69 72 6e  d in "$func_dirn
1530: 61 6d 65 5f 72 65 73 75 6c 74 22 0a 23 20 20 20  ame_result".#   
1540: 62 61 73 65 6e 61 6d 65 3a 20 43 6f 6d 70 75 74  basename: Comput
1550: 65 20 66 69 6c 65 6e 61 6d 65 20 6f 66 20 46 49  e filename of FI
1560: 4c 45 2e 0a 23 20 20 20 20 20 20 20 20 20 20 20  LE..#           
1570: 20 20 76 61 6c 75 65 20 72 65 74 75 6e 65 64 20    value retuned 
1580: 69 6e 20 22 24 66 75 6e 63 5f 62 61 73 65 6e 61  in "$func_basena
1590: 6d 65 5f 72 65 73 75 6c 74 22 0a 23 20 49 6d 70  me_result".# Imp
15a0: 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6d 75 73 74  lementation must
15b0: 20 62 65 20 6b 65 70 74 20 73 79 6e 63 68 72 6f   be kept synchro
15c0: 6e 69 7a 65 64 20 77 69 74 68 20 66 75 6e 63 5f  nized with func_
15d0: 64 69 72 6e 61 6d 65 0a 23 20 61 6e 64 20 66 75  dirname.# and fu
15e0: 6e 63 5f 62 61 73 65 6e 61 6d 65 2e 20 46 6f 72  nc_basename. For
15f0: 20 65 66 66 69 63 69 65 6e 63 79 2c 20 77 65 20   efficiency, we 
1600: 64 6f 20 6e 6f 74 20 64 65 6c 65 67 61 74 65 20  do not delegate 
1610: 74 6f 0a 23 20 74 68 6f 73 65 20 66 75 6e 63 74  to.# those funct
1620: 69 6f 6e 73 20 62 75 74 20 69 6e 73 74 65 61 64  ions but instead
1630: 20 64 75 70 6c 69 63 61 74 65 20 74 68 65 20 66   duplicate the f
1640: 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 68 65 72  unctionality her
1650: 65 2e 0a 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f  e..func_dirname_
1660: 61 6e 64 5f 62 61 73 65 6e 61 6d 65 20 28 29 0a  and_basename ().
1670: 7b 0a 20 20 23 20 45 78 74 72 61 63 74 20 73 75  {.  # Extract su
1680: 62 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20  bdirectory from 
1690: 74 68 65 20 61 72 67 75 6d 65 6e 74 2e 0a 20 20  the argument..  
16a0: 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73  func_dirname_res
16b0: 75 6c 74 3d 60 24 45 43 48 4f 20 22 58 24 7b 31  ult=`$ECHO "X${1
16c0: 7d 22 20 7c 20 24 58 73 65 64 20 2d 65 20 22 24  }" | $Xsed -e "$
16d0: 64 69 72 6e 61 6d 65 22 60 0a 20 20 69 66 20 74  dirname"`.  if t
16e0: 65 73 74 20 22 58 24 66 75 6e 63 5f 64 69 72 6e  est "X$func_dirn
16f0: 61 6d 65 5f 72 65 73 75 6c 74 22 20 3d 20 22 58  ame_result" = "X
1700: 24 7b 31 7d 22 3b 20 74 68 65 6e 0a 20 20 20 20  ${1}"; then.    
1710: 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73  func_dirname_res
1720: 75 6c 74 3d 22 24 7b 33 7d 22 0a 20 20 65 6c 73  ult="${3}".  els
1730: 65 0a 20 20 20 20 66 75 6e 63 5f 64 69 72 6e 61  e.    func_dirna
1740: 6d 65 5f 72 65 73 75 6c 74 3d 22 24 66 75 6e 63  me_result="$func
1750: 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 24  _dirname_result$
1760: 7b 32 7d 22 0a 20 20 66 69 0a 20 20 66 75 6e 63  {2}".  fi.  func
1770: 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74  _basename_result
1780: 3d 60 24 45 43 48 4f 20 22 58 24 7b 31 7d 22 20  =`$ECHO "X${1}" 
1790: 7c 20 24 58 73 65 64 20 2d 65 20 22 24 62 61 73  | $Xsed -e "$bas
17a0: 65 6e 61 6d 65 22 60 0a 7d 0a 0a 23 20 47 65 6e  ename"`.}..# Gen
17b0: 65 72 61 74 65 64 20 73 68 65 6c 6c 20 66 75 6e  erated shell fun
17c0: 63 74 69 6f 6e 73 20 69 6e 73 65 72 74 65 64 20  ctions inserted 
17d0: 68 65 72 65 2e 0a 0a 23 20 57 6f 72 6b 20 61 72  here...# Work ar
17e0: 6f 75 6e 64 20 62 61 63 6b 77 61 72 64 20 63 6f  ound backward co
17f0: 6d 70 61 74 69 62 69 6c 69 74 79 20 69 73 73 75  mpatibility issu
1800: 65 20 6f 6e 20 49 52 49 58 20 36 2e 35 2e 20 4f  e on IRIX 6.5. O
1810: 6e 20 49 52 49 58 20 36 2e 34 2b 2c 20 73 68 0a  n IRIX 6.4+, sh.
1820: 23 20 69 73 20 6b 73 68 20 62 75 74 20 77 68 65  # is ksh but whe
1830: 6e 20 74 68 65 20 73 68 65 6c 6c 20 69 73 20 69  n the shell is i
1840: 6e 76 6f 6b 65 64 20 61 73 20 22 73 68 22 20 61  nvoked as "sh" a
1850: 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 76  nd the current v
1860: 61 6c 75 65 20 6f 66 0a 23 20 74 68 65 20 5f 58  alue of.# the _X
1870: 50 47 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76  PG environment v
1880: 61 72 69 61 62 6c 65 20 69 73 20 6e 6f 74 20 65  ariable is not e
1890: 71 75 61 6c 20 74 6f 20 31 20 28 6f 6e 65 29 2c  qual to 1 (one),
18a0: 20 74 68 65 20 73 70 65 63 69 61 6c 0a 23 20 70   the special.# p
18b0: 6f 73 69 74 69 6f 6e 61 6c 20 70 61 72 61 6d 65  ositional parame
18c0: 74 65 72 20 24 30 2c 20 77 69 74 68 69 6e 20 61  ter $0, within a
18d0: 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2c 20   function call, 
18e0: 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74  is the name of t
18f0: 68 65 0a 23 20 66 75 6e 63 74 69 6f 6e 2e 0a 70  he.# function..p
1900: 72 6f 67 70 61 74 68 3d 22 24 30 22 0a 0a 23 20  rogpath="$0"..# 
1910: 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 69 73  The name of this
1920: 20 70 72 6f 67 72 61 6d 3a 0a 23 20 49 6e 20 74   program:.# In t
1930: 68 65 20 75 6e 6c 69 6b 65 6c 79 20 65 76 65 6e  he unlikely even
1940: 74 20 24 70 72 6f 67 6e 61 6d 65 20 62 65 67 61  t $progname bega
1950: 6e 20 77 69 74 68 20 61 20 27 2d 27 2c 20 69 74  n with a '-', it
1960: 20 77 6f 75 6c 64 20 70 6c 61 79 20 68 61 76 6f   would play havo
1970: 63 20 77 69 74 68 0a 23 20 66 75 6e 63 5f 65 63  c with.# func_ec
1980: 68 6f 20 28 69 6d 61 67 69 6e 65 20 70 72 6f 67  ho (imagine prog
1990: 6e 61 6d 65 3d 2d 6e 29 2c 20 73 6f 20 77 65 20  name=-n), so we 
19a0: 70 72 65 70 65 6e 64 20 2e 2f 20 69 6e 20 74 68  prepend ./ in th
19b0: 61 74 20 63 61 73 65 3a 0a 66 75 6e 63 5f 64 69  at case:.func_di
19c0: 72 6e 61 6d 65 5f 61 6e 64 5f 62 61 73 65 6e 61  rname_and_basena
19d0: 6d 65 20 22 24 70 72 6f 67 70 61 74 68 22 0a 70  me "$progpath".p
19e0: 72 6f 67 6e 61 6d 65 3d 24 66 75 6e 63 5f 62 61  rogname=$func_ba
19f0: 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 63 61  sename_result.ca
1a00: 73 65 20 24 70 72 6f 67 6e 61 6d 65 20 69 6e 0a  se $progname in.
1a10: 20 20 2d 2a 29 20 70 72 6f 67 6e 61 6d 65 3d 2e    -*) progname=.
1a20: 2f 24 70 72 6f 67 6e 61 6d 65 20 3b 3b 0a 65 73  /$progname ;;.es
1a30: 61 63 0a 0a 23 20 4d 61 6b 65 20 73 75 72 65 20  ac..# Make sure 
1a40: 77 65 20 68 61 76 65 20 61 6e 20 61 62 73 6f 6c  we have an absol
1a50: 75 74 65 20 70 61 74 68 20 66 6f 72 20 72 65 65  ute path for ree
1a60: 78 65 63 75 74 69 6f 6e 3a 0a 63 61 73 65 20 24  xecution:.case $
1a70: 70 72 6f 67 70 61 74 68 20 69 6e 0a 20 20 5b 5c  progpath in.  [\
1a80: 5c 2f 5d 2a 7c 5b 41 2d 5a 61 2d 7a 5d 3a 5c 5c  \/]*|[A-Za-z]:\\
1a90: 2a 29 20 3b 3b 0a 20 20 2a 5b 5c 5c 2f 5d 2a 29  *) ;;.  *[\\/]*)
1aa0: 0a 20 20 20 20 20 70 72 6f 67 64 69 72 3d 24 66  .     progdir=$f
1ab0: 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75  unc_dirname_resu
1ac0: 6c 74 0a 20 20 20 20 20 70 72 6f 67 64 69 72 3d  lt.     progdir=
1ad0: 60 63 64 20 22 24 70 72 6f 67 64 69 72 22 20 26  `cd "$progdir" &
1ae0: 26 20 70 77 64 60 0a 20 20 20 20 20 70 72 6f 67  & pwd`.     prog
1af0: 70 61 74 68 3d 22 24 70 72 6f 67 64 69 72 2f 24  path="$progdir/$
1b00: 70 72 6f 67 6e 61 6d 65 22 0a 20 20 20 20 20 3b  progname".     ;
1b10: 3b 0a 20 20 2a 29 0a 20 20 20 20 20 73 61 76 65  ;.  *).     save
1b20: 5f 49 46 53 3d 22 24 49 46 53 22 0a 20 20 20 20  _IFS="$IFS".    
1b30: 20 49 46 53 3d 3a 0a 20 20 20 20 20 66 6f 72 20   IFS=:.     for 
1b40: 70 72 6f 67 64 69 72 20 69 6e 20 24 50 41 54 48  progdir in $PATH
1b50: 3b 20 64 6f 0a 20 20 20 20 20 20 20 49 46 53 3d  ; do.       IFS=
1b60: 22 24 73 61 76 65 5f 49 46 53 22 0a 20 20 20 20  "$save_IFS".    
1b70: 20 20 20 74 65 73 74 20 2d 78 20 22 24 70 72 6f     test -x "$pro
1b80: 67 64 69 72 2f 24 70 72 6f 67 6e 61 6d 65 22 20  gdir/$progname" 
1b90: 26 26 20 62 72 65 61 6b 0a 20 20 20 20 20 64 6f  && break.     do
1ba0: 6e 65 0a 20 20 20 20 20 49 46 53 3d 22 24 73 61  ne.     IFS="$sa
1bb0: 76 65 5f 49 46 53 22 0a 20 20 20 20 20 74 65 73  ve_IFS".     tes
1bc0: 74 20 2d 6e 20 22 24 70 72 6f 67 64 69 72 22 20  t -n "$progdir" 
1bd0: 7c 7c 20 70 72 6f 67 64 69 72 3d 60 70 77 64 60  || progdir=`pwd`
1be0: 0a 20 20 20 20 20 70 72 6f 67 70 61 74 68 3d 22  .     progpath="
1bf0: 24 70 72 6f 67 64 69 72 2f 24 70 72 6f 67 6e 61  $progdir/$progna
1c00: 6d 65 22 0a 20 20 20 20 20 3b 3b 0a 65 73 61 63  me".     ;;.esac
1c10: 0a 0a 23 20 53 65 64 20 73 75 62 73 74 69 74 75  ..# Sed substitu
1c20: 74 69 6f 6e 20 74 68 61 74 20 68 65 6c 70 73 20  tion that helps 
1c30: 75 73 20 64 6f 20 72 6f 62 75 73 74 20 71 75 6f  us do robust quo
1c40: 74 69 6e 67 2e 20 20 49 74 20 62 61 63 6b 73 6c  ting.  It backsl
1c50: 61 73 68 69 66 69 65 73 0a 23 20 6d 65 74 61 63  ashifies.# metac
1c60: 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 61  haracters that a
1c70: 72 65 20 73 74 69 6c 6c 20 61 63 74 69 76 65 20  re still active 
1c80: 77 69 74 68 69 6e 20 64 6f 75 62 6c 65 2d 71 75  within double-qu
1c90: 6f 74 65 64 20 73 74 72 69 6e 67 73 2e 0a 58 73  oted strings..Xs
1ca0: 65 64 3d 22 24 7b 53 45 44 7d 22 27 20 2d 65 20  ed="${SED}"' -e 
1cb0: 31 73 2f 5e 58 2f 2f 27 0a 73 65 64 5f 71 75 6f  1s/^X//'.sed_quo
1cc0: 74 65 5f 73 75 62 73 74 3d 27 73 2f 5c 28 5b 60  te_subst='s/\([`
1cd0: 22 24 5c 5c 5d 5c 29 2f 5c 5c 5c 31 2f 67 27 0a  "$\\]\)/\\\1/g'.
1ce0: 0a 23 20 53 61 6d 65 20 61 73 20 61 62 6f 76 65  .# Same as above
1cf0: 2c 20 62 75 74 20 64 6f 20 6e 6f 74 20 71 75 6f  , but do not quo
1d00: 74 65 20 76 61 72 69 61 62 6c 65 20 72 65 66 65  te variable refe
1d10: 72 65 6e 63 65 73 2e 0a 64 6f 75 62 6c 65 5f 71  rences..double_q
1d20: 75 6f 74 65 5f 73 75 62 73 74 3d 27 73 2f 5c 28  uote_subst='s/\(
1d30: 5b 22 60 5c 5c 5d 5c 29 2f 5c 5c 5c 31 2f 67 27  ["`\\]\)/\\\1/g'
1d40: 0a 0a 23 20 52 65 2d 60 5c 27 20 70 61 72 61 6d  ..# Re-`\' param
1d50: 65 74 65 72 20 65 78 70 61 6e 73 69 6f 6e 73 20  eter expansions 
1d60: 69 6e 20 6f 75 74 70 75 74 20 6f 66 20 64 6f 75  in output of dou
1d70: 62 6c 65 5f 71 75 6f 74 65 5f 73 75 62 73 74 20  ble_quote_subst 
1d80: 74 68 61 74 20 77 65 72 65 0a 23 20 60 5c 27 2d  that were.# `\'-
1d90: 65 64 20 69 6e 20 69 6e 70 75 74 20 74 6f 20 74  ed in input to t
1da0: 68 65 20 73 61 6d 65 2e 20 20 49 66 20 61 6e 20  he same.  If an 
1db0: 6f 64 64 20 6e 75 6d 62 65 72 20 6f 66 20 60 5c  odd number of `\
1dc0: 27 20 70 72 65 63 65 64 65 64 20 61 20 27 24 27  ' preceded a '$'
1dd0: 0a 23 20 69 6e 20 69 6e 70 75 74 20 74 6f 20 64  .# in input to d
1de0: 6f 75 62 6c 65 5f 71 75 6f 74 65 5f 73 75 62 73  ouble_quote_subs
1df0: 74 2c 20 74 68 61 74 20 27 24 27 20 77 61 73 20  t, that '$' was 
1e00: 70 72 6f 74 65 63 74 65 64 20 66 72 6f 6d 20 65  protected from e
1e10: 78 70 61 6e 73 69 6f 6e 2e 0a 23 20 53 69 6e 63  xpansion..# Sinc
1e20: 65 20 65 61 63 68 20 69 6e 70 75 74 20 60 5c 27  e each input `\'
1e30: 20 69 73 20 6e 6f 77 20 74 77 6f 20 60 5c 27 73   is now two `\'s
1e40: 2c 20 6c 6f 6f 6b 20 66 6f 72 20 61 6e 79 20 6e  , look for any n
1e50: 75 6d 62 65 72 20 6f 66 20 72 75 6e 73 20 6f 66  umber of runs of
1e60: 0a 23 20 66 6f 75 72 20 60 5c 27 73 20 66 6f 6c  .# four `\'s fol
1e70: 6c 6f 77 65 64 20 62 79 20 74 77 6f 20 60 5c 27  lowed by two `\'
1e80: 73 20 61 6e 64 20 74 68 65 6e 20 61 20 27 24 27  s and then a '$'
1e90: 2e 20 20 60 5c 27 20 74 68 61 74 20 27 24 27 2e  .  `\' that '$'.
1ea0: 0a 62 73 3d 27 5c 5c 27 0a 62 73 32 3d 27 5c 5c  .bs='\\'.bs2='\\
1eb0: 5c 5c 27 0a 62 73 34 3d 27 5c 5c 5c 5c 5c 5c 5c  \\'.bs4='\\\\\\\
1ec0: 5c 27 0a 64 6f 6c 6c 61 72 3d 27 5c 24 27 0a 73  \'.dollar='\$'.s
1ed0: 65 64 5f 64 6f 75 62 6c 65 5f 62 61 63 6b 73 6c  ed_double_backsl
1ee0: 61 73 68 3d 22 5c 0a 20 20 73 2f 24 62 73 34 2f  ash="\.  s/$bs4/
1ef0: 26 5c 5c 0a 2f 67 0a 20 20 73 2f 5e 24 62 73 32  &\\./g.  s/^$bs2
1f00: 24 64 6f 6c 6c 61 72 2f 24 62 73 26 2f 0a 20 20  $dollar/$bs&/.  
1f10: 73 2f 5c 5c 28 5b 5e 24 62 73 5d 5c 5c 29 24 62  s/\\([^$bs]\\)$b
1f20: 73 32 24 64 6f 6c 6c 61 72 2f 5c 5c 31 24 62 73  s2$dollar/\\1$bs
1f30: 32 24 62 73 24 64 6f 6c 6c 61 72 2f 67 0a 20 20  2$bs$dollar/g.  
1f40: 73 2f 5c 6e 2f 2f 67 22 0a 0a 23 20 53 74 61 6e  s/\n//g"..# Stan
1f50: 64 61 72 64 20 6f 70 74 69 6f 6e 73 3a 0a 6f 70  dard options:.op
1f60: 74 5f 64 72 79 5f 72 75 6e 3d 66 61 6c 73 65 0a  t_dry_run=false.
1f70: 6f 70 74 5f 68 65 6c 70 3d 66 61 6c 73 65 0a 6f  opt_help=false.o
1f80: 70 74 5f 71 75 69 65 74 3d 66 61 6c 73 65 0a 6f  pt_quiet=false.o
1f90: 70 74 5f 76 65 72 62 6f 73 65 3d 66 61 6c 73 65  pt_verbose=false
1fa0: 0a 6f 70 74 5f 77 61 72 6e 69 6e 67 3d 3a 0a 0a  .opt_warning=:..
1fb0: 23 20 66 75 6e 63 5f 65 63 68 6f 20 61 72 67 2e  # func_echo arg.
1fc0: 2e 2e 0a 23 20 45 63 68 6f 20 70 72 6f 67 72 61  ...# Echo progra
1fd0: 6d 20 6e 61 6d 65 20 70 72 65 66 69 78 65 64 20  m name prefixed 
1fe0: 6d 65 73 73 61 67 65 2c 20 61 6c 6f 6e 67 20 77  message, along w
1ff0: 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20  ith the current 
2000: 6d 6f 64 65 0a 23 20 6e 61 6d 65 20 69 66 20 69  mode.# name if i
2010: 74 20 68 61 73 20 62 65 65 6e 20 73 65 74 20 79  t has been set y
2020: 65 74 2e 0a 66 75 6e 63 5f 65 63 68 6f 20 28 29  et..func_echo ()
2030: 0a 7b 0a 20 20 20 20 24 45 43 48 4f 20 22 24 70  .{.    $ECHO "$p
2040: 72 6f 67 6e 61 6d 65 24 7b 6d 6f 64 65 2b 3a 20  rogname${mode+: 
2050: 7d 24 6d 6f 64 65 3a 20 24 2a 22 0a 7d 0a 0a 23  }$mode: $*".}..#
2060: 20 66 75 6e 63 5f 76 65 72 62 6f 73 65 20 61 72   func_verbose ar
2070: 67 2e 2e 2e 0a 23 20 45 63 68 6f 20 70 72 6f 67  g....# Echo prog
2080: 72 61 6d 20 6e 61 6d 65 20 70 72 65 66 69 78 65  ram name prefixe
2090: 64 20 6d 65 73 73 61 67 65 20 69 6e 20 76 65 72  d message in ver
20a0: 62 6f 73 65 20 6d 6f 64 65 20 6f 6e 6c 79 2e 0a  bose mode only..
20b0: 66 75 6e 63 5f 76 65 72 62 6f 73 65 20 28 29 0a  func_verbose ().
20c0: 7b 0a 20 20 20 20 24 6f 70 74 5f 76 65 72 62 6f  {.    $opt_verbo
20d0: 73 65 20 26 26 20 66 75 6e 63 5f 65 63 68 6f 20  se && func_echo 
20e0: 24 7b 31 2b 22 24 40 22 7d 0a 0a 20 20 20 20 23  ${1+"$@"}..    #
20f0: 20 41 20 62 75 67 20 69 6e 20 62 61 73 68 20 68   A bug in bash h
2100: 61 6c 74 73 20 74 68 65 20 73 63 72 69 70 74 20  alts the script 
2110: 69 66 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65  if the last line
2120: 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20   of a function. 
2130: 20 20 20 23 20 66 61 69 6c 73 20 77 68 65 6e 20     # fails when 
2140: 73 65 74 20 2d 65 20 69 73 20 69 6e 20 66 6f 72  set -e is in for
2150: 63 65 2c 20 73 6f 20 77 65 20 6e 65 65 64 20 61  ce, so we need a
2160: 6e 6f 74 68 65 72 20 63 6f 6d 6d 61 6e 64 20 74  nother command t
2170: 6f 0a 20 20 20 20 23 20 77 6f 72 6b 20 61 72 6f  o.    # work aro
2180: 75 6e 64 20 74 68 61 74 3a 0a 20 20 20 20 3a 0a  und that:.    :.
2190: 7d 0a 0a 23 20 66 75 6e 63 5f 65 72 72 6f 72 20  }..# func_error 
21a0: 61 72 67 2e 2e 2e 0a 23 20 45 63 68 6f 20 70 72  arg....# Echo pr
21b0: 6f 67 72 61 6d 20 6e 61 6d 65 20 70 72 65 66 69  ogram name prefi
21c0: 78 65 64 20 6d 65 73 73 61 67 65 20 74 6f 20 73  xed message to s
21d0: 74 61 6e 64 61 72 64 20 65 72 72 6f 72 2e 0a 66  tandard error..f
21e0: 75 6e 63 5f 65 72 72 6f 72 20 28 29 0a 7b 0a 20  unc_error ().{. 
21f0: 20 20 20 24 45 43 48 4f 20 22 24 70 72 6f 67 6e     $ECHO "$progn
2200: 61 6d 65 24 7b 6d 6f 64 65 2b 3a 20 7d 24 6d 6f  ame${mode+: }$mo
2210: 64 65 3a 20 22 24 7b 31 2b 22 24 40 22 7d 20 31  de: "${1+"$@"} 1
2220: 3e 26 32 0a 7d 0a 0a 23 20 66 75 6e 63 5f 77 61  >&2.}..# func_wa
2230: 72 6e 69 6e 67 20 61 72 67 2e 2e 2e 0a 23 20 45  rning arg....# E
2240: 63 68 6f 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65  cho program name
2250: 20 70 72 65 66 69 78 65 64 20 77 61 72 6e 69 6e   prefixed warnin
2260: 67 20 6d 65 73 73 61 67 65 20 74 6f 20 73 74 61  g message to sta
2270: 6e 64 61 72 64 20 65 72 72 6f 72 2e 0a 66 75 6e  ndard error..fun
2280: 63 5f 77 61 72 6e 69 6e 67 20 28 29 0a 7b 0a 20  c_warning ().{. 
2290: 20 20 20 24 6f 70 74 5f 77 61 72 6e 69 6e 67 20     $opt_warning 
22a0: 26 26 20 24 45 43 48 4f 20 22 24 70 72 6f 67 6e  && $ECHO "$progn
22b0: 61 6d 65 24 7b 6d 6f 64 65 2b 3a 20 7d 24 6d 6f  ame${mode+: }$mo
22c0: 64 65 3a 20 77 61 72 6e 69 6e 67 3a 20 22 24 7b  de: warning: "${
22d0: 31 2b 22 24 40 22 7d 20 31 3e 26 32 0a 0a 20 20  1+"$@"} 1>&2..  
22e0: 20 20 23 20 62 61 73 68 20 62 75 67 20 61 67 61    # bash bug aga
22f0: 69 6e 3a 0a 20 20 20 20 3a 0a 7d 0a 0a 23 20 66  in:.    :.}..# f
2300: 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20  unc_fatal_error 
2310: 61 72 67 2e 2e 2e 0a 23 20 45 63 68 6f 20 70 72  arg....# Echo pr
2320: 6f 67 72 61 6d 20 6e 61 6d 65 20 70 72 65 66 69  ogram name prefi
2330: 78 65 64 20 6d 65 73 73 61 67 65 20 74 6f 20 73  xed message to s
2340: 74 61 6e 64 61 72 64 20 65 72 72 6f 72 2c 20 61  tandard error, a
2350: 6e 64 20 65 78 69 74 2e 0a 66 75 6e 63 5f 66 61  nd exit..func_fa
2360: 74 61 6c 5f 65 72 72 6f 72 20 28 29 0a 7b 0a 20  tal_error ().{. 
2370: 20 20 20 66 75 6e 63 5f 65 72 72 6f 72 20 24 7b     func_error ${
2380: 31 2b 22 24 40 22 7d 0a 20 20 20 20 65 78 69 74  1+"$@"}.    exit
2390: 20 24 45 58 49 54 5f 46 41 49 4c 55 52 45 0a 7d   $EXIT_FAILURE.}
23a0: 0a 0a 23 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68  ..# func_fatal_h
23b0: 65 6c 70 20 61 72 67 2e 2e 2e 0a 23 20 45 63 68  elp arg....# Ech
23c0: 6f 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65 20 70  o program name p
23d0: 72 65 66 69 78 65 64 20 6d 65 73 73 61 67 65 20  refixed message 
23e0: 74 6f 20 73 74 61 6e 64 61 72 64 20 65 72 72 6f  to standard erro
23f0: 72 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 0a 23  r, followed by.#
2400: 20 61 20 68 65 6c 70 20 68 69 6e 74 2c 20 61 6e   a help hint, an
2410: 64 20 65 78 69 74 2e 0a 66 75 6e 63 5f 66 61 74  d exit..func_fat
2420: 61 6c 5f 68 65 6c 70 20 28 29 0a 7b 0a 20 20 20  al_help ().{.   
2430: 20 66 75 6e 63 5f 65 72 72 6f 72 20 24 7b 31 2b   func_error ${1+
2440: 22 24 40 22 7d 0a 20 20 20 20 66 75 6e 63 5f 66  "$@"}.    func_f
2450: 61 74 61 6c 5f 65 72 72 6f 72 20 22 24 68 65 6c  atal_error "$hel
2460: 70 22 0a 7d 0a 68 65 6c 70 3d 22 54 72 79 20 5c  p".}.help="Try \
2470: 60 24 70 72 6f 67 6e 61 6d 65 20 2d 2d 68 65 6c  `$progname --hel
2480: 70 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f  p' for more info
2490: 72 6d 61 74 69 6f 6e 2e 22 20 20 23 23 20 64 65  rmation."  ## de
24a0: 66 61 75 6c 74 0a 0a 0a 23 20 66 75 6e 63 5f 67  fault...# func_g
24b0: 72 65 70 20 65 78 70 72 65 73 73 69 6f 6e 20 66  rep expression f
24c0: 69 6c 65 6e 61 6d 65 0a 23 20 43 68 65 63 6b 20  ilename.# Check 
24d0: 77 68 65 74 68 65 72 20 45 58 50 52 45 53 53 49  whether EXPRESSI
24e0: 4f 4e 20 6d 61 74 63 68 65 73 20 61 6e 79 20 6c  ON matches any l
24f0: 69 6e 65 20 6f 66 20 46 49 4c 45 4e 41 4d 45 2c  ine of FILENAME,
2500: 20 77 69 74 68 6f 75 74 20 6f 75 74 70 75 74 2e   without output.
2510: 0a 66 75 6e 63 5f 67 72 65 70 20 28 29 0a 7b 0a  .func_grep ().{.
2520: 20 20 20 20 24 47 52 45 50 20 22 24 31 22 20 22      $GREP "$1" "
2530: 24 32 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32  $2" >/dev/null 2
2540: 3e 26 31 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 6d  >&1.}...# func_m
2550: 6b 64 69 72 5f 70 20 64 69 72 65 63 74 6f 72 79  kdir_p directory
2560: 2d 70 61 74 68 0a 23 20 4d 61 6b 65 20 73 75 72  -path.# Make sur
2570: 65 20 74 68 65 20 65 6e 74 69 72 65 20 70 61 74  e the entire pat
2580: 68 20 74 6f 20 44 49 52 45 43 54 4f 52 59 2d 50  h to DIRECTORY-P
2590: 41 54 48 20 69 73 20 61 76 61 69 6c 61 62 6c 65  ATH is available
25a0: 2e 0a 66 75 6e 63 5f 6d 6b 64 69 72 5f 70 20 28  ..func_mkdir_p (
25b0: 29 0a 7b 0a 20 20 20 20 6d 79 5f 64 69 72 65 63  ).{.    my_direc
25c0: 74 6f 72 79 5f 70 61 74 68 3d 22 24 31 22 0a 20  tory_path="$1". 
25d0: 20 20 20 6d 79 5f 64 69 72 5f 6c 69 73 74 3d 0a     my_dir_list=.
25e0: 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20  .    if test -n 
25f0: 22 24 6d 79 5f 64 69 72 65 63 74 6f 72 79 5f 70  "$my_directory_p
2600: 61 74 68 22 20 26 26 20 74 65 73 74 20 22 24 6f  ath" && test "$o
2610: 70 74 5f 64 72 79 5f 72 75 6e 22 20 21 3d 20 22  pt_dry_run" != "
2620: 3a 22 3b 20 74 68 65 6e 0a 0a 20 20 20 20 20 20  :"; then..      
2630: 23 20 50 72 6f 74 65 63 74 20 64 69 72 65 63 74  # Protect direct
2640: 6f 72 79 20 6e 61 6d 65 73 20 73 74 61 72 74 69  ory names starti
2650: 6e 67 20 77 69 74 68 20 60 2d 27 0a 20 20 20 20  ng with `-'.    
2660: 20 20 63 61 73 65 20 24 6d 79 5f 64 69 72 65 63    case $my_direc
2670: 74 6f 72 79 5f 70 61 74 68 20 69 6e 0a 20 20 20  tory_path in.   
2680: 20 20 20 20 20 2d 2a 29 20 6d 79 5f 64 69 72 65       -*) my_dire
2690: 63 74 6f 72 79 5f 70 61 74 68 3d 22 2e 2f 24 6d  ctory_path="./$m
26a0: 79 5f 64 69 72 65 63 74 6f 72 79 5f 70 61 74 68  y_directory_path
26b0: 22 20 3b 3b 0a 20 20 20 20 20 20 65 73 61 63 0a  " ;;.      esac.
26c0: 0a 20 20 20 20 20 20 23 20 57 68 69 6c 65 20 73  .      # While s
26d0: 6f 6d 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 44  ome portion of D
26e0: 49 52 20 64 6f 65 73 20 6e 6f 74 20 79 65 74 20  IR does not yet 
26f0: 65 78 69 73 74 2e 2e 2e 0a 20 20 20 20 20 20 77  exist....      w
2700: 68 69 6c 65 20 74 65 73 74 20 21 20 2d 64 20 22  hile test ! -d "
2710: 24 6d 79 5f 64 69 72 65 63 74 6f 72 79 5f 70 61  $my_directory_pa
2720: 74 68 22 3b 20 64 6f 0a 20 20 20 20 20 20 20 20  th"; do.        
2730: 23 20 2e 2e 2e 6d 61 6b 65 20 61 20 6c 69 73 74  # ...make a list
2740: 20 69 6e 20 74 6f 70 6d 6f 73 74 20 66 69 72 73   in topmost firs
2750: 74 20 6f 72 64 65 72 2e 20 20 55 73 65 20 61 20  t order.  Use a 
2760: 63 6f 6c 6f 6e 20 64 65 6c 69 6d 69 74 65 64 0a  colon delimited.
2770: 09 23 20 6c 69 73 74 20 69 6e 63 61 73 65 20 73  .# list incase s
2780: 6f 6d 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 70  ome portion of p
2790: 61 74 68 20 63 6f 6e 74 61 69 6e 73 20 77 68 69  ath contains whi
27a0: 74 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 20  tespace..       
27b0: 20 6d 79 5f 64 69 72 5f 6c 69 73 74 3d 22 24 6d   my_dir_list="$m
27c0: 79 5f 64 69 72 65 63 74 6f 72 79 5f 70 61 74 68  y_directory_path
27d0: 3a 24 6d 79 5f 64 69 72 5f 6c 69 73 74 22 0a 0a  :$my_dir_list"..
27e0: 20 20 20 20 20 20 20 20 23 20 49 66 20 74 68 65          # If the
27f0: 20 6c 61 73 74 20 70 6f 72 74 69 6f 6e 20 61 64   last portion ad
2800: 64 65 64 20 68 61 73 20 6e 6f 20 73 6c 61 73 68  ded has no slash
2810: 20 69 6e 20 69 74 2c 20 74 68 65 20 6c 69 73 74   in it, the list
2820: 20 69 73 20 64 6f 6e 65 0a 20 20 20 20 20 20 20   is done.       
2830: 20 63 61 73 65 20 24 6d 79 5f 64 69 72 65 63 74   case $my_direct
2840: 6f 72 79 5f 70 61 74 68 20 69 6e 20 2a 2f 2a 29  ory_path in */*)
2850: 20 3b 3b 20 2a 29 20 62 72 65 61 6b 20 3b 3b 20   ;; *) break ;; 
2860: 65 73 61 63 0a 0a 20 20 20 20 20 20 20 20 23 20  esac..        # 
2870: 2e 2e 2e 6f 74 68 65 72 77 69 73 65 20 74 68 72  ...otherwise thr
2880: 6f 77 20 61 77 61 79 20 74 68 65 20 63 68 69 6c  ow away the chil
2890: 64 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20  d directory and 
28a0: 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 6d 79 5f  loop.        my_
28b0: 64 69 72 65 63 74 6f 72 79 5f 70 61 74 68 3d 60  directory_path=`
28c0: 24 45 43 48 4f 20 22 58 24 6d 79 5f 64 69 72 65  $ECHO "X$my_dire
28d0: 63 74 6f 72 79 5f 70 61 74 68 22 20 7c 20 24 58  ctory_path" | $X
28e0: 73 65 64 20 2d 65 20 22 24 64 69 72 6e 61 6d 65  sed -e "$dirname
28f0: 22 60 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20 20  "`.      done.  
2900: 20 20 20 20 6d 79 5f 64 69 72 5f 6c 69 73 74 3d      my_dir_list=
2910: 60 24 45 43 48 4f 20 22 58 24 6d 79 5f 64 69 72  `$ECHO "X$my_dir
2920: 5f 6c 69 73 74 22 20 7c 20 24 58 73 65 64 20 2d  _list" | $Xsed -
2930: 65 20 27 73 2c 3a 2a 24 2c 2c 27 60 0a 0a 20 20  e 's,:*$,,'`..  
2940: 20 20 20 20 73 61 76 65 5f 6d 6b 64 69 72 5f 70      save_mkdir_p
2950: 5f 49 46 53 3d 22 24 49 46 53 22 3b 20 49 46 53  _IFS="$IFS"; IFS
2960: 3d 27 3a 27 0a 20 20 20 20 20 20 66 6f 72 20 6d  =':'.      for m
2970: 79 5f 64 69 72 20 69 6e 20 24 6d 79 5f 64 69 72  y_dir in $my_dir
2980: 5f 6c 69 73 74 3b 20 64 6f 0a 09 49 46 53 3d 22  _list; do..IFS="
2990: 24 73 61 76 65 5f 6d 6b 64 69 72 5f 70 5f 49 46  $save_mkdir_p_IF
29a0: 53 22 0a 20 20 20 20 20 20 20 20 23 20 6d 6b 64  S".        # mkd
29b0: 69 72 20 63 61 6e 20 66 61 69 6c 20 77 69 74 68  ir can fail with
29c0: 20 61 20 60 46 69 6c 65 20 65 78 69 73 74 27 20   a `File exist' 
29d0: 65 72 72 6f 72 20 69 66 20 74 77 6f 20 70 72 6f  error if two pro
29e0: 63 65 73 73 65 73 0a 20 20 20 20 20 20 20 20 23  cesses.        #
29f0: 20 74 72 79 20 74 6f 20 63 72 65 61 74 65 20 6f   try to create o
2a00: 6e 65 20 6f 66 20 74 68 65 20 64 69 72 65 63 74  ne of the direct
2a10: 6f 72 69 65 73 20 63 6f 6e 63 75 72 72 65 6e 74  ories concurrent
2a20: 6c 79 2e 20 20 44 6f 6e 27 74 0a 20 20 20 20 20  ly.  Don't.     
2a30: 20 20 20 23 20 73 74 6f 70 20 69 6e 20 74 68 61     # stop in tha
2a40: 74 20 63 61 73 65 21 0a 20 20 20 20 20 20 20 20  t case!.        
2a50: 24 4d 4b 44 49 52 20 22 24 6d 79 5f 64 69 72 22  $MKDIR "$my_dir"
2a60: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 7c 20   2>/dev/null || 
2a70: 3a 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20 20 20  :.      done.   
2a80: 20 20 20 49 46 53 3d 22 24 73 61 76 65 5f 6d 6b     IFS="$save_mk
2a90: 64 69 72 5f 70 5f 49 46 53 22 0a 0a 20 20 20 20  dir_p_IFS"..    
2aa0: 20 20 23 20 42 61 69 6c 20 6f 75 74 20 69 66 20    # Bail out if 
2ab0: 77 65 20 28 6f 72 20 73 6f 6d 65 20 6f 74 68 65  we (or some othe
2ac0: 72 20 70 72 6f 63 65 73 73 29 20 66 61 69 6c 65  r process) faile
2ad0: 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 64 69  d to create a di
2ae0: 72 65 63 74 6f 72 79 2e 0a 20 20 20 20 20 20 74  rectory..      t
2af0: 65 73 74 20 2d 64 20 22 24 6d 79 5f 64 69 72 65  est -d "$my_dire
2b00: 63 74 6f 72 79 5f 70 61 74 68 22 20 7c 7c 20 5c  ctory_path" || \
2b10: 0a 20 20 20 20 20 20 20 20 66 75 6e 63 5f 66 61  .        func_fa
2b20: 74 61 6c 5f 65 72 72 6f 72 20 22 46 61 69 6c 65  tal_error "Faile
2b30: 64 20 74 6f 20 63 72 65 61 74 65 20 5c 60 24 31  d to create \`$1
2b40: 27 22 0a 20 20 20 20 66 69 0a 7d 0a 0a 0a 23 20  '".    fi.}...# 
2b50: 66 75 6e 63 5f 6d 6b 74 65 6d 70 64 69 72 20 5b  func_mktempdir [
2b60: 73 74 72 69 6e 67 5d 0a 23 20 4d 61 6b 65 20 61  string].# Make a
2b70: 20 74 65 6d 70 6f 72 61 72 79 20 64 69 72 65 63   temporary direc
2b80: 74 6f 72 79 20 74 68 61 74 20 77 6f 6e 27 74 20  tory that won't 
2b90: 63 6c 61 73 68 20 77 69 74 68 20 6f 74 68 65 72  clash with other
2ba0: 20 72 75 6e 6e 69 6e 67 0a 23 20 6c 69 62 74 6f   running.# libto
2bb0: 6f 6c 20 70 72 6f 63 65 73 73 65 73 2c 20 61 6e  ol processes, an
2bc0: 64 20 61 76 6f 69 64 73 20 72 61 63 65 20 63 6f  d avoids race co
2bd0: 6e 64 69 74 69 6f 6e 73 20 69 66 20 70 6f 73 73  nditions if poss
2be0: 69 62 6c 65 2e 20 20 49 66 0a 23 20 67 69 76 65  ible.  If.# give
2bf0: 6e 2c 20 53 54 52 49 4e 47 20 69 73 20 74 68 65  n, STRING is the
2c00: 20 62 61 73 65 6e 61 6d 65 20 66 6f 72 20 74 68   basename for th
2c10: 61 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 66 75  at directory..fu
2c20: 6e 63 5f 6d 6b 74 65 6d 70 64 69 72 20 28 29 0a  nc_mktempdir ().
2c30: 7b 0a 20 20 20 20 6d 79 5f 74 65 6d 70 6c 61 74  {.    my_templat
2c40: 65 3d 22 24 7b 54 4d 50 44 49 52 2d 2f 74 6d 70  e="${TMPDIR-/tmp
2c50: 7d 2f 24 7b 31 2d 24 70 72 6f 67 6e 61 6d 65 7d  }/${1-$progname}
2c60: 22 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20 22  "..    if test "
2c70: 24 6f 70 74 5f 64 72 79 5f 72 75 6e 22 20 3d 20  $opt_dry_run" = 
2c80: 22 3a 22 3b 20 74 68 65 6e 0a 20 20 20 20 20 20  ":"; then.      
2c90: 23 20 52 65 74 75 72 6e 20 61 20 64 69 72 65 63  # Return a direc
2ca0: 74 6f 72 79 20 6e 61 6d 65 2c 20 62 75 74 20 64  tory name, but d
2cb0: 6f 6e 27 74 20 63 72 65 61 74 65 20 69 74 20 69  on't create it i
2cc0: 6e 20 64 72 79 2d 72 75 6e 20 6d 6f 64 65 0a 20  n dry-run mode. 
2cd0: 20 20 20 20 20 6d 79 5f 74 6d 70 64 69 72 3d 22       my_tmpdir="
2ce0: 24 7b 6d 79 5f 74 65 6d 70 6c 61 74 65 7d 2d 24  ${my_template}-$
2cf0: 24 22 0a 20 20 20 20 65 6c 73 65 0a 0a 20 20 20  $".    else..   
2d00: 20 20 20 23 20 49 66 20 6d 6b 74 65 6d 70 20 77     # If mktemp w
2d10: 6f 72 6b 73 2c 20 75 73 65 20 74 68 61 74 20 66  orks, use that f
2d20: 69 72 73 74 20 61 6e 64 20 66 6f 72 65 6d 6f 73  irst and foremos
2d30: 74 0a 20 20 20 20 20 20 6d 79 5f 74 6d 70 64 69  t.      my_tmpdi
2d40: 72 3d 60 6d 6b 74 65 6d 70 20 2d 64 20 22 24 7b  r=`mktemp -d "${
2d50: 6d 79 5f 74 65 6d 70 6c 61 74 65 7d 2d 58 58 58  my_template}-XXX
2d60: 58 58 58 58 58 22 20 32 3e 2f 64 65 76 2f 6e 75  XXXXX" 2>/dev/nu
2d70: 6c 6c 60 0a 0a 20 20 20 20 20 20 69 66 20 74 65  ll`..      if te
2d80: 73 74 20 21 20 2d 64 20 22 24 6d 79 5f 74 6d 70  st ! -d "$my_tmp
2d90: 64 69 72 22 3b 20 74 68 65 6e 0a 20 20 20 20 20  dir"; then.     
2da0: 20 20 20 23 20 46 61 69 6c 69 6e 67 20 74 68 61     # Failing tha
2db0: 74 2c 20 61 74 20 6c 65 61 73 74 20 74 72 79 20  t, at least try 
2dc0: 61 6e 64 20 75 73 65 20 24 52 41 4e 44 4f 4d 20  and use $RANDOM 
2dd0: 74 6f 20 61 76 6f 69 64 20 61 20 72 61 63 65 0a  to avoid a race.
2de0: 20 20 20 20 20 20 20 20 6d 79 5f 74 6d 70 64 69          my_tmpdi
2df0: 72 3d 22 24 7b 6d 79 5f 74 65 6d 70 6c 61 74 65  r="${my_template
2e00: 7d 2d 24 7b 52 41 4e 44 4f 4d 2d 30 7d 24 24 22  }-${RANDOM-0}$$"
2e10: 0a 0a 20 20 20 20 20 20 20 20 73 61 76 65 5f 6d  ..        save_m
2e20: 6b 74 65 6d 70 64 69 72 5f 75 6d 61 73 6b 3d 60  ktempdir_umask=`
2e30: 75 6d 61 73 6b 60 0a 20 20 20 20 20 20 20 20 75  umask`.        u
2e40: 6d 61 73 6b 20 30 30 37 37 0a 20 20 20 20 20 20  mask 0077.      
2e50: 20 20 24 4d 4b 44 49 52 20 22 24 6d 79 5f 74 6d    $MKDIR "$my_tm
2e60: 70 64 69 72 22 0a 20 20 20 20 20 20 20 20 75 6d  pdir".        um
2e70: 61 73 6b 20 24 73 61 76 65 5f 6d 6b 74 65 6d 70  ask $save_mktemp
2e80: 64 69 72 5f 75 6d 61 73 6b 0a 20 20 20 20 20 20  dir_umask.      
2e90: 66 69 0a 0a 20 20 20 20 20 20 23 20 49 66 20 77  fi..      # If w
2ea0: 65 27 72 65 20 6e 6f 74 20 69 6e 20 64 72 79 2d  e're not in dry-
2eb0: 72 75 6e 20 6d 6f 64 65 2c 20 62 6f 6d 62 20 6f  run mode, bomb o
2ec0: 75 74 20 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20  ut on failure.  
2ed0: 20 20 20 20 74 65 73 74 20 2d 64 20 22 24 6d 79      test -d "$my
2ee0: 5f 74 6d 70 64 69 72 22 20 7c 7c 20 5c 0a 20 20  _tmpdir" || \.  
2ef0: 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c        func_fatal
2f00: 5f 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 63  _error "cannot c
2f10: 72 65 61 74 65 20 74 65 6d 70 6f 72 61 72 79 20  reate temporary 
2f20: 64 69 72 65 63 74 6f 72 79 20 5c 60 24 6d 79 5f  directory \`$my_
2f30: 74 6d 70 64 69 72 27 22 0a 20 20 20 20 66 69 0a  tmpdir'".    fi.
2f40: 0a 20 20 20 20 24 45 43 48 4f 20 22 58 24 6d 79  .    $ECHO "X$my
2f50: 5f 74 6d 70 64 69 72 22 20 7c 20 24 58 73 65 64  _tmpdir" | $Xsed
2f60: 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 71 75 6f 74  .}...# func_quot
2f70: 65 5f 66 6f 72 5f 65 76 61 6c 20 61 72 67 0a 23  e_for_eval arg.#
2f80: 20 41 65 73 74 68 65 74 69 63 61 6c 6c 79 20 71   Aesthetically q
2f90: 75 6f 74 65 20 41 52 47 20 74 6f 20 62 65 20 65  uote ARG to be e
2fa0: 76 61 6c 65 64 20 6c 61 74 65 72 2e 0a 23 20 54  valed later..# T
2fb0: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74  his function ret
2fc0: 75 72 6e 73 20 74 77 6f 20 76 61 6c 75 65 73 3a  urns two values:
2fd0: 20 46 55 4e 43 5f 51 55 4f 54 45 5f 46 4f 52 5f   FUNC_QUOTE_FOR_
2fe0: 45 56 41 4c 5f 52 45 53 55 4c 54 0a 23 20 69 73  EVAL_RESULT.# is
2ff0: 20 64 6f 75 62 6c 65 2d 71 75 6f 74 65 64 2c 20   double-quoted, 
3000: 73 75 69 74 61 62 6c 65 20 66 6f 72 20 61 20 73  suitable for a s
3010: 75 62 73 65 71 75 65 6e 74 20 65 76 61 6c 2c 20  ubsequent eval, 
3020: 77 68 65 72 65 61 73 0a 23 20 46 55 4e 43 5f 51  whereas.# FUNC_Q
3030: 55 4f 54 45 5f 46 4f 52 5f 45 56 41 4c 5f 55 4e  UOTE_FOR_EVAL_UN
3040: 51 55 4f 54 45 44 5f 52 45 53 55 4c 54 20 68 61  QUOTED_RESULT ha
3050: 73 20 6d 65 72 65 6c 79 20 61 6c 6c 20 63 68 61  s merely all cha
3060: 72 61 63 74 65 72 73 0a 23 20 77 68 69 63 68 20  racters.# which 
3070: 61 72 65 20 73 74 69 6c 6c 20 61 63 74 69 76 65  are still active
3080: 20 77 69 74 68 69 6e 20 64 6f 75 62 6c 65 20 71   within double q
3090: 75 6f 74 65 73 20 62 61 63 6b 73 6c 61 73 68 69  uotes backslashi
30a0: 66 69 65 64 2e 0a 66 75 6e 63 5f 71 75 6f 74 65  fied..func_quote
30b0: 5f 66 6f 72 5f 65 76 61 6c 20 28 29 0a 7b 0a 20  _for_eval ().{. 
30c0: 20 20 20 63 61 73 65 20 24 31 20 69 6e 0a 20 20     case $1 in.  
30d0: 20 20 20 20 2a 5b 5c 5c 5c 60 5c 22 5c 24 5d 2a      *[\\\`\"\$]*
30e0: 29 0a 09 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f  )..func_quote_fo
30f0: 72 5f 65 76 61 6c 5f 75 6e 71 75 6f 74 65 64 5f  r_eval_unquoted_
3100: 72 65 73 75 6c 74 3d 60 24 45 43 48 4f 20 22 58  result=`$ECHO "X
3110: 24 31 22 20 7c 20 24 58 73 65 64 20 2d 65 20 22  $1" | $Xsed -e "
3120: 24 73 65 64 5f 71 75 6f 74 65 5f 73 75 62 73 74  $sed_quote_subst
3130: 22 60 20 3b 3b 0a 20 20 20 20 20 20 2a 29 0a 20  "` ;;.      *). 
3140: 20 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f 74         func_quot
3150: 65 5f 66 6f 72 5f 65 76 61 6c 5f 75 6e 71 75 6f  e_for_eval_unquo
3160: 74 65 64 5f 72 65 73 75 6c 74 3d 22 24 31 22 20  ted_result="$1" 
3170: 3b 3b 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20  ;;.    esac..   
3180: 20 63 61 73 65 20 24 66 75 6e 63 5f 71 75 6f 74   case $func_quot
3190: 65 5f 66 6f 72 5f 65 76 61 6c 5f 75 6e 71 75 6f  e_for_eval_unquo
31a0: 74 65 64 5f 72 65 73 75 6c 74 20 69 6e 0a 20 20  ted_result in.  
31b0: 20 20 20 20 23 20 44 6f 75 62 6c 65 2d 71 75 6f      # Double-quo
31c0: 74 65 20 61 72 67 73 20 63 6f 6e 74 61 69 6e 69  te args containi
31d0: 6e 67 20 73 68 65 6c 6c 20 6d 65 74 61 63 68 61  ng shell metacha
31e0: 72 61 63 74 65 72 73 20 74 6f 20 64 65 6c 61 79  racters to delay
31f0: 0a 20 20 20 20 20 20 23 20 77 6f 72 64 20 73 70  .      # word sp
3200: 6c 69 74 74 69 6e 67 2c 20 63 6f 6d 6d 61 6e 64  litting, command
3210: 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 61 6e   substitution an
3220: 64 20 61 6e 64 20 76 61 72 69 61 62 6c 65 0a 20  d and variable. 
3230: 20 20 20 20 20 23 20 65 78 70 61 6e 73 69 6f 6e       # expansion
3240: 20 66 6f 72 20 61 20 73 75 62 73 65 71 75 65 6e   for a subsequen
3250: 74 20 65 76 61 6c 2e 0a 20 20 20 20 20 20 23 20  t eval..      # 
3260: 4d 61 6e 79 20 42 6f 75 72 6e 65 20 73 68 65 6c  Many Bourne shel
3270: 6c 73 20 63 61 6e 6e 6f 74 20 68 61 6e 64 6c 65  ls cannot handle
3280: 20 63 6c 6f 73 65 20 62 72 61 63 6b 65 74 73 20   close brackets 
3290: 63 6f 72 72 65 63 74 6c 79 0a 20 20 20 20 20 20  correctly.      
32a0: 23 20 69 6e 20 73 63 61 6e 20 73 65 74 73 2c 20  # in scan sets, 
32b0: 73 6f 20 77 65 20 73 70 65 63 69 66 79 20 69 74  so we specify it
32c0: 20 73 65 70 61 72 61 74 65 6c 79 2e 0a 20 20 20   separately..   
32d0: 20 20 20 2a 5b 5c 5b 5c 7e 5c 23 5c 5e 5c 26 5c     *[\[\~\#\^\&\
32e0: 2a 5c 28 5c 29 5c 7b 5c 7d 5c 7c 5c 3b 5c 3c 5c  *\(\)\{\}\|\;\<\
32f0: 3e 5c 3f 5c 27 5c 20 5c 09 5d 2a 7c 2a 5d 2a 7c  >\?\'\ \.]*|*]*|
3300: 22 22 29 0a 20 20 20 20 20 20 20 20 66 75 6e 63  "").        func
3310: 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f  _quote_for_eval_
3320: 72 65 73 75 6c 74 3d 22 5c 22 24 66 75 6e 63 5f  result="\"$func_
3330: 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 75  quote_for_eval_u
3340: 6e 71 75 6f 74 65 64 5f 72 65 73 75 6c 74 5c 22  nquoted_result\"
3350: 22 0a 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20  ".        ;;.   
3360: 20 20 20 2a 29 0a 20 20 20 20 20 20 20 20 66 75     *).        fu
3370: 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
3380: 6c 5f 72 65 73 75 6c 74 3d 22 24 66 75 6e 63 5f  l_result="$func_
3390: 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 75  quote_for_eval_u
33a0: 6e 71 75 6f 74 65 64 5f 72 65 73 75 6c 74 22 0a  nquoted_result".
33b0: 20 20 20 20 65 73 61 63 0a 7d 0a 0a 0a 23 20 66      esac.}...# f
33c0: 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 78  unc_quote_for_ex
33d0: 70 61 6e 64 20 61 72 67 0a 23 20 41 65 73 74 68  pand arg.# Aesth
33e0: 65 74 69 63 61 6c 6c 79 20 71 75 6f 74 65 20 41  etically quote A
33f0: 52 47 20 74 6f 20 62 65 20 65 76 61 6c 65 64 20  RG to be evaled 
3400: 6c 61 74 65 72 3b 20 73 61 6d 65 20 61 73 20 61  later; same as a
3410: 62 6f 76 65 2c 0a 23 20 62 75 74 20 64 6f 20 6e  bove,.# but do n
3420: 6f 74 20 71 75 6f 74 65 20 76 61 72 69 61 62 6c  ot quote variabl
3430: 65 20 72 65 66 65 72 65 6e 63 65 73 2e 0a 66 75  e references..fu
3440: 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 78 70  nc_quote_for_exp
3450: 61 6e 64 20 28 29 0a 7b 0a 20 20 20 20 63 61 73  and ().{.    cas
3460: 65 20 24 31 20 69 6e 0a 20 20 20 20 20 20 2a 5b  e $1 in.      *[
3470: 5c 5c 5c 60 5c 22 5d 2a 29 0a 09 6d 79 5f 61 72  \\\`\"]*)..my_ar
3480: 67 3d 60 24 45 43 48 4f 20 22 58 24 31 22 20 7c  g=`$ECHO "X$1" |
3490: 20 24 58 73 65 64 20 5c 0a 09 20 20 20 20 2d 65   $Xsed \..    -e
34a0: 20 22 24 64 6f 75 62 6c 65 5f 71 75 6f 74 65 5f   "$double_quote_
34b0: 73 75 62 73 74 22 20 2d 65 20 22 24 73 65 64 5f  subst" -e "$sed_
34c0: 64 6f 75 62 6c 65 5f 62 61 63 6b 73 6c 61 73 68  double_backslash
34d0: 22 60 20 3b 3b 0a 20 20 20 20 20 20 2a 29 0a 20  "` ;;.      *). 
34e0: 20 20 20 20 20 20 20 6d 79 5f 61 72 67 3d 22 24         my_arg="$
34f0: 31 22 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 0a  1" ;;.    esac..
3500: 20 20 20 20 63 61 73 65 20 24 6d 79 5f 61 72 67      case $my_arg
3510: 20 69 6e 0a 20 20 20 20 20 20 23 20 44 6f 75 62   in.      # Doub
3520: 6c 65 2d 71 75 6f 74 65 20 61 72 67 73 20 63 6f  le-quote args co
3530: 6e 74 61 69 6e 69 6e 67 20 73 68 65 6c 6c 20 6d  ntaining shell m
3540: 65 74 61 63 68 61 72 61 63 74 65 72 73 20 74 6f  etacharacters to
3550: 20 64 65 6c 61 79 0a 20 20 20 20 20 20 23 20 77   delay.      # w
3560: 6f 72 64 20 73 70 6c 69 74 74 69 6e 67 20 61 6e  ord splitting an
3570: 64 20 63 6f 6d 6d 61 6e 64 20 73 75 62 73 74 69  d command substi
3580: 74 75 74 69 6f 6e 20 66 6f 72 20 61 20 73 75 62  tution for a sub
3590: 73 65 71 75 65 6e 74 20 65 76 61 6c 2e 0a 20 20  sequent eval..  
35a0: 20 20 20 20 23 20 4d 61 6e 79 20 42 6f 75 72 6e      # Many Bourn
35b0: 65 20 73 68 65 6c 6c 73 20 63 61 6e 6e 6f 74 20  e shells cannot 
35c0: 68 61 6e 64 6c 65 20 63 6c 6f 73 65 20 62 72 61  handle close bra
35d0: 63 6b 65 74 73 20 63 6f 72 72 65 63 74 6c 79 0a  ckets correctly.
35e0: 20 20 20 20 20 20 23 20 69 6e 20 73 63 61 6e 20        # in scan 
35f0: 73 65 74 73 2c 20 73 6f 20 77 65 20 73 70 65 63  sets, so we spec
3600: 69 66 79 20 69 74 20 73 65 70 61 72 61 74 65 6c  ify it separatel
3610: 79 2e 0a 20 20 20 20 20 20 2a 5b 5c 5b 5c 7e 5c  y..      *[\[\~\
3620: 23 5c 5e 5c 26 5c 2a 5c 28 5c 29 5c 7b 5c 7d 5c  #\^\&\*\(\)\{\}\
3630: 7c 5c 3b 5c 3c 5c 3e 5c 3f 5c 27 5c 20 5c 09 5d  |\;\<\>\?\'\ \.]
3640: 2a 7c 2a 5d 2a 7c 22 22 29 0a 20 20 20 20 20 20  *|*]*|"").      
3650: 20 20 6d 79 5f 61 72 67 3d 22 5c 22 24 6d 79 5f    my_arg="\"$my_
3660: 61 72 67 5c 22 22 0a 20 20 20 20 20 20 20 20 3b  arg\"".        ;
3670: 3b 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20  ;.    esac..    
3680: 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65  func_quote_for_e
3690: 78 70 61 6e 64 5f 72 65 73 75 6c 74 3d 22 24 6d  xpand_result="$m
36a0: 79 5f 61 72 67 22 0a 7d 0a 0a 0a 23 20 66 75 6e  y_arg".}...# fun
36b0: 63 5f 73 68 6f 77 5f 65 76 61 6c 20 63 6d 64 20  c_show_eval cmd 
36c0: 5b 66 61 69 6c 5f 65 78 70 5d 0a 23 20 55 6e 6c  [fail_exp].# Unl
36d0: 65 73 73 20 6f 70 74 5f 73 69 6c 65 6e 74 20 69  ess opt_silent i
36e0: 73 20 74 72 75 65 2c 20 74 68 65 6e 20 6f 75 74  s true, then out
36f0: 70 75 74 20 43 4d 44 2e 20 20 54 68 65 6e 2c 20  put CMD.  Then, 
3700: 69 66 20 6f 70 74 5f 64 72 79 72 75 6e 20 69 73  if opt_dryrun is
3710: 0a 23 20 6e 6f 74 20 74 72 75 65 2c 20 65 76 61  .# not true, eva
3720: 6c 75 61 74 65 20 43 4d 44 2e 20 20 49 66 20 74  luate CMD.  If t
3730: 68 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66  he evaluation of
3740: 20 43 4d 44 20 66 61 69 6c 73 2c 20 61 6e 64 20   CMD fails, and 
3750: 46 41 49 4c 5f 45 58 50 0a 23 20 69 73 20 67 69  FAIL_EXP.# is gi
3760: 76 65 6e 2c 20 74 68 65 6e 20 65 76 61 6c 75 61  ven, then evalua
3770: 74 65 20 69 74 2e 0a 66 75 6e 63 5f 73 68 6f 77  te it..func_show
3780: 5f 65 76 61 6c 20 28 29 0a 7b 0a 20 20 20 20 6d  _eval ().{.    m
3790: 79 5f 63 6d 64 3d 22 24 31 22 0a 20 20 20 20 6d  y_cmd="$1".    m
37a0: 79 5f 66 61 69 6c 5f 65 78 70 3d 22 24 7b 32 2d  y_fail_exp="${2-
37b0: 3a 7d 22 0a 0a 20 20 20 20 24 7b 6f 70 74 5f 73  :}"..    ${opt_s
37c0: 69 6c 65 6e 74 2d 66 61 6c 73 65 7d 20 7c 7c 20  ilent-false} || 
37d0: 7b 0a 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f  {.      func_quo
37e0: 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 20 22 24  te_for_expand "$
37f0: 6d 79 5f 63 6d 64 22 0a 20 20 20 20 20 20 65 76  my_cmd".      ev
3800: 61 6c 20 22 66 75 6e 63 5f 65 63 68 6f 20 24 66  al "func_echo $f
3810: 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 78  unc_quote_for_ex
3820: 70 61 6e 64 5f 72 65 73 75 6c 74 22 0a 20 20 20  pand_result".   
3830: 20 7d 0a 0a 20 20 20 20 69 66 20 24 7b 6f 70 74   }..    if ${opt
3840: 5f 64 72 79 5f 72 75 6e 2d 66 61 6c 73 65 7d 3b  _dry_run-false};
3850: 20 74 68 65 6e 20 3a 3b 20 65 6c 73 65 0a 20 20   then :; else.  
3860: 20 20 20 20 65 76 61 6c 20 22 24 6d 79 5f 63 6d      eval "$my_cm
3870: 64 22 0a 20 20 20 20 20 20 6d 79 5f 73 74 61 74  d".      my_stat
3880: 75 73 3d 24 3f 0a 20 20 20 20 20 20 69 66 20 74  us=$?.      if t
3890: 65 73 74 20 22 24 6d 79 5f 73 74 61 74 75 73 22  est "$my_status"
38a0: 20 2d 65 71 20 30 3b 20 74 68 65 6e 20 3a 3b 20   -eq 0; then :; 
38b0: 65 6c 73 65 0a 09 65 76 61 6c 20 22 28 65 78 69  else..eval "(exi
38c0: 74 20 24 6d 79 5f 73 74 61 74 75 73 29 3b 20 24  t $my_status); $
38d0: 6d 79 5f 66 61 69 6c 5f 65 78 70 22 0a 20 20 20  my_fail_exp".   
38e0: 20 20 20 66 69 0a 20 20 20 20 66 69 0a 7d 0a 0a     fi.    fi.}..
38f0: 0a 23 20 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61  .# func_show_eva
3900: 6c 5f 6c 6f 63 61 6c 65 20 63 6d 64 20 5b 66 61  l_locale cmd [fa
3910: 69 6c 5f 65 78 70 5d 0a 23 20 55 6e 6c 65 73 73  il_exp].# Unless
3920: 20 6f 70 74 5f 73 69 6c 65 6e 74 20 69 73 20 74   opt_silent is t
3930: 72 75 65 2c 20 74 68 65 6e 20 6f 75 74 70 75 74  rue, then output
3940: 20 43 4d 44 2e 20 20 54 68 65 6e 2c 20 69 66 20   CMD.  Then, if 
3950: 6f 70 74 5f 64 72 79 72 75 6e 20 69 73 0a 23 20  opt_dryrun is.# 
3960: 6e 6f 74 20 74 72 75 65 2c 20 65 76 61 6c 75 61  not true, evalua
3970: 74 65 20 43 4d 44 2e 20 20 49 66 20 74 68 65 20  te CMD.  If the 
3980: 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 43 4d  evaluation of CM
3990: 44 20 66 61 69 6c 73 2c 20 61 6e 64 20 46 41 49  D fails, and FAI
39a0: 4c 5f 45 58 50 0a 23 20 69 73 20 67 69 76 65 6e  L_EXP.# is given
39b0: 2c 20 74 68 65 6e 20 65 76 61 6c 75 61 74 65 20  , then evaluate 
39c0: 69 74 2e 20 20 55 73 65 20 74 68 65 20 73 61 76  it.  Use the sav
39d0: 65 64 20 6c 6f 63 61 6c 65 20 66 6f 72 20 65 76  ed locale for ev
39e0: 61 6c 75 61 74 69 6f 6e 2e 0a 66 75 6e 63 5f 73  aluation..func_s
39f0: 68 6f 77 5f 65 76 61 6c 5f 6c 6f 63 61 6c 65 20  how_eval_locale 
3a00: 28 29 0a 7b 0a 20 20 20 20 6d 79 5f 63 6d 64 3d  ().{.    my_cmd=
3a10: 22 24 31 22 0a 20 20 20 20 6d 79 5f 66 61 69 6c  "$1".    my_fail
3a20: 5f 65 78 70 3d 22 24 7b 32 2d 3a 7d 22 0a 0a 20  _exp="${2-:}".. 
3a30: 20 20 20 24 7b 6f 70 74 5f 73 69 6c 65 6e 74 2d     ${opt_silent-
3a40: 66 61 6c 73 65 7d 20 7c 7c 20 7b 0a 20 20 20 20  false} || {.    
3a50: 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72    func_quote_for
3a60: 5f 65 78 70 61 6e 64 20 22 24 6d 79 5f 63 6d 64  _expand "$my_cmd
3a70: 22 0a 20 20 20 20 20 20 65 76 61 6c 20 22 66 75  ".      eval "fu
3a80: 6e 63 5f 65 63 68 6f 20 24 66 75 6e 63 5f 71 75  nc_echo $func_qu
3a90: 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 5f 72  ote_for_expand_r
3aa0: 65 73 75 6c 74 22 0a 20 20 20 20 7d 0a 0a 20 20  esult".    }..  
3ab0: 20 20 69 66 20 24 7b 6f 70 74 5f 64 72 79 5f 72    if ${opt_dry_r
3ac0: 75 6e 2d 66 61 6c 73 65 7d 3b 20 74 68 65 6e 20  un-false}; then 
3ad0: 3a 3b 20 65 6c 73 65 0a 20 20 20 20 20 20 65 76  :; else.      ev
3ae0: 61 6c 20 22 24 6c 74 5f 75 73 65 72 5f 6c 6f 63  al "$lt_user_loc
3af0: 61 6c 65 0a 09 20 20 20 20 24 6d 79 5f 63 6d 64  ale..    $my_cmd
3b00: 22 0a 20 20 20 20 20 20 6d 79 5f 73 74 61 74 75  ".      my_statu
3b10: 73 3d 24 3f 0a 20 20 20 20 20 20 65 76 61 6c 20  s=$?.      eval 
3b20: 22 24 6c 74 5f 73 61 66 65 5f 6c 6f 63 61 6c 65  "$lt_safe_locale
3b30: 22 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ".      if test 
3b40: 22 24 6d 79 5f 73 74 61 74 75 73 22 20 2d 65 71  "$my_status" -eq
3b50: 20 30 3b 20 74 68 65 6e 20 3a 3b 20 65 6c 73 65   0; then :; else
3b60: 0a 09 65 76 61 6c 20 22 28 65 78 69 74 20 24 6d  ..eval "(exit $m
3b70: 79 5f 73 74 61 74 75 73 29 3b 20 24 6d 79 5f 66  y_status); $my_f
3b80: 61 69 6c 5f 65 78 70 22 0a 20 20 20 20 20 20 66  ail_exp".      f
3b90: 69 0a 20 20 20 20 66 69 0a 7d 0a 0a 0a 0a 0a 0a  i.    fi.}......
3ba0: 23 20 66 75 6e 63 5f 76 65 72 73 69 6f 6e 0a 23  # func_version.#
3bb0: 20 45 63 68 6f 20 76 65 72 73 69 6f 6e 20 6d 65   Echo version me
3bc0: 73 73 61 67 65 20 74 6f 20 73 74 61 6e 64 61 72  ssage to standar
3bd0: 64 20 6f 75 74 70 75 74 20 61 6e 64 20 65 78 69  d output and exi
3be0: 74 2e 0a 66 75 6e 63 5f 76 65 72 73 69 6f 6e 20  t..func_version 
3bf0: 28 29 0a 7b 0a 20 20 20 20 24 53 45 44 20 2d 6e  ().{.    $SED -n
3c00: 20 27 2f 5e 23 20 27 24 50 52 4f 47 52 41 4d 27   '/^# '$PROGRAM'
3c10: 20 28 47 4e 55 20 2f 2c 2f 23 20 77 61 72 72 61   (GNU /,/# warra
3c20: 6e 74 79 3b 20 2f 20 7b 0a 20 20 20 20 20 20 20  nty; / {.       
3c30: 20 73 2f 5e 23 20 2f 2f 0a 09 73 2f 5e 23 20 2a   s/^# //..s/^# *
3c40: 24 2f 2f 0a 20 20 20 20 20 20 20 20 73 2f 5c 28  $//.        s/\(
3c50: 28 43 29 5c 29 5b 20 30 2d 39 2c 2d 5d 2a 5c 28  (C)\)[ 0-9,-]*\(
3c60: 20 5b 31 2d 39 5d 5b 30 2d 39 5d 2a 5c 29 2f 5c   [1-9][0-9]*\)/\
3c70: 31 5c 32 2f 0a 20 20 20 20 20 20 20 20 70 0a 20  1\2/.        p. 
3c80: 20 20 20 20 7d 27 20 3c 20 22 24 70 72 6f 67 70      }' < "$progp
3c90: 61 74 68 22 0a 20 20 20 20 20 65 78 69 74 20 24  ath".     exit $
3ca0: 3f 0a 7d 0a 0a 23 20 66 75 6e 63 5f 75 73 61 67  ?.}..# func_usag
3cb0: 65 0a 23 20 45 63 68 6f 20 73 68 6f 72 74 20 68  e.# Echo short h
3cc0: 65 6c 70 20 6d 65 73 73 61 67 65 20 74 6f 20 73  elp message to s
3cd0: 74 61 6e 64 61 72 64 20 6f 75 74 70 75 74 20 61  tandard output a
3ce0: 6e 64 20 65 78 69 74 2e 0a 66 75 6e 63 5f 75 73  nd exit..func_us
3cf0: 61 67 65 20 28 29 0a 7b 0a 20 20 20 20 24 53 45  age ().{.    $SE
3d00: 44 20 2d 6e 20 27 2f 5e 23 20 55 73 61 67 65 3a  D -n '/^# Usage:
3d10: 2f 2c 2f 23 20 2d 68 2f 20 7b 0a 20 20 20 20 20  /,/# -h/ {.     
3d20: 20 20 20 73 2f 5e 23 20 2f 2f 0a 09 73 2f 5e 23     s/^# //..s/^#
3d30: 20 2a 24 2f 2f 0a 09 73 2f 5c 24 70 72 6f 67 6e   *$//..s/\$progn
3d40: 61 6d 65 2f 27 24 70 72 6f 67 6e 61 6d 65 27 2f  ame/'$progname'/
3d50: 0a 09 70 0a 20 20 20 20 7d 27 20 3c 20 22 24 70  ..p.    }' < "$p
3d60: 72 6f 67 70 61 74 68 22 0a 20 20 20 20 24 45 43  rogpath".    $EC
3d70: 48 4f 0a 20 20 20 20 24 45 43 48 4f 20 22 72 75  HO.    $ECHO "ru
3d80: 6e 20 5c 60 24 70 72 6f 67 6e 61 6d 65 20 2d 2d  n \`$progname --
3d90: 68 65 6c 70 20 7c 20 6d 6f 72 65 27 20 66 6f 72  help | more' for
3da0: 20 66 75 6c 6c 20 75 73 61 67 65 22 0a 20 20 20   full usage".   
3db0: 20 65 78 69 74 20 24 3f 0a 7d 0a 0a 23 20 66 75   exit $?.}..# fu
3dc0: 6e 63 5f 68 65 6c 70 0a 23 20 45 63 68 6f 20 6c  nc_help.# Echo l
3dd0: 6f 6e 67 20 68 65 6c 70 20 6d 65 73 73 61 67 65  ong help message
3de0: 20 74 6f 20 73 74 61 6e 64 61 72 64 20 6f 75 74   to standard out
3df0: 70 75 74 20 61 6e 64 20 65 78 69 74 2e 0a 66 75  put and exit..fu
3e00: 6e 63 5f 68 65 6c 70 20 28 29 0a 7b 0a 20 20 20  nc_help ().{.   
3e10: 20 24 53 45 44 20 2d 6e 20 27 2f 5e 23 20 55 73   $SED -n '/^# Us
3e20: 61 67 65 3a 2f 2c 2f 23 20 52 65 70 6f 72 74 20  age:/,/# Report 
3e30: 62 75 67 73 20 74 6f 2f 20 7b 0a 20 20 20 20 20  bugs to/ {.     
3e40: 20 20 20 73 2f 5e 23 20 2f 2f 0a 09 73 2f 5e 23     s/^# //..s/^#
3e50: 20 2a 24 2f 2f 0a 09 73 2a 5c 24 70 72 6f 67 6e   *$//..s*\$progn
3e60: 61 6d 65 2a 27 24 70 72 6f 67 6e 61 6d 65 27 2a  ame*'$progname'*
3e70: 0a 09 73 2a 5c 24 68 6f 73 74 2a 27 22 24 68 6f  ..s*\$host*'"$ho
3e80: 73 74 22 27 2a 0a 09 73 2a 5c 24 53 48 45 4c 4c  st"'*..s*\$SHELL
3e90: 2a 27 22 24 53 48 45 4c 4c 22 27 2a 0a 09 73 2a  *'"$SHELL"'*..s*
3ea0: 5c 24 4c 54 43 43 2a 27 22 24 4c 54 43 43 22 27  \$LTCC*'"$LTCC"'
3eb0: 2a 0a 09 73 2a 5c 24 4c 54 43 46 4c 41 47 53 2a  *..s*\$LTCFLAGS*
3ec0: 27 22 24 4c 54 43 46 4c 41 47 53 22 27 2a 0a 09  '"$LTCFLAGS"'*..
3ed0: 73 2a 5c 24 4c 44 2a 27 22 24 4c 44 22 27 2a 0a  s*\$LD*'"$LD"'*.
3ee0: 09 73 2f 5c 24 77 69 74 68 5f 67 6e 75 5f 6c 64  .s/\$with_gnu_ld
3ef0: 2f 27 22 24 77 69 74 68 5f 67 6e 75 5f 6c 64 22  /'"$with_gnu_ld"
3f00: 27 2f 0a 09 73 2f 5c 24 61 75 74 6f 6d 61 6b 65  '/..s/\$automake
3f10: 5f 76 65 72 73 69 6f 6e 2f 27 22 60 28 61 75 74  _version/'"`(aut
3f20: 6f 6d 61 6b 65 20 2d 2d 76 65 72 73 69 6f 6e 29  omake --version)
3f30: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 24 53   2>/dev/null |$S
3f40: 45 44 20 31 71 60 22 27 2f 0a 09 73 2f 5c 24 61  ED 1q`"'/..s/\$a
3f50: 75 74 6f 63 6f 6e 66 5f 76 65 72 73 69 6f 6e 2f  utoconf_version/
3f60: 27 22 60 28 61 75 74 6f 63 6f 6e 66 20 2d 2d 76  '"`(autoconf --v
3f70: 65 72 73 69 6f 6e 29 20 32 3e 2f 64 65 76 2f 6e  ersion) 2>/dev/n
3f80: 75 6c 6c 20 7c 24 53 45 44 20 31 71 60 22 27 2f  ull |$SED 1q`"'/
3f90: 0a 09 70 0a 20 20 20 20 20 7d 27 20 3c 20 22 24  ..p.     }' < "$
3fa0: 70 72 6f 67 70 61 74 68 22 0a 20 20 20 20 65 78  progpath".    ex
3fb0: 69 74 20 24 3f 0a 7d 0a 0a 23 20 66 75 6e 63 5f  it $?.}..# func_
3fc0: 6d 69 73 73 69 6e 67 5f 61 72 67 20 61 72 67 6e  missing_arg argn
3fd0: 61 6d 65 0a 23 20 45 63 68 6f 20 70 72 6f 67 72  ame.# Echo progr
3fe0: 61 6d 20 6e 61 6d 65 20 70 72 65 66 69 78 65 64  am name prefixed
3ff0: 20 6d 65 73 73 61 67 65 20 74 6f 20 73 74 61 6e   message to stan
4000: 64 61 72 64 20 65 72 72 6f 72 20 61 6e 64 20 73  dard error and s
4010: 65 74 20 67 6c 6f 62 61 6c 0a 23 20 65 78 69 74  et global.# exit
4020: 5f 63 6d 64 2e 0a 66 75 6e 63 5f 6d 69 73 73 69  _cmd..func_missi
4030: 6e 67 5f 61 72 67 20 28 29 0a 7b 0a 20 20 20 20  ng_arg ().{.    
4040: 66 75 6e 63 5f 65 72 72 6f 72 20 22 6d 69 73 73  func_error "miss
4050: 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 66 6f 72  ing argument for
4060: 20 24 31 22 0a 20 20 20 20 65 78 69 74 5f 63 6d   $1".    exit_cm
4070: 64 3d 65 78 69 74 0a 7d 0a 0a 65 78 69 74 5f 63  d=exit.}..exit_c
4080: 6d 64 3d 3a 0a 0a 0a 0a 0a 0a 23 20 43 68 65 63  md=:......# Chec
4090: 6b 20 74 68 61 74 20 77 65 20 68 61 76 65 20 61  k that we have a
40a0: 20 77 6f 72 6b 69 6e 67 20 24 45 43 48 4f 2e 0a   working $ECHO..
40b0: 69 66 20 74 65 73 74 20 22 58 24 31 22 20 3d 20  if test "X$1" = 
40c0: 58 2d 2d 6e 6f 2d 72 65 65 78 65 63 3b 20 74 68  X--no-reexec; th
40d0: 65 6e 0a 20 20 23 20 44 69 73 63 61 72 64 20 74  en.  # Discard t
40e0: 68 65 20 2d 2d 6e 6f 2d 72 65 65 78 65 63 20 66  he --no-reexec f
40f0: 6c 61 67 2c 20 61 6e 64 20 63 6f 6e 74 69 6e 75  lag, and continu
4100: 65 2e 0a 20 20 73 68 69 66 74 0a 65 6c 69 66 20  e..  shift.elif 
4110: 74 65 73 74 20 22 58 24 31 22 20 3d 20 58 2d 2d  test "X$1" = X--
4120: 66 61 6c 6c 62 61 63 6b 2d 65 63 68 6f 3b 20 74  fallback-echo; t
4130: 68 65 6e 0a 20 20 23 20 41 76 6f 69 64 20 69 6e  hen.  # Avoid in
4140: 6c 69 6e 65 20 64 6f 63 75 6d 65 6e 74 20 68 65  line document he
4150: 72 65 2c 20 69 74 20 6d 61 79 20 62 65 20 6c 65  re, it may be le
4160: 66 74 20 6f 76 65 72 0a 20 20 3a 0a 65 6c 69 66  ft over.  :.elif
4170: 20 74 65 73 74 20 22 58 60 7b 20 24 45 43 48 4f   test "X`{ $ECHO
4180: 20 27 5c 74 27 3b 20 7d 20 32 3e 2f 64 65 76 2f   '\t'; } 2>/dev/
4190: 6e 75 6c 6c 60 22 20 3d 20 27 58 5c 74 27 3b 20  null`" = 'X\t'; 
41a0: 74 68 65 6e 0a 20 20 23 20 59 69 70 70 65 65 2c  then.  # Yippee,
41b0: 20 24 45 43 48 4f 20 77 6f 72 6b 73 21 0a 20 20   $ECHO works!.  
41c0: 3a 0a 65 6c 73 65 0a 20 20 23 20 52 65 73 74 61  :.else.  # Resta
41d0: 72 74 20 75 6e 64 65 72 20 74 68 65 20 63 6f 72  rt under the cor
41e0: 72 65 63 74 20 73 68 65 6c 6c 2c 20 61 6e 64 20  rect shell, and 
41f0: 74 68 65 6e 20 6d 61 79 62 65 20 24 45 43 48 4f  then maybe $ECHO
4200: 20 77 69 6c 6c 20 77 6f 72 6b 2e 0a 20 20 65 78   will work..  ex
4210: 65 63 20 24 53 48 45 4c 4c 20 22 24 70 72 6f 67  ec $SHELL "$prog
4220: 70 61 74 68 22 20 2d 2d 6e 6f 2d 72 65 65 78 65  path" --no-reexe
4230: 63 20 24 7b 31 2b 22 24 40 22 7d 0a 66 69 0a 23  c ${1+"$@"}.fi.#
4240: 20 53 61 6d 65 20 66 6f 72 20 45 47 52 45 50 2c   Same for EGREP,
4250: 20 61 6e 64 20 6a 75 73 74 20 74 6f 20 62 65 20   and just to be 
4260: 73 75 72 65 2c 20 64 6f 20 4c 54 43 43 20 61 73  sure, do LTCC as
4270: 20 77 65 6c 6c 0a 69 66 20 74 65 73 74 20 22 78   well.if test "x
4280: 24 45 47 52 45 50 22 20 3d 20 78 20 3b 20 74 68  $EGREP" = x ; th
4290: 65 6e 0a 20 20 20 20 45 47 52 45 50 3d 65 67 72  en.    EGREP=egr
42a0: 65 70 0a 66 69 0a 69 66 20 74 65 73 74 20 22 78  ep.fi.if test "x
42b0: 24 4c 54 43 43 22 20 3d 20 78 20 3b 20 74 68 65  $LTCC" = x ; the
42c0: 6e 0a 20 20 20 20 4c 54 43 43 3d 24 7b 43 43 2d  n.    LTCC=${CC-
42d0: 67 63 63 7d 0a 66 69 0a 0a 69 66 20 74 65 73 74  gcc}.fi..if test
42e0: 20 22 58 24 31 22 20 3d 20 58 2d 2d 66 61 6c 6c   "X$1" = X--fall
42f0: 62 61 63 6b 2d 65 63 68 6f 3b 20 74 68 65 6e 0a  back-echo; then.
4300: 20 20 23 20 75 73 65 64 20 61 73 20 66 61 6c 6c    # used as fall
4310: 62 61 63 6b 20 65 63 68 6f 0a 20 20 73 68 69 66  back echo.  shif
4320: 74 0a 20 20 63 61 74 20 3c 3c 45 4f 46 0a 24 2a  t.  cat <<EOF.$*
4330: 0a 45 4f 46 0a 20 20 65 78 69 74 20 24 45 58 49  .EOF.  exit $EXI
4340: 54 5f 53 55 43 43 45 53 53 0a 66 69 0a 0a 6d 61  T_SUCCESS.fi..ma
4350: 67 69 63 3d 22 25 25 25 4d 41 47 49 43 20 76 61  gic="%%%MAGIC va
4360: 72 69 61 62 6c 65 25 25 25 22 0a 6d 61 67 69 63  riable%%%".magic
4370: 5f 65 78 65 3d 22 25 25 25 4d 41 47 49 43 20 45  _exe="%%%MAGIC E
4380: 58 45 20 76 61 72 69 61 62 6c 65 25 25 25 22 0a  XE variable%%%".
4390: 0a 23 20 47 6c 6f 62 61 6c 20 76 61 72 69 61 62  .# Global variab
43a0: 6c 65 73 2e 0a 23 20 24 6d 6f 64 65 20 69 73 20  les..# $mode is 
43b0: 75 6e 73 65 74 0a 6e 6f 6e 6f 70 74 3d 0a 65 78  unset.nonopt=.ex
43c0: 65 63 75 74 65 5f 64 6c 66 69 6c 65 73 3d 0a 70  ecute_dlfiles=.p
43d0: 72 65 73 65 72 76 65 5f 61 72 67 73 3d 0a 6c 6f  reserve_args=.lo
43e0: 32 6f 3d 22 73 2f 5c 5c 2e 6c 6f 5c 24 2f 2e 24  2o="s/\\.lo\$/.$
43f0: 7b 6f 62 6a 65 78 74 7d 2f 22 0a 6f 32 6c 6f 3d  {objext}/".o2lo=
4400: 22 73 2f 5c 5c 2e 24 7b 6f 62 6a 65 78 74 7d 5c  "s/\\.${objext}\
4410: 24 2f 2e 6c 6f 2f 22 0a 65 78 74 72 61 63 74 65  $/.lo/".extracte
4420: 64 5f 61 72 63 68 69 76 65 73 3d 0a 65 78 74 72  d_archives=.extr
4430: 61 63 74 65 64 5f 73 65 72 69 61 6c 3d 30 0a 0a  acted_serial=0..
4440: 6f 70 74 5f 64 72 79 5f 72 75 6e 3d 66 61 6c 73  opt_dry_run=fals
4450: 65 0a 6f 70 74 5f 64 75 70 6c 69 63 61 74 65 5f  e.opt_duplicate_
4460: 64 65 70 73 3d 66 61 6c 73 65 0a 6f 70 74 5f 73  deps=false.opt_s
4470: 69 6c 65 6e 74 3d 66 61 6c 73 65 0a 6f 70 74 5f  ilent=false.opt_
4480: 64 65 62 75 67 3d 3a 0a 0a 23 20 49 66 20 74 68  debug=:..# If th
4490: 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 73  is variable is s
44a0: 65 74 20 69 6e 20 61 6e 79 20 6f 66 20 74 68 65  et in any of the
44b0: 20 61 63 74 69 6f 6e 73 2c 20 74 68 65 20 63 6f   actions, the co
44c0: 6d 6d 61 6e 64 20 69 6e 20 69 74 0a 23 20 77 69  mmand in it.# wi
44d0: 6c 6c 20 62 65 20 65 78 65 63 65 64 20 61 74 20  ll be execed at 
44e0: 74 68 65 20 65 6e 64 2e 20 20 54 68 69 73 20 70  the end.  This p
44f0: 72 65 76 65 6e 74 73 20 68 65 72 65 2d 64 6f 63  revents here-doc
4500: 75 6d 65 6e 74 73 20 66 72 6f 6d 20 62 65 69 6e  uments from bein
4510: 67 0a 23 20 6c 65 66 74 20 6f 76 65 72 20 62 79  g.# left over by
4520: 20 73 68 65 6c 6c 73 2e 0a 65 78 65 63 5f 63 6d   shells..exec_cm
4530: 64 3d 0a 0a 23 20 66 75 6e 63 5f 66 61 74 61 6c  d=..# func_fatal
4540: 5f 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61  _configuration a
4550: 72 67 2e 2e 2e 0a 23 20 45 63 68 6f 20 70 72 6f  rg....# Echo pro
4560: 67 72 61 6d 20 6e 61 6d 65 20 70 72 65 66 69 78  gram name prefix
4570: 65 64 20 6d 65 73 73 61 67 65 20 74 6f 20 73 74  ed message to st
4580: 61 6e 64 61 72 64 20 65 72 72 6f 72 2c 20 66 6f  andard error, fo
4590: 6c 6c 6f 77 65 64 20 62 79 0a 23 20 61 20 63 6f  llowed by.# a co
45a0: 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 61 69 6c  nfiguration fail
45b0: 75 72 65 20 68 69 6e 74 2c 20 61 6e 64 20 65 78  ure hint, and ex
45c0: 69 74 2e 0a 66 75 6e 63 5f 66 61 74 61 6c 5f 63  it..func_fatal_c
45d0: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 29 0a  onfiguration ().
45e0: 7b 0a 20 20 20 20 66 75 6e 63 5f 65 72 72 6f 72  {.    func_error
45f0: 20 24 7b 31 2b 22 24 40 22 7d 0a 20 20 20 20 66   ${1+"$@"}.    f
4600: 75 6e 63 5f 65 72 72 6f 72 20 22 53 65 65 20 74  unc_error "See t
4610: 68 65 20 24 50 41 43 4b 41 47 45 20 64 6f 63 75  he $PACKAGE docu
4620: 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 6d 6f  mentation for mo
4630: 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22  re information."
4640: 0a 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  .    func_fatal_
4650: 65 72 72 6f 72 20 22 46 61 74 61 6c 20 63 6f 6e  error "Fatal con
4660: 66 69 67 75 72 61 74 69 6f 6e 20 65 72 72 6f 72  figuration error
4670: 2e 22 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 63 6f  .".}...# func_co
4680: 6e 66 69 67 0a 23 20 44 69 73 70 6c 61 79 20 74  nfig.# Display t
4690: 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  he configuration
46a0: 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 74 61 67   for all the tag
46b0: 73 20 69 6e 20 74 68 69 73 20 73 63 72 69 70 74  s in this script
46c0: 2e 0a 66 75 6e 63 5f 63 6f 6e 66 69 67 20 28 29  ..func_config ()
46d0: 0a 7b 0a 20 20 20 20 72 65 5f 62 65 67 69 6e 63  .{.    re_beginc
46e0: 66 3d 27 5e 23 20 23 23 23 20 42 45 47 49 4e 20  f='^# ### BEGIN 
46f0: 4c 49 42 54 4f 4f 4c 27 0a 20 20 20 20 72 65 5f  LIBTOOL'.    re_
4700: 65 6e 64 63 66 3d 27 5e 23 20 23 23 23 20 45 4e  endcf='^# ### EN
4710: 44 20 4c 49 42 54 4f 4f 4c 27 0a 0a 20 20 20 20  D LIBTOOL'..    
4720: 23 20 44 65 66 61 75 6c 74 20 63 6f 6e 66 69 67  # Default config
4730: 75 72 61 74 69 6f 6e 2e 0a 20 20 20 20 24 53 45  uration..    $SE
4740: 44 20 22 31 2c 2f 24 72 65 5f 62 65 67 69 6e 63  D "1,/$re_beginc
4750: 66 20 43 4f 4e 46 49 47 2f 64 3b 2f 24 72 65 5f  f CONFIG/d;/$re_
4760: 65 6e 64 63 66 20 43 4f 4e 46 49 47 2f 2c 5c 24  endcf CONFIG/,\$
4770: 64 22 20 3c 20 22 24 70 72 6f 67 70 61 74 68 22  d" < "$progpath"
4780: 0a 0a 20 20 20 20 23 20 4e 6f 77 20 70 72 69 6e  ..    # Now prin
4790: 74 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74  t the configurat
47a0: 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 74 61 67  ions for the tag
47b0: 73 2e 0a 20 20 20 20 66 6f 72 20 74 61 67 6e 61  s..    for tagna
47c0: 6d 65 20 69 6e 20 24 74 61 67 6c 69 73 74 3b 20  me in $taglist; 
47d0: 64 6f 0a 20 20 20 20 20 20 24 53 45 44 20 2d 6e  do.      $SED -n
47e0: 20 22 2f 24 72 65 5f 62 65 67 69 6e 63 66 20 54   "/$re_begincf T
47f0: 41 47 20 43 4f 4e 46 49 47 3a 20 24 74 61 67 6e  AG CONFIG: $tagn
4800: 61 6d 65 5c 24 2f 2c 2f 24 72 65 5f 65 6e 64 63  ame\$/,/$re_endc
4810: 66 20 54 41 47 20 43 4f 4e 46 49 47 3a 20 24 74  f TAG CONFIG: $t
4820: 61 67 6e 61 6d 65 5c 24 2f 70 22 20 3c 20 22 24  agname\$/p" < "$
4830: 70 72 6f 67 70 61 74 68 22 0a 20 20 20 20 64 6f  progpath".    do
4840: 6e 65 0a 0a 20 20 20 20 65 78 69 74 20 24 3f 0a  ne..    exit $?.
4850: 7d 0a 0a 23 20 66 75 6e 63 5f 66 65 61 74 75 72  }..# func_featur
4860: 65 73 0a 23 20 44 69 73 70 6c 61 79 20 74 68 65  es.# Display the
4870: 20 66 65 61 74 75 72 65 73 20 73 75 70 70 6f 72   features suppor
4880: 74 65 64 20 62 79 20 74 68 69 73 20 73 63 72 69  ted by this scri
4890: 70 74 2e 0a 66 75 6e 63 5f 66 65 61 74 75 72 65  pt..func_feature
48a0: 73 20 28 29 0a 7b 0a 20 20 20 20 24 45 43 48 4f  s ().{.    $ECHO
48b0: 20 22 68 6f 73 74 3a 20 24 68 6f 73 74 22 0a 20   "host: $host". 
48c0: 20 20 20 69 66 20 74 65 73 74 20 22 24 62 75 69     if test "$bui
48d0: 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22  ld_libtool_libs"
48e0: 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20   = yes; then.   
48f0: 20 20 20 24 45 43 48 4f 20 22 65 6e 61 62 6c 65     $ECHO "enable
4900: 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 69 65   shared librarie
4910: 73 22 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20  s".    else.    
4920: 20 20 24 45 43 48 4f 20 22 64 69 73 61 62 6c 65    $ECHO "disable
4930: 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 69 65   shared librarie
4940: 73 22 0a 20 20 20 20 66 69 0a 20 20 20 20 69 66  s".    fi.    if
4950: 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c   test "$build_ol
4960: 64 5f 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74  d_libs" = yes; t
4970: 68 65 6e 0a 20 20 20 20 20 20 24 45 43 48 4f 20  hen.      $ECHO 
4980: 22 65 6e 61 62 6c 65 20 73 74 61 74 69 63 20 6c  "enable static l
4990: 69 62 72 61 72 69 65 73 22 0a 20 20 20 20 65 6c  ibraries".    el
49a0: 73 65 0a 20 20 20 20 20 20 24 45 43 48 4f 20 22  se.      $ECHO "
49b0: 64 69 73 61 62 6c 65 20 73 74 61 74 69 63 20 6c  disable static l
49c0: 69 62 72 61 72 69 65 73 22 0a 20 20 20 20 66 69  ibraries".    fi
49d0: 0a 0a 20 20 20 20 65 78 69 74 20 24 3f 0a 7d 0a  ..    exit $?.}.
49e0: 0a 23 20 66 75 6e 63 5f 65 6e 61 62 6c 65 5f 74  .# func_enable_t
49f0: 61 67 20 74 61 67 6e 61 6d 65 0a 23 20 56 65 72  ag tagname.# Ver
4a00: 69 66 79 20 74 68 61 74 20 54 41 47 4e 41 4d 45  ify that TAGNAME
4a10: 20 69 73 20 76 61 6c 69 64 2c 20 61 6e 64 20 65   is valid, and e
4a20: 69 74 68 65 72 20 66 6c 61 67 20 61 6e 20 65 72  ither flag an er
4a30: 72 6f 72 20 61 6e 64 20 65 78 69 74 2c 20 6f 72  ror and exit, or
4a40: 0a 23 20 65 6e 61 62 6c 65 20 74 68 65 20 54 41  .# enable the TA
4a50: 47 4e 41 4d 45 20 74 61 67 2e 20 20 57 65 20 61  GNAME tag.  We a
4a60: 6c 73 6f 20 61 64 64 20 54 41 47 4e 41 4d 45 20  lso add TAGNAME 
4a70: 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 24 74  to the global $t
4a80: 61 67 6c 69 73 74 0a 23 20 76 61 72 69 61 62 6c  aglist.# variabl
4a90: 65 20 68 65 72 65 2e 0a 66 75 6e 63 5f 65 6e 61  e here..func_ena
4aa0: 62 6c 65 5f 74 61 67 20 28 29 0a 7b 0a 20 20 23  ble_tag ().{.  #
4ab0: 20 47 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65   Global variable
4ac0: 3a 0a 20 20 74 61 67 6e 61 6d 65 3d 22 24 31 22  :.  tagname="$1"
4ad0: 0a 0a 20 20 72 65 5f 62 65 67 69 6e 63 66 3d 22  ..  re_begincf="
4ae0: 5e 23 20 23 23 23 20 42 45 47 49 4e 20 4c 49 42  ^# ### BEGIN LIB
4af0: 54 4f 4f 4c 20 54 41 47 20 43 4f 4e 46 49 47 3a  TOOL TAG CONFIG:
4b00: 20 24 74 61 67 6e 61 6d 65 5c 24 22 0a 20 20 72   $tagname\$".  r
4b10: 65 5f 65 6e 64 63 66 3d 22 5e 23 20 23 23 23 20  e_endcf="^# ### 
4b20: 45 4e 44 20 4c 49 42 54 4f 4f 4c 20 54 41 47 20  END LIBTOOL TAG 
4b30: 43 4f 4e 46 49 47 3a 20 24 74 61 67 6e 61 6d 65  CONFIG: $tagname
4b40: 5c 24 22 0a 20 20 73 65 64 5f 65 78 74 72 61 63  \$".  sed_extrac
4b50: 74 63 66 3d 22 2f 24 72 65 5f 62 65 67 69 6e 63  tcf="/$re_beginc
4b60: 66 2f 2c 2f 24 72 65 5f 65 6e 64 63 66 2f 70 22  f/,/$re_endcf/p"
4b70: 0a 0a 20 20 23 20 56 61 6c 69 64 61 74 65 20 74  ..  # Validate t
4b80: 61 67 6e 61 6d 65 2e 0a 20 20 63 61 73 65 20 24  agname..  case $
4b90: 74 61 67 6e 61 6d 65 20 69 6e 0a 20 20 20 20 2a  tagname in.    *
4ba0: 5b 21 2d 5f 41 2d 5a 61 2d 7a 30 2d 39 2c 2f 5d  [!-_A-Za-z0-9,/]
4bb0: 2a 29 0a 20 20 20 20 20 20 66 75 6e 63 5f 66 61  *).      func_fa
4bc0: 74 61 6c 5f 65 72 72 6f 72 20 22 69 6e 76 61 6c  tal_error "inval
4bd0: 69 64 20 74 61 67 20 6e 61 6d 65 3a 20 24 74 61  id tag name: $ta
4be0: 67 6e 61 6d 65 22 0a 20 20 20 20 20 20 3b 3b 0a  gname".      ;;.
4bf0: 20 20 65 73 61 63 0a 0a 20 20 23 20 44 6f 6e 27    esac..  # Don'
4c00: 74 20 74 65 73 74 20 66 6f 72 20 74 68 65 20 22  t test for the "
4c10: 64 65 66 61 75 6c 74 22 20 43 20 74 61 67 2c 20  default" C tag, 
4c20: 61 73 20 77 65 20 6b 6e 6f 77 20 69 74 27 73 0a  as we know it's.
4c30: 20 20 23 20 74 68 65 72 65 20 62 75 74 20 6e 6f    # there but no
4c40: 74 20 73 70 65 63 69 61 6c 6c 79 20 6d 61 72 6b  t specially mark
4c50: 65 64 2e 0a 20 20 63 61 73 65 20 24 74 61 67 6e  ed..  case $tagn
4c60: 61 6d 65 20 69 6e 0a 20 20 20 20 43 43 29 20 3b  ame in.    CC) ;
4c70: 3b 0a 20 20 20 20 2a 29 0a 20 20 20 20 20 20 69  ;.    *).      i
4c80: 66 20 24 47 52 45 50 20 22 24 72 65 5f 62 65 67  f $GREP "$re_beg
4c90: 69 6e 63 66 22 20 22 24 70 72 6f 67 70 61 74 68  incf" "$progpath
4ca0: 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 26  " >/dev/null 2>&
4cb0: 31 3b 20 74 68 65 6e 0a 09 74 61 67 6c 69 73 74  1; then..taglist
4cc0: 3d 22 24 74 61 67 6c 69 73 74 20 24 74 61 67 6e  ="$taglist $tagn
4cd0: 61 6d 65 22 0a 0a 09 23 20 45 76 61 6c 75 61 74  ame"...# Evaluat
4ce0: 65 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74  e the configurat
4cf0: 69 6f 6e 2e 20 20 42 65 20 63 61 72 65 66 75 6c  ion.  Be careful
4d00: 20 74 6f 20 71 75 6f 74 65 20 74 68 65 20 70 61   to quote the pa
4d10: 74 68 0a 09 23 20 61 6e 64 20 74 68 65 20 73 65  th..# and the se
4d20: 64 20 73 63 72 69 70 74 2c 20 74 6f 20 61 76 6f  d script, to avo
4d30: 69 64 20 73 70 6c 69 74 74 69 6e 67 20 6f 6e 20  id splitting on 
4d40: 77 68 69 74 65 73 70 61 63 65 2c 20 62 75 74 0a  whitespace, but.
4d50: 09 23 20 61 6c 73 6f 20 64 6f 6e 27 74 20 75 73  .# also don't us
4d60: 65 20 6e 6f 6e 2d 70 6f 72 74 61 62 6c 65 20 71  e non-portable q
4d70: 75 6f 74 65 73 20 77 69 74 68 69 6e 20 62 61 63  uotes within bac
4d80: 6b 71 75 6f 74 65 73 20 77 69 74 68 69 6e 0a 09  kquotes within..
4d90: 23 20 71 75 6f 74 65 73 20 77 65 20 68 61 76 65  # quotes we have
4da0: 20 74 6f 20 64 6f 20 69 74 20 69 6e 20 32 20 73   to do it in 2 s
4db0: 74 65 70 73 3a 0a 09 65 78 74 72 61 63 74 65 64  teps:..extracted
4dc0: 63 66 3d 60 24 53 45 44 20 2d 6e 20 2d 65 20 22  cf=`$SED -n -e "
4dd0: 24 73 65 64 5f 65 78 74 72 61 63 74 63 66 22 20  $sed_extractcf" 
4de0: 3c 20 22 24 70 72 6f 67 70 61 74 68 22 60 0a 09  < "$progpath"`..
4df0: 65 76 61 6c 20 22 24 65 78 74 72 61 63 74 65 64  eval "$extracted
4e00: 63 66 22 0a 20 20 20 20 20 20 65 6c 73 65 0a 09  cf".      else..
4e10: 66 75 6e 63 5f 65 72 72 6f 72 20 22 69 67 6e 6f  func_error "igno
4e20: 72 69 6e 67 20 75 6e 6b 6e 6f 77 6e 20 74 61 67  ring unknown tag
4e30: 20 24 74 61 67 6e 61 6d 65 22 0a 20 20 20 20 20   $tagname".     
4e40: 20 66 69 0a 20 20 20 20 20 20 3b 3b 0a 20 20 65   fi.      ;;.  e
4e50: 73 61 63 0a 7d 0a 0a 23 20 50 61 72 73 65 20 6f  sac.}..# Parse o
4e60: 70 74 69 6f 6e 73 20 6f 6e 63 65 2c 20 74 68 6f  ptions once, tho
4e70: 72 6f 75 67 68 6c 79 2e 20 20 54 68 69 73 20 63  roughly.  This c
4e80: 6f 6d 65 73 20 61 73 20 73 6f 6f 6e 20 61 73 20  omes as soon as 
4e90: 70 6f 73 73 69 62 6c 65 20 69 6e 0a 23 20 74 68  possible in.# th
4ea0: 65 20 73 63 72 69 70 74 20 74 6f 20 6d 61 6b 65  e script to make
4eb0: 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 60 6c 69   things like `li
4ec0: 62 74 6f 6f 6c 20 2d 2d 76 65 72 73 69 6f 6e 27  btool --version'
4ed0: 20 68 61 70 70 65 6e 20 71 75 69 63 6b 6c 79 2e   happen quickly.
4ee0: 0a 7b 0a 0a 20 20 23 20 53 68 6f 72 74 68 61 6e  .{..  # Shorthan
4ef0: 64 20 66 6f 72 20 2d 2d 6d 6f 64 65 3d 66 6f 6f  d for --mode=foo
4f00: 2c 20 6f 6e 6c 79 20 76 61 6c 69 64 20 61 73 20  , only valid as 
4f10: 74 68 65 20 66 69 72 73 74 20 61 72 67 75 6d 65  the first argume
4f20: 6e 74 0a 20 20 63 61 73 65 20 24 31 20 69 6e 0a  nt.  case $1 in.
4f30: 20 20 63 6c 65 61 6e 7c 63 6c 65 61 7c 63 6c 65    clean|clea|cle
4f40: 7c 63 6c 29 0a 20 20 20 20 73 68 69 66 74 3b 20  |cl).    shift; 
4f50: 73 65 74 20 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65  set dummy --mode
4f60: 20 63 6c 65 61 6e 20 24 7b 31 2b 22 24 40 22 7d   clean ${1+"$@"}
4f70: 3b 20 73 68 69 66 74 0a 20 20 20 20 3b 3b 0a 20  ; shift.    ;;. 
4f80: 20 63 6f 6d 70 69 6c 65 7c 63 6f 6d 70 69 6c 7c   compile|compil|
4f90: 63 6f 6d 70 69 7c 63 6f 6d 70 7c 63 6f 6d 7c 63  compi|comp|com|c
4fa0: 6f 7c 63 29 0a 20 20 20 20 73 68 69 66 74 3b 20  o|c).    shift; 
4fb0: 73 65 74 20 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65  set dummy --mode
4fc0: 20 63 6f 6d 70 69 6c 65 20 24 7b 31 2b 22 24 40   compile ${1+"$@
4fd0: 22 7d 3b 20 73 68 69 66 74 0a 20 20 20 20 3b 3b  "}; shift.    ;;
4fe0: 0a 20 20 65 78 65 63 75 74 65 7c 65 78 65 63 75  .  execute|execu
4ff0: 74 7c 65 78 65 63 75 7c 65 78 65 63 7c 65 78 65  t|execu|exec|exe
5000: 7c 65 78 7c 65 29 0a 20 20 20 20 73 68 69 66 74  |ex|e).    shift
5010: 3b 20 73 65 74 20 64 75 6d 6d 79 20 2d 2d 6d 6f  ; set dummy --mo
5020: 64 65 20 65 78 65 63 75 74 65 20 24 7b 31 2b 22  de execute ${1+"
5030: 24 40 22 7d 3b 20 73 68 69 66 74 0a 20 20 20 20  $@"}; shift.    
5040: 3b 3b 0a 20 20 66 69 6e 69 73 68 7c 66 69 6e 69  ;;.  finish|fini
5050: 73 7c 66 69 6e 69 7c 66 69 6e 7c 66 69 7c 66 29  s|fini|fin|fi|f)
5060: 0a 20 20 20 20 73 68 69 66 74 3b 20 73 65 74 20  .    shift; set 
5070: 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65 20 66 69 6e  dummy --mode fin
5080: 69 73 68 20 24 7b 31 2b 22 24 40 22 7d 3b 20 73  ish ${1+"$@"}; s
5090: 68 69 66 74 0a 20 20 20 20 3b 3b 0a 20 20 69 6e  hift.    ;;.  in
50a0: 73 74 61 6c 6c 7c 69 6e 73 74 61 6c 7c 69 6e 73  stall|instal|ins
50b0: 74 61 7c 69 6e 73 74 7c 69 6e 73 7c 69 6e 7c 69  ta|inst|ins|in|i
50c0: 29 0a 20 20 20 20 73 68 69 66 74 3b 20 73 65 74  ).    shift; set
50d0: 20 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65 20 69 6e   dummy --mode in
50e0: 73 74 61 6c 6c 20 24 7b 31 2b 22 24 40 22 7d 3b  stall ${1+"$@"};
50f0: 20 73 68 69 66 74 0a 20 20 20 20 3b 3b 0a 20 20   shift.    ;;.  
5100: 6c 69 6e 6b 7c 6c 69 6e 7c 6c 69 7c 6c 29 0a 20  link|lin|li|l). 
5110: 20 20 20 73 68 69 66 74 3b 20 73 65 74 20 64 75     shift; set du
5120: 6d 6d 79 20 2d 2d 6d 6f 64 65 20 6c 69 6e 6b 20  mmy --mode link 
5130: 24 7b 31 2b 22 24 40 22 7d 3b 20 73 68 69 66 74  ${1+"$@"}; shift
5140: 0a 20 20 20 20 3b 3b 0a 20 20 75 6e 69 6e 73 74  .    ;;.  uninst
5150: 61 6c 6c 7c 75 6e 69 6e 73 74 61 6c 7c 75 6e 69  all|uninstal|uni
5160: 6e 73 74 61 7c 75 6e 69 6e 73 74 7c 75 6e 69 6e  nsta|uninst|unin
5170: 73 7c 75 6e 69 6e 7c 75 6e 69 7c 75 6e 7c 75 29  s|unin|uni|un|u)
5180: 0a 20 20 20 20 73 68 69 66 74 3b 20 73 65 74 20  .    shift; set 
5190: 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65 20 75 6e 69  dummy --mode uni
51a0: 6e 73 74 61 6c 6c 20 24 7b 31 2b 22 24 40 22 7d  nstall ${1+"$@"}
51b0: 3b 20 73 68 69 66 74 0a 20 20 20 20 3b 3b 0a 20  ; shift.    ;;. 
51c0: 20 65 73 61 63 0a 0a 20 20 23 20 50 61 72 73 65   esac..  # Parse
51d0: 20 6e 6f 6e 2d 6d 6f 64 65 20 73 70 65 63 69 66   non-mode specif
51e0: 69 63 20 61 72 67 75 6d 65 6e 74 73 3a 0a 20 20  ic arguments:.  
51f0: 77 68 69 6c 65 20 74 65 73 74 20 22 24 23 22 20  while test "$#" 
5200: 2d 67 74 20 30 3b 20 64 6f 0a 20 20 20 20 6f 70  -gt 0; do.    op
5210: 74 3d 22 24 31 22 0a 20 20 20 20 73 68 69 66 74  t="$1".    shift
5220: 0a 0a 20 20 20 20 63 61 73 65 20 24 6f 70 74 20  ..    case $opt 
5230: 69 6e 0a 20 20 20 20 20 20 2d 2d 63 6f 6e 66 69  in.      --confi
5240: 67 29 09 09 66 75 6e 63 5f 63 6f 6e 66 69 67 09  g)..func_config.
5250: 09 09 09 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 2d  ....;;..      --
5260: 64 65 62 75 67 29 09 09 70 72 65 73 65 72 76 65  debug)..preserve
5270: 5f 61 72 67 73 3d 22 24 70 72 65 73 65 72 76 65  _args="$preserve
5280: 5f 61 72 67 73 20 24 6f 70 74 22 0a 09 09 09 66  _args $opt"....f
5290: 75 6e 63 5f 65 63 68 6f 20 22 65 6e 61 62 6c 69  unc_echo "enabli
52a0: 6e 67 20 73 68 65 6c 6c 20 74 72 61 63 65 20 6d  ng shell trace m
52b0: 6f 64 65 22 0a 09 09 09 6f 70 74 5f 64 65 62 75  ode"....opt_debu
52c0: 67 3d 27 73 65 74 20 2d 78 27 0a 09 09 09 24 6f  g='set -x'....$o
52d0: 70 74 5f 64 65 62 75 67 0a 09 09 09 3b 3b 0a 0a  pt_debug....;;..
52e0: 20 20 20 20 20 20 2d 64 6c 6f 70 65 6e 29 09 09        -dlopen)..
52f0: 74 65 73 74 20 22 24 23 22 20 2d 65 71 20 30 20  test "$#" -eq 0 
5300: 26 26 20 66 75 6e 63 5f 6d 69 73 73 69 6e 67 5f  && func_missing_
5310: 61 72 67 20 22 24 6f 70 74 22 20 26 26 20 62 72  arg "$opt" && br
5320: 65 61 6b 0a 09 09 09 65 78 65 63 75 74 65 5f 64  eak....execute_d
5330: 6c 66 69 6c 65 73 3d 22 24 65 78 65 63 75 74 65  lfiles="$execute
5340: 5f 64 6c 66 69 6c 65 73 20 24 31 22 0a 09 09 09  _dlfiles $1"....
5350: 73 68 69 66 74 0a 09 09 09 3b 3b 0a 0a 20 20 20  shift....;;..   
5360: 20 20 20 2d 2d 64 72 79 2d 72 75 6e 20 7c 20 2d     --dry-run | -
5370: 6e 29 09 6f 70 74 5f 64 72 79 5f 72 75 6e 3d 3a  n).opt_dry_run=:
5380: 09 09 09 09 09 3b 3b 0a 20 20 20 20 20 20 2d 2d  .....;;.      --
5390: 66 65 61 74 75 72 65 73 29 20 20 20 20 20 20 20  features)       
53a0: 66 75 6e 63 5f 66 65 61 74 75 72 65 73 09 09 09  func_features...
53b0: 09 09 3b 3b 0a 20 20 20 20 20 20 2d 2d 66 69 6e  ..;;.      --fin
53c0: 69 73 68 29 09 09 6d 6f 64 65 3d 22 66 69 6e 69  ish)..mode="fini
53d0: 73 68 22 09 09 09 09 09 3b 3b 0a 0a 20 20 20 20  sh".....;;..    
53e0: 20 20 2d 2d 6d 6f 64 65 29 09 09 74 65 73 74 20    --mode)..test 
53f0: 22 24 23 22 20 2d 65 71 20 30 20 26 26 20 66 75  "$#" -eq 0 && fu
5400: 6e 63 5f 6d 69 73 73 69 6e 67 5f 61 72 67 20 22  nc_missing_arg "
5410: 24 6f 70 74 22 20 26 26 20 62 72 65 61 6b 0a 09  $opt" && break..
5420: 09 09 63 61 73 65 20 24 31 20 69 6e 0a 09 09 09  ..case $1 in....
5430: 20 20 23 20 56 61 6c 69 64 20 6d 6f 64 65 20 61    # Valid mode a
5440: 72 67 75 6d 65 6e 74 73 3a 0a 09 09 09 20 20 63  rguments:....  c
5450: 6c 65 61 6e 29 09 3b 3b 0a 09 09 09 20 20 63 6f  lean).;;....  co
5460: 6d 70 69 6c 65 29 09 3b 3b 0a 09 09 09 20 20 65  mpile).;;....  e
5470: 78 65 63 75 74 65 29 09 3b 3b 0a 09 09 09 20 20  xecute).;;....  
5480: 66 69 6e 69 73 68 29 09 3b 3b 0a 09 09 09 20 20  finish).;;....  
5490: 69 6e 73 74 61 6c 6c 29 09 3b 3b 0a 09 09 09 20  install).;;.... 
54a0: 20 6c 69 6e 6b 29 09 09 3b 3b 0a 09 09 09 20 20   link)..;;....  
54b0: 72 65 6c 69 6e 6b 29 09 3b 3b 0a 09 09 09 20 20  relink).;;....  
54c0: 75 6e 69 6e 73 74 61 6c 6c 29 09 3b 3b 0a 0a 09  uninstall).;;...
54d0: 09 09 20 20 23 20 43 61 74 63 68 20 61 6e 79 74  ..  # Catch anyt
54e0: 68 69 6e 67 20 65 6c 73 65 20 61 73 20 61 6e 20  hing else as an 
54f0: 65 72 72 6f 72 0a 09 09 09 20 20 2a 29 20 66 75  error....  *) fu
5500: 6e 63 5f 65 72 72 6f 72 20 22 69 6e 76 61 6c 69  nc_error "invali
5510: 64 20 61 72 67 75 6d 65 6e 74 20 66 6f 72 20 24  d argument for $
5520: 6f 70 74 22 0a 09 09 09 20 20 20 20 20 65 78 69  opt"....     exi
5530: 74 5f 63 6d 64 3d 65 78 69 74 0a 09 09 09 20 20  t_cmd=exit....  
5540: 20 20 20 62 72 65 61 6b 0a 09 09 09 20 20 20 20     break....    
5550: 20 3b 3b 0a 09 09 20 20 20 20 20 20 20 20 65 73   ;;...        es
5560: 61 63 0a 0a 09 09 09 6d 6f 64 65 3d 22 24 31 22  ac.....mode="$1"
5570: 0a 09 09 09 73 68 69 66 74 0a 09 09 09 3b 3b 0a  ....shift....;;.
5580: 0a 20 20 20 20 20 20 2d 2d 70 72 65 73 65 72 76  .      --preserv
5590: 65 2d 64 75 70 2d 64 65 70 73 29 0a 09 09 09 6f  e-dup-deps)....o
55a0: 70 74 5f 64 75 70 6c 69 63 61 74 65 5f 64 65 70  pt_duplicate_dep
55b0: 73 3d 3a 09 09 09 09 3b 3b 0a 0a 20 20 20 20 20  s=:....;;..     
55c0: 20 2d 2d 71 75 69 65 74 7c 2d 2d 73 69 6c 65 6e   --quiet|--silen
55d0: 74 29 09 70 72 65 73 65 72 76 65 5f 61 72 67 73  t).preserve_args
55e0: 3d 22 24 70 72 65 73 65 72 76 65 5f 61 72 67 73  ="$preserve_args
55f0: 20 24 6f 70 74 22 0a 09 09 09 6f 70 74 5f 73 69   $opt"....opt_si
5600: 6c 65 6e 74 3d 3a 0a 09 09 09 3b 3b 0a 0a 20 20  lent=:....;;..  
5610: 20 20 20 20 2d 2d 76 65 72 62 6f 73 65 7c 20 2d      --verbose| -
5620: 76 29 09 70 72 65 73 65 72 76 65 5f 61 72 67 73  v).preserve_args
5630: 3d 22 24 70 72 65 73 65 72 76 65 5f 61 72 67 73  ="$preserve_args
5640: 20 24 6f 70 74 22 0a 09 09 09 6f 70 74 5f 73 69   $opt"....opt_si
5650: 6c 65 6e 74 3d 66 61 6c 73 65 0a 09 09 09 3b 3b  lent=false....;;
5660: 0a 0a 20 20 20 20 20 20 2d 2d 74 61 67 29 09 09  ..      --tag)..
5670: 74 65 73 74 20 22 24 23 22 20 2d 65 71 20 30 20  test "$#" -eq 0 
5680: 26 26 20 66 75 6e 63 5f 6d 69 73 73 69 6e 67 5f  && func_missing_
5690: 61 72 67 20 22 24 6f 70 74 22 20 26 26 20 62 72  arg "$opt" && br
56a0: 65 61 6b 0a 09 09 09 70 72 65 73 65 72 76 65 5f  eak....preserve_
56b0: 61 72 67 73 3d 22 24 70 72 65 73 65 72 76 65 5f  args="$preserve_
56c0: 61 72 67 73 20 24 6f 70 74 20 24 31 22 0a 09 09  args $opt $1"...
56d0: 09 66 75 6e 63 5f 65 6e 61 62 6c 65 5f 74 61 67  .func_enable_tag
56e0: 20 22 24 31 22 09 23 20 74 61 67 6e 61 6d 65 20   "$1".# tagname 
56f0: 69 73 20 73 65 74 20 68 65 72 65 0a 09 09 09 73  is set here....s
5700: 68 69 66 74 0a 09 09 09 3b 3b 0a 0a 20 20 20 20  hift....;;..    
5710: 20 20 23 20 53 65 70 61 72 61 74 65 20 6f 70 74    # Separate opt
5720: 61 72 67 73 20 74 6f 20 6c 6f 6e 67 20 6f 70 74  args to long opt
5730: 69 6f 6e 73 3a 0a 20 20 20 20 20 20 2d 64 6c 6f  ions:.      -dlo
5740: 70 65 6e 3d 2a 7c 2d 2d 6d 6f 64 65 3d 2a 7c 2d  pen=*|--mode=*|-
5750: 2d 74 61 67 3d 2a 29 0a 09 09 09 66 75 6e 63 5f  -tag=*)....func_
5760: 6f 70 74 5f 73 70 6c 69 74 20 22 24 6f 70 74 22  opt_split "$opt"
5770: 0a 09 09 09 73 65 74 20 64 75 6d 6d 79 20 22 24  ....set dummy "$
5780: 66 75 6e 63 5f 6f 70 74 5f 73 70 6c 69 74 5f 6f  func_opt_split_o
5790: 70 74 22 20 22 24 66 75 6e 63 5f 6f 70 74 5f 73  pt" "$func_opt_s
57a0: 70 6c 69 74 5f 61 72 67 22 20 24 7b 31 2b 22 24  plit_arg" ${1+"$
57b0: 40 22 7d 0a 09 09 09 73 68 69 66 74 0a 09 09 09  @"}....shift....
57c0: 3b 3b 0a 0a 20 20 20 20 20 20 2d 5c 3f 7c 2d 68  ;;..      -\?|-h
57d0: 29 09 09 66 75 6e 63 5f 75 73 61 67 65 09 09 09  )..func_usage...
57e0: 09 09 3b 3b 0a 20 20 20 20 20 20 2d 2d 68 65 6c  ..;;.      --hel
57f0: 70 29 09 09 6f 70 74 5f 68 65 6c 70 3d 3a 09 09  p)..opt_help=:..
5800: 09 09 09 3b 3b 0a 20 20 20 20 20 20 2d 2d 76 65  ...;;.      --ve
5810: 72 73 69 6f 6e 29 09 66 75 6e 63 5f 76 65 72 73  rsion).func_vers
5820: 69 6f 6e 09 09 09 09 09 3b 3b 0a 0a 20 20 20 20  ion.....;;..    
5830: 20 20 2d 2a 29 09 09 66 75 6e 63 5f 66 61 74 61    -*)..func_fata
5840: 6c 5f 68 65 6c 70 20 22 75 6e 72 65 63 6f 67 6e  l_help "unrecogn
5850: 69 7a 65 64 20 6f 70 74 69 6f 6e 20 5c 60 24 6f  ized option \`$o
5860: 70 74 27 22 09 3b 3b 0a 0a 20 20 20 20 20 20 2a  pt'".;;..      *
5870: 29 09 09 6e 6f 6e 6f 70 74 3d 22 24 6f 70 74 22  )..nonopt="$opt"
5880: 0a 09 09 09 62 72 65 61 6b 0a 09 09 09 3b 3b 0a  ....break....;;.
5890: 20 20 20 20 65 73 61 63 0a 20 20 64 6f 6e 65 0a      esac.  done.
58a0: 0a 0a 20 20 63 61 73 65 20 24 68 6f 73 74 20 69  ..  case $host i
58b0: 6e 0a 20 20 20 20 2a 63 79 67 77 69 6e 2a 20 7c  n.    *cygwin* |
58c0: 20 2a 6d 69 6e 67 77 2a 20 7c 20 2a 70 77 33 32   *mingw* | *pw32
58d0: 2a 20 7c 20 2a 63 65 67 63 63 2a 29 0a 20 20 20  * | *cegcc*).   
58e0: 20 20 20 23 20 64 6f 6e 27 74 20 65 6c 69 6d 69     # don't elimi
58f0: 6e 61 74 65 20 64 75 70 6c 69 63 61 74 69 6f 6e  nate duplication
5900: 73 20 69 6e 20 24 70 6f 73 74 64 65 70 73 20 61  s in $postdeps a
5910: 6e 64 20 24 70 72 65 64 65 70 73 0a 20 20 20 20  nd $predeps.    
5920: 20 20 6f 70 74 5f 64 75 70 6c 69 63 61 74 65 5f    opt_duplicate_
5930: 63 6f 6d 70 69 6c 65 72 5f 67 65 6e 65 72 61 74  compiler_generat
5940: 65 64 5f 64 65 70 73 3d 3a 0a 20 20 20 20 20 20  ed_deps=:.      
5950: 3b 3b 0a 20 20 20 20 2a 29 0a 20 20 20 20 20 20  ;;.    *).      
5960: 6f 70 74 5f 64 75 70 6c 69 63 61 74 65 5f 63 6f  opt_duplicate_co
5970: 6d 70 69 6c 65 72 5f 67 65 6e 65 72 61 74 65 64  mpiler_generated
5980: 5f 64 65 70 73 3d 24 6f 70 74 5f 64 75 70 6c 69  _deps=$opt_dupli
5990: 63 61 74 65 5f 64 65 70 73 0a 20 20 20 20 20 20  cate_deps.      
59a0: 3b 3b 0a 20 20 65 73 61 63 0a 0a 20 20 23 20 48  ;;.  esac..  # H
59b0: 61 76 69 6e 67 20 77 61 72 6e 65 64 20 61 62 6f  aving warned abo
59c0: 75 74 20 61 6c 6c 20 6d 69 73 2d 73 70 65 63 69  ut all mis-speci
59d0: 66 69 65 64 20 6f 70 74 69 6f 6e 73 2c 20 62 61  fied options, ba
59e0: 69 6c 20 6f 75 74 20 69 66 0a 20 20 23 20 61 6e  il out if.  # an
59f0: 79 74 68 69 6e 67 20 77 61 73 20 77 72 6f 6e 67  ything was wrong
5a00: 2e 0a 20 20 24 65 78 69 74 5f 63 6d 64 20 24 45  ..  $exit_cmd $E
5a10: 58 49 54 5f 46 41 49 4c 55 52 45 0a 7d 0a 0a 23  XIT_FAILURE.}..#
5a20: 20 66 75 6e 63 5f 63 68 65 63 6b 5f 76 65 72 73   func_check_vers
5a30: 69 6f 6e 5f 6d 61 74 63 68 0a 23 20 45 6e 73 75  ion_match.# Ensu
5a40: 72 65 20 74 68 61 74 20 77 65 20 61 72 65 20 75  re that we are u
5a50: 73 69 6e 67 20 6d 34 20 6d 61 63 72 6f 73 2c 20  sing m4 macros, 
5a60: 61 6e 64 20 6c 69 62 74 6f 6f 6c 20 73 63 72 69  and libtool scri
5a70: 70 74 20 66 72 6f 6d 20 74 68 65 20 73 61 6d 65  pt from the same
5a80: 0a 23 20 72 65 6c 65 61 73 65 20 6f 66 20 6c 69  .# release of li
5a90: 62 74 6f 6f 6c 2e 0a 66 75 6e 63 5f 63 68 65 63  btool..func_chec
5aa0: 6b 5f 76 65 72 73 69 6f 6e 5f 6d 61 74 63 68 20  k_version_match 
5ab0: 28 29 0a 7b 0a 20 20 69 66 20 74 65 73 74 20 22  ().{.  if test "
5ac0: 24 70 61 63 6b 61 67 65 5f 72 65 76 69 73 69 6f  $package_revisio
5ad0: 6e 22 20 21 3d 20 22 24 6d 61 63 72 6f 5f 72 65  n" != "$macro_re
5ae0: 76 69 73 69 6f 6e 22 3b 20 74 68 65 6e 0a 20 20  vision"; then.  
5af0: 20 20 69 66 20 74 65 73 74 20 22 24 56 45 52 53    if test "$VERS
5b00: 49 4f 4e 22 20 21 3d 20 22 24 6d 61 63 72 6f 5f  ION" != "$macro_
5b10: 76 65 72 73 69 6f 6e 22 3b 20 74 68 65 6e 0a 20  version"; then. 
5b20: 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 7a 20       if test -z 
5b30: 22 24 6d 61 63 72 6f 5f 76 65 72 73 69 6f 6e 22  "$macro_version"
5b40: 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 63  ; then.        c
5b50: 61 74 20 3e 26 32 20 3c 3c 5f 4c 54 5f 45 4f 46  at >&2 <<_LT_EOF
5b60: 0a 24 70 72 6f 67 6e 61 6d 65 3a 20 56 65 72 73  .$progname: Vers
5b70: 69 6f 6e 20 6d 69 73 6d 61 74 63 68 20 65 72 72  ion mismatch err
5b80: 6f 72 2e 20 20 54 68 69 73 20 69 73 20 24 50 41  or.  This is $PA
5b90: 43 4b 41 47 45 20 24 56 45 52 53 49 4f 4e 2c 20  CKAGE $VERSION, 
5ba0: 62 75 74 20 74 68 65 0a 24 70 72 6f 67 6e 61 6d  but the.$prognam
5bb0: 65 3a 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66  e: definition of
5bc0: 20 74 68 69 73 20 4c 54 5f 49 4e 49 54 20 63 6f   this LT_INIT co
5bd0: 6d 65 73 20 66 72 6f 6d 20 61 6e 20 6f 6c 64 65  mes from an olde
5be0: 72 20 72 65 6c 65 61 73 65 2e 0a 24 70 72 6f 67  r release..$prog
5bf0: 6e 61 6d 65 3a 20 59 6f 75 20 73 68 6f 75 6c 64  name: You should
5c00: 20 72 65 63 72 65 61 74 65 20 61 63 6c 6f 63 61   recreate acloca
5c10: 6c 2e 6d 34 20 77 69 74 68 20 6d 61 63 72 6f 73  l.m4 with macros
5c20: 20 66 72 6f 6d 20 24 50 41 43 4b 41 47 45 20 24   from $PACKAGE $
5c30: 56 45 52 53 49 4f 4e 0a 24 70 72 6f 67 6e 61 6d  VERSION.$prognam
5c40: 65 3a 20 61 6e 64 20 72 75 6e 20 61 75 74 6f 63  e: and run autoc
5c50: 6f 6e 66 20 61 67 61 69 6e 2e 0a 5f 4c 54 5f 45  onf again.._LT_E
5c60: 4f 46 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20  OF.      else.  
5c70: 20 20 20 20 20 20 63 61 74 20 3e 26 32 20 3c 3c        cat >&2 <<
5c80: 5f 4c 54 5f 45 4f 46 0a 24 70 72 6f 67 6e 61 6d  _LT_EOF.$prognam
5c90: 65 3a 20 56 65 72 73 69 6f 6e 20 6d 69 73 6d 61  e: Version misma
5ca0: 74 63 68 20 65 72 72 6f 72 2e 20 20 54 68 69 73  tch error.  This
5cb0: 20 69 73 20 24 50 41 43 4b 41 47 45 20 24 56 45   is $PACKAGE $VE
5cc0: 52 53 49 4f 4e 2c 20 62 75 74 20 74 68 65 0a 24  RSION, but the.$
5cd0: 70 72 6f 67 6e 61 6d 65 3a 20 64 65 66 69 6e 69  progname: defini
5ce0: 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 54 5f  tion of this LT_
5cf0: 49 4e 49 54 20 63 6f 6d 65 73 20 66 72 6f 6d 20  INIT comes from 
5d00: 24 50 41 43 4b 41 47 45 20 24 6d 61 63 72 6f 5f  $PACKAGE $macro_
5d10: 76 65 72 73 69 6f 6e 2e 0a 24 70 72 6f 67 6e 61  version..$progna
5d20: 6d 65 3a 20 59 6f 75 20 73 68 6f 75 6c 64 20 72  me: You should r
5d30: 65 63 72 65 61 74 65 20 61 63 6c 6f 63 61 6c 2e  ecreate aclocal.
5d40: 6d 34 20 77 69 74 68 20 6d 61 63 72 6f 73 20 66  m4 with macros f
5d50: 72 6f 6d 20 24 50 41 43 4b 41 47 45 20 24 56 45  rom $PACKAGE $VE
5d60: 52 53 49 4f 4e 0a 24 70 72 6f 67 6e 61 6d 65 3a  RSION.$progname:
5d70: 20 61 6e 64 20 72 75 6e 20 61 75 74 6f 63 6f 6e   and run autocon
5d80: 66 20 61 67 61 69 6e 2e 0a 5f 4c 54 5f 45 4f 46  f again.._LT_EOF
5d90: 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 65 6c  .      fi.    el
5da0: 73 65 0a 20 20 20 20 20 20 63 61 74 20 3e 26 32  se.      cat >&2
5db0: 20 3c 3c 5f 4c 54 5f 45 4f 46 0a 24 70 72 6f 67   <<_LT_EOF.$prog
5dc0: 6e 61 6d 65 3a 20 56 65 72 73 69 6f 6e 20 6d 69  name: Version mi
5dd0: 73 6d 61 74 63 68 20 65 72 72 6f 72 2e 20 20 54  smatch error.  T
5de0: 68 69 73 20 69 73 20 24 50 41 43 4b 41 47 45 20  his is $PACKAGE 
5df0: 24 56 45 52 53 49 4f 4e 2c 20 72 65 76 69 73 69  $VERSION, revisi
5e00: 6f 6e 20 24 70 61 63 6b 61 67 65 5f 72 65 76 69  on $package_revi
5e10: 73 69 6f 6e 2c 0a 24 70 72 6f 67 6e 61 6d 65 3a  sion,.$progname:
5e20: 20 62 75 74 20 74 68 65 20 64 65 66 69 6e 69 74   but the definit
5e30: 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 54 5f 49  ion of this LT_I
5e40: 4e 49 54 20 63 6f 6d 65 73 20 66 72 6f 6d 20 72  NIT comes from r
5e50: 65 76 69 73 69 6f 6e 20 24 6d 61 63 72 6f 5f 72  evision $macro_r
5e60: 65 76 69 73 69 6f 6e 2e 0a 24 70 72 6f 67 6e 61  evision..$progna
5e70: 6d 65 3a 20 59 6f 75 20 73 68 6f 75 6c 64 20 72  me: You should r
5e80: 65 63 72 65 61 74 65 20 61 63 6c 6f 63 61 6c 2e  ecreate aclocal.
5e90: 6d 34 20 77 69 74 68 20 6d 61 63 72 6f 73 20 66  m4 with macros f
5ea0: 72 6f 6d 20 72 65 76 69 73 69 6f 6e 20 24 70 61  rom revision $pa
5eb0: 63 6b 61 67 65 5f 72 65 76 69 73 69 6f 6e 0a 24  ckage_revision.$
5ec0: 70 72 6f 67 6e 61 6d 65 3a 20 6f 66 20 24 50 41  progname: of $PA
5ed0: 43 4b 41 47 45 20 24 56 45 52 53 49 4f 4e 20 61  CKAGE $VERSION a
5ee0: 6e 64 20 72 75 6e 20 61 75 74 6f 63 6f 6e 66 20  nd run autoconf 
5ef0: 61 67 61 69 6e 2e 0a 5f 4c 54 5f 45 4f 46 0a 20  again.._LT_EOF. 
5f00: 20 20 20 66 69 0a 0a 20 20 20 20 65 78 69 74 20     fi..    exit 
5f10: 24 45 58 49 54 5f 4d 49 53 4d 41 54 43 48 0a 20  $EXIT_MISMATCH. 
5f20: 20 66 69 0a 7d 0a 0a 0a 23 23 20 2d 2d 2d 2d 2d   fi.}...## -----
5f30: 2d 2d 2d 2d 2d 2d 20 23 23 0a 23 23 20 20 20 20  ------ ##.##    
5f40: 4d 61 69 6e 2e 20 20 20 20 23 23 0a 23 23 20 2d  Main.    ##.## -
5f50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 23 23 0a 0a 24  ---------- ##..$
5f60: 6f 70 74 5f 68 65 6c 70 20 7c 7c 20 7b 0a 20 20  opt_help || {.  
5f70: 23 20 53 61 6e 69 74 79 20 63 68 65 63 6b 73 20  # Sanity checks 
5f80: 66 69 72 73 74 3a 0a 20 20 66 75 6e 63 5f 63 68  first:.  func_ch
5f90: 65 63 6b 5f 76 65 72 73 69 6f 6e 5f 6d 61 74 63  eck_version_matc
5fa0: 68 0a 0a 20 20 69 66 20 74 65 73 74 20 22 24 62  h..  if test "$b
5fb0: 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
5fc0: 73 22 20 21 3d 20 79 65 73 20 26 26 20 74 65 73  s" != yes && tes
5fd0: 74 20 22 24 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69  t "$build_old_li
5fe0: 62 73 22 20 21 3d 20 79 65 73 3b 20 74 68 65 6e  bs" != yes; then
5ff0: 0a 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  .    func_fatal_
6000: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 22 6e  configuration "n
6010: 6f 74 20 63 6f 6e 66 69 67 75 72 65 64 20 74 6f  ot configured to
6020: 20 62 75 69 6c 64 20 61 6e 79 20 6b 69 6e 64 20   build any kind 
6030: 6f 66 20 6c 69 62 72 61 72 79 22 0a 20 20 66 69  of library".  fi
6040: 0a 0a 20 20 74 65 73 74 20 2d 7a 20 22 24 6d 6f  ..  test -z "$mo
6050: 64 65 22 20 26 26 20 66 75 6e 63 5f 66 61 74 61  de" && func_fata
6060: 6c 5f 65 72 72 6f 72 20 22 65 72 72 6f 72 3a 20  l_error "error: 
6070: 79 6f 75 20 6d 75 73 74 20 73 70 65 63 69 66 79  you must specify
6080: 20 61 20 4d 4f 44 45 2e 22 0a 0a 0a 20 20 23 20   a MODE."...  # 
6090: 44 61 72 77 69 6e 20 73 75 63 6b 73 0a 20 20 65  Darwin sucks.  e
60a0: 76 61 6c 20 73 74 64 5f 73 68 72 65 78 74 3d 5c  val std_shrext=\
60b0: 22 24 73 68 72 65 78 74 5f 63 6d 64 73 5c 22 0a  "$shrext_cmds\".
60c0: 0a 0a 20 20 23 20 4f 6e 6c 79 20 65 78 65 63 75  ..  # Only execu
60d0: 74 65 20 6d 6f 64 65 20 69 73 20 61 6c 6c 6f 77  te mode is allow
60e0: 65 64 20 74 6f 20 68 61 76 65 20 2d 64 6c 6f 70  ed to have -dlop
60f0: 65 6e 20 66 6c 61 67 73 2e 0a 20 20 69 66 20 74  en flags..  if t
6100: 65 73 74 20 2d 6e 20 22 24 65 78 65 63 75 74 65  est -n "$execute
6110: 5f 64 6c 66 69 6c 65 73 22 20 26 26 20 74 65 73  _dlfiles" && tes
6120: 74 20 22 24 6d 6f 64 65 22 20 21 3d 20 65 78 65  t "$mode" != exe
6130: 63 75 74 65 3b 20 74 68 65 6e 0a 20 20 20 20 66  cute; then.    f
6140: 75 6e 63 5f 65 72 72 6f 72 20 22 75 6e 72 65 63  unc_error "unrec
6150: 6f 67 6e 69 7a 65 64 20 6f 70 74 69 6f 6e 20 5c  ognized option \
6160: 60 2d 64 6c 6f 70 65 6e 27 22 0a 20 20 20 20 24  `-dlopen'".    $
6170: 45 43 48 4f 20 22 24 68 65 6c 70 22 20 31 3e 26  ECHO "$help" 1>&
6180: 32 0a 20 20 20 20 65 78 69 74 20 24 45 58 49 54  2.    exit $EXIT
6190: 5f 46 41 49 4c 55 52 45 0a 20 20 66 69 0a 0a 20  _FAILURE.  fi.. 
61a0: 20 23 20 43 68 61 6e 67 65 20 74 68 65 20 68 65   # Change the he
61b0: 6c 70 20 6d 65 73 73 61 67 65 20 74 6f 20 61 20  lp message to a 
61c0: 6d 6f 64 65 2d 73 70 65 63 69 66 69 63 20 6f 6e  mode-specific on
61d0: 65 2e 0a 20 20 67 65 6e 65 72 69 63 5f 68 65 6c  e..  generic_hel
61e0: 70 3d 22 24 68 65 6c 70 22 0a 20 20 68 65 6c 70  p="$help".  help
61f0: 3d 22 54 72 79 20 5c 60 24 70 72 6f 67 6e 61 6d  ="Try \`$prognam
6200: 65 20 2d 2d 68 65 6c 70 20 2d 2d 6d 6f 64 65 3d  e --help --mode=
6210: 24 6d 6f 64 65 27 20 66 6f 72 20 6d 6f 72 65 20  $mode' for more 
6220: 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 7d 0a  information.".}.
6230: 0a 0a 23 20 66 75 6e 63 5f 6c 61 6c 69 62 5f 70  ..# func_lalib_p
6240: 20 66 69 6c 65 0a 23 20 54 72 75 65 20 69 66 66   file.# True iff
6250: 20 46 49 4c 45 20 69 73 20 61 20 6c 69 62 74 6f   FILE is a libto
6260: 6f 6c 20 60 2e 6c 61 27 20 6c 69 62 72 61 72 79  ol `.la' library
6270: 20 6f 72 20 60 2e 6c 6f 27 20 6f 62 6a 65 63 74   or `.lo' object
6280: 20 66 69 6c 65 2e 0a 23 20 54 68 69 73 20 66 75   file..# This fu
6290: 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 61  nction is only a
62a0: 20 62 61 73 69 63 20 73 61 6e 69 74 79 20 63 68   basic sanity ch
62b0: 65 63 6b 3b 20 69 74 20 77 69 6c 6c 20 68 61 72  eck; it will har
62c0: 64 6c 79 20 66 6c 75 73 68 20 6f 75 74 0a 23 20  dly flush out.# 
62d0: 64 65 74 65 72 6d 69 6e 65 64 20 69 6d 70 6f 73  determined impos
62e0: 74 65 72 73 2e 0a 66 75 6e 63 5f 6c 61 6c 69 62  ters..func_lalib
62f0: 5f 70 20 28 29 0a 7b 0a 20 20 20 20 74 65 73 74  _p ().{.    test
6300: 20 2d 66 20 22 24 31 22 20 26 26 0a 20 20 20 20   -f "$1" &&.    
6310: 20 20 24 53 45 44 20 2d 65 20 34 71 20 22 24 31    $SED -e 4q "$1
6320: 22 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 5c 0a  " 2>/dev/null \.
6330: 20 20 20 20 20 20 20 20 7c 20 24 47 52 45 50 20          | $GREP 
6340: 22 5e 23 20 47 65 6e 65 72 61 74 65 64 20 62 79  "^# Generated by
6350: 20 2e 2a 24 50 41 43 4b 41 47 45 22 20 3e 20 2f   .*$PACKAGE" > /
6360: 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 0a 7d 0a  dev/null 2>&1.}.
6370: 0a 23 20 66 75 6e 63 5f 6c 61 6c 69 62 5f 75 6e  .# func_lalib_un
6380: 73 61 66 65 5f 70 20 66 69 6c 65 0a 23 20 54 72  safe_p file.# Tr
6390: 75 65 20 69 66 66 20 46 49 4c 45 20 69 73 20 61  ue iff FILE is a
63a0: 20 6c 69 62 74 6f 6f 6c 20 60 2e 6c 61 27 20 6c   libtool `.la' l
63b0: 69 62 72 61 72 79 20 6f 72 20 60 2e 6c 6f 27 20  ibrary or `.lo' 
63c0: 6f 62 6a 65 63 74 20 66 69 6c 65 2e 0a 23 20 54  object file..# T
63d0: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6d 70  his function imp
63e0: 6c 65 6d 65 6e 74 73 20 74 68 65 20 73 61 6d 65  lements the same
63f0: 20 63 68 65 63 6b 20 61 73 20 66 75 6e 63 5f 6c   check as func_l
6400: 61 6c 69 62 5f 70 20 77 69 74 68 6f 75 74 0a 23  alib_p without.#
6410: 20 72 65 73 6f 72 74 69 6e 67 20 74 6f 20 65 78   resorting to ex
6420: 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 73 2e  ternal programs.
6430: 20 20 54 6f 20 74 68 69 73 20 65 6e 64 2c 20 69    To this end, i
6440: 74 20 72 65 64 69 72 65 63 74 73 20 73 74 64 69  t redirects stdi
6450: 6e 20 61 6e 64 0a 23 20 63 6c 6f 73 65 73 20 69  n and.# closes i
6460: 74 20 61 66 74 65 72 77 61 72 64 73 2c 20 77 69  t afterwards, wi
6470: 74 68 6f 75 74 20 73 61 76 69 6e 67 20 74 68 65  thout saving the
6480: 20 6f 72 69 67 69 6e 61 6c 20 66 69 6c 65 20 64   original file d
6490: 65 73 63 72 69 70 74 6f 72 2e 0a 23 20 41 73 20  escriptor..# As 
64a0: 61 20 73 61 66 65 74 79 20 6d 65 61 73 75 72 65  a safety measure
64b0: 2c 20 75 73 65 20 69 74 20 6f 6e 6c 79 20 77 68  , use it only wh
64c0: 65 72 65 20 61 20 6e 65 67 61 74 69 76 65 20 72  ere a negative r
64d0: 65 73 75 6c 74 20 77 6f 75 6c 64 20 62 65 0a 23  esult would be.#
64e0: 20 66 61 74 61 6c 20 61 6e 79 77 61 79 2e 20 20   fatal anyway.  
64f0: 57 6f 72 6b 73 20 69 66 20 60 66 69 6c 65 27 20  Works if `file' 
6500: 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a  does not exist..
6510: 66 75 6e 63 5f 6c 61 6c 69 62 5f 75 6e 73 61 66  func_lalib_unsaf
6520: 65 5f 70 20 28 29 0a 7b 0a 20 20 20 20 6c 61 6c  e_p ().{.    lal
6530: 69 62 5f 70 3d 6e 6f 0a 20 20 20 20 69 66 20 74  ib_p=no.    if t
6540: 65 73 74 20 2d 66 20 22 24 31 22 20 26 26 20 74  est -f "$1" && t
6550: 65 73 74 20 2d 72 20 22 24 31 22 20 26 26 20 65  est -r "$1" && e
6560: 78 65 63 20 35 3c 26 30 20 3c 22 24 31 22 3b 20  xec 5<&0 <"$1"; 
6570: 74 68 65 6e 0a 09 66 6f 72 20 6c 61 6c 69 62 5f  then..for lalib_
6580: 70 5f 6c 20 69 6e 20 31 20 32 20 33 20 34 0a 09  p_l in 1 2 3 4..
6590: 64 6f 0a 09 20 20 20 20 72 65 61 64 20 6c 61 6c  do..    read lal
65a0: 69 62 5f 70 5f 6c 69 6e 65 0a 09 20 20 20 20 63  ib_p_line..    c
65b0: 61 73 65 20 22 24 6c 61 6c 69 62 5f 70 5f 6c 69  ase "$lalib_p_li
65c0: 6e 65 22 20 69 6e 0a 09 09 5c 23 5c 20 47 65 6e  ne" in...\#\ Gen
65d0: 65 72 61 74 65 64 5c 20 62 79 5c 20 2a 24 50 41  erated\ by\ *$PA
65e0: 43 4b 41 47 45 2a 20 29 20 6c 61 6c 69 62 5f 70  CKAGE* ) lalib_p
65f0: 3d 79 65 73 3b 20 62 72 65 61 6b 3b 3b 0a 09 20  =yes; break;;.. 
6600: 20 20 20 65 73 61 63 0a 09 64 6f 6e 65 0a 09 65     esac..done..e
6610: 78 65 63 20 30 3c 26 35 20 35 3c 26 2d 0a 20 20  xec 0<&5 5<&-.  
6620: 20 20 66 69 0a 20 20 20 20 74 65 73 74 20 22 24    fi.    test "$
6630: 6c 61 6c 69 62 5f 70 22 20 3d 20 79 65 73 0a 7d  lalib_p" = yes.}
6640: 0a 0a 23 20 66 75 6e 63 5f 6c 74 77 72 61 70 70  ..# func_ltwrapp
6650: 65 72 5f 73 63 72 69 70 74 5f 70 20 66 69 6c 65  er_script_p file
6660: 0a 23 20 54 72 75 65 20 69 66 66 20 46 49 4c 45  .# True iff FILE
6670: 20 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20 77 72   is a libtool wr
6680: 61 70 70 65 72 20 73 63 72 69 70 74 0a 23 20 54  apper script.# T
6690: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20  his function is 
66a0: 6f 6e 6c 79 20 61 20 62 61 73 69 63 20 73 61 6e  only a basic san
66b0: 69 74 79 20 63 68 65 63 6b 3b 20 69 74 20 77 69  ity check; it wi
66c0: 6c 6c 20 68 61 72 64 6c 79 20 66 6c 75 73 68 20  ll hardly flush 
66d0: 6f 75 74 0a 23 20 64 65 74 65 72 6d 69 6e 65 64  out.# determined
66e0: 20 69 6d 70 6f 73 74 65 72 73 2e 0a 66 75 6e 63   imposters..func
66f0: 5f 6c 74 77 72 61 70 70 65 72 5f 73 63 72 69 70  _ltwrapper_scrip
6700: 74 5f 70 20 28 29 0a 7b 0a 20 20 20 20 66 75 6e  t_p ().{.    fun
6710: 63 5f 6c 61 6c 69 62 5f 70 20 22 24 31 22 0a 7d  c_lalib_p "$1".}
6720: 0a 0a 23 20 66 75 6e 63 5f 6c 74 77 72 61 70 70  ..# func_ltwrapp
6730: 65 72 5f 65 78 65 63 75 74 61 62 6c 65 5f 70 20  er_executable_p 
6740: 66 69 6c 65 0a 23 20 54 72 75 65 20 69 66 66 20  file.# True iff 
6750: 46 49 4c 45 20 69 73 20 61 20 6c 69 62 74 6f 6f  FILE is a libtoo
6760: 6c 20 77 72 61 70 70 65 72 20 65 78 65 63 75 74  l wrapper execut
6770: 61 62 6c 65 0a 23 20 54 68 69 73 20 66 75 6e 63  able.# This func
6780: 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 61 20 62  tion is only a b
6790: 61 73 69 63 20 73 61 6e 69 74 79 20 63 68 65 63  asic sanity chec
67a0: 6b 3b 20 69 74 20 77 69 6c 6c 20 68 61 72 64 6c  k; it will hardl
67b0: 79 20 66 6c 75 73 68 20 6f 75 74 0a 23 20 64 65  y flush out.# de
67c0: 74 65 72 6d 69 6e 65 64 20 69 6d 70 6f 73 74 65  termined imposte
67d0: 72 73 2e 0a 66 75 6e 63 5f 6c 74 77 72 61 70 70  rs..func_ltwrapp
67e0: 65 72 5f 65 78 65 63 75 74 61 62 6c 65 5f 70 20  er_executable_p 
67f0: 28 29 0a 7b 0a 20 20 20 20 66 75 6e 63 5f 6c 74  ().{.    func_lt
6800: 77 72 61 70 70 65 72 5f 65 78 65 63 5f 73 75 66  wrapper_exec_suf
6810: 66 69 78 3d 0a 20 20 20 20 63 61 73 65 20 24 31  fix=.    case $1
6820: 20 69 6e 0a 20 20 20 20 2a 2e 65 78 65 29 20 3b   in.    *.exe) ;
6830: 3b 0a 20 20 20 20 2a 29 20 66 75 6e 63 5f 6c 74  ;.    *) func_lt
6840: 77 72 61 70 70 65 72 5f 65 78 65 63 5f 73 75 66  wrapper_exec_suf
6850: 66 69 78 3d 2e 65 78 65 20 3b 3b 0a 20 20 20 20  fix=.exe ;;.    
6860: 65 73 61 63 0a 20 20 20 20 24 47 52 45 50 20 22  esac.    $GREP "
6870: 24 6d 61 67 69 63 5f 65 78 65 22 20 22 24 31 24  $magic_exe" "$1$
6880: 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f 65  func_ltwrapper_e
6890: 78 65 63 5f 73 75 66 66 69 78 22 20 3e 2f 64 65  xec_suffix" >/de
68a0: 76 2f 6e 75 6c 6c 20 32 3e 26 31 0a 7d 0a 0a 23  v/null 2>&1.}..#
68b0: 20 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f   func_ltwrapper_
68c0: 73 63 72 69 70 74 6e 61 6d 65 20 66 69 6c 65 0a  scriptname file.
68d0: 23 20 41 73 73 75 6d 65 73 20 66 69 6c 65 20 69  # Assumes file i
68e0: 73 20 61 6e 20 6c 74 77 72 61 70 70 65 72 5f 65  s an ltwrapper_e
68f0: 78 65 63 75 74 61 62 6c 65 0a 23 20 75 73 65 73  xecutable.# uses
6900: 20 24 66 69 6c 65 20 74 6f 20 64 65 74 65 72 6d   $file to determ
6910: 69 6e 65 20 74 68 65 20 61 70 70 72 6f 70 72 69  ine the appropri
6920: 61 74 65 20 66 69 6c 65 6e 61 6d 65 20 66 6f 72  ate filename for
6930: 20 61 0a 23 20 74 65 6d 70 6f 72 61 72 79 20 6c   a.# temporary l
6940: 74 77 72 61 70 70 65 72 5f 73 63 72 69 70 74 2e  twrapper_script.
6950: 0a 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f  .func_ltwrapper_
6960: 73 63 72 69 70 74 6e 61 6d 65 20 28 29 0a 7b 0a  scriptname ().{.
6970: 20 20 20 20 66 75 6e 63 5f 6c 74 77 72 61 70 70      func_ltwrapp
6980: 65 72 5f 73 63 72 69 70 74 6e 61 6d 65 5f 72 65  er_scriptname_re
6990: 73 75 6c 74 3d 22 22 0a 20 20 20 20 69 66 20 66  sult="".    if f
69a0: 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f 65 78  unc_ltwrapper_ex
69b0: 65 63 75 74 61 62 6c 65 5f 70 20 22 24 31 22 3b  ecutable_p "$1";
69c0: 20 74 68 65 6e 0a 09 66 75 6e 63 5f 64 69 72 6e   then..func_dirn
69d0: 61 6d 65 5f 61 6e 64 5f 62 61 73 65 6e 61 6d 65  ame_and_basename
69e0: 20 22 24 31 22 20 22 22 20 22 2e 22 0a 09 66 75   "$1" "" "."..fu
69f0: 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27 27 20  nc_stripname '' 
6a00: 27 2e 65 78 65 27 20 22 24 66 75 6e 63 5f 62 61  '.exe' "$func_ba
6a10: 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 09  sename_result"..
6a20: 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f 73  func_ltwrapper_s
6a30: 63 72 69 70 74 6e 61 6d 65 5f 72 65 73 75 6c 74  criptname_result
6a40: 3d 22 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f  ="$func_dirname_
6a50: 72 65 73 75 6c 74 2f 24 6f 62 6a 64 69 72 2f 24  result/$objdir/$
6a60: 7b 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f  {func_stripname_
6a70: 72 65 73 75 6c 74 7d 5f 6c 74 73 68 77 72 61 70  result}_ltshwrap
6a80: 70 65 72 22 0a 20 20 20 20 66 69 0a 7d 0a 0a 23  per".    fi.}..#
6a90: 20 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f   func_ltwrapper_
6aa0: 70 20 66 69 6c 65 0a 23 20 54 72 75 65 20 69 66  p file.# True if
6ab0: 66 20 46 49 4c 45 20 69 73 20 61 20 6c 69 62 74  f FILE is a libt
6ac0: 6f 6f 6c 20 77 72 61 70 70 65 72 20 73 63 72 69  ool wrapper scri
6ad0: 70 74 20 6f 72 20 77 72 61 70 70 65 72 20 65 78  pt or wrapper ex
6ae0: 65 63 75 74 61 62 6c 65 0a 23 20 54 68 69 73 20  ecutable.# This 
6af0: 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79  function is only
6b00: 20 61 20 62 61 73 69 63 20 73 61 6e 69 74 79 20   a basic sanity 
6b10: 63 68 65 63 6b 3b 20 69 74 20 77 69 6c 6c 20 68  check; it will h
6b20: 61 72 64 6c 79 20 66 6c 75 73 68 20 6f 75 74 0a  ardly flush out.
6b30: 23 20 64 65 74 65 72 6d 69 6e 65 64 20 69 6d 70  # determined imp
6b40: 6f 73 74 65 72 73 2e 0a 66 75 6e 63 5f 6c 74 77  osters..func_ltw
6b50: 72 61 70 70 65 72 5f 70 20 28 29 0a 7b 0a 20 20  rapper_p ().{.  
6b60: 20 20 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72    func_ltwrapper
6b70: 5f 73 63 72 69 70 74 5f 70 20 22 24 31 22 20 7c  _script_p "$1" |
6b80: 7c 20 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72  | func_ltwrapper
6b90: 5f 65 78 65 63 75 74 61 62 6c 65 5f 70 20 22 24  _executable_p "$
6ba0: 31 22 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 65 78  1".}...# func_ex
6bb0: 65 63 75 74 65 5f 63 6d 64 73 20 63 6f 6d 6d 61  ecute_cmds comma
6bc0: 6e 64 73 20 66 61 69 6c 5f 63 6d 64 0a 23 20 45  nds fail_cmd.# E
6bd0: 78 65 63 75 74 65 20 74 69 6c 64 65 2d 64 65 6c  xecute tilde-del
6be0: 69 6d 69 74 65 64 20 43 4f 4d 4d 41 4e 44 53 2e  imited COMMANDS.
6bf0: 0a 23 20 49 66 20 46 41 49 4c 5f 43 4d 44 20 69  .# If FAIL_CMD i
6c00: 73 20 67 69 76 65 6e 2c 20 65 76 61 6c 20 74 68  s given, eval th
6c10: 61 74 20 75 70 6f 6e 20 66 61 69 6c 75 72 65 2e  at upon failure.
6c20: 0a 23 20 46 41 49 4c 5f 43 4d 44 20 6d 61 79 20  .# FAIL_CMD may 
6c30: 72 65 61 64 2d 61 63 63 65 73 73 20 74 68 65 20  read-access the 
6c40: 63 75 72 72 65 6e 74 20 63 6f 6d 6d 61 6e 64 20  current command 
6c50: 69 6e 20 76 61 72 69 61 62 6c 65 20 43 4d 44 21  in variable CMD!
6c60: 0a 66 75 6e 63 5f 65 78 65 63 75 74 65 5f 63 6d  .func_execute_cm
6c70: 64 73 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  ds ().{.    $opt
6c80: 5f 64 65 62 75 67 0a 20 20 20 20 73 61 76 65 5f  _debug.    save_
6c90: 69 66 73 3d 24 49 46 53 3b 20 49 46 53 3d 27 7e  ifs=$IFS; IFS='~
6ca0: 27 0a 20 20 20 20 66 6f 72 20 63 6d 64 20 69 6e  '.    for cmd in
6cb0: 20 24 31 3b 20 64 6f 0a 20 20 20 20 20 20 49 46   $1; do.      IF
6cc0: 53 3d 24 73 61 76 65 5f 69 66 73 0a 20 20 20 20  S=$save_ifs.    
6cd0: 20 20 65 76 61 6c 20 63 6d 64 3d 5c 22 24 63 6d    eval cmd=\"$cm
6ce0: 64 5c 22 0a 20 20 20 20 20 20 66 75 6e 63 5f 73  d\".      func_s
6cf0: 68 6f 77 5f 65 76 61 6c 20 22 24 63 6d 64 22 20  how_eval "$cmd" 
6d00: 22 24 7b 32 2d 3a 7d 22 0a 20 20 20 20 64 6f 6e  "${2-:}".    don
6d10: 65 0a 20 20 20 20 49 46 53 3d 24 73 61 76 65 5f  e.    IFS=$save_
6d20: 69 66 73 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 73  ifs.}...# func_s
6d30: 6f 75 72 63 65 20 66 69 6c 65 0a 23 20 53 6f 75  ource file.# Sou
6d40: 72 63 65 20 46 49 4c 45 2c 20 61 64 64 69 6e 67  rce FILE, adding
6d50: 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6d 70 6f   directory compo
6d60: 6e 65 6e 74 20 69 66 20 6e 65 63 65 73 73 61 72  nent if necessar
6d70: 79 2e 0a 23 20 4e 6f 74 65 20 74 68 61 74 20 69  y..# Note that i
6d80: 74 20 69 73 20 6e 6f 74 20 6e 65 63 65 73 73 61  t is not necessa
6d90: 72 79 20 6f 6e 20 63 79 67 77 69 6e 2f 6d 69 6e  ry on cygwin/min
6da0: 67 77 20 74 6f 20 61 70 70 65 6e 64 20 61 20 64  gw to append a d
6db0: 6f 74 20 74 6f 0a 23 20 46 49 4c 45 20 65 76 65  ot to.# FILE eve
6dc0: 6e 20 69 66 20 62 6f 74 68 20 46 49 4c 45 20 61  n if both FILE a
6dd0: 6e 64 20 46 49 4c 45 2e 65 78 65 20 65 78 69 73  nd FILE.exe exis
6de0: 74 3a 20 61 75 74 6f 6d 61 74 69 63 2d 61 70 70  t: automatic-app
6df0: 65 6e 64 2d 2e 65 78 65 0a 23 20 62 65 68 61 76  end-.exe.# behav
6e00: 69 6f 72 20 68 61 70 70 65 6e 73 20 6f 6e 6c 79  ior happens only
6e10: 20 66 6f 72 20 65 78 65 63 28 33 29 2c 20 6e 6f   for exec(3), no
6e20: 74 20 66 6f 72 20 6f 70 65 6e 28 32 29 21 20 20  t for open(2)!  
6e30: 41 6c 73 6f 2c 20 73 6f 75 72 63 69 6e 67 0a 23  Also, sourcing.#
6e40: 20 60 46 49 4c 45 2e 27 20 64 6f 65 73 20 6e 6f   `FILE.' does no
6e50: 74 20 77 6f 72 6b 20 6f 6e 20 63 79 67 77 69 6e  t work on cygwin
6e60: 20 6d 61 6e 61 67 65 64 20 6d 6f 75 6e 74 73 2e   managed mounts.
6e70: 0a 66 75 6e 63 5f 73 6f 75 72 63 65 20 28 29 0a  .func_source ().
6e80: 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65 62 75 67  {.    $opt_debug
6e90: 0a 20 20 20 20 63 61 73 65 20 24 31 20 69 6e 0a  .    case $1 in.
6ea0: 20 20 20 20 2a 2f 2a 20 7c 20 2a 5c 5c 2a 29 09      */* | *\\*).
6eb0: 2e 20 22 24 31 22 20 3b 3b 0a 20 20 20 20 2a 29  . "$1" ;;.    *)
6ec0: 09 09 2e 20 22 2e 2f 24 31 22 20 3b 3b 0a 20 20  ... "./$1" ;;.  
6ed0: 20 20 65 73 61 63 0a 7d 0a 0a 0a 23 20 66 75 6e    esac.}...# fun
6ee0: 63 5f 69 6e 66 65 72 5f 74 61 67 20 61 72 67 0a  c_infer_tag arg.
6ef0: 23 20 49 6e 66 65 72 20 74 61 67 67 65 64 20 63  # Infer tagged c
6f00: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 74 6f 20  onfiguration to 
6f10: 75 73 65 20 69 66 20 61 6e 79 20 61 72 65 20 61  use if any are a
6f20: 76 61 69 6c 61 62 6c 65 20 61 6e 64 0a 23 20 69  vailable and.# i
6f30: 66 20 6f 6e 65 20 77 61 73 6e 27 74 20 63 68 6f  f one wasn't cho
6f40: 73 65 6e 20 76 69 61 20 74 68 65 20 22 2d 2d 74  sen via the "--t
6f50: 61 67 22 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65  ag" command line
6f60: 20 6f 70 74 69 6f 6e 2e 0a 23 20 4f 6e 6c 79 20   option..# Only 
6f70: 61 74 74 65 6d 70 74 20 74 68 69 73 20 69 66 20  attempt this if 
6f80: 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 6e 20  the compiler in 
6f90: 74 68 65 20 62 61 73 65 20 63 6f 6d 70 69 6c 65  the base compile
6fa0: 0a 23 20 63 6f 6d 6d 61 6e 64 20 64 6f 65 73 6e  .# command doesn
6fb0: 27 74 20 6d 61 74 63 68 20 74 68 65 20 64 65 66  't match the def
6fc0: 61 75 6c 74 20 63 6f 6d 70 69 6c 65 72 2e 0a 23  ault compiler..#
6fd0: 20 61 72 67 20 69 73 20 75 73 75 61 6c 6c 79 20   arg is usually 
6fe0: 6f 66 20 74 68 65 20 66 6f 72 6d 20 27 67 63 63  of the form 'gcc
6ff0: 20 2e 2e 2e 27 0a 66 75 6e 63 5f 69 6e 66 65 72   ...'.func_infer
7000: 5f 74 61 67 20 28 29 0a 7b 0a 20 20 20 20 24 6f  _tag ().{.    $o
7010: 70 74 5f 64 65 62 75 67 0a 20 20 20 20 69 66 20  pt_debug.    if 
7020: 74 65 73 74 20 2d 6e 20 22 24 61 76 61 69 6c 61  test -n "$availa
7030: 62 6c 65 5f 74 61 67 73 22 20 26 26 20 74 65 73  ble_tags" && tes
7040: 74 20 2d 7a 20 22 24 74 61 67 6e 61 6d 65 22 3b  t -z "$tagname";
7050: 20 74 68 65 6e 0a 20 20 20 20 20 20 43 43 5f 71   then.      CC_q
7060: 75 6f 74 65 64 3d 0a 20 20 20 20 20 20 66 6f 72  uoted=.      for
7070: 20 61 72 67 20 69 6e 20 24 43 43 3b 20 64 6f 0a   arg in $CC; do.
7080: 20 20 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f          func_quo
7090: 74 65 5f 66 6f 72 5f 65 76 61 6c 20 22 24 61 72  te_for_eval "$ar
70a0: 67 22 0a 09 43 43 5f 71 75 6f 74 65 64 3d 22 24  g"..CC_quoted="$
70b0: 43 43 5f 71 75 6f 74 65 64 20 24 66 75 6e 63 5f  CC_quoted $func_
70c0: 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72  quote_for_eval_r
70d0: 65 73 75 6c 74 22 0a 20 20 20 20 20 20 64 6f 6e  esult".      don
70e0: 65 0a 20 20 20 20 20 20 63 61 73 65 20 24 40 20  e.      case $@ 
70f0: 69 6e 0a 20 20 20 20 20 20 23 20 42 6c 61 6e 6b  in.      # Blank
7100: 73 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64  s in the command
7110: 20 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 73   may have been s
7120: 74 72 69 70 70 65 64 20 62 79 20 74 68 65 20 63  tripped by the c
7130: 61 6c 6c 69 6e 67 20 73 68 65 6c 6c 2c 0a 20 20  alling shell,.  
7140: 20 20 20 20 23 20 62 75 74 20 6e 6f 74 20 66 72      # but not fr
7150: 6f 6d 20 74 68 65 20 43 43 20 65 6e 76 69 72 6f  om the CC enviro
7160: 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 77  nment variable w
7170: 68 65 6e 20 63 6f 6e 66 69 67 75 72 65 20 77 61  hen configure wa
7180: 73 20 72 75 6e 2e 0a 20 20 20 20 20 20 22 20 24  s run..      " $
7190: 43 43 20 22 2a 20 7c 20 22 24 43 43 20 22 2a 20  CC "* | "$CC "* 
71a0: 7c 20 22 20 60 24 45 43 48 4f 20 24 43 43 60 20  | " `$ECHO $CC` 
71b0: 22 2a 20 7c 20 22 60 24 45 43 48 4f 20 24 43 43  "* | "`$ECHO $CC
71c0: 60 20 22 2a 20 7c 20 22 20 24 43 43 5f 71 75 6f  ` "* | " $CC_quo
71d0: 74 65 64 22 2a 20 7c 20 22 24 43 43 5f 71 75 6f  ted"* | "$CC_quo
71e0: 74 65 64 20 22 2a 20 7c 20 22 20 60 24 45 43 48  ted "* | " `$ECH
71f0: 4f 20 24 43 43 5f 71 75 6f 74 65 64 60 20 22 2a  O $CC_quoted` "*
7200: 20 7c 20 22 60 24 45 43 48 4f 20 24 43 43 5f 71   | "`$ECHO $CC_q
7210: 75 6f 74 65 64 60 20 22 2a 29 20 3b 3b 0a 20 20  uoted` "*) ;;.  
7220: 20 20 20 20 23 20 42 6c 61 6e 6b 73 20 61 74 20      # Blanks at 
7230: 74 68 65 20 73 74 61 72 74 20 6f 66 20 24 62 61  the start of $ba
7240: 73 65 5f 63 6f 6d 70 69 6c 65 20 77 69 6c 6c 20  se_compile will 
7250: 63 61 75 73 65 20 74 68 69 73 20 74 6f 20 66 61  cause this to fa
7260: 69 6c 0a 20 20 20 20 20 20 23 20 69 66 20 77 65  il.      # if we
7270: 20 64 6f 6e 27 74 20 63 68 65 63 6b 20 66 6f 72   don't check for
7280: 20 74 68 65 6d 20 61 73 20 77 65 6c 6c 2e 0a 20   them as well.. 
7290: 20 20 20 20 20 2a 29 0a 09 66 6f 72 20 7a 20 69       *)..for z i
72a0: 6e 20 24 61 76 61 69 6c 61 62 6c 65 5f 74 61 67  n $available_tag
72b0: 73 3b 20 64 6f 0a 09 20 20 69 66 20 24 47 52 45  s; do..  if $GRE
72c0: 50 20 22 5e 23 20 23 23 23 20 42 45 47 49 4e 20  P "^# ### BEGIN 
72d0: 4c 49 42 54 4f 4f 4c 20 54 41 47 20 43 4f 4e 46  LIBTOOL TAG CONF
72e0: 49 47 3a 20 24 7a 24 22 20 3c 20 22 24 70 72 6f  IG: $z$" < "$pro
72f0: 67 70 61 74 68 22 20 3e 20 2f 64 65 76 2f 6e 75  gpath" > /dev/nu
7300: 6c 6c 3b 20 74 68 65 6e 0a 09 20 20 20 20 23 20  ll; then..    # 
7310: 45 76 61 6c 75 61 74 65 20 74 68 65 20 63 6f 6e  Evaluate the con
7320: 66 69 67 75 72 61 74 69 6f 6e 2e 0a 09 20 20 20  figuration...   
7330: 20 65 76 61 6c 20 22 60 24 7b 53 45 44 7d 20 2d   eval "`${SED} -
7340: 6e 20 2d 65 20 27 2f 5e 23 20 23 23 23 20 42 45  n -e '/^# ### BE
7350: 47 49 4e 20 4c 49 42 54 4f 4f 4c 20 54 41 47 20  GIN LIBTOOL TAG 
7360: 43 4f 4e 46 49 47 3a 20 27 24 7a 27 24 2f 2c 2f  CONFIG: '$z'$/,/
7370: 5e 23 20 23 23 23 20 45 4e 44 20 4c 49 42 54 4f  ^# ### END LIBTO
7380: 4f 4c 20 54 41 47 20 43 4f 4e 46 49 47 3a 20 27  OL TAG CONFIG: '
7390: 24 7a 27 24 2f 70 27 20 3c 20 24 70 72 6f 67 70  $z'$/p' < $progp
73a0: 61 74 68 60 22 0a 09 20 20 20 20 43 43 5f 71 75  ath`"..    CC_qu
73b0: 6f 74 65 64 3d 0a 09 20 20 20 20 66 6f 72 20 61  oted=..    for a
73c0: 72 67 20 69 6e 20 24 43 43 3b 20 64 6f 0a 09 20  rg in $CC; do.. 
73d0: 20 20 20 20 20 23 20 44 6f 75 62 6c 65 2d 71 75       # Double-qu
73e0: 6f 74 65 20 61 72 67 73 20 63 6f 6e 74 61 69 6e  ote args contain
73f0: 69 6e 67 20 6f 74 68 65 72 20 73 68 65 6c 6c 20  ing other shell 
7400: 6d 65 74 61 63 68 61 72 61 63 74 65 72 73 2e 0a  metacharacters..
7410: 09 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f 74  .      func_quot
7420: 65 5f 66 6f 72 5f 65 76 61 6c 20 22 24 61 72 67  e_for_eval "$arg
7430: 22 0a 09 20 20 20 20 20 20 43 43 5f 71 75 6f 74  "..      CC_quot
7440: 65 64 3d 22 24 43 43 5f 71 75 6f 74 65 64 20 24  ed="$CC_quoted $
7450: 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65  func_quote_for_e
7460: 76 61 6c 5f 72 65 73 75 6c 74 22 0a 09 20 20 20  val_result"..   
7470: 20 64 6f 6e 65 0a 09 20 20 20 20 63 61 73 65 20   done..    case 
7480: 22 24 40 20 22 20 69 6e 0a 09 20 20 20 20 20 20  "$@ " in..      
7490: 22 20 24 43 43 20 22 2a 20 7c 20 22 24 43 43 20  " $CC "* | "$CC 
74a0: 22 2a 20 7c 20 22 20 60 24 45 43 48 4f 20 24 43  "* | " `$ECHO $C
74b0: 43 60 20 22 2a 20 7c 20 22 60 24 45 43 48 4f 20  C` "* | "`$ECHO 
74c0: 24 43 43 60 20 22 2a 20 7c 20 22 20 24 43 43 5f  $CC` "* | " $CC_
74d0: 71 75 6f 74 65 64 22 2a 20 7c 20 22 24 43 43 5f  quoted"* | "$CC_
74e0: 71 75 6f 74 65 64 20 22 2a 20 7c 20 22 20 60 24  quoted "* | " `$
74f0: 45 43 48 4f 20 24 43 43 5f 71 75 6f 74 65 64 60  ECHO $CC_quoted`
7500: 20 22 2a 20 7c 20 22 60 24 45 43 48 4f 20 24 43   "* | "`$ECHO $C
7510: 43 5f 71 75 6f 74 65 64 60 20 22 2a 29 0a 09 20  C_quoted` "*).. 
7520: 20 20 20 20 20 23 20 54 68 65 20 63 6f 6d 70 69       # The compi
7530: 6c 65 72 20 69 6e 20 74 68 65 20 62 61 73 65 20  ler in the base 
7540: 63 6f 6d 70 69 6c 65 20 63 6f 6d 6d 61 6e 64 20  compile command 
7550: 6d 61 74 63 68 65 73 0a 09 20 20 20 20 20 20 23  matches..      #
7560: 20 74 68 65 20 6f 6e 65 20 69 6e 20 74 68 65 20   the one in the 
7570: 74 61 67 67 65 64 20 63 6f 6e 66 69 67 75 72 61  tagged configura
7580: 74 69 6f 6e 2e 0a 09 20 20 20 20 20 20 23 20 41  tion...      # A
7590: 73 73 75 6d 65 20 74 68 69 73 20 69 73 20 74 68  ssume this is th
75a0: 65 20 74 61 67 67 65 64 20 63 6f 6e 66 69 67 75  e tagged configu
75b0: 72 61 74 69 6f 6e 20 77 65 20 77 61 6e 74 2e 0a  ration we want..
75c0: 09 20 20 20 20 20 20 74 61 67 6e 61 6d 65 3d 24  .      tagname=$
75d0: 7a 0a 09 20 20 20 20 20 20 62 72 65 61 6b 0a 09  z..      break..
75e0: 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 65 73        ;;..    es
75f0: 61 63 0a 09 20 20 66 69 0a 09 64 6f 6e 65 0a 09  ac..  fi..done..
7600: 23 20 49 66 20 24 74 61 67 6e 61 6d 65 20 73 74  # If $tagname st
7610: 69 6c 6c 20 69 73 6e 27 74 20 73 65 74 2c 20 74  ill isn't set, t
7620: 68 65 6e 20 6e 6f 20 74 61 67 67 65 64 20 63 6f  hen no tagged co
7630: 6e 66 69 67 75 72 61 74 69 6f 6e 0a 09 23 20 77  nfiguration..# w
7640: 61 73 20 66 6f 75 6e 64 20 61 6e 64 20 6c 65 74  as found and let
7650: 20 74 68 65 20 75 73 65 72 20 6b 6e 6f 77 20 74   the user know t
7660: 68 61 74 20 74 68 65 20 22 2d 2d 74 61 67 22 20  hat the "--tag" 
7670: 63 6f 6d 6d 61 6e 64 0a 09 23 20 6c 69 6e 65 20  command..# line 
7680: 6f 70 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 75  option must be u
7690: 73 65 64 2e 0a 09 69 66 20 74 65 73 74 20 2d 7a  sed...if test -z
76a0: 20 22 24 74 61 67 6e 61 6d 65 22 3b 20 74 68 65   "$tagname"; the
76b0: 6e 0a 09 20 20 66 75 6e 63 5f 65 63 68 6f 20 22  n..  func_echo "
76c0: 75 6e 61 62 6c 65 20 74 6f 20 69 6e 66 65 72 20  unable to infer 
76d0: 74 61 67 67 65 64 20 63 6f 6e 66 69 67 75 72 61  tagged configura
76e0: 74 69 6f 6e 22 0a 09 20 20 66 75 6e 63 5f 66 61  tion"..  func_fa
76f0: 74 61 6c 5f 65 72 72 6f 72 20 22 73 70 65 63 69  tal_error "speci
7700: 66 79 20 61 20 74 61 67 20 77 69 74 68 20 5c 60  fy a tag with \`
7710: 2d 2d 74 61 67 27 22 0a 23 09 65 6c 73 65 0a 23  --tag'".#.else.#
7720: 09 20 20 66 75 6e 63 5f 76 65 72 62 6f 73 65 20  .  func_verbose 
7730: 22 75 73 69 6e 67 20 24 74 61 67 6e 61 6d 65 20  "using $tagname 
7740: 74 61 67 67 65 64 20 63 6f 6e 66 69 67 75 72 61  tagged configura
7750: 74 69 6f 6e 22 0a 09 66 69 0a 09 3b 3b 0a 20 20  tion"..fi..;;.  
7760: 20 20 20 20 65 73 61 63 0a 20 20 20 20 66 69 0a      esac.    fi.
7770: 7d 0a 0a 0a 0a 23 20 66 75 6e 63 5f 77 72 69 74  }....# func_writ
7780: 65 5f 6c 69 62 74 6f 6f 6c 5f 6f 62 6a 65 63 74  e_libtool_object
7790: 20 6f 75 74 70 75 74 5f 6e 61 6d 65 20 70 69 63   output_name pic
77a0: 5f 6e 61 6d 65 20 6e 6f 6e 70 69 63 5f 6e 61 6d  _name nonpic_nam
77b0: 65 0a 23 20 43 72 65 61 74 65 20 61 20 6c 69 62  e.# Create a lib
77c0: 74 6f 6f 6c 20 6f 62 6a 65 63 74 20 66 69 6c 65  tool object file
77d0: 20 28 61 6e 61 6c 6f 67 6f 75 73 20 74 6f 20 61   (analogous to a
77e0: 20 22 2e 6c 61 22 20 66 69 6c 65 29 2c 0a 23 20   ".la" file),.# 
77f0: 62 75 74 20 64 6f 6e 27 74 20 63 72 65 61 74 65  but don't create
7800: 20 69 74 20 69 66 20 77 65 27 72 65 20 64 6f 69   it if we're doi
7810: 6e 67 20 61 20 64 72 79 20 72 75 6e 2e 0a 66 75  ng a dry run..fu
7820: 6e 63 5f 77 72 69 74 65 5f 6c 69 62 74 6f 6f 6c  nc_write_libtool
7830: 5f 6f 62 6a 65 63 74 20 28 29 0a 7b 0a 20 20 20  _object ().{.   
7840: 20 77 72 69 74 65 5f 6c 69 62 6f 62 6a 3d 24 7b   write_libobj=${
7850: 31 7d 0a 20 20 20 20 69 66 20 74 65 73 74 20 22  1}.    if test "
7860: 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c  $build_libtool_l
7870: 69 62 73 22 20 3d 20 79 65 73 3b 20 74 68 65 6e  ibs" = yes; then
7880: 0a 20 20 20 20 20 20 77 72 69 74 65 5f 6c 6f 62  .      write_lob
7890: 6a 3d 5c 27 24 7b 32 7d 5c 27 0a 20 20 20 20 65  j=\'${2}\'.    e
78a0: 6c 73 65 0a 20 20 20 20 20 20 77 72 69 74 65 5f  lse.      write_
78b0: 6c 6f 62 6a 3d 6e 6f 6e 65 0a 20 20 20 20 66 69  lobj=none.    fi
78c0: 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20 22 24  ..    if test "$
78d0: 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20  build_old_libs" 
78e0: 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20  = yes; then.    
78f0: 20 20 77 72 69 74 65 5f 6f 6c 64 6f 62 6a 3d 5c    write_oldobj=\
7900: 27 24 7b 33 7d 5c 27 0a 20 20 20 20 65 6c 73 65  '${3}\'.    else
7910: 0a 20 20 20 20 20 20 77 72 69 74 65 5f 6f 6c 64  .      write_old
7920: 6f 62 6a 3d 6e 6f 6e 65 0a 20 20 20 20 66 69 0a  obj=none.    fi.
7930: 0a 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72 75  .    $opt_dry_ru
7940: 6e 20 7c 7c 20 7b 0a 20 20 20 20 20 20 63 61 74  n || {.      cat
7950: 20 3e 24 7b 77 72 69 74 65 5f 6c 69 62 6f 62 6a   >${write_libobj
7960: 7d 54 20 3c 3c 45 4f 46 0a 23 20 24 77 72 69 74  }T <<EOF.# $writ
7970: 65 5f 6c 69 62 6f 62 6a 20 2d 20 61 20 6c 69 62  e_libobj - a lib
7980: 74 6f 6f 6c 20 6f 62 6a 65 63 74 20 66 69 6c 65  tool object file
7990: 0a 23 20 47 65 6e 65 72 61 74 65 64 20 62 79 20  .# Generated by 
79a0: 24 50 52 4f 47 52 41 4d 20 28 47 4e 55 20 24 50  $PROGRAM (GNU $P
79b0: 41 43 4b 41 47 45 24 54 49 4d 45 53 54 41 4d 50  ACKAGE$TIMESTAMP
79c0: 29 20 24 56 45 52 53 49 4f 4e 0a 23 0a 23 20 50  ) $VERSION.#.# P
79d0: 6c 65 61 73 65 20 44 4f 20 4e 4f 54 20 64 65 6c  lease DO NOT del
79e0: 65 74 65 20 74 68 69 73 20 66 69 6c 65 21 0a 23  ete this file!.#
79f0: 20 49 74 20 69 73 20 6e 65 63 65 73 73 61 72 79   It is necessary
7a00: 20 66 6f 72 20 6c 69 6e 6b 69 6e 67 20 74 68 65   for linking the
7a10: 20 6c 69 62 72 61 72 79 2e 0a 0a 23 20 4e 61 6d   library...# Nam
7a20: 65 20 6f 66 20 74 68 65 20 50 49 43 20 6f 62 6a  e of the PIC obj
7a30: 65 63 74 2e 0a 70 69 63 5f 6f 62 6a 65 63 74 3d  ect..pic_object=
7a40: 24 77 72 69 74 65 5f 6c 6f 62 6a 0a 0a 23 20 4e  $write_lobj..# N
7a50: 61 6d 65 20 6f 66 20 74 68 65 20 6e 6f 6e 2d 50  ame of the non-P
7a60: 49 43 20 6f 62 6a 65 63 74 0a 6e 6f 6e 5f 70 69  IC object.non_pi
7a70: 63 5f 6f 62 6a 65 63 74 3d 24 77 72 69 74 65 5f  c_object=$write_
7a80: 6f 6c 64 6f 62 6a 0a 0a 45 4f 46 0a 20 20 20 20  oldobj..EOF.    
7a90: 20 20 24 4d 56 20 22 24 7b 77 72 69 74 65 5f 6c    $MV "${write_l
7aa0: 69 62 6f 62 6a 7d 54 22 20 22 24 7b 77 72 69 74  ibobj}T" "${writ
7ab0: 65 5f 6c 69 62 6f 62 6a 7d 22 0a 20 20 20 20 7d  e_libobj}".    }
7ac0: 0a 7d 0a 0a 23 20 66 75 6e 63 5f 6d 6f 64 65 5f  .}..# func_mode_
7ad0: 63 6f 6d 70 69 6c 65 20 61 72 67 2e 2e 2e 0a 66  compile arg....f
7ae0: 75 6e 63 5f 6d 6f 64 65 5f 63 6f 6d 70 69 6c 65  unc_mode_compile
7af0: 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64   ().{.    $opt_d
7b00: 65 62 75 67 0a 20 20 20 20 23 20 47 65 74 20 74  ebug.    # Get t
7b10: 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63  he compilation c
7b20: 6f 6d 6d 61 6e 64 20 61 6e 64 20 74 68 65 20 73  ommand and the s
7b30: 6f 75 72 63 65 20 66 69 6c 65 2e 0a 20 20 20 20  ource file..    
7b40: 62 61 73 65 5f 63 6f 6d 70 69 6c 65 3d 0a 20 20  base_compile=.  
7b50: 20 20 73 72 63 66 69 6c 65 3d 22 24 6e 6f 6e 6f    srcfile="$nono
7b60: 70 74 22 20 20 23 20 20 61 6c 77 61 79 73 20 6b  pt"  #  always k
7b70: 65 65 70 20 61 20 6e 6f 6e 2d 65 6d 70 74 79 20  eep a non-empty 
7b80: 76 61 6c 75 65 20 69 6e 20 22 73 72 63 66 69 6c  value in "srcfil
7b90: 65 22 0a 20 20 20 20 73 75 70 70 72 65 73 73 5f  e".    suppress_
7ba0: 6f 70 74 3d 79 65 73 0a 20 20 20 20 73 75 70 70  opt=yes.    supp
7bb0: 72 65 73 73 5f 6f 75 74 70 75 74 3d 0a 20 20 20  ress_output=.   
7bc0: 20 61 72 67 5f 6d 6f 64 65 3d 6e 6f 72 6d 61 6c   arg_mode=normal
7bd0: 0a 20 20 20 20 6c 69 62 6f 62 6a 3d 0a 20 20 20  .    libobj=.   
7be0: 20 6c 61 74 65 72 3d 0a 20 20 20 20 70 69 65 5f   later=.    pie_
7bf0: 66 6c 61 67 3d 0a 0a 20 20 20 20 66 6f 72 20 61  flag=..    for a
7c00: 72 67 0a 20 20 20 20 64 6f 0a 20 20 20 20 20 20  rg.    do.      
7c10: 63 61 73 65 20 24 61 72 67 5f 6d 6f 64 65 20 69  case $arg_mode i
7c20: 6e 0a 20 20 20 20 20 20 61 72 67 20 20 29 0a 09  n.      arg  )..
7c30: 23 20 64 6f 20 6e 6f 74 20 22 63 6f 6e 74 69 6e  # do not "contin
7c40: 75 65 22 2e 20 20 49 6e 73 74 65 61 64 2c 20 61  ue".  Instead, a
7c50: 64 64 20 74 68 69 73 20 74 6f 20 62 61 73 65 5f  dd this to base_
7c60: 63 6f 6d 70 69 6c 65 0a 09 6c 61 73 74 61 72 67  compile..lastarg
7c70: 3d 22 24 61 72 67 22 0a 09 61 72 67 5f 6d 6f 64  ="$arg"..arg_mod
7c80: 65 3d 6e 6f 72 6d 61 6c 0a 09 3b 3b 0a 0a 20 20  e=normal..;;..  
7c90: 20 20 20 20 74 61 72 67 65 74 20 29 0a 09 6c 69      target )..li
7ca0: 62 6f 62 6a 3d 22 24 61 72 67 22 0a 09 61 72 67  bobj="$arg"..arg
7cb0: 5f 6d 6f 64 65 3d 6e 6f 72 6d 61 6c 0a 09 63 6f  _mode=normal..co
7cc0: 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20  ntinue..;;..    
7cd0: 20 20 6e 6f 72 6d 61 6c 20 29 0a 09 23 20 41 63    normal )..# Ac
7ce0: 63 65 70 74 20 61 6e 79 20 63 6f 6d 6d 61 6e 64  cept any command
7cf0: 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 2e 0a 09  -line options...
7d00: 63 61 73 65 20 24 61 72 67 20 69 6e 0a 09 2d 6f  case $arg in..-o
7d10: 29 0a 09 20 20 74 65 73 74 20 2d 6e 20 22 24 6c  )..  test -n "$l
7d20: 69 62 6f 62 6a 22 20 26 26 20 5c 0a 09 20 20 20  ibobj" && \..   
7d30: 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f   func_fatal_erro
7d40: 72 20 22 79 6f 75 20 63 61 6e 6e 6f 74 20 73 70  r "you cannot sp
7d50: 65 63 69 66 79 20 5c 60 2d 6f 27 20 6d 6f 72 65  ecify \`-o' more
7d60: 20 74 68 61 6e 20 6f 6e 63 65 22 0a 09 20 20 61   than once"..  a
7d70: 72 67 5f 6d 6f 64 65 3d 74 61 72 67 65 74 0a 09  rg_mode=target..
7d80: 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b    continue..  ;;
7d90: 0a 0a 09 2d 70 69 65 20 7c 20 2d 66 70 69 65 20  ...-pie | -fpie 
7da0: 7c 20 2d 66 50 49 45 29 0a 20 20 20 20 20 20 20  | -fPIE).       
7db0: 20 20 20 70 69 65 5f 66 6c 61 67 3d 22 24 70 69     pie_flag="$pi
7dc0: 65 5f 66 6c 61 67 20 24 61 72 67 22 0a 09 20 20  e_flag $arg"..  
7dd0: 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 0a  continue..  ;;..
7de0: 09 2d 73 68 61 72 65 64 20 7c 20 2d 73 74 61 74  .-shared | -stat
7df0: 69 63 20 7c 20 2d 70 72 65 66 65 72 2d 70 69 63  ic | -prefer-pic
7e00: 20 7c 20 2d 70 72 65 66 65 72 2d 6e 6f 6e 2d 70   | -prefer-non-p
7e10: 69 63 29 0a 09 20 20 6c 61 74 65 72 3d 22 24 6c  ic)..  later="$l
7e20: 61 74 65 72 20 24 61 72 67 22 0a 09 20 20 63 6f  ater $arg"..  co
7e30: 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 0a 09 2d  ntinue..  ;;...-
7e40: 6e 6f 2d 73 75 70 70 72 65 73 73 29 0a 09 20 20  no-suppress)..  
7e50: 73 75 70 70 72 65 73 73 5f 6f 70 74 3d 6e 6f 0a  suppress_opt=no.
7e60: 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b  .  continue..  ;
7e70: 3b 0a 0a 09 2d 58 63 6f 6d 70 69 6c 65 72 29 0a  ;...-Xcompiler).
7e80: 09 20 20 61 72 67 5f 6d 6f 64 65 3d 61 72 67 20  .  arg_mode=arg 
7e90: 20 23 20 20 74 68 65 20 6e 65 78 74 20 6f 6e 65   #  the next one
7ea0: 20 67 6f 65 73 20 69 6e 74 6f 20 74 68 65 20 22   goes into the "
7eb0: 62 61 73 65 5f 63 6f 6d 70 69 6c 65 22 20 61 72  base_compile" ar
7ec0: 67 20 6c 69 73 74 0a 09 20 20 63 6f 6e 74 69 6e  g list..  contin
7ed0: 75 65 20 20 20 20 20 20 23 20 20 54 68 65 20 63  ue      #  The c
7ee0: 75 72 72 65 6e 74 20 22 73 72 63 66 69 6c 65 22  urrent "srcfile"
7ef0: 20 77 69 6c 6c 20 65 69 74 68 65 72 20 62 65 20   will either be 
7f00: 72 65 74 61 69 6e 65 64 20 6f 72 0a 09 20 20 3b  retained or..  ;
7f10: 3b 20 20 20 20 20 20 20 20 20 20 20 20 23 20 20  ;            #  
7f20: 72 65 70 6c 61 63 65 64 20 6c 61 74 65 72 2e 20  replaced later. 
7f30: 20 49 20 77 6f 75 6c 64 20 67 75 65 73 73 20 74   I would guess t
7f40: 68 61 74 20 77 6f 75 6c 64 20 62 65 20 61 20 62  hat would be a b
7f50: 75 67 2e 0a 0a 09 2d 57 63 2c 2a 29 0a 09 20 20  ug....-Wc,*)..  
7f60: 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
7f70: 2d 57 63 2c 27 20 27 27 20 22 24 61 72 67 22 0a  -Wc,' '' "$arg".
7f80: 09 20 20 61 72 67 73 3d 24 66 75 6e 63 5f 73 74  .  args=$func_st
7f90: 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 09  ripname_result..
7fa0: 20 20 6c 61 73 74 61 72 67 3d 0a 09 20 20 73 61    lastarg=..  sa
7fb0: 76 65 5f 69 66 73 3d 22 24 49 46 53 22 3b 20 49  ve_ifs="$IFS"; I
7fc0: 46 53 3d 27 2c 27 0a 09 20 20 66 6f 72 20 61 72  FS=','..  for ar
7fd0: 67 20 69 6e 20 24 61 72 67 73 3b 20 64 6f 0a 09  g in $args; do..
7fe0: 20 20 20 20 49 46 53 3d 22 24 73 61 76 65 5f 69      IFS="$save_i
7ff0: 66 73 22 0a 09 20 20 20 20 66 75 6e 63 5f 71 75  fs"..    func_qu
8000: 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 20 22 24 61  ote_for_eval "$a
8010: 72 67 22 0a 09 20 20 20 20 6c 61 73 74 61 72 67  rg"..    lastarg
8020: 3d 22 24 6c 61 73 74 61 72 67 20 24 66 75 6e 63  ="$lastarg $func
8030: 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f  _quote_for_eval_
8040: 72 65 73 75 6c 74 22 0a 09 20 20 64 6f 6e 65 0a  result"..  done.
8050: 09 20 20 49 46 53 3d 22 24 73 61 76 65 5f 69 66  .  IFS="$save_if
8060: 73 22 0a 09 20 20 66 75 6e 63 5f 73 74 72 69 70  s"..  func_strip
8070: 6e 61 6d 65 20 27 20 27 20 27 27 20 22 24 6c 61  name ' ' '' "$la
8080: 73 74 61 72 67 22 0a 09 20 20 6c 61 73 74 61 72  starg"..  lastar
8090: 67 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  g=$func_stripnam
80a0: 65 5f 72 65 73 75 6c 74 0a 0a 09 20 20 23 20 41  e_result...  # A
80b0: 64 64 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73  dd the arguments
80c0: 20 74 6f 20 62 61 73 65 5f 63 6f 6d 70 69 6c 65   to base_compile
80d0: 2e 0a 09 20 20 62 61 73 65 5f 63 6f 6d 70 69 6c  ...  base_compil
80e0: 65 3d 22 24 62 61 73 65 5f 63 6f 6d 70 69 6c 65  e="$base_compile
80f0: 20 24 6c 61 73 74 61 72 67 22 0a 09 20 20 63 6f   $lastarg"..  co
8100: 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 0a 09 2a  ntinue..  ;;...*
8110: 29 0a 09 20 20 23 20 41 63 63 65 70 74 20 74 68  )..  # Accept th
8120: 65 20 63 75 72 72 65 6e 74 20 61 72 67 75 6d 65  e current argume
8130: 6e 74 20 61 73 20 74 68 65 20 73 6f 75 72 63 65  nt as the source
8140: 20 66 69 6c 65 2e 0a 09 20 20 23 20 54 68 65 20   file...  # The 
8150: 70 72 65 76 69 6f 75 73 20 22 73 72 63 66 69 6c  previous "srcfil
8160: 65 22 20 62 65 63 6f 6d 65 73 20 74 68 65 20 63  e" becomes the c
8170: 75 72 72 65 6e 74 20 61 72 67 75 6d 65 6e 74 2e  urrent argument.
8180: 0a 09 20 20 23 0a 09 20 20 6c 61 73 74 61 72 67  ..  #..  lastarg
8190: 3d 22 24 73 72 63 66 69 6c 65 22 0a 09 20 20 73  ="$srcfile"..  s
81a0: 72 63 66 69 6c 65 3d 22 24 61 72 67 22 0a 09 20  rcfile="$arg".. 
81b0: 20 3b 3b 0a 09 65 73 61 63 20 20 23 20 20 63 61   ;;..esac  #  ca
81c0: 73 65 20 24 61 72 67 0a 09 3b 3b 0a 20 20 20 20  se $arg..;;.    
81d0: 20 20 65 73 61 63 20 20 20 20 23 20 20 63 61 73    esac    #  cas
81e0: 65 20 24 61 72 67 5f 6d 6f 64 65 0a 0a 20 20 20  e $arg_mode..   
81f0: 20 20 20 23 20 41 65 73 74 68 65 74 69 63 61 6c     # Aesthetical
8200: 6c 79 20 71 75 6f 74 65 20 74 68 65 20 70 72 65  ly quote the pre
8210: 76 69 6f 75 73 20 61 72 67 75 6d 65 6e 74 2e 0a  vious argument..
8220: 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f 74 65        func_quote
8230: 5f 66 6f 72 5f 65 76 61 6c 20 22 24 6c 61 73 74  _for_eval "$last
8240: 61 72 67 22 0a 20 20 20 20 20 20 62 61 73 65 5f  arg".      base_
8250: 63 6f 6d 70 69 6c 65 3d 22 24 62 61 73 65 5f 63  compile="$base_c
8260: 6f 6d 70 69 6c 65 20 24 66 75 6e 63 5f 71 75 6f  ompile $func_quo
8270: 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75  te_for_eval_resu
8280: 6c 74 22 0a 20 20 20 20 64 6f 6e 65 20 23 20 66  lt".    done # f
8290: 6f 72 20 61 72 67 0a 0a 20 20 20 20 63 61 73 65  or arg..    case
82a0: 20 24 61 72 67 5f 6d 6f 64 65 20 69 6e 0a 20 20   $arg_mode in.  
82b0: 20 20 61 72 67 29 0a 20 20 20 20 20 20 66 75 6e    arg).      fun
82c0: 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 79  c_fatal_error "y
82d0: 6f 75 20 6d 75 73 74 20 73 70 65 63 69 66 79 20  ou must specify 
82e0: 61 6e 20 61 72 67 75 6d 65 6e 74 20 66 6f 72 20  an argument for 
82f0: 2d 58 63 6f 6d 70 69 6c 65 22 0a 20 20 20 20 20  -Xcompile".     
8300: 20 3b 3b 0a 20 20 20 20 74 61 72 67 65 74 29 0a   ;;.    target).
8310: 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c        func_fatal
8320: 5f 65 72 72 6f 72 20 22 79 6f 75 20 6d 75 73 74  _error "you must
8330: 20 73 70 65 63 69 66 79 20 61 20 74 61 72 67 65   specify a targe
8340: 74 20 77 69 74 68 20 5c 60 2d 6f 27 22 0a 20 20  t with \`-o'".  
8350: 20 20 20 20 3b 3b 0a 20 20 20 20 2a 29 0a 20 20      ;;.    *).  
8360: 20 20 20 20 23 20 47 65 74 20 74 68 65 20 6e 61      # Get the na
8370: 6d 65 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72  me of the librar
8380: 79 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20 20  y object..      
8390: 74 65 73 74 20 2d 7a 20 22 24 6c 69 62 6f 62 6a  test -z "$libobj
83a0: 22 20 26 26 20 7b 0a 09 66 75 6e 63 5f 62 61 73  " && {..func_bas
83b0: 65 6e 61 6d 65 20 22 24 73 72 63 66 69 6c 65 22  ename "$srcfile"
83c0: 0a 09 6c 69 62 6f 62 6a 3d 22 24 66 75 6e 63 5f  ..libobj="$func_
83d0: 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 22  basename_result"
83e0: 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 3b  .      }.      ;
83f0: 3b 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20  ;.    esac..    
8400: 23 20 52 65 63 6f 67 6e 69 7a 65 20 73 65 76 65  # Recognize seve
8410: 72 61 6c 20 64 69 66 66 65 72 65 6e 74 20 66 69  ral different fi
8420: 6c 65 20 73 75 66 66 69 78 65 73 2e 0a 20 20 20  le suffixes..   
8430: 20 23 20 49 66 20 74 68 65 20 75 73 65 72 20 73   # If the user s
8440: 70 65 63 69 66 69 65 73 20 2d 6f 20 66 69 6c 65  pecifies -o file
8450: 2e 6f 2c 20 69 74 20 69 73 20 72 65 70 6c 61 63  .o, it is replac
8460: 65 64 20 77 69 74 68 20 66 69 6c 65 2e 6c 6f 0a  ed with file.lo.
8470: 20 20 20 20 63 61 73 65 20 24 6c 69 62 6f 62 6a      case $libobj
8480: 20 69 6e 0a 20 20 20 20 2a 2e 5b 63 43 46 53 69   in.    *.[cCFSi
8490: 66 6d 73 6f 5d 20 7c 20 5c 0a 20 20 20 20 2a 2e  fmso] | \.    *.
84a0: 61 64 61 20 7c 20 2a 2e 61 64 62 20 7c 20 2a 2e  ada | *.adb | *.
84b0: 61 64 73 20 7c 20 2a 2e 61 73 6d 20 7c 20 5c 0a  ads | *.asm | \.
84c0: 20 20 20 20 2a 2e 63 2b 2b 20 7c 20 2a 2e 63 63      *.c++ | *.cc
84d0: 20 7c 20 2a 2e 69 69 20 7c 20 2a 2e 63 6c 61 73   | *.ii | *.clas
84e0: 73 20 7c 20 2a 2e 63 70 70 20 7c 20 2a 2e 63 78  s | *.cpp | *.cx
84f0: 78 20 7c 20 5c 0a 20 20 20 20 2a 2e 5b 66 46 5d  x | \.    *.[fF]
8500: 5b 30 39 5d 3f 20 7c 20 2a 2e 66 6f 72 20 7c 20  [09]? | *.for | 
8510: 2a 2e 6a 61 76 61 20 7c 20 2a 2e 6f 62 6a 20 7c  *.java | *.obj |
8520: 20 2a 2e 73 78 29 0a 20 20 20 20 20 20 66 75 6e   *.sx).      fun
8530: 63 5f 78 66 6f 72 6d 20 22 24 6c 69 62 6f 62 6a  c_xform "$libobj
8540: 22 0a 20 20 20 20 20 20 6c 69 62 6f 62 6a 3d 24  ".      libobj=$
8550: 66 75 6e 63 5f 78 66 6f 72 6d 5f 72 65 73 75 6c  func_xform_resul
8560: 74 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 65  t.      ;;.    e
8570: 73 61 63 0a 0a 20 20 20 20 63 61 73 65 20 24 6c  sac..    case $l
8580: 69 62 6f 62 6a 20 69 6e 0a 20 20 20 20 2a 2e 6c  ibobj in.    *.l
8590: 6f 29 20 66 75 6e 63 5f 6c 6f 32 6f 20 22 24 6c  o) func_lo2o "$l
85a0: 69 62 6f 62 6a 22 3b 20 6f 62 6a 3d 24 66 75 6e  ibobj"; obj=$fun
85b0: 63 5f 6c 6f 32 6f 5f 72 65 73 75 6c 74 20 3b 3b  c_lo2o_result ;;
85c0: 0a 20 20 20 20 2a 29 0a 20 20 20 20 20 20 66 75  .    *).      fu
85d0: 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22  nc_fatal_error "
85e0: 63 61 6e 6e 6f 74 20 64 65 74 65 72 6d 69 6e 65  cannot determine
85f0: 20 6e 61 6d 65 20 6f 66 20 6c 69 62 72 61 72 79   name of library
8600: 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 5c 60 24   object from \`$
8610: 6c 69 62 6f 62 6a 27 22 0a 20 20 20 20 20 20 3b  libobj'".      ;
8620: 3b 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20  ;.    esac..    
8630: 66 75 6e 63 5f 69 6e 66 65 72 5f 74 61 67 20 24  func_infer_tag $
8640: 62 61 73 65 5f 63 6f 6d 70 69 6c 65 0a 0a 20 20  base_compile..  
8650: 20 20 66 6f 72 20 61 72 67 20 69 6e 20 24 6c 61    for arg in $la
8660: 74 65 72 3b 20 64 6f 0a 20 20 20 20 20 20 63 61  ter; do.      ca
8670: 73 65 20 24 61 72 67 20 69 6e 0a 20 20 20 20 20  se $arg in.     
8680: 20 2d 73 68 61 72 65 64 29 0a 09 74 65 73 74 20   -shared)..test 
8690: 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f  "$build_libtool_
86a0: 6c 69 62 73 22 20 21 3d 20 79 65 73 20 26 26 20  libs" != yes && 
86b0: 5c 0a 09 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  \..  func_fatal_
86c0: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 22 63  configuration "c
86d0: 61 6e 20 6e 6f 74 20 62 75 69 6c 64 20 61 20 73  an not build a s
86e0: 68 61 72 65 64 20 6c 69 62 72 61 72 79 22 0a 09  hared library"..
86f0: 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 3d 6e  build_old_libs=n
8700: 6f 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a  o..continue..;;.
8710: 0a 20 20 20 20 20 20 2d 73 74 61 74 69 63 29 0a  .      -static).
8720: 09 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c  .build_libtool_l
8730: 69 62 73 3d 6e 6f 0a 09 62 75 69 6c 64 5f 6f 6c  ibs=no..build_ol
8740: 64 5f 6c 69 62 73 3d 79 65 73 0a 09 63 6f 6e 74  d_libs=yes..cont
8750: 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
8760: 2d 70 72 65 66 65 72 2d 70 69 63 29 0a 09 70 69  -prefer-pic)..pi
8770: 63 5f 6d 6f 64 65 3d 79 65 73 0a 09 63 6f 6e 74  c_mode=yes..cont
8780: 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
8790: 2d 70 72 65 66 65 72 2d 6e 6f 6e 2d 70 69 63 29  -prefer-non-pic)
87a0: 0a 09 70 69 63 5f 6d 6f 64 65 3d 6e 6f 0a 09 63  ..pic_mode=no..c
87b0: 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 20 20 20 20  ontinue..;;.    
87c0: 20 20 65 73 61 63 0a 20 20 20 20 64 6f 6e 65 0a    esac.    done.
87d0: 0a 20 20 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f  .    func_quote_
87e0: 66 6f 72 5f 65 76 61 6c 20 22 24 6c 69 62 6f 62  for_eval "$libob
87f0: 6a 22 0a 20 20 20 20 74 65 73 74 20 22 58 24 6c  j".    test "X$l
8800: 69 62 6f 62 6a 22 20 21 3d 20 22 58 24 66 75 6e  ibobj" != "X$fun
8810: 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c  c_quote_for_eval
8820: 5f 72 65 73 75 6c 74 22 20 5c 0a 20 20 20 20 20  _result" \.     
8830: 20 26 26 20 24 45 43 48 4f 20 22 58 24 6c 69 62   && $ECHO "X$lib
8840: 6f 62 6a 22 20 7c 20 24 47 52 45 50 20 27 5b 5d  obj" | $GREP '[]
8850: 7e 23 5e 2a 7b 7d 3b 3c 3e 3f 22 27 22 27 22 27  ~#^*{};<>?"'"'"'
8860: 09 20 26 28 29 7c 60 24 5b 5d 27 20 5c 0a 20 20  . &()|`$[]' \.  
8870: 20 20 20 20 26 26 20 66 75 6e 63 5f 77 61 72 6e      && func_warn
8880: 69 6e 67 20 22 6c 69 62 6f 62 6a 20 6e 61 6d 65  ing "libobj name
8890: 20 5c 60 24 6c 69 62 6f 62 6a 27 20 6d 61 79 20   \`$libobj' may 
88a0: 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 73 68 65 6c  not contain shel
88b0: 6c 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63  l special charac
88c0: 74 65 72 73 2e 22 0a 20 20 20 20 66 75 6e 63 5f  ters.".    func_
88d0: 64 69 72 6e 61 6d 65 5f 61 6e 64 5f 62 61 73 65  dirname_and_base
88e0: 6e 61 6d 65 20 22 24 6f 62 6a 22 20 22 2f 22 20  name "$obj" "/" 
88f0: 22 22 0a 20 20 20 20 6f 62 6a 6e 61 6d 65 3d 22  "".    objname="
8900: 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72  $func_basename_r
8910: 65 73 75 6c 74 22 0a 20 20 20 20 78 64 69 72 3d  esult".    xdir=
8920: 22 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72  "$func_dirname_r
8930: 65 73 75 6c 74 22 0a 20 20 20 20 6c 6f 62 6a 3d  esult".    lobj=
8940: 24 7b 78 64 69 72 7d 24 6f 62 6a 64 69 72 2f 24  ${xdir}$objdir/$
8950: 6f 62 6a 6e 61 6d 65 0a 0a 20 20 20 20 74 65 73  objname..    tes
8960: 74 20 2d 7a 20 22 24 62 61 73 65 5f 63 6f 6d 70  t -z "$base_comp
8970: 69 6c 65 22 20 26 26 20 5c 0a 20 20 20 20 20 20  ile" && \.      
8980: 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20  func_fatal_help 
8990: 22 79 6f 75 20 6d 75 73 74 20 73 70 65 63 69 66  "you must specif
89a0: 79 20 61 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20  y a compilation 
89b0: 63 6f 6d 6d 61 6e 64 22 0a 0a 20 20 20 20 23 20  command"..    # 
89c0: 44 65 6c 65 74 65 20 61 6e 79 20 6c 65 66 74 6f  Delete any lefto
89d0: 76 65 72 20 6c 69 62 72 61 72 79 20 6f 62 6a 65  ver library obje
89e0: 63 74 73 2e 0a 20 20 20 20 69 66 20 74 65 73 74  cts..    if test
89f0: 20 22 24 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62   "$build_old_lib
8a00: 73 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20  s" = yes; then. 
8a10: 20 20 20 20 20 72 65 6d 6f 76 65 6c 69 73 74 3d       removelist=
8a20: 22 24 6f 62 6a 20 24 6c 6f 62 6a 20 24 6c 69 62  "$obj $lobj $lib
8a30: 6f 62 6a 20 24 7b 6c 69 62 6f 62 6a 7d 54 22 0a  obj ${libobj}T".
8a40: 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 72      else.      r
8a50: 65 6d 6f 76 65 6c 69 73 74 3d 22 24 6c 6f 62 6a  emovelist="$lobj
8a60: 20 24 6c 69 62 6f 62 6a 20 24 7b 6c 69 62 6f 62   $libobj ${libob
8a70: 6a 7d 54 22 0a 20 20 20 20 66 69 0a 0a 20 20 20  j}T".    fi..   
8a80: 20 23 20 4f 6e 20 43 79 67 77 69 6e 20 74 68 65   # On Cygwin the
8a90: 72 65 27 73 20 6e 6f 20 22 72 65 61 6c 22 20 50  re's no "real" P
8aa0: 49 43 20 66 6c 61 67 20 73 6f 20 77 65 20 6d 75  IC flag so we mu
8ab0: 73 74 20 62 75 69 6c 64 20 62 6f 74 68 20 6f 62  st build both ob
8ac0: 6a 65 63 74 20 74 79 70 65 73 0a 20 20 20 20 63  ject types.    c
8ad0: 61 73 65 20 24 68 6f 73 74 5f 6f 73 20 69 6e 0a  ase $host_os in.
8ae0: 20 20 20 20 63 79 67 77 69 6e 2a 20 7c 20 6d 69      cygwin* | mi
8af0: 6e 67 77 2a 20 7c 20 70 77 33 32 2a 20 7c 20 6f  ngw* | pw32* | o
8b00: 73 32 2a 20 7c 20 63 65 67 63 63 2a 29 0a 20 20  s2* | cegcc*).  
8b10: 20 20 20 20 70 69 63 5f 6d 6f 64 65 3d 64 65 66      pic_mode=def
8b20: 61 75 6c 74 0a 20 20 20 20 20 20 3b 3b 0a 20 20  ault.      ;;.  
8b30: 20 20 65 73 61 63 0a 20 20 20 20 69 66 20 74 65    esac.    if te
8b40: 73 74 20 22 24 70 69 63 5f 6d 6f 64 65 22 20 3d  st "$pic_mode" =
8b50: 20 6e 6f 20 26 26 20 74 65 73 74 20 22 24 64 65   no && test "$de
8b60: 70 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68  plibs_check_meth
8b70: 6f 64 22 20 21 3d 20 70 61 73 73 5f 61 6c 6c 3b  od" != pass_all;
8b80: 20 74 68 65 6e 0a 20 20 20 20 20 20 23 20 6e 6f   then.      # no
8b90: 6e 2d 50 49 43 20 63 6f 64 65 20 69 6e 20 73 68  n-PIC code in sh
8ba0: 61 72 65 64 20 6c 69 62 72 61 72 69 65 73 20 69  ared libraries i
8bb0: 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 0a  s not supported.
8bc0: 20 20 20 20 20 20 70 69 63 5f 6d 6f 64 65 3d 64        pic_mode=d
8bd0: 65 66 61 75 6c 74 0a 20 20 20 20 66 69 0a 0a 20  efault.    fi.. 
8be0: 20 20 20 23 20 43 61 6c 63 75 6c 61 74 65 20 74     # Calculate t
8bf0: 68 65 20 66 69 6c 65 6e 61 6d 65 20 6f 66 20 74  he filename of t
8c00: 68 65 20 6f 75 74 70 75 74 20 6f 62 6a 65 63 74  he output object
8c10: 20 69 66 20 63 6f 6d 70 69 6c 65 72 20 64 6f 65   if compiler doe
8c20: 73 0a 20 20 20 20 23 20 6e 6f 74 20 73 75 70 70  s.    # not supp
8c30: 6f 72 74 20 2d 6f 20 77 69 74 68 20 2d 63 0a 20  ort -o with -c. 
8c40: 20 20 20 69 66 20 74 65 73 74 20 22 24 63 6f 6d     if test "$com
8c50: 70 69 6c 65 72 5f 63 5f 6f 22 20 3d 20 6e 6f 3b  piler_c_o" = no;
8c60: 20 74 68 65 6e 0a 20 20 20 20 20 20 6f 75 74 70   then.      outp
8c70: 75 74 5f 6f 62 6a 3d 60 24 45 43 48 4f 20 22 58  ut_obj=`$ECHO "X
8c80: 24 73 72 63 66 69 6c 65 22 20 7c 20 24 58 73 65  $srcfile" | $Xse
8c90: 64 20 2d 65 20 27 73 25 5e 2e 2a 2f 25 25 27 20  d -e 's%^.*/%%' 
8ca0: 2d 65 20 27 73 25 5c 2e 5b 5e 2e 5d 2a 24 25 25  -e 's%\.[^.]*$%%
8cb0: 27 60 2e 24 7b 6f 62 6a 65 78 74 7d 0a 20 20 20  '`.${objext}.   
8cc0: 20 20 20 6c 6f 63 6b 66 69 6c 65 3d 22 24 6f 75     lockfile="$ou
8cd0: 74 70 75 74 5f 6f 62 6a 2e 6c 6f 63 6b 22 0a 20  tput_obj.lock". 
8ce0: 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 6f 75     else.      ou
8cf0: 74 70 75 74 5f 6f 62 6a 3d 0a 20 20 20 20 20 20  tput_obj=.      
8d00: 6e 65 65 64 5f 6c 6f 63 6b 73 3d 6e 6f 0a 20 20  need_locks=no.  
8d10: 20 20 20 20 6c 6f 63 6b 66 69 6c 65 3d 0a 20 20      lockfile=.  
8d20: 20 20 66 69 0a 0a 20 20 20 20 23 20 4c 6f 63 6b    fi..    # Lock
8d30: 20 74 68 69 73 20 63 72 69 74 69 63 61 6c 20 73   this critical s
8d40: 65 63 74 69 6f 6e 20 69 66 20 69 74 20 69 73 20  ection if it is 
8d50: 6e 65 65 64 65 64 0a 20 20 20 20 23 20 57 65 20  needed.    # We 
8d60: 75 73 65 20 74 68 69 73 20 73 63 72 69 70 74 20  use this script 
8d70: 66 69 6c 65 20 74 6f 20 6d 61 6b 65 20 74 68 65  file to make the
8d80: 20 6c 69 6e 6b 2c 20 69 74 20 61 76 6f 69 64 73   link, it avoids
8d90: 20 63 72 65 61 74 69 6e 67 20 61 20 6e 65 77 20   creating a new 
8da0: 66 69 6c 65 0a 20 20 20 20 69 66 20 74 65 73 74  file.    if test
8db0: 20 22 24 6e 65 65 64 5f 6c 6f 63 6b 73 22 20 3d   "$need_locks" =
8dc0: 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20 20   yes; then.     
8dd0: 20 75 6e 74 69 6c 20 24 6f 70 74 5f 64 72 79 5f   until $opt_dry_
8de0: 72 75 6e 20 7c 7c 20 6c 6e 20 22 24 70 72 6f 67  run || ln "$prog
8df0: 70 61 74 68 22 20 22 24 6c 6f 63 6b 66 69 6c 65  path" "$lockfile
8e00: 22 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 64  " 2>/dev/null; d
8e10: 6f 0a 09 66 75 6e 63 5f 65 63 68 6f 20 22 57 61  o..func_echo "Wa
8e20: 69 74 69 6e 67 20 66 6f 72 20 24 6c 6f 63 6b 66  iting for $lockf
8e30: 69 6c 65 20 74 6f 20 62 65 20 72 65 6d 6f 76 65  ile to be remove
8e40: 64 22 0a 09 73 6c 65 65 70 20 32 0a 20 20 20 20  d"..sleep 2.    
8e50: 20 20 64 6f 6e 65 0a 20 20 20 20 65 6c 69 66 20    done.    elif 
8e60: 74 65 73 74 20 22 24 6e 65 65 64 5f 6c 6f 63 6b  test "$need_lock
8e70: 73 22 20 3d 20 77 61 72 6e 3b 20 74 68 65 6e 0a  s" = warn; then.
8e80: 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 66        if test -f
8e90: 20 22 24 6c 6f 63 6b 66 69 6c 65 22 3b 20 74 68   "$lockfile"; th
8ea0: 65 6e 0a 09 24 45 43 48 4f 20 22 5c 0a 2a 2a 2a  en..$ECHO "\.***
8eb0: 20 45 52 52 4f 52 2c 20 24 6c 6f 63 6b 66 69 6c   ERROR, $lockfil
8ec0: 65 20 65 78 69 73 74 73 20 61 6e 64 20 63 6f 6e  e exists and con
8ed0: 74 61 69 6e 73 3a 0a 60 63 61 74 20 24 6c 6f 63  tains:.`cat $loc
8ee0: 6b 66 69 6c 65 20 32 3e 2f 64 65 76 2f 6e 75 6c  kfile 2>/dev/nul
8ef0: 6c 60 0a 0a 54 68 69 73 20 69 6e 64 69 63 61 74  l`..This indicat
8f00: 65 73 20 74 68 61 74 20 61 6e 6f 74 68 65 72 20  es that another 
8f10: 70 72 6f 63 65 73 73 20 69 73 20 74 72 79 69 6e  process is tryin
8f20: 67 20 74 6f 20 75 73 65 20 74 68 65 20 73 61 6d  g to use the sam
8f30: 65 0a 74 65 6d 70 6f 72 61 72 79 20 6f 62 6a 65  e.temporary obje
8f40: 63 74 20 66 69 6c 65 2c 20 61 6e 64 20 6c 69 62  ct file, and lib
8f50: 74 6f 6f 6c 20 63 6f 75 6c 64 20 6e 6f 74 20 77  tool could not w
8f60: 6f 72 6b 20 61 72 6f 75 6e 64 20 69 74 20 62 65  ork around it be
8f70: 63 61 75 73 65 0a 79 6f 75 72 20 63 6f 6d 70 69  cause.your compi
8f80: 6c 65 72 20 64 6f 65 73 20 6e 6f 74 20 73 75 70  ler does not sup
8f90: 70 6f 72 74 20 5c 60 2d 63 27 20 61 6e 64 20 5c  port \`-c' and \
8fa0: 60 2d 6f 27 20 74 6f 67 65 74 68 65 72 2e 20 20  `-o' together.  
8fb0: 49 66 20 79 6f 75 0a 72 65 70 65 61 74 20 74 68  If you.repeat th
8fc0: 69 73 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2c 20  is compilation, 
8fd0: 69 74 20 6d 61 79 20 73 75 63 63 65 65 64 2c 20  it may succeed, 
8fe0: 62 79 20 63 68 61 6e 63 65 2c 20 62 75 74 20 79  by chance, but y
8ff0: 6f 75 20 68 61 64 20 62 65 74 74 65 72 0a 61 76  ou had better.av
9000: 6f 69 64 20 70 61 72 61 6c 6c 65 6c 20 62 75 69  oid parallel bui
9010: 6c 64 73 20 28 6d 61 6b 65 20 2d 6a 29 20 69 6e  lds (make -j) in
9020: 20 74 68 69 73 20 70 6c 61 74 66 6f 72 6d 2c 20   this platform, 
9030: 6f 72 20 67 65 74 20 61 20 62 65 74 74 65 72 0a  or get a better.
9040: 63 6f 6d 70 69 6c 65 72 2e 22 0a 0a 09 24 6f 70  compiler."...$op
9050: 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 24 52 4d  t_dry_run || $RM
9060: 20 24 72 65 6d 6f 76 65 6c 69 73 74 0a 09 65 78   $removelist..ex
9070: 69 74 20 24 45 58 49 54 5f 46 41 49 4c 55 52 45  it $EXIT_FAILURE
9080: 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20  .      fi.      
9090: 72 65 6d 6f 76 65 6c 69 73 74 3d 22 24 72 65 6d  removelist="$rem
90a0: 6f 76 65 6c 69 73 74 20 24 6f 75 74 70 75 74 5f  ovelist $output_
90b0: 6f 62 6a 22 0a 20 20 20 20 20 20 24 45 43 48 4f  obj".      $ECHO
90c0: 20 22 24 73 72 63 66 69 6c 65 22 20 3e 20 22 24   "$srcfile" > "$
90d0: 6c 6f 63 6b 66 69 6c 65 22 0a 20 20 20 20 66 69  lockfile".    fi
90e0: 0a 0a 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72  ..    $opt_dry_r
90f0: 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d 6f 76  un || $RM $remov
9100: 65 6c 69 73 74 0a 20 20 20 20 72 65 6d 6f 76 65  elist.    remove
9110: 6c 69 73 74 3d 22 24 72 65 6d 6f 76 65 6c 69 73  list="$removelis
9120: 74 20 24 6c 6f 63 6b 66 69 6c 65 22 0a 20 20 20  t $lockfile".   
9130: 20 74 72 61 70 20 27 24 6f 70 74 5f 64 72 79 5f   trap '$opt_dry_
9140: 72 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d 6f  run || $RM $remo
9150: 76 65 6c 69 73 74 3b 20 65 78 69 74 20 24 45 58  velist; exit $EX
9160: 49 54 5f 46 41 49 4c 55 52 45 27 20 31 20 32 20  IT_FAILURE' 1 2 
9170: 31 35 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20  15..    if test 
9180: 2d 6e 20 22 24 66 69 78 5f 73 72 63 66 69 6c 65  -n "$fix_srcfile
9190: 5f 70 61 74 68 22 3b 20 74 68 65 6e 0a 20 20 20  _path"; then.   
91a0: 20 20 20 65 76 61 6c 20 73 72 63 66 69 6c 65 3d     eval srcfile=
91b0: 5c 22 24 66 69 78 5f 73 72 63 66 69 6c 65 5f 70  \"$fix_srcfile_p
91c0: 61 74 68 5c 22 0a 20 20 20 20 66 69 0a 20 20 20  ath\".    fi.   
91d0: 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f   func_quote_for_
91e0: 65 76 61 6c 20 22 24 73 72 63 66 69 6c 65 22 0a  eval "$srcfile".
91f0: 20 20 20 20 71 73 72 63 66 69 6c 65 3d 24 66 75      qsrcfile=$fu
9200: 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
9210: 6c 5f 72 65 73 75 6c 74 0a 0a 20 20 20 20 23 20  l_result..    # 
9220: 4f 6e 6c 79 20 62 75 69 6c 64 20 61 20 50 49 43  Only build a PIC
9230: 20 6f 62 6a 65 63 74 20 69 66 20 77 65 20 61 72   object if we ar
9240: 65 20 62 75 69 6c 64 69 6e 67 20 6c 69 62 74 6f  e building libto
9250: 6f 6c 20 6c 69 62 72 61 72 69 65 73 2e 0a 20 20  ol libraries..  
9260: 20 20 69 66 20 74 65 73 74 20 22 24 62 75 69 6c    if test "$buil
9270: 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22 20  d_libtool_libs" 
9280: 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20  = yes; then.    
9290: 20 20 23 20 57 69 74 68 6f 75 74 20 74 68 69 73    # Without this
92a0: 20 61 73 73 69 67 6e 6d 65 6e 74 2c 20 62 61 73   assignment, bas
92b0: 65 5f 63 6f 6d 70 69 6c 65 20 67 65 74 73 20 65  e_compile gets e
92c0: 6d 70 74 69 65 64 2e 0a 20 20 20 20 20 20 66 62  mptied..      fb
92d0: 73 64 5f 68 69 64 65 6f 75 73 5f 73 68 5f 62 75  sd_hideous_sh_bu
92e0: 67 3d 24 62 61 73 65 5f 63 6f 6d 70 69 6c 65 0a  g=$base_compile.
92f0: 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 22  .      if test "
9300: 24 70 69 63 5f 6d 6f 64 65 22 20 21 3d 20 6e 6f  $pic_mode" != no
9310: 3b 20 74 68 65 6e 0a 09 63 6f 6d 6d 61 6e 64 3d  ; then..command=
9320: 22 24 62 61 73 65 5f 63 6f 6d 70 69 6c 65 20 24  "$base_compile $
9330: 71 73 72 63 66 69 6c 65 20 24 70 69 63 5f 66 6c  qsrcfile $pic_fl
9340: 61 67 22 0a 20 20 20 20 20 20 65 6c 73 65 0a 09  ag".      else..
9350: 23 20 44 6f 6e 27 74 20 62 75 69 6c 64 20 50 49  # Don't build PI
9360: 43 20 63 6f 64 65 0a 09 63 6f 6d 6d 61 6e 64 3d  C code..command=
9370: 22 24 62 61 73 65 5f 63 6f 6d 70 69 6c 65 20 24  "$base_compile $
9380: 71 73 72 63 66 69 6c 65 22 0a 20 20 20 20 20 20  qsrcfile".      
9390: 66 69 0a 0a 20 20 20 20 20 20 66 75 6e 63 5f 6d  fi..      func_m
93a0: 6b 64 69 72 5f 70 20 22 24 78 64 69 72 24 6f 62  kdir_p "$xdir$ob
93b0: 6a 64 69 72 22 0a 0a 20 20 20 20 20 20 69 66 20  jdir"..      if 
93c0: 74 65 73 74 20 2d 7a 20 22 24 6f 75 74 70 75 74  test -z "$output
93d0: 5f 6f 62 6a 22 3b 20 74 68 65 6e 0a 09 23 20 50  _obj"; then..# P
93e0: 6c 61 63 65 20 50 49 43 20 6f 62 6a 65 63 74 73  lace PIC objects
93f0: 20 69 6e 20 24 6f 62 6a 64 69 72 0a 09 63 6f 6d   in $objdir..com
9400: 6d 61 6e 64 3d 22 24 63 6f 6d 6d 61 6e 64 20 2d  mand="$command -
9410: 6f 20 24 6c 6f 62 6a 22 0a 20 20 20 20 20 20 66  o $lobj".      f
9420: 69 0a 0a 20 20 20 20 20 20 66 75 6e 63 5f 73 68  i..      func_sh
9430: 6f 77 5f 65 76 61 6c 5f 6c 6f 63 61 6c 65 20 22  ow_eval_locale "
9440: 24 63 6f 6d 6d 61 6e 64 22 09 5c 0a 20 20 20 20  $command".\.    
9450: 20 20 20 20 20 20 27 74 65 73 74 20 2d 6e 20 22        'test -n "
9460: 24 6f 75 74 70 75 74 5f 6f 62 6a 22 20 26 26 20  $output_obj" && 
9470: 24 52 4d 20 24 72 65 6d 6f 76 65 6c 69 73 74 3b  $RM $removelist;
9480: 20 65 78 69 74 20 24 45 58 49 54 5f 46 41 49 4c   exit $EXIT_FAIL
9490: 55 52 45 27 0a 0a 20 20 20 20 20 20 69 66 20 74  URE'..      if t
94a0: 65 73 74 20 22 24 6e 65 65 64 5f 6c 6f 63 6b 73  est "$need_locks
94b0: 22 20 3d 20 77 61 72 6e 20 26 26 0a 09 20 74 65  " = warn &&.. te
94c0: 73 74 20 22 58 60 63 61 74 20 24 6c 6f 63 6b 66  st "X`cat $lockf
94d0: 69 6c 65 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60  ile 2>/dev/null`
94e0: 22 20 21 3d 20 22 58 24 73 72 63 66 69 6c 65 22  " != "X$srcfile"
94f0: 3b 20 74 68 65 6e 0a 09 24 45 43 48 4f 20 22 5c  ; then..$ECHO "\
9500: 0a 2a 2a 2a 20 45 52 52 4f 52 2c 20 24 6c 6f 63  .*** ERROR, $loc
9510: 6b 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 3a 0a  kfile contains:.
9520: 60 63 61 74 20 24 6c 6f 63 6b 66 69 6c 65 20 32  `cat $lockfile 2
9530: 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a 0a 62 75 74  >/dev/null`..but
9540: 20 69 74 20 73 68 6f 75 6c 64 20 63 6f 6e 74 61   it should conta
9550: 69 6e 3a 0a 24 73 72 63 66 69 6c 65 0a 0a 54 68  in:.$srcfile..Th
9560: 69 73 20 69 6e 64 69 63 61 74 65 73 20 74 68 61  is indicates tha
9570: 74 20 61 6e 6f 74 68 65 72 20 70 72 6f 63 65 73  t another proces
9580: 73 20 69 73 20 74 72 79 69 6e 67 20 74 6f 20 75  s is trying to u
9590: 73 65 20 74 68 65 20 73 61 6d 65 0a 74 65 6d 70  se the same.temp
95a0: 6f 72 61 72 79 20 6f 62 6a 65 63 74 20 66 69 6c  orary object fil
95b0: 65 2c 20 61 6e 64 20 6c 69 62 74 6f 6f 6c 20 63  e, and libtool c
95c0: 6f 75 6c 64 20 6e 6f 74 20 77 6f 72 6b 20 61 72  ould not work ar
95d0: 6f 75 6e 64 20 69 74 20 62 65 63 61 75 73 65 0a  ound it because.
95e0: 79 6f 75 72 20 63 6f 6d 70 69 6c 65 72 20 64 6f  your compiler do
95f0: 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 5c  es not support \
9600: 60 2d 63 27 20 61 6e 64 20 5c 60 2d 6f 27 20 74  `-c' and \`-o' t
9610: 6f 67 65 74 68 65 72 2e 20 20 49 66 20 79 6f 75  ogether.  If you
9620: 0a 72 65 70 65 61 74 20 74 68 69 73 20 63 6f 6d  .repeat this com
9630: 70 69 6c 61 74 69 6f 6e 2c 20 69 74 20 6d 61 79  pilation, it may
9640: 20 73 75 63 63 65 65 64 2c 20 62 79 20 63 68 61   succeed, by cha
9650: 6e 63 65 2c 20 62 75 74 20 79 6f 75 20 68 61 64  nce, but you had
9660: 20 62 65 74 74 65 72 0a 61 76 6f 69 64 20 70 61   better.avoid pa
9670: 72 61 6c 6c 65 6c 20 62 75 69 6c 64 73 20 28 6d  rallel builds (m
9680: 61 6b 65 20 2d 6a 29 20 69 6e 20 74 68 69 73 20  ake -j) in this 
9690: 70 6c 61 74 66 6f 72 6d 2c 20 6f 72 20 67 65 74  platform, or get
96a0: 20 61 20 62 65 74 74 65 72 0a 63 6f 6d 70 69 6c   a better.compil
96b0: 65 72 2e 22 0a 0a 09 24 6f 70 74 5f 64 72 79 5f  er."...$opt_dry_
96c0: 72 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d 6f  run || $RM $remo
96d0: 76 65 6c 69 73 74 0a 09 65 78 69 74 20 24 45 58  velist..exit $EX
96e0: 49 54 5f 46 41 49 4c 55 52 45 0a 20 20 20 20 20  IT_FAILURE.     
96f0: 20 66 69 0a 0a 20 20 20 20 20 20 23 20 4a 75 73   fi..      # Jus
9700: 74 20 6d 6f 76 65 20 74 68 65 20 6f 62 6a 65 63  t move the objec
9710: 74 20 69 66 20 6e 65 65 64 65 64 2c 20 74 68 65  t if needed, the
9720: 6e 20 67 6f 20 6f 6e 20 74 6f 20 63 6f 6d 70 69  n go on to compi
9730: 6c 65 20 74 68 65 20 6e 65 78 74 20 6f 6e 65 0a  le the next one.
9740: 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e        if test -n
9750: 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 22 20 26   "$output_obj" &
9760: 26 20 74 65 73 74 20 22 58 24 6f 75 74 70 75 74  & test "X$output
9770: 5f 6f 62 6a 22 20 21 3d 20 22 58 24 6c 6f 62 6a  _obj" != "X$lobj
9780: 22 3b 20 74 68 65 6e 0a 09 66 75 6e 63 5f 73 68  "; then..func_sh
9790: 6f 77 5f 65 76 61 6c 20 27 24 4d 56 20 22 24 6f  ow_eval '$MV "$o
97a0: 75 74 70 75 74 5f 6f 62 6a 22 20 22 24 6c 6f 62  utput_obj" "$lob
97b0: 6a 22 27 20 5c 0a 09 20 20 27 65 72 72 6f 72 3d  j"' \..  'error=
97c0: 24 3f 3b 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e  $?; $opt_dry_run
97d0: 20 7c 7c 20 24 52 4d 20 24 72 65 6d 6f 76 65 6c   || $RM $removel
97e0: 69 73 74 3b 20 65 78 69 74 20 24 65 72 72 6f 72  ist; exit $error
97f0: 27 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20 20  '.      fi..    
9800: 20 20 23 20 41 6c 6c 6f 77 20 65 72 72 6f 72 20    # Allow error 
9810: 6d 65 73 73 61 67 65 73 20 6f 6e 6c 79 20 66 72  messages only fr
9820: 6f 6d 20 74 68 65 20 66 69 72 73 74 20 63 6f 6d  om the first com
9830: 70 69 6c 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20  pilation..      
9840: 69 66 20 74 65 73 74 20 22 24 73 75 70 70 72 65  if test "$suppre
9850: 73 73 5f 6f 70 74 22 20 3d 20 79 65 73 3b 20 74  ss_opt" = yes; t
9860: 68 65 6e 0a 09 73 75 70 70 72 65 73 73 5f 6f 75  hen..suppress_ou
9870: 74 70 75 74 3d 27 20 3e 2f 64 65 76 2f 6e 75 6c  tput=' >/dev/nul
9880: 6c 20 32 3e 26 31 27 0a 20 20 20 20 20 20 66 69  l 2>&1'.      fi
9890: 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 23 20 4f  .    fi..    # O
98a0: 6e 6c 79 20 62 75 69 6c 64 20 61 20 70 6f 73 69  nly build a posi
98b0: 74 69 6f 6e 2d 64 65 70 65 6e 64 65 6e 74 20 6f  tion-dependent o
98c0: 62 6a 65 63 74 20 69 66 20 77 65 20 62 75 69 6c  bject if we buil
98d0: 64 20 6f 6c 64 20 6c 69 62 72 61 72 69 65 73 2e  d old libraries.
98e0: 0a 20 20 20 20 69 66 20 74 65 73 74 20 22 24 62  .    if test "$b
98f0: 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d  uild_old_libs" =
9900: 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20 20   yes; then.     
9910: 20 69 66 20 74 65 73 74 20 22 24 70 69 63 5f 6d   if test "$pic_m
9920: 6f 64 65 22 20 21 3d 20 79 65 73 3b 20 74 68 65  ode" != yes; the
9930: 6e 0a 09 23 20 44 6f 6e 27 74 20 62 75 69 6c 64  n..# Don't build
9940: 20 50 49 43 20 63 6f 64 65 0a 09 63 6f 6d 6d 61   PIC code..comma
9950: 6e 64 3d 22 24 62 61 73 65 5f 63 6f 6d 70 69 6c  nd="$base_compil
9960: 65 20 24 71 73 72 63 66 69 6c 65 24 70 69 65 5f  e $qsrcfile$pie_
9970: 66 6c 61 67 22 0a 20 20 20 20 20 20 65 6c 73 65  flag".      else
9980: 0a 09 63 6f 6d 6d 61 6e 64 3d 22 24 62 61 73 65  ..command="$base
9990: 5f 63 6f 6d 70 69 6c 65 20 24 71 73 72 63 66 69  _compile $qsrcfi
99a0: 6c 65 20 24 70 69 63 5f 66 6c 61 67 22 0a 20 20  le $pic_flag".  
99b0: 20 20 20 20 66 69 0a 20 20 20 20 20 20 69 66 20      fi.      if 
99c0: 74 65 73 74 20 22 24 63 6f 6d 70 69 6c 65 72 5f  test "$compiler_
99d0: 63 5f 6f 22 20 3d 20 79 65 73 3b 20 74 68 65 6e  c_o" = yes; then
99e0: 0a 09 63 6f 6d 6d 61 6e 64 3d 22 24 63 6f 6d 6d  ..command="$comm
99f0: 61 6e 64 20 2d 6f 20 24 6f 62 6a 22 0a 20 20 20  and -o $obj".   
9a00: 20 20 20 66 69 0a 0a 20 20 20 20 20 20 23 20 53     fi..      # S
9a10: 75 70 70 72 65 73 73 20 63 6f 6d 70 69 6c 65 72  uppress compiler
9a20: 20 6f 75 74 70 75 74 20 69 66 20 77 65 20 61 6c   output if we al
9a30: 72 65 61 64 79 20 64 69 64 20 61 20 50 49 43 20  ready did a PIC 
9a40: 63 6f 6d 70 69 6c 61 74 69 6f 6e 2e 0a 20 20 20  compilation..   
9a50: 20 20 20 63 6f 6d 6d 61 6e 64 3d 22 24 63 6f 6d     command="$com
9a60: 6d 61 6e 64 24 73 75 70 70 72 65 73 73 5f 6f 75  mand$suppress_ou
9a70: 74 70 75 74 22 0a 20 20 20 20 20 20 66 75 6e 63  tput".      func
9a80: 5f 73 68 6f 77 5f 65 76 61 6c 5f 6c 6f 63 61 6c  _show_eval_local
9a90: 65 20 22 24 63 6f 6d 6d 61 6e 64 22 20 5c 0a 20  e "$command" \. 
9aa0: 20 20 20 20 20 20 20 27 24 6f 70 74 5f 64 72 79         '$opt_dry
9ab0: 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d  _run || $RM $rem
9ac0: 6f 76 65 6c 69 73 74 3b 20 65 78 69 74 20 24 45  ovelist; exit $E
9ad0: 58 49 54 5f 46 41 49 4c 55 52 45 27 0a 0a 20 20  XIT_FAILURE'..  
9ae0: 20 20 20 20 69 66 20 74 65 73 74 20 22 24 6e 65      if test "$ne
9af0: 65 64 5f 6c 6f 63 6b 73 22 20 3d 20 77 61 72 6e  ed_locks" = warn
9b00: 20 26 26 0a 09 20 74 65 73 74 20 22 58 60 63 61   &&.. test "X`ca
9b10: 74 20 24 6c 6f 63 6b 66 69 6c 65 20 32 3e 2f 64  t $lockfile 2>/d
9b20: 65 76 2f 6e 75 6c 6c 60 22 20 21 3d 20 22 58 24  ev/null`" != "X$
9b30: 73 72 63 66 69 6c 65 22 3b 20 74 68 65 6e 0a 09  srcfile"; then..
9b40: 24 45 43 48 4f 20 22 5c 0a 2a 2a 2a 20 45 52 52  $ECHO "\.*** ERR
9b50: 4f 52 2c 20 24 6c 6f 63 6b 66 69 6c 65 20 63 6f  OR, $lockfile co
9b60: 6e 74 61 69 6e 73 3a 0a 60 63 61 74 20 24 6c 6f  ntains:.`cat $lo
9b70: 63 6b 66 69 6c 65 20 32 3e 2f 64 65 76 2f 6e 75  ckfile 2>/dev/nu
9b80: 6c 6c 60 0a 0a 62 75 74 20 69 74 20 73 68 6f 75  ll`..but it shou
9b90: 6c 64 20 63 6f 6e 74 61 69 6e 3a 0a 24 73 72 63  ld contain:.$src
9ba0: 66 69 6c 65 0a 0a 54 68 69 73 20 69 6e 64 69 63  file..This indic
9bb0: 61 74 65 73 20 74 68 61 74 20 61 6e 6f 74 68 65  ates that anothe
9bc0: 72 20 70 72 6f 63 65 73 73 20 69 73 20 74 72 79  r process is try
9bd0: 69 6e 67 20 74 6f 20 75 73 65 20 74 68 65 20 73  ing to use the s
9be0: 61 6d 65 0a 74 65 6d 70 6f 72 61 72 79 20 6f 62  ame.temporary ob
9bf0: 6a 65 63 74 20 66 69 6c 65 2c 20 61 6e 64 20 6c  ject file, and l
9c00: 69 62 74 6f 6f 6c 20 63 6f 75 6c 64 20 6e 6f 74  ibtool could not
9c10: 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 69 74 20   work around it 
9c20: 62 65 63 61 75 73 65 0a 79 6f 75 72 20 63 6f 6d  because.your com
9c30: 70 69 6c 65 72 20 64 6f 65 73 20 6e 6f 74 20 73  piler does not s
9c40: 75 70 70 6f 72 74 20 5c 60 2d 63 27 20 61 6e 64  upport \`-c' and
9c50: 20 5c 60 2d 6f 27 20 74 6f 67 65 74 68 65 72 2e   \`-o' together.
9c60: 20 20 49 66 20 79 6f 75 0a 72 65 70 65 61 74 20    If you.repeat 
9c70: 74 68 69 73 20 63 6f 6d 70 69 6c 61 74 69 6f 6e  this compilation
9c80: 2c 20 69 74 20 6d 61 79 20 73 75 63 63 65 65 64  , it may succeed
9c90: 2c 20 62 79 20 63 68 61 6e 63 65 2c 20 62 75 74  , by chance, but
9ca0: 20 79 6f 75 20 68 61 64 20 62 65 74 74 65 72 0a   you had better.
9cb0: 61 76 6f 69 64 20 70 61 72 61 6c 6c 65 6c 20 62  avoid parallel b
9cc0: 75 69 6c 64 73 20 28 6d 61 6b 65 20 2d 6a 29 20  uilds (make -j) 
9cd0: 69 6e 20 74 68 69 73 20 70 6c 61 74 66 6f 72 6d  in this platform
9ce0: 2c 20 6f 72 20 67 65 74 20 61 20 62 65 74 74 65  , or get a bette
9cf0: 72 0a 63 6f 6d 70 69 6c 65 72 2e 22 0a 0a 09 24  r.compiler."...$
9d00: 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 24  opt_dry_run || $
9d10: 52 4d 20 24 72 65 6d 6f 76 65 6c 69 73 74 0a 09  RM $removelist..
9d20: 65 78 69 74 20 24 45 58 49 54 5f 46 41 49 4c 55  exit $EXIT_FAILU
9d30: 52 45 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20  RE.      fi..   
9d40: 20 20 20 23 20 4a 75 73 74 20 6d 6f 76 65 20 74     # Just move t
9d50: 68 65 20 6f 62 6a 65 63 74 20 69 66 20 6e 65 65  he object if nee
9d60: 64 65 64 0a 20 20 20 20 20 20 69 66 20 74 65 73  ded.      if tes
9d70: 74 20 2d 6e 20 22 24 6f 75 74 70 75 74 5f 6f 62  t -n "$output_ob
9d80: 6a 22 20 26 26 20 74 65 73 74 20 22 58 24 6f 75  j" && test "X$ou
9d90: 74 70 75 74 5f 6f 62 6a 22 20 21 3d 20 22 58 24  tput_obj" != "X$
9da0: 6f 62 6a 22 3b 20 74 68 65 6e 0a 09 66 75 6e 63  obj"; then..func
9db0: 5f 73 68 6f 77 5f 65 76 61 6c 20 27 24 4d 56 20  _show_eval '$MV 
9dc0: 22 24 6f 75 74 70 75 74 5f 6f 62 6a 22 20 22 24  "$output_obj" "$
9dd0: 6f 62 6a 22 27 20 5c 0a 09 20 20 27 65 72 72 6f  obj"' \..  'erro
9de0: 72 3d 24 3f 3b 20 24 6f 70 74 5f 64 72 79 5f 72  r=$?; $opt_dry_r
9df0: 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d 6f 76  un || $RM $remov
9e00: 65 6c 69 73 74 3b 20 65 78 69 74 20 24 65 72 72  elist; exit $err
9e10: 6f 72 27 0a 20 20 20 20 20 20 66 69 0a 20 20 20  or'.      fi.   
9e20: 20 66 69 0a 0a 20 20 20 20 24 6f 70 74 5f 64 72   fi..    $opt_dr
9e30: 79 5f 72 75 6e 20 7c 7c 20 7b 0a 20 20 20 20 20  y_run || {.     
9e40: 20 66 75 6e 63 5f 77 72 69 74 65 5f 6c 69 62 74   func_write_libt
9e50: 6f 6f 6c 5f 6f 62 6a 65 63 74 20 22 24 6c 69 62  ool_object "$lib
9e60: 6f 62 6a 22 20 22 24 6f 62 6a 64 69 72 2f 24 6f  obj" "$objdir/$o
9e70: 62 6a 6e 61 6d 65 22 20 22 24 6f 62 6a 6e 61 6d  bjname" "$objnam
9e80: 65 22 0a 0a 20 20 20 20 20 20 23 20 55 6e 6c 6f  e"..      # Unlo
9e90: 63 6b 20 74 68 65 20 63 72 69 74 69 63 61 6c 20  ck the critical 
9ea0: 73 65 63 74 69 6f 6e 20 69 66 20 69 74 20 77 61  section if it wa
9eb0: 73 20 6c 6f 63 6b 65 64 0a 20 20 20 20 20 20 69  s locked.      i
9ec0: 66 20 74 65 73 74 20 22 24 6e 65 65 64 5f 6c 6f  f test "$need_lo
9ed0: 63 6b 73 22 20 21 3d 20 6e 6f 3b 20 74 68 65 6e  cks" != no; then
9ee0: 0a 09 72 65 6d 6f 76 65 6c 69 73 74 3d 24 6c 6f  ..removelist=$lo
9ef0: 63 6b 66 69 6c 65 0a 20 20 20 20 20 20 20 20 24  ckfile.        $
9f00: 52 4d 20 22 24 6c 6f 63 6b 66 69 6c 65 22 0a 20  RM "$lockfile". 
9f10: 20 20 20 20 20 66 69 0a 20 20 20 20 7d 0a 0a 20       fi.    }.. 
9f20: 20 20 20 65 78 69 74 20 24 45 58 49 54 5f 53 55     exit $EXIT_SU
9f30: 43 43 45 53 53 0a 7d 0a 0a 24 6f 70 74 5f 68 65  CCESS.}..$opt_he
9f40: 6c 70 20 7c 7c 20 7b 0a 74 65 73 74 20 22 24 6d  lp || {.test "$m
9f50: 6f 64 65 22 20 3d 20 63 6f 6d 70 69 6c 65 20 26  ode" = compile &
9f60: 26 20 66 75 6e 63 5f 6d 6f 64 65 5f 63 6f 6d 70  & func_mode_comp
9f70: 69 6c 65 20 24 7b 31 2b 22 24 40 22 7d 0a 7d 0a  ile ${1+"$@"}.}.
9f80: 0a 66 75 6e 63 5f 6d 6f 64 65 5f 68 65 6c 70 20  .func_mode_help 
9f90: 28 29 0a 7b 0a 20 20 20 20 23 20 57 65 20 6e 65  ().{.    # We ne
9fa0: 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 68 65  ed to display he
9fb0: 6c 70 20 66 6f 72 20 65 61 63 68 20 6f 66 20 74  lp for each of t
9fc0: 68 65 20 6d 6f 64 65 73 2e 0a 20 20 20 20 63 61  he modes..    ca
9fd0: 73 65 20 24 6d 6f 64 65 20 69 6e 0a 20 20 20 20  se $mode in.    
9fe0: 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 23 20    "").        # 
9ff0: 47 65 6e 65 72 69 63 20 68 65 6c 70 20 69 73 20  Generic help is 
a000: 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d 20 74  extracted from t
a010: 68 65 20 75 73 61 67 65 20 63 6f 6d 6d 65 6e 74  he usage comment
a020: 73 0a 20 20 20 20 20 20 20 20 23 20 61 74 20 74  s.        # at t
a030: 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 69 73  he start of this
a040: 20 66 69 6c 65 2e 0a 20 20 20 20 20 20 20 20 66   file..        f
a050: 75 6e 63 5f 68 65 6c 70 0a 20 20 20 20 20 20 20  unc_help.       
a060: 20 3b 3b 0a 0a 20 20 20 20 20 20 63 6c 65 61 6e   ;;..      clean
a070: 29 0a 20 20 20 20 20 20 20 20 24 45 43 48 4f 20  ).        $ECHO 
a080: 5c 0a 22 55 73 61 67 65 3a 20 24 70 72 6f 67 6e  \."Usage: $progn
a090: 61 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e 2e 2e 20  ame [OPTION]... 
a0a0: 2d 2d 6d 6f 64 65 3d 63 6c 65 61 6e 20 52 4d 20  --mode=clean RM 
a0b0: 5b 52 4d 2d 4f 50 54 49 4f 4e 5d 2e 2e 2e 20 46  [RM-OPTION]... F
a0c0: 49 4c 45 2e 2e 2e 0a 0a 52 65 6d 6f 76 65 20 66  ILE.....Remove f
a0d0: 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 62 75  iles from the bu
a0e0: 69 6c 64 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a  ild directory...
a0f0: 52 4d 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f  RM is the name o
a100: 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 74 6f  f the program to
a110: 20 75 73 65 20 74 6f 20 64 65 6c 65 74 65 20 66   use to delete f
a120: 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 20  iles associated 
a130: 77 69 74 68 20 65 61 63 68 20 46 49 4c 45 0a 28  with each FILE.(
a140: 74 79 70 69 63 61 6c 6c 79 20 5c 60 2f 62 69 6e  typically \`/bin
a150: 2f 72 6d 27 29 2e 20 20 52 4d 2d 4f 50 54 49 4f  /rm').  RM-OPTIO
a160: 4e 53 20 61 72 65 20 6f 70 74 69 6f 6e 73 20 28  NS are options (
a170: 73 75 63 68 20 61 73 20 5c 60 2d 66 27 29 20 74  such as \`-f') t
a180: 6f 20 62 65 20 70 61 73 73 65 64 0a 74 6f 20 52  o be passed.to R
a190: 4d 2e 0a 0a 49 66 20 46 49 4c 45 20 69 73 20 61  M...If FILE is a
a1a0: 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 79   libtool library
a1b0: 2c 20 6f 62 6a 65 63 74 20 6f 72 20 70 72 6f 67  , object or prog
a1c0: 72 61 6d 2c 20 61 6c 6c 20 74 68 65 20 66 69 6c  ram, all the fil
a1d0: 65 73 20 61 73 73 6f 63 69 61 74 65 64 0a 77 69  es associated.wi
a1e0: 74 68 20 69 74 20 61 72 65 20 64 65 6c 65 74 65  th it are delete
a1f0: 64 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 6f 6e  d. Otherwise, on
a200: 6c 79 20 46 49 4c 45 20 69 74 73 65 6c 66 20 69  ly FILE itself i
a210: 73 20 64 65 6c 65 74 65 64 20 75 73 69 6e 67 20  s deleted using 
a220: 52 4d 2e 22 0a 20 20 20 20 20 20 20 20 3b 3b 0a  RM.".        ;;.
a230: 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 29 0a  .      compile).
a240: 20 20 20 20 20 20 24 45 43 48 4f 20 5c 0a 22 55        $ECHO \."U
a250: 73 61 67 65 3a 20 24 70 72 6f 67 6e 61 6d 65 20  sage: $progname 
a260: 5b 4f 50 54 49 4f 4e 5d 2e 2e 2e 20 2d 2d 6d 6f  [OPTION]... --mo
a270: 64 65 3d 63 6f 6d 70 69 6c 65 20 43 4f 4d 50 49  de=compile COMPI
a280: 4c 45 2d 43 4f 4d 4d 41 4e 44 2e 2e 2e 20 53 4f  LE-COMMAND... SO
a290: 55 52 43 45 46 49 4c 45 0a 0a 43 6f 6d 70 69 6c  URCEFILE..Compil
a2a0: 65 20 61 20 73 6f 75 72 63 65 20 66 69 6c 65 20  e a source file 
a2b0: 69 6e 74 6f 20 61 20 6c 69 62 74 6f 6f 6c 20 6c  into a libtool l
a2c0: 69 62 72 61 72 79 20 6f 62 6a 65 63 74 2e 0a 0a  ibrary object...
a2d0: 54 68 69 73 20 6d 6f 64 65 20 61 63 63 65 70 74  This mode accept
a2e0: 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  s the following 
a2f0: 61 64 64 69 74 69 6f 6e 61 6c 20 6f 70 74 69 6f  additional optio
a300: 6e 73 3a 0a 0a 20 20 2d 6f 20 4f 55 54 50 55 54  ns:..  -o OUTPUT
a310: 2d 46 49 4c 45 20 20 20 20 73 65 74 20 74 68 65  -FILE    set the
a320: 20 6f 75 74 70 75 74 20 66 69 6c 65 20 6e 61 6d   output file nam
a330: 65 20 74 6f 20 4f 55 54 50 55 54 2d 46 49 4c 45  e to OUTPUT-FILE
a340: 0a 20 20 2d 6e 6f 2d 73 75 70 70 72 65 73 73 20  .  -no-suppress 
a350: 20 20 20 20 20 64 6f 20 6e 6f 74 20 73 75 70 70       do not supp
a360: 72 65 73 73 20 63 6f 6d 70 69 6c 65 72 20 6f 75  ress compiler ou
a370: 74 70 75 74 20 66 6f 72 20 6d 75 6c 74 69 70 6c  tput for multipl
a380: 65 20 70 61 73 73 65 73 0a 20 20 2d 70 72 65 66  e passes.  -pref
a390: 65 72 2d 70 69 63 20 20 20 20 20 20 20 74 72 79  er-pic       try
a3a0: 20 74 6f 20 62 75 69 6c 64 69 6e 67 20 50 49 43   to building PIC
a3b0: 20 6f 62 6a 65 63 74 73 20 6f 6e 6c 79 0a 20 20   objects only.  
a3c0: 2d 70 72 65 66 65 72 2d 6e 6f 6e 2d 70 69 63 20  -prefer-non-pic 
a3d0: 20 20 74 72 79 20 74 6f 20 62 75 69 6c 64 69 6e    try to buildin
a3e0: 67 20 6e 6f 6e 2d 50 49 43 20 6f 62 6a 65 63 74  g non-PIC object
a3f0: 73 20 6f 6e 6c 79 0a 20 20 2d 73 68 61 72 65 64  s only.  -shared
a400: 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 6e 6f             do no
a410: 74 20 62 75 69 6c 64 20 61 20 5c 60 2e 6f 27 20  t build a \`.o' 
a420: 66 69 6c 65 20 73 75 69 74 61 62 6c 65 20 66 6f  file suitable fo
a430: 72 20 73 74 61 74 69 63 20 6c 69 6e 6b 69 6e 67  r static linking
a440: 0a 20 20 2d 73 74 61 74 69 63 20 20 20 20 20 20  .  -static      
a450: 20 20 20 20 20 6f 6e 6c 79 20 62 75 69 6c 64 20       only build 
a460: 61 20 5c 60 2e 6f 27 20 66 69 6c 65 20 73 75 69  a \`.o' file sui
a470: 74 61 62 6c 65 20 66 6f 72 20 73 74 61 74 69 63  table for static
a480: 20 6c 69 6e 6b 69 6e 67 0a 0a 43 4f 4d 50 49 4c   linking..COMPIL
a490: 45 2d 43 4f 4d 4d 41 4e 44 20 69 73 20 61 20 63  E-COMMAND is a c
a4a0: 6f 6d 6d 61 6e 64 20 74 6f 20 62 65 20 75 73 65  ommand to be use
a4b0: 64 20 69 6e 20 63 72 65 61 74 69 6e 67 20 61 20  d in creating a 
a4c0: 5c 60 73 74 61 6e 64 61 72 64 27 20 6f 62 6a 65  \`standard' obje
a4d0: 63 74 20 66 69 6c 65 0a 66 72 6f 6d 20 74 68 65  ct file.from the
a4e0: 20 67 69 76 65 6e 20 53 4f 55 52 43 45 46 49 4c   given SOURCEFIL
a4f0: 45 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 66  E...The output f
a500: 69 6c 65 20 6e 61 6d 65 20 69 73 20 64 65 74 65  ile name is dete
a510: 72 6d 69 6e 65 64 20 62 79 20 72 65 6d 6f 76 69  rmined by removi
a520: 6e 67 20 74 68 65 20 64 69 72 65 63 74 6f 72 79  ng the directory
a530: 20 63 6f 6d 70 6f 6e 65 6e 74 20 66 72 6f 6d 0a   component from.
a540: 53 4f 55 52 43 45 46 49 4c 45 2c 20 74 68 65 6e  SOURCEFILE, then
a550: 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 74 68   substituting th
a560: 65 20 43 20 73 6f 75 72 63 65 20 63 6f 64 65 20  e C source code 
a570: 73 75 66 66 69 78 20 5c 60 2e 63 27 20 77 69 74  suffix \`.c' wit
a580: 68 20 74 68 65 0a 6c 69 62 72 61 72 79 20 6f 62  h the.library ob
a590: 6a 65 63 74 20 73 75 66 66 69 78 2c 20 5c 60 2e  ject suffix, \`.
a5a0: 6c 6f 27 2e 22 0a 20 20 20 20 20 20 20 20 3b 3b  lo'.".        ;;
a5b0: 0a 0a 20 20 20 20 20 20 65 78 65 63 75 74 65 29  ..      execute)
a5c0: 0a 20 20 20 20 20 20 20 20 24 45 43 48 4f 20 5c  .        $ECHO \
a5d0: 0a 22 55 73 61 67 65 3a 20 24 70 72 6f 67 6e 61  ."Usage: $progna
a5e0: 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e 2e 2e 20 2d  me [OPTION]... -
a5f0: 2d 6d 6f 64 65 3d 65 78 65 63 75 74 65 20 43 4f  -mode=execute CO
a600: 4d 4d 41 4e 44 20 5b 41 52 47 53 5d 2e 2e 2e 0a  MMAND [ARGS]....
a610: 0a 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73  .Automatically s
a620: 65 74 20 6c 69 62 72 61 72 79 20 70 61 74 68 2c  et library path,
a630: 20 74 68 65 6e 20 72 75 6e 20 61 20 70 72 6f 67   then run a prog
a640: 72 61 6d 2e 0a 0a 54 68 69 73 20 6d 6f 64 65 20  ram...This mode 
a650: 61 63 63 65 70 74 73 20 74 68 65 20 66 6f 6c 6c  accepts the foll
a660: 6f 77 69 6e 67 20 61 64 64 69 74 69 6f 6e 61 6c  owing additional
a670: 20 6f 70 74 69 6f 6e 73 3a 0a 0a 20 20 2d 64 6c   options:..  -dl
a680: 6f 70 65 6e 20 46 49 4c 45 20 20 20 20 20 20 61  open FILE      a
a690: 64 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 79  dd the directory
a6a0: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 46 49 4c 45   containing FILE
a6b0: 20 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 20   to the library 
a6c0: 70 61 74 68 0a 0a 54 68 69 73 20 6d 6f 64 65 20  path..This mode 
a6d0: 73 65 74 73 20 74 68 65 20 6c 69 62 72 61 72 79  sets the library
a6e0: 20 70 61 74 68 20 65 6e 76 69 72 6f 6e 6d 65 6e   path environmen
a6f0: 74 20 76 61 72 69 61 62 6c 65 20 61 63 63 6f 72  t variable accor
a700: 64 69 6e 67 20 74 6f 20 5c 60 2d 64 6c 6f 70 65  ding to \`-dlope
a710: 6e 27 0a 66 6c 61 67 73 2e 0a 0a 49 66 20 61 6e  n'.flags...If an
a720: 79 20 6f 66 20 74 68 65 20 41 52 47 53 20 61 72  y of the ARGS ar
a730: 65 20 6c 69 62 74 6f 6f 6c 20 65 78 65 63 75 74  e libtool execut
a740: 61 62 6c 65 20 77 72 61 70 70 65 72 73 2c 20 74  able wrappers, t
a750: 68 65 6e 20 74 68 65 79 20 61 72 65 20 74 72 61  hen they are tra
a760: 6e 73 6c 61 74 65 64 0a 69 6e 74 6f 20 74 68 65  nslated.into the
a770: 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  ir corresponding
a780: 20 75 6e 69 6e 73 74 61 6c 6c 65 64 20 62 69 6e   uninstalled bin
a790: 61 72 79 2c 20 61 6e 64 20 61 6e 79 20 6f 66 20  ary, and any of 
a7a0: 74 68 65 69 72 20 72 65 71 75 69 72 65 64 20 6c  their required l
a7b0: 69 62 72 61 72 79 0a 64 69 72 65 63 74 6f 72 69  ibrary.directori
a7c0: 65 73 20 61 72 65 20 61 64 64 65 64 20 74 6f 20  es are added to 
a7d0: 74 68 65 20 6c 69 62 72 61 72 79 20 70 61 74 68  the library path
a7e0: 2e 0a 0a 54 68 65 6e 2c 20 43 4f 4d 4d 41 4e 44  ...Then, COMMAND
a7f0: 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 77 69   is executed, wi
a800: 74 68 20 41 52 47 53 20 61 73 20 61 72 67 75 6d  th ARGS as argum
a810: 65 6e 74 73 2e 22 0a 20 20 20 20 20 20 20 20 3b  ents.".        ;
a820: 3b 0a 0a 20 20 20 20 20 20 66 69 6e 69 73 68 29  ;..      finish)
a830: 0a 20 20 20 20 20 20 20 20 24 45 43 48 4f 20 5c  .        $ECHO \
a840: 0a 22 55 73 61 67 65 3a 20 24 70 72 6f 67 6e 61  ."Usage: $progna
a850: 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e 2e 2e 20 2d  me [OPTION]... -
a860: 2d 6d 6f 64 65 3d 66 69 6e 69 73 68 20 5b 4c 49  -mode=finish [LI
a870: 42 44 49 52 5d 2e 2e 2e 0a 0a 43 6f 6d 70 6c 65  BDIR].....Comple
a880: 74 65 20 74 68 65 20 69 6e 73 74 61 6c 6c 61 74  te the installat
a890: 69 6f 6e 20 6f 66 20 6c 69 62 74 6f 6f 6c 20 6c  ion of libtool l
a8a0: 69 62 72 61 72 69 65 73 2e 0a 0a 45 61 63 68 20  ibraries...Each 
a8b0: 4c 49 42 44 49 52 20 69 73 20 61 20 64 69 72 65  LIBDIR is a dire
a8c0: 63 74 6f 72 79 20 74 68 61 74 20 63 6f 6e 74 61  ctory that conta
a8d0: 69 6e 73 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72  ins libtool libr
a8e0: 61 72 69 65 73 2e 0a 0a 54 68 65 20 63 6f 6d 6d  aries...The comm
a8f0: 61 6e 64 73 20 74 68 61 74 20 74 68 69 73 20 6d  ands that this m
a900: 6f 64 65 20 65 78 65 63 75 74 65 73 20 6d 61 79  ode executes may
a910: 20 72 65 71 75 69 72 65 20 73 75 70 65 72 75 73   require superus
a920: 65 72 20 70 72 69 76 69 6c 65 67 65 73 2e 20 20  er privileges.  
a930: 55 73 65 0a 74 68 65 20 5c 60 2d 2d 64 72 79 2d  Use.the \`--dry-
a940: 72 75 6e 27 20 6f 70 74 69 6f 6e 20 69 66 20 79  run' option if y
a950: 6f 75 20 6a 75 73 74 20 77 61 6e 74 20 74 6f 20  ou just want to 
a960: 73 65 65 20 77 68 61 74 20 77 6f 75 6c 64 20 62  see what would b
a970: 65 20 65 78 65 63 75 74 65 64 2e 22 0a 20 20 20  e executed.".   
a980: 20 20 20 20 20 3b 3b 0a 0a 20 20 20 20 20 20 69       ;;..      i
a990: 6e 73 74 61 6c 6c 29 0a 20 20 20 20 20 20 20 20  nstall).        
a9a0: 24 45 43 48 4f 20 5c 0a 22 55 73 61 67 65 3a 20  $ECHO \."Usage: 
a9b0: 24 70 72 6f 67 6e 61 6d 65 20 5b 4f 50 54 49 4f  $progname [OPTIO
a9c0: 4e 5d 2e 2e 2e 20 2d 2d 6d 6f 64 65 3d 69 6e 73  N]... --mode=ins
a9d0: 74 61 6c 6c 20 49 4e 53 54 41 4c 4c 2d 43 4f 4d  tall INSTALL-COM
a9e0: 4d 41 4e 44 2e 2e 2e 0a 0a 49 6e 73 74 61 6c 6c  MAND.....Install
a9f0: 20 65 78 65 63 75 74 61 62 6c 65 73 20 6f 72 20   executables or 
aa00: 6c 69 62 72 61 72 69 65 73 2e 0a 0a 49 4e 53 54  libraries...INST
aa10: 41 4c 4c 2d 43 4f 4d 4d 41 4e 44 20 69 73 20 74  ALL-COMMAND is t
aa20: 68 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20  he installation 
aa30: 63 6f 6d 6d 61 6e 64 2e 20 20 54 68 65 20 66 69  command.  The fi
aa40: 72 73 74 20 63 6f 6d 70 6f 6e 65 6e 74 20 73 68  rst component sh
aa50: 6f 75 6c 64 20 62 65 0a 65 69 74 68 65 72 20 74  ould be.either t
aa60: 68 65 20 5c 60 69 6e 73 74 61 6c 6c 27 20 6f 72  he \`install' or
aa70: 20 5c 60 63 70 27 20 70 72 6f 67 72 61 6d 2e 0a   \`cp' program..
aa80: 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63  .The following c
aa90: 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 20 49 4e 53  omponents of INS
aaa0: 54 41 4c 4c 2d 43 4f 4d 4d 41 4e 44 20 61 72 65  TALL-COMMAND are
aab0: 20 74 72 65 61 74 65 64 20 73 70 65 63 69 61 6c   treated special
aac0: 6c 79 3a 0a 0a 20 20 2d 69 6e 73 74 2d 70 72 65  ly:..  -inst-pre
aad0: 66 69 78 20 50 52 45 46 49 58 2d 44 49 52 20 20  fix PREFIX-DIR  
aae0: 55 73 65 20 50 52 45 46 49 58 2d 44 49 52 20 61  Use PREFIX-DIR a
aaf0: 73 20 61 20 73 74 61 67 69 6e 67 20 61 72 65 61  s a staging area
ab00: 20 66 6f 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f   for installatio
ab10: 6e 0a 0a 54 68 65 20 72 65 73 74 20 6f 66 20 74  n..The rest of t
ab20: 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 61 72  he components ar
ab30: 65 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73  e interpreted as
ab40: 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 74 68   arguments to th
ab50: 61 74 20 63 6f 6d 6d 61 6e 64 20 28 6f 6e 6c 79  at command (only
ab60: 0a 42 53 44 2d 63 6f 6d 70 61 74 69 62 6c 65 20  .BSD-compatible 
ab70: 69 6e 73 74 61 6c 6c 20 6f 70 74 69 6f 6e 73 20  install options 
ab80: 61 72 65 20 72 65 63 6f 67 6e 69 7a 65 64 29 2e  are recognized).
ab90: 22 0a 20 20 20 20 20 20 20 20 3b 3b 0a 0a 20 20  ".        ;;..  
aba0: 20 20 20 20 6c 69 6e 6b 29 0a 20 20 20 20 20 20      link).      
abb0: 20 20 24 45 43 48 4f 20 5c 0a 22 55 73 61 67 65    $ECHO \."Usage
abc0: 3a 20 24 70 72 6f 67 6e 61 6d 65 20 5b 4f 50 54  : $progname [OPT
abd0: 49 4f 4e 5d 2e 2e 2e 20 2d 2d 6d 6f 64 65 3d 6c  ION]... --mode=l
abe0: 69 6e 6b 20 4c 49 4e 4b 2d 43 4f 4d 4d 41 4e 44  ink LINK-COMMAND
abf0: 2e 2e 2e 0a 0a 4c 69 6e 6b 20 6f 62 6a 65 63 74  .....Link object
ac00: 20 66 69 6c 65 73 20 6f 72 20 6c 69 62 72 61 72   files or librar
ac10: 69 65 73 20 74 6f 67 65 74 68 65 72 20 74 6f 20  ies together to 
ac20: 66 6f 72 6d 20 61 6e 6f 74 68 65 72 20 6c 69 62  form another lib
ac30: 72 61 72 79 2c 20 6f 72 20 74 6f 0a 63 72 65 61  rary, or to.crea
ac40: 74 65 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65  te an executable
ac50: 20 70 72 6f 67 72 61 6d 2e 0a 0a 4c 49 4e 4b 2d   program...LINK-
ac60: 43 4f 4d 4d 41 4e 44 20 69 73 20 61 20 63 6f 6d  COMMAND is a com
ac70: 6d 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 43  mand using the C
ac80: 20 63 6f 6d 70 69 6c 65 72 20 74 68 61 74 20 79   compiler that y
ac90: 6f 75 20 77 6f 75 6c 64 20 75 73 65 20 74 6f 20  ou would use to 
aca0: 63 72 65 61 74 65 0a 61 20 70 72 6f 67 72 61 6d  create.a program
acb0: 20 66 72 6f 6d 20 73 65 76 65 72 61 6c 20 6f 62   from several ob
acc0: 6a 65 63 74 20 66 69 6c 65 73 2e 0a 0a 54 68 65  ject files...The
acd0: 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 70 6f   following compo
ace0: 6e 65 6e 74 73 20 6f 66 20 4c 49 4e 4b 2d 43 4f  nents of LINK-CO
acf0: 4d 4d 41 4e 44 20 61 72 65 20 74 72 65 61 74 65  MMAND are treate
ad00: 64 20 73 70 65 63 69 61 6c 6c 79 3a 0a 0a 20 20  d specially:..  
ad10: 2d 61 6c 6c 2d 73 74 61 74 69 63 20 20 20 20 20  -all-static     
ad20: 20 20 64 6f 20 6e 6f 74 20 64 6f 20 61 6e 79 20    do not do any 
ad30: 64 79 6e 61 6d 69 63 20 6c 69 6e 6b 69 6e 67 20  dynamic linking 
ad40: 61 74 20 61 6c 6c 0a 20 20 2d 61 76 6f 69 64 2d  at all.  -avoid-
ad50: 76 65 72 73 69 6f 6e 20 20 20 20 64 6f 20 6e 6f  version    do no
ad60: 74 20 61 64 64 20 61 20 76 65 72 73 69 6f 6e 20  t add a version 
ad70: 73 75 66 66 69 78 20 69 66 20 70 6f 73 73 69 62  suffix if possib
ad80: 6c 65 0a 20 20 2d 64 6c 6f 70 65 6e 20 46 49 4c  le.  -dlopen FIL
ad90: 45 20 20 20 20 20 20 5c 60 2d 64 6c 70 72 65 6f  E      \`-dlpreo
ada0: 70 65 6e 27 20 46 49 4c 45 20 69 66 20 69 74 20  pen' FILE if it 
adb0: 63 61 6e 6e 6f 74 20 62 65 20 64 6c 6f 70 65 6e  cannot be dlopen
adc0: 65 64 20 61 74 20 72 75 6e 74 69 6d 65 0a 20 20  ed at runtime.  
add0: 2d 64 6c 70 72 65 6f 70 65 6e 20 46 49 4c 45 20  -dlpreopen FILE 
ade0: 20 20 6c 69 6e 6b 20 69 6e 20 46 49 4c 45 20 61    link in FILE a
adf0: 6e 64 20 61 64 64 20 69 74 73 20 73 79 6d 62 6f  nd add its symbo
ae00: 6c 73 20 74 6f 20 6c 74 5f 70 72 65 6c 6f 61 64  ls to lt_preload
ae10: 65 64 5f 73 79 6d 62 6f 6c 73 0a 20 20 2d 65 78  ed_symbols.  -ex
ae20: 70 6f 72 74 2d 64 79 6e 61 6d 69 63 20 20 20 61  port-dynamic   a
ae30: 6c 6c 6f 77 20 73 79 6d 62 6f 6c 73 20 66 72 6f  llow symbols fro
ae40: 6d 20 4f 55 54 50 55 54 2d 46 49 4c 45 20 74 6f  m OUTPUT-FILE to
ae50: 20 62 65 20 72 65 73 6f 6c 76 65 64 20 77 69 74   be resolved wit
ae60: 68 20 64 6c 73 79 6d 28 33 29 0a 20 20 2d 65 78  h dlsym(3).  -ex
ae70: 70 6f 72 74 2d 73 79 6d 62 6f 6c 73 20 53 59 4d  port-symbols SYM
ae80: 46 49 4c 45 0a 20 20 20 20 20 20 20 20 20 20 20  FILE.           
ae90: 20 20 20 20 20 20 20 20 20 74 72 79 20 74 6f 20           try to 
aea0: 65 78 70 6f 72 74 20 6f 6e 6c 79 20 74 68 65 20  export only the 
aeb0: 73 79 6d 62 6f 6c 73 20 6c 69 73 74 65 64 20 69  symbols listed i
aec0: 6e 20 53 59 4d 46 49 4c 45 0a 20 20 2d 65 78 70  n SYMFILE.  -exp
aed0: 6f 72 74 2d 73 79 6d 62 6f 6c 73 2d 72 65 67 65  ort-symbols-rege
aee0: 78 20 52 45 47 45 58 0a 20 20 20 20 20 20 20 20  x REGEX.        
aef0: 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 20              try 
af00: 74 6f 20 65 78 70 6f 72 74 20 6f 6e 6c 79 20 74  to export only t
af10: 68 65 20 73 79 6d 62 6f 6c 73 20 6d 61 74 63 68  he symbols match
af20: 69 6e 67 20 52 45 47 45 58 0a 20 20 2d 4c 4c 49  ing REGEX.  -LLI
af30: 42 44 49 52 20 20 20 20 20 20 20 20 20 20 73 65  BDIR          se
af40: 61 72 63 68 20 4c 49 42 44 49 52 20 66 6f 72 20  arch LIBDIR for 
af50: 72 65 71 75 69 72 65 64 20 69 6e 73 74 61 6c 6c  required install
af60: 65 64 20 6c 69 62 72 61 72 69 65 73 0a 20 20 2d  ed libraries.  -
af70: 6c 4e 41 4d 45 20 20 20 20 20 20 20 20 20 20 20  lNAME           
af80: 20 4f 55 54 50 55 54 2d 46 49 4c 45 20 72 65 71   OUTPUT-FILE req
af90: 75 69 72 65 73 20 74 68 65 20 69 6e 73 74 61 6c  uires the instal
afa0: 6c 65 64 20 6c 69 62 72 61 72 79 20 6c 69 62 4e  led library libN
afb0: 41 4d 45 0a 20 20 2d 6d 6f 64 75 6c 65 20 20 20  AME.  -module   
afc0: 20 20 20 20 20 20 20 20 62 75 69 6c 64 20 61 20          build a 
afd0: 6c 69 62 72 61 72 79 20 74 68 61 74 20 63 61 6e  library that can
afe0: 20 64 6c 6f 70 65 6e 65 64 0a 20 20 2d 6e 6f 2d   dlopened.  -no-
aff0: 66 61 73 74 2d 69 6e 73 74 61 6c 6c 20 20 64 69  fast-install  di
b000: 73 61 62 6c 65 20 74 68 65 20 66 61 73 74 2d 69  sable the fast-i
b010: 6e 73 74 61 6c 6c 20 6d 6f 64 65 0a 20 20 2d 6e  nstall mode.  -n
b020: 6f 2d 69 6e 73 74 61 6c 6c 20 20 20 20 20 20 20  o-install       
b030: 6c 69 6e 6b 20 61 20 6e 6f 74 2d 69 6e 73 74 61  link a not-insta
b040: 6c 6c 61 62 6c 65 20 65 78 65 63 75 74 61 62 6c  llable executabl
b050: 65 0a 20 20 2d 6e 6f 2d 75 6e 64 65 66 69 6e 65  e.  -no-undefine
b060: 64 20 20 20 20 20 64 65 63 6c 61 72 65 20 74 68  d     declare th
b070: 61 74 20 61 20 6c 69 62 72 61 72 79 20 64 6f 65  at a library doe
b080: 73 20 6e 6f 74 20 72 65 66 65 72 20 74 6f 20 65  s not refer to e
b090: 78 74 65 72 6e 61 6c 20 73 79 6d 62 6f 6c 73 0a  xternal symbols.
b0a0: 20 20 2d 6f 20 4f 55 54 50 55 54 2d 46 49 4c 45    -o OUTPUT-FILE
b0b0: 20 20 20 20 63 72 65 61 74 65 20 4f 55 54 50 55      create OUTPU
b0c0: 54 2d 46 49 4c 45 20 66 72 6f 6d 20 74 68 65 20  T-FILE from the 
b0d0: 73 70 65 63 69 66 69 65 64 20 6f 62 6a 65 63 74  specified object
b0e0: 73 0a 20 20 2d 6f 62 6a 65 63 74 6c 69 73 74 20  s.  -objectlist 
b0f0: 46 49 4c 45 20 20 55 73 65 20 61 20 6c 69 73 74  FILE  Use a list
b100: 20 6f 66 20 6f 62 6a 65 63 74 20 66 69 6c 65 73   of object files
b110: 20 66 6f 75 6e 64 20 69 6e 20 46 49 4c 45 20 74   found in FILE t
b120: 6f 20 73 70 65 63 69 66 79 20 6f 62 6a 65 63 74  o specify object
b130: 73 0a 20 20 2d 70 72 65 63 69 6f 75 73 2d 66 69  s.  -precious-fi
b140: 6c 65 73 2d 72 65 67 65 78 20 52 45 47 45 58 0a  les-regex REGEX.
b150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
b160: 20 20 20 20 64 6f 6e 27 74 20 72 65 6d 6f 76 65      don't remove
b170: 20 6f 75 74 70 75 74 20 66 69 6c 65 73 20 6d 61   output files ma
b180: 74 63 68 69 6e 67 20 52 45 47 45 58 0a 20 20 2d  tching REGEX.  -
b190: 72 65 6c 65 61 73 65 20 52 45 4c 45 41 53 45 20  release RELEASE 
b1a0: 20 73 70 65 63 69 66 79 20 70 61 63 6b 61 67 65   specify package
b1b0: 20 72 65 6c 65 61 73 65 20 69 6e 66 6f 72 6d 61   release informa
b1c0: 74 69 6f 6e 0a 20 20 2d 72 70 61 74 68 20 4c 49  tion.  -rpath LI
b1d0: 42 44 49 52 20 20 20 20 20 74 68 65 20 63 72 65  BDIR     the cre
b1e0: 61 74 65 64 20 6c 69 62 72 61 72 79 20 77 69 6c  ated library wil
b1f0: 6c 20 65 76 65 6e 74 75 61 6c 6c 79 20 62 65 20  l eventually be 
b200: 69 6e 73 74 61 6c 6c 65 64 20 69 6e 20 4c 49 42  installed in LIB
b210: 44 49 52 0a 20 20 2d 52 5b 20 5d 4c 49 42 44 49  DIR.  -R[ ]LIBDI
b220: 52 20 20 20 20 20 20 20 61 64 64 20 4c 49 42 44  R       add LIBD
b230: 49 52 20 74 6f 20 74 68 65 20 72 75 6e 74 69 6d  IR to the runtim
b240: 65 20 70 61 74 68 20 6f 66 20 70 72 6f 67 72 61  e path of progra
b250: 6d 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73  ms and libraries
b260: 0a 20 20 2d 73 68 61 72 65 64 20 20 20 20 20 20  .  -shared      
b270: 20 20 20 20 20 6f 6e 6c 79 20 64 6f 20 64 79 6e       only do dyn
b280: 61 6d 69 63 20 6c 69 6e 6b 69 6e 67 20 6f 66 20  amic linking of 
b290: 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 69 65  libtool librarie
b2a0: 73 0a 20 20 2d 73 68 72 65 78 74 20 53 55 46 46  s.  -shrext SUFF
b2b0: 49 58 20 20 20 20 6f 76 65 72 72 69 64 65 20 74  IX    override t
b2c0: 68 65 20 73 74 61 6e 64 61 72 64 20 73 68 61 72  he standard shar
b2d0: 65 64 20 6c 69 62 72 61 72 79 20 66 69 6c 65 20  ed library file 
b2e0: 65 78 74 65 6e 73 69 6f 6e 0a 20 20 2d 73 74 61  extension.  -sta
b2f0: 74 69 63 20 20 20 20 20 20 20 20 20 20 20 64 6f  tic           do
b300: 20 6e 6f 74 20 64 6f 20 61 6e 79 20 64 79 6e 61   not do any dyna
b310: 6d 69 63 20 6c 69 6e 6b 69 6e 67 20 6f 66 20 75  mic linking of u
b320: 6e 69 6e 73 74 61 6c 6c 65 64 20 6c 69 62 74 6f  ninstalled libto
b330: 6f 6c 20 6c 69 62 72 61 72 69 65 73 0a 20 20 2d  ol libraries.  -
b340: 73 74 61 74 69 63 2d 6c 69 62 74 6f 6f 6c 2d 6c  static-libtool-l
b350: 69 62 73 0a 20 20 20 20 20 20 20 20 20 20 20 20  ibs.            
b360: 20 20 20 20 20 20 20 20 64 6f 20 6e 6f 74 20 64          do not d
b370: 6f 20 61 6e 79 20 64 79 6e 61 6d 69 63 20 6c 69  o any dynamic li
b380: 6e 6b 69 6e 67 20 6f 66 20 6c 69 62 74 6f 6f 6c  nking of libtool
b390: 20 6c 69 62 72 61 72 69 65 73 0a 20 20 2d 76 65   libraries.  -ve
b3a0: 72 73 69 6f 6e 2d 69 6e 66 6f 20 43 55 52 52 45  rsion-info CURRE
b3b0: 4e 54 5b 3a 52 45 56 49 53 49 4f 4e 5b 3a 41 47  NT[:REVISION[:AG
b3c0: 45 5d 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20  E]].            
b3d0: 20 20 20 20 20 20 20 20 73 70 65 63 69 66 79 20          specify 
b3e0: 6c 69 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20  library version 
b3f0: 69 6e 66 6f 20 5b 65 61 63 68 20 76 61 72 69 61  info [each varia
b400: 62 6c 65 20 64 65 66 61 75 6c 74 73 20 74 6f 20  ble defaults to 
b410: 30 5d 0a 20 20 2d 77 65 61 6b 20 4c 49 42 4e 41  0].  -weak LIBNA
b420: 4d 45 20 20 20 20 20 64 65 63 6c 61 72 65 20 74  ME     declare t
b430: 68 61 74 20 74 68 65 20 74 61 72 67 65 74 20 70  hat the target p
b440: 72 6f 76 69 64 65 73 20 74 68 65 20 4c 49 42 4e  rovides the LIBN
b450: 41 4d 45 20 69 6e 74 65 72 66 61 63 65 0a 0a 41  AME interface..A
b460: 6c 6c 20 6f 74 68 65 72 20 6f 70 74 69 6f 6e 73  ll other options
b470: 20 28 61 72 67 75 6d 65 6e 74 73 20 62 65 67 69   (arguments begi
b480: 6e 6e 69 6e 67 20 77 69 74 68 20 5c 60 2d 27 29  nning with \`-')
b490: 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a 0a 45   are ignored...E
b4a0: 76 65 72 79 20 6f 74 68 65 72 20 61 72 67 75 6d  very other argum
b4b0: 65 6e 74 20 69 73 20 74 72 65 61 74 65 64 20 61  ent is treated a
b4c0: 73 20 61 20 66 69 6c 65 6e 61 6d 65 2e 20 20 46  s a filename.  F
b4d0: 69 6c 65 73 20 65 6e 64 69 6e 67 20 69 6e 20 5c  iles ending in \
b4e0: 60 2e 6c 61 27 20 61 72 65 0a 74 72 65 61 74 65  `.la' are.treate
b4f0: 64 20 61 73 20 75 6e 69 6e 73 74 61 6c 6c 65 64  d as uninstalled
b500: 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 69   libtool librari
b510: 65 73 2c 20 6f 74 68 65 72 20 66 69 6c 65 73 20  es, other files 
b520: 61 72 65 20 73 74 61 6e 64 61 72 64 20 6f 72 20  are standard or 
b530: 6c 69 62 72 61 72 79 0a 6f 62 6a 65 63 74 20 66  library.object f
b540: 69 6c 65 73 2e 0a 0a 49 66 20 74 68 65 20 4f 55  iles...If the OU
b550: 54 50 55 54 2d 46 49 4c 45 20 65 6e 64 73 20 69  TPUT-FILE ends i
b560: 6e 20 5c 60 2e 6c 61 27 2c 20 74 68 65 6e 20 61  n \`.la', then a
b570: 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 79   libtool library
b580: 20 69 73 20 63 72 65 61 74 65 64 2c 0a 6f 6e 6c   is created,.onl
b590: 79 20 6c 69 62 72 61 72 79 20 6f 62 6a 65 63 74  y library object
b5a0: 73 20 28 5c 60 2e 6c 6f 27 20 66 69 6c 65 73 29  s (\`.lo' files)
b5b0: 20 6d 61 79 20 62 65 20 73 70 65 63 69 66 69 65   may be specifie
b5c0: 64 2c 20 61 6e 64 20 5c 60 2d 72 70 61 74 68 27  d, and \`-rpath'
b5d0: 20 69 73 0a 72 65 71 75 69 72 65 64 2c 20 65 78   is.required, ex
b5e0: 63 65 70 74 20 77 68 65 6e 20 63 72 65 61 74 69  cept when creati
b5f0: 6e 67 20 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65  ng a convenience
b600: 20 6c 69 62 72 61 72 79 2e 0a 0a 49 66 20 4f 55   library...If OU
b610: 54 50 55 54 2d 46 49 4c 45 20 65 6e 64 73 20 69  TPUT-FILE ends i
b620: 6e 20 5c 60 2e 61 27 20 6f 72 20 5c 60 2e 6c 69  n \`.a' or \`.li
b630: 62 27 2c 20 74 68 65 6e 20 61 20 73 74 61 6e 64  b', then a stand
b640: 61 72 64 20 6c 69 62 72 61 72 79 20 69 73 20 63  ard library is c
b650: 72 65 61 74 65 64 0a 75 73 69 6e 67 20 5c 60 61  reated.using \`a
b660: 72 27 20 61 6e 64 20 5c 60 72 61 6e 6c 69 62 27  r' and \`ranlib'
b670: 2c 20 6f 72 20 6f 6e 20 57 69 6e 64 6f 77 73 20  , or on Windows 
b680: 75 73 69 6e 67 20 5c 60 6c 69 62 27 2e 0a 0a 49  using \`lib'...I
b690: 66 20 4f 55 54 50 55 54 2d 46 49 4c 45 20 65 6e  f OUTPUT-FILE en
b6a0: 64 73 20 69 6e 20 5c 60 2e 6c 6f 27 20 6f 72 20  ds in \`.lo' or 
b6b0: 5c 60 2e 24 7b 6f 62 6a 65 78 74 7d 27 2c 20 74  \`.${objext}', t
b6c0: 68 65 6e 20 61 20 72 65 6c 6f 61 64 61 62 6c 65  hen a reloadable
b6d0: 20 6f 62 6a 65 63 74 20 66 69 6c 65 0a 69 73 20   object file.is 
b6e0: 63 72 65 61 74 65 64 2c 20 6f 74 68 65 72 77 69  created, otherwi
b6f0: 73 65 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65  se an executable
b700: 20 70 72 6f 67 72 61 6d 20 69 73 20 63 72 65 61   program is crea
b710: 74 65 64 2e 22 0a 20 20 20 20 20 20 20 20 3b 3b  ted.".        ;;
b720: 0a 0a 20 20 20 20 20 20 75 6e 69 6e 73 74 61 6c  ..      uninstal
b730: 6c 29 0a 20 20 20 20 20 20 20 20 24 45 43 48 4f  l).        $ECHO
b740: 20 5c 0a 22 55 73 61 67 65 3a 20 24 70 72 6f 67   \."Usage: $prog
b750: 6e 61 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e 2e 2e  name [OPTION]...
b760: 20 2d 2d 6d 6f 64 65 3d 75 6e 69 6e 73 74 61 6c   --mode=uninstal
b770: 6c 20 52 4d 20 5b 52 4d 2d 4f 50 54 49 4f 4e 5d  l RM [RM-OPTION]
b780: 2e 2e 2e 20 46 49 4c 45 2e 2e 2e 0a 0a 52 65 6d  ... FILE.....Rem
b790: 6f 76 65 20 6c 69 62 72 61 72 69 65 73 20 66 72  ove libraries fr
b7a0: 6f 6d 20 61 6e 20 69 6e 73 74 61 6c 6c 61 74 69  om an installati
b7b0: 6f 6e 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 52  on directory...R
b7c0: 4d 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66  M is the name of
b7d0: 20 74 68 65 20 70 72 6f 67 72 61 6d 20 74 6f 20   the program to 
b7e0: 75 73 65 20 74 6f 20 64 65 6c 65 74 65 20 66 69  use to delete fi
b7f0: 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77  les associated w
b800: 69 74 68 20 65 61 63 68 20 46 49 4c 45 0a 28 74  ith each FILE.(t
b810: 79 70 69 63 61 6c 6c 79 20 5c 60 2f 62 69 6e 2f  ypically \`/bin/
b820: 72 6d 27 29 2e 20 20 52 4d 2d 4f 50 54 49 4f 4e  rm').  RM-OPTION
b830: 53 20 61 72 65 20 6f 70 74 69 6f 6e 73 20 28 73  S are options (s
b840: 75 63 68 20 61 73 20 5c 60 2d 66 27 29 20 74 6f  uch as \`-f') to
b850: 20 62 65 20 70 61 73 73 65 64 0a 74 6f 20 52 4d   be passed.to RM
b860: 2e 0a 0a 49 66 20 46 49 4c 45 20 69 73 20 61 20  ...If FILE is a 
b870: 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 79 2c  libtool library,
b880: 20 61 6c 6c 20 74 68 65 20 66 69 6c 65 73 20 61   all the files a
b890: 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 69  ssociated with i
b8a0: 74 20 61 72 65 20 64 65 6c 65 74 65 64 2e 0a 4f  t are deleted..O
b8b0: 74 68 65 72 77 69 73 65 2c 20 6f 6e 6c 79 20 46  therwise, only F
b8c0: 49 4c 45 20 69 74 73 65 6c 66 20 69 73 20 64 65  ILE itself is de
b8d0: 6c 65 74 65 64 20 75 73 69 6e 67 20 52 4d 2e 22  leted using RM."
b8e0: 0a 20 20 20 20 20 20 20 20 3b 3b 0a 0a 20 20 20  .        ;;..   
b8f0: 20 20 20 2a 29 0a 20 20 20 20 20 20 20 20 66 75     *).        fu
b900: 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22 69  nc_fatal_help "i
b910: 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 69 6f 6e  nvalid operation
b920: 20 6d 6f 64 65 20 5c 60 24 6d 6f 64 65 27 22 0a   mode \`$mode'".
b930: 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 65          ;;.    e
b940: 73 61 63 0a 0a 20 20 20 20 24 45 43 48 4f 0a 20  sac..    $ECHO. 
b950: 20 20 20 24 45 43 48 4f 20 22 54 72 79 20 5c 60     $ECHO "Try \`
b960: 24 70 72 6f 67 6e 61 6d 65 20 2d 2d 68 65 6c 70  $progname --help
b970: 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72  ' for more infor
b980: 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 6f 74 68  mation about oth
b990: 65 72 20 6d 6f 64 65 73 2e 22 0a 0a 20 20 20 20  er modes."..    
b9a0: 65 78 69 74 20 24 3f 0a 7d 0a 0a 20 20 23 20 4e  exit $?.}..  # N
b9b0: 6f 77 20 74 68 61 74 20 77 65 27 76 65 20 63 6f  ow that we've co
b9c0: 6c 6c 65 63 74 65 64 20 61 20 70 6f 73 73 69 62  llected a possib
b9d0: 6c 65 20 2d 2d 6d 6f 64 65 20 61 72 67 2c 20 73  le --mode arg, s
b9e0: 68 6f 77 20 68 65 6c 70 20 69 66 20 6e 65 63 65  how help if nece
b9f0: 73 73 61 72 79 0a 20 20 24 6f 70 74 5f 68 65 6c  ssary.  $opt_hel
ba00: 70 20 26 26 20 66 75 6e 63 5f 6d 6f 64 65 5f 68  p && func_mode_h
ba10: 65 6c 70 0a 0a 0a 23 20 66 75 6e 63 5f 6d 6f 64  elp...# func_mod
ba20: 65 5f 65 78 65 63 75 74 65 20 61 72 67 2e 2e 2e  e_execute arg...
ba30: 0a 66 75 6e 63 5f 6d 6f 64 65 5f 65 78 65 63 75  .func_mode_execu
ba40: 74 65 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  te ().{.    $opt
ba50: 5f 64 65 62 75 67 0a 20 20 20 20 23 20 54 68 65  _debug.    # The
ba60: 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20   first argument 
ba70: 69 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6e  is the command n
ba80: 61 6d 65 2e 0a 20 20 20 20 63 6d 64 3d 22 24 6e  ame..    cmd="$n
ba90: 6f 6e 6f 70 74 22 0a 20 20 20 20 74 65 73 74 20  onopt".    test 
baa0: 2d 7a 20 22 24 63 6d 64 22 20 26 26 20 5c 0a 20  -z "$cmd" && \. 
bab0: 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f       func_fatal_
bac0: 68 65 6c 70 20 22 79 6f 75 20 6d 75 73 74 20 73  help "you must s
bad0: 70 65 63 69 66 79 20 61 20 43 4f 4d 4d 41 4e 44  pecify a COMMAND
bae0: 22 0a 0a 20 20 20 20 23 20 48 61 6e 64 6c 65 20  "..    # Handle 
baf0: 2d 64 6c 6f 70 65 6e 20 66 6c 61 67 73 20 69 6d  -dlopen flags im
bb00: 6d 65 64 69 61 74 65 6c 79 2e 0a 20 20 20 20 66  mediately..    f
bb10: 6f 72 20 66 69 6c 65 20 69 6e 20 24 65 78 65 63  or file in $exec
bb20: 75 74 65 5f 64 6c 66 69 6c 65 73 3b 20 64 6f 0a  ute_dlfiles; do.
bb30: 20 20 20 20 20 20 74 65 73 74 20 2d 66 20 22 24        test -f "$
bb40: 66 69 6c 65 22 20 5c 0a 09 7c 7c 20 66 75 6e 63  file" \..|| func
bb50: 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22 5c 60 24  _fatal_help "\`$
bb60: 66 69 6c 65 27 20 69 73 20 6e 6f 74 20 61 20 66  file' is not a f
bb70: 69 6c 65 22 0a 0a 20 20 20 20 20 20 64 69 72 3d  ile"..      dir=
bb80: 0a 20 20 20 20 20 20 63 61 73 65 20 24 66 69 6c  .      case $fil
bb90: 65 20 69 6e 0a 20 20 20 20 20 20 2a 2e 6c 61 29  e in.      *.la)
bba0: 0a 09 23 20 43 68 65 63 6b 20 74 6f 20 73 65 65  ..# Check to see
bbb0: 20 74 68 61 74 20 74 68 69 73 20 72 65 61 6c 6c   that this reall
bbc0: 79 20 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20 61  y is a libtool a
bbd0: 72 63 68 69 76 65 2e 0a 09 66 75 6e 63 5f 6c 61  rchive...func_la
bbe0: 6c 69 62 5f 75 6e 73 61 66 65 5f 70 20 22 24 66  lib_unsafe_p "$f
bbf0: 69 6c 65 22 20 5c 0a 09 20 20 7c 7c 20 66 75 6e  ile" \..  || fun
bc00: 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22 5c 60  c_fatal_help "\`
bc10: 24 6c 69 62 27 20 69 73 20 6e 6f 74 20 61 20 76  $lib' is not a v
bc20: 61 6c 69 64 20 6c 69 62 74 6f 6f 6c 20 61 72 63  alid libtool arc
bc30: 68 69 76 65 22 0a 0a 09 23 20 52 65 61 64 20 74  hive"...# Read t
bc40: 68 65 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61  he libtool libra
bc50: 72 79 2e 0a 09 64 6c 6e 61 6d 65 3d 0a 09 6c 69  ry...dlname=..li
bc60: 62 72 61 72 79 5f 6e 61 6d 65 73 3d 0a 09 66 75  brary_names=..fu
bc70: 6e 63 5f 73 6f 75 72 63 65 20 22 24 66 69 6c 65  nc_source "$file
bc80: 22 0a 0a 09 23 20 53 6b 69 70 20 74 68 69 73 20  "...# Skip this 
bc90: 6c 69 62 72 61 72 79 20 69 66 20 69 74 20 63 61  library if it ca
bca0: 6e 6e 6f 74 20 62 65 20 64 6c 6f 70 65 6e 65 64  nnot be dlopened
bcb0: 2e 0a 09 69 66 20 74 65 73 74 20 2d 7a 20 22 24  ...if test -z "$
bcc0: 64 6c 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20  dlname"; then.. 
bcd0: 20 23 20 57 61 72 6e 20 69 66 20 69 74 20 77 61   # Warn if it wa
bce0: 73 20 61 20 73 68 61 72 65 64 20 6c 69 62 72 61  s a shared libra
bcf0: 72 79 2e 0a 09 20 20 74 65 73 74 20 2d 6e 20 22  ry...  test -n "
bd00: 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 22 20  $library_names" 
bd10: 26 26 20 5c 0a 09 20 20 20 20 66 75 6e 63 5f 77  && \..    func_w
bd20: 61 72 6e 69 6e 67 20 22 5c 60 24 66 69 6c 65 27  arning "\`$file'
bd30: 20 77 61 73 20 6e 6f 74 20 6c 69 6e 6b 65 64 20   was not linked 
bd40: 77 69 74 68 20 5c 60 2d 65 78 70 6f 72 74 2d 64  with \`-export-d
bd50: 79 6e 61 6d 69 63 27 22 0a 09 20 20 63 6f 6e 74  ynamic'"..  cont
bd60: 69 6e 75 65 0a 09 66 69 0a 0a 09 66 75 6e 63 5f  inue..fi...func_
bd70: 64 69 72 6e 61 6d 65 20 22 24 66 69 6c 65 22 20  dirname "$file" 
bd80: 22 22 20 22 2e 22 0a 09 64 69 72 3d 22 24 66 75  "" "."..dir="$fu
bd90: 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c  nc_dirname_resul
bda0: 74 22 0a 0a 09 69 66 20 74 65 73 74 20 2d 66 20  t"...if test -f 
bdb0: 22 24 64 69 72 2f 24 6f 62 6a 64 69 72 2f 24 64  "$dir/$objdir/$d
bdc0: 6c 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20 20  lname"; then..  
bdd0: 64 69 72 3d 22 24 64 69 72 2f 24 6f 62 6a 64 69  dir="$dir/$objdi
bde0: 72 22 0a 09 65 6c 73 65 0a 09 20 20 69 66 20 74  r"..else..  if t
bdf0: 65 73 74 20 21 20 2d 66 20 22 24 64 69 72 2f 24  est ! -f "$dir/$
be00: 64 6c 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20  dlname"; then.. 
be10: 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72     func_fatal_er
be20: 72 6f 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e 64  ror "cannot find
be30: 20 5c 60 24 64 6c 6e 61 6d 65 27 20 69 6e 20 5c   \`$dlname' in \
be40: 60 24 64 69 72 27 20 6f 72 20 5c 60 24 64 69 72  `$dir' or \`$dir
be50: 2f 24 6f 62 6a 64 69 72 27 22 0a 09 20 20 66 69  /$objdir'"..  fi
be60: 0a 09 66 69 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  ..fi..;;..      
be70: 2a 2e 6c 6f 29 0a 09 23 20 4a 75 73 74 20 61 64  *.lo)..# Just ad
be80: 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20  d the directory 
be90: 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 2e  containing the .
bea0: 6c 6f 20 66 69 6c 65 2e 0a 09 66 75 6e 63 5f 64  lo file...func_d
beb0: 69 72 6e 61 6d 65 20 22 24 66 69 6c 65 22 20 22  irname "$file" "
bec0: 22 20 22 2e 22 0a 09 64 69 72 3d 22 24 66 75 6e  " "."..dir="$fun
bed0: 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74  c_dirname_result
bee0: 22 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2a 29 0a  "..;;..      *).
bef0: 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c  .func_warning "\
bf00: 60 2d 64 6c 6f 70 65 6e 27 20 69 73 20 69 67 6e  `-dlopen' is ign
bf10: 6f 72 65 64 20 66 6f 72 20 6e 6f 6e 2d 6c 69 62  ored for non-lib
bf20: 74 6f 6f 6c 20 6c 69 62 72 61 72 69 65 73 20 61  tool libraries a
bf30: 6e 64 20 6f 62 6a 65 63 74 73 22 0a 09 63 6f 6e  nd objects"..con
bf40: 74 69 6e 75 65 0a 09 3b 3b 0a 20 20 20 20 20 20  tinue..;;.      
bf50: 65 73 61 63 0a 0a 20 20 20 20 20 20 23 20 47 65  esac..      # Ge
bf60: 74 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 70  t the absolute p
bf70: 61 74 68 6e 61 6d 65 2e 0a 20 20 20 20 20 20 61  athname..      a
bf80: 62 73 64 69 72 3d 60 63 64 20 22 24 64 69 72 22  bsdir=`cd "$dir"
bf90: 20 26 26 20 70 77 64 60 0a 20 20 20 20 20 20 74   && pwd`.      t
bfa0: 65 73 74 20 2d 6e 20 22 24 61 62 73 64 69 72 22  est -n "$absdir"
bfb0: 20 26 26 20 64 69 72 3d 22 24 61 62 73 64 69 72   && dir="$absdir
bfc0: 22 0a 0a 20 20 20 20 20 20 23 20 4e 6f 77 20 61  "..      # Now a
bfd0: 64 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 79  dd the directory
bfe0: 20 74 6f 20 73 68 6c 69 62 70 61 74 68 5f 76 61   to shlibpath_va
bff0: 72 2e 0a 20 20 20 20 20 20 69 66 20 65 76 61 6c  r..      if eval
c000: 20 22 74 65 73 74 20 2d 7a 20 5c 22 5c 24 24 73   "test -z \"\$$s
c010: 68 6c 69 62 70 61 74 68 5f 76 61 72 5c 22 22 3b  hlibpath_var\"";
c020: 20 74 68 65 6e 0a 09 65 76 61 6c 20 22 24 73 68   then..eval "$sh
c030: 6c 69 62 70 61 74 68 5f 76 61 72 3d 5c 22 5c 24  libpath_var=\"\$
c040: 64 69 72 5c 22 22 0a 20 20 20 20 20 20 65 6c 73  dir\"".      els
c050: 65 0a 09 65 76 61 6c 20 22 24 73 68 6c 69 62 70  e..eval "$shlibp
c060: 61 74 68 5f 76 61 72 3d 5c 22 5c 24 64 69 72 3a  ath_var=\"\$dir:
c070: 5c 24 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72  \$$shlibpath_var
c080: 5c 22 22 0a 20 20 20 20 20 20 66 69 0a 20 20 20  \"".      fi.   
c090: 20 64 6f 6e 65 0a 0a 20 20 20 20 23 20 54 68 69   done..    # Thi
c0a0: 73 20 76 61 72 69 61 62 6c 65 20 74 65 6c 6c 73  s variable tells
c0b0: 20 77 72 61 70 70 65 72 20 73 63 72 69 70 74 73   wrapper scripts
c0c0: 20 6a 75 73 74 20 74 6f 20 73 65 74 20 73 68 6c   just to set shl
c0d0: 69 62 70 61 74 68 5f 76 61 72 0a 20 20 20 20 23  ibpath_var.    #
c0e0: 20 72 61 74 68 65 72 20 74 68 61 6e 20 72 75 6e   rather than run
c0f0: 6e 69 6e 67 20 74 68 65 69 72 20 70 72 6f 67 72  ning their progr
c100: 61 6d 73 2e 0a 20 20 20 20 6c 69 62 74 6f 6f 6c  ams..    libtool
c110: 5f 65 78 65 63 75 74 65 5f 6d 61 67 69 63 3d 22  _execute_magic="
c120: 24 6d 61 67 69 63 22 0a 0a 20 20 20 20 23 20 43  $magic"..    # C
c130: 68 65 63 6b 20 69 66 20 61 6e 79 20 6f 66 20 74  heck if any of t
c140: 68 65 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20  he arguments is 
c150: 61 20 77 72 61 70 70 65 72 20 73 63 72 69 70 74  a wrapper script
c160: 2e 0a 20 20 20 20 61 72 67 73 3d 0a 20 20 20 20  ..    args=.    
c170: 66 6f 72 20 66 69 6c 65 0a 20 20 20 20 64 6f 0a  for file.    do.
c180: 20 20 20 20 20 20 63 61 73 65 20 24 66 69 6c 65        case $file
c190: 20 69 6e 0a 20 20 20 20 20 20 2d 2a 29 20 3b 3b   in.      -*) ;;
c1a0: 0a 20 20 20 20 20 20 2a 29 0a 09 23 20 44 6f 20  .      *)..# Do 
c1b0: 61 20 74 65 73 74 20 74 6f 20 73 65 65 20 69 66  a test to see if
c1c0: 20 74 68 69 73 20 69 73 20 72 65 61 6c 6c 79 20   this is really 
c1d0: 61 20 6c 69 62 74 6f 6f 6c 20 70 72 6f 67 72 61  a libtool progra
c1e0: 6d 2e 0a 09 69 66 20 66 75 6e 63 5f 6c 74 77 72  m...if func_ltwr
c1f0: 61 70 70 65 72 5f 73 63 72 69 70 74 5f 70 20 22  apper_script_p "
c200: 24 66 69 6c 65 22 3b 20 74 68 65 6e 0a 09 20 20  $file"; then..  
c210: 66 75 6e 63 5f 73 6f 75 72 63 65 20 22 24 66 69  func_source "$fi
c220: 6c 65 22 0a 09 20 20 23 20 54 72 61 6e 73 66 6f  le"..  # Transfo
c230: 72 6d 20 61 72 67 20 74 6f 20 77 72 61 70 70 65  rm arg to wrappe
c240: 64 20 6e 61 6d 65 2e 0a 09 20 20 66 69 6c 65 3d  d name...  file=
c250: 22 24 70 72 6f 67 64 69 72 2f 24 70 72 6f 67 72  "$progdir/$progr
c260: 61 6d 22 0a 09 65 6c 69 66 20 66 75 6e 63 5f 6c  am"..elif func_l
c270: 74 77 72 61 70 70 65 72 5f 65 78 65 63 75 74 61  twrapper_executa
c280: 62 6c 65 5f 70 20 22 24 66 69 6c 65 22 3b 20 74  ble_p "$file"; t
c290: 68 65 6e 0a 09 20 20 66 75 6e 63 5f 6c 74 77 72  hen..  func_ltwr
c2a0: 61 70 70 65 72 5f 73 63 72 69 70 74 6e 61 6d 65  apper_scriptname
c2b0: 20 22 24 66 69 6c 65 22 0a 09 20 20 66 75 6e 63   "$file"..  func
c2c0: 5f 73 6f 75 72 63 65 20 22 24 66 75 6e 63 5f 6c  _source "$func_l
c2d0: 74 77 72 61 70 70 65 72 5f 73 63 72 69 70 74 6e  twrapper_scriptn
c2e0: 61 6d 65 5f 72 65 73 75 6c 74 22 0a 09 20 20 23  ame_result"..  #
c2f0: 20 54 72 61 6e 73 66 6f 72 6d 20 61 72 67 20 74   Transform arg t
c300: 6f 20 77 72 61 70 70 65 64 20 6e 61 6d 65 2e 0a  o wrapped name..
c310: 09 20 20 66 69 6c 65 3d 22 24 70 72 6f 67 64 69  .  file="$progdi
c320: 72 2f 24 70 72 6f 67 72 61 6d 22 0a 09 66 69 0a  r/$program"..fi.
c330: 09 3b 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 20  .;;.      esac. 
c340: 20 20 20 20 20 23 20 51 75 6f 74 65 20 61 72 67       # Quote arg
c350: 75 6d 65 6e 74 73 20 28 74 6f 20 70 72 65 73 65  uments (to prese
c360: 72 76 65 20 73 68 65 6c 6c 20 6d 65 74 61 63 68  rve shell metach
c370: 61 72 61 63 74 65 72 73 29 2e 0a 20 20 20 20 20  aracters)..     
c380: 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f   func_quote_for_
c390: 65 76 61 6c 20 22 24 66 69 6c 65 22 0a 20 20 20  eval "$file".   
c3a0: 20 20 20 61 72 67 73 3d 22 24 61 72 67 73 20 24     args="$args $
c3b0: 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65  func_quote_for_e
c3c0: 76 61 6c 5f 72 65 73 75 6c 74 22 0a 20 20 20 20  val_result".    
c3d0: 64 6f 6e 65 0a 0a 20 20 20 20 69 66 20 74 65 73  done..    if tes
c3e0: 74 20 22 58 24 6f 70 74 5f 64 72 79 5f 72 75 6e  t "X$opt_dry_run
c3f0: 22 20 3d 20 58 66 61 6c 73 65 3b 20 74 68 65 6e  " = Xfalse; then
c400: 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d  .      if test -
c410: 6e 20 22 24 73 68 6c 69 62 70 61 74 68 5f 76 61  n "$shlibpath_va
c420: 72 22 3b 20 74 68 65 6e 0a 09 23 20 45 78 70 6f  r"; then..# Expo
c430: 72 74 20 74 68 65 20 73 68 6c 69 62 70 61 74 68  rt the shlibpath
c440: 5f 76 61 72 2e 0a 09 65 76 61 6c 20 22 65 78 70  _var...eval "exp
c450: 6f 72 74 20 24 73 68 6c 69 62 70 61 74 68 5f 76  ort $shlibpath_v
c460: 61 72 22 0a 20 20 20 20 20 20 66 69 0a 0a 20 20  ar".      fi..  
c470: 20 20 20 20 23 20 52 65 73 74 6f 72 65 20 73 61      # Restore sa
c480: 76 65 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20  ved environment 
c490: 76 61 72 69 61 62 6c 65 73 0a 20 20 20 20 20 20  variables.      
c4a0: 66 6f 72 20 6c 74 5f 76 61 72 20 69 6e 20 4c 41  for lt_var in LA
c4b0: 4e 47 20 4c 41 4e 47 55 41 47 45 20 4c 43 5f 41  NG LANGUAGE LC_A
c4c0: 4c 4c 20 4c 43 5f 43 54 59 50 45 20 4c 43 5f 43  LL LC_CTYPE LC_C
c4d0: 4f 4c 4c 41 54 45 20 4c 43 5f 4d 45 53 53 41 47  OLLATE LC_MESSAG
c4e0: 45 53 0a 20 20 20 20 20 20 64 6f 0a 09 65 76 61  ES.      do..eva
c4f0: 6c 20 22 69 66 20 74 65 73 74 20 5c 22 5c 24 7b  l "if test \"\${
c500: 73 61 76 65 5f 24 6c 74 5f 76 61 72 2b 73 65 74  save_$lt_var+set
c510: 7d 5c 22 20 3d 20 73 65 74 3b 20 74 68 65 6e 0a  }\" = set; then.
c520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
c530: 24 6c 74 5f 76 61 72 3d 5c 24 73 61 76 65 5f 24  $lt_var=\$save_$
c540: 6c 74 5f 76 61 72 3b 20 65 78 70 6f 72 74 20 24  lt_var; export $
c550: 6c 74 5f 76 61 72 0a 09 20 20 20 20 20 20 65 6c  lt_var..      el
c560: 73 65 0a 09 09 24 6c 74 5f 75 6e 73 65 74 20 24  se...$lt_unset $
c570: 6c 74 5f 76 61 72 0a 09 20 20 20 20 20 20 66 69  lt_var..      fi
c580: 22 0a 20 20 20 20 20 20 64 6f 6e 65 0a 0a 20 20  ".      done..  
c590: 20 20 20 20 23 20 4e 6f 77 20 70 72 65 70 61 72      # Now prepar
c5a0: 65 20 74 6f 20 61 63 74 75 61 6c 6c 79 20 65 78  e to actually ex
c5b0: 65 63 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 0a  ec the command..
c5c0: 20 20 20 20 20 20 65 78 65 63 5f 63 6d 64 3d 22        exec_cmd="
c5d0: 5c 24 63 6d 64 24 61 72 67 73 22 0a 20 20 20 20  \$cmd$args".    
c5e0: 65 6c 73 65 0a 20 20 20 20 20 20 23 20 44 69 73  else.      # Dis
c5f0: 70 6c 61 79 20 77 68 61 74 20 77 6f 75 6c 64 20  play what would 
c600: 62 65 20 64 6f 6e 65 2e 0a 20 20 20 20 20 20 69  be done..      i
c610: 66 20 74 65 73 74 20 2d 6e 20 22 24 73 68 6c 69  f test -n "$shli
c620: 62 70 61 74 68 5f 76 61 72 22 3b 20 74 68 65 6e  bpath_var"; then
c630: 0a 09 65 76 61 6c 20 22 5c 24 45 43 48 4f 20 5c  ..eval "\$ECHO \
c640: 22 5c 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72  "\$shlibpath_var
c650: 3d 5c 24 24 73 68 6c 69 62 70 61 74 68 5f 76 61  =\$$shlibpath_va
c660: 72 5c 22 22 0a 09 24 45 43 48 4f 20 22 65 78 70  r\""..$ECHO "exp
c670: 6f 72 74 20 24 73 68 6c 69 62 70 61 74 68 5f 76  ort $shlibpath_v
c680: 61 72 22 0a 20 20 20 20 20 20 66 69 0a 20 20 20  ar".      fi.   
c690: 20 20 20 24 45 43 48 4f 20 22 24 63 6d 64 24 61     $ECHO "$cmd$a
c6a0: 72 67 73 22 0a 20 20 20 20 20 20 65 78 69 74 20  rgs".      exit 
c6b0: 24 45 58 49 54 5f 53 55 43 43 45 53 53 0a 20 20  $EXIT_SUCCESS.  
c6c0: 20 20 66 69 0a 7d 0a 0a 74 65 73 74 20 22 24 6d    fi.}..test "$m
c6d0: 6f 64 65 22 20 3d 20 65 78 65 63 75 74 65 20 26  ode" = execute &
c6e0: 26 20 66 75 6e 63 5f 6d 6f 64 65 5f 65 78 65 63  & func_mode_exec
c6f0: 75 74 65 20 24 7b 31 2b 22 24 40 22 7d 0a 0a 0a  ute ${1+"$@"}...
c700: 23 20 66 75 6e 63 5f 6d 6f 64 65 5f 66 69 6e 69  # func_mode_fini
c710: 73 68 20 61 72 67 2e 2e 2e 0a 66 75 6e 63 5f 6d  sh arg....func_m
c720: 6f 64 65 5f 66 69 6e 69 73 68 20 28 29 0a 7b 0a  ode_finish ().{.
c730: 20 20 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20      $opt_debug. 
c740: 20 20 20 6c 69 62 64 69 72 73 3d 22 24 6e 6f 6e     libdirs="$non
c750: 6f 70 74 22 0a 20 20 20 20 61 64 6d 69 6e 63 6d  opt".    admincm
c760: 64 73 3d 0a 0a 20 20 20 20 69 66 20 74 65 73 74  ds=..    if test
c770: 20 2d 6e 20 22 24 66 69 6e 69 73 68 5f 63 6d 64   -n "$finish_cmd
c780: 73 24 66 69 6e 69 73 68 5f 65 76 61 6c 22 20 26  s$finish_eval" &
c790: 26 20 74 65 73 74 20 2d 6e 20 22 24 6c 69 62 64  & test -n "$libd
c7a0: 69 72 73 22 3b 20 74 68 65 6e 0a 20 20 20 20 20  irs"; then.     
c7b0: 20 66 6f 72 20 64 69 72 0a 20 20 20 20 20 20 64   for dir.      d
c7c0: 6f 0a 09 6c 69 62 64 69 72 73 3d 22 24 6c 69 62  o..libdirs="$lib
c7d0: 64 69 72 73 20 24 64 69 72 22 0a 20 20 20 20 20  dirs $dir".     
c7e0: 20 64 6f 6e 65 0a 0a 20 20 20 20 20 20 66 6f 72   done..      for
c7f0: 20 6c 69 62 64 69 72 20 69 6e 20 24 6c 69 62 64   libdir in $libd
c800: 69 72 73 3b 20 64 6f 0a 09 69 66 20 74 65 73 74  irs; do..if test
c810: 20 2d 6e 20 22 24 66 69 6e 69 73 68 5f 63 6d 64   -n "$finish_cmd
c820: 73 22 3b 20 74 68 65 6e 0a 09 20 20 23 20 44 6f  s"; then..  # Do
c830: 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 6e   each command in
c840: 20 74 68 65 20 66 69 6e 69 73 68 20 63 6f 6d 6d   the finish comm
c850: 61 6e 64 73 2e 0a 09 20 20 66 75 6e 63 5f 65 78  ands...  func_ex
c860: 65 63 75 74 65 5f 63 6d 64 73 20 22 24 66 69 6e  ecute_cmds "$fin
c870: 69 73 68 5f 63 6d 64 73 22 20 27 61 64 6d 69 6e  ish_cmds" 'admin
c880: 63 6d 64 73 3d 22 24 61 64 6d 69 6e 63 6d 64 73  cmds="$admincmds
c890: 0a 27 22 24 63 6d 64 22 27 22 27 0a 09 66 69 0a  .'"$cmd"'"'..fi.
c8a0: 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 66 69  .if test -n "$fi
c8b0: 6e 69 73 68 5f 65 76 61 6c 22 3b 20 74 68 65 6e  nish_eval"; then
c8c0: 0a 09 20 20 23 20 44 6f 20 74 68 65 20 73 69 6e  ..  # Do the sin
c8d0: 67 6c 65 20 66 69 6e 69 73 68 5f 65 76 61 6c 2e  gle finish_eval.
c8e0: 0a 09 20 20 65 76 61 6c 20 63 6d 64 73 3d 5c 22  ..  eval cmds=\"
c8f0: 24 66 69 6e 69 73 68 5f 65 76 61 6c 5c 22 0a 09  $finish_eval\"..
c900: 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c    $opt_dry_run |
c910: 7c 20 65 76 61 6c 20 22 24 63 6d 64 73 22 20 7c  | eval "$cmds" |
c920: 7c 20 61 64 6d 69 6e 63 6d 64 73 3d 22 24 61 64  | admincmds="$ad
c930: 6d 69 6e 63 6d 64 73 0a 20 20 20 20 20 20 20 24  mincmds.       $
c940: 63 6d 64 73 22 0a 09 66 69 0a 20 20 20 20 20 20  cmds"..fi.      
c950: 64 6f 6e 65 0a 20 20 20 20 66 69 0a 0a 20 20 20  done.    fi..   
c960: 20 23 20 45 78 69 74 20 68 65 72 65 20 69 66 20   # Exit here if 
c970: 74 68 65 79 20 77 61 6e 74 65 64 20 73 69 6c 65  they wanted sile
c980: 6e 74 20 6d 6f 64 65 2e 0a 20 20 20 20 24 6f 70  nt mode..    $op
c990: 74 5f 73 69 6c 65 6e 74 20 26 26 20 65 78 69 74  t_silent && exit
c9a0: 20 24 45 58 49 54 5f 53 55 43 43 45 53 53 0a 0a   $EXIT_SUCCESS..
c9b0: 20 20 20 20 24 45 43 48 4f 20 22 58 2d 2d 2d 2d      $ECHO "X----
c9c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c9d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c9e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c9f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
ca00: 2d 2d 22 20 7c 20 24 58 73 65 64 0a 20 20 20 20  --" | $Xsed.    
ca10: 24 45 43 48 4f 20 22 4c 69 62 72 61 72 69 65 73  $ECHO "Libraries
ca20: 20 68 61 76 65 20 62 65 65 6e 20 69 6e 73 74 61   have been insta
ca30: 6c 6c 65 64 20 69 6e 3a 22 0a 20 20 20 20 66 6f  lled in:".    fo
ca40: 72 20 6c 69 62 64 69 72 20 69 6e 20 24 6c 69 62  r libdir in $lib
ca50: 64 69 72 73 3b 20 64 6f 0a 20 20 20 20 20 20 24  dirs; do.      $
ca60: 45 43 48 4f 20 22 20 20 20 24 6c 69 62 64 69 72  ECHO "   $libdir
ca70: 22 0a 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 24  ".    done.    $
ca80: 45 43 48 4f 0a 20 20 20 20 24 45 43 48 4f 20 22  ECHO.    $ECHO "
ca90: 49 66 20 79 6f 75 20 65 76 65 72 20 68 61 70 70  If you ever happ
caa0: 65 6e 20 74 6f 20 77 61 6e 74 20 74 6f 20 6c 69  en to want to li
cab0: 6e 6b 20 61 67 61 69 6e 73 74 20 69 6e 73 74 61  nk against insta
cac0: 6c 6c 65 64 20 6c 69 62 72 61 72 69 65 73 22 0a  lled libraries".
cad0: 20 20 20 20 24 45 43 48 4f 20 22 69 6e 20 61 20      $ECHO "in a 
cae0: 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 2c  given directory,
caf0: 20 4c 49 42 44 49 52 2c 20 79 6f 75 20 6d 75 73   LIBDIR, you mus
cb00: 74 20 65 69 74 68 65 72 20 75 73 65 20 6c 69 62  t either use lib
cb10: 74 6f 6f 6c 2c 20 61 6e 64 22 0a 20 20 20 20 24  tool, and".    $
cb20: 45 43 48 4f 20 22 73 70 65 63 69 66 79 20 74 68  ECHO "specify th
cb30: 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20  e full pathname 
cb40: 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 2c 20  of the library, 
cb50: 6f 72 20 75 73 65 20 74 68 65 20 5c 60 2d 4c 4c  or use the \`-LL
cb60: 49 42 44 49 52 27 22 0a 20 20 20 20 24 45 43 48  IBDIR'".    $ECH
cb70: 4f 20 22 66 6c 61 67 20 64 75 72 69 6e 67 20 6c  O "flag during l
cb80: 69 6e 6b 69 6e 67 20 61 6e 64 20 64 6f 20 61 74  inking and do at
cb90: 20 6c 65 61 73 74 20 6f 6e 65 20 6f 66 20 74 68   least one of th
cba0: 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 22 0a 20 20  e following:".  
cbb0: 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 73    if test -n "$s
cbc0: 68 6c 69 62 70 61 74 68 5f 76 61 72 22 3b 20 74  hlibpath_var"; t
cbd0: 68 65 6e 0a 20 20 20 20 20 20 24 45 43 48 4f 20  hen.      $ECHO 
cbe0: 22 20 20 20 2d 20 61 64 64 20 4c 49 42 44 49 52  "   - add LIBDIR
cbf0: 20 74 6f 20 74 68 65 20 5c 60 24 73 68 6c 69 62   to the \`$shlib
cc00: 70 61 74 68 5f 76 61 72 27 20 65 6e 76 69 72 6f  path_var' enviro
cc10: 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 22 0a  nment variable".
cc20: 20 20 20 20 20 20 24 45 43 48 4f 20 22 20 20 20        $ECHO "   
cc30: 20 20 64 75 72 69 6e 67 20 65 78 65 63 75 74 69    during executi
cc40: 6f 6e 22 0a 20 20 20 20 66 69 0a 20 20 20 20 69  on".    fi.    i
cc50: 66 20 74 65 73 74 20 2d 6e 20 22 24 72 75 6e 70  f test -n "$runp
cc60: 61 74 68 5f 76 61 72 22 3b 20 74 68 65 6e 0a 20  ath_var"; then. 
cc70: 20 20 20 20 20 24 45 43 48 4f 20 22 20 20 20 2d       $ECHO "   -
cc80: 20 61 64 64 20 4c 49 42 44 49 52 20 74 6f 20 74   add LIBDIR to t
cc90: 68 65 20 5c 60 24 72 75 6e 70 61 74 68 5f 76 61  he \`$runpath_va
cca0: 72 27 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76  r' environment v
ccb0: 61 72 69 61 62 6c 65 22 0a 20 20 20 20 20 20 24  ariable".      $
ccc0: 45 43 48 4f 20 22 20 20 20 20 20 64 75 72 69 6e  ECHO "     durin
ccd0: 67 20 6c 69 6e 6b 69 6e 67 22 0a 20 20 20 20 66  g linking".    f
cce0: 69 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e  i.    if test -n
ccf0: 20 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64   "$hardcode_libd
cd00: 69 72 5f 66 6c 61 67 5f 73 70 65 63 22 3b 20 74  ir_flag_spec"; t
cd10: 68 65 6e 0a 20 20 20 20 20 20 6c 69 62 64 69 72  hen.      libdir
cd20: 3d 4c 49 42 44 49 52 0a 20 20 20 20 20 20 65 76  =LIBDIR.      ev
cd30: 61 6c 20 66 6c 61 67 3d 5c 22 24 68 61 72 64 63  al flag=\"$hardc
cd40: 6f 64 65 5f 6c 69 62 64 69 72 5f 66 6c 61 67 5f  ode_libdir_flag_
cd50: 73 70 65 63 5c 22 0a 0a 20 20 20 20 20 20 24 45  spec\"..      $E
cd60: 43 48 4f 20 22 20 20 20 2d 20 75 73 65 20 74 68  CHO "   - use th
cd70: 65 20 5c 60 24 66 6c 61 67 27 20 6c 69 6e 6b 65  e \`$flag' linke
cd80: 72 20 66 6c 61 67 22 0a 20 20 20 20 66 69 0a 20  r flag".    fi. 
cd90: 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
cda0: 61 64 6d 69 6e 63 6d 64 73 22 3b 20 74 68 65 6e  admincmds"; then
cdb0: 0a 20 20 20 20 20 20 24 45 43 48 4f 20 22 20 20  .      $ECHO "  
cdc0: 20 2d 20 68 61 76 65 20 79 6f 75 72 20 73 79 73   - have your sys
cdd0: 74 65 6d 20 61 64 6d 69 6e 69 73 74 72 61 74 6f  tem administrato
cde0: 72 20 72 75 6e 20 74 68 65 73 65 20 63 6f 6d 6d  r run these comm
cdf0: 61 6e 64 73 3a 24 61 64 6d 69 6e 63 6d 64 73 22  ands:$admincmds"
ce00: 0a 20 20 20 20 66 69 0a 20 20 20 20 69 66 20 74  .    fi.    if t
ce10: 65 73 74 20 2d 66 20 2f 65 74 63 2f 6c 64 2e 73  est -f /etc/ld.s
ce20: 6f 2e 63 6f 6e 66 3b 20 74 68 65 6e 0a 20 20 20  o.conf; then.   
ce30: 20 20 20 24 45 43 48 4f 20 22 20 20 20 2d 20 68     $ECHO "   - h
ce40: 61 76 65 20 79 6f 75 72 20 73 79 73 74 65 6d 20  ave your system 
ce50: 61 64 6d 69 6e 69 73 74 72 61 74 6f 72 20 61 64  administrator ad
ce60: 64 20 4c 49 42 44 49 52 20 74 6f 20 5c 60 2f 65  d LIBDIR to \`/e
ce70: 74 63 2f 6c 64 2e 73 6f 2e 63 6f 6e 66 27 22 0a  tc/ld.so.conf'".
ce80: 20 20 20 20 66 69 0a 20 20 20 20 24 45 43 48 4f      fi.    $ECHO
ce90: 0a 0a 20 20 20 20 24 45 43 48 4f 20 22 53 65 65  ..    $ECHO "See
cea0: 20 61 6e 79 20 6f 70 65 72 61 74 69 6e 67 20 73   any operating s
ceb0: 79 73 74 65 6d 20 64 6f 63 75 6d 65 6e 74 61 74  ystem documentat
cec0: 69 6f 6e 20 61 62 6f 75 74 20 73 68 61 72 65 64  ion about shared
ced0: 20 6c 69 62 72 61 72 69 65 73 20 66 6f 72 22 0a   libraries for".
cee0: 20 20 20 20 63 61 73 65 20 24 68 6f 73 74 20 69      case $host i
cef0: 6e 0a 20 20 20 20 20 20 73 6f 6c 61 72 69 73 32  n.      solaris2
cf00: 2e 5b 36 37 38 39 5d 7c 73 6f 6c 61 72 69 73 32  .[6789]|solaris2
cf10: 2e 31 5b 30 2d 39 5d 29 0a 20 20 20 20 20 20 20  .1[0-9]).       
cf20: 20 24 45 43 48 4f 20 22 6d 6f 72 65 20 69 6e 66   $ECHO "more inf
cf30: 6f 72 6d 61 74 69 6f 6e 2c 20 73 75 63 68 20 61  ormation, such a
cf40: 73 20 74 68 65 20 6c 64 28 31 29 2c 20 63 72 6c  s the ld(1), crl
cf50: 65 28 31 29 20 61 6e 64 20 6c 64 2e 73 6f 28 38  e(1) and ld.so(8
cf60: 29 20 6d 61 6e 75 61 6c 22 0a 09 24 45 43 48 4f  ) manual"..$ECHO
cf70: 20 22 70 61 67 65 73 2e 22 0a 09 3b 3b 0a 20 20   "pages."..;;.  
cf80: 20 20 20 20 2a 29 0a 20 20 20 20 20 20 20 20 24      *).        $
cf90: 45 43 48 4f 20 22 6d 6f 72 65 20 69 6e 66 6f 72  ECHO "more infor
cfa0: 6d 61 74 69 6f 6e 2c 20 73 75 63 68 20 61 73 20  mation, such as 
cfb0: 74 68 65 20 6c 64 28 31 29 20 61 6e 64 20 6c 64  the ld(1) and ld
cfc0: 2e 73 6f 28 38 29 20 6d 61 6e 75 61 6c 20 70 61  .so(8) manual pa
cfd0: 67 65 73 2e 22 0a 20 20 20 20 20 20 20 20 3b 3b  ges.".        ;;
cfe0: 0a 20 20 20 20 65 73 61 63 0a 20 20 20 20 24 45  .    esac.    $E
cff0: 43 48 4f 20 22 58 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  CHO "X----------
d000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
d030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 22 20 7c 20  ------------" | 
d040: 24 58 73 65 64 0a 20 20 20 20 65 78 69 74 20 24  $Xsed.    exit $
d050: 45 58 49 54 5f 53 55 43 43 45 53 53 0a 7d 0a 0a  EXIT_SUCCESS.}..
d060: 74 65 73 74 20 22 24 6d 6f 64 65 22 20 3d 20 66  test "$mode" = f
d070: 69 6e 69 73 68 20 26 26 20 66 75 6e 63 5f 6d 6f  inish && func_mo
d080: 64 65 5f 66 69 6e 69 73 68 20 24 7b 31 2b 22 24  de_finish ${1+"$
d090: 40 22 7d 0a 0a 0a 23 20 66 75 6e 63 5f 6d 6f 64  @"}...# func_mod
d0a0: 65 5f 69 6e 73 74 61 6c 6c 20 61 72 67 2e 2e 2e  e_install arg...
d0b0: 0a 66 75 6e 63 5f 6d 6f 64 65 5f 69 6e 73 74 61  .func_mode_insta
d0c0: 6c 6c 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  ll ().{.    $opt
d0d0: 5f 64 65 62 75 67 0a 20 20 20 20 23 20 54 68 65  _debug.    # The
d0e0: 72 65 20 6d 61 79 20 62 65 20 61 6e 20 6f 70 74  re may be an opt
d0f0: 69 6f 6e 61 6c 20 73 68 28 31 29 20 61 72 67 75  ional sh(1) argu
d100: 6d 65 6e 74 20 61 74 20 74 68 65 20 62 65 67 69  ment at the begi
d110: 6e 6e 69 6e 67 20 6f 66 0a 20 20 20 20 23 20 69  nning of.    # i
d120: 6e 73 74 61 6c 6c 5f 70 72 6f 67 20 28 65 73 70  nstall_prog (esp
d130: 65 63 69 61 6c 6c 79 20 6f 6e 20 57 69 6e 64 6f  ecially on Windo
d140: 77 73 20 4e 54 29 2e 0a 20 20 20 20 69 66 20 74  ws NT)..    if t
d150: 65 73 74 20 22 24 6e 6f 6e 6f 70 74 22 20 3d 20  est "$nonopt" = 
d160: 22 24 53 48 45 4c 4c 22 20 7c 7c 20 74 65 73 74  "$SHELL" || test
d170: 20 22 24 6e 6f 6e 6f 70 74 22 20 3d 20 2f 62 69   "$nonopt" = /bi
d180: 6e 2f 73 68 20 7c 7c 0a 20 20 20 20 20 20 20 23  n/sh ||.       #
d190: 20 41 6c 6c 6f 77 20 74 68 65 20 75 73 65 20 6f   Allow the use o
d1a0: 66 20 47 4e 55 20 73 68 74 6f 6f 6c 27 73 20 69  f GNU shtool's i
d1b0: 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 2e 0a  nstall command..
d1c0: 20 20 20 20 20 20 20 24 45 43 48 4f 20 22 58 24         $ECHO "X$
d1d0: 6e 6f 6e 6f 70 74 22 20 7c 20 24 47 52 45 50 20  nonopt" | $GREP 
d1e0: 73 68 74 6f 6f 6c 20 3e 2f 64 65 76 2f 6e 75 6c  shtool >/dev/nul
d1f0: 6c 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 23 20  l; then.      # 
d200: 41 65 73 74 68 65 74 69 63 61 6c 6c 79 20 71 75  Aesthetically qu
d210: 6f 74 65 20 69 74 2e 0a 20 20 20 20 20 20 66 75  ote it..      fu
d220: 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
d230: 6c 20 22 24 6e 6f 6e 6f 70 74 22 0a 20 20 20 20  l "$nonopt".    
d240: 20 20 69 6e 73 74 61 6c 6c 5f 70 72 6f 67 3d 22    install_prog="
d250: 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f  $func_quote_for_
d260: 65 76 61 6c 5f 72 65 73 75 6c 74 20 22 0a 20 20  eval_result ".  
d270: 20 20 20 20 61 72 67 3d 24 31 0a 20 20 20 20 20      arg=$1.     
d280: 20 73 68 69 66 74 0a 20 20 20 20 65 6c 73 65 0a   shift.    else.
d290: 20 20 20 20 20 20 69 6e 73 74 61 6c 6c 5f 70 72        install_pr
d2a0: 6f 67 3d 0a 20 20 20 20 20 20 61 72 67 3d 24 6e  og=.      arg=$n
d2b0: 6f 6e 6f 70 74 0a 20 20 20 20 66 69 0a 0a 20 20  onopt.    fi..  
d2c0: 20 20 23 20 54 68 65 20 72 65 61 6c 20 66 69 72    # The real fir
d2d0: 73 74 20 61 72 67 75 6d 65 6e 74 20 73 68 6f 75  st argument shou
d2e0: 6c 64 20 62 65 20 74 68 65 20 6e 61 6d 65 20 6f  ld be the name o
d2f0: 66 20 74 68 65 20 69 6e 73 74 61 6c 6c 61 74 69  f the installati
d300: 6f 6e 20 70 72 6f 67 72 61 6d 2e 0a 20 20 20 20  on program..    
d310: 23 20 41 65 73 74 68 65 74 69 63 61 6c 6c 79 20  # Aesthetically 
d320: 71 75 6f 74 65 20 69 74 2e 0a 20 20 20 20 66 75  quote it..    fu
d330: 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
d340: 6c 20 22 24 61 72 67 22 0a 20 20 20 20 69 6e 73  l "$arg".    ins
d350: 74 61 6c 6c 5f 70 72 6f 67 3d 22 24 69 6e 73 74  tall_prog="$inst
d360: 61 6c 6c 5f 70 72 6f 67 24 66 75 6e 63 5f 71 75  all_prog$func_qu
d370: 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73  ote_for_eval_res
d380: 75 6c 74 22 0a 0a 20 20 20 20 23 20 57 65 20 6e  ult"..    # We n
d390: 65 65 64 20 74 6f 20 61 63 63 65 70 74 20 61 74  eed to accept at
d3a0: 20 6c 65 61 73 74 20 61 6c 6c 20 74 68 65 20 42   least all the B
d3b0: 53 44 20 69 6e 73 74 61 6c 6c 20 66 6c 61 67 73  SD install flags
d3c0: 2e 0a 20 20 20 20 64 65 73 74 3d 0a 20 20 20 20  ..    dest=.    
d3d0: 66 69 6c 65 73 3d 0a 20 20 20 20 6f 70 74 73 3d  files=.    opts=
d3e0: 0a 20 20 20 20 70 72 65 76 3d 0a 20 20 20 20 69  .    prev=.    i
d3f0: 6e 73 74 61 6c 6c 5f 74 79 70 65 3d 0a 20 20 20  nstall_type=.   
d400: 20 69 73 64 69 72 3d 6e 6f 0a 20 20 20 20 73 74   isdir=no.    st
d410: 72 69 70 6d 65 3d 0a 20 20 20 20 66 6f 72 20 61  ripme=.    for a
d420: 72 67 0a 20 20 20 20 64 6f 0a 20 20 20 20 20 20  rg.    do.      
d430: 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64 65 73  if test -n "$des
d440: 74 22 3b 20 74 68 65 6e 0a 09 66 69 6c 65 73 3d  t"; then..files=
d450: 22 24 66 69 6c 65 73 20 24 64 65 73 74 22 0a 09  "$files $dest"..
d460: 64 65 73 74 3d 24 61 72 67 0a 09 63 6f 6e 74 69  dest=$arg..conti
d470: 6e 75 65 0a 20 20 20 20 20 20 66 69 0a 0a 20 20  nue.      fi..  
d480: 20 20 20 20 63 61 73 65 20 24 61 72 67 20 69 6e      case $arg in
d490: 0a 20 20 20 20 20 20 2d 64 29 20 69 73 64 69 72  .      -d) isdir
d4a0: 3d 79 65 73 20 3b 3b 0a 20 20 20 20 20 20 2d 66  =yes ;;.      -f
d4b0: 29 0a 09 63 61 73 65 20 22 20 24 69 6e 73 74 61  )..case " $insta
d4c0: 6c 6c 5f 70 72 6f 67 20 22 20 69 6e 0a 09 2a 5b  ll_prog " in..*[
d4d0: 5c 5c 5c 20 2f 5d 63 70 5c 20 2a 29 20 3b 3b 0a  \\\ /]cp\ *) ;;.
d4e0: 09 2a 29 20 70 72 65 76 3d 24 61 72 67 20 3b 3b  .*) prev=$arg ;;
d4f0: 0a 09 65 73 61 63 0a 09 3b 3b 0a 20 20 20 20 20  ..esac..;;.     
d500: 20 2d 67 20 7c 20 2d 6d 20 7c 20 2d 6f 29 0a 09   -g | -m | -o)..
d510: 70 72 65 76 3d 24 61 72 67 0a 09 3b 3b 0a 20 20  prev=$arg..;;.  
d520: 20 20 20 20 2d 73 29 0a 09 73 74 72 69 70 6d 65      -s)..stripme
d530: 3d 22 20 2d 73 22 0a 09 63 6f 6e 74 69 6e 75 65  =" -s"..continue
d540: 0a 09 3b 3b 0a 20 20 20 20 20 20 2d 2a 29 0a 09  ..;;.      -*)..
d550: 3b 3b 0a 20 20 20 20 20 20 2a 29 0a 09 23 20 49  ;;.      *)..# I
d560: 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6f  f the previous o
d570: 70 74 69 6f 6e 20 6e 65 65 64 65 64 20 61 6e 20  ption needed an 
d580: 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 6e 20 73  argument, then s
d590: 6b 69 70 20 69 74 2e 0a 09 69 66 20 74 65 73 74  kip it...if test
d5a0: 20 2d 6e 20 22 24 70 72 65 76 22 3b 20 74 68 65   -n "$prev"; the
d5b0: 6e 0a 09 20 20 70 72 65 76 3d 0a 09 65 6c 73 65  n..  prev=..else
d5c0: 0a 09 20 20 64 65 73 74 3d 24 61 72 67 0a 09 20  ..  dest=$arg.. 
d5d0: 20 63 6f 6e 74 69 6e 75 65 0a 09 66 69 0a 09 3b   continue..fi..;
d5e0: 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 0a 20 20  ;.      esac..  
d5f0: 20 20 20 20 23 20 41 65 73 74 68 65 74 69 63 61      # Aesthetica
d600: 6c 6c 79 20 71 75 6f 74 65 20 74 68 65 20 61 72  lly quote the ar
d610: 67 75 6d 65 6e 74 2e 0a 20 20 20 20 20 20 66 75  gument..      fu
d620: 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
d630: 6c 20 22 24 61 72 67 22 0a 20 20 20 20 20 20 69  l "$arg".      i
d640: 6e 73 74 61 6c 6c 5f 70 72 6f 67 3d 22 24 69 6e  nstall_prog="$in
d650: 73 74 61 6c 6c 5f 70 72 6f 67 20 24 66 75 6e 63  stall_prog $func
d660: 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f  _quote_for_eval_
d670: 72 65 73 75 6c 74 22 0a 20 20 20 20 64 6f 6e 65  result".    done
d680: 0a 0a 20 20 20 20 74 65 73 74 20 2d 7a 20 22 24  ..    test -z "$
d690: 69 6e 73 74 61 6c 6c 5f 70 72 6f 67 22 20 26 26  install_prog" &&
d6a0: 20 5c 0a 20 20 20 20 20 20 66 75 6e 63 5f 66 61   \.      func_fa
d6b0: 74 61 6c 5f 68 65 6c 70 20 22 79 6f 75 20 6d 75  tal_help "you mu
d6c0: 73 74 20 73 70 65 63 69 66 79 20 61 6e 20 69 6e  st specify an in
d6d0: 73 74 61 6c 6c 20 70 72 6f 67 72 61 6d 22 0a 0a  stall program"..
d6e0: 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24 70 72      test -n "$pr
d6f0: 65 76 22 20 26 26 20 5c 0a 20 20 20 20 20 20 66  ev" && \.      f
d700: 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22  unc_fatal_help "
d710: 74 68 65 20 5c 60 24 70 72 65 76 27 20 6f 70 74  the \`$prev' opt
d720: 69 6f 6e 20 72 65 71 75 69 72 65 73 20 61 6e 20  ion requires an 
d730: 61 72 67 75 6d 65 6e 74 22 0a 0a 20 20 20 20 69  argument"..    i
d740: 66 20 74 65 73 74 20 2d 7a 20 22 24 66 69 6c 65  f test -z "$file
d750: 73 22 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 69  s"; then.      i
d760: 66 20 74 65 73 74 20 2d 7a 20 22 24 64 65 73 74  f test -z "$dest
d770: 22 3b 20 74 68 65 6e 0a 09 66 75 6e 63 5f 66 61  "; then..func_fa
d780: 74 61 6c 5f 68 65 6c 70 20 22 6e 6f 20 66 69 6c  tal_help "no fil
d790: 65 20 6f 72 20 64 65 73 74 69 6e 61 74 69 6f 6e  e or destination
d7a0: 20 73 70 65 63 69 66 69 65 64 22 0a 20 20 20 20   specified".    
d7b0: 20 20 65 6c 73 65 0a 09 66 75 6e 63 5f 66 61 74    else..func_fat
d7c0: 61 6c 5f 68 65 6c 70 20 22 79 6f 75 20 6d 75 73  al_help "you mus
d7d0: 74 20 73 70 65 63 69 66 79 20 61 20 64 65 73 74  t specify a dest
d7e0: 69 6e 61 74 69 6f 6e 22 0a 20 20 20 20 20 20 66  ination".      f
d7f0: 69 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 23 20  i.    fi..    # 
d800: 53 74 72 69 70 20 61 6e 79 20 74 72 61 69 6c 69  Strip any traili
d810: 6e 67 20 73 6c 61 73 68 20 66 72 6f 6d 20 74 68  ng slash from th
d820: 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 2e 0a 20  e destination.. 
d830: 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d     func_stripnam
d840: 65 20 27 27 20 27 2f 27 20 22 24 64 65 73 74 22  e '' '/' "$dest"
d850: 0a 20 20 20 20 64 65 73 74 3d 24 66 75 6e 63 5f  .    dest=$func_
d860: 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
d870: 0a 0a 20 20 20 20 23 20 43 68 65 63 6b 20 74 6f  ..    # Check to
d880: 20 73 65 65 20 74 68 61 74 20 74 68 65 20 64 65   see that the de
d890: 73 74 69 6e 61 74 69 6f 6e 20 69 73 20 61 20 64  stination is a d
d8a0: 69 72 65 63 74 6f 72 79 2e 0a 20 20 20 20 74 65  irectory..    te
d8b0: 73 74 20 2d 64 20 22 24 64 65 73 74 22 20 26 26  st -d "$dest" &&
d8c0: 20 69 73 64 69 72 3d 79 65 73 0a 20 20 20 20 69   isdir=yes.    i
d8d0: 66 20 74 65 73 74 20 22 24 69 73 64 69 72 22 20  f test "$isdir" 
d8e0: 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20  = yes; then.    
d8f0: 20 20 64 65 73 74 64 69 72 3d 22 24 64 65 73 74    destdir="$dest
d900: 22 0a 20 20 20 20 20 20 64 65 73 74 6e 61 6d 65  ".      destname
d910: 3d 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20  =.    else.     
d920: 20 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 61 6e   func_dirname_an
d930: 64 5f 62 61 73 65 6e 61 6d 65 20 22 24 64 65 73  d_basename "$des
d940: 74 22 20 22 22 20 22 2e 22 0a 20 20 20 20 20 20  t" "" ".".      
d950: 64 65 73 74 64 69 72 3d 22 24 66 75 6e 63 5f 64  destdir="$func_d
d960: 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 20  irname_result". 
d970: 20 20 20 20 20 64 65 73 74 6e 61 6d 65 3d 22 24       destname="$
d980: 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65  func_basename_re
d990: 73 75 6c 74 22 0a 0a 20 20 20 20 20 20 23 20 4e  sult"..      # N
d9a0: 6f 74 20 61 20 64 69 72 65 63 74 6f 72 79 2c 20  ot a directory, 
d9b0: 73 6f 20 63 68 65 63 6b 20 74 6f 20 73 65 65 20  so check to see 
d9c0: 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6f 6e  that there is on
d9d0: 6c 79 20 6f 6e 65 20 66 69 6c 65 20 73 70 65 63  ly one file spec
d9e0: 69 66 69 65 64 2e 0a 20 20 20 20 20 20 73 65 74  ified..      set
d9f0: 20 64 75 6d 6d 79 20 24 66 69 6c 65 73 3b 20 73   dummy $files; s
da00: 68 69 66 74 0a 20 20 20 20 20 20 74 65 73 74 20  hift.      test 
da10: 22 24 23 22 20 2d 67 74 20 31 20 26 26 20 5c 0a  "$#" -gt 1 && \.
da20: 09 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70  .func_fatal_help
da30: 20 22 5c 60 24 64 65 73 74 27 20 69 73 20 6e 6f   "\`$dest' is no
da40: 74 20 61 20 64 69 72 65 63 74 6f 72 79 22 0a 20  t a directory". 
da50: 20 20 20 66 69 0a 20 20 20 20 63 61 73 65 20 24     fi.    case $
da60: 64 65 73 74 64 69 72 20 69 6e 0a 20 20 20 20 5b  destdir in.    [
da70: 5c 5c 2f 5d 2a 20 7c 20 5b 41 2d 5a 61 2d 7a 5d  \\/]* | [A-Za-z]
da80: 3a 5b 5c 5c 2f 5d 2a 29 20 3b 3b 0a 20 20 20 20  :[\\/]*) ;;.    
da90: 2a 29 0a 20 20 20 20 20 20 66 6f 72 20 66 69 6c  *).      for fil
daa0: 65 20 69 6e 20 24 66 69 6c 65 73 3b 20 64 6f 0a  e in $files; do.
dab0: 09 63 61 73 65 20 24 66 69 6c 65 20 69 6e 0a 09  .case $file in..
dac0: 2a 2e 6c 6f 29 20 3b 3b 0a 09 2a 29 0a 09 20 20  *.lo) ;;..*)..  
dad0: 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20  func_fatal_help 
dae0: 22 5c 60 24 64 65 73 74 64 69 72 27 20 6d 75 73  "\`$destdir' mus
daf0: 74 20 62 65 20 61 6e 20 61 62 73 6f 6c 75 74 65  t be an absolute
db00: 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 22   directory name"
db10: 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a 20 20 20  ..  ;;..esac.   
db20: 20 20 20 64 6f 6e 65 0a 20 20 20 20 20 20 3b 3b     done.      ;;
db30: 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20 23  .    esac..    #
db40: 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 74   This variable t
db50: 65 6c 6c 73 20 77 72 61 70 70 65 72 20 73 63 72  ells wrapper scr
db60: 69 70 74 73 20 6a 75 73 74 20 74 6f 20 73 65 74  ipts just to set
db70: 20 76 61 72 69 61 62 6c 65 73 20 72 61 74 68 65   variables rathe
db80: 72 0a 20 20 20 20 23 20 74 68 61 6e 20 72 75 6e  r.    # than run
db90: 6e 69 6e 67 20 74 68 65 69 72 20 70 72 6f 67 72  ning their progr
dba0: 61 6d 73 2e 0a 20 20 20 20 6c 69 62 74 6f 6f 6c  ams..    libtool
dbb0: 5f 69 6e 73 74 61 6c 6c 5f 6d 61 67 69 63 3d 22  _install_magic="
dbc0: 24 6d 61 67 69 63 22 0a 0a 20 20 20 20 73 74 61  $magic"..    sta
dbd0: 74 69 63 6c 69 62 73 3d 0a 20 20 20 20 66 75 74  ticlibs=.    fut
dbe0: 75 72 65 5f 6c 69 62 64 69 72 73 3d 0a 20 20 20  ure_libdirs=.   
dbf0: 20 63 75 72 72 65 6e 74 5f 6c 69 62 64 69 72 73   current_libdirs
dc00: 3d 0a 20 20 20 20 66 6f 72 20 66 69 6c 65 20 69  =.    for file i
dc10: 6e 20 24 66 69 6c 65 73 3b 20 64 6f 0a 0a 20 20  n $files; do..  
dc20: 20 20 20 20 23 20 44 6f 20 65 61 63 68 20 69 6e      # Do each in
dc30: 73 74 61 6c 6c 61 74 69 6f 6e 2e 0a 20 20 20 20  stallation..    
dc40: 20 20 63 61 73 65 20 24 66 69 6c 65 20 69 6e 0a    case $file in.
dc50: 20 20 20 20 20 20 2a 2e 24 6c 69 62 65 78 74 29        *.$libext)
dc60: 0a 09 23 20 44 6f 20 74 68 65 20 73 74 61 74 69  ..# Do the stati
dc70: 63 20 6c 69 62 72 61 72 69 65 73 20 6c 61 74 65  c libraries late
dc80: 72 2e 0a 09 73 74 61 74 69 63 6c 69 62 73 3d 22  r...staticlibs="
dc90: 24 73 74 61 74 69 63 6c 69 62 73 20 24 66 69 6c  $staticlibs $fil
dca0: 65 22 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2a 2e  e"..;;..      *.
dcb0: 6c 61 29 0a 09 23 20 43 68 65 63 6b 20 74 6f 20  la)..# Check to 
dcc0: 73 65 65 20 74 68 61 74 20 74 68 69 73 20 72 65  see that this re
dcd0: 61 6c 6c 79 20 69 73 20 61 20 6c 69 62 74 6f 6f  ally is a libtoo
dce0: 6c 20 61 72 63 68 69 76 65 2e 0a 09 66 75 6e 63  l archive...func
dcf0: 5f 6c 61 6c 69 62 5f 75 6e 73 61 66 65 5f 70 20  _lalib_unsafe_p 
dd00: 22 24 66 69 6c 65 22 20 5c 0a 09 20 20 7c 7c 20  "$file" \..  || 
dd10: 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20  func_fatal_help 
dd20: 22 5c 60 24 66 69 6c 65 27 20 69 73 20 6e 6f 74  "\`$file' is not
dd30: 20 61 20 76 61 6c 69 64 20 6c 69 62 74 6f 6f 6c   a valid libtool
dd40: 20 61 72 63 68 69 76 65 22 0a 0a 09 6c 69 62 72   archive"...libr
dd50: 61 72 79 5f 6e 61 6d 65 73 3d 0a 09 6f 6c 64 5f  ary_names=..old_
dd60: 6c 69 62 72 61 72 79 3d 0a 09 72 65 6c 69 6e 6b  library=..relink
dd70: 5f 63 6f 6d 6d 61 6e 64 3d 0a 09 66 75 6e 63 5f  _command=..func_
dd80: 73 6f 75 72 63 65 20 22 24 66 69 6c 65 22 0a 0a  source "$file"..
dd90: 09 23 20 41 64 64 20 74 68 65 20 6c 69 62 64 69  .# Add the libdi
dda0: 72 20 74 6f 20 63 75 72 72 65 6e 74 5f 6c 69 62  r to current_lib
ddb0: 64 69 72 73 20 69 66 20 69 74 20 69 73 20 74 68  dirs if it is th
ddc0: 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 2e 0a 09  e destination...
ddd0: 69 66 20 74 65 73 74 20 22 58 24 64 65 73 74 64  if test "X$destd
dde0: 69 72 22 20 3d 20 22 58 24 6c 69 62 64 69 72 22  ir" = "X$libdir"
ddf0: 3b 20 74 68 65 6e 0a 09 20 20 63 61 73 65 20 22  ; then..  case "
de00: 24 63 75 72 72 65 6e 74 5f 6c 69 62 64 69 72 73  $current_libdirs
de10: 20 22 20 69 6e 0a 09 20 20 2a 22 20 24 6c 69 62   " in..  *" $lib
de20: 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20 2a 29  dir "*) ;;..  *)
de30: 20 63 75 72 72 65 6e 74 5f 6c 69 62 64 69 72 73   current_libdirs
de40: 3d 22 24 63 75 72 72 65 6e 74 5f 6c 69 62 64 69  ="$current_libdi
de50: 72 73 20 24 6c 69 62 64 69 72 22 20 3b 3b 0a 09  rs $libdir" ;;..
de60: 20 20 65 73 61 63 0a 09 65 6c 73 65 0a 09 20 20    esac..else..  
de70: 23 20 4e 6f 74 65 20 74 68 65 20 6c 69 62 64 69  # Note the libdi
de80: 72 20 61 73 20 61 20 66 75 74 75 72 65 20 6c 69  r as a future li
de90: 62 64 69 72 2e 0a 09 20 20 63 61 73 65 20 22 24  bdir...  case "$
dea0: 66 75 74 75 72 65 5f 6c 69 62 64 69 72 73 20 22  future_libdirs "
deb0: 20 69 6e 0a 09 20 20 2a 22 20 24 6c 69 62 64 69   in..  *" $libdi
dec0: 72 20 22 2a 29 20 3b 3b 0a 09 20 20 2a 29 20 66  r "*) ;;..  *) f
ded0: 75 74 75 72 65 5f 6c 69 62 64 69 72 73 3d 22 24  uture_libdirs="$
dee0: 66 75 74 75 72 65 5f 6c 69 62 64 69 72 73 20 24  future_libdirs $
def0: 6c 69 62 64 69 72 22 20 3b 3b 0a 09 20 20 65 73  libdir" ;;..  es
df00: 61 63 0a 09 66 69 0a 0a 09 66 75 6e 63 5f 64 69  ac..fi...func_di
df10: 72 6e 61 6d 65 20 22 24 66 69 6c 65 22 20 22 2f  rname "$file" "/
df20: 22 20 22 22 0a 09 64 69 72 3d 22 24 66 75 6e 63  " ""..dir="$func
df30: 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22  _dirname_result"
df40: 0a 09 64 69 72 3d 22 24 64 69 72 24 6f 62 6a 64  ..dir="$dir$objd
df50: 69 72 22 0a 0a 09 69 66 20 74 65 73 74 20 2d 6e  ir"...if test -n
df60: 20 22 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e   "$relink_comman
df70: 64 22 3b 20 74 68 65 6e 0a 09 20 20 23 20 44 65  d"; then..  # De
df80: 74 65 72 6d 69 6e 65 20 74 68 65 20 70 72 65 66  termine the pref
df90: 69 78 20 74 68 65 20 75 73 65 72 20 68 61 73 20  ix the user has 
dfa0: 61 70 70 6c 69 65 64 20 74 6f 20 6f 75 72 20 66  applied to our f
dfb0: 75 74 75 72 65 20 64 69 72 2e 0a 09 20 20 69 6e  uture dir...  in
dfc0: 73 74 5f 70 72 65 66 69 78 5f 64 69 72 3d 60 24  st_prefix_dir=`$
dfd0: 45 43 48 4f 20 22 58 24 64 65 73 74 64 69 72 22  ECHO "X$destdir"
dfe0: 20 7c 20 24 58 73 65 64 20 2d 65 20 22 73 25 24   | $Xsed -e "s%$
dff0: 6c 69 62 64 69 72 5c 24 25 25 22 60 0a 0a 09 20  libdir\$%%"`... 
e000: 20 23 20 44 6f 6e 27 74 20 61 6c 6c 6f 77 20 74   # Don't allow t
e010: 68 65 20 75 73 65 72 20 74 6f 20 70 6c 61 63 65  he user to place
e020: 20 75 73 20 6f 75 74 73 69 64 65 20 6f 66 20 6f   us outside of o
e030: 75 72 20 65 78 70 65 63 74 65 64 0a 09 20 20 23  ur expected..  #
e040: 20 6c 6f 63 61 74 69 6f 6e 20 62 2f 63 20 74 68   location b/c th
e050: 69 73 20 70 72 65 76 65 6e 74 73 20 66 69 6e 64  is prevents find
e060: 69 6e 67 20 64 65 70 65 6e 64 65 6e 74 20 6c 69  ing dependent li
e070: 62 72 61 72 69 65 73 20 74 68 61 74 0a 09 20 20  braries that..  
e080: 23 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 20  # are installed 
e090: 74 6f 20 74 68 65 20 73 61 6d 65 20 70 72 65 66  to the same pref
e0a0: 69 78 2e 0a 09 20 20 23 20 41 74 20 70 72 65 73  ix...  # At pres
e0b0: 65 6e 74 2c 20 74 68 69 73 20 63 68 65 63 6b 20  ent, this check 
e0c0: 64 6f 65 73 6e 27 74 20 61 66 66 65 63 74 20 77  doesn't affect w
e0d0: 69 6e 64 6f 77 73 20 2e 64 6c 6c 27 73 20 74 68  indows .dll's th
e0e0: 61 74 0a 09 20 20 23 20 61 72 65 20 69 6e 73 74  at..  # are inst
e0f0: 61 6c 6c 65 64 20 69 6e 74 6f 20 24 6c 69 62 64  alled into $libd
e100: 69 72 2f 2e 2e 2f 62 69 6e 20 28 63 75 72 72 65  ir/../bin (curre
e110: 6e 74 6c 79 2c 20 74 68 61 74 20 77 6f 72 6b 73  ntly, that works
e120: 20 66 69 6e 65 29 0a 09 20 20 23 20 62 75 74 20   fine)..  # but 
e130: 69 74 27 73 20 73 6f 6d 65 74 68 69 6e 67 20 74  it's something t
e140: 6f 20 6b 65 65 70 20 61 6e 20 65 79 65 20 6f 6e  o keep an eye on
e150: 2e 0a 09 20 20 74 65 73 74 20 22 24 69 6e 73 74  ...  test "$inst
e160: 5f 70 72 65 66 69 78 5f 64 69 72 22 20 3d 20 22  _prefix_dir" = "
e170: 24 64 65 73 74 64 69 72 22 20 26 26 20 5c 0a 09  $destdir" && \..
e180: 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65      func_fatal_e
e190: 72 72 6f 72 20 22 65 72 72 6f 72 3a 20 63 61 6e  rror "error: can
e1a0: 6e 6f 74 20 69 6e 73 74 61 6c 6c 20 5c 60 24 66  not install \`$f
e1b0: 69 6c 65 27 20 74 6f 20 61 20 64 69 72 65 63 74  ile' to a direct
e1c0: 6f 72 79 20 6e 6f 74 20 65 6e 64 69 6e 67 20 69  ory not ending i
e1d0: 6e 20 24 6c 69 62 64 69 72 22 0a 0a 09 20 20 69  n $libdir"...  i
e1e0: 66 20 74 65 73 74 20 2d 6e 20 22 24 69 6e 73 74  f test -n "$inst
e1f0: 5f 70 72 65 66 69 78 5f 64 69 72 22 3b 20 74 68  _prefix_dir"; th
e200: 65 6e 0a 09 20 20 20 20 23 20 53 74 69 63 6b 20  en..    # Stick 
e210: 74 68 65 20 69 6e 73 74 5f 70 72 65 66 69 78 5f  the inst_prefix_
e220: 64 69 72 20 64 61 74 61 20 69 6e 74 6f 20 74 68  dir data into th
e230: 65 20 6c 69 6e 6b 20 63 6f 6d 6d 61 6e 64 2e 0a  e link command..
e240: 09 20 20 20 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d  .    relink_comm
e250: 61 6e 64 3d 60 24 45 43 48 4f 20 22 58 24 72 65  and=`$ECHO "X$re
e260: 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20  link_command" | 
e270: 24 58 73 65 64 20 2d 65 20 22 73 25 40 69 6e 73  $Xsed -e "s%@ins
e280: 74 5f 70 72 65 66 69 78 5f 64 69 72 40 25 2d 69  t_prefix_dir@%-i
e290: 6e 73 74 2d 70 72 65 66 69 78 2d 64 69 72 20 24  nst-prefix-dir $
e2a0: 69 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 25  inst_prefix_dir%
e2b0: 22 60 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20  "`..  else..    
e2c0: 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 60  relink_command=`
e2d0: 24 45 43 48 4f 20 22 58 24 72 65 6c 69 6e 6b 5f  $ECHO "X$relink_
e2e0: 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 58 73 65 64  command" | $Xsed
e2f0: 20 2d 65 20 22 73 25 40 69 6e 73 74 5f 70 72 65   -e "s%@inst_pre
e300: 66 69 78 5f 64 69 72 40 25 25 22 60 0a 09 20 20  fix_dir@%%"`..  
e310: 66 69 0a 0a 09 20 20 66 75 6e 63 5f 77 61 72 6e  fi...  func_warn
e320: 69 6e 67 20 22 72 65 6c 69 6e 6b 69 6e 67 20 5c  ing "relinking \
e330: 60 24 66 69 6c 65 27 22 0a 09 20 20 66 75 6e 63  `$file'"..  func
e340: 5f 73 68 6f 77 5f 65 76 61 6c 20 22 24 72 65 6c  _show_eval "$rel
e350: 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 20 5c 0a 09  ink_command" \..
e360: 20 20 20 20 27 66 75 6e 63 5f 66 61 74 61 6c 5f      'func_fatal_
e370: 65 72 72 6f 72 20 22 65 72 72 6f 72 3a 20 72 65  error "error: re
e380: 6c 69 6e 6b 20 5c 60 24 66 69 6c 65 27 5c 27 27  link \`$file'\''
e390: 20 77 69 74 68 20 74 68 65 20 61 62 6f 76 65 20   with the above 
e3a0: 63 6f 6d 6d 61 6e 64 20 62 65 66 6f 72 65 20 69  command before i
e3b0: 6e 73 74 61 6c 6c 69 6e 67 20 69 74 22 27 0a 09  nstalling it"'..
e3c0: 66 69 0a 0a 09 23 20 53 65 65 20 74 68 65 20 6e  fi...# See the n
e3d0: 61 6d 65 73 20 6f 66 20 74 68 65 20 73 68 61 72  ames of the shar
e3e0: 65 64 20 6c 69 62 72 61 72 79 2e 0a 09 73 65 74  ed library...set
e3f0: 20 64 75 6d 6d 79 20 24 6c 69 62 72 61 72 79 5f   dummy $library_
e400: 6e 61 6d 65 73 3b 20 73 68 69 66 74 0a 09 69 66  names; shift..if
e410: 20 74 65 73 74 20 2d 6e 20 22 24 31 22 3b 20 74   test -n "$1"; t
e420: 68 65 6e 0a 09 20 20 72 65 61 6c 6e 61 6d 65 3d  hen..  realname=
e430: 22 24 31 22 0a 09 20 20 73 68 69 66 74 0a 0a 09  "$1"..  shift...
e440: 20 20 73 72 63 6e 61 6d 65 3d 22 24 72 65 61 6c    srcname="$real
e450: 6e 61 6d 65 22 0a 09 20 20 74 65 73 74 20 2d 6e  name"..  test -n
e460: 20 22 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e   "$relink_comman
e470: 64 22 20 26 26 20 73 72 63 6e 61 6d 65 3d 22 24  d" && srcname="$
e480: 72 65 61 6c 6e 61 6d 65 22 54 0a 0a 09 20 20 23  realname"T...  #
e490: 20 49 6e 73 74 61 6c 6c 20 74 68 65 20 73 68 61   Install the sha
e4a0: 72 65 64 20 6c 69 62 72 61 72 79 20 61 6e 64 20  red library and 
e4b0: 62 75 69 6c 64 20 74 68 65 20 73 79 6d 6c 69 6e  build the symlin
e4c0: 6b 73 2e 0a 09 20 20 66 75 6e 63 5f 73 68 6f 77  ks...  func_show
e4d0: 5f 65 76 61 6c 20 22 24 69 6e 73 74 61 6c 6c 5f  _eval "$install_
e4e0: 70 72 6f 67 20 24 64 69 72 2f 24 73 72 63 6e 61  prog $dir/$srcna
e4f0: 6d 65 20 24 64 65 73 74 64 69 72 2f 24 72 65 61  me $destdir/$rea
e500: 6c 6e 61 6d 65 22 20 5c 0a 09 20 20 20 20 20 20  lname" \..      
e510: 27 65 78 69 74 20 24 3f 27 0a 09 20 20 74 73 74  'exit $?'..  tst
e520: 72 69 70 6d 65 3d 22 24 73 74 72 69 70 6d 65 22  ripme="$stripme"
e530: 0a 09 20 20 63 61 73 65 20 24 68 6f 73 74 5f 6f  ..  case $host_o
e540: 73 20 69 6e 0a 09 20 20 63 79 67 77 69 6e 2a 20  s in..  cygwin* 
e550: 7c 20 6d 69 6e 67 77 2a 20 7c 20 70 77 33 32 2a  | mingw* | pw32*
e560: 20 7c 20 63 65 67 63 63 2a 29 0a 09 20 20 20 20   | cegcc*)..    
e570: 63 61 73 65 20 24 72 65 61 6c 6e 61 6d 65 20 69  case $realname i
e580: 6e 0a 09 20 20 20 20 2a 2e 64 6c 6c 2e 61 29 0a  n..    *.dll.a).
e590: 09 20 20 20 20 20 20 74 73 74 72 69 70 6d 65 3d  .      tstripme=
e5a0: 22 22 0a 09 20 20 20 20 20 20 3b 3b 0a 09 20 20  ""..      ;;..  
e5b0: 20 20 65 73 61 63 0a 09 20 20 20 20 3b 3b 0a 09    esac..    ;;..
e5c0: 20 20 65 73 61 63 0a 09 20 20 69 66 20 74 65 73    esac..  if tes
e5d0: 74 20 2d 6e 20 22 24 74 73 74 72 69 70 6d 65 22  t -n "$tstripme"
e5e0: 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24 73 74   && test -n "$st
e5f0: 72 69 70 6c 69 62 22 3b 20 74 68 65 6e 0a 09 20  riplib"; then.. 
e600: 20 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61     func_show_eva
e610: 6c 20 22 24 73 74 72 69 70 6c 69 62 20 24 64 65  l "$striplib $de
e620: 73 74 64 69 72 2f 24 72 65 61 6c 6e 61 6d 65 22  stdir/$realname"
e630: 20 27 65 78 69 74 20 24 3f 27 0a 09 20 20 66 69   'exit $?'..  fi
e640: 0a 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 23  ...  if test "$#
e650: 22 20 2d 67 74 20 30 3b 20 74 68 65 6e 0a 09 20  " -gt 0; then.. 
e660: 20 20 20 23 20 44 65 6c 65 74 65 20 74 68 65 20     # Delete the 
e670: 6f 6c 64 20 73 79 6d 6c 69 6e 6b 73 2c 20 61 6e  old symlinks, an
e680: 64 20 63 72 65 61 74 65 20 6e 65 77 20 6f 6e 65  d create new one
e690: 73 2e 0a 09 20 20 20 20 23 20 54 72 79 20 60 6c  s...    # Try `l
e6a0: 6e 20 2d 73 66 27 20 66 69 72 73 74 2c 20 62 65  n -sf' first, be
e6b0: 63 61 75 73 65 20 74 68 65 20 60 6c 6e 27 20 62  cause the `ln' b
e6c0: 69 6e 61 72 79 20 6d 69 67 68 74 20 64 65 70 65  inary might depe
e6d0: 6e 64 20 6f 6e 0a 09 20 20 20 20 23 20 74 68 65  nd on..    # the
e6e0: 20 73 79 6d 6c 69 6e 6b 20 77 65 20 72 65 70 6c   symlink we repl
e6f0: 61 63 65 21 20 20 53 6f 6c 61 72 69 73 20 2f 62  ace!  Solaris /b
e700: 69 6e 2f 6c 6e 20 64 6f 65 73 20 6e 6f 74 20 75  in/ln does not u
e710: 6e 64 65 72 73 74 61 6e 64 20 2d 66 2c 0a 09 20  nderstand -f,.. 
e720: 20 20 20 23 20 73 6f 20 77 65 20 61 6c 73 6f 20     # so we also 
e730: 6e 65 65 64 20 74 6f 20 74 72 79 20 72 6d 20 26  need to try rm &
e740: 26 20 6c 6e 20 2d 73 2e 0a 09 20 20 20 20 66 6f  & ln -s...    fo
e750: 72 20 6c 69 6e 6b 6e 61 6d 65 0a 09 20 20 20 20  r linkname..    
e760: 64 6f 0a 09 20 20 20 20 20 20 74 65 73 74 20 22  do..      test "
e770: 24 6c 69 6e 6b 6e 61 6d 65 22 20 21 3d 20 22 24  $linkname" != "$
e780: 72 65 61 6c 6e 61 6d 65 22 20 5c 0a 09 09 26 26  realname" \...&&
e790: 20 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20   func_show_eval 
e7a0: 22 28 63 64 20 24 64 65 73 74 64 69 72 20 26 26  "(cd $destdir &&
e7b0: 20 7b 20 24 4c 4e 5f 53 20 2d 66 20 24 72 65 61   { $LN_S -f $rea
e7c0: 6c 6e 61 6d 65 20 24 6c 69 6e 6b 6e 61 6d 65 20  lname $linkname 
e7d0: 7c 7c 20 7b 20 24 52 4d 20 24 6c 69 6e 6b 6e 61  || { $RM $linkna
e7e0: 6d 65 20 26 26 20 24 4c 4e 5f 53 20 24 72 65 61  me && $LN_S $rea
e7f0: 6c 6e 61 6d 65 20 24 6c 69 6e 6b 6e 61 6d 65 3b  lname $linkname;
e800: 20 7d 3b 20 7d 29 22 0a 09 20 20 20 20 64 6f 6e   }; })"..    don
e810: 65 0a 09 20 20 66 69 0a 0a 09 20 20 23 20 44 6f  e..  fi...  # Do
e820: 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 6e   each command in
e830: 20 74 68 65 20 70 6f 73 74 69 6e 73 74 61 6c 6c   the postinstall
e840: 20 63 6f 6d 6d 61 6e 64 73 2e 0a 09 20 20 6c 69   commands...  li
e850: 62 3d 22 24 64 65 73 74 64 69 72 2f 24 72 65 61  b="$destdir/$rea
e860: 6c 6e 61 6d 65 22 0a 09 20 20 66 75 6e 63 5f 65  lname"..  func_e
e870: 78 65 63 75 74 65 5f 63 6d 64 73 20 22 24 70 6f  xecute_cmds "$po
e880: 73 74 69 6e 73 74 61 6c 6c 5f 63 6d 64 73 22 20  stinstall_cmds" 
e890: 27 65 78 69 74 20 24 3f 27 0a 09 66 69 0a 0a 09  'exit $?'..fi...
e8a0: 23 20 49 6e 73 74 61 6c 6c 20 74 68 65 20 70 73  # Install the ps
e8b0: 65 75 64 6f 2d 6c 69 62 72 61 72 79 20 66 6f 72  eudo-library for
e8c0: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 75 72   information pur
e8d0: 70 6f 73 65 73 2e 0a 09 66 75 6e 63 5f 62 61 73  poses...func_bas
e8e0: 65 6e 61 6d 65 20 22 24 66 69 6c 65 22 0a 09 6e  ename "$file"..n
e8f0: 61 6d 65 3d 22 24 66 75 6e 63 5f 62 61 73 65 6e  ame="$func_basen
e900: 61 6d 65 5f 72 65 73 75 6c 74 22 0a 09 69 6e 73  ame_result"..ins
e910: 74 6e 61 6d 65 3d 22 24 64 69 72 2f 24 6e 61 6d  tname="$dir/$nam
e920: 65 22 69 0a 09 66 75 6e 63 5f 73 68 6f 77 5f 65  e"i..func_show_e
e930: 76 61 6c 20 22 24 69 6e 73 74 61 6c 6c 5f 70 72  val "$install_pr
e940: 6f 67 20 24 69 6e 73 74 6e 61 6d 65 20 24 64 65  og $instname $de
e950: 73 74 64 69 72 2f 24 6e 61 6d 65 22 20 27 65 78  stdir/$name" 'ex
e960: 69 74 20 24 3f 27 0a 0a 09 23 20 4d 61 79 62 65  it $?'...# Maybe
e970: 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 73 74 61   install the sta
e980: 74 69 63 20 6c 69 62 72 61 72 79 2c 20 74 6f 6f  tic library, too
e990: 2e 0a 09 74 65 73 74 20 2d 6e 20 22 24 6f 6c 64  ...test -n "$old
e9a0: 5f 6c 69 62 72 61 72 79 22 20 26 26 20 73 74 61  _library" && sta
e9b0: 74 69 63 6c 69 62 73 3d 22 24 73 74 61 74 69 63  ticlibs="$static
e9c0: 6c 69 62 73 20 24 64 69 72 2f 24 6f 6c 64 5f 6c  libs $dir/$old_l
e9d0: 69 62 72 61 72 79 22 0a 09 3b 3b 0a 0a 20 20 20  ibrary"..;;..   
e9e0: 20 20 20 2a 2e 6c 6f 29 0a 09 23 20 49 6e 73 74     *.lo)..# Inst
e9f0: 61 6c 6c 20 28 69 2e 65 2e 20 63 6f 70 79 29 20  all (i.e. copy) 
ea00: 61 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65 63 74  a libtool object
ea10: 2e 0a 0a 09 23 20 46 69 67 75 72 65 20 6f 75 74  ....# Figure out
ea20: 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69 6c   destination fil
ea30: 65 20 6e 61 6d 65 2c 20 69 66 20 69 74 20 77 61  e name, if it wa
ea40: 73 6e 27 74 20 61 6c 72 65 61 64 79 20 73 70 65  sn't already spe
ea50: 63 69 66 69 65 64 2e 0a 09 69 66 20 74 65 73 74  cified...if test
ea60: 20 2d 6e 20 22 24 64 65 73 74 6e 61 6d 65 22 3b   -n "$destname";
ea70: 20 74 68 65 6e 0a 09 20 20 64 65 73 74 66 69 6c   then..  destfil
ea80: 65 3d 22 24 64 65 73 74 64 69 72 2f 24 64 65 73  e="$destdir/$des
ea90: 74 6e 61 6d 65 22 0a 09 65 6c 73 65 0a 09 20 20  tname"..else..  
eaa0: 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22 24  func_basename "$
eab0: 66 69 6c 65 22 0a 09 20 20 64 65 73 74 66 69 6c  file"..  destfil
eac0: 65 3d 22 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d  e="$func_basenam
ead0: 65 5f 72 65 73 75 6c 74 22 0a 09 20 20 64 65 73  e_result"..  des
eae0: 74 66 69 6c 65 3d 22 24 64 65 73 74 64 69 72 2f  tfile="$destdir/
eaf0: 24 64 65 73 74 66 69 6c 65 22 0a 09 66 69 0a 0a  $destfile"..fi..
eb00: 09 23 20 44 65 64 75 63 65 20 74 68 65 20 6e 61  .# Deduce the na
eb10: 6d 65 20 6f 66 20 74 68 65 20 64 65 73 74 69 6e  me of the destin
eb20: 61 74 69 6f 6e 20 6f 6c 64 2d 73 74 79 6c 65 20  ation old-style 
eb30: 6f 62 6a 65 63 74 20 66 69 6c 65 2e 0a 09 63 61  object file...ca
eb40: 73 65 20 24 64 65 73 74 66 69 6c 65 20 69 6e 0a  se $destfile in.
eb50: 09 2a 2e 6c 6f 29 0a 09 20 20 66 75 6e 63 5f 6c  .*.lo)..  func_l
eb60: 6f 32 6f 20 22 24 64 65 73 74 66 69 6c 65 22 0a  o2o "$destfile".
eb70: 09 20 20 73 74 61 74 69 63 64 65 73 74 3d 24 66  .  staticdest=$f
eb80: 75 6e 63 5f 6c 6f 32 6f 5f 72 65 73 75 6c 74 0a  unc_lo2o_result.
eb90: 09 20 20 3b 3b 0a 09 2a 2e 24 6f 62 6a 65 78 74  .  ;;..*.$objext
eba0: 29 0a 09 20 20 73 74 61 74 69 63 64 65 73 74 3d  )..  staticdest=
ebb0: 22 24 64 65 73 74 66 69 6c 65 22 0a 09 20 20 64  "$destfile"..  d
ebc0: 65 73 74 66 69 6c 65 3d 0a 09 20 20 3b 3b 0a 09  estfile=..  ;;..
ebd0: 2a 29 0a 09 20 20 66 75 6e 63 5f 66 61 74 61 6c  *)..  func_fatal
ebe0: 5f 68 65 6c 70 20 22 63 61 6e 6e 6f 74 20 63 6f  _help "cannot co
ebf0: 70 79 20 61 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a  py a libtool obj
ec00: 65 63 74 20 74 6f 20 5c 60 24 64 65 73 74 66 69  ect to \`$destfi
ec10: 6c 65 27 22 0a 09 20 20 3b 3b 0a 09 65 73 61 63  le'"..  ;;..esac
ec20: 0a 0a 09 23 20 49 6e 73 74 61 6c 6c 20 74 68 65  ...# Install the
ec30: 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65 63 74 20   libtool object 
ec40: 69 66 20 72 65 71 75 65 73 74 65 64 2e 0a 09 74  if requested...t
ec50: 65 73 74 20 2d 6e 20 22 24 64 65 73 74 66 69 6c  est -n "$destfil
ec60: 65 22 20 26 26 20 5c 0a 09 20 20 66 75 6e 63 5f  e" && \..  func_
ec70: 73 68 6f 77 5f 65 76 61 6c 20 22 24 69 6e 73 74  show_eval "$inst
ec80: 61 6c 6c 5f 70 72 6f 67 20 24 66 69 6c 65 20 24  all_prog $file $
ec90: 64 65 73 74 66 69 6c 65 22 20 27 65 78 69 74 20  destfile" 'exit 
eca0: 24 3f 27 0a 0a 09 23 20 49 6e 73 74 61 6c 6c 20  $?'...# Install 
ecb0: 74 68 65 20 6f 6c 64 20 6f 62 6a 65 63 74 20 69  the old object i
ecc0: 66 20 65 6e 61 62 6c 65 64 2e 0a 09 69 66 20 74  f enabled...if t
ecd0: 65 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c 64 5f  est "$build_old_
ece0: 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74 68 65  libs" = yes; the
ecf0: 6e 0a 09 20 20 23 20 44 65 64 75 63 65 20 74 68  n..  # Deduce th
ed00: 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6f 6c  e name of the ol
ed10: 64 2d 73 74 79 6c 65 20 6f 62 6a 65 63 74 20 66  d-style object f
ed20: 69 6c 65 2e 0a 09 20 20 66 75 6e 63 5f 6c 6f 32  ile...  func_lo2
ed30: 6f 20 22 24 66 69 6c 65 22 0a 09 20 20 73 74 61  o "$file"..  sta
ed40: 74 69 63 6f 62 6a 3d 24 66 75 6e 63 5f 6c 6f 32  ticobj=$func_lo2
ed50: 6f 5f 72 65 73 75 6c 74 0a 09 20 20 66 75 6e 63  o_result..  func
ed60: 5f 73 68 6f 77 5f 65 76 61 6c 20 22 24 69 6e 73  _show_eval "$ins
ed70: 74 61 6c 6c 5f 70 72 6f 67 20 5c 24 73 74 61 74  tall_prog \$stat
ed80: 69 63 6f 62 6a 20 5c 24 73 74 61 74 69 63 64 65  icobj \$staticde
ed90: 73 74 22 20 27 65 78 69 74 20 24 3f 27 0a 09 66  st" 'exit $?'..f
eda0: 69 0a 09 65 78 69 74 20 24 45 58 49 54 5f 53 55  i..exit $EXIT_SU
edb0: 43 43 45 53 53 0a 09 3b 3b 0a 0a 20 20 20 20 20  CCESS..;;..     
edc0: 20 2a 29 0a 09 23 20 46 69 67 75 72 65 20 6f 75   *)..# Figure ou
edd0: 74 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 69  t destination fi
ede0: 6c 65 20 6e 61 6d 65 2c 20 69 66 20 69 74 20 77  le name, if it w
edf0: 61 73 6e 27 74 20 61 6c 72 65 61 64 79 20 73 70  asn't already sp
ee00: 65 63 69 66 69 65 64 2e 0a 09 69 66 20 74 65 73  ecified...if tes
ee10: 74 20 2d 6e 20 22 24 64 65 73 74 6e 61 6d 65 22  t -n "$destname"
ee20: 3b 20 74 68 65 6e 0a 09 20 20 64 65 73 74 66 69  ; then..  destfi
ee30: 6c 65 3d 22 24 64 65 73 74 64 69 72 2f 24 64 65  le="$destdir/$de
ee40: 73 74 6e 61 6d 65 22 0a 09 65 6c 73 65 0a 09 20  stname"..else.. 
ee50: 20 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22   func_basename "
ee60: 24 66 69 6c 65 22 0a 09 20 20 64 65 73 74 66 69  $file"..  destfi
ee70: 6c 65 3d 22 24 66 75 6e 63 5f 62 61 73 65 6e 61  le="$func_basena
ee80: 6d 65 5f 72 65 73 75 6c 74 22 0a 09 20 20 64 65  me_result"..  de
ee90: 73 74 66 69 6c 65 3d 22 24 64 65 73 74 64 69 72  stfile="$destdir
eea0: 2f 24 64 65 73 74 66 69 6c 65 22 0a 09 66 69 0a  /$destfile"..fi.
eeb0: 0a 09 23 20 49 66 20 74 68 65 20 66 69 6c 65 20  ..# If the file 
eec0: 69 73 20 6d 69 73 73 69 6e 67 2c 20 61 6e 64 20  is missing, and 
eed0: 74 68 65 72 65 20 69 73 20 61 20 2e 65 78 65 20  there is a .exe 
eee0: 6f 6e 20 74 68 65 20 65 6e 64 2c 20 73 74 72 69  on the end, stri
eef0: 70 20 69 74 0a 09 23 20 62 65 63 61 75 73 65 20  p it..# because 
ef00: 69 74 20 69 73 20 6d 6f 73 74 20 6c 69 6b 65 6c  it is most likel
ef10: 79 20 61 20 6c 69 62 74 6f 6f 6c 20 73 63 72 69  y a libtool scri
ef20: 70 74 20 77 65 20 61 63 74 75 61 6c 6c 79 20 77  pt we actually w
ef30: 61 6e 74 20 74 6f 0a 09 23 20 69 6e 73 74 61 6c  ant to..# instal
ef40: 6c 0a 09 73 74 72 69 70 70 65 64 5f 65 78 74 3d  l..stripped_ext=
ef50: 22 22 0a 09 63 61 73 65 20 24 66 69 6c 65 20 69  ""..case $file i
ef60: 6e 0a 09 20 20 2a 2e 65 78 65 29 0a 09 20 20 20  n..  *.exe)..   
ef70: 20 69 66 20 74 65 73 74 20 21 20 2d 66 20 22 24   if test ! -f "$
ef80: 66 69 6c 65 22 3b 20 74 68 65 6e 0a 09 20 20 20  file"; then..   
ef90: 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d     func_stripnam
efa0: 65 20 27 27 20 27 2e 65 78 65 27 20 22 24 66 69  e '' '.exe' "$fi
efb0: 6c 65 22 0a 09 20 20 20 20 20 20 66 69 6c 65 3d  le"..      file=
efc0: 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f  $func_stripname_
efd0: 72 65 73 75 6c 74 0a 09 20 20 20 20 20 20 73 74  result..      st
efe0: 72 69 70 70 65 64 5f 65 78 74 3d 22 2e 65 78 65  ripped_ext=".exe
eff0: 22 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 3b  "..    fi..    ;
f000: 3b 0a 09 65 73 61 63 0a 0a 09 23 20 44 6f 20 61  ;..esac...# Do a
f010: 20 74 65 73 74 20 74 6f 20 73 65 65 20 69 66 20   test to see if 
f020: 74 68 69 73 20 69 73 20 72 65 61 6c 6c 79 20 61  this is really a
f030: 20 6c 69 62 74 6f 6f 6c 20 70 72 6f 67 72 61 6d   libtool program
f040: 2e 0a 09 63 61 73 65 20 24 68 6f 73 74 20 69 6e  ...case $host in
f050: 0a 09 2a 63 79 67 77 69 6e 2a 20 7c 20 2a 6d 69  ..*cygwin* | *mi
f060: 6e 67 77 2a 29 0a 09 20 20 20 20 69 66 20 66 75  ngw*)..    if fu
f070: 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f 65 78 65  nc_ltwrapper_exe
f080: 63 75 74 61 62 6c 65 5f 70 20 22 24 66 69 6c 65  cutable_p "$file
f090: 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 66  "; then..      f
f0a0: 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f 73 63  unc_ltwrapper_sc
f0b0: 72 69 70 74 6e 61 6d 65 20 22 24 66 69 6c 65 22  riptname "$file"
f0c0: 0a 09 20 20 20 20 20 20 77 72 61 70 70 65 72 3d  ..      wrapper=
f0d0: 24 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f  $func_ltwrapper_
f0e0: 73 63 72 69 70 74 6e 61 6d 65 5f 72 65 73 75 6c  scriptname_resul
f0f0: 74 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20  t..    else..   
f100: 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d     func_stripnam
f110: 65 20 27 27 20 27 2e 65 78 65 27 20 22 24 66 69  e '' '.exe' "$fi
f120: 6c 65 22 0a 09 20 20 20 20 20 20 77 72 61 70 70  le"..      wrapp
f130: 65 72 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61  er=$func_stripna
f140: 6d 65 5f 72 65 73 75 6c 74 0a 09 20 20 20 20 66  me_result..    f
f150: 69 0a 09 20 20 20 20 3b 3b 0a 09 2a 29 0a 09 20  i..    ;;..*).. 
f160: 20 20 20 77 72 61 70 70 65 72 3d 24 66 69 6c 65     wrapper=$file
f170: 0a 09 20 20 20 20 3b 3b 0a 09 65 73 61 63 0a 09  ..    ;;..esac..
f180: 69 66 20 66 75 6e 63 5f 6c 74 77 72 61 70 70 65  if func_ltwrappe
f190: 72 5f 73 63 72 69 70 74 5f 70 20 22 24 77 72 61  r_script_p "$wra
f1a0: 70 70 65 72 22 3b 20 74 68 65 6e 0a 09 20 20 6e  pper"; then..  n
f1b0: 6f 74 69 6e 73 74 5f 64 65 70 6c 69 62 73 3d 0a  otinst_deplibs=.
f1c0: 09 20 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e  .  relink_comman
f1d0: 64 3d 0a 0a 09 20 20 66 75 6e 63 5f 73 6f 75 72  d=...  func_sour
f1e0: 63 65 20 22 24 77 72 61 70 70 65 72 22 0a 0a 09  ce "$wrapper"...
f1f0: 20 20 23 20 43 68 65 63 6b 20 74 68 65 20 76 61    # Check the va
f200: 72 69 61 62 6c 65 73 20 74 68 61 74 20 73 68 6f  riables that sho
f210: 75 6c 64 20 68 61 76 65 20 62 65 65 6e 20 73 65  uld have been se
f220: 74 2e 0a 09 20 20 74 65 73 74 20 2d 7a 20 22 24  t...  test -z "$
f230: 67 65 6e 65 72 61 74 65 64 5f 62 79 5f 6c 69 62  generated_by_lib
f240: 74 6f 6f 6c 5f 76 65 72 73 69 6f 6e 22 20 26 26  tool_version" &&
f250: 20 5c 0a 09 20 20 20 20 66 75 6e 63 5f 66 61 74   \..    func_fat
f260: 61 6c 5f 65 72 72 6f 72 20 22 69 6e 76 61 6c 69  al_error "invali
f270: 64 20 6c 69 62 74 6f 6f 6c 20 77 72 61 70 70 65  d libtool wrappe
f280: 72 20 73 63 72 69 70 74 20 5c 60 24 77 72 61 70  r script \`$wrap
f290: 70 65 72 27 22 0a 0a 09 20 20 66 69 6e 61 6c 69  per'"...  finali
f2a0: 7a 65 3d 79 65 73 0a 09 20 20 66 6f 72 20 6c 69  ze=yes..  for li
f2b0: 62 20 69 6e 20 24 6e 6f 74 69 6e 73 74 5f 64 65  b in $notinst_de
f2c0: 70 6c 69 62 73 3b 20 64 6f 0a 09 20 20 20 20 23  plibs; do..    #
f2d0: 20 43 68 65 63 6b 20 74 6f 20 73 65 65 20 74 68   Check to see th
f2e0: 61 74 20 65 61 63 68 20 6c 69 62 72 61 72 79 20  at each library 
f2f0: 69 73 20 69 6e 73 74 61 6c 6c 65 64 2e 0a 09 20  is installed... 
f300: 20 20 20 6c 69 62 64 69 72 3d 0a 09 20 20 20 20     libdir=..    
f310: 69 66 20 74 65 73 74 20 2d 66 20 22 24 6c 69 62  if test -f "$lib
f320: 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 66  "; then..      f
f330: 75 6e 63 5f 73 6f 75 72 63 65 20 22 24 6c 69 62  unc_source "$lib
f340: 22 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 6c  "..    fi..    l
f350: 69 62 66 69 6c 65 3d 22 24 6c 69 62 64 69 72 2f  ibfile="$libdir/
f360: 22 60 24 45 43 48 4f 20 22 58 24 6c 69 62 22 20  "`$ECHO "X$lib" 
f370: 7c 20 24 58 73 65 64 20 2d 65 20 27 73 25 5e 2e  | $Xsed -e 's%^.
f380: 2a 2f 25 25 67 27 60 20 23 23 23 20 74 65 73 74  */%%g'` ### test
f390: 73 75 69 74 65 3a 20 73 6b 69 70 20 6e 65 73 74  suite: skip nest
f3a0: 65 64 20 71 75 6f 74 69 6e 67 20 74 65 73 74 0a  ed quoting test.
f3b0: 09 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20  .    if test -n 
f3c0: 22 24 6c 69 62 64 69 72 22 20 26 26 20 74 65 73  "$libdir" && tes
f3d0: 74 20 21 20 2d 66 20 22 24 6c 69 62 66 69 6c 65  t ! -f "$libfile
f3e0: 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 66  "; then..      f
f3f0: 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 24  unc_warning "\`$
f400: 6c 69 62 27 20 68 61 73 20 6e 6f 74 20 62 65 65  lib' has not bee
f410: 6e 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 20 5c  n installed in \
f420: 60 24 6c 69 62 64 69 72 27 22 0a 09 20 20 20 20  `$libdir'"..    
f430: 20 20 66 69 6e 61 6c 69 7a 65 3d 6e 6f 0a 09 20    finalize=no.. 
f440: 20 20 20 66 69 0a 09 20 20 64 6f 6e 65 0a 0a 09     fi..  done...
f450: 20 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64    relink_command
f460: 3d 0a 09 20 20 66 75 6e 63 5f 73 6f 75 72 63 65  =..  func_source
f470: 20 22 24 77 72 61 70 70 65 72 22 0a 0a 09 20 20   "$wrapper"...  
f480: 6f 75 74 70 75 74 6e 61 6d 65 3d 0a 09 20 20 69  outputname=..  i
f490: 66 20 74 65 73 74 20 22 24 66 61 73 74 5f 69 6e  f test "$fast_in
f4a0: 73 74 61 6c 6c 22 20 3d 20 6e 6f 20 26 26 20 74  stall" = no && t
f4b0: 65 73 74 20 2d 6e 20 22 24 72 65 6c 69 6e 6b 5f  est -n "$relink_
f4c0: 63 6f 6d 6d 61 6e 64 22 3b 20 74 68 65 6e 0a 09  command"; then..
f4d0: 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e      $opt_dry_run
f4e0: 20 7c 7c 20 7b 0a 09 20 20 20 20 20 20 69 66 20   || {..      if 
f4f0: 74 65 73 74 20 22 24 66 69 6e 61 6c 69 7a 65 22  test "$finalize"
f500: 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20   = yes; then..  
f510: 20 20 20 20 20 20 74 6d 70 64 69 72 3d 60 66 75        tmpdir=`fu
f520: 6e 63 5f 6d 6b 74 65 6d 70 64 69 72 60 0a 09 09  nc_mktempdir`...
f530: 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22 24  func_basename "$
f540: 66 69 6c 65 24 73 74 72 69 70 70 65 64 5f 65 78  file$stripped_ex
f550: 74 22 0a 09 09 66 69 6c 65 3d 22 24 66 75 6e 63  t"...file="$func
f560: 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74  _basename_result
f570: 22 0a 09 20 20 20 20 20 20 20 20 6f 75 74 70 75  "..        outpu
f580: 74 6e 61 6d 65 3d 22 24 74 6d 70 64 69 72 2f 24  tname="$tmpdir/$
f590: 66 69 6c 65 22 0a 09 20 20 20 20 20 20 20 20 23  file"..        #
f5a0: 20 52 65 70 6c 61 63 65 20 74 68 65 20 6f 75 74   Replace the out
f5b0: 70 75 74 20 66 69 6c 65 20 73 70 65 63 69 66 69  put file specifi
f5c0: 63 61 74 69 6f 6e 2e 0a 09 20 20 20 20 20 20 20  cation...       
f5d0: 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d   relink_command=
f5e0: 60 24 45 43 48 4f 20 22 58 24 72 65 6c 69 6e 6b  `$ECHO "X$relink
f5f0: 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 58 73 65  _command" | $Xse
f600: 64 20 2d 65 20 27 73 25 40 4f 55 54 50 55 54 40  d -e 's%@OUTPUT@
f610: 25 27 22 24 6f 75 74 70 75 74 6e 61 6d 65 22 27  %'"$outputname"'
f620: 25 67 27 60 0a 0a 09 20 20 20 20 20 20 20 20 24  %g'`...        $
f630: 6f 70 74 5f 73 69 6c 65 6e 74 20 7c 7c 20 7b 0a  opt_silent || {.
f640: 09 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f  .          func_
f650: 71 75 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64  quote_for_expand
f660: 20 22 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e   "$relink_comman
f670: 64 22 0a 09 09 20 20 65 76 61 6c 20 22 66 75 6e  d"...  eval "fun
f680: 63 5f 65 63 68 6f 20 24 66 75 6e 63 5f 71 75 6f  c_echo $func_quo
f690: 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 5f 72 65  te_for_expand_re
f6a0: 73 75 6c 74 22 0a 09 20 20 20 20 20 20 20 20 7d  sult"..        }
f6b0: 0a 09 20 20 20 20 20 20 20 20 69 66 20 65 76 61  ..        if eva
f6c0: 6c 20 22 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61  l "$relink_comma
f6d0: 6e 64 22 3b 20 74 68 65 6e 20 3a 0a 09 20 20 20  nd"; then :..   
f6e0: 20 20 20 20 20 20 20 65 6c 73 65 0a 09 09 20 20         else...  
f6f0: 66 75 6e 63 5f 65 72 72 6f 72 20 22 65 72 72 6f  func_error "erro
f700: 72 3a 20 72 65 6c 69 6e 6b 20 5c 60 24 66 69 6c  r: relink \`$fil
f710: 65 27 20 77 69 74 68 20 74 68 65 20 61 62 6f 76  e' with the abov
f720: 65 20 63 6f 6d 6d 61 6e 64 20 62 65 66 6f 72 65  e command before
f730: 20 69 6e 73 74 61 6c 6c 69 6e 67 20 69 74 22 0a   installing it".
f740: 09 09 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e  ..  $opt_dry_run
f750: 20 7c 7c 20 24 7b 52 4d 7d 72 20 22 24 74 6d 70   || ${RM}r "$tmp
f760: 64 69 72 22 0a 09 09 20 20 63 6f 6e 74 69 6e 75  dir"...  continu
f770: 65 0a 09 20 20 20 20 20 20 20 20 66 69 0a 09 20  e..        fi.. 
f780: 20 20 20 20 20 20 20 66 69 6c 65 3d 22 24 6f 75         file="$ou
f790: 74 70 75 74 6e 61 6d 65 22 0a 09 20 20 20 20 20  tputname"..     
f7a0: 20 65 6c 73 65 0a 09 20 20 20 20 20 20 20 20 66   else..        f
f7b0: 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 63 61 6e  unc_warning "can
f7c0: 6e 6f 74 20 72 65 6c 69 6e 6b 20 5c 60 24 66 69  not relink \`$fi
f7d0: 6c 65 27 22 0a 09 20 20 20 20 20 20 66 69 0a 09  le'"..      fi..
f7e0: 20 20 20 20 7d 0a 09 20 20 65 6c 73 65 0a 09 20      }..  else.. 
f7f0: 20 20 20 23 20 49 6e 73 74 61 6c 6c 20 74 68 65     # Install the
f800: 20 62 69 6e 61 72 79 20 74 68 61 74 20 77 65 20   binary that we 
f810: 63 6f 6d 70 69 6c 65 64 20 65 61 72 6c 69 65 72  compiled earlier
f820: 2e 0a 09 20 20 20 20 66 69 6c 65 3d 60 24 45 43  ...    file=`$EC
f830: 48 4f 20 22 58 24 66 69 6c 65 24 73 74 72 69 70  HO "X$file$strip
f840: 70 65 64 5f 65 78 74 22 20 7c 20 24 58 73 65 64  ped_ext" | $Xsed
f850: 20 2d 65 20 22 73 25 5c 28 5b 5e 2f 5d 2a 5c 29   -e "s%\([^/]*\)
f860: 24 25 24 6f 62 6a 64 69 72 2f 5c 31 25 22 60 0a  $%$objdir/\1%"`.
f870: 09 20 20 66 69 0a 09 66 69 0a 0a 09 23 20 72 65  .  fi..fi...# re
f880: 6d 6f 76 65 20 2e 65 78 65 20 73 69 6e 63 65 20  move .exe since 
f890: 63 79 67 77 69 6e 20 2f 75 73 72 2f 62 69 6e 2f  cygwin /usr/bin/
f8a0: 69 6e 73 74 61 6c 6c 20 77 69 6c 6c 20 61 70 70  install will app
f8b0: 65 6e 64 20 61 6e 6f 74 68 65 72 0a 09 23 20 6f  end another..# o
f8c0: 6e 65 20 61 6e 79 77 61 79 0a 09 63 61 73 65 20  ne anyway..case 
f8d0: 24 69 6e 73 74 61 6c 6c 5f 70 72 6f 67 2c 24 68  $install_prog,$h
f8e0: 6f 73 74 20 69 6e 0a 09 2a 2f 75 73 72 2f 62 69  ost in..*/usr/bi
f8f0: 6e 2f 69 6e 73 74 61 6c 6c 2a 2c 2a 63 79 67 77  n/install*,*cygw
f900: 69 6e 2a 29 0a 09 20 20 63 61 73 65 20 24 66 69  in*)..  case $fi
f910: 6c 65 3a 24 64 65 73 74 66 69 6c 65 20 69 6e 0a  le:$destfile in.
f920: 09 20 20 2a 2e 65 78 65 3a 2a 2e 65 78 65 29 0a  .  *.exe:*.exe).
f930: 09 20 20 20 20 23 20 74 68 69 73 20 69 73 20 6f  .    # this is o
f940: 6b 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a 2e 65  k..    ;;..  *.e
f950: 78 65 3a 2a 29 0a 09 20 20 20 20 64 65 73 74 66  xe:*)..    destf
f960: 69 6c 65 3d 24 64 65 73 74 66 69 6c 65 2e 65 78  ile=$destfile.ex
f970: 65 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a 3a 2a  e..    ;;..  *:*
f980: 2e 65 78 65 29 0a 09 20 20 20 20 66 75 6e 63 5f  .exe)..    func_
f990: 73 74 72 69 70 6e 61 6d 65 20 27 27 20 27 2e 65  stripname '' '.e
f9a0: 78 65 27 20 22 24 64 65 73 74 66 69 6c 65 22 0a  xe' "$destfile".
f9b0: 09 20 20 20 20 64 65 73 74 66 69 6c 65 3d 24 66  .    destfile=$f
f9c0: 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65  unc_stripname_re
f9d0: 73 75 6c 74 0a 09 20 20 20 20 3b 3b 0a 09 20 20  sult..    ;;..  
f9e0: 65 73 61 63 0a 09 20 20 3b 3b 0a 09 65 73 61 63  esac..  ;;..esac
f9f0: 0a 09 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c  ..func_show_eval
fa00: 20 22 24 69 6e 73 74 61 6c 6c 5f 70 72 6f 67 5c   "$install_prog\
fa10: 24 73 74 72 69 70 6d 65 20 5c 24 66 69 6c 65 20  $stripme \$file 
fa20: 5c 24 64 65 73 74 66 69 6c 65 22 20 27 65 78 69  \$destfile" 'exi
fa30: 74 20 24 3f 27 0a 09 24 6f 70 74 5f 64 72 79 5f  t $?'..$opt_dry_
fa40: 72 75 6e 20 7c 7c 20 69 66 20 74 65 73 74 20 2d  run || if test -
fa50: 6e 20 22 24 6f 75 74 70 75 74 6e 61 6d 65 22 3b  n "$outputname";
fa60: 20 74 68 65 6e 0a 09 20 20 24 7b 52 4d 7d 72 20   then..  ${RM}r 
fa70: 22 24 74 6d 70 64 69 72 22 0a 09 66 69 0a 09 3b  "$tmpdir"..fi..;
fa80: 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 20 20 20  ;.      esac.   
fa90: 20 64 6f 6e 65 0a 0a 20 20 20 20 66 6f 72 20 66   done..    for f
faa0: 69 6c 65 20 69 6e 20 24 73 74 61 74 69 63 6c 69  ile in $staticli
fab0: 62 73 3b 20 64 6f 0a 20 20 20 20 20 20 66 75 6e  bs; do.      fun
fac0: 63 5f 62 61 73 65 6e 61 6d 65 20 22 24 66 69 6c  c_basename "$fil
fad0: 65 22 0a 20 20 20 20 20 20 6e 61 6d 65 3d 22 24  e".      name="$
fae0: 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65  func_basename_re
faf0: 73 75 6c 74 22 0a 0a 20 20 20 20 20 20 23 20 53  sult"..      # S
fb00: 65 74 20 75 70 20 74 68 65 20 72 61 6e 6c 69 62  et up the ranlib
fb10: 20 70 61 72 61 6d 65 74 65 72 73 2e 0a 20 20 20   parameters..   
fb20: 20 20 20 6f 6c 64 6c 69 62 3d 22 24 64 65 73 74     oldlib="$dest
fb30: 64 69 72 2f 24 6e 61 6d 65 22 0a 0a 20 20 20 20  dir/$name"..    
fb40: 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c    func_show_eval
fb50: 20 22 24 69 6e 73 74 61 6c 6c 5f 70 72 6f 67 20   "$install_prog 
fb60: 5c 24 66 69 6c 65 20 5c 24 6f 6c 64 6c 69 62 22  \$file \$oldlib"
fb70: 20 27 65 78 69 74 20 24 3f 27 0a 0a 20 20 20 20   'exit $?'..    
fb80: 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 73    if test -n "$s
fb90: 74 72 69 70 6d 65 22 20 26 26 20 74 65 73 74 20  tripme" && test 
fba0: 2d 6e 20 22 24 6f 6c 64 5f 73 74 72 69 70 6c 69  -n "$old_stripli
fbb0: 62 22 3b 20 74 68 65 6e 0a 09 66 75 6e 63 5f 73  b"; then..func_s
fbc0: 68 6f 77 5f 65 76 61 6c 20 22 24 6f 6c 64 5f 73  how_eval "$old_s
fbd0: 74 72 69 70 6c 69 62 20 24 6f 6c 64 6c 69 62 22  triplib $oldlib"
fbe0: 20 27 65 78 69 74 20 24 3f 27 0a 20 20 20 20 20   'exit $?'.     
fbf0: 20 66 69 0a 0a 20 20 20 20 20 20 23 20 44 6f 20   fi..      # Do 
fc00: 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  each command in 
fc10: 74 68 65 20 70 6f 73 74 69 6e 73 74 61 6c 6c 20  the postinstall 
fc20: 63 6f 6d 6d 61 6e 64 73 2e 0a 20 20 20 20 20 20  commands..      
fc30: 66 75 6e 63 5f 65 78 65 63 75 74 65 5f 63 6d 64  func_execute_cmd
fc40: 73 20 22 24 6f 6c 64 5f 70 6f 73 74 69 6e 73 74  s "$old_postinst
fc50: 61 6c 6c 5f 63 6d 64 73 22 20 27 65 78 69 74 20  all_cmds" 'exit 
fc60: 24 3f 27 0a 20 20 20 20 64 6f 6e 65 0a 0a 20 20  $?'.    done..  
fc70: 20 20 74 65 73 74 20 2d 6e 20 22 24 66 75 74 75    test -n "$futu
fc80: 72 65 5f 6c 69 62 64 69 72 73 22 20 26 26 20 5c  re_libdirs" && \
fc90: 0a 20 20 20 20 20 20 66 75 6e 63 5f 77 61 72 6e  .      func_warn
fca0: 69 6e 67 20 22 72 65 6d 65 6d 62 65 72 20 74 6f  ing "remember to
fcb0: 20 72 75 6e 20 5c 60 24 70 72 6f 67 6e 61 6d 65   run \`$progname
fcc0: 20 2d 2d 66 69 6e 69 73 68 24 66 75 74 75 72 65   --finish$future
fcd0: 5f 6c 69 62 64 69 72 73 27 22 0a 0a 20 20 20 20  _libdirs'"..    
fce0: 69 66 20 74 65 73 74 20 2d 6e 20 22 24 63 75 72  if test -n "$cur
fcf0: 72 65 6e 74 5f 6c 69 62 64 69 72 73 22 3b 20 74  rent_libdirs"; t
fd00: 68 65 6e 0a 20 20 20 20 20 20 23 20 4d 61 79 62  hen.      # Mayb
fd10: 65 20 6a 75 73 74 20 64 6f 20 61 20 64 72 79 20  e just do a dry 
fd20: 72 75 6e 2e 0a 20 20 20 20 20 20 24 6f 70 74 5f  run..      $opt_
fd30: 64 72 79 5f 72 75 6e 20 26 26 20 63 75 72 72 65  dry_run && curre
fd40: 6e 74 5f 6c 69 62 64 69 72 73 3d 22 20 2d 6e 24  nt_libdirs=" -n$
fd50: 63 75 72 72 65 6e 74 5f 6c 69 62 64 69 72 73 22  current_libdirs"
fd60: 0a 20 20 20 20 20 20 65 78 65 63 5f 63 6d 64 3d  .      exec_cmd=
fd70: 27 24 53 48 45 4c 4c 20 24 70 72 6f 67 70 61 74  '$SHELL $progpat
fd80: 68 20 24 70 72 65 73 65 72 76 65 5f 61 72 67 73  h $preserve_args
fd90: 20 2d 2d 66 69 6e 69 73 68 24 63 75 72 72 65 6e   --finish$curren
fda0: 74 5f 6c 69 62 64 69 72 73 27 0a 20 20 20 20 65  t_libdirs'.    e
fdb0: 6c 73 65 0a 20 20 20 20 20 20 65 78 69 74 20 24  lse.      exit $
fdc0: 45 58 49 54 5f 53 55 43 43 45 53 53 0a 20 20 20  EXIT_SUCCESS.   
fdd0: 20 66 69 0a 7d 0a 0a 74 65 73 74 20 22 24 6d 6f   fi.}..test "$mo
fde0: 64 65 22 20 3d 20 69 6e 73 74 61 6c 6c 20 26 26  de" = install &&
fdf0: 20 66 75 6e 63 5f 6d 6f 64 65 5f 69 6e 73 74 61   func_mode_insta
fe00: 6c 6c 20 24 7b 31 2b 22 24 40 22 7d 0a 0a 0a 23  ll ${1+"$@"}...#
fe10: 20 66 75 6e 63 5f 67 65 6e 65 72 61 74 65 5f 64   func_generate_d
fe20: 6c 73 79 6d 73 20 6f 75 74 70 75 74 6e 61 6d 65  lsyms outputname
fe30: 20 6f 72 69 67 69 6e 61 74 6f 72 20 70 69 63 5f   originator pic_
fe40: 70 0a 23 20 45 78 74 72 61 63 74 20 73 79 6d 62  p.# Extract symb
fe50: 6f 6c 73 20 66 72 6f 6d 20 64 6c 70 72 65 66 69  ols from dlprefi
fe60: 6c 65 73 20 61 6e 64 20 63 72 65 61 74 65 20 24  les and create $
fe70: 7b 6f 75 74 70 75 74 6e 61 6d 65 7d 53 2e 6f 20  {outputname}S.o 
fe80: 77 69 74 68 0a 23 20 61 20 64 6c 70 72 65 6f 70  with.# a dlpreop
fe90: 65 6e 20 73 79 6d 62 6f 6c 20 74 61 62 6c 65 2e  en symbol table.
fea0: 0a 66 75 6e 63 5f 67 65 6e 65 72 61 74 65 5f 64  .func_generate_d
feb0: 6c 73 79 6d 73 20 28 29 0a 7b 0a 20 20 20 20 24  lsyms ().{.    $
fec0: 6f 70 74 5f 64 65 62 75 67 0a 20 20 20 20 6d 79  opt_debug.    my
fed0: 5f 6f 75 74 70 75 74 6e 61 6d 65 3d 22 24 31 22  _outputname="$1"
fee0: 0a 20 20 20 20 6d 79 5f 6f 72 69 67 69 6e 61 74  .    my_originat
fef0: 6f 72 3d 22 24 32 22 0a 20 20 20 20 6d 79 5f 70  or="$2".    my_p
ff00: 69 63 5f 70 3d 22 24 7b 33 2d 6e 6f 7d 22 0a 20  ic_p="${3-no}". 
ff10: 20 20 20 6d 79 5f 70 72 65 66 69 78 3d 60 24 45     my_prefix=`$E
ff20: 43 48 4f 20 22 24 6d 79 5f 6f 72 69 67 69 6e 61  CHO "$my_origina
ff30: 74 6f 72 22 20 7c 20 73 65 64 20 27 73 25 5b 5e  tor" | sed 's%[^
ff40: 61 2d 7a 41 2d 5a 30 2d 39 5d 25 5f 25 67 27 60  a-zA-Z0-9]%_%g'`
ff50: 0a 20 20 20 20 6d 79 5f 64 6c 73 79 6d 73 3d 0a  .    my_dlsyms=.
ff60: 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20  .    if test -n 
ff70: 22 24 64 6c 66 69 6c 65 73 24 64 6c 70 72 65 66  "$dlfiles$dlpref
ff80: 69 6c 65 73 22 20 7c 7c 20 74 65 73 74 20 22 24  iles" || test "$
ff90: 64 6c 73 65 6c 66 22 20 21 3d 20 6e 6f 3b 20 74  dlself" != no; t
ffa0: 68 65 6e 0a 20 20 20 20 20 20 69 66 20 74 65 73  hen.      if tes
ffb0: 74 20 2d 6e 20 22 24 4e 4d 22 20 26 26 20 74 65  t -n "$NM" && te
ffc0: 73 74 20 2d 6e 20 22 24 67 6c 6f 62 61 6c 5f 73  st -n "$global_s
ffd0: 79 6d 62 6f 6c 5f 70 69 70 65 22 3b 20 74 68 65  ymbol_pipe"; the
ffe0: 6e 0a 09 6d 79 5f 64 6c 73 79 6d 73 3d 22 24 7b  n..my_dlsyms="${
fff0: 6d 79 5f 6f 75 74 70 75 74 6e 61 6d 65 7d 53 2e  my_outputname}S.
10000 63 22 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 66  c".      else..f
10010 75 6e 63 5f 65 72 72 6f 72 20 22 6e 6f 74 20 63  unc_error "not c
10020 6f 6e 66 69 67 75 72 65 64 20 74 6f 20 65 78 74  onfigured to ext
10030 72 61 63 74 20 67 6c 6f 62 61 6c 20 73 79 6d 62  ract global symb
10040 6f 6c 73 20 66 72 6f 6d 20 64 6c 70 72 65 6f 70  ols from dlpreop
10050 65 6e 65 64 20 66 69 6c 65 73 22 0a 20 20 20 20  ened files".    
10060 20 20 66 69 0a 20 20 20 20 66 69 0a 0a 20 20 20    fi.    fi..   
10070 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 6d 79   if test -n "$my
10080 5f 64 6c 73 79 6d 73 22 3b 20 74 68 65 6e 0a 20  _dlsyms"; then. 
10090 20 20 20 20 20 63 61 73 65 20 24 6d 79 5f 64 6c       case $my_dl
100a0 73 79 6d 73 20 69 6e 0a 20 20 20 20 20 20 22 22  syms in.      ""
100b0 29 20 3b 3b 0a 20 20 20 20 20 20 2a 2e 63 29 0a  ) ;;.      *.c).
100c0 09 23 20 44 69 73 63 6f 76 65 72 20 74 68 65 20  .# Discover the 
100d0 6e 6c 69 73 74 20 6f 66 20 65 61 63 68 20 6f 66  nlist of each of
100e0 20 74 68 65 20 64 6c 66 69 6c 65 73 2e 0a 09 6e   the dlfiles...n
100f0 6c 69 73 74 3d 22 24 6f 75 74 70 75 74 5f 6f 62  list="$output_ob
10100 6a 64 69 72 2f 24 7b 6d 79 5f 6f 75 74 70 75 74  jdir/${my_output
10110 6e 61 6d 65 7d 2e 6e 6d 22 0a 0a 09 66 75 6e 63  name}.nm"...func
10120 5f 73 68 6f 77 5f 65 76 61 6c 20 22 24 52 4d 20  _show_eval "$RM 
10130 24 6e 6c 69 73 74 20 24 7b 6e 6c 69 73 74 7d 53  $nlist ${nlist}S
10140 20 24 7b 6e 6c 69 73 74 7d 54 22 0a 0a 09 23 20   ${nlist}T"...# 
10150 50 61 72 73 65 20 74 68 65 20 6e 61 6d 65 20 6c  Parse the name l
10160 69 73 74 20 69 6e 74 6f 20 61 20 73 6f 75 72 63  ist into a sourc
10170 65 20 66 69 6c 65 2e 0a 09 66 75 6e 63 5f 76 65  e file...func_ve
10180 72 62 6f 73 65 20 22 63 72 65 61 74 69 6e 67 20  rbose "creating 
10190 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24  $output_objdir/$
101a0 6d 79 5f 64 6c 73 79 6d 73 22 0a 0a 09 24 6f 70  my_dlsyms"...$op
101b0 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 24 45 43  t_dry_run || $EC
101c0 48 4f 20 3e 20 22 24 6f 75 74 70 75 74 5f 6f 62  HO > "$output_ob
101d0 6a 64 69 72 2f 24 6d 79 5f 64 6c 73 79 6d 73 22  jdir/$my_dlsyms"
101e0 20 22 5c 0a 2f 2a 20 24 6d 79 5f 64 6c 73 79 6d   "\./* $my_dlsym
101f0 73 20 2d 20 73 79 6d 62 6f 6c 20 72 65 73 6f 6c  s - symbol resol
10200 75 74 69 6f 6e 20 74 61 62 6c 65 20 66 6f 72 20  ution table for 
10210 5c 60 24 6d 79 5f 6f 75 74 70 75 74 6e 61 6d 65  \`$my_outputname
10220 27 20 64 6c 73 79 6d 20 65 6d 75 6c 61 74 69 6f  ' dlsym emulatio
10230 6e 2e 20 2a 2f 0a 2f 2a 20 47 65 6e 65 72 61 74  n. */./* Generat
10240 65 64 20 62 79 20 24 50 52 4f 47 52 41 4d 20 28  ed by $PROGRAM (
10250 47 4e 55 20 24 50 41 43 4b 41 47 45 24 54 49 4d  GNU $PACKAGE$TIM
10260 45 53 54 41 4d 50 29 20 24 56 45 52 53 49 4f 4e  ESTAMP) $VERSION
10270 20 2a 2f 0a 0a 23 69 66 64 65 66 20 5f 5f 63 70   */..#ifdef __cp
10280 6c 75 73 70 6c 75 73 0a 65 78 74 65 72 6e 20 5c  lusplus.extern \
10290 22 43 5c 22 20 7b 0a 23 65 6e 64 69 66 0a 0a 2f  "C\" {.#endif../
102a0 2a 20 45 78 74 65 72 6e 61 6c 20 73 79 6d 62 6f  * External symbo
102b0 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 66  l declarations f
102c0 6f 72 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 2e  or the compiler.
102d0 20 2a 2f 5c 0a 22 0a 0a 09 69 66 20 74 65 73 74   */\."...if test
102e0 20 22 24 64 6c 73 65 6c 66 22 20 3d 20 79 65 73   "$dlself" = yes
102f0 3b 20 74 68 65 6e 0a 09 20 20 66 75 6e 63 5f 76  ; then..  func_v
10300 65 72 62 6f 73 65 20 22 67 65 6e 65 72 61 74 69  erbose "generati
10310 6e 67 20 73 79 6d 62 6f 6c 20 6c 69 73 74 20 66  ng symbol list f
10320 6f 72 20 5c 60 24 6f 75 74 70 75 74 27 22 0a 0a  or \`$output'"..
10330 09 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20  .  $opt_dry_run 
10340 7c 7c 20 65 63 68 6f 20 27 3a 20 40 50 52 4f 47  || echo ': @PROG
10350 52 41 4d 40 20 27 20 3e 20 22 24 6e 6c 69 73 74  RAM@ ' > "$nlist
10360 22 0a 0a 09 20 20 23 20 41 64 64 20 6f 75 72 20  "...  # Add our 
10370 6f 77 6e 20 70 72 6f 67 72 61 6d 20 6f 62 6a 65  own program obje
10380 63 74 73 20 74 6f 20 74 68 65 20 73 79 6d 62 6f  cts to the symbo
10390 6c 20 6c 69 73 74 2e 0a 09 20 20 70 72 6f 67 66  l list...  progf
103a0 69 6c 65 73 3d 60 24 45 43 48 4f 20 22 58 24 6f  iles=`$ECHO "X$o
103b0 62 6a 73 24 6f 6c 64 5f 64 65 70 6c 69 62 73 22  bjs$old_deplibs"
103c0 20 7c 20 24 53 50 32 4e 4c 20 7c 20 24 58 73 65   | $SP2NL | $Xse
103d0 64 20 2d 65 20 22 24 6c 6f 32 6f 22 20 7c 20 24  d -e "$lo2o" | $
103e0 4e 4c 32 53 50 60 0a 09 20 20 66 6f 72 20 70 72  NL2SP`..  for pr
103f0 6f 67 66 69 6c 65 20 69 6e 20 24 70 72 6f 67 66  ogfile in $progf
10400 69 6c 65 73 3b 20 64 6f 0a 09 20 20 20 20 66 75  iles; do..    fu
10410 6e 63 5f 76 65 72 62 6f 73 65 20 22 65 78 74 72  nc_verbose "extr
10420 61 63 74 69 6e 67 20 67 6c 6f 62 61 6c 20 43 20  acting global C 
10430 73 79 6d 62 6f 6c 73 20 66 72 6f 6d 20 5c 60 24  symbols from \`$
10440 70 72 6f 67 66 69 6c 65 27 22 0a 09 20 20 20 20  progfile'"..    
10450 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20  $opt_dry_run || 
10460 65 76 61 6c 20 22 24 4e 4d 20 24 70 72 6f 67 66  eval "$NM $progf
10470 69 6c 65 20 7c 20 24 67 6c 6f 62 61 6c 5f 73 79  ile | $global_sy
10480 6d 62 6f 6c 5f 70 69 70 65 20 3e 3e 20 27 24 6e  mbol_pipe >> '$n
10490 6c 69 73 74 27 22 0a 09 20 20 64 6f 6e 65 0a 0a  list'"..  done..
104a0 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24  .  if test -n "$
104b0 65 78 63 6c 75 64 65 5f 65 78 70 73 79 6d 73 22  exclude_expsyms"
104c0 3b 20 74 68 65 6e 0a 09 20 20 20 20 24 6f 70 74  ; then..    $opt
104d0 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 7b 0a 09 20  _dry_run || {.. 
104e0 20 20 20 20 20 65 76 61 6c 20 27 24 45 47 52 45       eval '$EGRE
104f0 50 20 2d 76 20 22 20 28 24 65 78 63 6c 75 64 65  P -v " ($exclude
10500 5f 65 78 70 73 79 6d 73 29 24 22 20 22 24 6e 6c  _expsyms)$" "$nl
10510 69 73 74 22 20 3e 20 22 24 6e 6c 69 73 74 22 54  ist" > "$nlist"T
10520 27 0a 09 20 20 20 20 20 20 65 76 61 6c 20 27 24  '..      eval '$
10530 4d 56 20 22 24 6e 6c 69 73 74 22 54 20 22 24 6e  MV "$nlist"T "$n
10540 6c 69 73 74 22 27 0a 09 20 20 20 20 7d 0a 09 20  list"'..    }.. 
10550 20 66 69 0a 0a 09 20 20 69 66 20 74 65 73 74 20   fi...  if test 
10560 2d 6e 20 22 24 65 78 70 6f 72 74 5f 73 79 6d 62  -n "$export_symb
10570 6f 6c 73 5f 72 65 67 65 78 22 3b 20 74 68 65 6e  ols_regex"; then
10580 0a 09 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72  ..    $opt_dry_r
10590 75 6e 20 7c 7c 20 7b 0a 09 20 20 20 20 20 20 65  un || {..      e
105a0 76 61 6c 20 27 24 45 47 52 45 50 20 2d 65 20 22  val '$EGREP -e "
105b0 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 5f  $export_symbols_
105c0 72 65 67 65 78 22 20 22 24 6e 6c 69 73 74 22 20  regex" "$nlist" 
105d0 3e 20 22 24 6e 6c 69 73 74 22 54 27 0a 09 20 20  > "$nlist"T'..  
105e0 20 20 20 20 65 76 61 6c 20 27 24 4d 56 20 22 24      eval '$MV "$
105f0 6e 6c 69 73 74 22 54 20 22 24 6e 6c 69 73 74 22  nlist"T "$nlist"
10600 27 0a 09 20 20 20 20 7d 0a 09 20 20 66 69 0a 0a  '..    }..  fi..
10610 09 20 20 23 20 50 72 65 70 61 72 65 20 74 68 65  .  # Prepare the
10620 20 6c 69 73 74 20 6f 66 20 65 78 70 6f 72 74 65   list of exporte
10630 64 20 73 79 6d 62 6f 6c 73 0a 09 20 20 69 66 20  d symbols..  if 
10640 74 65 73 74 20 2d 7a 20 22 24 65 78 70 6f 72 74  test -z "$export
10650 5f 73 79 6d 62 6f 6c 73 22 3b 20 74 68 65 6e 0a  _symbols"; then.
10660 09 20 20 20 20 65 78 70 6f 72 74 5f 73 79 6d 62  .    export_symb
10670 6f 6c 73 3d 22 24 6f 75 74 70 75 74 5f 6f 62 6a  ols="$output_obj
10680 64 69 72 2f 24 6f 75 74 70 75 74 6e 61 6d 65 2e  dir/$outputname.
10690 65 78 70 22 0a 09 20 20 20 20 24 6f 70 74 5f 64  exp"..    $opt_d
106a0 72 79 5f 72 75 6e 20 7c 7c 20 7b 0a 09 20 20 20  ry_run || {..   
106b0 20 20 20 24 52 4d 20 24 65 78 70 6f 72 74 5f 73     $RM $export_s
106c0 79 6d 62 6f 6c 73 0a 09 20 20 20 20 20 20 65 76  ymbols..      ev
106d0 61 6c 20 22 24 7b 53 45 44 7d 20 2d 6e 20 2d 65  al "${SED} -n -e
106e0 20 27 2f 5e 3a 20 40 50 52 4f 47 52 41 4d 40 20   '/^: @PROGRAM@ 
106f0 24 2f 64 27 20 2d 65 20 27 73 2f 5e 2e 2a 20 5c  $/d' -e 's/^.* \
10700 28 2e 2a 5c 29 24 2f 5c 31 2f 70 27 20 22 27 3c  (.*\)$/\1/p' "'<
10710 20 22 24 6e 6c 69 73 74 22 20 3e 20 22 24 65 78   "$nlist" > "$ex
10720 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 27 0a 09  port_symbols"'..
10730 20 20 20 20 20 20 63 61 73 65 20 24 68 6f 73 74        case $host
10740 20 69 6e 0a 09 20 20 20 20 20 20 2a 63 79 67 77   in..      *cygw
10750 69 6e 2a 20 7c 20 2a 6d 69 6e 67 77 2a 20 7c 20  in* | *mingw* | 
10760 2a 63 65 67 63 63 2a 20 29 0a 20 20 20 20 20 20  *cegcc* ).      
10770 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 20 22            eval "
10780 65 63 68 6f 20 45 58 50 4f 52 54 53 20 22 27 3e  echo EXPORTS "'>
10790 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72   "$output_objdir
107a0 2f 24 6f 75 74 70 75 74 6e 61 6d 65 2e 64 65 66  /$outputname.def
107b0 22 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  "'.             
107c0 20 20 20 65 76 61 6c 20 27 63 61 74 20 22 24 65     eval 'cat "$e
107d0 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 20 3e  xport_symbols" >
107e0 3e 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69  > "$output_objdi
107f0 72 2f 24 6f 75 74 70 75 74 6e 61 6d 65 2e 64 65  r/$outputname.de
10800 66 22 27 0a 09 20 20 20 20 20 20 20 20 3b 3b 0a  f"'..        ;;.
10810 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20 20  .      esac..   
10820 20 7d 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20   }..  else..    
10830 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20  $opt_dry_run || 
10840 7b 0a 09 20 20 20 20 20 20 65 76 61 6c 20 22 24  {..      eval "$
10850 7b 53 45 44 7d 20 2d 65 20 27 73 2f 5c 28 5b 5d  {SED} -e 's/\([]
10860 2e 5b 2a 5e 24 5d 5c 29 2f 5c 5c 5c 5c 5c 31 2f  .[*^$]\)/\\\\\1/
10870 67 27 20 2d 65 20 27 73 2f 5e 2f 20 2f 27 20 2d  g' -e 's/^/ /' -
10880 65 20 27 73 2f 24 2f 24 2f 27 22 27 20 3c 20 22  e 's/$/$/'"' < "
10890 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22  $export_symbols"
108a0 20 3e 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64   > "$output_objd
108b0 69 72 2f 24 6f 75 74 70 75 74 6e 61 6d 65 2e 65  ir/$outputname.e
108c0 78 70 22 27 0a 09 20 20 20 20 20 20 65 76 61 6c  xp"'..      eval
108d0 20 27 24 47 52 45 50 20 2d 66 20 22 24 6f 75 74   '$GREP -f "$out
108e0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6f 75 74 70  put_objdir/$outp
108f0 75 74 6e 61 6d 65 2e 65 78 70 22 20 3c 20 22 24  utname.exp" < "$
10900 6e 6c 69 73 74 22 20 3e 20 22 24 6e 6c 69 73 74  nlist" > "$nlist
10910 22 54 27 0a 09 20 20 20 20 20 20 65 76 61 6c 20  "T'..      eval 
10920 27 24 4d 56 20 22 24 6e 6c 69 73 74 22 54 20 22  '$MV "$nlist"T "
10930 24 6e 6c 69 73 74 22 27 0a 09 20 20 20 20 20 20  $nlist"'..      
10940 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20  case $host in.. 
10950 20 20 20 20 20 20 20 2a 63 79 67 77 69 6e 20 7c         *cygwin |
10960 20 2a 6d 69 6e 67 77 2a 20 7c 20 2a 63 65 67 63   *mingw* | *cegc
10970 63 2a 20 29 0a 09 20 20 20 20 20 20 20 20 20 20  c* )..          
10980 65 76 61 6c 20 22 65 63 68 6f 20 45 58 50 4f 52  eval "echo EXPOR
10990 54 53 20 22 27 3e 20 22 24 6f 75 74 70 75 74 5f  TS "'> "$output_
109a0 6f 62 6a 64 69 72 2f 24 6f 75 74 70 75 74 6e 61  objdir/$outputna
109b0 6d 65 2e 64 65 66 22 27 0a 09 20 20 20 20 20 20  me.def"'..      
109c0 20 20 20 20 65 76 61 6c 20 27 63 61 74 20 22 24      eval 'cat "$
109d0 6e 6c 69 73 74 22 20 3e 3e 20 22 24 6f 75 74 70  nlist" >> "$outp
109e0 75 74 5f 6f 62 6a 64 69 72 2f 24 6f 75 74 70 75  ut_objdir/$outpu
109f0 74 6e 61 6d 65 2e 64 65 66 22 27 0a 09 20 20 20  tname.def"'..   
10a00 20 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 20         ;;..     
10a10 20 65 73 61 63 0a 09 20 20 20 20 7d 0a 09 20 20   esac..    }..  
10a20 66 69 0a 09 66 69 0a 0a 09 66 6f 72 20 64 6c 70  fi..fi...for dlp
10a30 72 65 66 69 6c 65 20 69 6e 20 24 64 6c 70 72 65  refile in $dlpre
10a40 66 69 6c 65 73 3b 20 64 6f 0a 09 20 20 66 75 6e  files; do..  fun
10a50 63 5f 76 65 72 62 6f 73 65 20 22 65 78 74 72 61  c_verbose "extra
10a60 63 74 69 6e 67 20 67 6c 6f 62 61 6c 20 43 20 73  cting global C s
10a70 79 6d 62 6f 6c 73 20 66 72 6f 6d 20 5c 60 24 64  ymbols from \`$d
10a80 6c 70 72 65 66 69 6c 65 27 22 0a 09 20 20 66 75  lprefile'"..  fu
10a90 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22 24 64 6c  nc_basename "$dl
10aa0 70 72 65 66 69 6c 65 22 0a 09 20 20 6e 61 6d 65  prefile"..  name
10ab0 3d 22 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65  ="$func_basename
10ac0 5f 72 65 73 75 6c 74 22 0a 09 20 20 24 6f 70 74  _result"..  $opt
10ad0 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 7b 0a 09 20  _dry_run || {.. 
10ae0 20 20 20 65 76 61 6c 20 27 24 45 43 48 4f 20 22     eval '$ECHO "
10af0 3a 20 24 6e 61 6d 65 20 22 20 3e 3e 20 22 24 6e  : $name " >> "$n
10b00 6c 69 73 74 22 27 0a 09 20 20 20 20 65 76 61 6c  list"'..    eval
10b10 20 22 24 4e 4d 20 24 64 6c 70 72 65 66 69 6c 65   "$NM $dlprefile
10b20 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 20 24   2>/dev/null | $
10b30 67 6c 6f 62 61 6c 5f 73 79 6d 62 6f 6c 5f 70 69  global_symbol_pi
10b40 70 65 20 3e 3e 20 27 24 6e 6c 69 73 74 27 22 0a  pe >> '$nlist'".
10b50 09 20 20 7d 0a 09 64 6f 6e 65 0a 0a 09 24 6f 70  .  }..done...$op
10b60 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 7b 0a 09  t_dry_run || {..
10b70 20 20 23 20 4d 61 6b 65 20 73 75 72 65 20 77 65    # Make sure we
10b80 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 20 61   have at least a
10b90 6e 20 65 6d 70 74 79 20 66 69 6c 65 2e 0a 09 20  n empty file... 
10ba0 20 74 65 73 74 20 2d 66 20 22 24 6e 6c 69 73 74   test -f "$nlist
10bb0 22 20 7c 7c 20 3a 20 3e 20 22 24 6e 6c 69 73 74  " || : > "$nlist
10bc0 22 0a 0a 09 20 20 69 66 20 74 65 73 74 20 2d 6e  "...  if test -n
10bd0 20 22 24 65 78 63 6c 75 64 65 5f 65 78 70 73 79   "$exclude_expsy
10be0 6d 73 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 24  ms"; then..    $
10bf0 45 47 52 45 50 20 2d 76 20 22 20 28 24 65 78 63  EGREP -v " ($exc
10c00 6c 75 64 65 5f 65 78 70 73 79 6d 73 29 24 22 20  lude_expsyms)$" 
10c10 22 24 6e 6c 69 73 74 22 20 3e 20 22 24 6e 6c 69  "$nlist" > "$nli
10c20 73 74 22 54 0a 09 20 20 20 20 24 4d 56 20 22 24  st"T..    $MV "$
10c30 6e 6c 69 73 74 22 54 20 22 24 6e 6c 69 73 74 22  nlist"T "$nlist"
10c40 0a 09 20 20 66 69 0a 0a 09 20 20 23 20 54 72 79  ..  fi...  # Try
10c50 20 73 6f 72 74 69 6e 67 20 61 6e 64 20 75 6e 69   sorting and uni
10c60 71 75 69 66 79 69 6e 67 20 74 68 65 20 6f 75 74  quifying the out
10c70 70 75 74 2e 0a 09 20 20 69 66 20 24 47 52 45 50  put...  if $GREP
10c80 20 2d 76 20 22 5e 3a 20 22 20 3c 20 22 24 6e 6c   -v "^: " < "$nl
10c90 69 73 74 22 20 7c 0a 09 20 20 20 20 20 20 69 66  ist" |..      if
10ca0 20 73 6f 72 74 20 2d 6b 20 33 20 3c 2f 64 65 76   sort -k 3 </dev
10cb0 2f 6e 75 6c 6c 20 3e 2f 64 65 76 2f 6e 75 6c 6c  /null >/dev/null
10cc0 20 32 3e 26 31 3b 20 74 68 65 6e 0a 09 09 73 6f   2>&1; then...so
10cd0 72 74 20 2d 6b 20 33 0a 09 20 20 20 20 20 20 65  rt -k 3..      e
10ce0 6c 73 65 0a 09 09 73 6f 72 74 20 2b 32 0a 09 20  lse...sort +2.. 
10cf0 20 20 20 20 20 66 69 20 7c 0a 09 20 20 20 20 20       fi |..     
10d00 20 75 6e 69 71 20 3e 20 22 24 6e 6c 69 73 74 22   uniq > "$nlist"
10d10 53 3b 20 74 68 65 6e 0a 09 20 20 20 20 3a 0a 09  S; then..    :..
10d20 20 20 65 6c 73 65 0a 09 20 20 20 20 24 47 52 45    else..    $GRE
10d30 50 20 2d 76 20 22 5e 3a 20 22 20 3c 20 22 24 6e  P -v "^: " < "$n
10d40 6c 69 73 74 22 20 3e 20 22 24 6e 6c 69 73 74 22  list" > "$nlist"
10d50 53 0a 09 20 20 66 69 0a 0a 09 20 20 69 66 20 74  S..  fi...  if t
10d60 65 73 74 20 2d 66 20 22 24 6e 6c 69 73 74 22 53  est -f "$nlist"S
10d70 3b 20 74 68 65 6e 0a 09 20 20 20 20 65 76 61 6c  ; then..    eval
10d80 20 22 24 67 6c 6f 62 61 6c 5f 73 79 6d 62 6f 6c   "$global_symbol
10d90 5f 74 6f 5f 63 64 65 63 6c 22 27 20 3c 20 22 24  _to_cdecl"' < "$
10da0 6e 6c 69 73 74 22 53 20 3e 3e 20 22 24 6f 75 74  nlist"S >> "$out
10db0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64  put_objdir/$my_d
10dc0 6c 73 79 6d 73 22 27 0a 09 20 20 65 6c 73 65 0a  lsyms"'..  else.
10dd0 09 20 20 20 20 24 45 43 48 4f 20 27 2f 2a 20 4e  .    $ECHO '/* N
10de0 4f 4e 45 20 2a 2f 27 20 3e 3e 20 22 24 6f 75 74  ONE */' >> "$out
10df0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64  put_objdir/$my_d
10e00 6c 73 79 6d 73 22 0a 09 20 20 66 69 0a 0a 09 20  lsyms"..  fi... 
10e10 20 24 45 43 48 4f 20 3e 3e 20 22 24 6f 75 74 70   $ECHO >> "$outp
10e20 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64 6c  ut_objdir/$my_dl
10e30 73 79 6d 73 22 20 22 5c 0a 0a 2f 2a 20 54 68 65  syms" "\../* The
10e40 20 6d 61 70 70 69 6e 67 20 62 65 74 77 65 65 6e   mapping between
10e50 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 73 20 61 6e   symbol names an
10e60 64 20 73 79 6d 62 6f 6c 73 2e 20 20 2a 2f 0a 74  d symbols.  */.t
10e70 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 0a  ypedef struct {.
10e80 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61    const char *na
10e90 6d 65 3b 0a 20 20 76 6f 69 64 20 2a 61 64 64 72  me;.  void *addr
10ea0 65 73 73 3b 0a 7d 20 6c 74 5f 64 6c 73 79 6d 6c  ess;.} lt_dlsyml
10eb0 69 73 74 3b 0a 22 0a 09 20 20 63 61 73 65 20 24  ist;."..  case $
10ec0 68 6f 73 74 20 69 6e 0a 09 20 20 2a 63 79 67 77  host in..  *cygw
10ed0 69 6e 2a 20 7c 20 2a 6d 69 6e 67 77 2a 20 7c 20  in* | *mingw* | 
10ee0 2a 63 65 67 63 63 2a 20 29 0a 09 20 20 20 20 24  *cegcc* )..    $
10ef0 45 43 48 4f 20 3e 3e 20 22 24 6f 75 74 70 75 74  ECHO >> "$output
10f00 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64 6c 73 79  _objdir/$my_dlsy
10f10 6d 73 22 20 22 5c 0a 2f 2a 20 44 41 54 41 20 69  ms" "\./* DATA i
10f20 6d 70 6f 72 74 73 20 66 72 6f 6d 20 44 4c 4c 73  mports from DLLs
10f30 20 6f 6e 20 57 49 4e 33 32 20 63 6f 6e 27 74 20   on WIN32 con't 
10f40 62 65 20 63 6f 6e 73 74 2c 20 62 65 63 61 75 73  be const, becaus
10f50 65 0a 20 20 20 72 75 6e 74 69 6d 65 20 72 65 6c  e.   runtime rel
10f60 6f 63 61 74 69 6f 6e 73 20 61 72 65 20 70 65 72  ocations are per
10f70 66 6f 72 6d 65 64 20 2d 2d 20 73 65 65 20 6c 64  formed -- see ld
10f80 27 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  's documentation
10f90 0a 20 20 20 6f 6e 20 70 73 65 75 64 6f 2d 72 65  .   on pseudo-re
10fa0 6c 6f 63 73 2e 20 20 2a 2f 22 0a 09 20 20 20 20  locs.  */"..    
10fb0 6c 74 5f 64 6c 73 79 6d 5f 63 6f 6e 73 74 3d 20  lt_dlsym_const= 
10fc0 3b 3b 0a 09 20 20 2a 6f 73 66 35 2a 29 0a 09 20  ;;..  *osf5*).. 
10fd0 20 20 20 65 63 68 6f 20 3e 3e 20 22 24 6f 75 74     echo >> "$out
10fe0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64  put_objdir/$my_d
10ff0 6c 73 79 6d 73 22 20 22 5c 0a 2f 2a 20 54 68 69  lsyms" "\./* Thi
11000 73 20 73 79 73 74 65 6d 20 64 6f 65 73 20 6e 6f  s system does no
11010 74 20 63 6f 70 65 20 77 65 6c 6c 20 77 69 74 68  t cope well with
11020 20 72 65 6c 6f 63 61 74 69 6f 6e 73 20 69 6e 20   relocations in 
11030 63 6f 6e 73 74 20 64 61 74 61 20 2a 2f 22 0a 09  const data */"..
11040 20 20 20 20 6c 74 5f 64 6c 73 79 6d 5f 63 6f 6e      lt_dlsym_con
11050 73 74 3d 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20  st= ;;..  *)..  
11060 20 20 6c 74 5f 64 6c 73 79 6d 5f 63 6f 6e 73 74    lt_dlsym_const
11070 3d 63 6f 6e 73 74 20 3b 3b 0a 09 20 20 65 73 61  =const ;;..  esa
11080 63 0a 0a 09 20 20 24 45 43 48 4f 20 3e 3e 20 22  c...  $ECHO >> "
11090 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24  $output_objdir/$
110a0 6d 79 5f 64 6c 73 79 6d 73 22 20 22 5c 0a 65 78  my_dlsyms" "\.ex
110b0 74 65 72 6e 20 24 6c 74 5f 64 6c 73 79 6d 5f 63  tern $lt_dlsym_c
110c0 6f 6e 73 74 20 6c 74 5f 64 6c 73 79 6d 6c 69 73  onst lt_dlsymlis
110d0 74 0a 6c 74 5f 24 7b 6d 79 5f 70 72 65 66 69 78  t.lt_${my_prefix
110e0 7d 5f 4c 54 58 5f 70 72 65 6c 6f 61 64 65 64 5f  }_LTX_preloaded_
110f0 73 79 6d 62 6f 6c 73 5b 5d 3b 0a 24 6c 74 5f 64  symbols[];.$lt_d
11100 6c 73 79 6d 5f 63 6f 6e 73 74 20 6c 74 5f 64 6c  lsym_const lt_dl
11110 73 79 6d 6c 69 73 74 0a 6c 74 5f 24 7b 6d 79 5f  symlist.lt_${my_
11120 70 72 65 66 69 78 7d 5f 4c 54 58 5f 70 72 65 6c  prefix}_LTX_prel
11130 6f 61 64 65 64 5f 73 79 6d 62 6f 6c 73 5b 5d 20  oaded_symbols[] 
11140 3d 0a 7b 5c 0a 20 20 7b 20 5c 22 24 6d 79 5f 6f  =.{\.  { \"$my_o
11150 72 69 67 69 6e 61 74 6f 72 5c 22 2c 20 28 76 6f  riginator\", (vo
11160 69 64 20 2a 29 20 30 20 7d 2c 22 0a 0a 09 20 20  id *) 0 },"...  
11170 63 61 73 65 20 24 6e 65 65 64 5f 6c 69 62 5f 70  case $need_lib_p
11180 72 65 66 69 78 20 69 6e 0a 09 20 20 6e 6f 29 0a  refix in..  no).
11190 09 20 20 20 20 65 76 61 6c 20 22 24 67 6c 6f 62  .    eval "$glob
111a0 61 6c 5f 73 79 6d 62 6f 6c 5f 74 6f 5f 63 5f 6e  al_symbol_to_c_n
111b0 61 6d 65 5f 61 64 64 72 65 73 73 22 20 3c 20 22  ame_address" < "
111c0 24 6e 6c 69 73 74 22 20 3e 3e 20 22 24 6f 75 74  $nlist" >> "$out
111d0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64  put_objdir/$my_d
111e0 6c 73 79 6d 73 22 0a 09 20 20 20 20 3b 3b 0a 09  lsyms"..    ;;..
111f0 20 20 2a 29 0a 09 20 20 20 20 65 76 61 6c 20 22    *)..    eval "
11200 24 67 6c 6f 62 61 6c 5f 73 79 6d 62 6f 6c 5f 74  $global_symbol_t
11210 6f 5f 63 5f 6e 61 6d 65 5f 61 64 64 72 65 73 73  o_c_name_address
11220 5f 6c 69 62 5f 70 72 65 66 69 78 22 20 3c 20 22  _lib_prefix" < "
11230 24 6e 6c 69 73 74 22 20 3e 3e 20 22 24 6f 75 74  $nlist" >> "$out
11240 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64  put_objdir/$my_d
11250 6c 73 79 6d 73 22 0a 09 20 20 20 20 3b 3b 0a 09  lsyms"..    ;;..
11260 20 20 65 73 61 63 0a 09 20 20 24 45 43 48 4f 20    esac..  $ECHO 
11270 3e 3e 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64  >> "$output_objd
11280 69 72 2f 24 6d 79 5f 64 6c 73 79 6d 73 22 20 22  ir/$my_dlsyms" "
11290 5c 0a 20 20 7b 30 2c 20 28 76 6f 69 64 20 2a 29  \.  {0, (void *)
112a0 20 30 7d 0a 7d 3b 0a 0a 2f 2a 20 54 68 69 73 20   0}.};../* This 
112b0 77 6f 72 6b 73 20 61 72 6f 75 6e 64 20 61 20 70  works around a p
112c0 72 6f 62 6c 65 6d 20 69 6e 20 46 72 65 65 42 53  roblem in FreeBS
112d0 44 20 6c 69 6e 6b 65 72 20 2a 2f 0a 23 69 66 64  D linker */.#ifd
112e0 65 66 20 46 52 45 45 42 53 44 5f 57 4f 52 4b 41  ef FREEBSD_WORKA
112f0 52 4f 55 4e 44 0a 73 74 61 74 69 63 20 63 6f 6e  ROUND.static con
11300 73 74 20 76 6f 69 64 20 2a 6c 74 5f 70 72 65 6c  st void *lt_prel
11310 6f 61 64 65 64 5f 73 65 74 75 70 28 29 20 7b 0a  oaded_setup() {.
11320 20 20 72 65 74 75 72 6e 20 6c 74 5f 24 7b 6d 79    return lt_${my
11330 5f 70 72 65 66 69 78 7d 5f 4c 54 58 5f 70 72 65  _prefix}_LTX_pre
11340 6c 6f 61 64 65 64 5f 73 79 6d 62 6f 6c 73 3b 0a  loaded_symbols;.
11350 7d 0a 23 65 6e 64 69 66 0a 0a 23 69 66 64 65 66  }.#endif..#ifdef
11360 20 5f 5f 63 70 6c 75 73 70 6c 75 73 0a 7d 0a 23   __cplusplus.}.#
11370 65 6e 64 69 66 5c 0a 22 0a 09 7d 20 23 20 21 24  endif\."..} # !$
11380 6f 70 74 5f 64 72 79 5f 72 75 6e 0a 0a 09 70 69  opt_dry_run...pi
11390 63 5f 66 6c 61 67 5f 66 6f 72 5f 73 79 6d 74 61  c_flag_for_symta
113a0 62 6c 65 3d 0a 09 63 61 73 65 20 22 24 63 6f 6d  ble=..case "$com
113b0 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 69  pile_command " i
113c0 6e 0a 09 2a 22 20 2d 73 74 61 74 69 63 20 22 2a  n..*" -static "*
113d0 29 20 3b 3b 0a 09 2a 29 0a 09 20 20 63 61 73 65  ) ;;..*)..  case
113e0 20 24 68 6f 73 74 20 69 6e 0a 09 20 20 23 20 63   $host in..  # c
113f0 6f 6d 70 69 6c 69 6e 67 20 74 68 65 20 73 79 6d  ompiling the sym
11400 62 6f 6c 20 74 61 62 6c 65 20 66 69 6c 65 20 77  bol table file w
11410 69 74 68 20 70 69 63 5f 66 6c 61 67 20 77 6f 72  ith pic_flag wor
11420 6b 73 20 61 72 6f 75 6e 64 0a 09 20 20 23 20 61  ks around..  # a
11430 20 46 72 65 65 42 53 44 20 62 75 67 20 74 68 61   FreeBSD bug tha
11440 74 20 63 61 75 73 65 73 20 70 72 6f 67 72 61 6d  t causes program
11450 73 20 74 6f 20 63 72 61 73 68 20 77 68 65 6e 20  s to crash when 
11460 2d 6c 6d 20 69 73 0a 09 20 20 23 20 6c 69 6e 6b  -lm is..  # link
11470 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20 6f 74  ed before any ot
11480 68 65 72 20 50 49 43 20 6f 62 6a 65 63 74 2e 20  her PIC object. 
11490 20 42 75 74 20 77 65 20 6d 75 73 74 20 6e 6f 74   But we must not
114a0 20 75 73 65 0a 09 20 20 23 20 70 69 63 5f 66 6c   use..  # pic_fl
114b0 61 67 20 77 68 65 6e 20 6c 69 6e 6b 69 6e 67 20  ag when linking 
114c0 77 69 74 68 20 2d 73 74 61 74 69 63 2e 20 20 54  with -static.  T
114d0 68 65 20 70 72 6f 62 6c 65 6d 20 65 78 69 73 74  he problem exist
114e0 73 20 69 6e 0a 09 20 20 23 20 46 72 65 65 42 53  s in..  # FreeBS
114f0 44 20 32 2e 32 2e 36 20 61 6e 64 20 69 73 20 66  D 2.2.6 and is f
11500 69 78 65 64 20 69 6e 20 46 72 65 65 42 53 44 20  ixed in FreeBSD 
11510 33 2e 31 2e 0a 09 20 20 2a 2d 2a 2d 66 72 65 65  3.1...  *-*-free
11520 62 73 64 32 2a 7c 2a 2d 2a 2d 66 72 65 65 62 73  bsd2*|*-*-freebs
11530 64 33 2e 30 2a 7c 2a 2d 2a 2d 66 72 65 65 62 73  d3.0*|*-*-freebs
11540 64 65 6c 66 33 2e 30 2a 29 0a 09 20 20 20 20 70  delf3.0*)..    p
11550 69 63 5f 66 6c 61 67 5f 66 6f 72 5f 73 79 6d 74  ic_flag_for_symt
11560 61 62 6c 65 3d 22 20 24 70 69 63 5f 66 6c 61 67  able=" $pic_flag
11570 20 2d 44 46 52 45 45 42 53 44 5f 57 4f 52 4b 41   -DFREEBSD_WORKA
11580 52 4f 55 4e 44 22 20 3b 3b 0a 09 20 20 2a 2d 2a  ROUND" ;;..  *-*
11590 2d 68 70 75 78 2a 29 0a 09 20 20 20 20 70 69 63  -hpux*)..    pic
115a0 5f 66 6c 61 67 5f 66 6f 72 5f 73 79 6d 74 61 62  _flag_for_symtab
115b0 6c 65 3d 22 20 24 70 69 63 5f 66 6c 61 67 22 20  le=" $pic_flag" 
115c0 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20 69   ;;..  *)..    i
115d0 66 20 74 65 73 74 20 22 58 24 6d 79 5f 70 69 63  f test "X$my_pic
115e0 5f 70 22 20 21 3d 20 58 6e 6f 3b 20 74 68 65 6e  _p" != Xno; then
115f0 0a 09 20 20 20 20 20 20 70 69 63 5f 66 6c 61 67  ..      pic_flag
11600 5f 66 6f 72 5f 73 79 6d 74 61 62 6c 65 3d 22 20  _for_symtable=" 
11610 24 70 69 63 5f 66 6c 61 67 22 0a 09 20 20 20 20  $pic_flag"..    
11620 66 69 0a 09 20 20 20 20 3b 3b 0a 09 20 20 65 73  fi..    ;;..  es
11630 61 63 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a 09  ac..  ;;..esac..
11640 73 79 6d 74 61 62 5f 63 66 6c 61 67 73 3d 0a 09  symtab_cflags=..
11650 66 6f 72 20 61 72 67 20 69 6e 20 24 4c 54 43 46  for arg in $LTCF
11660 4c 41 47 53 3b 20 64 6f 0a 09 20 20 63 61 73 65  LAGS; do..  case
11670 20 24 61 72 67 20 69 6e 0a 09 20 20 2d 70 69 65   $arg in..  -pie
11680 20 7c 20 2d 66 70 69 65 20 7c 20 2d 66 50 49 45   | -fpie | -fPIE
11690 29 20 3b 3b 0a 09 20 20 2a 29 20 73 79 6d 74 61  ) ;;..  *) symta
116a0 62 5f 63 66 6c 61 67 73 3d 22 24 73 79 6d 74 61  b_cflags="$symta
116b0 62 5f 63 66 6c 61 67 73 20 24 61 72 67 22 20 3b  b_cflags $arg" ;
116c0 3b 0a 09 20 20 65 73 61 63 0a 09 64 6f 6e 65 0a  ;..  esac..done.
116d0 0a 09 23 20 4e 6f 77 20 63 6f 6d 70 69 6c 65 20  ..# Now compile 
116e0 74 68 65 20 64 79 6e 61 6d 69 63 20 73 79 6d 62  the dynamic symb
116f0 6f 6c 20 66 69 6c 65 2e 0a 09 66 75 6e 63 5f 73  ol file...func_s
11700 68 6f 77 5f 65 76 61 6c 20 27 28 63 64 20 24 6f  how_eval '(cd $o
11710 75 74 70 75 74 5f 6f 62 6a 64 69 72 20 26 26 20  utput_objdir && 
11720 24 4c 54 43 43 24 73 79 6d 74 61 62 5f 63 66 6c  $LTCC$symtab_cfl
11730 61 67 73 20 2d 63 24 6e 6f 5f 62 75 69 6c 74 69  ags -c$no_builti
11740 6e 5f 66 6c 61 67 24 70 69 63 5f 66 6c 61 67 5f  n_flag$pic_flag_
11750 66 6f 72 5f 73 79 6d 74 61 62 6c 65 20 22 24 6d  for_symtable "$m
11760 79 5f 64 6c 73 79 6d 73 22 29 27 20 27 65 78 69  y_dlsyms")' 'exi
11770 74 20 24 3f 27 0a 0a 09 23 20 43 6c 65 61 6e 20  t $?'...# Clean 
11780 75 70 20 74 68 65 20 67 65 6e 65 72 61 74 65 64  up the generated
11790 20 66 69 6c 65 73 2e 0a 09 66 75 6e 63 5f 73 68   files...func_sh
117a0 6f 77 5f 65 76 61 6c 20 27 24 52 4d 20 22 24 6f  ow_eval '$RM "$o
117b0 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79  utput_objdir/$my
117c0 5f 64 6c 73 79 6d 73 22 20 22 24 6e 6c 69 73 74  _dlsyms" "$nlist
117d0 22 20 22 24 7b 6e 6c 69 73 74 7d 53 22 20 22 24  " "${nlist}S" "$
117e0 7b 6e 6c 69 73 74 7d 54 22 27 0a 0a 09 23 20 54  {nlist}T"'...# T
117f0 72 61 6e 73 66 6f 72 6d 20 74 68 65 20 73 79 6d  ransform the sym
11800 62 6f 6c 20 66 69 6c 65 20 69 6e 74 6f 20 74 68  bol file into th
11810 65 20 63 6f 72 72 65 63 74 20 6e 61 6d 65 2e 0a  e correct name..
11820 09 73 79 6d 66 69 6c 65 6f 62 6a 3d 22 24 6f 75  .symfileobj="$ou
11830 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 7b 6d 79  tput_objdir/${my
11840 5f 6f 75 74 70 75 74 6e 61 6d 65 7d 53 2e 24 6f  _outputname}S.$o
11850 62 6a 65 78 74 22 0a 09 63 61 73 65 20 24 68 6f  bjext"..case $ho
11860 73 74 20 69 6e 0a 09 2a 63 79 67 77 69 6e 2a 20  st in..*cygwin* 
11870 7c 20 2a 6d 69 6e 67 77 2a 20 7c 20 2a 63 65 67  | *mingw* | *ceg
11880 63 63 2a 20 29 0a 09 20 20 69 66 20 74 65 73 74  cc* )..  if test
11890 20 2d 66 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a   -f "$output_obj
118a0 64 69 72 2f 24 6d 79 5f 6f 75 74 70 75 74 6e 61  dir/$my_outputna
118b0 6d 65 2e 64 65 66 22 3b 20 74 68 65 6e 0a 09 20  me.def"; then.. 
118c0 20 20 20 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61     compile_comma
118d0 6e 64 3d 60 24 45 43 48 4f 20 22 58 24 63 6f 6d  nd=`$ECHO "X$com
118e0 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20  pile_command" | 
118f0 24 58 73 65 64 20 2d 65 20 22 73 25 40 53 59 4d  $Xsed -e "s%@SYM
11900 46 49 4c 45 40 25 24 6f 75 74 70 75 74 5f 6f 62  FILE@%$output_ob
11910 6a 64 69 72 2f 24 6d 79 5f 6f 75 74 70 75 74 6e  jdir/$my_outputn
11920 61 6d 65 2e 64 65 66 20 24 73 79 6d 66 69 6c 65  ame.def $symfile
11930 6f 62 6a 25 22 60 0a 09 20 20 20 20 66 69 6e 61  obj%"`..    fina
11940 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45  lize_command=`$E
11950 43 48 4f 20 22 58 24 66 69 6e 61 6c 69 7a 65 5f  CHO "X$finalize_
11960 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 58 73 65 64  command" | $Xsed
11970 20 2d 65 20 22 73 25 40 53 59 4d 46 49 4c 45 40   -e "s%@SYMFILE@
11980 25 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f  %$output_objdir/
11990 24 6d 79 5f 6f 75 74 70 75 74 6e 61 6d 65 2e 64  $my_outputname.d
119a0 65 66 20 24 73 79 6d 66 69 6c 65 6f 62 6a 25 22  ef $symfileobj%"
119b0 60 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20 63  `..  else..    c
119c0 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 3d 60  ompile_command=`
119d0 24 45 43 48 4f 20 22 58 24 63 6f 6d 70 69 6c 65  $ECHO "X$compile
119e0 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 58 73 65  _command" | $Xse
119f0 64 20 2d 65 20 22 73 25 40 53 59 4d 46 49 4c 45  d -e "s%@SYMFILE
11a00 40 25 24 73 79 6d 66 69 6c 65 6f 62 6a 25 22 60  @%$symfileobj%"`
11a10 0a 09 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 63  ..    finalize_c
11a20 6f 6d 6d 61 6e 64 3d 60 24 45 43 48 4f 20 22 58  ommand=`$ECHO "X
11a30 24 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e  $finalize_comman
11a40 64 22 20 7c 20 24 58 73 65 64 20 2d 65 20 22 73  d" | $Xsed -e "s
11a50 25 40 53 59 4d 46 49 4c 45 40 25 24 73 79 6d 66  %@SYMFILE@%$symf
11a60 69 6c 65 6f 62 6a 25 22 60 0a 09 20 20 66 69 0a  ileobj%"`..  fi.
11a70 09 20 20 3b 3b 0a 09 2a 29 0a 09 20 20 63 6f 6d  .  ;;..*)..  com
11a80 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45  pile_command=`$E
11a90 43 48 4f 20 22 58 24 63 6f 6d 70 69 6c 65 5f 63  CHO "X$compile_c
11aa0 6f 6d 6d 61 6e 64 22 20 7c 20 24 58 73 65 64 20  ommand" | $Xsed 
11ab0 2d 65 20 22 73 25 40 53 59 4d 46 49 4c 45 40 25  -e "s%@SYMFILE@%
11ac0 24 73 79 6d 66 69 6c 65 6f 62 6a 25 22 60 0a 09  $symfileobj%"`..
11ad0 20 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61    finalize_comma
11ae0 6e 64 3d 60 24 45 43 48 4f 20 22 58 24 66 69 6e  nd=`$ECHO "X$fin
11af0 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 22 20 7c  alize_command" |
11b00 20 24 58 73 65 64 20 2d 65 20 22 73 25 40 53 59   $Xsed -e "s%@SY
11b10 4d 46 49 4c 45 40 25 24 73 79 6d 66 69 6c 65 6f  MFILE@%$symfileo
11b20 62 6a 25 22 60 0a 09 20 20 3b 3b 0a 09 65 73 61  bj%"`..  ;;..esa
11b30 63 0a 09 3b 3b 0a 20 20 20 20 20 20 2a 29 0a 09  c..;;.      *)..
11b40 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72  func_fatal_error
11b50 20 22 75 6e 6b 6e 6f 77 6e 20 73 75 66 66 69 78   "unknown suffix
11b60 20 66 6f 72 20 5c 60 24 6d 79 5f 64 6c 73 79 6d   for \`$my_dlsym
11b70 73 27 22 0a 09 3b 3b 0a 20 20 20 20 20 20 65 73  s'"..;;.      es
11b80 61 63 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20  ac.    else.    
11b90 20 20 23 20 57 65 20 6b 65 65 70 20 67 6f 69 6e    # We keep goin
11ba0 67 20 6a 75 73 74 20 69 6e 20 63 61 73 65 20 74  g just in case t
11bb0 68 65 20 75 73 65 72 20 64 69 64 6e 27 74 20 72  he user didn't r
11bc0 65 66 65 72 20 74 6f 0a 20 20 20 20 20 20 23 20  efer to.      # 
11bd0 6c 74 5f 70 72 65 6c 6f 61 64 65 64 5f 73 79 6d  lt_preloaded_sym
11be0 62 6f 6c 73 2e 20 20 54 68 65 20 6c 69 6e 6b 65  bols.  The linke
11bf0 72 20 77 69 6c 6c 20 66 61 69 6c 20 69 66 20 67  r will fail if g
11c00 6c 6f 62 61 6c 5f 73 79 6d 62 6f 6c 5f 70 69 70  lobal_symbol_pip
11c10 65 0a 20 20 20 20 20 20 23 20 72 65 61 6c 6c 79  e.      # really
11c20 20 77 61 73 20 72 65 71 75 69 72 65 64 2e 0a 0a   was required...
11c30 20 20 20 20 20 20 23 20 4e 75 6c 6c 69 66 79 20        # Nullify 
11c40 74 68 65 20 73 79 6d 62 6f 6c 20 66 69 6c 65 2e  the symbol file.
11c50 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 5f 63  .      compile_c
11c60 6f 6d 6d 61 6e 64 3d 60 24 45 43 48 4f 20 22 58  ommand=`$ECHO "X
11c70 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64  $compile_command
11c80 22 20 7c 20 24 58 73 65 64 20 2d 65 20 22 73 25  " | $Xsed -e "s%
11c90 20 40 53 59 4d 46 49 4c 45 40 25 25 22 60 0a 20   @SYMFILE@%%"`. 
11ca0 20 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 63 6f       finalize_co
11cb0 6d 6d 61 6e 64 3d 60 24 45 43 48 4f 20 22 58 24  mmand=`$ECHO "X$
11cc0 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64  finalize_command
11cd0 22 20 7c 20 24 58 73 65 64 20 2d 65 20 22 73 25  " | $Xsed -e "s%
11ce0 20 40 53 59 4d 46 49 4c 45 40 25 25 22 60 0a 20   @SYMFILE@%%"`. 
11cf0 20 20 20 66 69 0a 7d 0a 0a 23 20 66 75 6e 63 5f     fi.}..# func_
11d00 77 69 6e 33 32 5f 6c 69 62 69 64 20 61 72 67 0a  win32_libid arg.
11d10 23 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 62  # return the lib
11d20 72 61 72 79 20 74 79 70 65 20 6f 66 20 66 69 6c  rary type of fil
11d30 65 20 27 61 72 67 27 0a 23 0a 23 20 4e 65 65 64  e 'arg'.#.# Need
11d40 20 61 20 6c 6f 74 20 6f 66 20 67 6f 6f 20 74 6f   a lot of goo to
11d50 20 68 61 6e 64 6c 65 20 2a 62 6f 74 68 2a 20 44   handle *both* D
11d60 4c 4c 73 20 61 6e 64 20 69 6d 70 6f 72 74 20 6c  LLs and import l
11d70 69 62 73 0a 23 20 48 61 73 20 74 6f 20 62 65 20  ibs.# Has to be 
11d80 61 20 73 68 65 6c 6c 20 66 75 6e 63 74 69 6f 6e  a shell function
11d90 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 27 65 61   in order to 'ea
11da0 74 27 20 74 68 65 20 61 72 67 75 6d 65 6e 74 0a  t' the argument.
11db0 23 20 74 68 61 74 20 69 73 20 73 75 70 70 6c 69  # that is suppli
11dc0 65 64 20 77 68 65 6e 20 24 66 69 6c 65 5f 6d 61  ed when $file_ma
11dd0 67 69 63 5f 63 6f 6d 6d 61 6e 64 20 69 73 20 63  gic_command is c
11de0 61 6c 6c 65 64 2e 0a 66 75 6e 63 5f 77 69 6e 33  alled..func_win3
11df0 32 5f 6c 69 62 69 64 20 28 29 0a 7b 0a 20 20 24  2_libid ().{.  $
11e00 6f 70 74 5f 64 65 62 75 67 0a 20 20 77 69 6e 33  opt_debug.  win3
11e10 32 5f 6c 69 62 69 64 5f 74 79 70 65 3d 22 75 6e  2_libid_type="un
11e20 6b 6e 6f 77 6e 22 0a 20 20 77 69 6e 33 32 5f 66  known".  win32_f
11e30 69 6c 65 72 65 73 3d 60 66 69 6c 65 20 2d 4c 20  ileres=`file -L 
11e40 24 31 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a  $1 2>/dev/null`.
11e50 20 20 63 61 73 65 20 24 77 69 6e 33 32 5f 66 69    case $win32_fi
11e60 6c 65 72 65 73 20 69 6e 0a 20 20 2a 61 72 5c 20  leres in.  *ar\ 
11e70 61 72 63 68 69 76 65 5c 20 69 6d 70 6f 72 74 5c  archive\ import\
11e80 20 6c 69 62 72 61 72 79 2a 29 20 23 20 64 65 66   library*) # def
11e90 69 6e 69 74 65 6c 79 20 69 6d 70 6f 72 74 0a 20  initely import. 
11ea0 20 20 20 77 69 6e 33 32 5f 6c 69 62 69 64 5f 74     win32_libid_t
11eb0 79 70 65 3d 22 78 38 36 20 61 72 63 68 69 76 65  ype="x86 archive
11ec0 20 69 6d 70 6f 72 74 22 0a 20 20 20 20 3b 3b 0a   import".    ;;.
11ed0 20 20 2a 61 72 5c 20 61 72 63 68 69 76 65 2a 29    *ar\ archive*)
11ee0 20 23 20 63 6f 75 6c 64 20 62 65 20 61 6e 20 69   # could be an i
11ef0 6d 70 6f 72 74 2c 20 6f 72 20 73 74 61 74 69 63  mport, or static
11f00 0a 20 20 20 20 69 66 20 65 76 61 6c 20 24 4f 42  .    if eval $OB
11f10 4a 44 55 4d 50 20 2d 66 20 24 31 20 7c 20 24 53  JDUMP -f $1 | $S
11f20 45 44 20 2d 65 20 27 31 30 71 27 20 32 3e 2f 64  ED -e '10q' 2>/d
11f30 65 76 2f 6e 75 6c 6c 20 7c 0a 20 20 20 20 20 20  ev/null |.      
11f40 20 24 45 47 52 45 50 20 27 66 69 6c 65 20 66 6f   $EGREP 'file fo
11f50 72 6d 61 74 20 70 65 2d 69 33 38 36 28 2e 2a 61  rmat pe-i386(.*a
11f60 72 63 68 69 74 65 63 74 75 72 65 3a 20 69 33 38  rchitecture: i38
11f70 36 29 3f 27 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20  6)?' >/dev/null 
11f80 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 77 69 6e  ; then.      win
11f90 33 32 5f 6e 6d 72 65 73 3d 60 65 76 61 6c 20 24  32_nmres=`eval $
11fa0 4e 4d 20 2d 66 20 70 6f 73 69 78 20 2d 41 20 24  NM -f posix -A $
11fb0 31 20 7c 0a 09 24 53 45 44 20 2d 6e 20 2d 65 20  1 |..$SED -n -e 
11fc0 27 0a 09 20 20 20 20 31 2c 31 30 30 7b 0a 09 09  '..    1,100{...
11fd0 2f 20 49 20 2f 7b 0a 09 09 20 20 20 20 73 2c 2e  / I /{...    s,.
11fe0 2a 2c 69 6d 70 6f 72 74 2c 0a 09 09 20 20 20 20  *,import,...    
11ff0 70 0a 09 09 20 20 20 20 71 0a 09 09 7d 0a 09 20  p...    q...}.. 
12000 20 20 20 7d 27 60 0a 20 20 20 20 20 20 63 61 73     }'`.      cas
12010 65 20 24 77 69 6e 33 32 5f 6e 6d 72 65 73 20 69  e $win32_nmres i
12020 6e 0a 20 20 20 20 20 20 69 6d 70 6f 72 74 2a 29  n.      import*)
12030 20 20 77 69 6e 33 32 5f 6c 69 62 69 64 5f 74 79    win32_libid_ty
12040 70 65 3d 22 78 38 36 20 61 72 63 68 69 76 65 20  pe="x86 archive 
12050 69 6d 70 6f 72 74 22 3b 3b 0a 20 20 20 20 20 20  import";;.      
12060 2a 29 20 20 20 20 20 20 20 20 77 69 6e 33 32 5f  *)        win32_
12070 6c 69 62 69 64 5f 74 79 70 65 3d 22 78 38 36 20  libid_type="x86 
12080 61 72 63 68 69 76 65 20 73 74 61 74 69 63 22 3b  archive static";
12090 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 20 20 20  ;.      esac.   
120a0 20 66 69 0a 20 20 20 20 3b 3b 0a 20 20 2a 44 4c   fi.    ;;.  *DL
120b0 4c 2a 29 0a 20 20 20 20 77 69 6e 33 32 5f 6c 69  L*).    win32_li
120c0 62 69 64 5f 74 79 70 65 3d 22 78 38 36 20 44 4c  bid_type="x86 DL
120d0 4c 22 0a 20 20 20 20 3b 3b 0a 20 20 2a 65 78 65  L".    ;;.  *exe
120e0 63 75 74 61 62 6c 65 2a 29 20 23 20 62 75 74 20  cutable*) # but 
120f0 73 68 65 6c 6c 20 73 63 72 69 70 74 73 20 61 72  shell scripts ar
12100 65 20 22 65 78 65 63 75 74 61 62 6c 65 22 20 74  e "executable" t
12110 6f 6f 2e 2e 2e 0a 20 20 20 20 63 61 73 65 20 24  oo....    case $
12120 77 69 6e 33 32 5f 66 69 6c 65 72 65 73 20 69 6e  win32_fileres in
12130 0a 20 20 20 20 2a 4d 53 5c 20 57 69 6e 64 6f 77  .    *MS\ Window
12140 73 5c 20 50 45 5c 20 49 6e 74 65 6c 2a 29 0a 20  s\ PE\ Intel*). 
12150 20 20 20 20 20 77 69 6e 33 32 5f 6c 69 62 69 64       win32_libid
12160 5f 74 79 70 65 3d 22 78 38 36 20 44 4c 4c 22 0a  _type="x86 DLL".
12170 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 65 73 61        ;;.    esa
12180 63 0a 20 20 20 20 3b 3b 0a 20 20 65 73 61 63 0a  c.    ;;.  esac.
12190 20 20 24 45 43 48 4f 20 22 24 77 69 6e 33 32 5f    $ECHO "$win32_
121a0 6c 69 62 69 64 5f 74 79 70 65 22 0a 7d 0a 0a 0a  libid_type".}...
121b0 0a 23 20 66 75 6e 63 5f 65 78 74 72 61 63 74 5f  .# func_extract_
121c0 61 6e 5f 61 72 63 68 69 76 65 20 64 69 72 20 6f  an_archive dir o
121d0 6c 64 6c 69 62 0a 66 75 6e 63 5f 65 78 74 72 61  ldlib.func_extra
121e0 63 74 5f 61 6e 5f 61 72 63 68 69 76 65 20 28 29  ct_an_archive ()
121f0 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65 62 75  .{.    $opt_debu
12200 67 0a 20 20 20 20 66 5f 65 78 5f 61 6e 5f 61 72  g.    f_ex_an_ar
12210 5f 64 69 72 3d 22 24 31 22 3b 20 73 68 69 66 74  _dir="$1"; shift
12220 0a 20 20 20 20 66 5f 65 78 5f 61 6e 5f 61 72 5f  .    f_ex_an_ar_
12230 6f 6c 64 6c 69 62 3d 22 24 31 22 0a 20 20 20 20  oldlib="$1".    
12240 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20 22  func_show_eval "
12250 28 63 64 20 5c 24 66 5f 65 78 5f 61 6e 5f 61 72  (cd \$f_ex_an_ar
12260 5f 64 69 72 20 26 26 20 24 41 52 20 78 20 5c 22  _dir && $AR x \"
12270 5c 24 66 5f 65 78 5f 61 6e 5f 61 72 5f 6f 6c 64  \$f_ex_an_ar_old
12280 6c 69 62 5c 22 29 22 20 27 65 78 69 74 20 24 3f  lib\")" 'exit $?
12290 27 0a 20 20 20 20 69 66 20 28 24 41 52 20 74 20  '.    if ($AR t 
122a0 22 24 66 5f 65 78 5f 61 6e 5f 61 72 5f 6f 6c 64  "$f_ex_an_ar_old
122b0 6c 69 62 22 20 7c 20 73 6f 72 74 20 7c 20 73 6f  lib" | sort | so
122c0 72 74 20 2d 75 63 20 3e 2f 64 65 76 2f 6e 75 6c  rt -uc >/dev/nul
122d0 6c 20 32 3e 26 31 29 3b 20 74 68 65 6e 0a 20 20  l 2>&1); then.  
122e0 20 20 20 3a 0a 20 20 20 20 65 6c 73 65 0a 20 20     :.    else.  
122f0 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65      func_fatal_e
12300 72 72 6f 72 20 22 6f 62 6a 65 63 74 20 6e 61 6d  rror "object nam
12310 65 20 63 6f 6e 66 6c 69 63 74 73 20 69 6e 20 61  e conflicts in a
12320 72 63 68 69 76 65 3a 20 24 66 5f 65 78 5f 61 6e  rchive: $f_ex_an
12330 5f 61 72 5f 64 69 72 2f 24 66 5f 65 78 5f 61 6e  _ar_dir/$f_ex_an
12340 5f 61 72 5f 6f 6c 64 6c 69 62 22 0a 20 20 20 20  _ar_oldlib".    
12350 66 69 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 65 78  fi.}...# func_ex
12360 74 72 61 63 74 5f 61 72 63 68 69 76 65 73 20 67  tract_archives g
12370 65 6e 74 6f 70 20 6f 6c 64 6c 69 62 20 2e 2e 2e  entop oldlib ...
12380 0a 66 75 6e 63 5f 65 78 74 72 61 63 74 5f 61 72  .func_extract_ar
12390 63 68 69 76 65 73 20 28 29 0a 7b 0a 20 20 20 20  chives ().{.    
123a0 24 6f 70 74 5f 64 65 62 75 67 0a 20 20 20 20 6d  $opt_debug.    m
123b0 79 5f 67 65 6e 74 6f 70 3d 22 24 31 22 3b 20 73  y_gentop="$1"; s
123c0 68 69 66 74 0a 20 20 20 20 6d 79 5f 6f 6c 64 6c  hift.    my_oldl
123d0 69 62 73 3d 24 7b 31 2b 22 24 40 22 7d 0a 20 20  ibs=${1+"$@"}.  
123e0 20 20 6d 79 5f 6f 6c 64 6f 62 6a 73 3d 22 22 0a    my_oldobjs="".
123f0 20 20 20 20 6d 79 5f 78 6c 69 62 3d 22 22 0a 20      my_xlib="". 
12400 20 20 20 6d 79 5f 78 61 62 73 3d 22 22 0a 20 20     my_xabs="".  
12410 20 20 6d 79 5f 78 64 69 72 3d 22 22 0a 0a 20 20    my_xdir=""..  
12420 20 20 66 6f 72 20 6d 79 5f 78 6c 69 62 20 69 6e    for my_xlib in
12430 20 24 6d 79 5f 6f 6c 64 6c 69 62 73 3b 20 64 6f   $my_oldlibs; do
12440 0a 20 20 20 20 20 20 23 20 45 78 74 72 61 63 74  .      # Extract
12450 20 74 68 65 20 6f 62 6a 65 63 74 73 2e 0a 20 20   the objects..  
12460 20 20 20 20 63 61 73 65 20 24 6d 79 5f 78 6c 69      case $my_xli
12470 62 20 69 6e 0a 09 5b 5c 5c 2f 5d 2a 20 7c 20 5b  b in..[\\/]* | [
12480 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29 20  A-Za-z]:[\\/]*) 
12490 6d 79 5f 78 61 62 73 3d 22 24 6d 79 5f 78 6c 69  my_xabs="$my_xli
124a0 62 22 20 3b 3b 0a 09 2a 29 20 6d 79 5f 78 61 62  b" ;;..*) my_xab
124b0 73 3d 60 70 77 64 60 22 2f 24 6d 79 5f 78 6c 69  s=`pwd`"/$my_xli
124c0 62 22 20 3b 3b 0a 20 20 20 20 20 20 65 73 61 63  b" ;;.      esac
124d0 0a 20 20 20 20 20 20 66 75 6e 63 5f 62 61 73 65  .      func_base
124e0 6e 61 6d 65 20 22 24 6d 79 5f 78 6c 69 62 22 0a  name "$my_xlib".
124f0 20 20 20 20 20 20 6d 79 5f 78 6c 69 62 3d 22 24        my_xlib="$
12500 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65  func_basename_re
12510 73 75 6c 74 22 0a 20 20 20 20 20 20 6d 79 5f 78  sult".      my_x
12520 6c 69 62 5f 75 3d 24 6d 79 5f 78 6c 69 62 0a 20  lib_u=$my_xlib. 
12530 20 20 20 20 20 77 68 69 6c 65 20 3a 3b 20 64 6f       while :; do
12540 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 22 20  .        case " 
12550 24 65 78 74 72 61 63 74 65 64 5f 61 72 63 68 69  $extracted_archi
12560 76 65 73 20 22 20 69 6e 0a 09 2a 22 20 24 6d 79  ves " in..*" $my
12570 5f 78 6c 69 62 5f 75 20 22 2a 29 0a 09 20 20 66  _xlib_u "*)..  f
12580 75 6e 63 5f 61 72 69 74 68 20 24 65 78 74 72 61  unc_arith $extra
12590 63 74 65 64 5f 73 65 72 69 61 6c 20 2b 20 31 0a  cted_serial + 1.
125a0 09 20 20 65 78 74 72 61 63 74 65 64 5f 73 65 72  .  extracted_ser
125b0 69 61 6c 3d 24 66 75 6e 63 5f 61 72 69 74 68 5f  ial=$func_arith_
125c0 72 65 73 75 6c 74 0a 09 20 20 6d 79 5f 78 6c 69  result..  my_xli
125d0 62 5f 75 3d 6c 74 24 65 78 74 72 61 63 74 65 64  b_u=lt$extracted
125e0 5f 73 65 72 69 61 6c 2d 24 6d 79 5f 78 6c 69 62  _serial-$my_xlib
125f0 20 3b 3b 0a 09 2a 29 20 62 72 65 61 6b 20 3b 3b   ;;..*) break ;;
12600 0a 09 65 73 61 63 0a 20 20 20 20 20 20 64 6f 6e  ..esac.      don
12610 65 0a 20 20 20 20 20 20 65 78 74 72 61 63 74 65  e.      extracte
12620 64 5f 61 72 63 68 69 76 65 73 3d 22 24 65 78 74  d_archives="$ext
12630 72 61 63 74 65 64 5f 61 72 63 68 69 76 65 73 20  racted_archives 
12640 24 6d 79 5f 78 6c 69 62 5f 75 22 0a 20 20 20 20  $my_xlib_u".    
12650 20 20 6d 79 5f 78 64 69 72 3d 22 24 6d 79 5f 67    my_xdir="$my_g
12660 65 6e 74 6f 70 2f 24 6d 79 5f 78 6c 69 62 5f 75  entop/$my_xlib_u
12670 22 0a 0a 20 20 20 20 20 20 66 75 6e 63 5f 6d 6b  "..      func_mk
12680 64 69 72 5f 70 20 22 24 6d 79 5f 78 64 69 72 22  dir_p "$my_xdir"
12690 0a 0a 20 20 20 20 20 20 63 61 73 65 20 24 68 6f  ..      case $ho
126a0 73 74 20 69 6e 0a 20 20 20 20 20 20 2a 2d 64 61  st in.      *-da
126b0 72 77 69 6e 2a 29 0a 09 66 75 6e 63 5f 76 65 72  rwin*)..func_ver
126c0 62 6f 73 65 20 22 45 78 74 72 61 63 74 69 6e 67  bose "Extracting
126d0 20 24 6d 79 5f 78 61 62 73 22 0a 09 23 20 44 6f   $my_xabs"..# Do
126e0 20 6e 6f 74 20 62 6f 74 68 65 72 20 64 6f 69 6e   not bother doin
126f0 67 20 61 6e 79 74 68 69 6e 67 20 69 66 20 6a 75  g anything if ju
12700 73 74 20 61 20 64 72 79 20 72 75 6e 0a 09 24 6f  st a dry run..$o
12710 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 7b 0a  pt_dry_run || {.
12720 09 20 20 64 61 72 77 69 6e 5f 6f 72 69 67 5f 64  .  darwin_orig_d
12730 69 72 3d 60 70 77 64 60 0a 09 20 20 63 64 20 24  ir=`pwd`..  cd $
12740 6d 79 5f 78 64 69 72 20 7c 7c 20 65 78 69 74 20  my_xdir || exit 
12750 24 3f 0a 09 20 20 64 61 72 77 69 6e 5f 61 72 63  $?..  darwin_arc
12760 68 69 76 65 3d 24 6d 79 5f 78 61 62 73 0a 09 20  hive=$my_xabs.. 
12770 20 64 61 72 77 69 6e 5f 63 75 72 64 69 72 3d 60   darwin_curdir=`
12780 70 77 64 60 0a 09 20 20 64 61 72 77 69 6e 5f 62  pwd`..  darwin_b
12790 61 73 65 5f 61 72 63 68 69 76 65 3d 60 62 61 73  ase_archive=`bas
127a0 65 6e 61 6d 65 20 22 24 64 61 72 77 69 6e 5f 61  ename "$darwin_a
127b0 72 63 68 69 76 65 22 60 0a 09 20 20 64 61 72 77  rchive"`..  darw
127c0 69 6e 5f 61 72 63 68 65 73 3d 60 24 4c 49 50 4f  in_arches=`$LIPO
127d0 20 2d 69 6e 66 6f 20 22 24 64 61 72 77 69 6e 5f   -info "$darwin_
127e0 61 72 63 68 69 76 65 22 20 32 3e 2f 64 65 76 2f  archive" 2>/dev/
127f0 6e 75 6c 6c 20 7c 20 24 47 52 45 50 20 41 72 63  null | $GREP Arc
12800 68 69 74 65 63 74 75 72 65 73 20 32 3e 2f 64 65  hitectures 2>/de
12810 76 2f 6e 75 6c 6c 20 7c 7c 20 74 72 75 65 60 0a  v/null || true`.
12820 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24  .  if test -n "$
12830 64 61 72 77 69 6e 5f 61 72 63 68 65 73 22 3b 20  darwin_arches"; 
12840 74 68 65 6e 0a 09 20 20 20 20 64 61 72 77 69 6e  then..    darwin
12850 5f 61 72 63 68 65 73 3d 60 24 45 43 48 4f 20 22  _arches=`$ECHO "
12860 24 64 61 72 77 69 6e 5f 61 72 63 68 65 73 22 20  $darwin_arches" 
12870 7c 20 24 53 45 44 20 2d 65 20 27 73 2f 2e 2a 61  | $SED -e 's/.*a
12880 72 65 3a 2f 2f 27 60 0a 09 20 20 20 20 64 61 72  re://'`..    dar
12890 77 69 6e 5f 61 72 63 68 3d 0a 09 20 20 20 20 66  win_arch=..    f
128a0 75 6e 63 5f 76 65 72 62 6f 73 65 20 22 24 64 61  unc_verbose "$da
128b0 72 77 69 6e 5f 62 61 73 65 5f 61 72 63 68 69 76  rwin_base_archiv
128c0 65 20 68 61 73 20 6d 75 6c 74 69 70 6c 65 20 61  e has multiple a
128d0 72 63 68 69 74 65 63 74 75 72 65 73 20 24 64 61  rchitectures $da
128e0 72 77 69 6e 5f 61 72 63 68 65 73 22 0a 09 20 20  rwin_arches"..  
128f0 20 20 66 6f 72 20 64 61 72 77 69 6e 5f 61 72 63    for darwin_arc
12900 68 20 69 6e 20 20 24 64 61 72 77 69 6e 5f 61 72  h in  $darwin_ar
12910 63 68 65 73 20 3b 20 64 6f 0a 09 20 20 20 20 20  ches ; do..     
12920 20 66 75 6e 63 5f 6d 6b 64 69 72 5f 70 20 22 75   func_mkdir_p "u
12930 6e 66 61 74 2d 24 24 2f 24 7b 64 61 72 77 69 6e  nfat-$$/${darwin
12940 5f 62 61 73 65 5f 61 72 63 68 69 76 65 7d 2d 24  _base_archive}-$
12950 7b 64 61 72 77 69 6e 5f 61 72 63 68 7d 22 0a 09  {darwin_arch}"..
12960 20 20 20 20 20 20 24 4c 49 50 4f 20 2d 74 68 69        $LIPO -thi
12970 6e 20 24 64 61 72 77 69 6e 5f 61 72 63 68 20 2d  n $darwin_arch -
12980 6f 75 74 70 75 74 20 22 75 6e 66 61 74 2d 24 24  output "unfat-$$
12990 2f 24 7b 64 61 72 77 69 6e 5f 62 61 73 65 5f 61  /${darwin_base_a
129a0 72 63 68 69 76 65 7d 2d 24 7b 64 61 72 77 69 6e  rchive}-${darwin
129b0 5f 61 72 63 68 7d 2f 24 7b 64 61 72 77 69 6e 5f  _arch}/${darwin_
129c0 62 61 73 65 5f 61 72 63 68 69 76 65 7d 22 20 22  base_archive}" "
129d0 24 7b 64 61 72 77 69 6e 5f 61 72 63 68 69 76 65  ${darwin_archive
129e0 7d 22 0a 09 20 20 20 20 20 20 63 64 20 22 75 6e  }"..      cd "un
129f0 66 61 74 2d 24 24 2f 24 7b 64 61 72 77 69 6e 5f  fat-$$/${darwin_
12a00 62 61 73 65 5f 61 72 63 68 69 76 65 7d 2d 24 7b  base_archive}-${
12a10 64 61 72 77 69 6e 5f 61 72 63 68 7d 22 0a 09 20  darwin_arch}".. 
12a20 20 20 20 20 20 66 75 6e 63 5f 65 78 74 72 61 63       func_extrac
12a30 74 5f 61 6e 5f 61 72 63 68 69 76 65 20 22 60 70  t_an_archive "`p
12a40 77 64 60 22 20 22 24 7b 64 61 72 77 69 6e 5f 62  wd`" "${darwin_b
12a50 61 73 65 5f 61 72 63 68 69 76 65 7d 22 0a 09 20  ase_archive}".. 
12a60 20 20 20 20 20 63 64 20 22 24 64 61 72 77 69 6e       cd "$darwin
12a70 5f 63 75 72 64 69 72 22 0a 09 20 20 20 20 20 20  _curdir"..      
12a80 24 52 4d 20 22 75 6e 66 61 74 2d 24 24 2f 24 7b  $RM "unfat-$$/${
12a90 64 61 72 77 69 6e 5f 62 61 73 65 5f 61 72 63 68  darwin_base_arch
12aa0 69 76 65 7d 2d 24 7b 64 61 72 77 69 6e 5f 61 72  ive}-${darwin_ar
12ab0 63 68 7d 2f 24 7b 64 61 72 77 69 6e 5f 62 61 73  ch}/${darwin_bas
12ac0 65 5f 61 72 63 68 69 76 65 7d 22 0a 09 20 20 20  e_archive}"..   
12ad0 20 64 6f 6e 65 20 23 20 24 64 61 72 77 69 6e 5f   done # $darwin_
12ae0 61 72 63 68 65 73 0a 20 20 20 20 20 20 20 20 20  arches.         
12af0 20 20 20 23 23 20 4f 6b 61 79 20 6e 6f 77 20 77     ## Okay now w
12b00 65 27 76 65 20 61 20 62 75 6e 63 68 20 6f 66 20  e've a bunch of 
12b10 74 68 69 6e 20 6f 62 6a 65 63 74 73 2c 20 67 6f  thin objects, go
12b20 74 74 61 20 66 61 74 74 65 6e 20 74 68 65 6d 20  tta fatten them 
12b30 75 70 20 3a 29 0a 09 20 20 20 20 64 61 72 77 69  up :)..    darwi
12b40 6e 5f 66 69 6c 65 6c 69 73 74 3d 60 66 69 6e 64  n_filelist=`find
12b50 20 75 6e 66 61 74 2d 24 24 20 2d 74 79 70 65 20   unfat-$$ -type 
12b60 66 20 2d 6e 61 6d 65 20 5c 2a 2e 6f 20 2d 70 72  f -name \*.o -pr
12b70 69 6e 74 20 2d 6f 20 2d 6e 61 6d 65 20 5c 2a 2e  int -o -name \*.
12b80 6c 6f 20 2d 70 72 69 6e 74 20 7c 20 24 53 45 44  lo -print | $SED
12b90 20 2d 65 20 22 24 62 61 73 65 6e 61 6d 65 22 20   -e "$basename" 
12ba0 7c 20 73 6f 72 74 20 2d 75 60 0a 09 20 20 20 20  | sort -u`..    
12bb0 64 61 72 77 69 6e 5f 66 69 6c 65 3d 0a 09 20 20  darwin_file=..  
12bc0 20 20 64 61 72 77 69 6e 5f 66 69 6c 65 73 3d 0a    darwin_files=.
12bd0 09 20 20 20 20 66 6f 72 20 64 61 72 77 69 6e 5f  .    for darwin_
12be0 66 69 6c 65 20 69 6e 20 24 64 61 72 77 69 6e 5f  file in $darwin_
12bf0 66 69 6c 65 6c 69 73 74 3b 20 64 6f 0a 09 20 20  filelist; do..  
12c00 20 20 20 20 64 61 72 77 69 6e 5f 66 69 6c 65 73      darwin_files
12c10 3d 60 66 69 6e 64 20 75 6e 66 61 74 2d 24 24 20  =`find unfat-$$ 
12c20 2d 6e 61 6d 65 20 24 64 61 72 77 69 6e 5f 66 69  -name $darwin_fi
12c30 6c 65 20 2d 70 72 69 6e 74 20 7c 20 24 4e 4c 32  le -print | $NL2
12c40 53 50 60 0a 09 20 20 20 20 20 20 24 4c 49 50 4f  SP`..      $LIPO
12c50 20 2d 63 72 65 61 74 65 20 2d 6f 75 74 70 75 74   -create -output
12c60 20 22 24 64 61 72 77 69 6e 5f 66 69 6c 65 22 20   "$darwin_file" 
12c70 24 64 61 72 77 69 6e 5f 66 69 6c 65 73 0a 09 20  $darwin_files.. 
12c80 20 20 20 64 6f 6e 65 20 23 20 24 64 61 72 77 69     done # $darwi
12c90 6e 5f 66 69 6c 65 6c 69 73 74 0a 09 20 20 20 20  n_filelist..    
12ca0 24 52 4d 20 2d 72 66 20 75 6e 66 61 74 2d 24 24  $RM -rf unfat-$$
12cb0 0a 09 20 20 20 20 63 64 20 22 24 64 61 72 77 69  ..    cd "$darwi
12cc0 6e 5f 6f 72 69 67 5f 64 69 72 22 0a 09 20 20 65  n_orig_dir"..  e
12cd0 6c 73 65 0a 09 20 20 20 20 63 64 20 24 64 61 72  lse..    cd $dar
12ce0 77 69 6e 5f 6f 72 69 67 5f 64 69 72 0a 09 20 20  win_orig_dir..  
12cf0 20 20 66 75 6e 63 5f 65 78 74 72 61 63 74 5f 61    func_extract_a
12d00 6e 5f 61 72 63 68 69 76 65 20 22 24 6d 79 5f 78  n_archive "$my_x
12d10 64 69 72 22 20 22 24 6d 79 5f 78 61 62 73 22 0a  dir" "$my_xabs".
12d20 09 20 20 66 69 20 23 20 24 64 61 72 77 69 6e 5f  .  fi # $darwin_
12d30 61 72 63 68 65 73 0a 09 7d 20 23 20 21 24 6f 70  arches..} # !$op
12d40 74 5f 64 72 79 5f 72 75 6e 0a 09 3b 3b 0a 20 20  t_dry_run..;;.  
12d50 20 20 20 20 2a 29 0a 20 20 20 20 20 20 20 20 66      *).        f
12d60 75 6e 63 5f 65 78 74 72 61 63 74 5f 61 6e 5f 61  unc_extract_an_a
12d70 72 63 68 69 76 65 20 22 24 6d 79 5f 78 64 69 72  rchive "$my_xdir
12d80 22 20 22 24 6d 79 5f 78 61 62 73 22 0a 09 3b 3b  " "$my_xabs"..;;
12d90 0a 20 20 20 20 20 20 65 73 61 63 0a 20 20 20 20  .      esac.    
12da0 20 20 6d 79 5f 6f 6c 64 6f 62 6a 73 3d 22 24 6d    my_oldobjs="$m
12db0 79 5f 6f 6c 64 6f 62 6a 73 20 22 60 66 69 6e 64  y_oldobjs "`find
12dc0 20 24 6d 79 5f 78 64 69 72 20 2d 6e 61 6d 65 20   $my_xdir -name 
12dd0 5c 2a 2e 24 6f 62 6a 65 78 74 20 2d 70 72 69 6e  \*.$objext -prin
12de0 74 20 2d 6f 20 2d 6e 61 6d 65 20 5c 2a 2e 6c 6f  t -o -name \*.lo
12df0 20 2d 70 72 69 6e 74 20 7c 20 24 4e 4c 32 53 50   -print | $NL2SP
12e00 60 0a 20 20 20 20 64 6f 6e 65 0a 0a 20 20 20 20  `.    done..    
12e10 66 75 6e 63 5f 65 78 74 72 61 63 74 5f 61 72 63  func_extract_arc
12e20 68 69 76 65 73 5f 72 65 73 75 6c 74 3d 22 24 6d  hives_result="$m
12e30 79 5f 6f 6c 64 6f 62 6a 73 22 0a 7d 0a 0a 0a 0a  y_oldobjs".}....
12e40 23 20 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70  # func_emit_wrap
12e50 70 65 72 5f 70 61 72 74 31 20 5b 61 72 67 3d 6e  per_part1 [arg=n
12e60 6f 5d 0a 23 0a 23 20 45 6d 69 74 20 74 68 65 20  o].#.# Emit the 
12e70 66 69 72 73 74 20 70 61 72 74 20 6f 66 20 61 20  first part of a 
12e80 6c 69 62 74 6f 6f 6c 20 77 72 61 70 70 65 72 20  libtool wrapper 
12e90 73 63 72 69 70 74 20 6f 6e 20 73 74 64 6f 75 74  script on stdout
12ea0 2e 0a 23 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66  ..# For more inf
12eb0 6f 72 6d 61 74 69 6f 6e 2c 20 73 65 65 20 74 68  ormation, see th
12ec0 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 61 73  e description as
12ed0 73 6f 63 69 61 74 65 64 20 77 69 74 68 0a 23 20  sociated with.# 
12ee0 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70 70 65  func_emit_wrappe
12ef0 72 28 29 2c 20 62 65 6c 6f 77 2e 0a 66 75 6e 63  r(), below..func
12f00 5f 65 6d 69 74 5f 77 72 61 70 70 65 72 5f 70 61  _emit_wrapper_pa
12f10 72 74 31 20 28 29 0a 7b 0a 09 66 75 6e 63 5f 65  rt1 ().{..func_e
12f20 6d 69 74 5f 77 72 61 70 70 65 72 5f 70 61 72 74  mit_wrapper_part
12f30 31 5f 61 72 67 31 3d 6e 6f 0a 09 69 66 20 74 65  1_arg1=no..if te
12f40 73 74 20 2d 6e 20 22 24 31 22 20 3b 20 74 68 65  st -n "$1" ; the
12f50 6e 0a 09 20 20 66 75 6e 63 5f 65 6d 69 74 5f 77  n..  func_emit_w
12f60 72 61 70 70 65 72 5f 70 61 72 74 31 5f 61 72 67  rapper_part1_arg
12f70 31 3d 24 31 0a 09 66 69 0a 0a 09 24 45 43 48 4f  1=$1..fi...$ECHO
12f80 20 22 5c 0a 23 21 20 24 53 48 45 4c 4c 0a 0a 23   "\.#! $SHELL..#
12f90 20 24 6f 75 74 70 75 74 20 2d 20 74 65 6d 70 6f   $output - tempo
12fa0 72 61 72 79 20 77 72 61 70 70 65 72 20 73 63 72  rary wrapper scr
12fb0 69 70 74 20 66 6f 72 20 24 6f 62 6a 64 69 72 2f  ipt for $objdir/
12fc0 24 6f 75 74 70 75 74 6e 61 6d 65 0a 23 20 47 65  $outputname.# Ge
12fd0 6e 65 72 61 74 65 64 20 62 79 20 24 50 52 4f 47  nerated by $PROG
12fe0 52 41 4d 20 28 47 4e 55 20 24 50 41 43 4b 41 47  RAM (GNU $PACKAG
12ff0 45 24 54 49 4d 45 53 54 41 4d 50 29 20 24 56 45  E$TIMESTAMP) $VE
13000 52 53 49 4f 4e 0a 23 0a 23 20 54 68 65 20 24 6f  RSION.#.# The $o
13010 75 74 70 75 74 20 70 72 6f 67 72 61 6d 20 63 61  utput program ca
13020 6e 6e 6f 74 20 62 65 20 64 69 72 65 63 74 6c 79  nnot be directly
13030 20 65 78 65 63 75 74 65 64 20 75 6e 74 69 6c 20   executed until 
13040 61 6c 6c 20 74 68 65 20 6c 69 62 74 6f 6f 6c 0a  all the libtool.
13050 23 20 6c 69 62 72 61 72 69 65 73 20 74 68 61 74  # libraries that
13060 20 69 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 61   it depends on a
13070 72 65 20 69 6e 73 74 61 6c 6c 65 64 2e 0a 23 0a  re installed..#.
13080 23 20 54 68 69 73 20 77 72 61 70 70 65 72 20 73  # This wrapper s
13090 63 72 69 70 74 20 73 68 6f 75 6c 64 20 6e 65 76  cript should nev
130a0 65 72 20 62 65 20 6d 6f 76 65 64 20 6f 75 74 20  er be moved out 
130b0 6f 66 20 74 68 65 20 62 75 69 6c 64 20 64 69 72  of the build dir
130c0 65 63 74 6f 72 79 2e 0a 23 20 49 66 20 69 74 20  ectory..# If it 
130d0 69 73 2c 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20  is, it will not 
130e0 6f 70 65 72 61 74 65 20 63 6f 72 72 65 63 74 6c  operate correctl
130f0 79 2e 0a 0a 23 20 53 65 64 20 73 75 62 73 74 69  y...# Sed substi
13100 74 75 74 69 6f 6e 20 74 68 61 74 20 68 65 6c 70  tution that help
13110 73 20 75 73 20 64 6f 20 72 6f 62 75 73 74 20 71  s us do robust q
13120 75 6f 74 69 6e 67 2e 20 20 49 74 20 62 61 63 6b  uoting.  It back
13130 73 6c 61 73 68 69 66 69 65 73 0a 23 20 6d 65 74  slashifies.# met
13140 61 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74  acharacters that
13150 20 61 72 65 20 73 74 69 6c 6c 20 61 63 74 69 76   are still activ
13160 65 20 77 69 74 68 69 6e 20 64 6f 75 62 6c 65 2d  e within double-
13170 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 2e 0a  quoted strings..
13180 58 73 65 64 3d 27 24 7b 53 45 44 7d 20 2d 65 20  Xsed='${SED} -e 
13190 31 73 2f 5e 58 2f 2f 27 0a 73 65 64 5f 71 75 6f  1s/^X//'.sed_quo
131a0 74 65 5f 73 75 62 73 74 3d 27 24 73 65 64 5f 71  te_subst='$sed_q
131b0 75 6f 74 65 5f 73 75 62 73 74 27 0a 0a 23 20 42  uote_subst'..# B
131c0 65 20 42 6f 75 72 6e 65 20 63 6f 6d 70 61 74 69  e Bourne compati
131d0 62 6c 65 0a 69 66 20 74 65 73 74 20 2d 6e 20 5c  ble.if test -n \
131e0 22 5c 24 7b 5a 53 48 5f 56 45 52 53 49 4f 4e 2b  "\${ZSH_VERSION+
131f0 73 65 74 7d 5c 22 20 26 26 20 28 65 6d 75 6c 61  set}\" && (emula
13200 74 65 20 73 68 29 20 3e 2f 64 65 76 2f 6e 75 6c  te sh) >/dev/nul
13210 6c 20 32 3e 26 31 3b 20 74 68 65 6e 0a 20 20 65  l 2>&1; then.  e
13220 6d 75 6c 61 74 65 20 73 68 0a 20 20 4e 55 4c 4c  mulate sh.  NULL
13230 43 4d 44 3d 3a 0a 20 20 23 20 5a 73 68 20 33 2e  CMD=:.  # Zsh 3.
13240 78 20 61 6e 64 20 34 2e 78 20 70 65 72 66 6f 72  x and 4.x perfor
13250 6d 73 20 77 6f 72 64 20 73 70 6c 69 74 74 69 6e  ms word splittin
13260 67 20 6f 6e 20 5c 24 7b 31 2b 5c 22 5c 24 40 5c  g on \${1+\"\$@\
13270 22 7d 2c 20 77 68 69 63 68 0a 20 20 23 20 69 73  "}, which.  # is
13280 20 63 6f 6e 74 72 61 72 79 20 74 6f 20 6f 75 72   contrary to our
13290 20 75 73 61 67 65 2e 20 20 44 69 73 61 62 6c 65   usage.  Disable
132a0 20 74 68 69 73 20 66 65 61 74 75 72 65 2e 0a 20   this feature.. 
132b0 20 61 6c 69 61 73 20 2d 67 20 27 5c 24 7b 31 2b   alias -g '\${1+
132c0 5c 22 5c 24 40 5c 22 7d 27 3d 27 5c 22 5c 24 40  \"\$@\"}'='\"\$@
132d0 5c 22 27 0a 20 20 73 65 74 6f 70 74 20 4e 4f 5f  \"'.  setopt NO_
132e0 47 4c 4f 42 5f 53 55 42 53 54 0a 65 6c 73 65 0a  GLOB_SUBST.else.
132f0 20 20 63 61 73 65 20 5c 60 28 73 65 74 20 2d 6f    case \`(set -o
13300 29 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 5c 60 20  ) 2>/dev/null\` 
13310 69 6e 20 2a 70 6f 73 69 78 2a 29 20 73 65 74 20  in *posix*) set 
13320 2d 6f 20 70 6f 73 69 78 3b 3b 20 65 73 61 63 0a  -o posix;; esac.
13330 66 69 0a 42 49 4e 5f 53 48 3d 78 70 67 34 3b 20  fi.BIN_SH=xpg4; 
13340 65 78 70 6f 72 74 20 42 49 4e 5f 53 48 20 23 20  export BIN_SH # 
13350 66 6f 72 20 54 72 75 36 34 0a 44 55 41 4c 43 41  for Tru64.DUALCA
13360 53 45 3d 31 3b 20 65 78 70 6f 72 74 20 44 55 41  SE=1; export DUA
13370 4c 43 41 53 45 20 23 20 66 6f 72 20 4d 4b 53 20  LCASE # for MKS 
13380 73 68 0a 0a 23 20 54 68 65 20 48 50 2d 55 58 20  sh..# The HP-UX 
13390 6b 73 68 20 61 6e 64 20 50 4f 53 49 58 20 73 68  ksh and POSIX sh
133a0 65 6c 6c 20 70 72 69 6e 74 20 74 68 65 20 74 61  ell print the ta
133b0 72 67 65 74 20 64 69 72 65 63 74 6f 72 79 20 74  rget directory t
133c0 6f 20 73 74 64 6f 75 74 0a 23 20 69 66 20 43 44  o stdout.# if CD
133d0 50 41 54 48 20 69 73 20 73 65 74 2e 0a 28 75 6e  PATH is set..(un
133e0 73 65 74 20 43 44 50 41 54 48 29 20 3e 2f 64 65  set CDPATH) >/de
133f0 76 2f 6e 75 6c 6c 20 32 3e 26 31 20 26 26 20 75  v/null 2>&1 && u
13400 6e 73 65 74 20 43 44 50 41 54 48 0a 0a 72 65 6c  nset CDPATH..rel
13410 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 5c 22 24 72  ink_command=\"$r
13420 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 5c 22 0a  elink_command\".
13430 0a 23 20 54 68 69 73 20 65 6e 76 69 72 6f 6e 6d  .# This environm
13440 65 6e 74 20 76 61 72 69 61 62 6c 65 20 64 65 74  ent variable det
13450 65 72 6d 69 6e 65 73 20 6f 75 72 20 6f 70 65 72  ermines our oper
13460 61 74 69 6f 6e 20 6d 6f 64 65 2e 0a 69 66 20 74  ation mode..if t
13470 65 73 74 20 5c 22 5c 24 6c 69 62 74 6f 6f 6c 5f  est \"\$libtool_
13480 69 6e 73 74 61 6c 6c 5f 6d 61 67 69 63 5c 22 20  install_magic\" 
13490 3d 20 5c 22 24 6d 61 67 69 63 5c 22 3b 20 74 68  = \"$magic\"; th
134a0 65 6e 0a 20 20 23 20 69 6e 73 74 61 6c 6c 20 6d  en.  # install m
134b0 6f 64 65 20 6e 65 65 64 73 20 74 68 65 20 66 6f  ode needs the fo
134c0 6c 6c 6f 77 69 6e 67 20 76 61 72 69 61 62 6c 65  llowing variable
134d0 73 3a 0a 20 20 67 65 6e 65 72 61 74 65 64 5f 62  s:.  generated_b
134e0 79 5f 6c 69 62 74 6f 6f 6c 5f 76 65 72 73 69 6f  y_libtool_versio
134f0 6e 3d 27 24 6d 61 63 72 6f 5f 76 65 72 73 69 6f  n='$macro_versio
13500 6e 27 0a 20 20 6e 6f 74 69 6e 73 74 5f 64 65 70  n'.  notinst_dep
13510 6c 69 62 73 3d 27 24 6e 6f 74 69 6e 73 74 5f 64  libs='$notinst_d
13520 65 70 6c 69 62 73 27 0a 65 6c 73 65 0a 20 20 23  eplibs'.else.  #
13530 20 57 68 65 6e 20 77 65 20 61 72 65 20 73 6f 75   When we are sou
13540 72 63 65 64 20 69 6e 20 65 78 65 63 75 74 65 20  rced in execute 
13550 6d 6f 64 65 2c 20 5c 24 66 69 6c 65 20 61 6e 64  mode, \$file and
13560 20 5c 24 45 43 48 4f 20 61 72 65 20 61 6c 72 65   \$ECHO are alre
13570 61 64 79 20 73 65 74 2e 0a 20 20 69 66 20 74 65  ady set..  if te
13580 73 74 20 5c 22 5c 24 6c 69 62 74 6f 6f 6c 5f 65  st \"\$libtool_e
13590 78 65 63 75 74 65 5f 6d 61 67 69 63 5c 22 20 21  xecute_magic\" !
135a0 3d 20 5c 22 24 6d 61 67 69 63 5c 22 3b 20 74 68  = \"$magic\"; th
135b0 65 6e 0a 20 20 20 20 45 43 48 4f 3d 5c 22 24 71  en.    ECHO=\"$q
135c0 65 63 68 6f 5c 22 0a 20 20 20 20 66 69 6c 65 3d  echo\".    file=
135d0 5c 22 5c 24 30 5c 22 0a 20 20 20 20 23 20 4d 61  \"\$0\".    # Ma
135e0 6b 65 20 73 75 72 65 20 65 63 68 6f 20 77 6f 72  ke sure echo wor
135f0 6b 73 2e 0a 20 20 20 20 69 66 20 74 65 73 74 20  ks..    if test 
13600 5c 22 58 5c 24 31 5c 22 20 3d 20 58 2d 2d 6e 6f  \"X\$1\" = X--no
13610 2d 72 65 65 78 65 63 3b 20 74 68 65 6e 0a 20 20  -reexec; then.  
13620 20 20 20 20 23 20 44 69 73 63 61 72 64 20 74 68      # Discard th
13630 65 20 2d 2d 6e 6f 2d 72 65 65 78 65 63 20 66 6c  e --no-reexec fl
13640 61 67 2c 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65  ag, and continue
13650 2e 0a 20 20 20 20 20 20 73 68 69 66 74 0a 20 20  ..      shift.  
13660 20 20 65 6c 69 66 20 74 65 73 74 20 5c 22 58 5c    elif test \"X\
13670 60 7b 20 5c 24 45 43 48 4f 20 27 5c 74 27 3b 20  `{ \$ECHO '\t'; 
13680 7d 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 5c 60 5c  } 2>/dev/null\`\
13690 22 20 3d 20 27 58 5c 74 27 3b 20 74 68 65 6e 0a  " = 'X\t'; then.
136a0 20 20 20 20 20 20 23 20 59 69 70 70 65 65 2c 20        # Yippee, 
136b0 5c 24 45 43 48 4f 20 77 6f 72 6b 73 21 0a 20 20  \$ECHO works!.  
136c0 20 20 20 20 3a 0a 20 20 20 20 65 6c 73 65 0a 20      :.    else. 
136d0 20 20 20 20 20 23 20 52 65 73 74 61 72 74 20 75       # Restart u
136e0 6e 64 65 72 20 74 68 65 20 63 6f 72 72 65 63 74  nder the correct
136f0 20 73 68 65 6c 6c 2c 20 61 6e 64 20 74 68 65 6e   shell, and then
13700 20 6d 61 79 62 65 20 5c 24 45 43 48 4f 20 77 69   maybe \$ECHO wi
13710 6c 6c 20 77 6f 72 6b 2e 0a 20 20 20 20 20 20 65  ll work..      e
13720 78 65 63 20 24 53 48 45 4c 4c 20 5c 22 5c 24 30  xec $SHELL \"\$0
13730 5c 22 20 2d 2d 6e 6f 2d 72 65 65 78 65 63 20 5c  \" --no-reexec \
13740 24 7b 31 2b 5c 22 5c 24 40 5c 22 7d 0a 20 20 20  ${1+\"\$@\"}.   
13750 20 66 69 0a 20 20 66 69 5c 0a 22 0a 09 24 45 43   fi.  fi\."..$EC
13760 48 4f 20 22 5c 0a 0a 20 20 23 20 46 69 6e 64 20  HO "\..  # Find 
13770 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 68  the directory th
13780 61 74 20 74 68 69 73 20 73 63 72 69 70 74 20 6c  at this script l
13790 69 76 65 73 20 69 6e 2e 0a 20 20 74 68 69 73 64  ives in..  thisd
137a0 69 72 3d 5c 60 5c 24 45 43 48 4f 20 5c 22 58 5c  ir=\`\$ECHO \"X\
137b0 24 66 69 6c 65 5c 22 20 7c 20 5c 24 58 73 65 64  $file\" | \$Xsed
137c0 20 2d 65 20 27 73 25 2f 5b 5e 2f 5d 2a 24 25 25   -e 's%/[^/]*$%%
137d0 27 5c 60 0a 20 20 74 65 73 74 20 5c 22 78 5c 24  '\`.  test \"x\$
137e0 74 68 69 73 64 69 72 5c 22 20 3d 20 5c 22 78 5c  thisdir\" = \"x\
137f0 24 66 69 6c 65 5c 22 20 26 26 20 74 68 69 73 64  $file\" && thisd
13800 69 72 3d 2e 0a 0a 20 20 23 20 46 6f 6c 6c 6f 77  ir=...  # Follow
13810 20 73 79 6d 62 6f 6c 69 63 20 6c 69 6e 6b 73 20   symbolic links 
13820 75 6e 74 69 6c 20 77 65 20 67 65 74 20 74 6f 20  until we get to 
13830 74 68 65 20 72 65 61 6c 20 74 68 69 73 64 69 72  the real thisdir
13840 2e 0a 20 20 66 69 6c 65 3d 5c 60 6c 73 20 2d 6c  ..  file=\`ls -l
13850 64 20 5c 22 5c 24 66 69 6c 65 5c 22 20 7c 20 24  d \"\$file\" | $
13860 7b 53 45 44 7d 20 2d 6e 20 27 73 2f 2e 2a 2d 3e  {SED} -n 's/.*->
13870 20 2f 2f 70 27 5c 60 0a 20 20 77 68 69 6c 65 20   //p'\`.  while 
13880 74 65 73 74 20 2d 6e 20 5c 22 5c 24 66 69 6c 65  test -n \"\$file
13890 5c 22 3b 20 64 6f 0a 20 20 20 20 64 65 73 74 64  \"; do.    destd
138a0 69 72 3d 5c 60 5c 24 45 43 48 4f 20 5c 22 58 5c  ir=\`\$ECHO \"X\
138b0 24 66 69 6c 65 5c 22 20 7c 20 5c 24 58 73 65 64  $file\" | \$Xsed
138c0 20 2d 65 20 27 73 25 2f 5b 5e 2f 5d 2a 5c 24 25   -e 's%/[^/]*\$%
138d0 25 27 5c 60 0a 0a 20 20 20 20 23 20 49 66 20 74  %'\`..    # If t
138e0 68 65 72 65 20 77 61 73 20 61 20 64 69 72 65 63  here was a direc
138f0 74 6f 72 79 20 63 6f 6d 70 6f 6e 65 6e 74 2c 20  tory component, 
13900 74 68 65 6e 20 63 68 61 6e 67 65 20 74 68 69 73  then change this
13910 64 69 72 2e 0a 20 20 20 20 69 66 20 74 65 73 74  dir..    if test
13920 20 5c 22 78 5c 24 64 65 73 74 64 69 72 5c 22 20   \"x\$destdir\" 
13930 21 3d 20 5c 22 78 5c 24 66 69 6c 65 5c 22 3b 20  != \"x\$file\"; 
13940 74 68 65 6e 0a 20 20 20 20 20 20 63 61 73 65 20  then.      case 
13950 5c 22 5c 24 64 65 73 74 64 69 72 5c 22 20 69 6e  \"\$destdir\" in
13960 0a 20 20 20 20 20 20 5b 5c 5c 5c 5c 2f 5d 2a 20  .      [\\\\/]* 
13970 7c 20 5b 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 5c 5c  | [A-Za-z]:[\\\\
13980 2f 5d 2a 29 20 74 68 69 73 64 69 72 3d 5c 22 5c  /]*) thisdir=\"\
13990 24 64 65 73 74 64 69 72 5c 22 20 3b 3b 0a 20 20  $destdir\" ;;.  
139a0 20 20 20 20 2a 29 20 74 68 69 73 64 69 72 3d 5c      *) thisdir=\
139b0 22 5c 24 74 68 69 73 64 69 72 2f 5c 24 64 65 73  "\$thisdir/\$des
139c0 74 64 69 72 5c 22 20 3b 3b 0a 20 20 20 20 20 20  tdir\" ;;.      
139d0 65 73 61 63 0a 20 20 20 20 66 69 0a 0a 20 20 20  esac.    fi..   
139e0 20 66 69 6c 65 3d 5c 60 5c 24 45 43 48 4f 20 5c   file=\`\$ECHO \
139f0 22 58 5c 24 66 69 6c 65 5c 22 20 7c 20 5c 24 58  "X\$file\" | \$X
13a00 73 65 64 20 2d 65 20 27 73 25 5e 2e 2a 2f 25 25  sed -e 's%^.*/%%
13a10 27 5c 60 0a 20 20 20 20 66 69 6c 65 3d 5c 60 6c  '\`.    file=\`l
13a20 73 20 2d 6c 64 20 5c 22 5c 24 74 68 69 73 64 69  s -ld \"\$thisdi
13a30 72 2f 5c 24 66 69 6c 65 5c 22 20 7c 20 24 7b 53  r/\$file\" | ${S
13a40 45 44 7d 20 2d 6e 20 27 73 2f 2e 2a 2d 3e 20 2f  ED} -n 's/.*-> /
13a50 2f 70 27 5c 60 0a 20 20 64 6f 6e 65 0a 22 0a 7d  /p'\`.  done.".}
13a60 0a 23 20 65 6e 64 3a 20 66 75 6e 63 5f 65 6d 69  .# end: func_emi
13a70 74 5f 77 72 61 70 70 65 72 5f 70 61 72 74 31 0a  t_wrapper_part1.
13a80 0a 23 20 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61  .# func_emit_wra
13a90 70 70 65 72 5f 70 61 72 74 32 20 5b 61 72 67 3d  pper_part2 [arg=
13aa0 6e 6f 5d 0a 23 0a 23 20 45 6d 69 74 20 74 68 65  no].#.# Emit the
13ab0 20 73 65 63 6f 6e 64 20 70 61 72 74 20 6f 66 20   second part of 
13ac0 61 20 6c 69 62 74 6f 6f 6c 20 77 72 61 70 70 65  a libtool wrappe
13ad0 72 20 73 63 72 69 70 74 20 6f 6e 20 73 74 64 6f  r script on stdo
13ae0 75 74 2e 0a 23 20 46 6f 72 20 6d 6f 72 65 20 69  ut..# For more i
13af0 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 73 65 65 20  nformation, see 
13b00 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20  the description 
13b10 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 0a  associated with.
13b20 23 20 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70  # func_emit_wrap
13b30 70 65 72 28 29 2c 20 62 65 6c 6f 77 2e 0a 66 75  per(), below..fu
13b40 6e 63 5f 65 6d 69 74 5f 77 72 61 70 70 65 72 5f  nc_emit_wrapper_
13b50 70 61 72 74 32 20 28 29 0a 7b 0a 09 66 75 6e 63  part2 ().{..func
13b60 5f 65 6d 69 74 5f 77 72 61 70 70 65 72 5f 70 61  _emit_wrapper_pa
13b70 72 74 32 5f 61 72 67 31 3d 6e 6f 0a 09 69 66 20  rt2_arg1=no..if 
13b80 74 65 73 74 20 2d 6e 20 22 24 31 22 20 3b 20 74  test -n "$1" ; t
13b90 68 65 6e 0a 09 20 20 66 75 6e 63 5f 65 6d 69 74  hen..  func_emit
13ba0 5f 77 72 61 70 70 65 72 5f 70 61 72 74 32 5f 61  _wrapper_part2_a
13bb0 72 67 31 3d 24 31 0a 09 66 69 0a 0a 09 24 45 43  rg1=$1..fi...$EC
13bc0 48 4f 20 22 5c 0a 0a 20 20 23 20 55 73 75 61 6c  HO "\..  # Usual
13bd0 6c 79 20 27 6e 6f 27 2c 20 65 78 63 65 70 74 20  ly 'no', except 
13be0 6f 6e 20 63 79 67 77 69 6e 2f 6d 69 6e 67 77 20  on cygwin/mingw 
13bf0 77 68 65 6e 20 65 6d 62 65 64 64 65 64 20 69 6e  when embedded in
13c00 74 6f 0a 20 20 23 20 74 68 65 20 63 77 72 61 70  to.  # the cwrap
13c10 70 65 72 2e 0a 20 20 57 52 41 50 50 45 52 5f 53  per..  WRAPPER_S
13c20 43 52 49 50 54 5f 42 45 4c 4f 4e 47 53 5f 49 4e  CRIPT_BELONGS_IN
13c30 5f 4f 42 4a 44 49 52 3d 24 66 75 6e 63 5f 65 6d  _OBJDIR=$func_em
13c40 69 74 5f 77 72 61 70 70 65 72 5f 70 61 72 74 32  it_wrapper_part2
13c50 5f 61 72 67 31 0a 20 20 69 66 20 74 65 73 74 20  _arg1.  if test 
13c60 5c 22 5c 24 57 52 41 50 50 45 52 5f 53 43 52 49  \"\$WRAPPER_SCRI
13c70 50 54 5f 42 45 4c 4f 4e 47 53 5f 49 4e 5f 4f 42  PT_BELONGS_IN_OB
13c80 4a 44 49 52 5c 22 20 3d 20 5c 22 79 65 73 5c 22  JDIR\" = \"yes\"
13c90 3b 20 74 68 65 6e 0a 20 20 20 20 23 20 73 70 65  ; then.    # spe
13ca0 63 69 61 6c 20 63 61 73 65 20 66 6f 72 20 27 2e  cial case for '.
13cb0 27 0a 20 20 20 20 69 66 20 74 65 73 74 20 5c 22  '.    if test \"
13cc0 5c 24 74 68 69 73 64 69 72 5c 22 20 3d 20 5c 22  \$thisdir\" = \"
13cd0 2e 5c 22 3b 20 74 68 65 6e 0a 20 20 20 20 20 20  .\"; then.      
13ce0 74 68 69 73 64 69 72 3d 5c 60 70 77 64 5c 60 0a  thisdir=\`pwd\`.
13cf0 20 20 20 20 66 69 0a 20 20 20 20 23 20 72 65 6d      fi.    # rem
13d00 6f 76 65 20 2e 6c 69 62 73 20 66 72 6f 6d 20 74  ove .libs from t
13d10 68 69 73 64 69 72 0a 20 20 20 20 63 61 73 65 20  hisdir.    case 
13d20 5c 22 5c 24 74 68 69 73 64 69 72 5c 22 20 69 6e  \"\$thisdir\" in
13d30 0a 20 20 20 20 2a 5b 5c 5c 5c 5c 2f 5d 24 6f 62  .    *[\\\\/]$ob
13d40 6a 64 69 72 20 29 20 74 68 69 73 64 69 72 3d 5c  jdir ) thisdir=\
13d50 60 5c 24 45 43 48 4f 20 5c 22 58 5c 24 74 68 69  `\$ECHO \"X\$thi
13d60 73 64 69 72 5c 22 20 7c 20 5c 24 58 73 65 64 20  sdir\" | \$Xsed 
13d70 2d 65 20 27 73 25 5b 5c 5c 5c 5c 2f 5d 5b 5e 5c  -e 's%[\\\\/][^\
13d80 5c 5c 5c 2f 5d 2a 24 25 25 27 5c 60 20 3b 3b 0a  \\\/]*$%%'\` ;;.
13d90 20 20 20 20 24 6f 62 6a 64 69 72 20 29 20 20 20      $objdir )   
13da0 74 68 69 73 64 69 72 3d 2e 20 3b 3b 0a 20 20 20  thisdir=. ;;.   
13db0 20 65 73 61 63 0a 20 20 66 69 0a 0a 20 20 23 20   esac.  fi..  # 
13dc0 54 72 79 20 74 6f 20 67 65 74 20 74 68 65 20 61  Try to get the a
13dd0 62 73 6f 6c 75 74 65 20 64 69 72 65 63 74 6f 72  bsolute director
13de0 79 20 6e 61 6d 65 2e 0a 20 20 61 62 73 64 69 72  y name..  absdir
13df0 3d 5c 60 63 64 20 5c 22 5c 24 74 68 69 73 64 69  =\`cd \"\$thisdi
13e00 72 5c 22 20 26 26 20 70 77 64 5c 60 0a 20 20 74  r\" && pwd\`.  t
13e10 65 73 74 20 2d 6e 20 5c 22 5c 24 61 62 73 64 69  est -n \"\$absdi
13e20 72 5c 22 20 26 26 20 74 68 69 73 64 69 72 3d 5c  r\" && thisdir=\
13e30 22 5c 24 61 62 73 64 69 72 5c 22 0a 22 0a 0a 09  "\$absdir\"."...
13e40 69 66 20 74 65 73 74 20 22 24 66 61 73 74 5f 69  if test "$fast_i
13e50 6e 73 74 61 6c 6c 22 20 3d 20 79 65 73 3b 20 74  nstall" = yes; t
13e60 68 65 6e 0a 09 20 20 24 45 43 48 4f 20 22 5c 0a  hen..  $ECHO "\.
13e70 20 20 70 72 6f 67 72 61 6d 3d 6c 74 2d 27 24 6f    program=lt-'$o
13e80 75 74 70 75 74 6e 61 6d 65 27 24 65 78 65 65 78  utputname'$exeex
13e90 74 0a 20 20 70 72 6f 67 64 69 72 3d 5c 22 5c 24  t.  progdir=\"\$
13ea0 74 68 69 73 64 69 72 2f 24 6f 62 6a 64 69 72 5c  thisdir/$objdir\
13eb0 22 0a 0a 20 20 69 66 20 74 65 73 74 20 21 20 2d  "..  if test ! -
13ec0 66 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c 24  f \"\$progdir/\$
13ed0 70 72 6f 67 72 61 6d 5c 22 20 7c 7c 0a 20 20 20  program\" ||.   
13ee0 20 20 7b 20 66 69 6c 65 3d 5c 60 6c 73 20 2d 31    { file=\`ls -1
13ef0 64 74 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c  dt \"\$progdir/\
13f00 24 70 72 6f 67 72 61 6d 5c 22 20 5c 22 5c 24 70  $program\" \"\$p
13f10 72 6f 67 64 69 72 2f 2e 2e 2f 5c 24 70 72 6f 67  rogdir/../\$prog
13f20 72 61 6d 5c 22 20 32 3e 2f 64 65 76 2f 6e 75 6c  ram\" 2>/dev/nul
13f30 6c 20 7c 20 24 7b 53 45 44 7d 20 31 71 5c 60 3b  l | ${SED} 1q\`;
13f40 20 5c 5c 0a 20 20 20 20 20 20 20 74 65 73 74 20   \\.       test 
13f50 5c 22 58 5c 24 66 69 6c 65 5c 22 20 21 3d 20 5c  \"X\$file\" != \
13f60 22 58 5c 24 70 72 6f 67 64 69 72 2f 5c 24 70 72  "X\$progdir/\$pr
13f70 6f 67 72 61 6d 5c 22 3b 20 7d 3b 20 74 68 65 6e  ogram\"; }; then
13f80 0a 0a 20 20 20 20 66 69 6c 65 3d 5c 22 5c 24 5c  ..    file=\"\$\
13f90 24 2d 5c 24 70 72 6f 67 72 61 6d 5c 22 0a 0a 20  $-\$program\".. 
13fa0 20 20 20 69 66 20 74 65 73 74 20 21 20 2d 64 20     if test ! -d 
13fb0 5c 22 5c 24 70 72 6f 67 64 69 72 5c 22 3b 20 74  \"\$progdir\"; t
13fc0 68 65 6e 0a 20 20 20 20 20 20 24 4d 4b 44 49 52  hen.      $MKDIR
13fd0 20 5c 22 5c 24 70 72 6f 67 64 69 72 5c 22 0a 20   \"\$progdir\". 
13fe0 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 24 52     else.      $R
13ff0 4d 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c 24  M \"\$progdir/\$
14000 66 69 6c 65 5c 22 0a 20 20 20 20 66 69 22 0a 0a  file\".    fi"..
14010 09 20 20 24 45 43 48 4f 20 22 5c 0a 0a 20 20 20  .  $ECHO "\..   
14020 20 23 20 72 65 6c 69 6e 6b 20 65 78 65 63 75 74   # relink execut
14030 61 62 6c 65 20 69 66 20 6e 65 63 65 73 73 61 72  able if necessar
14040 79 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e  y.    if test -n
14050 20 5c 22 5c 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d   \"\$relink_comm
14060 61 6e 64 5c 22 3b 20 74 68 65 6e 0a 20 20 20 20  and\"; then.    
14070 20 20 69 66 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d    if relink_comm
14080 61 6e 64 5f 6f 75 74 70 75 74 3d 5c 60 65 76 61  and_output=\`eva
14090 6c 20 5c 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61  l \$relink_comma
140a0 6e 64 20 32 3e 26 31 5c 60 3b 20 74 68 65 6e 20  nd 2>&1\`; then 
140b0 3a 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 24 45  :.      else..$E
140c0 43 48 4f 20 5c 22 5c 24 72 65 6c 69 6e 6b 5f 63  CHO \"\$relink_c
140d0 6f 6d 6d 61 6e 64 5f 6f 75 74 70 75 74 5c 22 20  ommand_output\" 
140e0 3e 26 32 0a 09 24 52 4d 20 5c 22 5c 24 70 72 6f  >&2..$RM \"\$pro
140f0 67 64 69 72 2f 5c 24 66 69 6c 65 5c 22 0a 09 65  gdir/\$file\"..e
14100 78 69 74 20 31 0a 20 20 20 20 20 20 66 69 0a 20  xit 1.      fi. 
14110 20 20 20 66 69 0a 0a 20 20 20 20 24 4d 56 20 5c     fi..    $MV \
14120 22 5c 24 70 72 6f 67 64 69 72 2f 5c 24 66 69 6c  "\$progdir/\$fil
14130 65 5c 22 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f  e\" \"\$progdir/
14140 5c 24 70 72 6f 67 72 61 6d 5c 22 20 32 3e 2f 64  \$program\" 2>/d
14150 65 76 2f 6e 75 6c 6c 20 7c 7c 0a 20 20 20 20 7b  ev/null ||.    {
14160 20 24 52 4d 20 5c 22 5c 24 70 72 6f 67 64 69 72   $RM \"\$progdir
14170 2f 5c 24 70 72 6f 67 72 61 6d 5c 22 3b 0a 20 20  /\$program\";.  
14180 20 20 20 20 24 4d 56 20 5c 22 5c 24 70 72 6f 67      $MV \"\$prog
14190 64 69 72 2f 5c 24 66 69 6c 65 5c 22 20 5c 22 5c  dir/\$file\" \"\
141a0 24 70 72 6f 67 64 69 72 2f 5c 24 70 72 6f 67 72  $progdir/\$progr
141b0 61 6d 5c 22 3b 20 7d 0a 20 20 20 20 24 52 4d 20  am\"; }.    $RM 
141c0 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c 24 66 69  \"\$progdir/\$fi
141d0 6c 65 5c 22 0a 20 20 66 69 22 0a 09 65 6c 73 65  le\".  fi"..else
141e0 0a 09 20 20 24 45 43 48 4f 20 22 5c 0a 20 20 70  ..  $ECHO "\.  p
141f0 72 6f 67 72 61 6d 3d 27 24 6f 75 74 70 75 74 6e  rogram='$outputn
14200 61 6d 65 27 0a 20 20 70 72 6f 67 64 69 72 3d 5c  ame'.  progdir=\
14210 22 5c 24 74 68 69 73 64 69 72 2f 24 6f 62 6a 64  "\$thisdir/$objd
14220 69 72 5c 22 0a 22 0a 09 66 69 0a 0a 09 24 45 43  ir\"."..fi...$EC
14230 48 4f 20 22 5c 0a 0a 20 20 69 66 20 74 65 73 74  HO "\..  if test
14240 20 2d 66 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f   -f \"\$progdir/
14250 5c 24 70 72 6f 67 72 61 6d 5c 22 3b 20 74 68 65  \$program\"; the
14260 6e 22 0a 0a 09 23 20 45 78 70 6f 72 74 20 6f 75  n"...# Export ou
14270 72 20 73 68 6c 69 62 70 61 74 68 5f 76 61 72 20  r shlibpath_var 
14280 69 66 20 77 65 20 68 61 76 65 20 6f 6e 65 2e 0a  if we have one..
14290 09 69 66 20 74 65 73 74 20 22 24 73 68 6c 69 62  .if test "$shlib
142a0 70 61 74 68 5f 6f 76 65 72 72 69 64 65 73 5f 72  path_overrides_r
142b0 75 6e 70 61 74 68 22 20 3d 20 79 65 73 20 26 26  unpath" = yes &&
142c0 20 74 65 73 74 20 2d 6e 20 22 24 73 68 6c 69 62   test -n "$shlib
142d0 70 61 74 68 5f 76 61 72 22 20 26 26 20 74 65 73  path_var" && tes
142e0 74 20 2d 6e 20 22 24 74 65 6d 70 5f 72 70 61 74  t -n "$temp_rpat
142f0 68 22 3b 20 74 68 65 6e 0a 09 20 20 24 45 43 48  h"; then..  $ECH
14300 4f 20 22 5c 0a 20 20 20 20 23 20 41 64 64 20 6f  O "\.    # Add o
14310 75 72 20 6f 77 6e 20 6c 69 62 72 61 72 79 20 70  ur own library p
14320 61 74 68 20 74 6f 20 24 73 68 6c 69 62 70 61 74  ath to $shlibpat
14330 68 5f 76 61 72 0a 20 20 20 20 24 73 68 6c 69 62  h_var.    $shlib
14340 70 61 74 68 5f 76 61 72 3d 5c 22 24 74 65 6d 70  path_var=\"$temp
14350 5f 72 70 61 74 68 5c 24 24 73 68 6c 69 62 70 61  _rpath\$$shlibpa
14360 74 68 5f 76 61 72 5c 22 0a 0a 20 20 20 20 23 20  th_var\"..    # 
14370 53 6f 6d 65 20 73 79 73 74 65 6d 73 20 63 61 6e  Some systems can
14380 6e 6f 74 20 63 6f 70 65 20 77 69 74 68 20 63 6f  not cope with co
14390 6c 6f 6e 2d 74 65 72 6d 69 6e 61 74 65 64 20 24  lon-terminated $
143a0 73 68 6c 69 62 70 61 74 68 5f 76 61 72 0a 20 20  shlibpath_var.  
143b0 20 20 23 20 54 68 65 20 73 65 63 6f 6e 64 20 63    # The second c
143c0 6f 6c 6f 6e 20 69 73 20 61 20 77 6f 72 6b 61 72  olon is a workar
143d0 6f 75 6e 64 20 66 6f 72 20 61 20 62 75 67 20 69  ound for a bug i
143e0 6e 20 42 65 4f 53 20 52 34 20 73 65 64 0a 20 20  n BeOS R4 sed.  
143f0 20 20 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72    $shlibpath_var
14400 3d 5c 60 5c 24 45 43 48 4f 20 5c 22 58 5c 24 24  =\`\$ECHO \"X\$$
14410 73 68 6c 69 62 70 61 74 68 5f 76 61 72 5c 22 20  shlibpath_var\" 
14420 7c 20 5c 24 58 73 65 64 20 2d 65 20 27 73 2f 3a  | \$Xsed -e 's/:
14430 3a 2a 5c 24 2f 2f 27 5c 60 0a 0a 20 20 20 20 65  :*\$//'\`..    e
14440 78 70 6f 72 74 20 24 73 68 6c 69 62 70 61 74 68  xport $shlibpath
14450 5f 76 61 72 0a 22 0a 09 66 69 0a 0a 09 23 20 66  _var."..fi...# f
14460 69 78 75 70 20 74 68 65 20 64 6c 6c 20 73 65 61  ixup the dll sea
14470 72 63 68 70 61 74 68 20 69 66 20 77 65 20 6e 65  rchpath if we ne
14480 65 64 20 74 6f 2e 0a 09 69 66 20 74 65 73 74 20  ed to...if test 
14490 2d 6e 20 22 24 64 6c 6c 73 65 61 72 63 68 70 61  -n "$dllsearchpa
144a0 74 68 22 3b 20 74 68 65 6e 0a 09 20 20 24 45 43  th"; then..  $EC
144b0 48 4f 20 22 5c 0a 20 20 20 20 23 20 41 64 64 20  HO "\.    # Add 
144c0 74 68 65 20 64 6c 6c 20 73 65 61 72 63 68 20 70  the dll search p
144d0 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 74  ath components t
144e0 6f 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65  o the executable
144f0 20 50 41 54 48 0a 20 20 20 20 50 41 54 48 3d 24   PATH.    PATH=$
14500 64 6c 6c 73 65 61 72 63 68 70 61 74 68 3a 5c 24  dllsearchpath:\$
14510 50 41 54 48 0a 22 0a 09 66 69 0a 0a 09 24 45 43  PATH."..fi...$EC
14520 48 4f 20 22 5c 0a 20 20 20 20 69 66 20 74 65 73  HO "\.    if tes
14530 74 20 5c 22 5c 24 6c 69 62 74 6f 6f 6c 5f 65 78  t \"\$libtool_ex
14540 65 63 75 74 65 5f 6d 61 67 69 63 5c 22 20 21 3d  ecute_magic\" !=
14550 20 5c 22 24 6d 61 67 69 63 5c 22 3b 20 74 68 65   \"$magic\"; the
14560 6e 0a 20 20 20 20 20 20 23 20 52 75 6e 20 74 68  n.      # Run th
14570 65 20 61 63 74 75 61 6c 20 70 72 6f 67 72 61 6d  e actual program
14580 20 77 69 74 68 20 6f 75 72 20 61 72 67 75 6d 65   with our argume
14590 6e 74 73 2e 0a 22 0a 09 63 61 73 65 20 24 68 6f  nts.."..case $ho
145a0 73 74 20 69 6e 0a 09 23 20 42 61 63 6b 73 6c 61  st in..# Backsla
145b0 73 68 65 73 20 73 65 70 61 72 61 74 65 20 64 69  shes separate di
145c0 72 65 63 74 6f 72 69 65 73 20 6f 6e 20 70 6c 61  rectories on pla
145d0 69 6e 20 77 69 6e 64 6f 77 73 0a 09 2a 2d 2a 2d  in windows..*-*-
145e0 6d 69 6e 67 77 20 7c 20 2a 2d 2a 2d 6f 73 32 2a  mingw | *-*-os2*
145f0 20 7c 20 2a 2d 63 65 67 63 63 2a 29 0a 09 20 20   | *-cegcc*)..  
14600 24 45 43 48 4f 20 22 5c 0a 20 20 20 20 20 20 65  $ECHO "\.      e
14610 78 65 63 20 5c 22 5c 24 70 72 6f 67 64 69 72 5c  xec \"\$progdir\
14620 5c 5c 5c 5c 24 70 72 6f 67 72 61 6d 5c 22 20 5c  \\\\$program\" \
14630 24 7b 31 2b 5c 22 5c 24 40 5c 22 7d 0a 22 0a 09  ${1+\"\$@\"}."..
14640 20 20 3b 3b 0a 0a 09 2a 29 0a 09 20 20 24 45 43    ;;...*)..  $EC
14650 48 4f 20 22 5c 0a 20 20 20 20 20 20 65 78 65 63  HO "\.      exec
14660 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c 24 70   \"\$progdir/\$p
14670 72 6f 67 72 61 6d 5c 22 20 5c 24 7b 31 2b 5c 22  rogram\" \${1+\"
14680 5c 24 40 5c 22 7d 0a 22 0a 09 20 20 3b 3b 0a 09  \$@\"}."..  ;;..
14690 65 73 61 63 0a 09 24 45 43 48 4f 20 22 5c 0a 20  esac..$ECHO "\. 
146a0 20 20 20 20 20 5c 24 45 43 48 4f 20 5c 22 5c 24       \$ECHO \"\$
146b0 30 3a 20 63 61 6e 6e 6f 74 20 65 78 65 63 20 5c  0: cannot exec \
146c0 24 70 72 6f 67 72 61 6d 20 5c 24 2a 5c 22 20 31  $program \$*\" 1
146d0 3e 26 32 0a 20 20 20 20 20 20 65 78 69 74 20 31  >&2.      exit 1
146e0 0a 20 20 20 20 66 69 0a 20 20 65 6c 73 65 0a 20  .    fi.  else. 
146f0 20 20 20 23 20 54 68 65 20 70 72 6f 67 72 61 6d     # The program
14700 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 2e 0a   doesn't exist..
14710 20 20 20 20 5c 24 45 43 48 4f 20 5c 22 5c 24 30      \$ECHO \"\$0
14720 3a 20 65 72 72 6f 72 3a 20 5c 5c 5c 60 5c 24 70  : error: \\\`\$p
14730 72 6f 67 64 69 72 2f 5c 24 70 72 6f 67 72 61 6d  rogdir/\$program
14740 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74  ' does not exist
14750 5c 22 20 31 3e 26 32 0a 20 20 20 20 5c 24 45 43  \" 1>&2.    \$EC
14760 48 4f 20 5c 22 54 68 69 73 20 73 63 72 69 70 74  HO \"This script
14770 20 69 73 20 6a 75 73 74 20 61 20 77 72 61 70 70   is just a wrapp
14780 65 72 20 66 6f 72 20 5c 24 70 72 6f 67 72 61 6d  er for \$program
14790 2e 5c 22 20 31 3e 26 32 0a 20 20 20 20 24 45 43  .\" 1>&2.    $EC
147a0 48 4f 20 5c 22 53 65 65 20 74 68 65 20 24 50 41  HO \"See the $PA
147b0 43 4b 41 47 45 20 64 6f 63 75 6d 65 6e 74 61 74  CKAGE documentat
147c0 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66  ion for more inf
147d0 6f 72 6d 61 74 69 6f 6e 2e 5c 22 20 31 3e 26 32  ormation.\" 1>&2
147e0 0a 20 20 20 20 65 78 69 74 20 31 0a 20 20 66 69  .    exit 1.  fi
147f0 0a 66 69 5c 0a 22 0a 7d 0a 23 20 65 6e 64 3a 20  .fi\.".}.# end: 
14800 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70 70 65  func_emit_wrappe
14810 72 5f 70 61 72 74 32 0a 0a 0a 23 20 66 75 6e 63  r_part2...# func
14820 5f 65 6d 69 74 5f 77 72 61 70 70 65 72 20 5b 61  _emit_wrapper [a
14830 72 67 3d 6e 6f 5d 0a 23 0a 23 20 45 6d 69 74 20  rg=no].#.# Emit 
14840 61 20 6c 69 62 74 6f 6f 6c 20 77 72 61 70 70 65  a libtool wrappe
14850 72 20 73 63 72 69 70 74 20 6f 6e 20 73 74 64 6f  r script on stdo
14860 75 74 2e 0a 23 20 44 6f 6e 27 74 20 64 69 72 65  ut..# Don't dire
14870 63 74 6c 79 20 6f 70 65 6e 20 61 20 66 69 6c 65  ctly open a file
14880 20 62 65 63 61 75 73 65 20 77 65 20 6d 61 79 20   because we may 
14890 77 61 6e 74 20 74 6f 0a 23 20 69 6e 63 6f 72 70  want to.# incorp
148a0 6f 72 61 74 65 20 74 68 65 20 73 63 72 69 70 74  orate the script
148b0 20 63 6f 6e 74 65 6e 74 73 20 77 69 74 68 69 6e   contents within
148c0 20 61 20 63 79 67 77 69 6e 2f 6d 69 6e 67 77 0a   a cygwin/mingw.
148d0 23 20 77 72 61 70 70 65 72 20 65 78 65 63 75 74  # wrapper execut
148e0 61 62 6c 65 2e 20 20 4d 75 73 74 20 4f 4e 4c 59  able.  Must ONLY
148f0 20 62 65 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20   be called from 
14900 77 69 74 68 69 6e 0a 23 20 66 75 6e 63 5f 6d 6f  within.# func_mo
14910 64 65 5f 6c 69 6e 6b 20 62 65 63 61 75 73 65 20  de_link because 
14920 69 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 61 20  it depends on a 
14930 6e 75 6d 62 65 72 20 6f 66 20 76 61 72 69 61 62  number of variab
14940 6c 65 73 0a 23 20 73 65 74 20 74 68 65 72 65 69  les.# set therei
14950 6e 2e 0a 23 0a 23 20 41 52 47 20 69 73 20 74 68  n..#.# ARG is th
14960 65 20 76 61 6c 75 65 20 74 68 61 74 20 74 68 65  e value that the
14970 20 57 52 41 50 50 45 52 5f 53 43 52 49 50 54 5f   WRAPPER_SCRIPT_
14980 42 45 4c 4f 4e 47 53 5f 49 4e 5f 4f 42 4a 44 49  BELONGS_IN_OBJDI
14990 52 0a 23 20 76 61 72 69 61 62 6c 65 20 77 69 6c  R.# variable wil
149a0 6c 20 74 61 6b 65 2e 20 20 49 66 20 27 79 65 73  l take.  If 'yes
149b0 27 2c 20 74 68 65 6e 20 74 68 65 20 65 6d 69 74  ', then the emit
149c0 74 65 64 20 73 63 72 69 70 74 0a 23 20 77 69 6c  ted script.# wil
149d0 6c 20 61 73 73 75 6d 65 20 74 68 61 74 20 74 68  l assume that th
149e0 65 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 77  e directory in w
149f0 68 69 63 68 20 69 74 20 69 73 20 73 74 6f 72 65  hich it is store
14a00 64 20 69 73 0a 23 20 74 68 65 20 24 6f 62 6a 64  d is.# the $objd
14a10 69 72 20 64 69 72 65 63 74 6f 72 79 2e 20 20 54  ir directory.  T
14a20 68 69 73 20 69 73 20 61 20 63 79 67 77 69 6e 2f  his is a cygwin/
14a30 6d 69 6e 67 77 2d 73 70 65 63 69 66 69 63 0a 23  mingw-specific.#
14a40 20 62 65 68 61 76 69 6f 72 2e 0a 66 75 6e 63 5f   behavior..func_
14a50 65 6d 69 74 5f 77 72 61 70 70 65 72 20 28 29 0a  emit_wrapper ().
14a60 7b 0a 09 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61  {..func_emit_wra
14a70 70 70 65 72 5f 61 72 67 31 3d 6e 6f 0a 09 69 66  pper_arg1=no..if
14a80 20 74 65 73 74 20 2d 6e 20 22 24 31 22 20 3b 20   test -n "$1" ; 
14a90 74 68 65 6e 0a 09 20 20 66 75 6e 63 5f 65 6d 69  then..  func_emi
14aa0 74 5f 77 72 61 70 70 65 72 5f 61 72 67 31 3d 24  t_wrapper_arg1=$
14ab0 31 0a 09 66 69 0a 0a 09 23 20 73 70 6c 69 74 20  1..fi...# split 
14ac0 74 68 69 73 20 75 70 20 73 6f 20 74 68 61 74 20  this up so that 
14ad0 66 75 6e 63 5f 65 6d 69 74 5f 63 77 72 61 70 70  func_emit_cwrapp
14ae0 65 72 65 78 65 5f 73 72 63 0a 09 23 20 63 61 6e  erexe_src..# can
14af0 20 63 61 6c 6c 20 65 61 63 68 20 70 61 72 74 20   call each part 
14b00 69 6e 64 65 70 65 6e 64 65 6e 74 6c 79 2e 0a 09  independently...
14b10 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70 70 65  func_emit_wrappe
14b20 72 5f 70 61 72 74 31 20 22 24 7b 66 75 6e 63 5f  r_part1 "${func_
14b30 65 6d 69 74 5f 77 72 61 70 70 65 72 5f 61 72 67  emit_wrapper_arg
14b40 31 7d 22 0a 09 66 75 6e 63 5f 65 6d 69 74 5f 77  1}"..func_emit_w
14b50 72 61 70 70 65 72 5f 70 61 72 74 32 20 22 24 7b  rapper_part2 "${
14b60 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70 70 65  func_emit_wrappe
14b70 72 5f 61 72 67 31 7d 22 0a 7d 0a 0a 0a 23 20 66  r_arg1}".}...# f
14b80 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
14b90 20 61 72 67 0a 23 0a 23 20 43 6f 6e 76 65 72 74   arg.#.# Convert
14ba0 20 70 61 74 68 73 20 74 6f 20 68 6f 73 74 20 66   paths to host f
14bb0 6f 72 6d 61 74 20 77 68 65 6e 20 75 73 65 64 20  ormat when used 
14bc0 77 69 74 68 20 62 75 69 6c 64 20 74 6f 6f 6c 73  with build tools
14bd0 2e 0a 23 20 49 6e 74 65 6e 64 65 64 20 66 6f 72  ..# Intended for
14be0 20 75 73 65 20 77 69 74 68 20 22 6e 61 74 69 76   use with "nativ
14bf0 65 22 20 6d 69 6e 67 77 20 28 77 68 65 72 65 20  e" mingw (where 
14c00 6c 69 62 74 6f 6f 6c 20 69 74 73 65 6c 66 0a 23  libtool itself.#
14c10 20 69 73 20 72 75 6e 6e 69 6e 67 20 75 6e 64 65   is running unde
14c20 72 20 74 68 65 20 6d 73 79 73 20 73 68 65 6c 6c  r the msys shell
14c30 29 2c 20 6f 72 20 69 6e 20 74 68 65 20 66 6f 6c  ), or in the fol
14c40 6c 6f 77 69 6e 67 20 63 72 6f 73 73 2d 0a 23 20  lowing cross-.# 
14c50 62 75 69 6c 64 20 65 6e 76 69 72 6f 6e 6d 65 6e  build environmen
14c60 74 73 3a 0a 23 20 20 20 20 24 62 75 69 6c 64 20  ts:.#    $build 
14c70 20 20 20 20 20 20 20 20 20 24 68 6f 73 74 0a 23           $host.#
14c80 20 20 20 20 6d 69 6e 67 77 20 28 6d 73 79 73 29      mingw (msys)
14c90 20 20 20 20 6d 69 6e 67 77 20 20 5b 65 2e 67 2e      mingw  [e.g.
14ca0 20 6e 61 74 69 76 65 5d 0a 23 20 20 20 20 63 79   native].#    cy
14cb0 67 77 69 6e 20 20 20 20 20 20 20 20 20 20 6d 69  gwin          mi
14cc0 6e 67 77 0a 23 20 20 20 20 2a 6e 69 78 20 2b 20  ngw.#    *nix + 
14cd0 77 69 6e 65 20 20 20 20 20 6d 69 6e 67 77 0a 23  wine     mingw.#
14ce0 20 77 68 65 72 65 20 77 69 6e 65 20 69 73 20 65   where wine is e
14cf0 71 75 69 70 70 65 64 20 77 69 74 68 20 74 68 65  quipped with the
14d00 20 60 77 69 6e 65 70 61 74 68 27 20 65 78 65 63   `winepath' exec
14d10 75 74 61 62 6c 65 2e 0a 23 20 49 6e 20 74 68 65  utable..# In the
14d20 20 6e 61 74 69 76 65 20 6d 69 6e 67 77 20 63 61   native mingw ca
14d30 73 65 2c 20 74 68 65 20 28 6d 73 79 73 29 20 73  se, the (msys) s
14d40 68 65 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c  hell automatical
14d50 6c 79 0a 23 20 63 6f 6e 76 65 72 74 73 20 70 61  ly.# converts pa
14d60 74 68 73 20 66 6f 72 20 61 6e 79 20 6e 6f 6e 2d  ths for any non-
14d70 6d 73 79 73 20 61 70 70 6c 69 63 61 74 69 6f 6e  msys application
14d80 73 20 69 74 20 6c 61 75 6e 63 68 65 73 2c 0a 23  s it launches,.#
14d90 20 62 75 74 20 74 68 61 74 20 66 61 63 69 6c 69   but that facili
14da0 74 79 20 69 73 6e 27 74 20 61 76 61 69 6c 61 62  ty isn't availab
14db0 6c 65 20 66 72 6f 6d 20 69 6e 73 69 64 65 20 74  le from inside t
14dc0 68 65 20 63 77 72 61 70 70 65 72 2e 0a 23 20 53  he cwrapper..# S
14dd0 69 6d 69 6c 61 72 20 61 63 63 6f 6d 6d 6f 64 61  imilar accommoda
14de0 74 69 6f 6e 73 20 61 72 65 20 6e 65 63 65 73 73  tions are necess
14df0 61 72 79 20 66 6f 72 20 24 68 6f 73 74 20 6d 69  ary for $host mi
14e00 6e 67 77 20 61 6e 64 0a 23 20 24 62 75 69 6c 64  ngw and.# $build
14e10 20 63 79 67 77 69 6e 2e 20 20 43 61 6c 6c 69 6e   cygwin.  Callin
14e20 67 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20  g this function 
14e30 64 6f 65 73 20 6e 6f 20 68 61 72 6d 20 66 6f 72  does no harm for
14e40 20 6f 74 68 65 72 0a 23 20 24 68 6f 73 74 2f 24   other.# $host/$
14e50 62 75 69 6c 64 20 63 6f 6d 62 69 6e 61 74 69 6f  build combinatio
14e60 6e 73 20 6e 6f 74 20 6c 69 73 74 65 64 20 61 62  ns not listed ab
14e70 6f 76 65 2e 0a 23 0a 23 20 41 52 47 20 69 73 20  ove..#.# ARG is 
14e80 74 68 65 20 70 61 74 68 20 28 6f 6e 20 24 62 75  the path (on $bu
14e90 69 6c 64 29 20 74 68 61 74 20 73 68 6f 75 6c 64  ild) that should
14ea0 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f   be converted to
14eb0 0a 23 20 74 68 65 20 70 72 6f 70 65 72 20 72 65  .# the proper re
14ec0 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 66 6f 72  presentation for
14ed0 20 24 68 6f 73 74 2e 20 54 68 65 20 72 65 73 75   $host. The resu
14ee0 6c 74 20 69 73 20 73 74 6f 72 65 64 0a 23 20 69  lt is stored.# i
14ef0 6e 20 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f  n $func_to_host_
14f00 70 61 74 68 5f 72 65 73 75 6c 74 2e 0a 66 75 6e  path_result..fun
14f10 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 20 28  c_to_host_path (
14f20 29 0a 7b 0a 20 20 66 75 6e 63 5f 74 6f 5f 68 6f  ).{.  func_to_ho
14f30 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d 22  st_path_result="
14f40 24 31 22 0a 20 20 69 66 20 74 65 73 74 20 2d 6e  $1".  if test -n
14f50 20 22 24 31 22 20 3b 20 74 68 65 6e 0a 20 20 20   "$1" ; then.   
14f60 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 20   case $host in. 
14f70 20 20 20 20 20 2a 6d 69 6e 67 77 2a 20 29 0a 20       *mingw* ). 
14f80 20 20 20 20 20 20 20 6c 74 5f 73 65 64 5f 6e 61         lt_sed_na
14f90 69 76 65 5f 62 61 63 6b 73 6c 61 73 68 69 66 79  ive_backslashify
14fa0 3d 27 73 7c 5c 5c 5c 5c 2a 7c 5c 5c 7c 67 3b 73  ='s|\\\\*|\\|g;s
14fb0 7c 2f 7c 5c 5c 7c 67 3b 73 7c 5c 5c 7c 5c 5c 5c  |/|\\|g;s|\\|\\\
14fc0 5c 7c 67 27 0a 20 20 20 20 20 20 20 20 63 61 73  \|g'.        cas
14fd0 65 20 24 62 75 69 6c 64 20 69 6e 0a 20 20 20 20  e $build in.    
14fe0 20 20 20 20 20 20 2a 6d 69 6e 67 77 2a 20 29 20        *mingw* ) 
14ff0 23 20 61 63 74 75 61 6c 6c 79 2c 20 6d 73 79 73  # actually, msys
15000 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 61  .            # a
15010 77 6b 77 61 72 64 3a 20 63 6d 64 20 61 70 70 65  wkward: cmd appe
15020 6e 64 73 20 73 70 61 63 65 73 20 74 6f 20 72 65  nds spaces to re
15030 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20  sult.           
15040 20 6c 74 5f 73 65 64 5f 73 74 72 69 70 5f 74 72   lt_sed_strip_tr
15050 61 69 6c 69 6e 67 5f 73 70 61 63 65 73 3d 22 73  ailing_spaces="s
15060 2f 5b 20 5d 2a 5c 24 2f 2f 22 0a 20 20 20 20 20  /[ ]*\$//".     
15070 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68         func_to_h
15080 6f 73 74 5f 70 61 74 68 5f 74 6d 70 31 3d 60 28  ost_path_tmp1=`(
15090 20 63 6d 64 20 2f 2f 63 20 65 63 68 6f 20 22 24   cmd //c echo "$
150a0 31 22 20 7c 5c 0a 20 20 20 20 20 20 20 20 20 20  1" |\.          
150b0 20 20 20 20 24 53 45 44 20 2d 65 20 22 24 6c 74      $SED -e "$lt
150c0 5f 73 65 64 5f 73 74 72 69 70 5f 74 72 61 69 6c  _sed_strip_trail
150d0 69 6e 67 5f 73 70 61 63 65 73 22 20 29 20 32 3e  ing_spaces" ) 2>
150e0 2f 64 65 76 2f 6e 75 6c 6c 20 7c 7c 20 65 63 68  /dev/null || ech
150f0 6f 20 22 22 60 0a 20 20 20 20 20 20 20 20 20 20  o ""`.          
15100 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70    func_to_host_p
15110 61 74 68 5f 72 65 73 75 6c 74 3d 60 65 63 68 6f  ath_result=`echo
15120 20 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f   "$func_to_host_
15130 70 61 74 68 5f 74 6d 70 31 22 20 7c 5c 0a 20 20  path_tmp1" |\.  
15140 20 20 20 20 20 20 20 20 20 20 20 20 24 53 45 44              $SED
15150 20 2d 65 20 22 24 6c 74 5f 73 65 64 5f 6e 61 69   -e "$lt_sed_nai
15160 76 65 5f 62 61 63 6b 73 6c 61 73 68 69 66 79 22  ve_backslashify"
15170 60 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  `.            ;;
15180 0a 20 20 20 20 20 20 20 20 20 20 2a 63 79 67 77  .          *cygw
15190 69 6e 2a 20 29 0a 20 20 20 20 20 20 20 20 20 20  in* ).          
151a0 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70    func_to_host_p
151b0 61 74 68 5f 74 6d 70 31 3d 60 63 79 67 70 61 74  ath_tmp1=`cygpat
151c0 68 20 2d 77 20 22 24 31 22 60 0a 20 20 20 20 20  h -w "$1"`.     
151d0 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68         func_to_h
151e0 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d  ost_path_result=
151f0 60 65 63 68 6f 20 22 24 66 75 6e 63 5f 74 6f 5f  `echo "$func_to_
15200 68 6f 73 74 5f 70 61 74 68 5f 74 6d 70 31 22 20  host_path_tmp1" 
15210 7c 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  |\.             
15220 20 24 53 45 44 20 2d 65 20 22 24 6c 74 5f 73 65   $SED -e "$lt_se
15230 64 5f 6e 61 69 76 65 5f 62 61 63 6b 73 6c 61 73  d_naive_backslas
15240 68 69 66 79 22 60 0a 20 20 20 20 20 20 20 20 20  hify"`.         
15250 20 20 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20     ;;.          
15260 2a 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  * ).            
15270 23 20 55 6e 66 6f 72 74 75 6e 61 74 65 6c 79 2c  # Unfortunately,
15280 20 77 69 6e 65 70 61 74 68 20 64 6f 65 73 20 6e   winepath does n
15290 6f 74 20 65 78 69 74 20 77 69 74 68 20 61 20 6e  ot exit with a n
152a0 6f 6e 2d 7a 65 72 6f 0a 20 20 20 20 20 20 20 20  on-zero.        
152b0 20 20 20 20 23 20 65 72 72 6f 72 20 63 6f 64 65      # error code
152c0 2c 20 73 6f 20 77 65 20 61 72 65 20 66 6f 72 63  , so we are forc
152d0 65 64 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20  ed to check the 
152e0 63 6f 6e 74 65 6e 74 73 20 6f 66 0a 20 20 20 20  contents of.    
152f0 20 20 20 20 20 20 20 20 23 20 73 74 64 6f 75 74          # stdout
15300 2e 20 4f 6e 20 74 68 65 20 6f 74 68 65 72 20 68  . On the other h
15310 61 6e 64 2c 20 69 66 20 74 68 65 20 63 6f 6d 6d  and, if the comm
15320 61 6e 64 20 69 73 20 6e 6f 74 0a 20 20 20 20 20  and is not.     
15330 20 20 20 20 20 20 20 23 20 66 6f 75 6e 64 2c 20         # found, 
15340 74 68 65 20 73 68 65 6c 6c 20 77 69 6c 6c 20 73  the shell will s
15350 65 74 20 61 6e 20 65 78 69 74 20 63 6f 64 65 20  et an exit code 
15360 6f 66 20 31 32 37 20 61 6e 64 20 70 72 69 6e 74  of 127 and print
15370 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 20 2a  .            # *
15380 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65  an error message
15390 2a 20 74 6f 20 73 74 64 6f 75 74 2e 20 53 6f 20  * to stdout. So 
153a0 77 65 20 6d 75 73 74 20 63 68 65 63 6b 20 66 6f  we must check fo
153b0 72 20 62 6f 74 68 0a 20 20 20 20 20 20 20 20 20  r both.         
153c0 20 20 20 23 20 65 72 72 6f 72 20 63 6f 64 65 20     # error code 
153d0 6f 66 20 7a 65 72 6f 20 41 4e 44 20 6e 6f 6e 2d  of zero AND non-
153e0 65 6d 70 74 79 20 73 74 64 6f 75 74 2c 20 77 68  empty stdout, wh
153f0 69 63 68 20 65 78 70 6c 61 69 6e 73 0a 20 20 20  ich explains.   
15400 20 20 20 20 20 20 20 20 20 23 20 74 68 65 20 6f           # the o
15410 64 64 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 3a  dd construction:
15420 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6e  .            fun
15430 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 74  c_to_host_path_t
15440 6d 70 31 3d 60 77 69 6e 65 70 61 74 68 20 2d 77  mp1=`winepath -w
15450 20 22 24 31 22 20 32 3e 2f 64 65 76 2f 6e 75 6c   "$1" 2>/dev/nul
15460 6c 60 0a 20 20 20 20 20 20 20 20 20 20 20 20 69  l`.            i
15470 66 20 74 65 73 74 20 22 24 3f 22 20 2d 65 71 20  f test "$?" -eq 
15480 30 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24 7b  0 && test -n "${
15490 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74  func_to_host_pat
154a0 68 5f 74 6d 70 31 7d 22 3b 20 74 68 65 6e 0a 20  h_tmp1}"; then. 
154b0 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6e               fun
154c0 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72  c_to_host_path_r
154d0 65 73 75 6c 74 3d 60 65 63 68 6f 20 22 24 66 75  esult=`echo "$fu
154e0 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f  nc_to_host_path_
154f0 74 6d 70 31 22 20 7c 5c 0a 20 20 20 20 20 20 20  tmp1" |\.       
15500 20 20 20 20 20 20 20 20 20 24 53 45 44 20 2d 65           $SED -e
15510 20 22 24 6c 74 5f 73 65 64 5f 6e 61 69 76 65 5f   "$lt_sed_naive_
15520 62 61 63 6b 73 6c 61 73 68 69 66 79 22 60 0a 20  backslashify"`. 
15530 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a             else.
15540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20                # 
15550 41 6c 6c 6f 77 20 77 61 72 6e 69 6e 67 20 62 65  Allow warning be
15560 6c 6f 77 2e 0a 20 20 20 20 20 20 20 20 20 20 20  low..           
15570 20 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f     func_to_host_
15580 70 61 74 68 5f 72 65 73 75 6c 74 3d 22 22 0a 20  path_result="". 
15590 20 20 20 20 20 20 20 20 20 20 20 66 69 0a 20 20             fi.  
155a0 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20            ;;.   
155b0 20 20 20 20 20 65 73 61 63 0a 20 20 20 20 20 20       esac.      
155c0 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22 24 66    if test -z "$f
155d0 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
155e0 5f 72 65 73 75 6c 74 22 20 3b 20 74 68 65 6e 0a  _result" ; then.
155f0 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f 65            func_e
15600 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20  rror "Could not 
15610 64 65 74 65 72 6d 69 6e 65 20 68 6f 73 74 20 70  determine host p
15620 61 74 68 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e  ath correspondin
15630 67 20 74 6f 22 0a 20 20 20 20 20 20 20 20 20 20  g to".          
15640 66 75 6e 63 5f 65 72 72 6f 72 20 22 20 20 27 24  func_error "  '$
15650 31 27 22 0a 20 20 20 20 20 20 20 20 20 20 66 75  1'".          fu
15660 6e 63 5f 65 72 72 6f 72 20 22 43 6f 6e 74 69 6e  nc_error "Contin
15670 75 69 6e 67 2c 20 62 75 74 20 75 6e 69 6e 73 74  uing, but uninst
15680 61 6c 6c 65 64 20 65 78 65 63 75 74 61 62 6c 65  alled executable
15690 73 20 6d 61 79 20 6e 6f 74 20 77 6f 72 6b 2e 22  s may not work."
156a0 0a 20 20 20 20 20 20 20 20 20 20 23 20 46 61 6c  .          # Fal
156b0 6c 62 61 63 6b 3a 0a 20 20 20 20 20 20 20 20 20  lback:.         
156c0 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61   func_to_host_pa
156d0 74 68 5f 72 65 73 75 6c 74 3d 22 24 31 22 0a 20  th_result="$1". 
156e0 20 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20         fi.      
156f0 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20 20    ;;.    esac.  
15700 66 69 0a 7d 0a 23 20 65 6e 64 3a 20 66 75 6e 63  fi.}.# end: func
15710 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 0a 0a 23  _to_host_path..#
15720 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61   func_to_host_pa
15730 74 68 6c 69 73 74 20 61 72 67 0a 23 0a 23 20 43  thlist arg.#.# C
15740 6f 6e 76 65 72 74 20 70 61 74 68 6c 69 73 74 73  onvert pathlists
15750 20 74 6f 20 68 6f 73 74 20 66 6f 72 6d 61 74 20   to host format 
15760 77 68 65 6e 20 75 73 65 64 20 77 69 74 68 20 62  when used with b
15770 75 69 6c 64 20 74 6f 6f 6c 73 2e 0a 23 20 53 65  uild tools..# Se
15780 65 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70  e func_to_host_p
15790 61 74 68 28 29 2c 20 61 62 6f 76 65 2e 20 54 68  ath(), above. Th
157a0 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70  is function supp
157b0 6f 72 74 73 20 74 68 65 0a 23 20 66 6f 6c 6c 6f  orts the.# follo
157c0 77 69 6e 67 20 24 62 75 69 6c 64 2f 24 68 6f 73  wing $build/$hos
157d0 74 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 28  t combinations (
157e0 62 75 74 20 64 6f 65 73 20 6e 6f 20 68 61 72 6d  but does no harm
157f0 20 66 6f 72 0a 23 20 63 6f 6d 62 69 6e 61 74 69   for.# combinati
15800 6f 6e 73 20 6e 6f 74 20 6c 69 73 74 65 64 20 68  ons not listed h
15810 65 72 65 29 3a 0a 23 20 20 20 20 24 62 75 69 6c  ere):.#    $buil
15820 64 20 20 20 20 20 20 20 20 20 20 24 68 6f 73 74  d          $host
15830 0a 23 20 20 20 20 6d 69 6e 67 77 20 28 6d 73 79  .#    mingw (msy
15840 73 29 20 20 20 20 6d 69 6e 67 77 20 20 5b 65 2e  s)    mingw  [e.
15850 67 2e 20 6e 61 74 69 76 65 5d 0a 23 20 20 20 20  g. native].#    
15860 63 79 67 77 69 6e 20 20 20 20 20 20 20 20 20 20  cygwin          
15870 6d 69 6e 67 77 0a 23 20 20 20 20 2a 6e 69 78 20  mingw.#    *nix 
15880 2b 20 77 69 6e 65 20 20 20 20 20 6d 69 6e 67 77  + wine     mingw
15890 0a 23 0a 23 20 50 61 74 68 20 73 65 70 61 72 61  .#.# Path separa
158a0 74 6f 72 73 20 61 72 65 20 61 6c 73 6f 20 63 6f  tors are also co
158b0 6e 76 65 72 74 65 64 20 66 72 6f 6d 20 24 62 75  nverted from $bu
158c0 69 6c 64 20 66 6f 72 6d 61 74 20 74 6f 0a 23 20  ild format to.# 
158d0 24 68 6f 73 74 20 66 6f 72 6d 61 74 2e 20 49 66  $host format. If
158e0 20 41 52 47 20 62 65 67 69 6e 73 20 6f 72 20 65   ARG begins or e
158f0 6e 64 73 20 77 69 74 68 20 61 20 70 61 74 68 20  nds with a path 
15900 73 65 70 61 72 61 74 6f 72 0a 23 20 63 68 61 72  separator.# char
15910 61 63 74 65 72 2c 20 69 74 20 69 73 20 70 72 65  acter, it is pre
15920 73 65 72 76 65 64 20 28 62 75 74 20 63 6f 6e 76  served (but conv
15930 65 72 74 65 64 20 74 6f 20 24 68 6f 73 74 20 66  erted to $host f
15940 6f 72 6d 61 74 29 0a 23 20 6f 6e 20 6f 75 74 70  ormat).# on outp
15950 75 74 2e 0a 23 0a 23 20 41 52 47 20 69 73 20 61  ut..#.# ARG is a
15960 20 70 61 74 68 6c 69 73 74 20 28 6f 6e 20 24 62   pathlist (on $b
15970 75 69 6c 64 29 20 74 68 61 74 20 73 68 6f 75 6c  uild) that shoul
15980 64 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74  d be converted t
15990 6f 0a 23 20 74 68 65 20 70 72 6f 70 65 72 20 72  o.# the proper r
159a0 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 6e  epresentation on
159b0 20 24 68 6f 73 74 2e 20 54 68 65 20 72 65 73 75   $host. The resu
159c0 6c 74 20 69 73 20 73 74 6f 72 65 64 0a 23 20 69  lt is stored.# i
159d0 6e 20 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f  n $func_to_host_
159e0 70 61 74 68 6c 69 73 74 5f 72 65 73 75 6c 74 2e  pathlist_result.
159f0 0a 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61  .func_to_host_pa
15a00 74 68 6c 69 73 74 20 28 29 0a 7b 0a 20 20 66 75  thlist ().{.  fu
15a10 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c  nc_to_host_pathl
15a20 69 73 74 5f 72 65 73 75 6c 74 3d 22 24 31 22 0a  ist_result="$1".
15a30 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 31    if test -n "$1
15a40 22 20 3b 20 74 68 65 6e 0a 20 20 20 20 63 61 73  " ; then.    cas
15a50 65 20 24 68 6f 73 74 20 69 6e 0a 20 20 20 20 20  e $host in.     
15a60 20 2a 6d 69 6e 67 77 2a 20 29 0a 20 20 20 20 20   *mingw* ).     
15a70 20 20 20 6c 74 5f 73 65 64 5f 6e 61 69 76 65 5f     lt_sed_naive_
15a80 62 61 63 6b 73 6c 61 73 68 69 66 79 3d 27 73 7c  backslashify='s|
15a90 5c 5c 5c 5c 2a 7c 5c 5c 7c 67 3b 73 7c 2f 7c 5c  \\\\*|\\|g;s|/|\
15aa0 5c 7c 67 3b 73 7c 5c 5c 7c 5c 5c 5c 5c 7c 67 27  \|g;s|\\|\\\\|g'
15ab0 0a 20 20 20 20 20 20 20 20 23 20 52 65 6d 6f 76  .        # Remov
15ac0 65 20 6c 65 61 64 69 6e 67 20 61 6e 64 20 74 72  e leading and tr
15ad0 61 69 6c 69 6e 67 20 70 61 74 68 20 73 65 70 61  ailing path sepa
15ae0 72 61 74 6f 72 20 63 68 61 72 61 63 74 65 72 73  rator characters
15af0 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 23 20   from.        # 
15b00 41 52 47 2e 20 6d 73 79 73 20 62 65 68 61 76 69  ARG. msys behavi
15b10 6f 72 20 69 73 20 69 6e 63 6f 6e 73 69 73 74 65  or is inconsiste
15b20 6e 74 20 68 65 72 65 2c 20 63 79 67 70 61 74 68  nt here, cygpath
15b30 20 74 75 72 6e 73 20 74 68 65 6d 0a 20 20 20 20   turns them.    
15b40 20 20 20 20 23 20 69 6e 74 6f 20 27 2e 3b 27 20      # into '.;' 
15b50 61 6e 64 20 27 3b 2e 27 2c 20 61 6e 64 20 77 69  and ';.', and wi
15b60 6e 65 70 61 74 68 20 69 67 6e 6f 72 65 73 20 74  nepath ignores t
15b70 68 65 6d 20 63 6f 6d 70 6c 65 74 65 6c 79 2e 0a  hem completely..
15b80 20 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f          func_to_
15b90 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f 74 6d  host_pathlist_tm
15ba0 70 32 3d 22 24 31 22 0a 20 20 20 20 20 20 20 20  p2="$1".        
15bb0 23 20 4f 6e 63 65 20 73 65 74 20 66 6f 72 20 74  # Once set for t
15bc0 68 69 73 20 63 61 6c 6c 2c 20 74 68 69 73 20 76  his call, this v
15bd0 61 72 69 61 62 6c 65 20 73 68 6f 75 6c 64 20 6e  ariable should n
15be0 6f 74 20 62 65 0a 20 20 20 20 20 20 20 20 23 20  ot be.        # 
15bf0 72 65 61 73 73 69 67 6e 65 64 2e 20 49 74 20 69  reassigned. It i
15c00 73 20 75 73 65 64 20 69 6e 20 74 68 61 20 66 61  s used in tha fa
15c10 6c 6c 62 61 63 6b 20 63 61 73 65 2e 0a 20 20 20  llback case..   
15c20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73       func_to_hos
15c30 74 5f 70 61 74 68 6c 69 73 74 5f 74 6d 70 31 3d  t_pathlist_tmp1=
15c40 60 65 63 68 6f 20 22 24 66 75 6e 63 5f 74 6f 5f  `echo "$func_to_
15c50 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f 74 6d  host_pathlist_tm
15c60 70 32 22 20 7c 5c 0a 20 20 20 20 20 20 20 20 20  p2" |\.         
15c70 20 24 53 45 44 20 2d 65 20 27 73 7c 5e 3a 2a 7c   $SED -e 's|^:*|
15c80 7c 27 20 2d 65 20 27 73 7c 3a 2a 24 7c 7c 27 60  |' -e 's|:*$||'`
15c90 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 24 62  .        case $b
15ca0 75 69 6c 64 20 69 6e 0a 20 20 20 20 20 20 20 20  uild in.        
15cb0 20 20 2a 6d 69 6e 67 77 2a 20 29 20 23 20 41 63    *mingw* ) # Ac
15cc0 74 75 61 6c 6c 79 2c 20 6d 73 79 73 2e 0a 20 20  tually, msys..  
15cd0 20 20 20 20 20 20 20 20 20 20 23 20 41 77 6b 77            # Awkw
15ce0 61 72 64 3a 20 63 6d 64 20 61 70 70 65 6e 64 73  ard: cmd appends
15cf0 20 73 70 61 63 65 73 20 74 6f 20 72 65 73 75 6c   spaces to resul
15d00 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c  t..            l
15d10 74 5f 73 65 64 5f 73 74 72 69 70 5f 74 72 61 69  t_sed_strip_trai
15d20 6c 69 6e 67 5f 73 70 61 63 65 73 3d 22 73 2f 5b  ling_spaces="s/[
15d30 20 5d 2a 5c 24 2f 2f 22 0a 20 20 20 20 20 20 20   ]*\$//".       
15d40 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73       func_to_hos
15d50 74 5f 70 61 74 68 6c 69 73 74 5f 74 6d 70 32 3d  t_pathlist_tmp2=
15d60 60 28 20 63 6d 64 20 2f 2f 63 20 65 63 68 6f 20  `( cmd //c echo 
15d70 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70  "$func_to_host_p
15d80 61 74 68 6c 69 73 74 5f 74 6d 70 31 22 20 7c 5c  athlist_tmp1" |\
15d90 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24  .              $
15da0 53 45 44 20 2d 65 20 22 24 6c 74 5f 73 65 64 5f  SED -e "$lt_sed_
15db0 73 74 72 69 70 5f 74 72 61 69 6c 69 6e 67 5f 73  strip_trailing_s
15dc0 70 61 63 65 73 22 20 29 20 32 3e 2f 64 65 76 2f  paces" ) 2>/dev/
15dd0 6e 75 6c 6c 20 7c 7c 20 65 63 68 6f 20 22 22 60  null || echo ""`
15de0 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6e  .            fun
15df0 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69  c_to_host_pathli
15e00 73 74 5f 72 65 73 75 6c 74 3d 60 65 63 68 6f 20  st_result=`echo 
15e10 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70  "$func_to_host_p
15e20 61 74 68 6c 69 73 74 5f 74 6d 70 32 22 20 7c 5c  athlist_tmp2" |\
15e30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24  .              $
15e40 53 45 44 20 2d 65 20 22 24 6c 74 5f 73 65 64 5f  SED -e "$lt_sed_
15e50 6e 61 69 76 65 5f 62 61 63 6b 73 6c 61 73 68 69  naive_backslashi
15e60 66 79 22 60 0a 20 20 20 20 20 20 20 20 20 20 20  fy"`.           
15e70 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 2a 63   ;;.          *c
15e80 79 67 77 69 6e 2a 20 29 0a 20 20 20 20 20 20 20  ygwin* ).       
15e90 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73       func_to_hos
15ea0 74 5f 70 61 74 68 6c 69 73 74 5f 74 6d 70 32 3d  t_pathlist_tmp2=
15eb0 60 63 79 67 70 61 74 68 20 2d 77 20 2d 70 20 22  `cygpath -w -p "
15ec0 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61  $func_to_host_pa
15ed0 74 68 6c 69 73 74 5f 74 6d 70 31 22 60 0a 20 20  thlist_tmp1"`.  
15ee0 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f 74            func_t
15ef0 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f  o_host_pathlist_
15f00 72 65 73 75 6c 74 3d 60 65 63 68 6f 20 22 24 66  result=`echo "$f
15f10 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
15f20 6c 69 73 74 5f 74 6d 70 32 22 20 7c 5c 0a 20 20  list_tmp2" |\.  
15f30 20 20 20 20 20 20 20 20 20 20 20 20 24 53 45 44              $SED
15f40 20 2d 65 20 22 24 6c 74 5f 73 65 64 5f 6e 61 69   -e "$lt_sed_nai
15f50 76 65 5f 62 61 63 6b 73 6c 61 73 68 69 66 79 22  ve_backslashify"
15f60 60 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  `.            ;;
15f70 0a 20 20 20 20 20 20 20 20 20 20 2a 20 29 0a 20  .          * ). 
15f80 20 20 20 20 20 20 20 20 20 20 20 23 20 75 6e 66             # unf
15f90 6f 72 74 75 6e 61 74 65 6c 79 2c 20 77 69 6e 65  ortunately, wine
15fa0 70 61 74 68 20 64 6f 65 73 6e 27 74 20 63 6f 6e  path doesn't con
15fb0 76 65 72 74 20 70 61 74 68 6c 69 73 74 73 0a 20  vert pathlists. 
15fc0 20 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f             func_
15fd0 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74  to_host_pathlist
15fe0 5f 72 65 73 75 6c 74 3d 22 22 0a 20 20 20 20 20  _result="".     
15ff0 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68         func_to_h
16000 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f 6f 6c 64  ost_pathlist_old
16010 49 46 53 3d 24 49 46 53 0a 20 20 20 20 20 20 20  IFS=$IFS.       
16020 20 20 20 20 20 49 46 53 3d 3a 0a 20 20 20 20 20       IFS=:.     
16030 20 20 20 20 20 20 20 66 6f 72 20 66 75 6e 63 5f         for func_
16040 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74  to_host_pathlist
16050 5f 66 20 69 6e 20 24 66 75 6e 63 5f 74 6f 5f 68  _f in $func_to_h
16060 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f 74 6d 70  ost_pathlist_tmp
16070 31 20 3b 20 64 6f 0a 20 20 20 20 20 20 20 20 20  1 ; do.         
16080 20 20 20 20 20 49 46 53 3d 24 66 75 6e 63 5f 74       IFS=$func_t
16090 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f  o_host_pathlist_
160a0 6f 6c 64 49 46 53 0a 20 20 20 20 20 20 20 20 20  oldIFS.         
160b0 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20       if test -n 
160c0 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70  "$func_to_host_p
160d0 61 74 68 6c 69 73 74 5f 66 22 20 3b 20 74 68 65  athlist_f" ; the
160e0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  n.              
160f0 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70    func_to_host_p
16100 61 74 68 20 22 24 66 75 6e 63 5f 74 6f 5f 68 6f  ath "$func_to_ho
16110 73 74 5f 70 61 74 68 6c 69 73 74 5f 66 22 0a 20  st_pathlist_f". 
16120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
16130 66 20 74 65 73 74 20 2d 6e 20 22 24 66 75 6e 63  f test -n "$func
16140 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65  _to_host_path_re
16150 73 75 6c 74 22 20 3b 20 74 68 65 6e 0a 20 20 20  sult" ; then.   
16160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
16170 66 20 74 65 73 74 20 2d 7a 20 22 24 66 75 6e 63  f test -z "$func
16180 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73  _to_host_pathlis
16190 74 5f 72 65 73 75 6c 74 22 20 3b 20 74 68 65 6e  t_result" ; then
161a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
161b0 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73       func_to_hos
161c0 74 5f 70 61 74 68 6c 69 73 74 5f 72 65 73 75 6c  t_pathlist_resul
161d0 74 3d 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  t="$func_to_host
161e0 5f 70 61 74 68 5f 72 65 73 75 6c 74 22 0a 20 20  _path_result".  
161f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16200 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20  else.           
16210 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f           func_to
16220 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f 72  _host_pathlist_r
16230 65 73 75 6c 74 3d 22 24 66 75 6e 63 5f 74 6f 5f  esult="$func_to_
16240 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f 72 65  host_pathlist_re
16250 73 75 6c 74 3b 24 66 75 6e 63 5f 74 6f 5f 68 6f  sult;$func_to_ho
16260 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74 22 0a  st_path_result".
16270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16280 20 20 66 69 0a 20 20 20 20 20 20 20 20 20 20 20    fi.           
16290 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 20 20       fi.        
162a0 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 20        fi.       
162b0 20 20 20 20 20 20 20 49 46 53 3d 3a 0a 20 20 20         IFS=:.   
162c0 20 20 20 20 20 20 20 20 20 64 6f 6e 65 0a 20 20           done.  
162d0 20 20 20 20 20 20 20 20 20 20 49 46 53 3d 24 66            IFS=$f
162e0 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
162f0 6c 69 73 74 5f 6f 6c 64 49 46 53 0a 20 20 20 20  list_oldIFS.    
16300 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20          ;;.     
16310 20 20 20 65 73 61 63 0a 20 20 20 20 20 20 20 20     esac.        
16320 69 66 20 74 65 73 74 20 2d 7a 20 22 24 66 75 6e  if test -z "$fun
16330 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69  c_to_host_pathli
16340 73 74 5f 72 65 73 75 6c 74 22 20 3b 20 74 68 65  st_result" ; the
16350 6e 0a 20 20 20 20 20 20 20 20 20 20 66 75 6e 63  n.          func
16360 5f 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f  _error "Could no
16370 74 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20  t determine the 
16380 68 6f 73 74 20 70 61 74 68 28 73 29 20 63 6f 72  host path(s) cor
16390 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 22 0a 20  responding to". 
163a0 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f 65 72           func_er
163b0 72 6f 72 20 22 20 20 27 24 31 27 22 0a 20 20 20  ror "  '$1'".   
163c0 20 20 20 20 20 20 20 66 75 6e 63 5f 65 72 72 6f         func_erro
163d0 72 20 22 43 6f 6e 74 69 6e 75 69 6e 67 2c 20 62  r "Continuing, b
163e0 75 74 20 75 6e 69 6e 73 74 61 6c 6c 65 64 20 65  ut uninstalled e
163f0 78 65 63 75 74 61 62 6c 65 73 20 6d 61 79 20 6e  xecutables may n
16400 6f 74 20 77 6f 72 6b 2e 22 0a 20 20 20 20 20 20  ot work.".      
16410 20 20 20 20 23 20 46 61 6c 6c 62 61 63 6b 2e 20      # Fallback. 
16420 54 68 69 73 20 6d 61 79 20 62 72 65 61 6b 20 69  This may break i
16430 66 20 24 31 20 63 6f 6e 74 61 69 6e 73 20 44 4f  f $1 contains DO
16440 53 2d 73 74 79 6c 65 20 64 72 69 76 65 0a 20 20  S-style drive.  
16450 20 20 20 20 20 20 20 20 23 20 73 70 65 63 69 66          # specif
16460 69 63 61 74 69 6f 6e 73 2e 20 54 68 65 20 66 69  ications. The fi
16470 78 20 69 73 20 6e 6f 74 20 74 6f 20 63 6f 6d 70  x is not to comp
16480 6c 69 63 61 74 65 20 74 68 65 20 65 78 70 72 65  licate the expre
16490 73 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20  ssion.          
164a0 23 20 62 65 6c 6f 77 2c 20 62 75 74 20 66 6f 72  # below, but for
164b0 20 74 68 65 20 75 73 65 72 20 74 6f 20 70 72 6f   the user to pro
164c0 76 69 64 65 20 61 20 77 6f 72 6b 69 6e 67 20 77  vide a working w
164d0 69 6e 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e  ine installation
164e0 0a 20 20 20 20 20 20 20 20 20 20 23 20 77 69 74  .          # wit
164f0 68 20 77 69 6e 65 70 61 74 68 20 73 6f 20 74 68  h winepath so th
16500 61 74 20 70 61 74 68 20 74 72 61 6e 73 6c 61 74  at path translat
16510 69 6f 6e 20 69 6e 20 74 68 65 20 63 72 6f 73 73  ion in the cross
16520 2d 74 6f 2d 6d 69 6e 67 77 0a 20 20 20 20 20 20  -to-mingw.      
16530 20 20 20 20 23 20 63 61 73 65 20 77 6f 72 6b 73      # case works
16540 20 70 72 6f 70 65 72 6c 79 2e 0a 20 20 20 20 20   properly..     
16550 20 20 20 20 20 6c 74 5f 72 65 70 6c 61 63 65 5f       lt_replace_
16560 70 61 74 68 73 65 70 5f 6e 69 78 5f 74 6f 5f 64  pathsep_nix_to_d
16570 6f 73 3d 22 73 7c 3a 7c 3b 7c 67 22 0a 20 20 20  os="s|:|;|g".   
16580 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68         func_to_h
16590 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f 72 65 73  ost_pathlist_res
165a0 75 6c 74 3d 60 65 63 68 6f 20 22 24 66 75 6e 63  ult=`echo "$func
165b0 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73  _to_host_pathlis
165c0 74 5f 74 6d 70 31 22 20 7c 5c 0a 20 20 20 20 20  t_tmp1" |\.     
165d0 20 20 20 20 20 20 20 24 53 45 44 20 2d 65 20 22         $SED -e "
165e0 24 6c 74 5f 72 65 70 6c 61 63 65 5f 70 61 74 68  $lt_replace_path
165f0 73 65 70 5f 6e 69 78 5f 74 6f 5f 64 6f 73 22 60  sep_nix_to_dos"`
16600 0a 20 20 20 20 20 20 20 20 66 69 0a 20 20 20 20  .        fi.    
16610 20 20 20 20 23 20 4e 6f 77 2c 20 61 64 64 20 74      # Now, add t
16620 68 65 20 6c 65 61 64 69 6e 67 20 61 6e 64 20 74  he leading and t
16630 72 61 69 6c 69 6e 67 20 70 61 74 68 20 73 65 70  railing path sep
16640 61 72 61 74 6f 72 73 20 62 61 63 6b 0a 20 20 20  arators back.   
16650 20 20 20 20 20 63 61 73 65 20 22 24 31 22 20 69       case "$1" i
16660 6e 0a 20 20 20 20 20 20 20 20 20 20 3a 2a 20 29  n.          :* )
16670 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61   func_to_host_pa
16680 74 68 6c 69 73 74 5f 72 65 73 75 6c 74 3d 22 3b  thlist_result=";
16690 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61  $func_to_host_pa
166a0 74 68 6c 69 73 74 5f 72 65 73 75 6c 74 22 0a 20  thlist_result". 
166b0 20 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20             ;;.  
166c0 20 20 20 20 20 20 65 73 61 63 0a 20 20 20 20 20        esac.     
166d0 20 20 20 63 61 73 65 20 22 24 31 22 20 69 6e 0a     case "$1" in.
166e0 20 20 20 20 20 20 20 20 20 20 2a 3a 20 29 20 66            *: ) f
166f0 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
16700 6c 69 73 74 5f 72 65 73 75 6c 74 3d 22 24 66 75  list_result="$fu
16710 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c  nc_to_host_pathl
16720 69 73 74 5f 72 65 73 75 6c 74 3b 22 0a 20 20 20  ist_result;".   
16730 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20           ;;.    
16740 20 20 20 20 65 73 61 63 0a 20 20 20 20 20 20 20      esac.       
16750 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20 20 66   ;;.    esac.  f
16760 69 0a 7d 0a 23 20 65 6e 64 3a 20 66 75 6e 63 5f  i.}.# end: func_
16770 74 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74  to_host_pathlist
16780 0a 0a 23 20 66 75 6e 63 5f 65 6d 69 74 5f 63 77  ..# func_emit_cw
16790 72 61 70 70 65 72 65 78 65 5f 73 72 63 0a 23 20  rapperexe_src.# 
167a0 65 6d 69 74 20 74 68 65 20 73 6f 75 72 63 65 20  emit the source 
167b0 63 6f 64 65 20 66 6f 72 20 61 20 77 72 61 70 70  code for a wrapp
167c0 65 72 20 65 78 65 63 75 74 61 62 6c 65 20 6f 6e  er executable on
167d0 20 73 74 64 6f 75 74 0a 23 20 4d 75 73 74 20 4f   stdout.# Must O
167e0 4e 4c 59 20 62 65 20 63 61 6c 6c 65 64 20 66 72  NLY be called fr
167f0 6f 6d 20 77 69 74 68 69 6e 20 66 75 6e 63 5f 6d  om within func_m
16800 6f 64 65 5f 6c 69 6e 6b 20 62 65 63 61 75 73 65  ode_link because
16810 0a 23 20 69 74 20 64 65 70 65 6e 64 73 20 6f 6e  .# it depends on
16820 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 76 61 72   a number of var
16830 69 61 62 6c 65 20 73 65 74 20 74 68 65 72 65 69  iable set therei
16840 6e 2e 0a 66 75 6e 63 5f 65 6d 69 74 5f 63 77 72  n..func_emit_cwr
16850 61 70 70 65 72 65 78 65 5f 73 72 63 20 28 29 0a  apperexe_src ().
16860 7b 0a 09 63 61 74 20 3c 3c 45 4f 46 0a 0a 2f 2a  {..cat <<EOF../*
16870 20 24 63 77 72 61 70 70 65 72 73 6f 75 72 63 65   $cwrappersource
16880 20 2d 20 74 65 6d 70 6f 72 61 72 79 20 77 72 61   - temporary wra
16890 70 70 65 72 20 65 78 65 63 75 74 61 62 6c 65 20  pper executable 
168a0 66 6f 72 20 24 6f 62 6a 64 69 72 2f 24 6f 75 74  for $objdir/$out
168b0 70 75 74 6e 61 6d 65 0a 20 20 20 47 65 6e 65 72  putname.   Gener
168c0 61 74 65 64 20 62 79 20 24 50 52 4f 47 52 41 4d  ated by $PROGRAM
168d0 20 28 47 4e 55 20 24 50 41 43 4b 41 47 45 24 54   (GNU $PACKAGE$T
168e0 49 4d 45 53 54 41 4d 50 29 20 24 56 45 52 53 49  IMESTAMP) $VERSI
168f0 4f 4e 0a 0a 20 20 20 54 68 65 20 24 6f 75 74 70  ON..   The $outp
16900 75 74 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f  ut program canno
16910 74 20 62 65 20 64 69 72 65 63 74 6c 79 20 65 78  t be directly ex
16920 65 63 75 74 65 64 20 75 6e 74 69 6c 20 61 6c 6c  ecuted until all
16930 20 74 68 65 20 6c 69 62 74 6f 6f 6c 0a 20 20 20   the libtool.   
16940 6c 69 62 72 61 72 69 65 73 20 74 68 61 74 20 69  libraries that i
16950 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 61 72 65  t depends on are
16960 20 69 6e 73 74 61 6c 6c 65 64 2e 0a 0a 20 20 20   installed...   
16970 54 68 69 73 20 77 72 61 70 70 65 72 20 65 78 65  This wrapper exe
16980 63 75 74 61 62 6c 65 20 73 68 6f 75 6c 64 20 6e  cutable should n
16990 65 76 65 72 20 62 65 20 6d 6f 76 65 64 20 6f 75  ever be moved ou
169a0 74 20 6f 66 20 74 68 65 20 62 75 69 6c 64 20 64  t of the build d
169b0 69 72 65 63 74 6f 72 79 2e 0a 20 20 20 49 66 20  irectory..   If 
169c0 69 74 20 69 73 2c 20 69 74 20 77 69 6c 6c 20 6e  it is, it will n
169d0 6f 74 20 6f 70 65 72 61 74 65 20 63 6f 72 72 65  ot operate corre
169e0 63 74 6c 79 2e 0a 0a 20 20 20 43 75 72 72 65 6e  ctly...   Curren
169f0 74 6c 79 2c 20 69 74 20 73 69 6d 70 6c 79 20 65  tly, it simply e
16a00 78 65 63 73 20 74 68 65 20 77 72 61 70 70 65 72  xecs the wrapper
16a10 20 2a 73 63 72 69 70 74 2a 20 22 24 53 48 45 4c   *script* "$SHEL
16a20 4c 20 24 6f 75 74 70 75 74 22 2c 0a 20 20 20 62  L $output",.   b
16a30 75 74 20 63 6f 75 6c 64 20 65 76 65 6e 74 75 61  ut could eventua
16a40 6c 6c 79 20 61 62 73 6f 72 62 20 61 6c 6c 20 6f  lly absorb all o
16a50 66 20 74 68 65 20 73 63 72 69 70 74 73 20 66 75  f the scripts fu
16a60 6e 63 74 69 6f 6e 61 6c 69 74 79 20 61 6e 64 0a  nctionality and.
16a70 20 20 20 65 78 65 63 20 24 6f 62 6a 64 69 72 2f     exec $objdir/
16a80 24 6f 75 74 70 75 74 6e 61 6d 65 20 64 69 72 65  $outputname dire
16a90 63 74 6c 79 2e 0a 2a 2f 0a 45 4f 46 0a 09 20 20  ctly..*/.EOF..  
16aa0 20 20 63 61 74 20 3c 3c 22 45 4f 46 22 0a 23 69    cat <<"EOF".#i
16ab0 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e  nclude <stdio.h>
16ac0 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69  .#include <stdli
16ad0 62 2e 68 3e 0a 23 69 66 64 65 66 20 5f 4d 53 43  b.h>.#ifdef _MSC
16ae0 5f 56 45 52 0a 23 20 69 6e 63 6c 75 64 65 20 3c  _VER.# include <
16af0 64 69 72 65 63 74 2e 68 3e 0a 23 20 69 6e 63 6c  direct.h>.# incl
16b00 75 64 65 20 3c 70 72 6f 63 65 73 73 2e 68 3e 0a  ude <process.h>.
16b10 23 20 69 6e 63 6c 75 64 65 20 3c 69 6f 2e 68 3e  # include <io.h>
16b20 0a 23 20 64 65 66 69 6e 65 20 73 65 74 6d 6f 64  .# define setmod
16b30 65 20 5f 73 65 74 6d 6f 64 65 0a 23 65 6c 73 65  e _setmode.#else
16b40 0a 23 20 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73  .# include <unis
16b50 74 64 2e 68 3e 0a 23 20 69 6e 63 6c 75 64 65 20  td.h>.# include 
16b60 3c 73 74 64 69 6e 74 2e 68 3e 0a 23 20 69 66 64  <stdint.h>.# ifd
16b70 65 66 20 5f 5f 43 59 47 57 49 4e 5f 5f 0a 23 20  ef __CYGWIN__.# 
16b80 20 69 6e 63 6c 75 64 65 20 3c 69 6f 2e 68 3e 0a   include <io.h>.
16b90 23 20 20 64 65 66 69 6e 65 20 48 41 56 45 5f 53  #  define HAVE_S
16ba0 45 54 45 4e 56 0a 23 20 20 69 66 64 65 66 20 5f  ETENV.#  ifdef _
16bb0 5f 53 54 52 49 43 54 5f 41 4e 53 49 5f 5f 0a 63  _STRICT_ANSI__.c
16bc0 68 61 72 20 2a 72 65 61 6c 70 61 74 68 20 28 63  har *realpath (c
16bd0 6f 6e 73 74 20 63 68 61 72 20 2a 2c 20 63 68 61  onst char *, cha
16be0 72 20 2a 29 3b 0a 69 6e 74 20 70 75 74 65 6e 76  r *);.int putenv
16bf0 20 28 63 68 61 72 20 2a 29 3b 0a 69 6e 74 20 73   (char *);.int s
16c00 65 74 65 6e 76 20 28 63 6f 6e 73 74 20 63 68 61  etenv (const cha
16c10 72 20 2a 2c 20 63 6f 6e 73 74 20 63 68 61 72 20  r *, const char 
16c20 2a 2c 20 69 6e 74 29 3b 0a 23 20 20 65 6e 64 69  *, int);.#  endi
16c30 66 0a 23 20 65 6e 64 69 66 0a 23 65 6e 64 69 66  f.# endif.#endif
16c40 0a 23 69 6e 63 6c 75 64 65 20 3c 6d 61 6c 6c 6f  .#include <mallo
16c50 63 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73  c.h>.#include <s
16c60 74 64 61 72 67 2e 68 3e 0a 23 69 6e 63 6c 75 64  tdarg.h>.#includ
16c70 65 20 3c 61 73 73 65 72 74 2e 68 3e 0a 23 69 6e  e <assert.h>.#in
16c80 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e  clude <string.h>
16c90 0a 23 69 6e 63 6c 75 64 65 20 3c 63 74 79 70 65  .#include <ctype
16ca0 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 65 72  .h>.#include <er
16cb0 72 6e 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20  rno.h>.#include 
16cc0 3c 66 63 6e 74 6c 2e 68 3e 0a 23 69 6e 63 6c 75  <fcntl.h>.#inclu
16cd0 64 65 20 3c 73 79 73 2f 73 74 61 74 2e 68 3e 0a  de <sys/stat.h>.
16ce0 0a 23 69 66 20 64 65 66 69 6e 65 64 28 50 41 54  .#if defined(PAT
16cf0 48 5f 4d 41 58 29 0a 23 20 64 65 66 69 6e 65 20  H_MAX).# define 
16d00 4c 54 5f 50 41 54 48 4d 41 58 20 50 41 54 48 5f  LT_PATHMAX PATH_
16d10 4d 41 58 0a 23 65 6c 69 66 20 64 65 66 69 6e 65  MAX.#elif define
16d20 64 28 4d 41 58 50 41 54 48 4c 45 4e 29 0a 23 20  d(MAXPATHLEN).# 
16d30 64 65 66 69 6e 65 20 4c 54 5f 50 41 54 48 4d 41  define LT_PATHMA
16d40 58 20 4d 41 58 50 41 54 48 4c 45 4e 0a 23 65 6c  X MAXPATHLEN.#el
16d50 73 65 0a 23 20 64 65 66 69 6e 65 20 4c 54 5f 50  se.# define LT_P
16d60 41 54 48 4d 41 58 20 31 30 32 34 0a 23 65 6e 64  ATHMAX 1024.#end
16d70 69 66 0a 0a 23 69 66 6e 64 65 66 20 53 5f 49 58  if..#ifndef S_IX
16d80 4f 54 48 0a 23 20 64 65 66 69 6e 65 20 53 5f 49  OTH.# define S_I
16d90 58 4f 54 48 20 30 0a 23 65 6e 64 69 66 0a 23 69  XOTH 0.#endif.#i
16da0 66 6e 64 65 66 20 53 5f 49 58 47 52 50 0a 23 20  fndef S_IXGRP.# 
16db0 64 65 66 69 6e 65 20 53 5f 49 58 47 52 50 20 30  define S_IXGRP 0
16dc0 0a 23 65 6e 64 69 66 0a 0a 23 69 66 64 65 66 20  .#endif..#ifdef 
16dd0 5f 4d 53 43 5f 56 45 52 0a 23 20 64 65 66 69 6e  _MSC_VER.# defin
16de0 65 20 53 5f 49 58 55 53 52 20 5f 53 5f 49 45 58  e S_IXUSR _S_IEX
16df0 45 43 0a 23 20 64 65 66 69 6e 65 20 73 74 61 74  EC.# define stat
16e00 20 5f 73 74 61 74 0a 23 20 69 66 6e 64 65 66 20   _stat.# ifndef 
16e10 5f 49 4e 54 50 54 52 5f 54 5f 44 45 46 49 4e 45  _INTPTR_T_DEFINE
16e20 44 0a 23 20 20 64 65 66 69 6e 65 20 69 6e 74 70  D.#  define intp
16e30 74 72 5f 74 20 69 6e 74 0a 23 20 65 6e 64 69 66  tr_t int.# endif
16e40 0a 23 65 6e 64 69 66 0a 0a 23 69 66 6e 64 65 66  .#endif..#ifndef
16e50 20 44 49 52 5f 53 45 50 41 52 41 54 4f 52 0a 23   DIR_SEPARATOR.#
16e60 20 64 65 66 69 6e 65 20 44 49 52 5f 53 45 50 41   define DIR_SEPA
16e70 52 41 54 4f 52 20 27 2f 27 0a 23 20 64 65 66 69  RATOR '/'.# defi
16e80 6e 65 20 50 41 54 48 5f 53 45 50 41 52 41 54 4f  ne PATH_SEPARATO
16e90 52 20 27 3a 27 0a 23 65 6e 64 69 66 0a 0a 23 69  R ':'.#endif..#i
16ea0 66 20 64 65 66 69 6e 65 64 20 28 5f 57 49 4e 33  f defined (_WIN3
16eb0 32 29 20 7c 7c 20 64 65 66 69 6e 65 64 20 28 5f  2) || defined (_
16ec0 5f 4d 53 44 4f 53 5f 5f 29 20 7c 7c 20 64 65 66  _MSDOS__) || def
16ed0 69 6e 65 64 20 28 5f 5f 44 4a 47 50 50 5f 5f 29  ined (__DJGPP__)
16ee0 20 7c 7c 20 5c 0a 20 20 64 65 66 69 6e 65 64 20   || \.  defined 
16ef0 28 5f 5f 4f 53 32 5f 5f 29 0a 23 20 64 65 66 69  (__OS2__).# defi
16f00 6e 65 20 48 41 56 45 5f 44 4f 53 5f 42 41 53 45  ne HAVE_DOS_BASE
16f10 44 5f 46 49 4c 45 5f 53 59 53 54 45 4d 0a 23 20  D_FILE_SYSTEM.# 
16f20 64 65 66 69 6e 65 20 46 4f 50 45 4e 5f 57 42 20  define FOPEN_WB 
16f30 22 77 62 22 0a 23 20 69 66 6e 64 65 66 20 44 49  "wb".# ifndef DI
16f40 52 5f 53 45 50 41 52 41 54 4f 52 5f 32 0a 23 20  R_SEPARATOR_2.# 
16f50 20 64 65 66 69 6e 65 20 44 49 52 5f 53 45 50 41   define DIR_SEPA
16f60 52 41 54 4f 52 5f 32 20 27 5c 5c 27 0a 23 20 65  RATOR_2 '\\'.# e
16f70 6e 64 69 66 0a 23 20 69 66 6e 64 65 66 20 50 41  ndif.# ifndef PA
16f80 54 48 5f 53 45 50 41 52 41 54 4f 52 5f 32 0a 23  TH_SEPARATOR_2.#
16f90 20 20 64 65 66 69 6e 65 20 50 41 54 48 5f 53 45    define PATH_SE
16fa0 50 41 52 41 54 4f 52 5f 32 20 27 3b 27 0a 23 20  PARATOR_2 ';'.# 
16fb0 65 6e 64 69 66 0a 23 65 6e 64 69 66 0a 0a 23 69  endif.#endif..#i
16fc0 66 6e 64 65 66 20 44 49 52 5f 53 45 50 41 52 41  fndef DIR_SEPARA
16fd0 54 4f 52 5f 32 0a 23 20 64 65 66 69 6e 65 20 49  TOR_2.# define I
16fe0 53 5f 44 49 52 5f 53 45 50 41 52 41 54 4f 52 28  S_DIR_SEPARATOR(
16ff0 63 68 29 20 28 28 63 68 29 20 3d 3d 20 44 49 52  ch) ((ch) == DIR
17000 5f 53 45 50 41 52 41 54 4f 52 29 0a 23 65 6c 73  _SEPARATOR).#els
17010 65 20 2f 2a 20 44 49 52 5f 53 45 50 41 52 41 54  e /* DIR_SEPARAT
17020 4f 52 5f 32 20 2a 2f 0a 23 20 64 65 66 69 6e 65  OR_2 */.# define
17030 20 49 53 5f 44 49 52 5f 53 45 50 41 52 41 54 4f   IS_DIR_SEPARATO
17040 52 28 63 68 29 20 5c 0a 09 28 28 28 63 68 29 20  R(ch) \..(((ch) 
17050 3d 3d 20 44 49 52 5f 53 45 50 41 52 41 54 4f 52  == DIR_SEPARATOR
17060 29 20 7c 7c 20 28 28 63 68 29 20 3d 3d 20 44 49  ) || ((ch) == DI
17070 52 5f 53 45 50 41 52 41 54 4f 52 5f 32 29 29 0a  R_SEPARATOR_2)).
17080 23 65 6e 64 69 66 20 2f 2a 20 44 49 52 5f 53 45  #endif /* DIR_SE
17090 50 41 52 41 54 4f 52 5f 32 20 2a 2f 0a 0a 23 69  PARATOR_2 */..#i
170a0 66 6e 64 65 66 20 50 41 54 48 5f 53 45 50 41 52  fndef PATH_SEPAR
170b0 41 54 4f 52 5f 32 0a 23 20 64 65 66 69 6e 65 20  ATOR_2.# define 
170c0 49 53 5f 50 41 54 48 5f 53 45 50 41 52 41 54 4f  IS_PATH_SEPARATO
170d0 52 28 63 68 29 20 28 28 63 68 29 20 3d 3d 20 50  R(ch) ((ch) == P
170e0 41 54 48 5f 53 45 50 41 52 41 54 4f 52 29 0a 23  ATH_SEPARATOR).#
170f0 65 6c 73 65 20 2f 2a 20 50 41 54 48 5f 53 45 50  else /* PATH_SEP
17100 41 52 41 54 4f 52 5f 32 20 2a 2f 0a 23 20 64 65  ARATOR_2 */.# de
17110 66 69 6e 65 20 49 53 5f 50 41 54 48 5f 53 45 50  fine IS_PATH_SEP
17120 41 52 41 54 4f 52 28 63 68 29 20 28 28 63 68 29  ARATOR(ch) ((ch)
17130 20 3d 3d 20 50 41 54 48 5f 53 45 50 41 52 41 54   == PATH_SEPARAT
17140 4f 52 5f 32 29 0a 23 65 6e 64 69 66 20 2f 2a 20  OR_2).#endif /* 
17150 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 5f 32  PATH_SEPARATOR_2
17160 20 2a 2f 0a 0a 23 69 66 64 65 66 20 5f 5f 43 59   */..#ifdef __CY
17170 47 57 49 4e 5f 5f 0a 23 20 64 65 66 69 6e 65 20  GWIN__.# define 
17180 46 4f 50 45 4e 5f 57 42 20 22 77 62 22 0a 23 65  FOPEN_WB "wb".#e
17190 6e 64 69 66 0a 0a 23 69 66 6e 64 65 66 20 46 4f  ndif..#ifndef FO
171a0 50 45 4e 5f 57 42 0a 23 20 64 65 66 69 6e 65 20  PEN_WB.# define 
171b0 46 4f 50 45 4e 5f 57 42 20 22 77 22 0a 23 65 6e  FOPEN_WB "w".#en
171c0 64 69 66 0a 23 69 66 6e 64 65 66 20 5f 4f 5f 42  dif.#ifndef _O_B
171d0 49 4e 41 52 59 0a 23 20 64 65 66 69 6e 65 20 5f  INARY.# define _
171e0 4f 5f 42 49 4e 41 52 59 20 30 0a 23 65 6e 64 69  O_BINARY 0.#endi
171f0 66 0a 0a 23 64 65 66 69 6e 65 20 58 4d 41 4c 4c  f..#define XMALL
17200 4f 43 28 74 79 70 65 2c 20 6e 75 6d 29 20 20 20  OC(type, num)   
17210 20 20 20 28 28 74 79 70 65 20 2a 29 20 78 6d 61     ((type *) xma
17220 6c 6c 6f 63 20 28 28 6e 75 6d 29 20 2a 20 73 69  lloc ((num) * si
17230 7a 65 6f 66 28 74 79 70 65 29 29 29 0a 23 64 65  zeof(type))).#de
17240 66 69 6e 65 20 58 46 52 45 45 28 73 74 61 6c 65  fine XFREE(stale
17250 29 20 64 6f 20 7b 20 5c 0a 20 20 69 66 20 28 73  ) do { \.  if (s
17260 74 61 6c 65 29 20 7b 20 66 72 65 65 20 28 28 76  tale) { free ((v
17270 6f 69 64 20 2a 29 20 73 74 61 6c 65 29 3b 20 73  oid *) stale); s
17280 74 61 6c 65 20 3d 20 30 3b 20 7d 20 5c 0a 7d 20  tale = 0; } \.} 
17290 77 68 69 6c 65 20 28 30 29 0a 0a 23 75 6e 64 65  while (0)..#unde
172a0 66 20 4c 54 57 52 41 50 50 45 52 5f 44 45 42 55  f LTWRAPPER_DEBU
172b0 47 50 52 49 4e 54 46 0a 23 69 66 20 64 65 66 69  GPRINTF.#if defi
172c0 6e 65 64 20 44 45 42 55 47 57 52 41 50 50 45 52  ned DEBUGWRAPPER
172d0 0a 23 20 64 65 66 69 6e 65 20 4c 54 57 52 41 50  .# define LTWRAP
172e0 50 45 52 5f 44 45 42 55 47 50 52 49 4e 54 46 28  PER_DEBUGPRINTF(
172f0 61 72 67 73 29 20 6c 74 77 72 61 70 70 65 72 5f  args) ltwrapper_
17300 64 65 62 75 67 70 72 69 6e 74 66 20 61 72 67 73  debugprintf args
17310 0a 73 74 61 74 69 63 20 76 6f 69 64 0a 6c 74 77  .static void.ltw
17320 72 61 70 70 65 72 5f 64 65 62 75 67 70 72 69 6e  rapper_debugprin
17330 74 66 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a  tf (const char *
17340 66 6d 74 2c 20 2e 2e 2e 29 0a 7b 0a 20 20 20 20  fmt, ...).{.    
17350 76 61 5f 6c 69 73 74 20 61 72 67 73 3b 0a 20 20  va_list args;.  
17360 20 20 76 61 5f 73 74 61 72 74 20 28 61 72 67 73    va_start (args
17370 2c 20 66 6d 74 29 3b 0a 20 20 20 20 28 76 6f 69  , fmt);.    (voi
17380 64 29 20 76 66 70 72 69 6e 74 66 20 28 73 74 64  d) vfprintf (std
17390 65 72 72 2c 20 66 6d 74 2c 20 61 72 67 73 29 3b  err, fmt, args);
173a0 0a 20 20 20 20 76 61 5f 65 6e 64 20 28 61 72 67  .    va_end (arg
173b0 73 29 3b 0a 7d 0a 23 65 6c 73 65 0a 23 20 64 65  s);.}.#else.# de
173c0 66 69 6e 65 20 4c 54 57 52 41 50 50 45 52 5f 44  fine LTWRAPPER_D
173d0 45 42 55 47 50 52 49 4e 54 46 28 61 72 67 73 29  EBUGPRINTF(args)
173e0 0a 23 65 6e 64 69 66 0a 0a 63 6f 6e 73 74 20 63  .#endif..const c
173f0 68 61 72 20 2a 70 72 6f 67 72 61 6d 5f 6e 61 6d  har *program_nam
17400 65 20 3d 20 4e 55 4c 4c 3b 0a 0a 76 6f 69 64 20  e = NULL;..void 
17410 2a 78 6d 61 6c 6c 6f 63 20 28 73 69 7a 65 5f 74  *xmalloc (size_t
17420 20 6e 75 6d 29 3b 0a 63 68 61 72 20 2a 78 73 74   num);.char *xst
17430 72 64 75 70 20 28 63 6f 6e 73 74 20 63 68 61 72  rdup (const char
17440 20 2a 73 74 72 69 6e 67 29 3b 0a 63 6f 6e 73 74   *string);.const
17450 20 63 68 61 72 20 2a 62 61 73 65 5f 6e 61 6d 65   char *base_name
17460 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61   (const char *na
17470 6d 65 29 3b 0a 63 68 61 72 20 2a 66 69 6e 64 5f  me);.char *find_
17480 65 78 65 63 75 74 61 62 6c 65 20 28 63 6f 6e 73  executable (cons
17490 74 20 63 68 61 72 20 2a 77 72 61 70 70 65 72 29  t char *wrapper)
174a0 3b 0a 63 68 61 72 20 2a 63 68 61 73 65 5f 73 79  ;.char *chase_sy
174b0 6d 6c 69 6e 6b 73 20 28 63 6f 6e 73 74 20 63 68  mlinks (const ch
174c0 61 72 20 2a 70 61 74 68 73 70 65 63 29 3b 0a 69  ar *pathspec);.i
174d0 6e 74 20 6d 61 6b 65 5f 65 78 65 63 75 74 61 62  nt make_executab
174e0 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a  le (const char *
174f0 70 61 74 68 29 3b 0a 69 6e 74 20 63 68 65 63 6b  path);.int check
17500 5f 65 78 65 63 75 74 61 62 6c 65 20 28 63 6f 6e  _executable (con
17510 73 74 20 63 68 61 72 20 2a 70 61 74 68 29 3b 0a  st char *path);.
17520 63 68 61 72 20 2a 73 74 72 65 6e 64 7a 61 70 20  char *strendzap 
17530 28 63 68 61 72 20 2a 73 74 72 2c 20 63 6f 6e 73  (char *str, cons
17540 74 20 63 68 61 72 20 2a 70 61 74 29 3b 0a 76 6f  t char *pat);.vo
17550 69 64 20 6c 74 5f 66 61 74 61 6c 20 28 63 6f 6e  id lt_fatal (con
17560 73 74 20 63 68 61 72 20 2a 6d 65 73 73 61 67 65  st char *message
17570 2c 20 2e 2e 2e 29 3b 0a 76 6f 69 64 20 6c 74 5f  , ...);.void lt_
17580 73 65 74 65 6e 76 20 28 63 6f 6e 73 74 20 63 68  setenv (const ch
17590 61 72 20 2a 6e 61 6d 65 2c 20 63 6f 6e 73 74 20  ar *name, const 
175a0 63 68 61 72 20 2a 76 61 6c 75 65 29 3b 0a 63 68  char *value);.ch
175b0 61 72 20 2a 6c 74 5f 65 78 74 65 6e 64 5f 73 74  ar *lt_extend_st
175c0 72 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6f  r (const char *o
175d0 72 69 67 5f 76 61 6c 75 65 2c 20 63 6f 6e 73 74  rig_value, const
175e0 20 63 68 61 72 20 2a 61 64 64 2c 20 69 6e 74 20   char *add, int 
175f0 74 6f 5f 65 6e 64 29 3b 0a 76 6f 69 64 20 6c 74  to_end);.void lt
17600 5f 6f 70 74 5f 70 72 6f 63 65 73 73 5f 65 6e 76  _opt_process_env
17610 5f 73 65 74 20 28 63 6f 6e 73 74 20 63 68 61 72  _set (const char
17620 20 2a 61 72 67 29 3b 0a 76 6f 69 64 20 6c 74 5f   *arg);.void lt_
17630 6f 70 74 5f 70 72 6f 63 65 73 73 5f 65 6e 76 5f  opt_process_env_
17640 70 72 65 70 65 6e 64 20 28 63 6f 6e 73 74 20 63  prepend (const c
17650 68 61 72 20 2a 61 72 67 29 3b 0a 76 6f 69 64 20  har *arg);.void 
17660 6c 74 5f 6f 70 74 5f 70 72 6f 63 65 73 73 5f 65  lt_opt_process_e
17670 6e 76 5f 61 70 70 65 6e 64 20 28 63 6f 6e 73 74  nv_append (const
17680 20 63 68 61 72 20 2a 61 72 67 29 3b 0a 69 6e 74   char *arg);.int
17690 20 6c 74 5f 73 70 6c 69 74 5f 6e 61 6d 65 5f 76   lt_split_name_v
176a0 61 6c 75 65 20 28 63 6f 6e 73 74 20 63 68 61 72  alue (const char
176b0 20 2a 61 72 67 2c 20 63 68 61 72 2a 2a 20 6e 61   *arg, char** na
176c0 6d 65 2c 20 63 68 61 72 2a 2a 20 76 61 6c 75 65  me, char** value
176d0 29 3b 0a 76 6f 69 64 20 6c 74 5f 75 70 64 61 74  );.void lt_updat
176e0 65 5f 65 78 65 5f 70 61 74 68 20 28 63 6f 6e 73  e_exe_path (cons
176f0 74 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 63 6f  t char *name, co
17700 6e 73 74 20 63 68 61 72 20 2a 76 61 6c 75 65 29  nst char *value)
17710 3b 0a 76 6f 69 64 20 6c 74 5f 75 70 64 61 74 65  ;.void lt_update
17720 5f 6c 69 62 5f 70 61 74 68 20 28 63 6f 6e 73 74  _lib_path (const
17730 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 63 6f 6e   char *name, con
17740 73 74 20 63 68 61 72 20 2a 76 61 6c 75 65 29 3b  st char *value);
17750 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63  ..static const c
17760 68 61 72 20 2a 73 63 72 69 70 74 5f 74 65 78 74  har *script_text
17770 5f 70 61 72 74 31 20 3d 0a 45 4f 46 0a 0a 09 20  _part1 =.EOF... 
17780 20 20 20 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61     func_emit_wra
17790 70 70 65 72 5f 70 61 72 74 31 20 79 65 73 20 7c  pper_part1 yes |
177a0 0a 09 20 20 20 20 20 20 20 20 24 53 45 44 20 2d  ..        $SED -
177b0 65 20 27 73 2f 5c 28 5b 5c 5c 22 5d 5c 29 2f 5c  e 's/\([\\"]\)/\
177c0 5c 5c 31 2f 67 27 20 5c 0a 09 20 20 20 20 20 20  \\1/g' \..      
177d0 20 20 20 20 20 20 20 2d 65 20 27 73 2f 5e 2f 20         -e 's/^/ 
177e0 20 22 2f 27 20 2d 65 20 27 73 2f 24 2f 5c 5c 6e   "/' -e 's/$/\\n
177f0 22 2f 27 0a 09 20 20 20 20 65 63 68 6f 20 22 3b  "/'..    echo ";
17800 22 0a 09 20 20 20 20 63 61 74 20 3c 3c 45 4f 46  "..    cat <<EOF
17810 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63  ..static const c
17820 68 61 72 20 2a 73 63 72 69 70 74 5f 74 65 78 74  har *script_text
17830 5f 70 61 72 74 32 20 3d 0a 45 4f 46 0a 09 20 20  _part2 =.EOF..  
17840 20 20 66 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70    func_emit_wrap
17850 70 65 72 5f 70 61 72 74 32 20 79 65 73 20 7c 0a  per_part2 yes |.
17860 09 20 20 20 20 20 20 20 20 24 53 45 44 20 2d 65  .        $SED -e
17870 20 27 73 2f 5c 28 5b 5c 5c 22 5d 5c 29 2f 5c 5c   's/\([\\"]\)/\\
17880 5c 31 2f 67 27 20 5c 0a 09 20 20 20 20 20 20 20  \1/g' \..       
17890 20 20 20 20 20 20 2d 65 20 27 73 2f 5e 2f 20 20        -e 's/^/  
178a0 22 2f 27 20 2d 65 20 27 73 2f 24 2f 5c 5c 6e 22  "/' -e 's/$/\\n"
178b0 2f 27 0a 09 20 20 20 20 65 63 68 6f 20 22 3b 22  /'..    echo ";"
178c0 0a 0a 09 20 20 20 20 63 61 74 20 3c 3c 45 4f 46  ...    cat <<EOF
178d0 0a 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 4d 41  .const char * MA
178e0 47 49 43 5f 45 58 45 20 3d 20 22 24 6d 61 67 69  GIC_EXE = "$magi
178f0 63 5f 65 78 65 22 3b 0a 63 6f 6e 73 74 20 63 68  c_exe";.const ch
17900 61 72 20 2a 20 4c 49 42 5f 50 41 54 48 5f 56 41  ar * LIB_PATH_VA
17910 52 4e 41 4d 45 20 3d 20 22 24 73 68 6c 69 62 70  RNAME = "$shlibp
17920 61 74 68 5f 76 61 72 22 3b 0a 45 4f 46 0a 0a 09  ath_var";.EOF...
17930 20 20 20 20 69 66 20 74 65 73 74 20 22 24 73 68      if test "$sh
17940 6c 69 62 70 61 74 68 5f 6f 76 65 72 72 69 64 65  libpath_override
17950 73 5f 72 75 6e 70 61 74 68 22 20 3d 20 79 65 73  s_runpath" = yes
17960 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24 73 68   && test -n "$sh
17970 6c 69 62 70 61 74 68 5f 76 61 72 22 20 26 26 20  libpath_var" && 
17980 74 65 73 74 20 2d 6e 20 22 24 74 65 6d 70 5f 72  test -n "$temp_r
17990 70 61 74 68 22 3b 20 74 68 65 6e 0a 20 20 20 20  path"; then.    
179a0 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f 74            func_t
179b0 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 20  o_host_pathlist 
179c0 22 24 74 65 6d 70 5f 72 70 61 74 68 22 0a 09 20  "$temp_rpath".. 
179d0 20 20 20 20 20 63 61 74 20 3c 3c 45 4f 46 0a 63       cat <<EOF.c
179e0 6f 6e 73 74 20 63 68 61 72 20 2a 20 4c 49 42 5f  onst char * LIB_
179f0 50 41 54 48 5f 56 41 4c 55 45 20 20 20 3d 20 22  PATH_VALUE   = "
17a00 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61  $func_to_host_pa
17a10 74 68 6c 69 73 74 5f 72 65 73 75 6c 74 22 3b 0a  thlist_result";.
17a20 45 4f 46 0a 09 20 20 20 20 65 6c 73 65 0a 09 20  EOF..    else.. 
17a30 20 20 20 20 20 63 61 74 20 3c 3c 22 45 4f 46 22       cat <<"EOF"
17a40 0a 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 4c 49  .const char * LI
17a50 42 5f 50 41 54 48 5f 56 41 4c 55 45 20 20 20 3d  B_PATH_VALUE   =
17a60 20 22 22 3b 0a 45 4f 46 0a 09 20 20 20 20 66 69   "";.EOF..    fi
17a70 0a 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 2d  ...    if test -
17a80 6e 20 22 24 64 6c 6c 73 65 61 72 63 68 70 61 74  n "$dllsearchpat
17a90 68 22 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 20  h"; then.       
17aa0 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68         func_to_h
17ab0 6f 73 74 5f 70 61 74 68 6c 69 73 74 20 22 24 64  ost_pathlist "$d
17ac0 6c 6c 73 65 61 72 63 68 70 61 74 68 3a 22 0a 09  llsearchpath:"..
17ad0 20 20 20 20 20 20 63 61 74 20 3c 3c 45 4f 46 0a        cat <<EOF.
17ae0 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 45 58 45  const char * EXE
17af0 5f 50 41 54 48 5f 56 41 52 4e 41 4d 45 20 3d 20  _PATH_VARNAME = 
17b00 22 50 41 54 48 22 3b 0a 63 6f 6e 73 74 20 63 68  "PATH";.const ch
17b10 61 72 20 2a 20 45 58 45 5f 50 41 54 48 5f 56 41  ar * EXE_PATH_VA
17b20 4c 55 45 20 20 20 3d 20 22 24 66 75 6e 63 5f 74  LUE   = "$func_t
17b30 6f 5f 68 6f 73 74 5f 70 61 74 68 6c 69 73 74 5f  o_host_pathlist_
17b40 72 65 73 75 6c 74 22 3b 0a 45 4f 46 0a 09 20 20  result";.EOF..  
17b50 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 63 61    else..      ca
17b60 74 20 3c 3c 22 45 4f 46 22 0a 63 6f 6e 73 74 20  t <<"EOF".const 
17b70 63 68 61 72 20 2a 20 45 58 45 5f 50 41 54 48 5f  char * EXE_PATH_
17b80 56 41 52 4e 41 4d 45 20 3d 20 22 22 3b 0a 63 6f  VARNAME = "";.co
17b90 6e 73 74 20 63 68 61 72 20 2a 20 45 58 45 5f 50  nst char * EXE_P
17ba0 41 54 48 5f 56 41 4c 55 45 20 20 20 3d 20 22 22  ATH_VALUE   = ""
17bb0 3b 0a 45 4f 46 0a 09 20 20 20 20 66 69 0a 0a 09  ;.EOF..    fi...
17bc0 20 20 20 20 69 66 20 74 65 73 74 20 22 24 66 61      if test "$fa
17bd0 73 74 5f 69 6e 73 74 61 6c 6c 22 20 3d 20 79 65  st_install" = ye
17be0 73 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63  s; then..      c
17bf0 61 74 20 3c 3c 45 4f 46 0a 63 6f 6e 73 74 20 63  at <<EOF.const c
17c00 68 61 72 20 2a 20 54 41 52 47 45 54 5f 50 52 4f  har * TARGET_PRO
17c10 47 52 41 4d 5f 4e 41 4d 45 20 3d 20 22 6c 74 2d  GRAM_NAME = "lt-
17c20 24 6f 75 74 70 75 74 6e 61 6d 65 22 3b 20 2f 2a  $outputname"; /*
17c30 20 68 6f 70 65 66 75 6c 6c 79 2c 20 6e 6f 20 2e   hopefully, no .
17c40 65 78 65 20 2a 2f 0a 45 4f 46 0a 09 20 20 20 20  exe */.EOF..    
17c50 65 6c 73 65 0a 09 20 20 20 20 20 20 63 61 74 20  else..      cat 
17c60 3c 3c 45 4f 46 0a 63 6f 6e 73 74 20 63 68 61 72  <<EOF.const char
17c70 20 2a 20 54 41 52 47 45 54 5f 50 52 4f 47 52 41   * TARGET_PROGRA
17c80 4d 5f 4e 41 4d 45 20 3d 20 22 24 6f 75 74 70 75  M_NAME = "$outpu
17c90 74 6e 61 6d 65 22 3b 20 2f 2a 20 68 6f 70 65 66  tname"; /* hopef
17ca0 75 6c 6c 79 2c 20 6e 6f 20 2e 65 78 65 20 2a 2f  ully, no .exe */
17cb0 0a 45 4f 46 0a 09 20 20 20 20 66 69 0a 0a 0a 09  .EOF..    fi....
17cc0 20 20 20 20 63 61 74 20 3c 3c 22 45 4f 46 22 0a      cat <<"EOF".
17cd0 0a 23 64 65 66 69 6e 65 20 4c 54 57 52 41 50 50  .#define LTWRAPP
17ce0 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58  ER_OPTION_PREFIX
17cf0 20 20 20 20 20 20 20 20 20 22 2d 2d 6c 74 2d 22           "--lt-"
17d00 0a 23 64 65 66 69 6e 65 20 4c 54 57 52 41 50 50  .#define LTWRAPP
17d10 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58  ER_OPTION_PREFIX
17d20 5f 4c 45 4e 47 54 48 20 20 35 0a 0a 73 74 61 74  _LENGTH  5..stat
17d30 69 63 20 63 6f 6e 73 74 20 73 69 7a 65 5f 74 20  ic const size_t 
17d40 6f 70 74 5f 70 72 65 66 69 78 5f 6c 65 6e 20 20  opt_prefix_len  
17d50 20 20 20 20 20 20 20 3d 20 4c 54 57 52 41 50 50         = LTWRAPP
17d60 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58  ER_OPTION_PREFIX
17d70 5f 4c 45 4e 47 54 48 3b 0a 73 74 61 74 69 63 20  _LENGTH;.static 
17d80 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 74 77 72  const char *ltwr
17d90 61 70 70 65 72 5f 6f 70 74 69 6f 6e 5f 70 72 65  apper_option_pre
17da0 66 69 78 20 3d 20 4c 54 57 52 41 50 50 45 52 5f  fix = LTWRAPPER_
17db0 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58 3b 0a 0a  OPTION_PREFIX;..
17dc0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61  static const cha
17dd0 72 20 2a 64 75 6d 70 73 63 72 69 70 74 5f 6f 70  r *dumpscript_op
17de0 74 20 20 20 20 20 20 20 3d 20 4c 54 57 52 41 50  t       = LTWRAP
17df0 50 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49  PER_OPTION_PREFI
17e00 58 20 22 64 75 6d 70 2d 73 63 72 69 70 74 22 3b  X "dump-script";
17e10 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73  ..static const s
17e20 69 7a 65 5f 74 20 65 6e 76 5f 73 65 74 5f 6f 70  ize_t env_set_op
17e30 74 5f 6c 65 6e 20 20 20 20 20 3d 20 4c 54 57 52  t_len     = LTWR
17e40 41 50 50 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45  APPER_OPTION_PRE
17e50 46 49 58 5f 4c 45 4e 47 54 48 20 2b 20 37 3b 0a  FIX_LENGTH + 7;.
17e60 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61  static const cha
17e70 72 20 2a 65 6e 76 5f 73 65 74 5f 6f 70 74 20 20  r *env_set_opt  
17e80 20 20 20 20 20 20 20 20 3d 20 4c 54 57 52 41 50          = LTWRAP
17e90 50 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49  PER_OPTION_PREFI
17ea0 58 20 22 65 6e 76 2d 73 65 74 22 3b 0a 20 20 2f  X "env-set";.  /
17eb0 2a 20 61 72 67 75 6d 65 6e 74 20 69 73 20 70 75  * argument is pu
17ec0 74 65 6e 76 2d 73 74 79 6c 65 20 22 66 6f 6f 3d  tenv-style "foo=
17ed0 62 61 72 22 2c 20 76 61 6c 75 65 20 6f 66 20 66  bar", value of f
17ee0 6f 6f 20 69 73 20 73 65 74 20 74 6f 20 62 61 72  oo is set to bar
17ef0 20 2a 2f 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73   */..static cons
17f00 74 20 73 69 7a 65 5f 74 20 65 6e 76 5f 70 72 65  t size_t env_pre
17f10 70 65 6e 64 5f 6f 70 74 5f 6c 65 6e 20 3d 20 4c  pend_opt_len = L
17f20 54 57 52 41 50 50 45 52 5f 4f 50 54 49 4f 4e 5f  TWRAPPER_OPTION_
17f30 50 52 45 46 49 58 5f 4c 45 4e 47 54 48 20 2b 20  PREFIX_LENGTH + 
17f40 31 31 3b 0a 73 74 61 74 69 63 20 63 6f 6e 73 74  11;.static const
17f50 20 63 68 61 72 20 2a 65 6e 76 5f 70 72 65 70 65   char *env_prepe
17f60 6e 64 5f 6f 70 74 20 20 20 20 20 20 3d 20 4c 54  nd_opt      = LT
17f70 57 52 41 50 50 45 52 5f 4f 50 54 49 4f 4e 5f 50  WRAPPER_OPTION_P
17f80 52 45 46 49 58 20 22 65 6e 76 2d 70 72 65 70 65  REFIX "env-prepe
17f90 6e 64 22 3b 0a 20 20 2f 2a 20 61 72 67 75 6d 65  nd";.  /* argume
17fa0 6e 74 20 69 73 20 70 75 74 65 6e 76 2d 73 74 79  nt is putenv-sty
17fb0 6c 65 20 22 66 6f 6f 3d 62 61 72 22 2c 20 6e 65  le "foo=bar", ne
17fc0 77 20 76 61 6c 75 65 20 6f 66 20 66 6f 6f 20 69  w value of foo i
17fd0 73 20 62 61 72 24 7b 66 6f 6f 7d 20 2a 2f 0a 0a  s bar${foo} */..
17fe0 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 69 7a  static const siz
17ff0 65 5f 74 20 65 6e 76 5f 61 70 70 65 6e 64 5f 6f  e_t env_append_o
18000 70 74 5f 6c 65 6e 20 20 3d 20 4c 54 57 52 41 50  pt_len  = LTWRAP
18010 50 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49  PER_OPTION_PREFI
18020 58 5f 4c 45 4e 47 54 48 20 2b 20 31 30 3b 0a 73  X_LENGTH + 10;.s
18030 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72  tatic const char
18040 20 2a 65 6e 76 5f 61 70 70 65 6e 64 5f 6f 70 74   *env_append_opt
18050 20 20 20 20 20 20 20 3d 20 4c 54 57 52 41 50 50         = LTWRAPP
18060 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58  ER_OPTION_PREFIX
18070 20 22 65 6e 76 2d 61 70 70 65 6e 64 22 3b 0a 20   "env-append";. 
18080 20 2f 2a 20 61 72 67 75 6d 65 6e 74 20 69 73 20   /* argument is 
18090 70 75 74 65 6e 76 2d 73 74 79 6c 65 20 22 66 6f  putenv-style "fo
180a0 6f 3d 62 61 72 22 2c 20 6e 65 77 20 76 61 6c 75  o=bar", new valu
180b0 65 20 6f 66 20 66 6f 6f 20 69 73 20 24 7b 66 6f  e of foo is ${fo
180c0 6f 7d 62 61 72 20 2a 2f 0a 0a 69 6e 74 0a 6d 61  o}bar */..int.ma
180d0 69 6e 20 28 69 6e 74 20 61 72 67 63 2c 20 63 68  in (int argc, ch
180e0 61 72 20 2a 61 72 67 76 5b 5d 29 0a 7b 0a 20 20  ar *argv[]).{.  
180f0 63 68 61 72 20 2a 2a 6e 65 77 61 72 67 7a 3b 0a  char **newargz;.
18100 20 20 69 6e 74 20 20 6e 65 77 61 72 67 63 3b 0a    int  newargc;.
18110 20 20 63 68 61 72 20 2a 74 6d 70 5f 70 61 74 68    char *tmp_path
18120 73 70 65 63 3b 0a 20 20 63 68 61 72 20 2a 61 63  spec;.  char *ac
18130 74 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 70 61  tual_cwrapper_pa
18140 74 68 3b 0a 20 20 63 68 61 72 20 2a 61 63 74 75  th;.  char *actu
18150 61 6c 5f 63 77 72 61 70 70 65 72 5f 6e 61 6d 65  al_cwrapper_name
18160 3b 0a 20 20 63 68 61 72 20 2a 74 61 72 67 65 74  ;.  char *target
18170 5f 6e 61 6d 65 3b 0a 20 20 63 68 61 72 20 2a 6c  _name;.  char *l
18180 74 5f 61 72 67 76 5f 7a 65 72 6f 3b 0a 20 20 69  t_argv_zero;.  i
18190 6e 74 70 74 72 5f 74 20 72 76 61 6c 20 3d 20 31  ntptr_t rval = 1
181a0 32 37 3b 0a 0a 20 20 69 6e 74 20 69 3b 0a 0a 20  27;..  int i;.. 
181b0 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 20 3d 20   program_name = 
181c0 28 63 68 61 72 20 2a 29 20 78 73 74 72 64 75 70  (char *) xstrdup
181d0 20 28 62 61 73 65 5f 6e 61 6d 65 20 28 61 72 67   (base_name (arg
181e0 76 5b 30 5d 29 29 3b 0a 20 20 4c 54 57 52 41 50  v[0]));.  LTWRAP
181f0 50 45 52 5f 44 45 42 55 47 50 52 49 4e 54 46 20  PER_DEBUGPRINTF 
18200 28 28 22 28 6d 61 69 6e 29 20 61 72 67 76 5b 30  (("(main) argv[0
18210 5d 20 20 20 20 20 20 3a 20 25 73 5c 6e 22 2c 20  ]      : %s\n", 
18220 61 72 67 76 5b 30 5d 29 29 3b 0a 20 20 4c 54 57  argv[0]));.  LTW
18230 52 41 50 50 45 52 5f 44 45 42 55 47 50 52 49 4e  RAPPER_DEBUGPRIN
18240 54 46 20 28 28 22 28 6d 61 69 6e 29 20 70 72 6f  TF (("(main) pro
18250 67 72 61 6d 5f 6e 61 6d 65 20 3a 20 25 73 5c 6e  gram_name : %s\n
18260 22 2c 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 29  ", program_name)
18270 29 3b 0a 0a 20 20 2f 2a 20 76 65 72 79 20 73 69  );..  /* very si
18280 6d 70 6c 65 20 61 72 67 20 70 61 72 73 69 6e 67  mple arg parsing
18290 3b 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20  ; don't want to 
182a0 72 65 6c 79 20 6f 6e 20 67 65 74 6f 70 74 20 2a  rely on getopt *
182b0 2f 0a 20 20 66 6f 72 20 28 69 20 3d 20 31 3b 20  /.  for (i = 1; 
182c0 69 20 3c 20 61 72 67 63 3b 20 69 2b 2b 29 0a 20  i < argc; i++). 
182d0 20 20 20 7b 0a 20 20 20 20 20 20 69 66 20 28 73     {.      if (s
182e0 74 72 63 6d 70 20 28 61 72 67 76 5b 69 5d 2c 20  trcmp (argv[i], 
182f0 64 75 6d 70 73 63 72 69 70 74 5f 6f 70 74 29 20  dumpscript_opt) 
18300 3d 3d 20 30 29 0a 09 7b 0a 45 4f 46 0a 09 20 20  == 0)..{.EOF..  
18310 20 20 63 61 73 65 20 22 24 68 6f 73 74 22 20 69    case "$host" i
18320 6e 0a 09 20 20 20 20 20 20 2a 6d 69 6e 67 77 2a  n..      *mingw*
18330 20 7c 20 2a 63 79 67 77 69 6e 2a 20 29 0a 09 09   | *cygwin* )...
18340 23 20 6d 61 6b 65 20 73 74 64 6f 75 74 20 75 73  # make stdout us
18350 65 20 22 75 6e 69 78 22 20 6c 69 6e 65 20 65 6e  e "unix" line en
18360 64 69 6e 67 73 0a 09 09 65 63 68 6f 20 22 20 20  dings...echo "  
18370 20 20 20 20 20 20 20 20 73 65 74 6d 6f 64 65 28          setmode(
18380 31 2c 5f 4f 5f 42 49 4e 41 52 59 29 3b 22 0a 09  1,_O_BINARY);"..
18390 09 3b 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a  .;;..      esac.
183a0 0a 09 20 20 20 20 63 61 74 20 3c 3c 22 45 4f 46  ..    cat <<"EOF
183b0 22 0a 09 20 20 70 72 69 6e 74 66 20 28 22 25 73  "..  printf ("%s
183c0 22 2c 20 73 63 72 69 70 74 5f 74 65 78 74 5f 70  ", script_text_p
183d0 61 72 74 31 29 3b 0a 09 20 20 70 72 69 6e 74 66  art1);..  printf
183e0 20 28 22 25 73 22 2c 20 73 63 72 69 70 74 5f 74   ("%s", script_t
183f0 65 78 74 5f 70 61 72 74 32 29 3b 0a 09 20 20 72  ext_part2);..  r
18400 65 74 75 72 6e 20 30 3b 0a 09 7d 0a 20 20 20 20  eturn 0;..}.    
18410 7d 0a 0a 20 20 6e 65 77 61 72 67 7a 20 3d 20 58  }..  newargz = X
18420 4d 41 4c 4c 4f 43 20 28 63 68 61 72 20 2a 2c 20  MALLOC (char *, 
18430 61 72 67 63 20 2b 20 31 29 3b 0a 20 20 74 6d 70  argc + 1);.  tmp
18440 5f 70 61 74 68 73 70 65 63 20 3d 20 66 69 6e 64  _pathspec = find
18450 5f 65 78 65 63 75 74 61 62 6c 65 20 28 61 72 67  _executable (arg
18460 76 5b 30 5d 29 3b 0a 20 20 69 66 20 28 74 6d 70  v[0]);.  if (tmp
18470 5f 70 61 74 68 73 70 65 63 20 3d 3d 20 4e 55 4c  _pathspec == NUL
18480 4c 29 0a 20 20 20 20 6c 74 5f 66 61 74 61 6c 20  L).    lt_fatal 
18490 28 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20  ("Couldn't find 
184a0 25 73 22 2c 20 61 72 67 76 5b 30 5d 29 3b 0a 20  %s", argv[0]);. 
184b0 20 4c 54 57 52 41 50 50 45 52 5f 44 45 42 55 47   LTWRAPPER_DEBUG
184c0 50 52 49 4e 54 46 20 28 28 22 28 6d 61 69 6e 29  PRINTF (("(main)
184d0 20 66 6f 75 6e 64 20 65 78 65 20 28 62 65 66 6f   found exe (befo
184e0 72 65 20 73 79 6d 6c 69 6e 6b 20 63 68 61 73 65  re symlink chase
184f0 29 20 61 74 20 3a 20 25 73 5c 6e 22 2c 0a 09 09  ) at : %s\n",...
18500 09 20 20 74 6d 70 5f 70 61 74 68 73 70 65 63 29  .  tmp_pathspec)
18510 29 3b 0a 0a 20 20 61 63 74 75 61 6c 5f 63 77 72  );..  actual_cwr
18520 61 70 70 65 72 5f 70 61 74 68 20 3d 20 63 68 61  apper_path = cha
18530 73 65 5f 73 79 6d 6c 69 6e 6b 73 20 28 74 6d 70  se_symlinks (tmp
18540 5f 70 61 74 68 73 70 65 63 29 3b 0a 20 20 4c 54  _pathspec);.  LT
18550 57 52 41 50 50 45 52 5f 44 45 42 55 47 50 52 49  WRAPPER_DEBUGPRI
18560 4e 54 46 20 28 28 22 28 6d 61 69 6e 29 20 66 6f  NTF (("(main) fo
18570 75 6e 64 20 65 78 65 20 28 61 66 74 65 72 20 73  und exe (after s
18580 79 6d 6c 69 6e 6b 20 63 68 61 73 65 29 20 61 74  ymlink chase) at
18590 20 3a 20 25 73 5c 6e 22 2c 0a 09 09 09 20 20 61   : %s\n",....  a
185a0 63 74 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 70  ctual_cwrapper_p
185b0 61 74 68 29 29 3b 0a 20 20 58 46 52 45 45 20 28  ath));.  XFREE (
185c0 74 6d 70 5f 70 61 74 68 73 70 65 63 29 3b 0a 0a  tmp_pathspec);..
185d0 20 20 61 63 74 75 61 6c 5f 63 77 72 61 70 70 65    actual_cwrappe
185e0 72 5f 6e 61 6d 65 20 3d 20 78 73 74 72 64 75 70  r_name = xstrdup
185f0 28 20 62 61 73 65 5f 6e 61 6d 65 20 28 61 63 74  ( base_name (act
18600 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 70 61 74  ual_cwrapper_pat
18610 68 29 29 3b 0a 20 20 73 74 72 65 6e 64 7a 61 70  h));.  strendzap
18620 20 28 61 63 74 75 61 6c 5f 63 77 72 61 70 70 65   (actual_cwrappe
18630 72 5f 70 61 74 68 2c 20 61 63 74 75 61 6c 5f 63  r_path, actual_c
18640 77 72 61 70 70 65 72 5f 6e 61 6d 65 29 3b 0a 0a  wrapper_name);..
18650 20 20 2f 2a 20 77 72 61 70 70 65 72 20 6e 61 6d    /* wrapper nam
18660 65 20 74 72 61 6e 73 66 6f 72 6d 73 20 2a 2f 0a  e transforms */.
18670 20 20 73 74 72 65 6e 64 7a 61 70 20 28 61 63 74    strendzap (act
18680 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 6e 61 6d  ual_cwrapper_nam
18690 65 2c 20 22 2e 65 78 65 22 29 3b 0a 20 20 74 6d  e, ".exe");.  tm
186a0 70 5f 70 61 74 68 73 70 65 63 20 3d 20 6c 74 5f  p_pathspec = lt_
186b0 65 78 74 65 6e 64 5f 73 74 72 20 28 61 63 74 75  extend_str (actu
186c0 61 6c 5f 63 77 72 61 70 70 65 72 5f 6e 61 6d 65  al_cwrapper_name
186d0 2c 20 22 2e 65 78 65 22 2c 20 31 29 3b 0a 20 20  , ".exe", 1);.  
186e0 58 46 52 45 45 20 28 61 63 74 75 61 6c 5f 63 77  XFREE (actual_cw
186f0 72 61 70 70 65 72 5f 6e 61 6d 65 29 3b 0a 20 20  rapper_name);.  
18700 61 63 74 75 61 6c 5f 63 77 72 61 70 70 65 72 5f  actual_cwrapper_
18710 6e 61 6d 65 20 3d 20 74 6d 70 5f 70 61 74 68 73  name = tmp_paths
18720 70 65 63 3b 0a 20 20 74 6d 70 5f 70 61 74 68 73  pec;.  tmp_paths
18730 70 65 63 20 3d 20 30 3b 0a 0a 20 20 2f 2a 20 74  pec = 0;..  /* t
18740 61 72 67 65 74 5f 6e 61 6d 65 20 74 72 61 6e 73  arget_name trans
18750 66 6f 72 6d 73 20 2d 2d 20 75 73 65 20 61 63 74  forms -- use act
18760 75 61 6c 20 74 61 72 67 65 74 20 70 72 6f 67 72  ual target progr
18770 61 6d 20 6e 61 6d 65 3b 20 6d 69 67 68 74 20 68  am name; might h
18780 61 76 65 20 6c 74 2d 20 70 72 65 66 69 78 20 2a  ave lt- prefix *
18790 2f 0a 20 20 74 61 72 67 65 74 5f 6e 61 6d 65 20  /.  target_name 
187a0 3d 20 78 73 74 72 64 75 70 20 28 62 61 73 65 5f  = xstrdup (base_
187b0 6e 61 6d 65 20 28 54 41 52 47 45 54 5f 50 52 4f  name (TARGET_PRO
187c0 47 52 41 4d 5f 4e 41 4d 45 29 29 3b 0a 20 20 73  GRAM_NAME));.  s
187d0 74 72 65 6e 64 7a 61 70 20 28 74 61 72 67 65 74  trendzap (target
187e0 5f 6e 61 6d 65 2c 20 22 2e 65 78 65 22 29 3b 0a  _name, ".exe");.
187f0 20 20 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d    tmp_pathspec =
18800 20 6c 74 5f 65 78 74 65 6e 64 5f 73 74 72 20 28   lt_extend_str (
18810 74 61 72 67 65 74 5f 6e 61 6d 65 2c 20 22 2e 65  target_name, ".e
18820 78 65 22 2c 20 31 29 3b 0a 20 20 58 46 52 45 45  xe", 1);.  XFREE
18830 20 28 74 61 72 67 65 74 5f 6e 61 6d 65 29 3b 0a   (target_name);.
18840 20 20 74 61 72 67 65 74 5f 6e 61 6d 65 20 3d 20    target_name = 
18850 74 6d 70 5f 70 61 74 68 73 70 65 63 3b 0a 20 20  tmp_pathspec;.  
18860 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d 20 30  tmp_pathspec = 0
18870 3b 0a 0a 20 20 4c 54 57 52 41 50 50 45 52 5f 44  ;..  LTWRAPPER_D
18880 45 42 55 47 50 52 49 4e 54 46 20 28 28 22 28 6d  EBUGPRINTF (("(m
18890 61 69 6e 29 20 6c 69 62 74 6f 6f 6c 20 74 61 72  ain) libtool tar
188a0 67 65 74 20 6e 61 6d 65 3a 20 25 73 5c 6e 22 2c  get name: %s\n",
188b0 0a 09 09 09 20 20 74 61 72 67 65 74 5f 6e 61 6d  ....  target_nam
188c0 65 29 29 3b 0a 45 4f 46 0a 0a 09 20 20 20 20 63  e));.EOF...    c
188d0 61 74 20 3c 3c 45 4f 46 0a 20 20 6e 65 77 61 72  at <<EOF.  newar
188e0 67 7a 5b 30 5d 20 3d 0a 20 20 20 20 58 4d 41 4c  gz[0] =.    XMAL
188f0 4c 4f 43 20 28 63 68 61 72 2c 20 28 73 74 72 6c  LOC (char, (strl
18900 65 6e 20 28 61 63 74 75 61 6c 5f 63 77 72 61 70  en (actual_cwrap
18910 70 65 72 5f 70 61 74 68 29 20 2b 0a 09 09 20 20  per_path) +...  
18920 20 20 73 74 72 6c 65 6e 20 28 22 24 6f 62 6a 64    strlen ("$objd
18930 69 72 22 29 20 2b 20 31 20 2b 20 73 74 72 6c 65  ir") + 1 + strle
18940 6e 20 28 61 63 74 75 61 6c 5f 63 77 72 61 70 70  n (actual_cwrapp
18950 65 72 5f 6e 61 6d 65 29 20 2b 20 31 29 29 3b 0a  er_name) + 1));.
18960 20 20 73 74 72 63 70 79 20 28 6e 65 77 61 72 67    strcpy (newarg
18970 7a 5b 30 5d 2c 20 61 63 74 75 61 6c 5f 63 77 72  z[0], actual_cwr
18980 61 70 70 65 72 5f 70 61 74 68 29 3b 0a 20 20 73  apper_path);.  s
18990 74 72 63 61 74 20 28 6e 65 77 61 72 67 7a 5b 30  trcat (newargz[0
189a0 5d 2c 20 22 24 6f 62 6a 64 69 72 22 29 3b 0a 20  ], "$objdir");. 
189b0 20 73 74 72 63 61 74 20 28 6e 65 77 61 72 67 7a   strcat (newargz
189c0 5b 30 5d 2c 20 22 2f 22 29 3b 0a 45 4f 46 0a 0a  [0], "/");.EOF..
189d0 09 20 20 20 20 63 61 74 20 3c 3c 22 45 4f 46 22  .    cat <<"EOF"
189e0 0a 20 20 2f 2a 20 73 74 6f 70 20 68 65 72 65 2c  .  /* stop here,
189f0 20 61 6e 64 20 63 6f 70 79 20 73 6f 20 77 65 20   and copy so we 
18a00 64 6f 6e 27 74 20 68 61 76 65 20 74 6f 20 64 6f  don't have to do
18a10 20 74 68 69 73 20 74 77 69 63 65 20 2a 2f 0a 20   this twice */. 
18a20 20 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d 20   tmp_pathspec = 
18a30 78 73 74 72 64 75 70 20 28 6e 65 77 61 72 67 7a  xstrdup (newargz
18a40 5b 30 5d 29 3b 0a 0a 20 20 2f 2a 20 64 6f 20 4e  [0]);..  /* do N
18a50 4f 54 20 77 61 6e 74 20 74 68 65 20 6c 74 2d 20  OT want the lt- 
18a60 70 72 65 66 69 78 20 68 65 72 65 2c 20 73 6f 20  prefix here, so 
18a70 75 73 65 20 61 63 74 75 61 6c 5f 63 77 72 61 70  use actual_cwrap
18a80 70 65 72 5f 6e 61 6d 65 20 2a 2f 0a 20 20 73 74  per_name */.  st
18a90 72 63 61 74 20 28 6e 65 77 61 72 67 7a 5b 30 5d  rcat (newargz[0]
18aa0 2c 20 61 63 74 75 61 6c 5f 63 77 72 61 70 70 65  , actual_cwrappe
18ab0 72 5f 6e 61 6d 65 29 3b 0a 0a 20 20 2f 2a 20 44  r_name);..  /* D
18ac0 4f 20 77 61 6e 74 20 74 68 65 20 6c 74 2d 20 70  O want the lt- p
18ad0 72 65 66 69 78 20 68 65 72 65 20 69 66 20 69 74  refix here if it
18ae0 20 65 78 69 73 74 73 2c 20 73 6f 20 75 73 65 20   exists, so use 
18af0 74 61 72 67 65 74 5f 6e 61 6d 65 20 2a 2f 0a 20  target_name */. 
18b00 20 6c 74 5f 61 72 67 76 5f 7a 65 72 6f 20 3d 20   lt_argv_zero = 
18b10 6c 74 5f 65 78 74 65 6e 64 5f 73 74 72 20 28 74  lt_extend_str (t
18b20 6d 70 5f 70 61 74 68 73 70 65 63 2c 20 74 61 72  mp_pathspec, tar
18b30 67 65 74 5f 6e 61 6d 65 2c 20 31 29 3b 0a 20 20  get_name, 1);.  
18b40 58 46 52 45 45 20 28 74 6d 70 5f 70 61 74 68 73  XFREE (tmp_paths
18b50 70 65 63 29 3b 0a 20 20 74 6d 70 5f 70 61 74 68  pec);.  tmp_path
18b60 73 70 65 63 20 3d 20 4e 55 4c 4c 3b 0a 45 4f 46  spec = NULL;.EOF
18b70 0a 0a 09 20 20 20 20 63 61 73 65 20 24 68 6f 73  ...    case $hos
18b80 74 5f 6f 73 20 69 6e 0a 09 20 20 20 20 20 20 6d  t_os in..      m
18b90 69 6e 67 77 2a 29 0a 09 20 20 20 20 63 61 74 20  ingw*)..    cat 
18ba0 3c 3c 22 45 4f 46 22 0a 20 20 7b 0a 20 20 20 20  <<"EOF".  {.    
18bb0 63 68 61 72 2a 20 70 3b 0a 20 20 20 20 77 68 69  char* p;.    whi
18bc0 6c 65 20 28 28 70 20 3d 20 73 74 72 63 68 72 20  le ((p = strchr 
18bd0 28 6e 65 77 61 72 67 7a 5b 30 5d 2c 20 27 5c 5c  (newargz[0], '\\
18be0 27 29 29 20 21 3d 20 4e 55 4c 4c 29 0a 20 20 20  ')) != NULL).   
18bf0 20 20 20 7b 0a 09 2a 70 20 3d 20 27 2f 27 3b 0a     {..*p = '/';.
18c00 20 20 20 20 20 20 7d 0a 20 20 20 20 77 68 69 6c        }.    whil
18c10 65 20 28 28 70 20 3d 20 73 74 72 63 68 72 20 28  e ((p = strchr (
18c20 6c 74 5f 61 72 67 76 5f 7a 65 72 6f 2c 20 27 5c  lt_argv_zero, '\
18c30 5c 27 29 29 20 21 3d 20 4e 55 4c 4c 29 0a 20 20  \')) != NULL).  
18c40 20 20 20 20 7b 0a 09 2a 70 20 3d 20 27 2f 27 3b      {..*p = '/';
18c50 0a 20 20 20 20 20 20 7d 0a 20 20 7d 0a 45 4f 46  .      }.  }.EOF
18c60 0a 09 20 20 20 20 3b 3b 0a 09 20 20 20 20 65 73  ..    ;;..    es
18c70 61 63 0a 0a 09 20 20 20 20 63 61 74 20 3c 3c 22  ac...    cat <<"
18c80 45 4f 46 22 0a 20 20 58 46 52 45 45 20 28 74 61  EOF".  XFREE (ta
18c90 72 67 65 74 5f 6e 61 6d 65 29 3b 0a 20 20 58 46  rget_name);.  XF
18ca0 52 45 45 20 28 61 63 74 75 61 6c 5f 63 77 72 61  REE (actual_cwra
18cb0 70 70 65 72 5f 70 61 74 68 29 3b 0a 20 20 58 46  pper_path);.  XF
18cc0 52 45 45 20 28 61 63 74 75 61 6c 5f 63 77 72 61  REE (actual_cwra
18cd0 70 70 65 72 5f 6e 61 6d 65 29 3b 0a 0a 20 20 6c  pper_name);..  l
18ce0 74 5f 73 65 74 65 6e 76 20 28 22 42 49 4e 5f 53  t_setenv ("BIN_S
18cf0 48 22 2c 20 22 78 70 67 34 22 29 3b 20 2f 2a 20  H", "xpg4"); /* 
18d00 66 6f 72 20 54 72 75 36 34 20 2a 2f 0a 20 20 6c  for Tru64 */.  l
18d10 74 5f 73 65 74 65 6e 76 20 28 22 44 55 41 4c 43  t_setenv ("DUALC
18d20 41 53 45 22 2c 20 22 31 22 29 3b 20 20 2f 2a 20  ASE", "1");  /* 
18d30 66 6f 72 20 4d 53 4b 20 73 68 20 2a 2f 0a 20 20  for MSK sh */.  
18d40 6c 74 5f 75 70 64 61 74 65 5f 6c 69 62 5f 70 61  lt_update_lib_pa
18d50 74 68 20 28 4c 49 42 5f 50 41 54 48 5f 56 41 52  th (LIB_PATH_VAR
18d60 4e 41 4d 45 2c 20 4c 49 42 5f 50 41 54 48 5f 56  NAME, LIB_PATH_V
18d70 41 4c 55 45 29 3b 0a 20 20 6c 74 5f 75 70 64 61  ALUE);.  lt_upda
18d80 74 65 5f 65 78 65 5f 70 61 74 68 20 28 45 58 45  te_exe_path (EXE
18d90 5f 50 41 54 48 5f 56 41 52 4e 41 4d 45 2c 20 45  _PATH_VARNAME, E
18da0 58 45 5f 50 41 54 48 5f 56 41 4c 55 45 29 3b 0a  XE_PATH_VALUE);.
18db0 0a 20 20 6e 65 77 61 72 67 63 3d 30 3b 0a 20 20  .  newargc=0;.  
18dc0 66 6f 72 20 28 69 20 3d 20 31 3b 20 69 20 3c 20  for (i = 1; i < 
18dd0 61 72 67 63 3b 20 69 2b 2b 29 0a 20 20 20 20 7b  argc; i++).    {
18de0 0a 20 20 20 20 20 20 69 66 20 28 73 74 72 6e 63  .      if (strnc
18df0 6d 70 20 28 61 72 67 76 5b 69 5d 2c 20 65 6e 76  mp (argv[i], env
18e00 5f 73 65 74 5f 6f 70 74 2c 20 65 6e 76 5f 73 65  _set_opt, env_se
18e10 74 5f 6f 70 74 5f 6c 65 6e 29 20 3d 3d 20 30 29  t_opt_len) == 0)
18e20 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20  .        {.     
18e30 20 20 20 20 20 69 66 20 28 61 72 67 76 5b 69 5d       if (argv[i]
18e40 5b 65 6e 76 5f 73 65 74 5f 6f 70 74 5f 6c 65 6e  [env_set_opt_len
18e50 5d 20 3d 3d 20 27 3d 27 29 0a 20 20 20 20 20 20  ] == '=').      
18e60 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
18e70 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72        const char
18e80 20 2a 70 20 3d 20 61 72 67 76 5b 69 5d 20 2b 20   *p = argv[i] + 
18e90 65 6e 76 5f 73 65 74 5f 6f 70 74 5f 6c 65 6e 20  env_set_opt_len 
18ea0 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20  + 1;.           
18eb0 20 20 20 6c 74 5f 6f 70 74 5f 70 72 6f 63 65 73     lt_opt_proces
18ec0 73 5f 65 6e 76 5f 73 65 74 20 28 70 29 3b 0a 20  s_env_set (p);. 
18ed0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20             }.   
18ee0 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28         else if (
18ef0 61 72 67 76 5b 69 5d 5b 65 6e 76 5f 73 65 74 5f  argv[i][env_set_
18f00 6f 70 74 5f 6c 65 6e 5d 20 3d 3d 20 27 5c 30 27  opt_len] == '\0'
18f10 20 26 26 20 69 20 2b 20 31 20 3c 20 61 72 67 63   && i + 1 < argc
18f20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a  ).            {.
18f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 74                lt
18f40 5f 6f 70 74 5f 70 72 6f 63 65 73 73 5f 65 6e 76  _opt_process_env
18f50 5f 73 65 74 20 28 61 72 67 76 5b 2b 2b 69 5d 29  _set (argv[++i])
18f60 3b 20 2f 2a 20 64 6f 6e 27 74 20 63 6f 70 79 20  ; /* don't copy 
18f70 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d  */.            }
18f80 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a  .          else.
18f90 20 20 20 20 20 20 20 20 20 20 20 20 6c 74 5f 66              lt_f
18fa0 61 74 61 6c 20 28 22 25 73 20 6d 69 73 73 69 6e  atal ("%s missin
18fb0 67 20 72 65 71 75 69 72 65 64 20 61 72 67 75 6d  g required argum
18fc0 65 6e 74 22 2c 20 65 6e 76 5f 73 65 74 5f 6f 70  ent", env_set_op
18fd0 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 63 6f  t);.          co
18fe0 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20  ntinue;.        
18ff0 7d 0a 20 20 20 20 20 20 69 66 20 28 73 74 72 6e  }.      if (strn
19000 63 6d 70 20 28 61 72 67 76 5b 69 5d 2c 20 65 6e  cmp (argv[i], en
19010 76 5f 70 72 65 70 65 6e 64 5f 6f 70 74 2c 20 65  v_prepend_opt, e
19020 6e 76 5f 70 72 65 70 65 6e 64 5f 6f 70 74 5f 6c  nv_prepend_opt_l
19030 65 6e 29 20 3d 3d 20 30 29 0a 20 20 20 20 20 20  en) == 0).      
19040 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 69 66    {.          if
19050 20 28 61 72 67 76 5b 69 5d 5b 65 6e 76 5f 70 72   (argv[i][env_pr
19060 65 70 65 6e 64 5f 6f 70 74 5f 6c 65 6e 5d 20 3d  epend_opt_len] =
19070 3d 20 27 3d 27 29 0a 20 20 20 20 20 20 20 20 20  = '=').         
19080 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20     {.           
19090 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 70     const char *p
190a0 20 3d 20 61 72 67 76 5b 69 5d 20 2b 20 65 6e 76   = argv[i] + env
190b0 5f 70 72 65 70 65 6e 64 5f 6f 70 74 5f 6c 65 6e  _prepend_opt_len
190c0 20 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20   + 1;.          
190d0 20 20 20 20 6c 74 5f 6f 70 74 5f 70 72 6f 63 65      lt_opt_proce
190e0 73 73 5f 65 6e 76 5f 70 72 65 70 65 6e 64 20 28  ss_env_prepend (
190f0 70 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  p);.            
19100 7d 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65  }.          else
19110 20 69 66 20 28 61 72 67 76 5b 69 5d 5b 65 6e 76   if (argv[i][env
19120 5f 70 72 65 70 65 6e 64 5f 6f 70 74 5f 6c 65 6e  _prepend_opt_len
19130 5d 20 3d 3d 20 27 5c 30 27 20 26 26 20 69 20 2b  ] == '\0' && i +
19140 20 31 20 3c 20 61 72 67 63 29 0a 20 20 20 20 20   1 < argc).     
19150 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20         {.       
19160 20 20 20 20 20 20 20 6c 74 5f 6f 70 74 5f 70 72         lt_opt_pr
19170 6f 63 65 73 73 5f 65 6e 76 5f 70 72 65 70 65 6e  ocess_env_prepen
19180 64 20 28 61 72 67 76 5b 2b 2b 69 5d 29 3b 20 2f  d (argv[++i]); /
19190 2a 20 64 6f 6e 27 74 20 63 6f 70 79 20 2a 2f 0a  * don't copy */.
191a0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20              }.  
191b0 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20          else.   
191c0 20 20 20 20 20 20 20 20 20 6c 74 5f 66 61 74 61           lt_fata
191d0 6c 20 28 22 25 73 20 6d 69 73 73 69 6e 67 20 72  l ("%s missing r
191e0 65 71 75 69 72 65 64 20 61 72 67 75 6d 65 6e 74  equired argument
191f0 22 2c 20 65 6e 76 5f 70 72 65 70 65 6e 64 5f 6f  ", env_prepend_o
19200 70 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 63  pt);.          c
19210 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20  ontinue;.       
19220 20 7d 0a 20 20 20 20 20 20 69 66 20 28 73 74 72   }.      if (str
19230 6e 63 6d 70 20 28 61 72 67 76 5b 69 5d 2c 20 65  ncmp (argv[i], e
19240 6e 76 5f 61 70 70 65 6e 64 5f 6f 70 74 2c 20 65  nv_append_opt, e
19250 6e 76 5f 61 70 70 65 6e 64 5f 6f 70 74 5f 6c 65  nv_append_opt_le
19260 6e 29 20 3d 3d 20 30 29 0a 20 20 20 20 20 20 20  n) == 0).       
19270 20 7b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20   {.          if 
19280 28 61 72 67 76 5b 69 5d 5b 65 6e 76 5f 61 70 70  (argv[i][env_app
19290 65 6e 64 5f 6f 70 74 5f 6c 65 6e 5d 20 3d 3d 20  end_opt_len] == 
192a0 27 3d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20  '=').           
192b0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
192c0 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 20 3d   const char *p =
192d0 20 61 72 67 76 5b 69 5d 20 2b 20 65 6e 76 5f 61   argv[i] + env_a
192e0 70 70 65 6e 64 5f 6f 70 74 5f 6c 65 6e 20 2b 20  ppend_opt_len + 
192f0 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  1;.             
19300 20 6c 74 5f 6f 70 74 5f 70 72 6f 63 65 73 73 5f   lt_opt_process_
19310 65 6e 76 5f 61 70 70 65 6e 64 20 28 70 29 3b 0a  env_append (p);.
19320 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20              }.  
19330 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20          else if 
19340 28 61 72 67 76 5b 69 5d 5b 65 6e 76 5f 61 70 70  (argv[i][env_app
19350 65 6e 64 5f 6f 70 74 5f 6c 65 6e 5d 20 3d 3d 20  end_opt_len] == 
19360 27 5c 30 27 20 26 26 20 69 20 2b 20 31 20 3c 20  '\0' && i + 1 < 
19370 61 72 67 63 29 0a 20 20 20 20 20 20 20 20 20 20  argc).          
19380 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20    {.            
19390 20 20 6c 74 5f 6f 70 74 5f 70 72 6f 63 65 73 73    lt_opt_process
193a0 5f 65 6e 76 5f 61 70 70 65 6e 64 20 28 61 72 67  _env_append (arg
193b0 76 5b 2b 2b 69 5d 29 3b 20 2f 2a 20 64 6f 6e 27  v[++i]); /* don'
193c0 74 20 63 6f 70 79 20 2a 2f 0a 20 20 20 20 20 20  t copy */.      
193d0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20        }.        
193e0 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20    else.         
193f0 20 20 20 6c 74 5f 66 61 74 61 6c 20 28 22 25 73     lt_fatal ("%s
19400 20 6d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65   missing require
19410 64 20 61 72 67 75 6d 65 6e 74 22 2c 20 65 6e 76  d argument", env
19420 5f 61 70 70 65 6e 64 5f 6f 70 74 29 3b 0a 20 20  _append_opt);.  
19430 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65          continue
19440 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20  ;.        }.    
19450 20 20 69 66 20 28 73 74 72 6e 63 6d 70 20 28 61    if (strncmp (a
19460 72 67 76 5b 69 5d 2c 20 6c 74 77 72 61 70 70 65  rgv[i], ltwrappe
19470 72 5f 6f 70 74 69 6f 6e 5f 70 72 65 66 69 78 2c  r_option_prefix,
19480 20 6f 70 74 5f 70 72 65 66 69 78 5f 6c 65 6e 29   opt_prefix_len)
19490 20 3d 3d 20 30 29 0a 20 20 20 20 20 20 20 20 7b   == 0).        {
194a0 0a 20 20 20 20 20 20 20 20 20 20 2f 2a 20 68 6f  .          /* ho
194b0 77 65 76 65 72 2c 20 69 66 20 74 68 65 72 65 20  wever, if there 
194c0 69 73 20 61 6e 20 6f 70 74 69 6f 6e 20 69 6e 20  is an option in 
194d0 74 68 65 20 4c 54 57 52 41 50 50 45 52 5f 4f 50  the LTWRAPPER_OP
194e0 54 49 4f 4e 5f 50 52 45 46 49 58 0a 20 20 20 20  TION_PREFIX.    
194f0 20 20 20 20 20 20 20 20 20 6e 61 6d 65 73 70 61           namespa
19500 63 65 2c 20 62 75 74 20 69 74 20 69 73 20 6e 6f  ce, but it is no
19510 74 20 6f 6e 65 20 6f 66 20 74 68 65 20 6f 6e 65  t one of the one
19520 73 20 77 65 20 6b 6e 6f 77 20 61 62 6f 75 74 20  s we know about 
19530 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20  and.            
19540 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 64 65   have already de
19550 61 6c 74 20 77 69 74 68 2c 20 61 62 6f 76 65 20  alt with, above 
19560 28 69 6e 6c 75 64 69 6e 67 20 64 75 6d 70 2d 73  (inluding dump-s
19570 63 72 69 70 74 29 2c 20 74 68 65 6e 0a 20 20 20  cript), then.   
19580 20 20 20 20 20 20 20 20 20 20 72 65 70 6f 72 74            report
19590 20 61 6e 20 65 72 72 6f 72 2e 20 4f 74 68 65 72   an error. Other
195a0 77 69 73 65 2c 20 74 61 72 67 65 74 73 20 6d 69  wise, targets mi
195b0 67 68 74 20 62 65 67 69 6e 20 74 6f 20 62 65 6c  ght begin to bel
195c0 69 65 76 65 0a 20 20 20 20 20 20 20 20 20 20 20  ieve.           
195d0 20 20 74 68 65 79 20 61 72 65 20 61 6c 6c 6f 77    they are allow
195e0 65 64 20 74 6f 20 75 73 65 20 6f 70 74 69 6f 6e  ed to use option
195f0 73 20 69 6e 20 74 68 65 20 4c 54 57 52 41 50 50  s in the LTWRAPP
19600 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58  ER_OPTION_PREFIX
19610 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61  .             na
19620 6d 65 73 70 61 63 65 2e 20 54 68 65 20 66 69 72  mespace. The fir
19630 73 74 20 74 69 6d 65 20 61 6e 79 20 75 73 65 72  st time any user
19640 20 63 6f 6d 70 6c 61 69 6e 73 20 61 62 6f 75 74   complains about
19650 20 74 68 69 73 2c 20 77 65 27 6c 6c 0a 20 20 20   this, we'll.   
19660 20 20 20 20 20 20 20 20 20 20 6e 65 65 64 20 74            need t
19670 6f 20 6d 61 6b 65 20 4c 54 57 52 41 50 50 45 52  o make LTWRAPPER
19680 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58 20 61  _OPTION_PREFIX a
19690 20 63 6f 6e 66 69 67 75 72 65 2d 74 69 6d 65 20   configure-time 
196a0 6f 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20  option.         
196b0 20 20 20 20 6f 72 20 61 20 63 6f 6e 66 69 67 75      or a configu
196c0 72 65 2e 61 63 2d 73 65 74 74 61 62 6c 65 20 76  re.ac-settable v
196d0 61 6c 75 65 2e 0a 20 20 20 20 20 20 20 20 20 20  alue..          
196e0 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 6c 74   */.          lt
196f0 5f 66 61 74 61 6c 20 28 22 55 6e 72 65 63 6f 67  _fatal ("Unrecog
19700 6e 69 7a 65 64 20 6f 70 74 69 6f 6e 20 69 6e 20  nized option in 
19710 25 73 20 6e 61 6d 65 73 70 61 63 65 3a 20 27 25  %s namespace: '%
19720 73 27 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20  s'",.           
19730 20 20 20 20 20 20 20 20 20 6c 74 77 72 61 70 70           ltwrapp
19740 65 72 5f 6f 70 74 69 6f 6e 5f 70 72 65 66 69 78  er_option_prefix
19750 2c 20 61 72 67 76 5b 69 5d 29 3b 0a 20 20 20 20  , argv[i]);.    
19760 20 20 20 20 7d 0a 20 20 20 20 20 20 2f 2a 20 6f      }.      /* o
19770 74 68 65 72 77 69 73 65 20 2e 2e 2e 20 2a 2f 0a  therwise ... */.
19780 20 20 20 20 20 20 6e 65 77 61 72 67 7a 5b 2b 2b        newargz[++
19790 6e 65 77 61 72 67 63 5d 20 3d 20 78 73 74 72 64  newargc] = xstrd
197a0 75 70 20 28 61 72 67 76 5b 69 5d 29 3b 0a 20 20  up (argv[i]);.  
197b0 20 20 7d 0a 20 20 6e 65 77 61 72 67 7a 5b 2b 2b    }.  newargz[++
197c0 6e 65 77 61 72 67 63 5d 20 3d 20 4e 55 4c 4c 3b  newargc] = NULL;
197d0 0a 0a 20 20 4c 54 57 52 41 50 50 45 52 5f 44 45  ..  LTWRAPPER_DE
197e0 42 55 47 50 52 49 4e 54 46 20 20 20 20 20 28 28  BUGPRINTF     ((
197f0 22 28 6d 61 69 6e 29 20 6c 74 5f 61 72 67 76 5f  "(main) lt_argv_
19800 7a 65 72 6f 20 3a 20 25 73 5c 6e 22 2c 20 28 6c  zero : %s\n", (l
19810 74 5f 61 72 67 76 5f 7a 65 72 6f 20 3f 20 6c 74  t_argv_zero ? lt
19820 5f 61 72 67 76 5f 7a 65 72 6f 20 3a 20 22 3c 4e  _argv_zero : "<N
19830 55 4c 4c 3e 22 29 29 29 3b 0a 20 20 66 6f 72 20  ULL>")));.  for 
19840 28 69 20 3d 20 30 3b 20 69 20 3c 20 6e 65 77 61  (i = 0; i < newa
19850 72 67 63 3b 20 69 2b 2b 29 0a 20 20 20 20 7b 0a  rgc; i++).    {.
19860 20 20 20 20 20 20 4c 54 57 52 41 50 50 45 52 5f        LTWRAPPER_
19870 44 45 42 55 47 50 52 49 4e 54 46 20 28 28 22 28  DEBUGPRINTF (("(
19880 6d 61 69 6e 29 20 6e 65 77 61 72 67 7a 5b 25 64  main) newargz[%d
19890 5d 20 20 20 3a 20 25 73 5c 6e 22 2c 20 69 2c 20  ]   : %s\n", i, 
198a0 28 6e 65 77 61 72 67 7a 5b 69 5d 20 3f 20 6e 65  (newargz[i] ? ne
198b0 77 61 72 67 7a 5b 69 5d 20 3a 20 22 3c 4e 55 4c  wargz[i] : "<NUL
198c0 4c 3e 22 29 29 29 3b 0a 20 20 20 20 7d 0a 0a 45  L>")));.    }..E
198d0 4f 46 0a 0a 09 20 20 20 20 63 61 73 65 20 24 68  OF...    case $h
198e0 6f 73 74 5f 6f 73 20 69 6e 0a 09 20 20 20 20 20  ost_os in..     
198f0 20 6d 69 6e 67 77 2a 29 0a 09 09 63 61 74 20 3c   mingw*)...cat <
19900 3c 22 45 4f 46 22 0a 20 20 2f 2a 20 65 78 65 63  <"EOF".  /* exec
19910 76 20 64 6f 65 73 6e 27 74 20 61 63 74 75 61 6c  v doesn't actual
19920 6c 79 20 77 6f 72 6b 20 6f 6e 20 6d 69 6e 67 77  ly work on mingw
19930 20 61 73 20 65 78 70 65 63 74 65 64 20 6f 6e 20   as expected on 
19940 75 6e 69 78 20 2a 2f 0a 20 20 72 76 61 6c 20 3d  unix */.  rval =
19950 20 5f 73 70 61 77 6e 76 20 28 5f 50 5f 57 41 49   _spawnv (_P_WAI
19960 54 2c 20 6c 74 5f 61 72 67 76 5f 7a 65 72 6f 2c  T, lt_argv_zero,
19970 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 63   (const char * c
19980 6f 6e 73 74 20 2a 29 20 6e 65 77 61 72 67 7a 29  onst *) newargz)
19990 3b 0a 20 20 69 66 20 28 72 76 61 6c 20 3d 3d 20  ;.  if (rval == 
199a0 2d 31 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20  -1).    {.      
199b0 2f 2a 20 66 61 69 6c 65 64 20 74 6f 20 73 74 61  /* failed to sta
199c0 72 74 20 70 72 6f 63 65 73 73 20 2a 2f 0a 20 20  rt process */.  
199d0 20 20 20 20 4c 54 57 52 41 50 50 45 52 5f 44 45      LTWRAPPER_DE
199e0 42 55 47 50 52 49 4e 54 46 20 28 28 22 28 6d 61  BUGPRINTF (("(ma
199f0 69 6e 29 20 66 61 69 6c 65 64 20 74 6f 20 6c 61  in) failed to la
19a00 75 6e 63 68 20 74 61 72 67 65 74 20 5c 22 25 73  unch target \"%s
19a10 5c 22 3a 20 65 72 72 6e 6f 20 3d 20 25 64 5c 6e  \": errno = %d\n
19a20 22 2c 20 6c 74 5f 61 72 67 76 5f 7a 65 72 6f 2c  ", lt_argv_zero,
19a30 20 65 72 72 6e 6f 29 29 3b 0a 20 20 20 20 20 20   errno));.      
19a40 72 65 74 75 72 6e 20 31 32 37 3b 0a 20 20 20 20  return 127;.    
19a50 7d 0a 20 20 72 65 74 75 72 6e 20 72 76 61 6c 3b  }.  return rval;
19a60 0a 45 4f 46 0a 09 09 3b 3b 0a 09 20 20 20 20 20  .EOF...;;..     
19a70 20 2a 29 0a 09 09 63 61 74 20 3c 3c 22 45 4f 46   *)...cat <<"EOF
19a80 22 0a 20 20 65 78 65 63 76 20 28 6c 74 5f 61 72  ".  execv (lt_ar
19a90 67 76 5f 7a 65 72 6f 2c 20 6e 65 77 61 72 67 7a  gv_zero, newargz
19aa0 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 76 61 6c  );.  return rval
19ab0 3b 20 2f 2a 20 3d 31 32 37 2c 20 62 75 74 20 61  ; /* =127, but a
19ac0 76 6f 69 64 73 20 75 6e 75 73 65 64 20 76 61 72  voids unused var
19ad0 69 61 62 6c 65 20 77 61 72 6e 69 6e 67 20 2a 2f  iable warning */
19ae0 0a 45 4f 46 0a 09 09 3b 3b 0a 09 20 20 20 20 65  .EOF...;;..    e
19af0 73 61 63 0a 0a 09 20 20 20 20 63 61 74 20 3c 3c  sac...    cat <<
19b00 22 45 4f 46 22 0a 7d 0a 0a 76 6f 69 64 20 2a 0a  "EOF".}..void *.
19b10 78 6d 61 6c 6c 6f 63 20 28 73 69 7a 65 5f 74 20  xmalloc (size_t 
19b20 6e 75 6d 29 0a 7b 0a 20 20 76 6f 69 64 20 2a 70  num).{.  void *p
19b30 20 3d 20 28 76 6f 69 64 20 2a 29 20 6d 61 6c 6c   = (void *) mall
19b40 6f 63 20 28 6e 75 6d 29 3b 0a 20 20 69 66 20 28  oc (num);.  if (
19b50 21 70 29 0a 20 20 20 20 6c 74 5f 66 61 74 61 6c  !p).    lt_fatal
19b60 20 28 22 4d 65 6d 6f 72 79 20 65 78 68 61 75 73   ("Memory exhaus
19b70 74 65 64 22 29 3b 0a 0a 20 20 72 65 74 75 72 6e  ted");..  return
19b80 20 70 3b 0a 7d 0a 0a 63 68 61 72 20 2a 0a 78 73   p;.}..char *.xs
19b90 74 72 64 75 70 20 28 63 6f 6e 73 74 20 63 68 61  trdup (const cha
19ba0 72 20 2a 73 74 72 69 6e 67 29 0a 7b 0a 20 20 72  r *string).{.  r
19bb0 65 74 75 72 6e 20 73 74 72 69 6e 67 20 3f 20 73  eturn string ? s
19bc0 74 72 63 70 79 20 28 28 63 68 61 72 20 2a 29 20  trcpy ((char *) 
19bd0 78 6d 61 6c 6c 6f 63 20 28 73 74 72 6c 65 6e 20  xmalloc (strlen 
19be0 28 73 74 72 69 6e 67 29 20 2b 20 31 29 2c 0a 09  (string) + 1),..
19bf0 09 09 20 20 73 74 72 69 6e 67 29 20 3a 20 4e 55  ..  string) : NU
19c00 4c 4c 3b 0a 7d 0a 0a 63 6f 6e 73 74 20 63 68 61  LL;.}..const cha
19c10 72 20 2a 0a 62 61 73 65 5f 6e 61 6d 65 20 28 63  r *.base_name (c
19c20 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 29  onst char *name)
19c30 0a 7b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20  .{.  const char 
19c40 2a 62 61 73 65 3b 0a 0a 23 69 66 20 64 65 66 69  *base;..#if defi
19c50 6e 65 64 20 28 48 41 56 45 5f 44 4f 53 5f 42 41  ned (HAVE_DOS_BA
19c60 53 45 44 5f 46 49 4c 45 5f 53 59 53 54 45 4d 29  SED_FILE_SYSTEM)
19c70 0a 20 20 2f 2a 20 53 6b 69 70 20 6f 76 65 72 20  .  /* Skip over 
19c80 74 68 65 20 64 69 73 6b 20 6e 61 6d 65 20 69 6e  the disk name in
19c90 20 4d 53 44 4f 53 20 70 61 74 68 6e 61 6d 65 73   MSDOS pathnames
19ca0 2e 20 2a 2f 0a 20 20 69 66 20 28 69 73 61 6c 70  . */.  if (isalp
19cb0 68 61 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68  ha ((unsigned ch
19cc0 61 72 29 20 6e 61 6d 65 5b 30 5d 29 20 26 26 20  ar) name[0]) && 
19cd0 6e 61 6d 65 5b 31 5d 20 3d 3d 20 27 3a 27 29 0a  name[1] == ':').
19ce0 20 20 20 20 6e 61 6d 65 20 2b 3d 20 32 3b 0a 23      name += 2;.#
19cf0 65 6e 64 69 66 0a 0a 20 20 66 6f 72 20 28 62 61  endif..  for (ba
19d00 73 65 20 3d 20 6e 61 6d 65 3b 20 2a 6e 61 6d 65  se = name; *name
19d10 3b 20 6e 61 6d 65 2b 2b 29 0a 20 20 20 20 69 66  ; name++).    if
19d20 20 28 49 53 5f 44 49 52 5f 53 45 50 41 52 41 54   (IS_DIR_SEPARAT
19d30 4f 52 20 28 2a 6e 61 6d 65 29 29 0a 20 20 20 20  OR (*name)).    
19d40 20 20 62 61 73 65 20 3d 20 6e 61 6d 65 20 2b 20    base = name + 
19d50 31 3b 0a 20 20 72 65 74 75 72 6e 20 62 61 73 65  1;.  return base
19d60 3b 0a 7d 0a 0a 69 6e 74 0a 63 68 65 63 6b 5f 65  ;.}..int.check_e
19d70 78 65 63 75 74 61 62 6c 65 20 28 63 6f 6e 73 74  xecutable (const
19d80 20 63 68 61 72 20 2a 70 61 74 68 29 0a 7b 0a 20   char *path).{. 
19d90 20 73 74 72 75 63 74 20 73 74 61 74 20 73 74 3b   struct stat st;
19da0 0a 0a 20 20 4c 54 57 52 41 50 50 45 52 5f 44 45  ..  LTWRAPPER_DE
19db0 42 55 47 50 52 49 4e 54 46 20 28 28 22 28 63 68  BUGPRINTF (("(ch
19dc0 65 63 6b 5f 65 78 65 63 75 74 61 62 6c 65 29 20  eck_executable) 
19dd0 20 3a 20 25 73 5c 6e 22 2c 0a 09 09 09 20 20 70   : %s\n",....  p
19de0 61 74 68 20 3f 20 28 2a 70 61 74 68 20 3f 20 70  ath ? (*path ? p
19df0 61 74 68 20 3a 20 22 45 4d 50 54 59 21 22 29 20  ath : "EMPTY!") 
19e00 3a 20 22 4e 55 4c 4c 21 22 29 29 3b 0a 20 20 69  : "NULL!"));.  i
19e10 66 20 28 28 21 70 61 74 68 29 20 7c 7c 20 28 21  f ((!path) || (!
19e20 2a 70 61 74 68 29 29 0a 20 20 20 20 72 65 74 75  *path)).    retu
19e30 72 6e 20 30 3b 0a 0a 20 20 69 66 20 28 28 73 74  rn 0;..  if ((st
19e40 61 74 20 28 70 61 74 68 2c 20 26 73 74 29 20 3e  at (path, &st) >
19e50 3d 20 30 29 0a 20 20 20 20 20 20 26 26 20 28 73  = 0).      && (s
19e60 74 2e 73 74 5f 6d 6f 64 65 20 26 20 28 53 5f 49  t.st_mode & (S_I
19e70 58 55 53 52 20 7c 20 53 5f 49 58 47 52 50 20 7c  XUSR | S_IXGRP |
19e80 20 53 5f 49 58 4f 54 48 29 29 29 0a 20 20 20 20   S_IXOTH))).    
19e90 72 65 74 75 72 6e 20 31 3b 0a 20 20 65 6c 73 65  return 1;.  else
19ea0 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d  .    return 0;.}
19eb0 0a 0a 69 6e 74 0a 6d 61 6b 65 5f 65 78 65 63 75  ..int.make_execu
19ec0 74 61 62 6c 65 20 28 63 6f 6e 73 74 20 63 68 61  table (const cha
19ed0 72 20 2a 70 61 74 68 29 0a 7b 0a 20 20 69 6e 74  r *path).{.  int
19ee0 20 72 76 61 6c 20 3d 20 30 3b 0a 20 20 73 74 72   rval = 0;.  str
19ef0 75 63 74 20 73 74 61 74 20 73 74 3b 0a 0a 20 20  uct stat st;..  
19f00 4c 54 57 52 41 50 50 45 52 5f 44 45 42 55 47 50  LTWRAPPER_DEBUGP
19f10 52 49 4e 54 46 20 28 28 22 28 6d 61 6b 65 5f 65  RINTF (("(make_e
19f20 78 65 63 75 74 61 62 6c 65 29 20 20 20 3a 20 25  xecutable)   : %
19f30 73 5c 6e 22 2c 0a 09 09 09 20 20 70 61 74 68 20  s\n",....  path 
19f40 3f 20 28 2a 70 61 74 68 20 3f 20 70 61 74 68 20  ? (*path ? path 
19f50 3a 20 22 45 4d 50 54 59 21 22 29 20 3a 20 22 4e  : "EMPTY!") : "N
19f60 55 4c 4c 21 22 29 29 3b 0a 20 20 69 66 20 28 28  ULL!"));.  if ((
19f70 21 70 61 74 68 29 20 7c 7c 20 28 21 2a 70 61 74  !path) || (!*pat
19f80 68 29 29 0a 20 20 20 20 72 65 74 75 72 6e 20 30  h)).    return 0
19f90 3b 0a 0a 20 20 69 66 20 28 73 74 61 74 20 28 70  ;..  if (stat (p
19fa0 61 74 68 2c 20 26 73 74 29 20 3e 3d 20 30 29 0a  ath, &st) >= 0).
19fb0 20 20 20 20 7b 0a 20 20 20 20 20 20 72 76 61 6c      {.      rval
19fc0 20 3d 20 63 68 6d 6f 64 20 28 70 61 74 68 2c 20   = chmod (path, 
19fd0 73 74 2e 73 74 5f 6d 6f 64 65 20 7c 20 53 5f 49  st.st_mode | S_I
19fe0 58 4f 54 48 20 7c 20 53 5f 49 58 47 52 50 20 7c  XOTH | S_IXGRP |
19ff0 20 53 5f 49 58 55 53 52 29 3b 0a 20 20 20 20 7d   S_IXUSR);.    }
1a000 0a 20 20 72 65 74 75 72 6e 20 72 76 61 6c 3b 0a  .  return rval;.
1a010 7d 0a 0a 2f 2a 20 53 65 61 72 63 68 65 73 20 66  }../* Searches f
1a020 6f 72 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68  or the full path
1a030 20 6f 66 20 74 68 65 20 77 72 61 70 70 65 72 2e   of the wrapper.
1a040 20 20 52 65 74 75 72 6e 73 0a 20 20 20 6e 65 77    Returns.   new
1a050 6c 79 20 61 6c 6c 6f 63 61 74 65 64 20 66 75 6c  ly allocated ful
1a060 6c 20 70 61 74 68 20 6e 61 6d 65 20 69 66 20 66  l path name if f
1a070 6f 75 6e 64 2c 20 4e 55 4c 4c 20 6f 74 68 65 72  ound, NULL other
1a080 77 69 73 65 0a 20 20 20 44 6f 65 73 20 6e 6f 74  wise.   Does not
1a090 20 63 68 61 73 65 20 73 79 6d 6c 69 6e 6b 73 2c   chase symlinks,
1a0a0 20 65 76 65 6e 20 6f 6e 20 70 6c 61 74 66 6f 72   even on platfor
1a0b0 6d 73 20 74 68 61 74 20 73 75 70 70 6f 72 74 20  ms that support 
1a0c0 74 68 65 6d 2e 0a 2a 2f 0a 63 68 61 72 20 2a 0a  them..*/.char *.
1a0d0 66 69 6e 64 5f 65 78 65 63 75 74 61 62 6c 65 20  find_executable 
1a0e0 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 77 72 61  (const char *wra
1a0f0 70 70 65 72 29 0a 7b 0a 20 20 69 6e 74 20 68 61  pper).{.  int ha
1a100 73 5f 73 6c 61 73 68 20 3d 20 30 3b 0a 20 20 63  s_slash = 0;.  c
1a110 6f 6e 73 74 20 63 68 61 72 20 2a 70 3b 0a 20 20  onst char *p;.  
1a120 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 5f 6e 65  const char *p_ne
1a130 78 74 3b 0a 20 20 2f 2a 20 73 74 61 74 69 63 20  xt;.  /* static 
1a140 62 75 66 66 65 72 20 66 6f 72 20 67 65 74 63 77  buffer for getcw
1a150 64 20 2a 2f 0a 20 20 63 68 61 72 20 74 6d 70 5b  d */.  char tmp[
1a160 4c 54 5f 50 41 54 48 4d 41 58 20 2b 20 31 5d 3b  LT_PATHMAX + 1];
1a170 0a 20 20 69 6e 74 20 74 6d 70 5f 6c 65 6e 3b 0a  .  int tmp_len;.
1a180 20 20 63 68 61 72 20 2a 63 6f 6e 63 61 74 5f 6e    char *concat_n
1a190 61 6d 65 3b 0a 0a 20 20 4c 54 57 52 41 50 50 45  ame;..  LTWRAPPE
1a1a0 52 5f 44 45 42 55 47 50 52 49 4e 54 46 20 28 28  R_DEBUGPRINTF ((
1a1b0 22 28 66 69 6e 64 5f 65 78 65 63 75 74 61 62 6c  "(find_executabl
1a1c0 65 29 20 20 20 3a 20 25 73 5c 6e 22 2c 0a 09 09  e)   : %s\n",...
1a1d0 09 20 20 77 72 61 70 70 65 72 20 3f 20 28 2a 77  .  wrapper ? (*w
1a1e0 72 61 70 70 65 72 20 3f 20 77 72 61 70 70 65 72  rapper ? wrapper
1a1f0 20 3a 20 22 45 4d 50 54 59 21 22 29 20 3a 20 22   : "EMPTY!") : "
1a200 4e 55 4c 4c 21 22 29 29 3b 0a 0a 20 20 69 66 20  NULL!"));..  if 
1a210 28 28 77 72 61 70 70 65 72 20 3d 3d 20 4e 55 4c  ((wrapper == NUL
1a220 4c 29 20 7c 7c 20 28 2a 77 72 61 70 70 65 72 20  L) || (*wrapper 
1a230 3d 3d 20 27 5c 30 27 29 29 0a 20 20 20 20 72 65  == '\0')).    re
1a240 74 75 72 6e 20 4e 55 4c 4c 3b 0a 0a 20 20 2f 2a  turn NULL;..  /*
1a250 20 41 62 73 6f 6c 75 74 65 20 70 61 74 68 3f 20   Absolute path? 
1a260 2a 2f 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28  */.#if defined (
1a270 48 41 56 45 5f 44 4f 53 5f 42 41 53 45 44 5f 46  HAVE_DOS_BASED_F
1a280 49 4c 45 5f 53 59 53 54 45 4d 29 0a 20 20 69 66  ILE_SYSTEM).  if
1a290 20 28 69 73 61 6c 70 68 61 20 28 28 75 6e 73 69   (isalpha ((unsi
1a2a0 67 6e 65 64 20 63 68 61 72 29 20 77 72 61 70 70  gned char) wrapp
1a2b0 65 72 5b 30 5d 29 20 26 26 20 77 72 61 70 70 65  er[0]) && wrappe
1a2c0 72 5b 31 5d 20 3d 3d 20 27 3a 27 29 0a 20 20 20  r[1] == ':').   
1a2d0 20 7b 0a 20 20 20 20 20 20 63 6f 6e 63 61 74 5f   {.      concat_
1a2e0 6e 61 6d 65 20 3d 20 78 73 74 72 64 75 70 20 28  name = xstrdup (
1a2f0 77 72 61 70 70 65 72 29 3b 0a 20 20 20 20 20 20  wrapper);.      
1a300 69 66 20 28 63 68 65 63 6b 5f 65 78 65 63 75 74  if (check_execut
1a310 61 62 6c 65 20 28 63 6f 6e 63 61 74 5f 6e 61 6d  able (concat_nam
1a320 65 29 29 0a 09 72 65 74 75 72 6e 20 63 6f 6e 63  e))..return conc
1a330 61 74 5f 6e 61 6d 65 3b 0a 20 20 20 20 20 20 58  at_name;.      X
1a340 46 52 45 45 20 28 63 6f 6e 63 61 74 5f 6e 61 6d  FREE (concat_nam
1a350 65 29 3b 0a 20 20 20 20 7d 0a 20 20 65 6c 73 65  e);.    }.  else
1a360 0a 20 20 20 20 7b 0a 23 65 6e 64 69 66 0a 20 20  .    {.#endif.  
1a370 20 20 20 20 69 66 20 28 49 53 5f 44 49 52 5f 53      if (IS_DIR_S
1a380 45 50 41 52 41 54 4f 52 20 28 77 72 61 70 70 65  EPARATOR (wrappe
1a390 72 5b 30 5d 29 29 0a 09 7b 0a 09 20 20 63 6f 6e  r[0]))..{..  con
1a3a0 63 61 74 5f 6e 61 6d 65 20 3d 20 78 73 74 72 64  cat_name = xstrd
1a3b0 75 70 20 28 77 72 61 70 70 65 72 29 3b 0a 09 20  up (wrapper);.. 
1a3c0 20 69 66 20 28 63 68 65 63 6b 5f 65 78 65 63 75   if (check_execu
1a3d0 74 61 62 6c 65 20 28 63 6f 6e 63 61 74 5f 6e 61  table (concat_na
1a3e0 6d 65 29 29 0a 09 20 20 20 20 72 65 74 75 72 6e  me))..    return
1a3f0 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 3b 0a 09 20   concat_name;.. 
1a400 20 58 46 52 45 45 20 28 63 6f 6e 63 61 74 5f 6e   XFREE (concat_n
1a410 61 6d 65 29 3b 0a 09 7d 0a 23 69 66 20 64 65 66  ame);..}.#if def
1a420 69 6e 65 64 20 28 48 41 56 45 5f 44 4f 53 5f 42  ined (HAVE_DOS_B
1a430 41 53 45 44 5f 46 49 4c 45 5f 53 59 53 54 45 4d  ASED_FILE_SYSTEM
1a440 29 0a 20 20 20 20 7d 0a 23 65 6e 64 69 66 0a 0a  ).    }.#endif..
1a450 20 20 66 6f 72 20 28 70 20 3d 20 77 72 61 70 70    for (p = wrapp
1a460 65 72 3b 20 2a 70 3b 20 70 2b 2b 29 0a 20 20 20  er; *p; p++).   
1a470 20 69 66 20 28 2a 70 20 3d 3d 20 27 2f 27 29 0a   if (*p == '/').
1a480 20 20 20 20 20 20 7b 0a 09 68 61 73 5f 73 6c 61        {..has_sla
1a490 73 68 20 3d 20 31 3b 0a 09 62 72 65 61 6b 3b 0a  sh = 1;..break;.
1a4a0 20 20 20 20 20 20 7d 0a 20 20 69 66 20 28 21 68        }.  if (!h
1a4b0 61 73 5f 73 6c 61 73 68 29 0a 20 20 20 20 7b 0a  as_slash).    {.
1a4c0 20 20 20 20 20 20 2f 2a 20 6e 6f 20 73 6c 61 73        /* no slas
1a4d0 68 65 73 3b 20 73 65 61 72 63 68 20 50 41 54 48  hes; search PATH
1a4e0 20 2a 2f 0a 20 20 20 20 20 20 63 6f 6e 73 74 20   */.      const 
1a4f0 63 68 61 72 20 2a 70 61 74 68 20 3d 20 67 65 74  char *path = get
1a500 65 6e 76 20 28 22 50 41 54 48 22 29 3b 0a 20 20  env ("PATH");.  
1a510 20 20 20 20 69 66 20 28 70 61 74 68 20 21 3d 20      if (path != 
1a520 4e 55 4c 4c 29 0a 09 7b 0a 09 20 20 66 6f 72 20  NULL)..{..  for 
1a530 28 70 20 3d 20 70 61 74 68 3b 20 2a 70 3b 20 70  (p = path; *p; p
1a540 20 3d 20 70 5f 6e 65 78 74 29 0a 09 20 20 20 20   = p_next)..    
1a550 7b 0a 09 20 20 20 20 20 20 63 6f 6e 73 74 20 63  {..      const c
1a560 68 61 72 20 2a 71 3b 0a 09 20 20 20 20 20 20 73  har *q;..      s
1a570 69 7a 65 5f 74 20 70 5f 6c 65 6e 3b 0a 09 20 20  ize_t p_len;..  
1a580 20 20 20 20 66 6f 72 20 28 71 20 3d 20 70 3b 20      for (q = p; 
1a590 2a 71 3b 20 71 2b 2b 29 0a 09 09 69 66 20 28 49  *q; q++)...if (I
1a5a0 53 5f 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52  S_PATH_SEPARATOR
1a5b0 20 28 2a 71 29 29 0a 09 09 20 20 62 72 65 61 6b   (*q))...  break
1a5c0 3b 0a 09 20 20 20 20 20 20 70 5f 6c 65 6e 20 3d  ;..      p_len =
1a5d0 20 71 20 2d 20 70 3b 0a 09 20 20 20 20 20 20 70   q - p;..      p
1a5e0 5f 6e 65 78 74 20 3d 20 28 2a 71 20 3d 3d 20 27  _next = (*q == '
1a5f0 5c 30 27 20 3f 20 71 20 3a 20 71 20 2b 20 31 29  \0' ? q : q + 1)
1a600 3b 0a 09 20 20 20 20 20 20 69 66 20 28 70 5f 6c  ;..      if (p_l
1a610 65 6e 20 3d 3d 20 30 29 0a 09 09 7b 0a 09 09 20  en == 0)...{... 
1a620 20 2f 2a 20 65 6d 70 74 79 20 70 61 74 68 3a 20   /* empty path: 
1a630 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72  current director
1a640 79 20 2a 2f 0a 09 09 20 20 69 66 20 28 67 65 74  y */...  if (get
1a650 63 77 64 20 28 74 6d 70 2c 20 4c 54 5f 50 41 54  cwd (tmp, LT_PAT
1a660 48 4d 41 58 29 20 3d 3d 20 4e 55 4c 4c 29 0a 09  HMAX) == NULL)..
1a670 09 20 20 20 20 6c 74 5f 66 61 74 61 6c 20 28 22  .    lt_fatal ("
1a680 67 65 74 63 77 64 20 66 61 69 6c 65 64 22 29 3b  getcwd failed");
1a690 0a 09 09 20 20 74 6d 70 5f 6c 65 6e 20 3d 20 73  ...  tmp_len = s
1a6a0 74 72 6c 65 6e 20 28 74 6d 70 29 3b 0a 09 09 20  trlen (tmp);... 
1a6b0 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 20 3d 0a 09   concat_name =..
1a6c0 09 20 20 20 20 58 4d 41 4c 4c 4f 43 20 28 63 68  .    XMALLOC (ch
1a6d0 61 72 2c 20 74 6d 70 5f 6c 65 6e 20 2b 20 31 20  ar, tmp_len + 1 
1a6e0 2b 20 73 74 72 6c 65 6e 20 28 77 72 61 70 70 65  + strlen (wrappe
1a6f0 72 29 20 2b 20 31 29 3b 0a 09 09 20 20 6d 65 6d  r) + 1);...  mem
1a700 63 70 79 20 28 63 6f 6e 63 61 74 5f 6e 61 6d 65  cpy (concat_name
1a710 2c 20 74 6d 70 2c 20 74 6d 70 5f 6c 65 6e 29 3b  , tmp, tmp_len);
1a720 0a 09 09 20 20 63 6f 6e 63 61 74 5f 6e 61 6d 65  ...  concat_name
1a730 5b 74 6d 70 5f 6c 65 6e 5d 20 3d 20 27 2f 27 3b  [tmp_len] = '/';
1a740 0a 09 09 20 20 73 74 72 63 70 79 20 28 63 6f 6e  ...  strcpy (con
1a750 63 61 74 5f 6e 61 6d 65 20 2b 20 74 6d 70 5f 6c  cat_name + tmp_l
1a760 65 6e 20 2b 20 31 2c 20 77 72 61 70 70 65 72 29  en + 1, wrapper)
1a770 3b 0a 09 09 7d 0a 09 20 20 20 20 20 20 65 6c 73  ;...}..      els
1a780 65 0a 09 09 7b 0a 09 09 20 20 63 6f 6e 63 61 74  e...{...  concat
1a790 5f 6e 61 6d 65 20 3d 0a 09 09 20 20 20 20 58 4d  _name =...    XM
1a7a0 41 4c 4c 4f 43 20 28 63 68 61 72 2c 20 70 5f 6c  ALLOC (char, p_l
1a7b0 65 6e 20 2b 20 31 20 2b 20 73 74 72 6c 65 6e 20  en + 1 + strlen 
1a7c0 28 77 72 61 70 70 65 72 29 20 2b 20 31 29 3b 0a  (wrapper) + 1);.
1a7d0 09 09 20 20 6d 65 6d 63 70 79 20 28 63 6f 6e 63  ..  memcpy (conc
1a7e0 61 74 5f 6e 61 6d 65 2c 20 70 2c 20 70 5f 6c 65  at_name, p, p_le
1a7f0 6e 29 3b 0a 09 09 20 20 63 6f 6e 63 61 74 5f 6e  n);...  concat_n
1a800 61 6d 65 5b 70 5f 6c 65 6e 5d 20 3d 20 27 2f 27  ame[p_len] = '/'
1a810 3b 0a 09 09 20 20 73 74 72 63 70 79 20 28 63 6f  ;...  strcpy (co
1a820 6e 63 61 74 5f 6e 61 6d 65 20 2b 20 70 5f 6c 65  ncat_name + p_le
1a830 6e 20 2b 20 31 2c 20 77 72 61 70 70 65 72 29 3b  n + 1, wrapper);
1a840 0a 09 09 7d 0a 09 20 20 20 20 20 20 69 66 20 28  ...}..      if (
1a850 63 68 65 63 6b 5f 65 78 65 63 75 74 61 62 6c 65  check_executable
1a860 20 28 63 6f 6e 63 61 74 5f 6e 61 6d 65 29 29 0a   (concat_name)).
1a870 09 09 72 65 74 75 72 6e 20 63 6f 6e 63 61 74 5f  ..return concat_
1a880 6e 61 6d 65 3b 0a 09 20 20 20 20 20 20 58 46 52  name;..      XFR
1a890 45 45 20 28 63 6f 6e 63 61 74 5f 6e 61 6d 65 29  EE (concat_name)
1a8a0 3b 0a 09 20 20 20 20 7d 0a 09 7d 0a 20 20 20 20  ;..    }..}.    
1a8b0 20 20 2f 2a 20 6e 6f 74 20 66 6f 75 6e 64 20 69    /* not found i
1a8c0 6e 20 50 41 54 48 3b 20 61 73 73 75 6d 65 20 63  n PATH; assume c
1a8d0 75 72 64 69 72 20 2a 2f 0a 20 20 20 20 7d 0a 20  urdir */.    }. 
1a8e0 20 2f 2a 20 52 65 6c 61 74 69 76 65 20 70 61 74   /* Relative pat
1a8f0 68 20 7c 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e  h | not found in
1a900 20 70 61 74 68 3a 20 70 72 65 70 65 6e 64 20 63   path: prepend c
1a910 77 64 20 2a 2f 0a 20 20 69 66 20 28 67 65 74 63  wd */.  if (getc
1a920 77 64 20 28 74 6d 70 2c 20 4c 54 5f 50 41 54 48  wd (tmp, LT_PATH
1a930 4d 41 58 29 20 3d 3d 20 4e 55 4c 4c 29 0a 20 20  MAX) == NULL).  
1a940 20 20 6c 74 5f 66 61 74 61 6c 20 28 22 67 65 74    lt_fatal ("get
1a950 63 77 64 20 66 61 69 6c 65 64 22 29 3b 0a 20 20  cwd failed");.  
1a960 74 6d 70 5f 6c 65 6e 20 3d 20 73 74 72 6c 65 6e  tmp_len = strlen
1a970 20 28 74 6d 70 29 3b 0a 20 20 63 6f 6e 63 61 74   (tmp);.  concat
1a980 5f 6e 61 6d 65 20 3d 20 58 4d 41 4c 4c 4f 43 20  _name = XMALLOC 
1a990 28 63 68 61 72 2c 20 74 6d 70 5f 6c 65 6e 20 2b  (char, tmp_len +
1a9a0 20 31 20 2b 20 73 74 72 6c 65 6e 20 28 77 72 61   1 + strlen (wra
1a9b0 70 70 65 72 29 20 2b 20 31 29 3b 0a 20 20 6d 65  pper) + 1);.  me
1a9c0 6d 63 70 79 20 28 63 6f 6e 63 61 74 5f 6e 61 6d  mcpy (concat_nam
1a9d0 65 2c 20 74 6d 70 2c 20 74 6d 70 5f 6c 65 6e 29  e, tmp, tmp_len)
1a9e0 3b 0a 20 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 5b  ;.  concat_name[
1a9f0 74 6d 70 5f 6c 65 6e 5d 20 3d 20 27 2f 27 3b 0a  tmp_len] = '/';.
1aa00 20 20 73 74 72 63 70 79 20 28 63 6f 6e 63 61 74    strcpy (concat
1aa10 5f 6e 61 6d 65 20 2b 20 74 6d 70 5f 6c 65 6e 20  _name + tmp_len 
1aa20 2b 20 31 2c 20 77 72 61 70 70 65 72 29 3b 0a 0a  + 1, wrapper);..
1aa30 20 20 69 66 20 28 63 68 65 63 6b 5f 65 78 65 63    if (check_exec
1aa40 75 74 61 62 6c 65 20 28 63 6f 6e 63 61 74 5f 6e  utable (concat_n
1aa50 61 6d 65 29 29 0a 20 20 20 20 72 65 74 75 72 6e  ame)).    return
1aa60 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 3b 0a 20 20   concat_name;.  
1aa70 58 46 52 45 45 20 28 63 6f 6e 63 61 74 5f 6e 61  XFREE (concat_na
1aa80 6d 65 29 3b 0a 20 20 72 65 74 75 72 6e 20 4e 55  me);.  return NU
1aa90 4c 4c 3b 0a 7d 0a 0a 63 68 61 72 20 2a 0a 63 68  LL;.}..char *.ch
1aaa0 61 73 65 5f 73 79 6d 6c 69 6e 6b 73 20 28 63 6f  ase_symlinks (co
1aab0 6e 73 74 20 63 68 61 72 20 2a 70 61 74 68 73 70  nst char *pathsp
1aac0 65 63 29 0a 7b 0a 23 69 66 6e 64 65 66 20 53 5f  ec).{.#ifndef S_
1aad0 49 53 4c 4e 4b 0a 20 20 72 65 74 75 72 6e 20 78  ISLNK.  return x
1aae0 73 74 72 64 75 70 20 28 70 61 74 68 73 70 65 63  strdup (pathspec
1aaf0 29 3b 0a 23 65 6c 73 65 0a 20 20 63 68 61 72 20  );.#else.  char 
1ab00 62 75 66 5b 4c 54 5f 50 41 54 48 4d 41 58 5d 3b  buf[LT_PATHMAX];
1ab10 0a 20 20 73 74 72 75 63 74 20 73 74 61 74 20 73  .  struct stat s
1ab20 3b 0a 20 20 63 68 61 72 20 2a 74 6d 70 5f 70 61  ;.  char *tmp_pa
1ab30 74 68 73 70 65 63 20 3d 20 78 73 74 72 64 75 70  thspec = xstrdup
1ab40 20 28 70 61 74 68 73 70 65 63 29 3b 0a 20 20 63   (pathspec);.  c
1ab50 68 61 72 20 2a 70 3b 0a 20 20 69 6e 74 20 68 61  har *p;.  int ha
1ab60 73 5f 73 79 6d 6c 69 6e 6b 73 20 3d 20 30 3b 0a  s_symlinks = 0;.
1ab70 20 20 77 68 69 6c 65 20 28 73 74 72 6c 65 6e 20    while (strlen 
1ab80 28 74 6d 70 5f 70 61 74 68 73 70 65 63 29 20 26  (tmp_pathspec) &
1ab90 26 20 21 68 61 73 5f 73 79 6d 6c 69 6e 6b 73 29  & !has_symlinks)
1aba0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 4c 54 57  .    {.      LTW
1abb0 52 41 50 50 45 52 5f 44 45 42 55 47 50 52 49 4e  RAPPER_DEBUGPRIN
1abc0 54 46 20 28 28 22 63 68 65 63 6b 69 6e 67 20 70  TF (("checking p
1abd0 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 20 66 6f  ath component fo
1abe0 72 20 73 79 6d 6c 69 6e 6b 73 3a 20 25 73 5c 6e  r symlinks: %s\n
1abf0 22 2c 0a 09 09 09 20 20 20 20 20 20 74 6d 70 5f  ",....      tmp_
1ac00 70 61 74 68 73 70 65 63 29 29 3b 0a 20 20 20 20  pathspec));.    
1ac10 20 20 69 66 20 28 6c 73 74 61 74 20 28 74 6d 70    if (lstat (tmp
1ac20 5f 70 61 74 68 73 70 65 63 2c 20 26 73 29 20 3d  _pathspec, &s) =
1ac30 3d 20 30 29 0a 09 7b 0a 09 20 20 69 66 20 28 53  = 0)..{..  if (S
1ac40 5f 49 53 4c 4e 4b 20 28 73 2e 73 74 5f 6d 6f 64  _ISLNK (s.st_mod
1ac50 65 29 20 21 3d 20 30 29 0a 09 20 20 20 20 7b 0a  e) != 0)..    {.
1ac60 09 20 20 20 20 20 20 68 61 73 5f 73 79 6d 6c 69  .      has_symli
1ac70 6e 6b 73 20 3d 20 31 3b 0a 09 20 20 20 20 20 20  nks = 1;..      
1ac80 62 72 65 61 6b 3b 0a 09 20 20 20 20 7d 0a 0a 09  break;..    }...
1ac90 20 20 2f 2a 20 73 65 61 72 63 68 20 62 61 63 6b    /* search back
1aca0 77 61 72 64 73 20 66 6f 72 20 6c 61 73 74 20 44  wards for last D
1acb0 49 52 5f 53 45 50 41 52 41 54 4f 52 20 2a 2f 0a  IR_SEPARATOR */.
1acc0 09 20 20 70 20 3d 20 74 6d 70 5f 70 61 74 68 73  .  p = tmp_paths
1acd0 70 65 63 20 2b 20 73 74 72 6c 65 6e 20 28 74 6d  pec + strlen (tm
1ace0 70 5f 70 61 74 68 73 70 65 63 29 20 2d 20 31 3b  p_pathspec) - 1;
1acf0 0a 09 20 20 77 68 69 6c 65 20 28 28 70 20 3e 20  ..  while ((p > 
1ad00 74 6d 70 5f 70 61 74 68 73 70 65 63 29 20 26 26  tmp_pathspec) &&
1ad10 20 28 21 49 53 5f 44 49 52 5f 53 45 50 41 52 41   (!IS_DIR_SEPARA
1ad20 54 4f 52 20 28 2a 70 29 29 29 0a 09 20 20 20 20  TOR (*p)))..    
1ad30 70 2d 2d 3b 0a 09 20 20 69 66 20 28 28 70 20 3d  p--;..  if ((p =
1ad40 3d 20 74 6d 70 5f 70 61 74 68 73 70 65 63 29 20  = tmp_pathspec) 
1ad50 26 26 20 28 21 49 53 5f 44 49 52 5f 53 45 50 41  && (!IS_DIR_SEPA
1ad60 52 41 54 4f 52 20 28 2a 70 29 29 29 0a 09 20 20  RATOR (*p)))..  
1ad70 20 20 7b 0a 09 20 20 20 20 20 20 2f 2a 20 6e 6f    {..      /* no
1ad80 20 6d 6f 72 65 20 44 49 52 5f 53 45 50 41 52 41   more DIR_SEPARA
1ad90 54 4f 52 53 20 6c 65 66 74 20 2a 2f 0a 09 20 20  TORS left */..  
1ada0 20 20 20 20 62 72 65 61 6b 3b 0a 09 20 20 20 20      break;..    
1adb0 7d 0a 09 20 20 2a 70 20 3d 20 27 5c 30 27 3b 0a  }..  *p = '\0';.
1adc0 09 7d 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 7b  .}.      else..{
1add0 0a 09 20 20 63 68 61 72 20 2a 65 72 72 73 74 72  ..  char *errstr
1ade0 20 3d 20 73 74 72 65 72 72 6f 72 20 28 65 72 72   = strerror (err
1adf0 6e 6f 29 3b 0a 09 20 20 6c 74 5f 66 61 74 61 6c  no);..  lt_fatal
1ae00 20 28 22 45 72 72 6f 72 20 61 63 63 65 73 73 69   ("Error accessi
1ae10 6e 67 20 66 69 6c 65 20 25 73 20 28 25 73 29 22  ng file %s (%s)"
1ae20 2c 20 74 6d 70 5f 70 61 74 68 73 70 65 63 2c 20  , tmp_pathspec, 
1ae30 65 72 72 73 74 72 29 3b 0a 09 7d 0a 20 20 20 20  errstr);..}.    
1ae40 7d 0a 20 20 58 46 52 45 45 20 28 74 6d 70 5f 70  }.  XFREE (tmp_p
1ae50 61 74 68 73 70 65 63 29 3b 0a 0a 20 20 69 66 20  athspec);..  if 
1ae60 28 21 68 61 73 5f 73 79 6d 6c 69 6e 6b 73 29 0a  (!has_symlinks).
1ae70 20 20 20 20 7b 0a 20 20 20 20 20 20 72 65 74 75      {.      retu
1ae80 72 6e 20 78 73 74 72 64 75 70 20 28 70 61 74 68  rn xstrdup (path
1ae90 73 70 65 63 29 3b 0a 20 20 20 20 7d 0a 0a 20 20  spec);.    }..  
1aea0 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d 20 72  tmp_pathspec = r
1aeb0 65 61 6c 70 61 74 68 20 28 70 61 74 68 73 70 65  ealpath (pathspe
1aec0 63 2c 20 62 75 66 29 3b 0a 20 20 69 66 20 28 74  c, buf);.  if (t
1aed0 6d 70 5f 70 61 74 68 73 70 65 63 20 3d 3d 20 30  mp_pathspec == 0
1aee0 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 6c 74  ).    {.      lt
1aef0 5f 66 61 74 61 6c 20 28 22 43 6f 75 6c 64 20 6e  _fatal ("Could n
1af00 6f 74 20 66 6f 6c 6c 6f 77 20 73 79 6d 6c 69 6e  ot follow symlin
1af10 6b 73 20 66 6f 72 20 25 73 22 2c 20 70 61 74 68  ks for %s", path
1af20 73 70 65 63 29 3b 0a 20 20 20 20 7d 0a 20 20 72  spec);.    }.  r
1af30 65 74 75 72 6e 20 78 73 74 72 64 75 70 20 28 74  eturn xstrdup (t
1af40 6d 70 5f 70 61 74 68 73 70 65 63 29 3b 0a 23 65  mp_pathspec);.#e
1af50 6e 64 69 66 0a 7d 0a 0a 63 68 61 72 20 2a 0a 73  ndif.}..char *.s
1af60 74 72 65 6e 64 7a 61 70 20 28 63 68 61 72 20 2a  trendzap (char *
1af70 73 74 72 2c 20 63 6f 6e 73 74 20 63 68 61 72 20  str, const char 
1af80 2a 70 61 74 29 0a 7b 0a 20 20 73 69 7a 65 5f 74  *pat).{.  size_t
1af90 20 6c 65 6e 2c 20 70 61 74 6c 65 6e 3b 0a 0a 20   len, patlen;.. 
1afa0 20 61 73 73 65 72 74 20 28 73 74 72 20 21 3d 20   assert (str != 
1afb0 4e 55 4c 4c 29 3b 0a 20 20 61 73 73 65 72 74 20  NULL);.  assert 
1afc0 28 70 61 74 20 21 3d 20 4e 55 4c 4c 29 3b 0a 0a  (pat != NULL);..
1afd0 20 20 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 20 28    len = strlen (
1afe0 73 74 72 29 3b 0a 20 20 70 61 74 6c 65 6e 20 3d  str);.  patlen =
1aff0 20 73 74 72 6c 65 6e 20 28 70 61 74 29 3b 0a 0a   strlen (pat);..
1b000 20 20 69 66 20 28 70 61 74 6c 65 6e 20 3c 3d 20    if (patlen <= 
1b010 6c 65 6e 29 0a 20 20 20 20 7b 0a 20 20 20 20 20  len).    {.     
1b020 20 73 74 72 20 2b 3d 20 6c 65 6e 20 2d 20 70 61   str += len - pa
1b030 74 6c 65 6e 3b 0a 20 20 20 20 20 20 69 66 20 28  tlen;.      if (
1b040 73 74 72 63 6d 70 20 28 73 74 72 2c 20 70 61 74  strcmp (str, pat
1b050 29 20 3d 3d 20 30 29 0a 09 2a 73 74 72 20 3d 20  ) == 0)..*str = 
1b060 27 5c 30 27 3b 0a 20 20 20 20 7d 0a 20 20 72 65  '\0';.    }.  re
1b070 74 75 72 6e 20 73 74 72 3b 0a 7d 0a 0a 73 74 61  turn str;.}..sta
1b080 74 69 63 20 76 6f 69 64 0a 6c 74 5f 65 72 72 6f  tic void.lt_erro
1b090 72 5f 63 6f 72 65 20 28 69 6e 74 20 65 78 69 74  r_core (int exit
1b0a0 5f 73 74 61 74 75 73 2c 20 63 6f 6e 73 74 20 63  _status, const c
1b0b0 68 61 72 20 2a 6d 6f 64 65 2c 0a 09 20 20 20 20  har *mode,..    
1b0c0 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d     const char *m
1b0d0 65 73 73 61 67 65 2c 20 76 61 5f 6c 69 73 74 20  essage, va_list 
1b0e0 61 70 29 0a 7b 0a 20 20 66 70 72 69 6e 74 66 20  ap).{.  fprintf 
1b0f0 28 73 74 64 65 72 72 2c 20 22 25 73 3a 20 25 73  (stderr, "%s: %s
1b100 3a 20 22 2c 20 70 72 6f 67 72 61 6d 5f 6e 61 6d  : ", program_nam
1b110 65 2c 20 6d 6f 64 65 29 3b 0a 20 20 76 66 70 72  e, mode);.  vfpr
1b120 69 6e 74 66 20 28 73 74 64 65 72 72 2c 20 6d 65  intf (stderr, me
1b130 73 73 61 67 65 2c 20 61 70 29 3b 0a 20 20 66 70  ssage, ap);.  fp
1b140 72 69 6e 74 66 20 28 73 74 64 65 72 72 2c 20 22  rintf (stderr, "
1b150 2e 5c 6e 22 29 3b 0a 0a 20 20 69 66 20 28 65 78  .\n");..  if (ex
1b160 69 74 5f 73 74 61 74 75 73 20 3e 3d 20 30 29 0a  it_status >= 0).
1b170 20 20 20 20 65 78 69 74 20 28 65 78 69 74 5f 73      exit (exit_s
1b180 74 61 74 75 73 29 3b 0a 7d 0a 0a 76 6f 69 64 0a  tatus);.}..void.
1b190 6c 74 5f 66 61 74 61 6c 20 28 63 6f 6e 73 74 20  lt_fatal (const 
1b1a0 63 68 61 72 20 2a 6d 65 73 73 61 67 65 2c 20 2e  char *message, .
1b1b0 2e 2e 29 0a 7b 0a 20 20 76 61 5f 6c 69 73 74 20  ..).{.  va_list 
1b1c0 61 70 3b 0a 20 20 76 61 5f 73 74 61 72 74 20 28  ap;.  va_start (
1b1d0 61 70 2c 20 6d 65 73 73 61 67 65 29 3b 0a 20 20  ap, message);.  
1b1e0 6c 74 5f 65 72 72 6f 72 5f 63 6f 72 65 20 28 45  lt_error_core (E
1b1f0 58 49 54 5f 46 41 49 4c 55 52 45 2c 20 22 46 41  XIT_FAILURE, "FA
1b200 54 41 4c 22 2c 20 6d 65 73 73 61 67 65 2c 20 61  TAL", message, a
1b210 70 29 3b 0a 20 20 76 61 5f 65 6e 64 20 28 61 70  p);.  va_end (ap
1b220 29 3b 0a 7d 0a 0a 76 6f 69 64 0a 6c 74 5f 73 65  );.}..void.lt_se
1b230 74 65 6e 76 20 28 63 6f 6e 73 74 20 63 68 61 72  tenv (const char
1b240 20 2a 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 63 68   *name, const ch
1b250 61 72 20 2a 76 61 6c 75 65 29 0a 7b 0a 20 20 4c  ar *value).{.  L
1b260 54 57 52 41 50 50 45 52 5f 44 45 42 55 47 50 52  TWRAPPER_DEBUGPR
1b270 49 4e 54 46 20 28 28 22 28 6c 74 5f 73 65 74 65  INTF (("(lt_sete
1b280 6e 76 29 20 73 65 74 74 69 6e 67 20 27 25 73 27  nv) setting '%s'
1b290 20 74 6f 20 27 25 73 27 5c 6e 22 2c 0a 20 20 20   to '%s'\n",.   
1b2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2b0 20 20 20 20 20 20 20 28 6e 61 6d 65 20 3f 20 6e         (name ? n
1b2c0 61 6d 65 20 3a 20 22 3c 4e 55 4c 4c 3e 22 29 2c  ame : "<NULL>"),
1b2d0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1b2e0 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75             (valu
1b2f0 65 20 3f 20 76 61 6c 75 65 20 3a 20 22 3c 4e 55  e ? value : "<NU
1b300 4c 4c 3e 22 29 29 29 3b 0a 20 20 7b 0a 23 69 66  LL>")));.  {.#if
1b310 64 65 66 20 48 41 56 45 5f 53 45 54 45 4e 56 0a  def HAVE_SETENV.
1b320 20 20 20 20 2f 2a 20 61 6c 77 61 79 73 20 6d 61      /* always ma
1b330 6b 65 20 61 20 63 6f 70 79 2c 20 66 6f 72 20 63  ke a copy, for c
1b340 6f 6e 73 69 73 74 65 6e 63 79 20 77 69 74 68 20  onsistency with 
1b350 21 48 41 56 45 5f 53 45 54 45 4e 56 20 2a 2f 0a  !HAVE_SETENV */.
1b360 20 20 20 20 63 68 61 72 20 2a 73 74 72 20 3d 20      char *str = 
1b370 78 73 74 72 64 75 70 20 28 76 61 6c 75 65 29 3b  xstrdup (value);
1b380 0a 20 20 20 20 73 65 74 65 6e 76 20 28 6e 61 6d  .    setenv (nam
1b390 65 2c 20 73 74 72 2c 20 31 29 3b 0a 23 65 6c 73  e, str, 1);.#els
1b3a0 65 0a 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20  e.    int len = 
1b3b0 73 74 72 6c 65 6e 20 28 6e 61 6d 65 29 20 2b 20  strlen (name) + 
1b3c0 31 20 2b 20 73 74 72 6c 65 6e 20 28 76 61 6c 75  1 + strlen (valu
1b3d0 65 29 20 2b 20 31 3b 0a 20 20 20 20 63 68 61 72  e) + 1;.    char
1b3e0 20 2a 73 74 72 20 3d 20 58 4d 41 4c 4c 4f 43 20   *str = XMALLOC 
1b3f0 28 63 68 61 72 2c 20 6c 65 6e 29 3b 0a 20 20 20  (char, len);.   
1b400 20 73 70 72 69 6e 74 66 20 28 73 74 72 2c 20 22   sprintf (str, "
1b410 25 73 3d 25 73 22 2c 20 6e 61 6d 65 2c 20 76 61  %s=%s", name, va
1b420 6c 75 65 29 3b 0a 20 20 20 20 69 66 20 28 70 75  lue);.    if (pu
1b430 74 65 6e 76 20 28 73 74 72 29 20 21 3d 20 45 58  tenv (str) != EX
1b440 49 54 5f 53 55 43 43 45 53 53 29 0a 20 20 20 20  IT_SUCCESS).    
1b450 20 20 7b 0a 20 20 20 20 20 20 20 20 58 46 52 45    {.        XFRE
1b460 45 20 28 73 74 72 29 3b 0a 20 20 20 20 20 20 7d  E (str);.      }
1b470 0a 23 65 6e 64 69 66 0a 20 20 7d 0a 7d 0a 0a 63  .#endif.  }.}..c
1b480 68 61 72 20 2a 0a 6c 74 5f 65 78 74 65 6e 64 5f  har *.lt_extend_
1b490 73 74 72 20 28 63 6f 6e 73 74 20 63 68 61 72 20  str (const char 
1b4a0 2a 6f 72 69 67 5f 76 61 6c 75 65 2c 20 63 6f 6e  *orig_value, con
1b4b0 73 74 20 63 68 61 72 20 2a 61 64 64 2c 20 69 6e  st char *add, in
1b4c0 74 20 74 6f 5f 65 6e 64 29 0a 7b 0a 20 20 63 68  t to_end).{.  ch
1b4d0 61 72 20 2a 6e 65 77 5f 76 61 6c 75 65 3b 0a 20  ar *new_value;. 
1b4e0 20 69 66 20 28 6f 72 69 67 5f 76 61 6c 75 65 20   if (orig_value 
1b4f0 26 26 20 2a 6f 72 69 67 5f 76 61 6c 75 65 29 0a  && *orig_value).
1b500 20 20 20 20 7b 0a 20 20 20 20 20 20 69 6e 74 20      {.      int 
1b510 6f 72 69 67 5f 76 61 6c 75 65 5f 6c 65 6e 20 3d  orig_value_len =
1b520 20 73 74 72 6c 65 6e 20 28 6f 72 69 67 5f 76 61   strlen (orig_va
1b530 6c 75 65 29 3b 0a 20 20 20 20 20 20 69 6e 74 20  lue);.      int 
1b540 61 64 64 5f 6c 65 6e 20 3d 20 73 74 72 6c 65 6e  add_len = strlen
1b550 20 28 61 64 64 29 3b 0a 20 20 20 20 20 20 6e 65   (add);.      ne
1b560 77 5f 76 61 6c 75 65 20 3d 20 58 4d 41 4c 4c 4f  w_value = XMALLO
1b570 43 20 28 63 68 61 72 2c 20 61 64 64 5f 6c 65 6e  C (char, add_len
1b580 20 2b 20 6f 72 69 67 5f 76 61 6c 75 65 5f 6c 65   + orig_value_le
1b590 6e 20 2b 20 31 29 3b 0a 20 20 20 20 20 20 69 66  n + 1);.      if
1b5a0 20 28 74 6f 5f 65 6e 64 29 0a 20 20 20 20 20 20   (to_end).      
1b5b0 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 73 74    {.          st
1b5c0 72 63 70 79 20 28 6e 65 77 5f 76 61 6c 75 65 2c  rcpy (new_value,
1b5d0 20 6f 72 69 67 5f 76 61 6c 75 65 29 3b 0a 20 20   orig_value);.  
1b5e0 20 20 20 20 20 20 20 20 73 74 72 63 70 79 20 28          strcpy (
1b5f0 6e 65 77 5f 76 61 6c 75 65 20 2b 20 6f 72 69 67  new_value + orig
1b600 5f 76 61 6c 75 65 5f 6c 65 6e 2c 20 61 64 64 29  _value_len, add)
1b610 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20  ;.        }.    
1b620 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 7b    else.        {
1b630 0a 20 20 20 20 20 20 20 20 20 20 73 74 72 63 70  .          strcp
1b640 79 20 28 6e 65 77 5f 76 61 6c 75 65 2c 20 61 64  y (new_value, ad
1b650 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 73 74  d);.          st
1b660 72 63 70 79 20 28 6e 65 77 5f 76 61 6c 75 65 20  rcpy (new_value 
1b670 2b 20 61 64 64 5f 6c 65 6e 2c 20 6f 72 69 67 5f  + add_len, orig_
1b680 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20  value);.        
1b690 7d 0a 20 20 20 20 7d 0a 20 20 65 6c 73 65 0a 20  }.    }.  else. 
1b6a0 20 20 20 7b 0a 20 20 20 20 20 20 6e 65 77 5f 76     {.      new_v
1b6b0 61 6c 75 65 20 3d 20 78 73 74 72 64 75 70 20 28  alue = xstrdup (
1b6c0 61 64 64 29 3b 0a 20 20 20 20 7d 0a 20 20 72 65  add);.    }.  re
1b6d0 74 75 72 6e 20 6e 65 77 5f 76 61 6c 75 65 3b 0a  turn new_value;.
1b6e0 7d 0a 0a 69 6e 74 0a 6c 74 5f 73 70 6c 69 74 5f  }..int.lt_split_
1b6f0 6e 61 6d 65 5f 76 61 6c 75 65 20 28 63 6f 6e 73  name_value (cons
1b700 74 20 63 68 61 72 20 2a 61 72 67 2c 20 63 68 61  t char *arg, cha
1b710 72 2a 2a 20 6e 61 6d 65 2c 20 63 68 61 72 2a 2a  r** name, char**
1b720 20 76 61 6c 75 65 29 0a 7b 0a 20 20 63 6f 6e 73   value).{.  cons
1b730 74 20 63 68 61 72 20 2a 70 3b 0a 20 20 69 6e 74  t char *p;.  int
1b740 20 6c 65 6e 3b 0a 20 20 69 66 20 28 21 61 72 67   len;.  if (!arg
1b750 20 7c 7c 20 21 2a 61 72 67 29 0a 20 20 20 20 72   || !*arg).    r
1b760 65 74 75 72 6e 20 31 3b 0a 0a 20 20 70 20 3d 20  eturn 1;..  p = 
1b770 73 74 72 63 68 72 20 28 61 72 67 2c 20 28 69 6e  strchr (arg, (in
1b780 74 29 27 3d 27 29 3b 0a 0a 20 20 69 66 20 28 21  t)'=');..  if (!
1b790 70 29 0a 20 20 20 20 72 65 74 75 72 6e 20 31 3b  p).    return 1;
1b7a0 0a 0a 20 20 2a 76 61 6c 75 65 20 3d 20 78 73 74  ..  *value = xst
1b7b0 72 64 75 70 20 28 2b 2b 70 29 3b 0a 0a 20 20 6c  rdup (++p);..  l
1b7c0 65 6e 20 3d 20 73 74 72 6c 65 6e 20 28 61 72 67  en = strlen (arg
1b7d0 29 20 2d 20 73 74 72 6c 65 6e 20 28 2a 76 61 6c  ) - strlen (*val
1b7e0 75 65 29 3b 0a 20 20 2a 6e 61 6d 65 20 3d 20 58  ue);.  *name = X
1b7f0 4d 41 4c 4c 4f 43 20 28 63 68 61 72 2c 20 6c 65  MALLOC (char, le
1b800 6e 29 3b 0a 20 20 73 74 72 6e 63 70 79 20 28 2a  n);.  strncpy (*
1b810 6e 61 6d 65 2c 20 61 72 67 2c 20 6c 65 6e 2d 31  name, arg, len-1
1b820 29 3b 0a 20 20 28 2a 6e 61 6d 65 29 5b 6c 65 6e  );.  (*name)[len
1b830 20 2d 20 31 5d 20 3d 20 27 5c 30 27 3b 0a 0a 20   - 1] = '\0';.. 
1b840 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 76 6f   return 0;.}..vo
1b850 69 64 0a 6c 74 5f 6f 70 74 5f 70 72 6f 63 65 73  id.lt_opt_proces
1b860 73 5f 65 6e 76 5f 73 65 74 20 28 63 6f 6e 73 74  s_env_set (const
1b870 20 63 68 61 72 20 2a 61 72 67 29 0a 7b 0a 20 20   char *arg).{.  
1b880 63 68 61 72 20 2a 6e 61 6d 65 20 3d 20 4e 55 4c  char *name = NUL
1b890 4c 3b 0a 20 20 63 68 61 72 20 2a 76 61 6c 75 65  L;.  char *value
1b8a0 20 3d 20 4e 55 4c 4c 3b 0a 0a 20 20 69 66 20 28   = NULL;..  if (
1b8b0 6c 74 5f 73 70 6c 69 74 5f 6e 61 6d 65 5f 76 61  lt_split_name_va
1b8c0 6c 75 65 20 28 61 72 67 2c 20 26 6e 61 6d 65 2c  lue (arg, &name,
1b8d0 20 26 76 61 6c 75 65 29 20 21 3d 20 30 29 0a 20   &value) != 0). 
1b8e0 20 20 20 7b 0a 20 20 20 20 20 20 58 46 52 45 45     {.      XFREE
1b8f0 20 28 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 58   (name);.      X
1b900 46 52 45 45 20 28 76 61 6c 75 65 29 3b 0a 20 20  FREE (value);.  
1b910 20 20 20 20 6c 74 5f 66 61 74 61 6c 20 28 22 62      lt_fatal ("b
1b920 61 64 20 61 72 67 75 6d 65 6e 74 20 66 6f 72 20  ad argument for 
1b930 25 73 3a 20 27 25 73 27 22 2c 20 65 6e 76 5f 73  %s: '%s'", env_s
1b940 65 74 5f 6f 70 74 2c 20 61 72 67 29 3b 0a 20 20  et_opt, arg);.  
1b950 20 20 7d 0a 0a 20 20 6c 74 5f 73 65 74 65 6e 76    }..  lt_setenv
1b960 20 28 6e 61 6d 65 2c 20 76 61 6c 75 65 29 3b 0a   (name, value);.
1b970 20 20 58 46 52 45 45 20 28 6e 61 6d 65 29 3b 0a    XFREE (name);.
1b980 20 20 58 46 52 45 45 20 28 76 61 6c 75 65 29 3b    XFREE (value);
1b990 0a 7d 0a 0a 76 6f 69 64 0a 6c 74 5f 6f 70 74 5f  .}..void.lt_opt_
1b9a0 70 72 6f 63 65 73 73 5f 65 6e 76 5f 70 72 65 70  process_env_prep
1b9b0 65 6e 64 20 28 63 6f 6e 73 74 20 63 68 61 72 20  end (const char 
1b9c0 2a 61 72 67 29 0a 7b 0a 20 20 63 68 61 72 20 2a  *arg).{.  char *
1b9d0 6e 61 6d 65 20 3d 20 4e 55 4c 4c 3b 0a 20 20 63  name = NULL;.  c
1b9e0 68 61 72 20 2a 76 61 6c 75 65 20 3d 20 4e 55 4c  har *value = NUL
1b9f0 4c 3b 0a 20 20 63 68 61 72 20 2a 6e 65 77 5f 76  L;.  char *new_v
1ba00 61 6c 75 65 20 3d 20 4e 55 4c 4c 3b 0a 0a 20 20  alue = NULL;..  
1ba10 69 66 20 28 6c 74 5f 73 70 6c 69 74 5f 6e 61 6d  if (lt_split_nam
1ba20 65 5f 76 61 6c 75 65 20 28 61 72 67 2c 20 26 6e  e_value (arg, &n
1ba30 61 6d 65 2c 20 26 76 61 6c 75 65 29 20 21 3d 20  ame, &value) != 
1ba40 30 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 58  0).    {.      X
1ba50 46 52 45 45 20 28 6e 61 6d 65 29 3b 0a 20 20 20  FREE (name);.   
1ba60 20 20 20 58 46 52 45 45 20 28 76 61 6c 75 65 29     XFREE (value)
1ba70 3b 0a 20 20 20 20 20 20 6c 74 5f 66 61 74 61 6c  ;.      lt_fatal
1ba80 20 28 22 62 61 64 20 61 72 67 75 6d 65 6e 74 20   ("bad argument 
1ba90 66 6f 72 20 25 73 3a 20 27 25 73 27 22 2c 20 65  for %s: '%s'", e
1baa0 6e 76 5f 70 72 65 70 65 6e 64 5f 6f 70 74 2c 20  nv_prepend_opt, 
1bab0 61 72 67 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 6e  arg);.    }..  n
1bac0 65 77 5f 76 61 6c 75 65 20 3d 20 6c 74 5f 65 78  ew_value = lt_ex
1bad0 74 65 6e 64 5f 73 74 72 20 28 67 65 74 65 6e 76  tend_str (getenv
1bae0 20 28 6e 61 6d 65 29 2c 20 76 61 6c 75 65 2c 20   (name), value, 
1baf0 30 29 3b 0a 20 20 6c 74 5f 73 65 74 65 6e 76 20  0);.  lt_setenv 
1bb00 28 6e 61 6d 65 2c 20 6e 65 77 5f 76 61 6c 75 65  (name, new_value
1bb10 29 3b 0a 20 20 58 46 52 45 45 20 28 6e 65 77 5f  );.  XFREE (new_
1bb20 76 61 6c 75 65 29 3b 0a 20 20 58 46 52 45 45 20  value);.  XFREE 
1bb30 28 6e 61 6d 65 29 3b 0a 20 20 58 46 52 45 45 20  (name);.  XFREE 
1bb40 28 76 61 6c 75 65 29 3b 0a 7d 0a 0a 76 6f 69 64  (value);.}..void
1bb50 0a 6c 74 5f 6f 70 74 5f 70 72 6f 63 65 73 73 5f  .lt_opt_process_
1bb60 65 6e 76 5f 61 70 70 65 6e 64 20 28 63 6f 6e 73  env_append (cons
1bb70 74 20 63 68 61 72 20 2a 61 72 67 29 0a 7b 0a 20  t char *arg).{. 
1bb80 20 63 68 61 72 20 2a 6e 61 6d 65 20 3d 20 4e 55   char *name = NU
1bb90 4c 4c 3b 0a 20 20 63 68 61 72 20 2a 76 61 6c 75  LL;.  char *valu
1bba0 65 20 3d 20 4e 55 4c 4c 3b 0a 20 20 63 68 61 72  e = NULL;.  char
1bbb0 20 2a 6e 65 77 5f 76 61 6c 75 65 20 3d 20 4e 55   *new_value = NU
1bbc0 4c 4c 3b 0a 0a 20 20 69 66 20 28 6c 74 5f 73 70  LL;..  if (lt_sp
1bbd0 6c 69 74 5f 6e 61 6d 65 5f 76 61 6c 75 65 20 28  lit_name_value (
1bbe0 61 72 67 2c 20 26 6e 61 6d 65 2c 20 26 76 61 6c  arg, &name, &val
1bbf0 75 65 29 20 21 3d 20 30 29 0a 20 20 20 20 7b 0a  ue) != 0).    {.
1bc00 20 20 20 20 20 20 58 46 52 45 45 20 28 6e 61 6d        XFREE (nam
1bc10 65 29 3b 0a 20 20 20 20 20 20 58 46 52 45 45 20  e);.      XFREE 
1bc20 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 6c  (value);.      l
1bc30 74 5f 66 61 74 61 6c 20 28 22 62 61 64 20 61 72  t_fatal ("bad ar
1bc40 67 75 6d 65 6e 74 20 66 6f 72 20 25 73 3a 20 27  gument for %s: '
1bc50 25 73 27 22 2c 20 65 6e 76 5f 61 70 70 65 6e 64  %s'", env_append
1bc60 5f 6f 70 74 2c 20 61 72 67 29 3b 0a 20 20 20 20  _opt, arg);.    
1bc70 7d 0a 0a 20 20 6e 65 77 5f 76 61 6c 75 65 20 3d  }..  new_value =
1bc80 20 6c 74 5f 65 78 74 65 6e 64 5f 73 74 72 20 28   lt_extend_str (
1bc90 67 65 74 65 6e 76 20 28 6e 61 6d 65 29 2c 20 76  getenv (name), v
1bca0 61 6c 75 65 2c 20 31 29 3b 0a 20 20 6c 74 5f 73  alue, 1);.  lt_s
1bcb0 65 74 65 6e 76 20 28 6e 61 6d 65 2c 20 6e 65 77  etenv (name, new
1bcc0 5f 76 61 6c 75 65 29 3b 0a 20 20 58 46 52 45 45  _value);.  XFREE
1bcd0 20 28 6e 65 77 5f 76 61 6c 75 65 29 3b 0a 20 20   (new_value);.  
1bce0 58 46 52 45 45 20 28 6e 61 6d 65 29 3b 0a 20 20  XFREE (name);.  
1bcf0 58 46 52 45 45 20 28 76 61 6c 75 65 29 3b 0a 7d  XFREE (value);.}
1bd00 0a 0a 76 6f 69 64 0a 6c 74 5f 75 70 64 61 74 65  ..void.lt_update
1bd10 5f 65 78 65 5f 70 61 74 68 20 28 63 6f 6e 73 74  _exe_path (const
1bd20 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 63 6f 6e   char *name, con
1bd30 73 74 20 63 68 61 72 20 2a 76 61 6c 75 65 29 0a  st char *value).
1bd40 7b 0a 20 20 4c 54 57 52 41 50 50 45 52 5f 44 45  {.  LTWRAPPER_DE
1bd50 42 55 47 50 52 49 4e 54 46 20 28 28 22 28 6c 74  BUGPRINTF (("(lt
1bd60 5f 75 70 64 61 74 65 5f 65 78 65 5f 70 61 74 68  _update_exe_path
1bd70 29 20 6d 6f 64 69 66 79 69 6e 67 20 27 25 73 27  ) modifying '%s'
1bd80 20 62 79 20 70 72 65 70 65 6e 64 69 6e 67 20 27   by prepending '
1bd90 25 73 27 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20  %s'\n",.        
1bda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdb0 20 20 28 6e 61 6d 65 20 3f 20 6e 61 6d 65 20 3a    (name ? name :
1bdc0 20 22 3c 4e 55 4c 4c 3e 22 29 2c 0a 20 20 20 20   "<NULL>"),.    
1bdd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bde0 20 20 20 20 20 20 28 76 61 6c 75 65 20 3f 20 76        (value ? v
1bdf0 61 6c 75 65 20 3a 20 22 3c 4e 55 4c 4c 3e 22 29  alue : "<NULL>")
1be00 29 29 3b 0a 0a 20 20 69 66 20 28 6e 61 6d 65 20  ));..  if (name 
1be10 26 26 20 2a 6e 61 6d 65 20 26 26 20 76 61 6c 75  && *name && valu
1be20 65 20 26 26 20 2a 76 61 6c 75 65 29 0a 20 20 20  e && *value).   
1be30 20 7b 0a 20 20 20 20 20 20 63 68 61 72 20 2a 6e   {.      char *n
1be40 65 77 5f 76 61 6c 75 65 20 3d 20 6c 74 5f 65 78  ew_value = lt_ex
1be50 74 65 6e 64 5f 73 74 72 20 28 67 65 74 65 6e 76  tend_str (getenv
1be60 20 28 6e 61 6d 65 29 2c 20 76 61 6c 75 65 2c 20   (name), value, 
1be70 30 29 3b 0a 20 20 20 20 20 20 2f 2a 20 73 6f 6d  0);.      /* som
1be80 65 20 73 79 73 74 65 6d 73 20 63 61 6e 27 74 20  e systems can't 
1be90 63 6f 70 65 20 77 69 74 68 20 61 20 27 3a 27 2d  cope with a ':'-
1bea0 74 65 72 6d 69 6e 61 74 65 64 20 70 61 74 68 20  terminated path 
1beb0 23 27 20 2a 2f 0a 20 20 20 20 20 20 69 6e 74 20  #' */.      int 
1bec0 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 20 28 6e 65  len = strlen (ne
1bed0 77 5f 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20  w_value);.      
1bee0 77 68 69 6c 65 20 28 28 28 6c 65 6e 20 3d 20 73  while (((len = s
1bef0 74 72 6c 65 6e 20 28 6e 65 77 5f 76 61 6c 75 65  trlen (new_value
1bf00 29 29 20 3e 20 30 29 20 26 26 20 49 53 5f 50 41  )) > 0) && IS_PA
1bf10 54 48 5f 53 45 50 41 52 41 54 4f 52 20 28 6e 65  TH_SEPARATOR (ne
1bf20 77 5f 76 61 6c 75 65 5b 6c 65 6e 2d 31 5d 29 29  w_value[len-1]))
1bf30 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20  .        {.     
1bf40 20 20 20 20 20 6e 65 77 5f 76 61 6c 75 65 5b 6c       new_value[l
1bf50 65 6e 2d 31 5d 20 3d 20 27 5c 30 27 3b 0a 20 20  en-1] = '\0';.  
1bf60 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 6c 74        }.      lt
1bf70 5f 73 65 74 65 6e 76 20 28 6e 61 6d 65 2c 20 6e  _setenv (name, n
1bf80 65 77 5f 76 61 6c 75 65 29 3b 0a 20 20 20 20 20  ew_value);.     
1bf90 20 58 46 52 45 45 20 28 6e 65 77 5f 76 61 6c 75   XFREE (new_valu
1bfa0 65 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 76 6f 69  e);.    }.}..voi
1bfb0 64 0a 6c 74 5f 75 70 64 61 74 65 5f 6c 69 62 5f  d.lt_update_lib_
1bfc0 70 61 74 68 20 28 63 6f 6e 73 74 20 63 68 61 72  path (const char
1bfd0 20 2a 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 63 68   *name, const ch
1bfe0 61 72 20 2a 76 61 6c 75 65 29 0a 7b 0a 20 20 4c  ar *value).{.  L
1bff0 54 57 52 41 50 50 45 52 5f 44 45 42 55 47 50 52  TWRAPPER_DEBUGPR
1c000 49 4e 54 46 20 28 28 22 28 6c 74 5f 75 70 64 61  INTF (("(lt_upda
1c010 74 65 5f 6c 69 62 5f 70 61 74 68 29 20 6d 6f 64  te_lib_path) mod
1c020 69 66 79 69 6e 67 20 27 25 73 27 20 62 79 20 70  ifying '%s' by p
1c030 72 65 70 65 6e 64 69 6e 67 20 27 25 73 27 5c 6e  repending '%s'\n
1c040 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ",.             
1c050 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61               (na
1c060 6d 65 20 3f 20 6e 61 6d 65 20 3a 20 22 3c 4e 55  me ? name : "<NU
1c070 4c 4c 3e 22 29 2c 0a 20 20 20 20 20 20 20 20 20  LL>"),.         
1c080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c090 20 28 76 61 6c 75 65 20 3f 20 76 61 6c 75 65 20   (value ? value 
1c0a0 3a 20 22 3c 4e 55 4c 4c 3e 22 29 29 29 3b 0a 0a  : "<NULL>")));..
1c0b0 20 20 69 66 20 28 6e 61 6d 65 20 26 26 20 2a 6e    if (name && *n
1c0c0 61 6d 65 20 26 26 20 76 61 6c 75 65 20 26 26 20  ame && value && 
1c0d0 2a 76 61 6c 75 65 29 0a 20 20 20 20 7b 0a 20 20  *value).    {.  
1c0e0 20 20 20 20 63 68 61 72 20 2a 6e 65 77 5f 76 61      char *new_va
1c0f0 6c 75 65 20 3d 20 6c 74 5f 65 78 74 65 6e 64 5f  lue = lt_extend_
1c100 73 74 72 20 28 67 65 74 65 6e 76 20 28 6e 61 6d  str (getenv (nam
1c110 65 29 2c 20 76 61 6c 75 65 2c 20 30 29 3b 0a 20  e), value, 0);. 
1c120 20 20 20 20 20 6c 74 5f 73 65 74 65 6e 76 20 28       lt_setenv (
1c130 6e 61 6d 65 2c 20 6e 65 77 5f 76 61 6c 75 65 29  name, new_value)
1c140 3b 0a 20 20 20 20 20 20 58 46 52 45 45 20 28 6e  ;.      XFREE (n
1c150 65 77 5f 76 61 6c 75 65 29 3b 0a 20 20 20 20 7d  ew_value);.    }
1c160 0a 7d 0a 0a 0a 45 4f 46 0a 7d 0a 23 20 65 6e 64  .}...EOF.}.# end
1c170 3a 20 66 75 6e 63 5f 65 6d 69 74 5f 63 77 72 61  : func_emit_cwra
1c180 70 70 65 72 65 78 65 5f 73 72 63 0a 0a 23 20 66  pperexe_src..# f
1c190 75 6e 63 5f 6d 6f 64 65 5f 6c 69 6e 6b 20 61 72  unc_mode_link ar
1c1a0 67 2e 2e 2e 0a 66 75 6e 63 5f 6d 6f 64 65 5f 6c  g....func_mode_l
1c1b0 69 6e 6b 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70  ink ().{.    $op
1c1c0 74 5f 64 65 62 75 67 0a 20 20 20 20 63 61 73 65  t_debug.    case
1c1d0 20 24 68 6f 73 74 20 69 6e 0a 20 20 20 20 2a 2d   $host in.    *-
1c1e0 2a 2d 63 79 67 77 69 6e 2a 20 7c 20 2a 2d 2a 2d  *-cygwin* | *-*-
1c1f0 6d 69 6e 67 77 2a 20 7c 20 2a 2d 2a 2d 70 77 33  mingw* | *-*-pw3
1c200 32 2a 20 7c 20 2a 2d 2a 2d 6f 73 32 2a 20 7c 20  2* | *-*-os2* | 
1c210 2a 2d 63 65 67 63 63 2a 29 0a 20 20 20 20 20 20  *-cegcc*).      
1c220 23 20 49 74 20 69 73 20 69 6d 70 6f 73 73 69 62  # It is impossib
1c230 6c 65 20 74 6f 20 6c 69 6e 6b 20 61 20 64 6c 6c  le to link a dll
1c240 20 77 69 74 68 6f 75 74 20 74 68 69 73 20 73 65   without this se
1c250 74 74 69 6e 67 2c 20 61 6e 64 0a 20 20 20 20 20  tting, and.     
1c260 20 23 20 77 65 20 73 68 6f 75 6c 64 6e 27 74 20   # we shouldn't 
1c270 66 6f 72 63 65 20 74 68 65 20 6d 61 6b 65 66 69  force the makefi
1c280 6c 65 20 6d 61 69 6e 74 61 69 6e 65 72 20 74 6f  le maintainer to
1c290 20 66 69 67 75 72 65 20 6f 75 74 0a 20 20 20 20   figure out.    
1c2a0 20 20 23 20 77 68 69 63 68 20 73 79 73 74 65 6d    # which system
1c2b0 20 77 65 20 61 72 65 20 63 6f 6d 70 69 6c 69 6e   we are compilin
1c2c0 67 20 66 6f 72 20 69 6e 20 6f 72 64 65 72 20 74  g for in order t
1c2d0 6f 20 70 61 73 73 20 61 6e 20 65 78 74 72 61 0a  o pass an extra.
1c2e0 20 20 20 20 20 20 23 20 66 6c 61 67 20 66 6f 72        # flag for
1c2f0 20 65 76 65 72 79 20 6c 69 62 74 6f 6f 6c 20 69   every libtool i
1c300 6e 76 6f 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20  nvocation..     
1c310 20 23 20 61 6c 6c 6f 77 5f 75 6e 64 65 66 69 6e   # allow_undefin
1c320 65 64 3d 6e 6f 0a 0a 20 20 20 20 20 20 23 20 46  ed=no..      # F
1c330 49 58 4d 45 3a 20 55 6e 66 6f 72 74 75 6e 61 74  IXME: Unfortunat
1c340 65 6c 79 2c 20 74 68 65 72 65 20 61 72 65 20 70  ely, there are p
1c350 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 74 68 65  roblems with the
1c360 20 61 62 6f 76 65 20 77 68 65 6e 20 74 72 79 69   above when tryi
1c370 6e 67 0a 20 20 20 20 20 20 23 20 74 6f 20 6d 61  ng.      # to ma
1c380 6b 65 20 61 20 64 6c 6c 20 77 68 69 63 68 20 68  ke a dll which h
1c390 61 73 20 75 6e 64 65 66 69 6e 65 64 20 73 79 6d  as undefined sym
1c3a0 62 6f 6c 73 2c 20 69 6e 20 77 68 69 63 68 20 63  bols, in which c
1c3b0 61 73 65 20 6e 6f 74 0a 20 20 20 20 20 20 23 20  ase not.      # 
1c3c0 65 76 65 6e 20 61 20 73 74 61 74 69 63 20 6c 69  even a static li
1c3d0 62 72 61 72 79 20 69 73 20 62 75 69 6c 74 2e 20  brary is built. 
1c3e0 20 46 6f 72 20 6e 6f 77 2c 20 77 65 20 6e 65 65   For now, we nee
1c3f0 64 20 74 6f 20 73 70 65 63 69 66 79 0a 20 20 20  d to specify.   
1c400 20 20 20 23 20 2d 6e 6f 2d 75 6e 64 65 66 69 6e     # -no-undefin
1c410 65 64 20 6f 6e 20 74 68 65 20 6c 69 62 74 6f 6f  ed on the libtoo
1c420 6c 20 6c 69 6e 6b 20 6c 69 6e 65 20 77 68 65 6e  l link line when
1c430 20 77 65 20 63 61 6e 20 62 65 20 63 65 72 74 61   we can be certa
1c440 69 6e 0a 20 20 20 20 20 20 23 20 74 68 61 74 20  in.      # that 
1c450 61 6c 6c 20 73 79 6d 62 6f 6c 73 20 61 72 65 20  all symbols are 
1c460 73 61 74 69 73 66 69 65 64 2c 20 6f 74 68 65 72  satisfied, other
1c470 77 69 73 65 20 77 65 20 67 65 74 20 61 20 73 74  wise we get a st
1c480 61 74 69 63 20 6c 69 62 72 61 72 79 2e 0a 20 20  atic library..  
1c490 20 20 20 20 61 6c 6c 6f 77 5f 75 6e 64 65 66 69      allow_undefi
1c4a0 6e 65 64 3d 79 65 73 0a 20 20 20 20 20 20 3b 3b  ned=yes.      ;;
1c4b0 0a 20 20 20 20 2a 29 0a 20 20 20 20 20 20 61 6c  .    *).      al
1c4c0 6c 6f 77 5f 75 6e 64 65 66 69 6e 65 64 3d 79 65  low_undefined=ye
1c4d0 73 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 65  s.      ;;.    e
1c4e0 73 61 63 0a 20 20 20 20 6c 69 62 74 6f 6f 6c 5f  sac.    libtool_
1c4f0 61 72 67 73 3d 24 6e 6f 6e 6f 70 74 0a 20 20 20  args=$nonopt.   
1c500 20 62 61 73 65 5f 63 6f 6d 70 69 6c 65 3d 22 24   base_compile="$
1c510 6e 6f 6e 6f 70 74 20 24 40 22 0a 20 20 20 20 63  nonopt $@".    c
1c520 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 3d 24  ompile_command=$
1c530 6e 6f 6e 6f 70 74 0a 20 20 20 20 66 69 6e 61 6c  nonopt.    final
1c540 69 7a 65 5f 63 6f 6d 6d 61 6e 64 3d 24 6e 6f 6e  ize_command=$non
1c550 6f 70 74 0a 0a 20 20 20 20 63 6f 6d 70 69 6c 65  opt..    compile
1c560 5f 72 70 61 74 68 3d 0a 20 20 20 20 66 69 6e 61  _rpath=.    fina
1c570 6c 69 7a 65 5f 72 70 61 74 68 3d 0a 20 20 20 20  lize_rpath=.    
1c580 63 6f 6d 70 69 6c 65 5f 73 68 6c 69 62 70 61 74  compile_shlibpat
1c590 68 3d 0a 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f  h=.    finalize_
1c5a0 73 68 6c 69 62 70 61 74 68 3d 0a 20 20 20 20 63  shlibpath=.    c
1c5b0 6f 6e 76 65 6e 69 65 6e 63 65 3d 0a 20 20 20 20  onvenience=.    
1c5c0 6f 6c 64 5f 63 6f 6e 76 65 6e 69 65 6e 63 65 3d  old_convenience=
1c5d0 0a 20 20 20 20 64 65 70 6c 69 62 73 3d 0a 20 20  .    deplibs=.  
1c5e0 20 20 6f 6c 64 5f 64 65 70 6c 69 62 73 3d 0a 20    old_deplibs=. 
1c5f0 20 20 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67     compiler_flag
1c600 73 3d 0a 20 20 20 20 6c 69 6e 6b 65 72 5f 66 6c  s=.    linker_fl
1c610 61 67 73 3d 0a 20 20 20 20 64 6c 6c 73 65 61 72  ags=.    dllsear
1c620 63 68 70 61 74 68 3d 0a 20 20 20 20 6c 69 62 5f  chpath=.    lib_
1c630 73 65 61 72 63 68 5f 70 61 74 68 3d 60 70 77 64  search_path=`pwd
1c640 60 0a 20 20 20 20 69 6e 73 74 5f 70 72 65 66 69  `.    inst_prefi
1c650 78 5f 64 69 72 3d 0a 20 20 20 20 6e 65 77 5f 69  x_dir=.    new_i
1c660 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f  nherited_linker_
1c670 66 6c 61 67 73 3d 0a 0a 20 20 20 20 61 76 6f 69  flags=..    avoi
1c680 64 5f 76 65 72 73 69 6f 6e 3d 6e 6f 0a 20 20 20  d_version=no.   
1c690 20 64 6c 66 69 6c 65 73 3d 0a 20 20 20 20 64 6c   dlfiles=.    dl
1c6a0 70 72 65 66 69 6c 65 73 3d 0a 20 20 20 20 64 6c  prefiles=.    dl
1c6b0 73 65 6c 66 3d 6e 6f 0a 20 20 20 20 65 78 70 6f  self=no.    expo
1c6c0 72 74 5f 64 79 6e 61 6d 69 63 3d 6e 6f 0a 20 20  rt_dynamic=no.  
1c6d0 20 20 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73    export_symbols
1c6e0 3d 0a 20 20 20 20 65 78 70 6f 72 74 5f 73 79 6d  =.    export_sym
1c6f0 62 6f 6c 73 5f 72 65 67 65 78 3d 0a 20 20 20 20  bols_regex=.    
1c700 67 65 6e 65 72 61 74 65 64 3d 0a 20 20 20 20 6c  generated=.    l
1c710 69 62 6f 62 6a 73 3d 0a 20 20 20 20 6c 74 6c 69  ibobjs=.    ltli
1c720 62 73 3d 0a 20 20 20 20 6d 6f 64 75 6c 65 3d 6e  bs=.    module=n
1c730 6f 0a 20 20 20 20 6e 6f 5f 69 6e 73 74 61 6c 6c  o.    no_install
1c740 3d 6e 6f 0a 20 20 20 20 6f 62 6a 73 3d 0a 20 20  =no.    objs=.  
1c750 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74    non_pic_object
1c760 73 3d 0a 20 20 20 20 70 72 65 63 69 6f 75 73 5f  s=.    precious_
1c770 66 69 6c 65 73 5f 72 65 67 65 78 3d 0a 20 20 20  files_regex=.   
1c780 20 70 72 65 66 65 72 5f 73 74 61 74 69 63 5f 6c   prefer_static_l
1c790 69 62 73 3d 6e 6f 0a 20 20 20 20 70 72 65 6c 6f  ibs=no.    prelo
1c7a0 61 64 3d 6e 6f 0a 20 20 20 20 70 72 65 76 3d 0a  ad=no.    prev=.
1c7b0 20 20 20 20 70 72 65 76 61 72 67 3d 0a 20 20 20      prevarg=.   
1c7c0 20 72 65 6c 65 61 73 65 3d 0a 20 20 20 20 72 70   release=.    rp
1c7d0 61 74 68 3d 0a 20 20 20 20 78 72 70 61 74 68 3d  ath=.    xrpath=
1c7e0 0a 20 20 20 20 70 65 72 6d 5f 72 70 61 74 68 3d  .    perm_rpath=
1c7f0 0a 20 20 20 20 74 65 6d 70 5f 72 70 61 74 68 3d  .    temp_rpath=
1c800 0a 20 20 20 20 74 68 72 65 61 64 5f 73 61 66 65  .    thread_safe
1c810 3d 6e 6f 0a 20 20 20 20 76 69 6e 66 6f 3d 0a 20  =no.    vinfo=. 
1c820 20 20 20 76 69 6e 66 6f 5f 6e 75 6d 62 65 72 3d     vinfo_number=
1c830 6e 6f 0a 20 20 20 20 77 65 61 6b 5f 6c 69 62 73  no.    weak_libs
1c840 3d 0a 20 20 20 20 73 69 6e 67 6c 65 5f 6d 6f 64  =.    single_mod
1c850 75 6c 65 3d 22 24 7b 77 6c 7d 2d 73 69 6e 67 6c  ule="${wl}-singl
1c860 65 5f 6d 6f 64 75 6c 65 22 0a 20 20 20 20 66 75  e_module".    fu
1c870 6e 63 5f 69 6e 66 65 72 5f 74 61 67 20 24 62 61  nc_infer_tag $ba
1c880 73 65 5f 63 6f 6d 70 69 6c 65 0a 0a 20 20 20 20  se_compile..    
1c890 23 20 57 65 20 6e 65 65 64 20 74 6f 20 6b 6e 6f  # We need to kno
1c8a0 77 20 2d 73 74 61 74 69 63 2c 20 74 6f 20 67 65  w -static, to ge
1c8b0 74 20 74 68 65 20 72 69 67 68 74 20 6f 75 74 70  t the right outp
1c8c0 75 74 20 66 69 6c 65 6e 61 6d 65 73 2e 0a 20 20  ut filenames..  
1c8d0 20 20 66 6f 72 20 61 72 67 0a 20 20 20 20 64 6f    for arg.    do
1c8e0 0a 20 20 20 20 20 20 63 61 73 65 20 24 61 72 67  .      case $arg
1c8f0 20 69 6e 0a 20 20 20 20 20 20 2d 73 68 61 72 65   in.      -share
1c900 64 29 0a 09 74 65 73 74 20 22 24 62 75 69 6c 64  d)..test "$build
1c910 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 21  _libtool_libs" !
1c920 3d 20 79 65 73 20 26 26 20 5c 0a 09 20 20 66 75  = yes && \..  fu
1c930 6e 63 5f 66 61 74 61 6c 5f 63 6f 6e 66 69 67 75  nc_fatal_configu
1c940 72 61 74 69 6f 6e 20 22 63 61 6e 20 6e 6f 74 20  ration "can not 
1c950 62 75 69 6c 64 20 61 20 73 68 61 72 65 64 20 6c  build a shared l
1c960 69 62 72 61 72 79 22 0a 09 62 75 69 6c 64 5f 6f  ibrary"..build_o
1c970 6c 64 5f 6c 69 62 73 3d 6e 6f 0a 09 62 72 65 61  ld_libs=no..brea
1c980 6b 0a 09 3b 3b 0a 20 20 20 20 20 20 2d 61 6c 6c  k..;;.      -all
1c990 2d 73 74 61 74 69 63 20 7c 20 2d 73 74 61 74 69  -static | -stati
1c9a0 63 20 7c 20 2d 73 74 61 74 69 63 2d 6c 69 62 74  c | -static-libt
1c9b0 6f 6f 6c 2d 6c 69 62 73 29 0a 09 63 61 73 65 20  ool-libs)..case 
1c9c0 24 61 72 67 20 69 6e 0a 09 2d 61 6c 6c 2d 73 74  $arg in..-all-st
1c9d0 61 74 69 63 29 0a 09 20 20 69 66 20 74 65 73 74  atic)..  if test
1c9e0 20 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c   "$build_libtool
1c9f0 5f 6c 69 62 73 22 20 3d 20 79 65 73 20 26 26 20  _libs" = yes && 
1ca00 74 65 73 74 20 2d 7a 20 22 24 6c 69 6e 6b 5f 73  test -z "$link_s
1ca10 74 61 74 69 63 5f 66 6c 61 67 22 3b 20 74 68 65  tatic_flag"; the
1ca20 6e 0a 09 20 20 20 20 66 75 6e 63 5f 77 61 72 6e  n..    func_warn
1ca30 69 6e 67 20 22 63 6f 6d 70 6c 65 74 65 20 73 74  ing "complete st
1ca40 61 74 69 63 20 6c 69 6e 6b 69 6e 67 20 69 73 20  atic linking is 
1ca50 69 6d 70 6f 73 73 69 62 6c 65 20 69 6e 20 74 68  impossible in th
1ca60 69 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  is configuration
1ca70 22 0a 09 20 20 66 69 0a 09 20 20 69 66 20 74 65  "..  fi..  if te
1ca80 73 74 20 2d 6e 20 22 24 6c 69 6e 6b 5f 73 74 61  st -n "$link_sta
1ca90 74 69 63 5f 66 6c 61 67 22 3b 20 74 68 65 6e 0a  tic_flag"; then.
1caa0 09 20 20 20 20 64 6c 6f 70 65 6e 5f 73 65 6c 66  .    dlopen_self
1cab0 3d 24 64 6c 6f 70 65 6e 5f 73 65 6c 66 5f 73 74  =$dlopen_self_st
1cac0 61 74 69 63 0a 09 20 20 66 69 0a 09 20 20 70 72  atic..  fi..  pr
1cad0 65 66 65 72 5f 73 74 61 74 69 63 5f 6c 69 62 73  efer_static_libs
1cae0 3d 79 65 73 0a 09 20 20 3b 3b 0a 09 2d 73 74 61  =yes..  ;;..-sta
1caf0 74 69 63 29 0a 09 20 20 69 66 20 74 65 73 74 20  tic)..  if test 
1cb00 2d 7a 20 22 24 70 69 63 5f 66 6c 61 67 22 20 26  -z "$pic_flag" &
1cb10 26 20 74 65 73 74 20 2d 6e 20 22 24 6c 69 6e 6b  & test -n "$link
1cb20 5f 73 74 61 74 69 63 5f 66 6c 61 67 22 3b 20 74  _static_flag"; t
1cb30 68 65 6e 0a 09 20 20 20 20 64 6c 6f 70 65 6e 5f  hen..    dlopen_
1cb40 73 65 6c 66 3d 24 64 6c 6f 70 65 6e 5f 73 65 6c  self=$dlopen_sel
1cb50 66 5f 73 74 61 74 69 63 0a 09 20 20 66 69 0a 09  f_static..  fi..
1cb60 20 20 70 72 65 66 65 72 5f 73 74 61 74 69 63 5f    prefer_static_
1cb70 6c 69 62 73 3d 62 75 69 6c 74 0a 09 20 20 3b 3b  libs=built..  ;;
1cb80 0a 09 2d 73 74 61 74 69 63 2d 6c 69 62 74 6f 6f  ..-static-libtoo
1cb90 6c 2d 6c 69 62 73 29 0a 09 20 20 69 66 20 74 65  l-libs)..  if te
1cba0 73 74 20 2d 7a 20 22 24 70 69 63 5f 66 6c 61 67  st -z "$pic_flag
1cbb0 22 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24 6c  " && test -n "$l
1cbc0 69 6e 6b 5f 73 74 61 74 69 63 5f 66 6c 61 67 22  ink_static_flag"
1cbd0 3b 20 74 68 65 6e 0a 09 20 20 20 20 64 6c 6f 70  ; then..    dlop
1cbe0 65 6e 5f 73 65 6c 66 3d 24 64 6c 6f 70 65 6e 5f  en_self=$dlopen_
1cbf0 73 65 6c 66 5f 73 74 61 74 69 63 0a 09 20 20 66  self_static..  f
1cc00 69 0a 09 20 20 70 72 65 66 65 72 5f 73 74 61 74  i..  prefer_stat
1cc10 69 63 5f 6c 69 62 73 3d 79 65 73 0a 09 20 20 3b  ic_libs=yes..  ;
1cc20 3b 0a 09 65 73 61 63 0a 09 62 75 69 6c 64 5f 6c  ;..esac..build_l
1cc30 69 62 74 6f 6f 6c 5f 6c 69 62 73 3d 6e 6f 0a 09  ibtool_libs=no..
1cc40 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 3d 79  build_old_libs=y
1cc50 65 73 0a 09 62 72 65 61 6b 0a 09 3b 3b 0a 20 20  es..break..;;.  
1cc60 20 20 20 20 65 73 61 63 0a 20 20 20 20 64 6f 6e      esac.    don
1cc70 65 0a 0a 20 20 20 20 23 20 53 65 65 20 69 66 20  e..    # See if 
1cc80 6f 75 72 20 73 68 61 72 65 64 20 61 72 63 68 69  our shared archi
1cc90 76 65 73 20 64 65 70 65 6e 64 20 6f 6e 20 73 74  ves depend on st
1cca0 61 74 69 63 20 61 72 63 68 69 76 65 73 2e 0a 20  atic archives.. 
1ccb0 20 20 20 74 65 73 74 20 2d 6e 20 22 24 6f 6c 64     test -n "$old
1ccc0 5f 61 72 63 68 69 76 65 5f 66 72 6f 6d 5f 6e 65  _archive_from_ne
1ccd0 77 5f 63 6d 64 73 22 20 26 26 20 62 75 69 6c 64  w_cmds" && build
1cce0 5f 6f 6c 64 5f 6c 69 62 73 3d 79 65 73 0a 0a 20  _old_libs=yes.. 
1ccf0 20 20 20 23 20 47 6f 20 74 68 72 6f 75 67 68 20     # Go through 
1cd00 74 68 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 74  the arguments, t
1cd10 72 61 6e 73 66 6f 72 6d 69 6e 67 20 74 68 65 6d  ransforming them
1cd20 20 6f 6e 20 74 68 65 20 77 61 79 2e 0a 20 20 20   on the way..   
1cd30 20 77 68 69 6c 65 20 74 65 73 74 20 22 24 23 22   while test "$#"
1cd40 20 2d 67 74 20 30 3b 20 64 6f 0a 20 20 20 20 20   -gt 0; do.     
1cd50 20 61 72 67 3d 22 24 31 22 0a 20 20 20 20 20 20   arg="$1".      
1cd60 73 68 69 66 74 0a 20 20 20 20 20 20 66 75 6e 63  shift.      func
1cd70 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 20  _quote_for_eval 
1cd80 22 24 61 72 67 22 0a 20 20 20 20 20 20 71 61 72  "$arg".      qar
1cd90 67 3d 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f  g=$func_quote_fo
1cda0 72 5f 65 76 61 6c 5f 75 6e 71 75 6f 74 65 64 5f  r_eval_unquoted_
1cdb0 72 65 73 75 6c 74 0a 20 20 20 20 20 20 66 75 6e  result.      fun
1cdc0 63 5f 61 70 70 65 6e 64 20 6c 69 62 74 6f 6f 6c  c_append libtool
1cdd0 5f 61 72 67 73 20 22 20 24 66 75 6e 63 5f 71 75  _args " $func_qu
1cde0 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73  ote_for_eval_res
1cdf0 75 6c 74 22 0a 0a 20 20 20 20 20 20 23 20 49 66  ult"..      # If
1ce00 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6f 70   the previous op
1ce10 74 69 6f 6e 20 6e 65 65 64 73 20 61 6e 20 61 72  tion needs an ar
1ce20 67 75 6d 65 6e 74 2c 20 61 73 73 69 67 6e 20 69  gument, assign i
1ce30 74 2e 0a 20 20 20 20 20 20 69 66 20 74 65 73 74  t..      if test
1ce40 20 2d 6e 20 22 24 70 72 65 76 22 3b 20 74 68 65   -n "$prev"; the
1ce50 6e 0a 09 63 61 73 65 20 24 70 72 65 76 20 69 6e  n..case $prev in
1ce60 0a 09 6f 75 74 70 75 74 29 0a 09 20 20 66 75 6e  ..output)..  fun
1ce70 63 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65  c_append compile
1ce80 5f 63 6f 6d 6d 61 6e 64 20 22 20 40 4f 55 54 50  _command " @OUTP
1ce90 55 54 40 22 0a 09 20 20 66 75 6e 63 5f 61 70 70  UT@"..  func_app
1cea0 65 6e 64 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d  end finalize_com
1ceb0 6d 61 6e 64 20 22 20 40 4f 55 54 50 55 54 40 22  mand " @OUTPUT@"
1cec0 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a 0a 09 63  ..  ;;..esac...c
1ced0 61 73 65 20 24 70 72 65 76 20 69 6e 0a 09 64 6c  ase $prev in..dl
1cee0 66 69 6c 65 73 7c 64 6c 70 72 65 66 69 6c 65 73  files|dlprefiles
1cef0 29 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 70  )..  if test "$p
1cf00 72 65 6c 6f 61 64 22 20 3d 20 6e 6f 3b 20 74 68  reload" = no; th
1cf10 65 6e 0a 09 20 20 20 20 23 20 41 64 64 20 74 68  en..    # Add th
1cf20 65 20 73 79 6d 62 6f 6c 20 6f 62 6a 65 63 74 20  e symbol object 
1cf30 69 6e 74 6f 20 74 68 65 20 6c 69 6e 6b 69 6e 67  into the linking
1cf40 20 63 6f 6d 6d 61 6e 64 73 2e 0a 09 20 20 20 20   commands...    
1cf50 66 75 6e 63 5f 61 70 70 65 6e 64 20 63 6f 6d 70  func_append comp
1cf60 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 40 53  ile_command " @S
1cf70 59 4d 46 49 4c 45 40 22 0a 09 20 20 20 20 66 75  YMFILE@"..    fu
1cf80 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69  nc_append finali
1cf90 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 40 53 59  ze_command " @SY
1cfa0 4d 46 49 4c 45 40 22 0a 09 20 20 20 20 70 72 65  MFILE@"..    pre
1cfb0 6c 6f 61 64 3d 79 65 73 0a 09 20 20 66 69 0a 09  load=yes..  fi..
1cfc0 20 20 63 61 73 65 20 24 61 72 67 20 69 6e 0a 09    case $arg in..
1cfd0 20 20 2a 2e 6c 61 20 7c 20 2a 2e 6c 6f 29 20 3b    *.la | *.lo) ;
1cfe0 3b 20 20 23 20 57 65 20 68 61 6e 64 6c 65 20 74  ;  # We handle t
1cff0 68 65 73 65 20 63 61 73 65 73 20 62 65 6c 6f 77  hese cases below
1d000 2e 0a 09 20 20 66 6f 72 63 65 29 0a 09 20 20 20  ...  force)..   
1d010 20 69 66 20 74 65 73 74 20 22 24 64 6c 73 65 6c   if test "$dlsel
1d020 66 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09 20  f" = no; then.. 
1d030 20 20 20 20 20 64 6c 73 65 6c 66 3d 6e 65 65 64       dlself=need
1d040 6c 65 73 73 0a 09 20 20 20 20 20 20 65 78 70 6f  less..      expo
1d050 72 74 5f 64 79 6e 61 6d 69 63 3d 79 65 73 0a 09  rt_dynamic=yes..
1d060 20 20 20 20 66 69 0a 09 20 20 20 20 70 72 65 76      fi..    prev
1d070 3d 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a  =..    continue.
1d080 09 20 20 20 20 3b 3b 0a 09 20 20 73 65 6c 66 29  .    ;;..  self)
1d090 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22 24  ..    if test "$
1d0a0 70 72 65 76 22 20 3d 20 64 6c 70 72 65 66 69 6c  prev" = dlprefil
1d0b0 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  es; then..      
1d0c0 64 6c 73 65 6c 66 3d 79 65 73 0a 09 20 20 20 20  dlself=yes..    
1d0d0 65 6c 69 66 20 74 65 73 74 20 22 24 70 72 65 76  elif test "$prev
1d0e0 22 20 3d 20 64 6c 66 69 6c 65 73 20 26 26 20 74  " = dlfiles && t
1d0f0 65 73 74 20 22 24 64 6c 6f 70 65 6e 5f 73 65 6c  est "$dlopen_sel
1d100 66 22 20 21 3d 20 79 65 73 3b 20 74 68 65 6e 0a  f" != yes; then.
1d110 09 20 20 20 20 20 20 64 6c 73 65 6c 66 3d 79 65  .      dlself=ye
1d120 73 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20  s..    else..   
1d130 20 20 20 64 6c 73 65 6c 66 3d 6e 65 65 64 6c 65     dlself=needle
1d140 73 73 0a 09 20 20 20 20 20 20 65 78 70 6f 72 74  ss..      export
1d150 5f 64 79 6e 61 6d 69 63 3d 79 65 73 0a 09 20 20  _dynamic=yes..  
1d160 20 20 66 69 0a 09 20 20 20 20 70 72 65 76 3d 0a    fi..    prev=.
1d170 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20  .    continue.. 
1d180 20 20 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20     ;;..  *)..   
1d190 20 69 66 20 74 65 73 74 20 22 24 70 72 65 76 22   if test "$prev"
1d1a0 20 3d 20 64 6c 66 69 6c 65 73 3b 20 74 68 65 6e   = dlfiles; then
1d1b0 0a 09 20 20 20 20 20 20 64 6c 66 69 6c 65 73 3d  ..      dlfiles=
1d1c0 22 24 64 6c 66 69 6c 65 73 20 24 61 72 67 22 0a  "$dlfiles $arg".
1d1d0 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20  .    else..     
1d1e0 20 64 6c 70 72 65 66 69 6c 65 73 3d 22 24 64 6c   dlprefiles="$dl
1d1f0 70 72 65 66 69 6c 65 73 20 24 61 72 67 22 0a 09  prefiles $arg"..
1d200 20 20 20 20 66 69 0a 09 20 20 20 20 70 72 65 76      fi..    prev
1d210 3d 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a  =..    continue.
1d220 09 20 20 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a  .    ;;..  esac.
1d230 09 20 20 3b 3b 0a 09 65 78 70 73 79 6d 73 29 0a  .  ;;..expsyms).
1d240 09 20 20 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c  .  export_symbol
1d250 73 3d 22 24 61 72 67 22 0a 09 20 20 74 65 73 74  s="$arg"..  test
1d260 20 2d 66 20 22 24 61 72 67 22 20 5c 0a 09 20 20   -f "$arg" \..  
1d270 20 20 7c 7c 20 66 75 6e 63 5f 66 61 74 61 6c 5f    || func_fatal_
1d280 65 72 72 6f 72 20 22 73 79 6d 62 6f 6c 20 66 69  error "symbol fi
1d290 6c 65 20 5c 60 24 61 72 67 27 20 64 6f 65 73 20  le \`$arg' does 
1d2a0 6e 6f 74 20 65 78 69 73 74 22 0a 09 20 20 70 72  not exist"..  pr
1d2b0 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a  ev=..  continue.
1d2c0 09 20 20 3b 3b 0a 09 65 78 70 73 79 6d 73 5f 72  .  ;;..expsyms_r
1d2d0 65 67 65 78 29 0a 09 20 20 65 78 70 6f 72 74 5f  egex)..  export_
1d2e0 73 79 6d 62 6f 6c 73 5f 72 65 67 65 78 3d 22 24  symbols_regex="$
1d2f0 61 72 67 22 0a 09 20 20 70 72 65 76 3d 0a 09 20  arg"..  prev=.. 
1d300 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a   continue..  ;;.
1d310 09 66 72 61 6d 65 77 6f 72 6b 29 0a 09 20 20 63  .framework)..  c
1d320 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 20  ase $host in..  
1d330 20 20 2a 2d 2a 2d 64 61 72 77 69 6e 2a 29 0a 09    *-*-darwin*)..
1d340 20 20 20 20 20 20 63 61 73 65 20 22 24 64 65 70        case "$dep
1d350 6c 69 62 73 20 22 20 69 6e 0a 09 09 2a 22 20 24  libs " in...*" $
1d360 71 61 72 67 2e 6c 74 66 72 61 6d 65 77 6f 72 6b  qarg.ltframework
1d370 20 22 2a 29 20 3b 3b 0a 09 09 2a 29 20 64 65 70   "*) ;;...*) dep
1d380 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 73 20 24  libs="$deplibs $
1d390 71 61 72 67 2e 6c 74 66 72 61 6d 65 77 6f 72 6b  qarg.ltframework
1d3a0 22 20 23 20 74 68 69 73 20 69 73 20 66 69 78 65  " # this is fixe
1d3b0 64 20 6c 61 74 65 72 0a 09 09 20 20 20 3b 3b 0a  d later...   ;;.
1d3c0 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20 20  .      esac..   
1d3d0 20 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20     ;;..  esac.. 
1d3e0 20 70 72 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e   prev=..  contin
1d3f0 75 65 0a 09 20 20 3b 3b 0a 09 69 6e 73 74 5f 70  ue..  ;;..inst_p
1d400 72 65 66 69 78 29 0a 09 20 20 69 6e 73 74 5f 70  refix)..  inst_p
1d410 72 65 66 69 78 5f 64 69 72 3d 22 24 61 72 67 22  refix_dir="$arg"
1d420 0a 09 20 20 70 72 65 76 3d 0a 09 20 20 63 6f 6e  ..  prev=..  con
1d430 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 09 6f 62 6a  tinue..  ;;..obj
1d440 65 63 74 6c 69 73 74 29 0a 09 20 20 69 66 20 74  ectlist)..  if t
1d450 65 73 74 20 2d 66 20 22 24 61 72 67 22 3b 20 74  est -f "$arg"; t
1d460 68 65 6e 0a 09 20 20 20 20 73 61 76 65 5f 61 72  hen..    save_ar
1d470 67 3d 24 61 72 67 0a 09 20 20 20 20 6d 6f 72 65  g=$arg..    more
1d480 61 72 67 73 3d 0a 09 20 20 20 20 66 6f 72 20 66  args=..    for f
1d490 69 6c 20 69 6e 20 60 63 61 74 20 22 24 73 61 76  il in `cat "$sav
1d4a0 65 5f 61 72 67 22 60 0a 09 20 20 20 20 64 6f 0a  e_arg"`..    do.
1d4b0 23 09 20 20 20 20 20 20 6d 6f 72 65 61 72 67 73  #.      moreargs
1d4c0 3d 22 24 6d 6f 72 65 61 72 67 73 20 24 66 69 6c  ="$moreargs $fil
1d4d0 22 0a 09 20 20 20 20 20 20 61 72 67 3d 24 66 69  "..      arg=$fi
1d4e0 6c 0a 09 20 20 20 20 20 20 23 20 41 20 6c 69 62  l..      # A lib
1d4f0 74 6f 6f 6c 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20  tool-controlled 
1d500 6f 62 6a 65 63 74 2e 0a 0a 09 20 20 20 20 20 20  object....      
1d510 23 20 43 68 65 63 6b 20 74 6f 20 73 65 65 20 74  # Check to see t
1d520 68 61 74 20 74 68 69 73 20 72 65 61 6c 6c 79 20  hat this really 
1d530 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a  is a libtool obj
1d540 65 63 74 2e 0a 09 20 20 20 20 20 20 69 66 20 66  ect...      if f
1d550 75 6e 63 5f 6c 61 6c 69 62 5f 75 6e 73 61 66 65  unc_lalib_unsafe
1d560 5f 70 20 22 24 61 72 67 22 3b 20 74 68 65 6e 0a  _p "$arg"; then.
1d570 09 09 70 69 63 5f 6f 62 6a 65 63 74 3d 0a 09 09  ..pic_object=...
1d580 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 3d 0a  non_pic_object=.
1d590 0a 09 09 23 20 52 65 61 64 20 74 68 65 20 2e 6c  ...# Read the .l
1d5a0 6f 20 66 69 6c 65 0a 09 09 66 75 6e 63 5f 73 6f  o file...func_so
1d5b0 75 72 63 65 20 22 24 61 72 67 22 0a 0a 09 09 69  urce "$arg"....i
1d5c0 66 20 74 65 73 74 20 2d 7a 20 22 24 70 69 63 5f  f test -z "$pic_
1d5d0 6f 62 6a 65 63 74 22 20 7c 7c 0a 09 09 20 20 20  object" ||...   
1d5e0 74 65 73 74 20 2d 7a 20 22 24 6e 6f 6e 5f 70 69  test -z "$non_pi
1d5f0 63 5f 6f 62 6a 65 63 74 22 20 7c 7c 0a 09 09 20  c_object" ||... 
1d600 20 20 74 65 73 74 20 22 24 70 69 63 5f 6f 62 6a    test "$pic_obj
1d610 65 63 74 22 20 3d 20 6e 6f 6e 65 20 26 26 0a 09  ect" = none &&..
1d620 09 20 20 20 74 65 73 74 20 22 24 6e 6f 6e 5f 70  .   test "$non_p
1d630 69 63 5f 6f 62 6a 65 63 74 22 20 3d 20 6e 6f 6e  ic_object" = non
1d640 65 3b 20 74 68 65 6e 0a 09 09 20 20 66 75 6e 63  e; then...  func
1d650 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 63 61  _fatal_error "ca
1d660 6e 6e 6f 74 20 66 69 6e 64 20 6e 61 6d 65 20 6f  nnot find name o
1d670 66 20 6f 62 6a 65 63 74 20 66 6f 72 20 5c 60 24  f object for \`$
1d680 61 72 67 27 22 0a 09 09 66 69 0a 0a 09 09 23 20  arg'"...fi....# 
1d690 45 78 74 72 61 63 74 20 73 75 62 64 69 72 65 63  Extract subdirec
1d6a0 74 6f 72 79 20 66 72 6f 6d 20 74 68 65 20 61 72  tory from the ar
1d6b0 67 75 6d 65 6e 74 2e 0a 09 09 66 75 6e 63 5f 64  gument....func_d
1d6c0 69 72 6e 61 6d 65 20 22 24 61 72 67 22 20 22 2f  irname "$arg" "/
1d6d0 22 20 22 22 0a 09 09 78 64 69 72 3d 22 24 66 75  " ""...xdir="$fu
1d6e0 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c  nc_dirname_resul
1d6f0 74 22 0a 0a 09 09 69 66 20 74 65 73 74 20 22 24  t"....if test "$
1d700 70 69 63 5f 6f 62 6a 65 63 74 22 20 21 3d 20 6e  pic_object" != n
1d710 6f 6e 65 3b 20 74 68 65 6e 0a 09 09 20 20 23 20  one; then...  # 
1d720 50 72 65 70 65 6e 64 20 74 68 65 20 73 75 62 64  Prepend the subd
1d730 69 72 65 63 74 6f 72 79 20 74 68 65 20 6f 62 6a  irectory the obj
1d740 65 63 74 20 69 73 20 66 6f 75 6e 64 20 69 6e 2e  ect is found in.
1d750 0a 09 09 20 20 70 69 63 5f 6f 62 6a 65 63 74 3d  ...  pic_object=
1d760 22 24 78 64 69 72 24 70 69 63 5f 6f 62 6a 65 63  "$xdir$pic_objec
1d770 74 22 0a 0a 09 09 20 20 69 66 20 74 65 73 74 20  t"....  if test 
1d780 22 24 70 72 65 76 22 20 3d 20 64 6c 66 69 6c 65  "$prev" = dlfile
1d790 73 3b 20 74 68 65 6e 0a 09 09 20 20 20 20 69 66  s; then...    if
1d7a0 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6c 69   test "$build_li
1d7b0 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 3d 20 79 65  btool_libs" = ye
1d7c0 73 20 26 26 20 74 65 73 74 20 22 24 64 6c 6f 70  s && test "$dlop
1d7d0 65 6e 5f 73 75 70 70 6f 72 74 22 20 3d 20 79 65  en_support" = ye
1d7e0 73 3b 20 74 68 65 6e 0a 09 09 20 20 20 20 20 20  s; then...      
1d7f0 64 6c 66 69 6c 65 73 3d 22 24 64 6c 66 69 6c 65  dlfiles="$dlfile
1d800 73 20 24 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09  s $pic_object"..
1d810 09 20 20 20 20 20 20 70 72 65 76 3d 0a 09 09 20  .      prev=... 
1d820 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 09       continue...
1d830 20 20 20 20 65 6c 73 65 0a 09 09 20 20 20 20 20      else...     
1d840 20 23 20 49 66 20 6c 69 62 74 6f 6f 6c 20 6f 62   # If libtool ob
1d850 6a 65 63 74 73 20 61 72 65 20 75 6e 73 75 70 70  jects are unsupp
1d860 6f 72 74 65 64 2c 20 74 68 65 6e 20 77 65 20 6e  orted, then we n
1d870 65 65 64 20 74 6f 20 70 72 65 6c 6f 61 64 2e 0a  eed to preload..
1d880 09 09 20 20 20 20 20 20 70 72 65 76 3d 64 6c 70  ..      prev=dlp
1d890 72 65 66 69 6c 65 73 0a 09 09 20 20 20 20 66 69  refiles...    fi
1d8a0 0a 09 09 20 20 66 69 0a 0a 09 09 20 20 23 20 43  ...  fi....  # C
1d8b0 48 45 43 4b 20 4d 45 3a 20 20 49 20 74 68 69 6e  HECK ME:  I thin
1d8c0 6b 20 49 20 62 75 73 74 65 64 20 74 68 69 73 2e  k I busted this.
1d8d0 20 20 2d 4f 73 73 61 6d 61 0a 09 09 20 20 69 66    -Ossama...  if
1d8e0 20 74 65 73 74 20 22 24 70 72 65 76 22 20 3d 20   test "$prev" = 
1d8f0 64 6c 70 72 65 66 69 6c 65 73 3b 20 74 68 65 6e  dlprefiles; then
1d900 0a 09 09 20 20 20 20 23 20 50 72 65 6c 6f 61 64  ...    # Preload
1d910 20 74 68 65 20 6f 6c 64 2d 73 74 79 6c 65 20 6f   the old-style o
1d920 62 6a 65 63 74 2e 0a 09 09 20 20 20 20 64 6c 70  bject....    dlp
1d930 72 65 66 69 6c 65 73 3d 22 24 64 6c 70 72 65 66  refiles="$dlpref
1d940 69 6c 65 73 20 24 70 69 63 5f 6f 62 6a 65 63 74  iles $pic_object
1d950 22 0a 09 09 20 20 20 20 70 72 65 76 3d 0a 09 09  "...    prev=...
1d960 20 20 66 69 0a 0a 09 09 20 20 23 20 41 20 50 49    fi....  # A PI
1d970 43 20 6f 62 6a 65 63 74 2e 0a 09 09 20 20 66 75  C object....  fu
1d980 6e 63 5f 61 70 70 65 6e 64 20 6c 69 62 6f 62 6a  nc_append libobj
1d990 73 20 22 20 24 70 69 63 5f 6f 62 6a 65 63 74 22  s " $pic_object"
1d9a0 0a 09 09 20 20 61 72 67 3d 22 24 70 69 63 5f 6f  ...  arg="$pic_o
1d9b0 62 6a 65 63 74 22 0a 09 09 66 69 0a 0a 09 09 23  bject"...fi....#
1d9c0 20 4e 6f 6e 2d 50 49 43 20 6f 62 6a 65 63 74 2e   Non-PIC object.
1d9d0 0a 09 09 69 66 20 74 65 73 74 20 22 24 6e 6f 6e  ...if test "$non
1d9e0 5f 70 69 63 5f 6f 62 6a 65 63 74 22 20 21 3d 20  _pic_object" != 
1d9f0 6e 6f 6e 65 3b 20 74 68 65 6e 0a 09 09 20 20 23  none; then...  #
1da00 20 50 72 65 70 65 6e 64 20 74 68 65 20 73 75 62   Prepend the sub
1da10 64 69 72 65 63 74 6f 72 79 20 74 68 65 20 6f 62  directory the ob
1da20 6a 65 63 74 20 69 73 20 66 6f 75 6e 64 20 69 6e  ject is found in
1da30 2e 0a 09 09 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62  ....  non_pic_ob
1da40 6a 65 63 74 3d 22 24 78 64 69 72 24 6e 6f 6e 5f  ject="$xdir$non_
1da50 70 69 63 5f 6f 62 6a 65 63 74 22 0a 0a 09 09 20  pic_object".... 
1da60 20 23 20 41 20 73 74 61 6e 64 61 72 64 20 6e 6f   # A standard no
1da70 6e 2d 50 49 43 20 6f 62 6a 65 63 74 0a 09 09 20  n-PIC object... 
1da80 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 6f 6e   func_append non
1da90 5f 70 69 63 5f 6f 62 6a 65 63 74 73 20 22 20 24  _pic_objects " $
1daa0 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 22 0a  non_pic_object".
1dab0 09 09 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22  ..  if test -z "
1dac0 24 70 69 63 5f 6f 62 6a 65 63 74 22 20 7c 7c 20  $pic_object" || 
1dad0 74 65 73 74 20 22 24 70 69 63 5f 6f 62 6a 65 63  test "$pic_objec
1dae0 74 22 20 3d 20 6e 6f 6e 65 20 3b 20 74 68 65 6e  t" = none ; then
1daf0 0a 09 09 20 20 20 20 61 72 67 3d 22 24 6e 6f 6e  ...    arg="$non
1db00 5f 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09 09 20  _pic_object"... 
1db10 20 66 69 0a 09 09 65 6c 73 65 0a 09 09 20 20 23   fi...else...  #
1db20 20 49 66 20 74 68 65 20 50 49 43 20 6f 62 6a 65   If the PIC obje
1db30 63 74 20 65 78 69 73 74 73 2c 20 75 73 65 20 69  ct exists, use i
1db40 74 20 69 6e 73 74 65 61 64 2e 0a 09 09 20 20 23  t instead....  #
1db50 20 24 78 64 69 72 20 77 61 73 20 70 72 65 70 65   $xdir was prepe
1db60 6e 64 65 64 20 74 6f 20 24 70 69 63 5f 6f 62 6a  nded to $pic_obj
1db70 65 63 74 20 61 62 6f 76 65 2e 0a 09 09 20 20 6e  ect above....  n
1db80 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 3d 22 24  on_pic_object="$
1db90 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09 09 20 20  pic_object"...  
1dba0 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 6f 6e 5f  func_append non_
1dbb0 70 69 63 5f 6f 62 6a 65 63 74 73 20 22 20 24 6e  pic_objects " $n
1dbc0 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09  on_pic_object"..
1dbd0 09 66 69 0a 09 20 20 20 20 20 20 65 6c 73 65 0a  .fi..      else.
1dbe0 09 09 23 20 4f 6e 6c 79 20 61 6e 20 65 72 72 6f  ..# Only an erro
1dbf0 72 20 69 66 20 6e 6f 74 20 64 6f 69 6e 67 20 61  r if not doing a
1dc00 20 64 72 79 2d 72 75 6e 2e 0a 09 09 69 66 20 24   dry-run....if $
1dc10 6f 70 74 5f 64 72 79 5f 72 75 6e 3b 20 74 68 65  opt_dry_run; the
1dc20 6e 0a 09 09 20 20 23 20 45 78 74 72 61 63 74 20  n...  # Extract 
1dc30 73 75 62 64 69 72 65 63 74 6f 72 79 20 66 72 6f  subdirectory fro
1dc40 6d 20 74 68 65 20 61 72 67 75 6d 65 6e 74 2e 0a  m the argument..
1dc50 09 09 20 20 66 75 6e 63 5f 64 69 72 6e 61 6d 65  ..  func_dirname
1dc60 20 22 24 61 72 67 22 20 22 2f 22 20 22 22 0a 09   "$arg" "/" ""..
1dc70 09 20 20 78 64 69 72 3d 22 24 66 75 6e 63 5f 64  .  xdir="$func_d
1dc80 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 0a  irname_result"..
1dc90 09 09 20 20 66 75 6e 63 5f 6c 6f 32 6f 20 22 24  ..  func_lo2o "$
1dca0 61 72 67 22 0a 09 09 20 20 70 69 63 5f 6f 62 6a  arg"...  pic_obj
1dcb0 65 63 74 3d 24 78 64 69 72 24 6f 62 6a 64 69 72  ect=$xdir$objdir
1dcc0 2f 24 66 75 6e 63 5f 6c 6f 32 6f 5f 72 65 73 75  /$func_lo2o_resu
1dcd0 6c 74 0a 09 09 20 20 6e 6f 6e 5f 70 69 63 5f 6f  lt...  non_pic_o
1dce0 62 6a 65 63 74 3d 24 78 64 69 72 24 66 75 6e 63  bject=$xdir$func
1dcf0 5f 6c 6f 32 6f 5f 72 65 73 75 6c 74 0a 09 09 20  _lo2o_result... 
1dd00 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6c 69 62   func_append lib
1dd10 6f 62 6a 73 20 22 20 24 70 69 63 5f 6f 62 6a 65  objs " $pic_obje
1dd20 63 74 22 0a 09 09 20 20 66 75 6e 63 5f 61 70 70  ct"...  func_app
1dd30 65 6e 64 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65  end non_pic_obje
1dd40 63 74 73 20 22 20 24 6e 6f 6e 5f 70 69 63 5f 6f  cts " $non_pic_o
1dd50 62 6a 65 63 74 22 0a 09 20 20 20 20 20 20 20 20  bject"..        
1dd60 65 6c 73 65 0a 09 09 20 20 66 75 6e 63 5f 66 61  else...  func_fa
1dd70 74 61 6c 5f 65 72 72 6f 72 20 22 5c 60 24 61 72  tal_error "\`$ar
1dd80 67 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69  g' is not a vali
1dd90 64 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65 63 74  d libtool object
1dda0 22 0a 09 09 66 69 0a 09 20 20 20 20 20 20 66 69  "...fi..      fi
1ddb0 0a 09 20 20 20 20 64 6f 6e 65 0a 09 20 20 65 6c  ..    done..  el
1ddc0 73 65 0a 09 20 20 20 20 66 75 6e 63 5f 66 61 74  se..    func_fat
1ddd0 61 6c 5f 65 72 72 6f 72 20 22 6c 69 6e 6b 20 69  al_error "link i
1dde0 6e 70 75 74 20 66 69 6c 65 20 5c 60 24 61 72 67  nput file \`$arg
1ddf0 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74  ' does not exist
1de00 22 0a 09 20 20 66 69 0a 09 20 20 61 72 67 3d 24  "..  fi..  arg=$
1de10 73 61 76 65 5f 61 72 67 0a 09 20 20 70 72 65 76  save_arg..  prev
1de20 3d 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20  =..  continue.. 
1de30 20 3b 3b 0a 09 70 72 65 63 69 6f 75 73 5f 72 65   ;;..precious_re
1de40 67 65 78 29 0a 09 20 20 70 72 65 63 69 6f 75 73  gex)..  precious
1de50 5f 66 69 6c 65 73 5f 72 65 67 65 78 3d 22 24 61  _files_regex="$a
1de60 72 67 22 0a 09 20 20 70 72 65 76 3d 0a 09 20 20  rg"..  prev=..  
1de70 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 09  continue..  ;;..
1de80 72 65 6c 65 61 73 65 29 0a 09 20 20 72 65 6c 65  release)..  rele
1de90 61 73 65 3d 22 2d 24 61 72 67 22 0a 09 20 20 70  ase="-$arg"..  p
1dea0 72 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e 75 65  rev=..  continue
1deb0 0a 09 20 20 3b 3b 0a 09 72 70 61 74 68 20 7c 20  ..  ;;..rpath | 
1dec0 78 72 70 61 74 68 29 0a 09 20 20 23 20 57 65 20  xrpath)..  # We 
1ded0 6e 65 65 64 20 61 6e 20 61 62 73 6f 6c 75 74 65  need an absolute
1dee0 20 70 61 74 68 2e 0a 09 20 20 63 61 73 65 20 24   path...  case $
1def0 61 72 67 20 69 6e 0a 09 20 20 5b 5c 5c 2f 5d 2a  arg in..  [\\/]*
1df00 20 7c 20 5b 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f   | [A-Za-z]:[\\/
1df10 5d 2a 29 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20  ]*) ;;..  *)..  
1df20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72    func_fatal_err
1df30 6f 72 20 22 6f 6e 6c 79 20 61 62 73 6f 6c 75 74  or "only absolut
1df40 65 20 72 75 6e 2d 70 61 74 68 73 20 61 72 65 20  e run-paths are 
1df50 61 6c 6c 6f 77 65 64 22 0a 09 20 20 20 20 3b 3b  allowed"..    ;;
1df60 0a 09 20 20 65 73 61 63 0a 09 20 20 69 66 20 74  ..  esac..  if t
1df70 65 73 74 20 22 24 70 72 65 76 22 20 3d 20 72 70  est "$prev" = rp
1df80 61 74 68 3b 20 74 68 65 6e 0a 09 20 20 20 20 63  ath; then..    c
1df90 61 73 65 20 22 24 72 70 61 74 68 20 22 20 69 6e  ase "$rpath " in
1dfa0 0a 09 20 20 20 20 2a 22 20 24 61 72 67 20 22 2a  ..    *" $arg "*
1dfb0 29 20 3b 3b 0a 09 20 20 20 20 2a 29 20 72 70 61  ) ;;..    *) rpa
1dfc0 74 68 3d 22 24 72 70 61 74 68 20 24 61 72 67 22  th="$rpath $arg"
1dfd0 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09 20   ;;..    esac.. 
1dfe0 20 65 6c 73 65 0a 09 20 20 20 20 63 61 73 65 20   else..    case 
1dff0 22 24 78 72 70 61 74 68 20 22 20 69 6e 0a 09 20  "$xrpath " in.. 
1e000 20 20 20 2a 22 20 24 61 72 67 20 22 2a 29 20 3b     *" $arg "*) ;
1e010 3b 0a 09 20 20 20 20 2a 29 20 78 72 70 61 74 68  ;..    *) xrpath
1e020 3d 22 24 78 72 70 61 74 68 20 24 61 72 67 22 20  ="$xrpath $arg" 
1e030 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09 20 20  ;;..    esac..  
1e040 66 69 0a 09 20 20 70 72 65 76 3d 0a 09 20 20 63  fi..  prev=..  c
1e050 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 09 73  ontinue..  ;;..s
1e060 68 72 65 78 74 29 0a 09 20 20 73 68 72 65 78 74  hrext)..  shrext
1e070 5f 63 6d 64 73 3d 22 24 61 72 67 22 0a 09 20 20  _cmds="$arg"..  
1e080 70 72 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e 75  prev=..  continu
1e090 65 0a 09 20 20 3b 3b 0a 09 77 65 61 6b 29 0a 09  e..  ;;..weak)..
1e0a0 20 20 77 65 61 6b 5f 6c 69 62 73 3d 22 24 77 65    weak_libs="$we
1e0b0 61 6b 5f 6c 69 62 73 20 24 61 72 67 22 0a 09 20  ak_libs $arg".. 
1e0c0 20 70 72 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e   prev=..  contin
1e0d0 75 65 0a 09 20 20 3b 3b 0a 09 78 63 63 6c 69 6e  ue..  ;;..xcclin
1e0e0 6b 65 72 29 0a 09 20 20 6c 69 6e 6b 65 72 5f 66  ker)..  linker_f
1e0f0 6c 61 67 73 3d 22 24 6c 69 6e 6b 65 72 5f 66 6c  lags="$linker_fl
1e100 61 67 73 20 24 71 61 72 67 22 0a 09 20 20 63 6f  ags $qarg"..  co
1e110 6d 70 69 6c 65 72 5f 66 6c 61 67 73 3d 22 24 63  mpiler_flags="$c
1e120 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20 24 71  ompiler_flags $q
1e130 61 72 67 22 0a 09 20 20 70 72 65 76 3d 0a 09 20  arg"..  prev=.. 
1e140 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63 6f 6d   func_append com
1e150 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24  pile_command " $
1e160 71 61 72 67 22 0a 09 20 20 66 75 6e 63 5f 61 70  qarg"..  func_ap
1e170 70 65 6e 64 20 66 69 6e 61 6c 69 7a 65 5f 63 6f  pend finalize_co
1e180 6d 6d 61 6e 64 20 22 20 24 71 61 72 67 22 0a 09  mmand " $qarg"..
1e190 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b    continue..  ;;
1e1a0 0a 09 78 63 6f 6d 70 69 6c 65 72 29 0a 09 20 20  ..xcompiler)..  
1e1b0 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 3d 22  compiler_flags="
1e1c0 24 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20  $compiler_flags 
1e1d0 24 71 61 72 67 22 0a 09 20 20 70 72 65 76 3d 0a  $qarg"..  prev=.
1e1e0 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63  .  func_append c
1e1f0 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22  ompile_command "
1e200 20 24 71 61 72 67 22 0a 09 20 20 66 75 6e 63 5f   $qarg"..  func_
1e210 61 70 70 65 6e 64 20 66 69 6e 61 6c 69 7a 65 5f  append finalize_
1e220 63 6f 6d 6d 61 6e 64 20 22 20 24 71 61 72 67 22  command " $qarg"
1e230 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20  ..  continue..  
1e240 3b 3b 0a 09 78 6c 69 6e 6b 65 72 29 0a 09 20 20  ;;..xlinker)..  
1e250 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 22 24 6c  linker_flags="$l
1e260 69 6e 6b 65 72 5f 66 6c 61 67 73 20 24 71 61 72  inker_flags $qar
1e270 67 22 0a 09 20 20 63 6f 6d 70 69 6c 65 72 5f 66  g"..  compiler_f
1e280 6c 61 67 73 3d 22 24 63 6f 6d 70 69 6c 65 72 5f  lags="$compiler_
1e290 66 6c 61 67 73 20 24 77 6c 24 71 61 72 67 22 0a  flags $wl$qarg".
1e2a0 09 20 20 70 72 65 76 3d 0a 09 20 20 66 75 6e 63  .  prev=..  func
1e2b0 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f  _append compile_
1e2c0 63 6f 6d 6d 61 6e 64 20 22 20 24 77 6c 24 71 61  command " $wl$qa
1e2d0 72 67 22 0a 09 20 20 66 75 6e 63 5f 61 70 70 65  rg"..  func_appe
1e2e0 6e 64 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d  nd finalize_comm
1e2f0 61 6e 64 20 22 20 24 77 6c 24 71 61 72 67 22 0a  and " $wl$qarg".
1e300 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b  .  continue..  ;
1e310 3b 0a 09 2a 29 0a 09 20 20 65 76 61 6c 20 22 24  ;..*)..  eval "$
1e320 70 72 65 76 3d 5c 22 5c 24 61 72 67 5c 22 22 0a  prev=\"\$arg\"".
1e330 09 20 20 70 72 65 76 3d 0a 09 20 20 63 6f 6e 74  .  prev=..  cont
1e340 69 6e 75 65 0a 09 20 20 3b 3b 0a 09 65 73 61 63  inue..  ;;..esac
1e350 0a 20 20 20 20 20 20 66 69 20 23 20 74 65 73 74  .      fi # test
1e360 20 2d 6e 20 22 24 70 72 65 76 22 0a 0a 20 20 20   -n "$prev"..   
1e370 20 20 20 70 72 65 76 61 72 67 3d 22 24 61 72 67     prevarg="$arg
1e380 22 0a 0a 20 20 20 20 20 20 63 61 73 65 20 24 61  "..      case $a
1e390 72 67 20 69 6e 0a 20 20 20 20 20 20 2d 61 6c 6c  rg in.      -all
1e3a0 2d 73 74 61 74 69 63 29 0a 09 69 66 20 74 65 73  -static)..if tes
1e3b0 74 20 2d 6e 20 22 24 6c 69 6e 6b 5f 73 74 61 74  t -n "$link_stat
1e3c0 69 63 5f 66 6c 61 67 22 3b 20 74 68 65 6e 0a 09  ic_flag"; then..
1e3d0 20 20 23 20 53 65 65 20 63 6f 6d 6d 65 6e 74 20    # See comment 
1e3e0 66 6f 72 20 2d 73 74 61 74 69 63 20 66 6c 61 67  for -static flag
1e3f0 20 62 65 6c 6f 77 2c 20 66 6f 72 20 6d 6f 72 65   below, for more
1e400 20 64 65 74 61 69 6c 73 2e 0a 09 20 20 66 75 6e   details...  fun
1e410 63 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65  c_append compile
1e420 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 6c 69 6e 6b  _command " $link
1e430 5f 73 74 61 74 69 63 5f 66 6c 61 67 22 0a 09 20  _static_flag".. 
1e440 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e   func_append fin
1e450 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20  alize_command " 
1e460 24 6c 69 6e 6b 5f 73 74 61 74 69 63 5f 66 6c 61  $link_static_fla
1e470 67 22 0a 09 66 69 0a 09 63 6f 6e 74 69 6e 75 65  g"..fi..continue
1e480 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 61 6c 6c  ..;;..      -all
1e490 6f 77 2d 75 6e 64 65 66 69 6e 65 64 29 0a 09 23  ow-undefined)..#
1e4a0 20 46 49 58 4d 45 3a 20 72 65 6d 6f 76 65 20 74   FIXME: remove t
1e4b0 68 69 73 20 66 6c 61 67 20 73 6f 6d 65 74 69 6d  his flag sometim
1e4c0 65 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 2e  e in the future.
1e4d0 0a 09 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72  ..func_fatal_err
1e4e0 6f 72 20 22 5c 60 2d 61 6c 6c 6f 77 2d 75 6e 64  or "\`-allow-und
1e4f0 65 66 69 6e 65 64 27 20 6d 75 73 74 20 6e 6f 74  efined' must not
1e500 20 62 65 20 75 73 65 64 20 62 65 63 61 75 73 65   be used because
1e510 20 69 74 20 69 73 20 74 68 65 20 64 65 66 61 75   it is the defau
1e520 6c 74 22 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d  lt"..;;..      -
1e530 61 76 6f 69 64 2d 76 65 72 73 69 6f 6e 29 0a 09  avoid-version)..
1e540 61 76 6f 69 64 5f 76 65 72 73 69 6f 6e 3d 79 65  avoid_version=ye
1e550 73 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a  s..continue..;;.
1e560 0a 20 20 20 20 20 20 2d 64 6c 6f 70 65 6e 29 0a  .      -dlopen).
1e570 09 70 72 65 76 3d 64 6c 66 69 6c 65 73 0a 09 63  .prev=dlfiles..c
1e580 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20  ontinue..;;..   
1e590 20 20 20 2d 64 6c 70 72 65 6f 70 65 6e 29 0a 09     -dlpreopen)..
1e5a0 70 72 65 76 3d 64 6c 70 72 65 66 69 6c 65 73 0a  prev=dlprefiles.
1e5b0 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20  .continue..;;.. 
1e5c0 20 20 20 20 20 2d 65 78 70 6f 72 74 2d 64 79 6e       -export-dyn
1e5d0 61 6d 69 63 29 0a 09 65 78 70 6f 72 74 5f 64 79  amic)..export_dy
1e5e0 6e 61 6d 69 63 3d 79 65 73 0a 09 63 6f 6e 74 69  namic=yes..conti
1e5f0 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d  nue..;;..      -
1e600 65 78 70 6f 72 74 2d 73 79 6d 62 6f 6c 73 20 7c  export-symbols |
1e610 20 2d 65 78 70 6f 72 74 2d 73 79 6d 62 6f 6c 73   -export-symbols
1e620 2d 72 65 67 65 78 29 0a 09 69 66 20 74 65 73 74  -regex)..if test
1e630 20 2d 6e 20 22 24 65 78 70 6f 72 74 5f 73 79 6d   -n "$export_sym
1e640 62 6f 6c 73 22 20 7c 7c 20 74 65 73 74 20 2d 6e  bols" || test -n
1e650 20 22 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c   "$export_symbol
1e660 73 5f 72 65 67 65 78 22 3b 20 74 68 65 6e 0a 09  s_regex"; then..
1e670 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72    func_fatal_err
1e680 6f 72 20 22 6d 6f 72 65 20 74 68 61 6e 20 6f 6e  or "more than on
1e690 65 20 2d 65 78 70 6f 72 74 65 64 2d 73 79 6d 62  e -exported-symb
1e6a0 6f 6c 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20  ols argument is 
1e6b0 6e 6f 74 20 61 6c 6c 6f 77 65 64 22 0a 09 66 69  not allowed"..fi
1e6c0 0a 09 69 66 20 74 65 73 74 20 22 58 24 61 72 67  ..if test "X$arg
1e6d0 22 20 3d 20 22 58 2d 65 78 70 6f 72 74 2d 73 79  " = "X-export-sy
1e6e0 6d 62 6f 6c 73 22 3b 20 74 68 65 6e 0a 09 20 20  mbols"; then..  
1e6f0 70 72 65 76 3d 65 78 70 73 79 6d 73 0a 09 65 6c  prev=expsyms..el
1e700 73 65 0a 09 20 20 70 72 65 76 3d 65 78 70 73 79  se..  prev=expsy
1e710 6d 73 5f 72 65 67 65 78 0a 09 66 69 0a 09 63 6f  ms_regex..fi..co
1e720 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20  ntinue..;;..    
1e730 20 20 2d 66 72 61 6d 65 77 6f 72 6b 29 0a 09 70    -framework)..p
1e740 72 65 76 3d 66 72 61 6d 65 77 6f 72 6b 0a 09 63  rev=framework..c
1e750 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20  ontinue..;;..   
1e760 20 20 20 2d 69 6e 73 74 2d 70 72 65 66 69 78 2d     -inst-prefix-
1e770 64 69 72 29 0a 09 70 72 65 76 3d 69 6e 73 74 5f  dir)..prev=inst_
1e780 70 72 65 66 69 78 0a 09 63 6f 6e 74 69 6e 75 65  prefix..continue
1e790 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 23 20 54 68  ..;;..      # Th
1e7a0 65 20 6e 61 74 69 76 65 20 49 52 49 58 20 6c 69  e native IRIX li
1e7b0 6e 6b 65 72 20 75 6e 64 65 72 73 74 61 6e 64 73  nker understands
1e7c0 20 2d 4c 41 4e 47 3a 2a 2c 20 2d 4c 49 53 54 3a   -LANG:*, -LIST:
1e7d0 2a 20 61 6e 64 20 2d 4c 4e 4f 3a 2a 0a 20 20 20  * and -LNO:*.   
1e7e0 20 20 20 23 20 73 6f 2c 20 69 66 20 77 65 20 73     # so, if we s
1e7f0 65 65 20 74 68 65 73 65 20 66 6c 61 67 73 20 62  ee these flags b
1e800 65 20 63 61 72 65 66 75 6c 20 6e 6f 74 20 74 6f  e careful not to
1e810 20 74 72 65 61 74 20 74 68 65 6d 20 6c 69 6b 65   treat them like
1e820 20 2d 4c 0a 20 20 20 20 20 20 2d 4c 5b 41 2d 5a   -L.      -L[A-Z
1e830 5d 5b 41 2d 5a 5d 2a 3a 2a 29 0a 09 63 61 73 65  ][A-Z]*:*)..case
1e840 20 24 77 69 74 68 5f 67 63 63 2f 24 68 6f 73 74   $with_gcc/$host
1e850 20 69 6e 0a 09 6e 6f 2f 2a 2d 2a 2d 69 72 69 78   in..no/*-*-irix
1e860 2a 20 7c 20 2f 2a 2d 2a 2d 69 72 69 78 2a 29 0a  * | /*-*-irix*).
1e870 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63  .  func_append c
1e880 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22  ompile_command "
1e890 20 24 61 72 67 22 0a 09 20 20 66 75 6e 63 5f 61   $arg"..  func_a
1e8a0 70 70 65 6e 64 20 66 69 6e 61 6c 69 7a 65 5f 63  ppend finalize_c
1e8b0 6f 6d 6d 61 6e 64 20 22 20 24 61 72 67 22 0a 09  ommand " $arg"..
1e8c0 20 20 3b 3b 0a 09 65 73 61 63 0a 09 63 6f 6e 74    ;;..esac..cont
1e8d0 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
1e8e0 2d 4c 2a 29 0a 09 66 75 6e 63 5f 73 74 72 69 70  -L*)..func_strip
1e8f0 6e 61 6d 65 20 27 2d 4c 27 20 27 27 20 22 24 61  name '-L' '' "$a
1e900 72 67 22 0a 09 64 69 72 3d 24 66 75 6e 63 5f 73  rg"..dir=$func_s
1e910 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a  tripname_result.
1e920 09 69 66 20 74 65 73 74 20 2d 7a 20 22 24 64 69  .if test -z "$di
1e930 72 22 3b 20 74 68 65 6e 0a 09 20 20 69 66 20 74  r"; then..  if t
1e940 65 73 74 20 22 24 23 22 20 2d 67 74 20 30 3b 20  est "$#" -gt 0; 
1e950 74 68 65 6e 0a 09 20 20 20 20 66 75 6e 63 5f 66  then..    func_f
1e960 61 74 61 6c 5f 65 72 72 6f 72 20 22 72 65 71 75  atal_error "requ
1e970 69 72 65 20 6e 6f 20 73 70 61 63 65 20 62 65 74  ire no space bet
1e980 77 65 65 6e 20 5c 60 2d 4c 27 20 61 6e 64 20 5c  ween \`-L' and \
1e990 60 24 31 27 22 0a 09 20 20 65 6c 73 65 0a 09 20  `$1'"..  else.. 
1e9a0 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72     func_fatal_er
1e9b0 72 6f 72 20 22 6e 65 65 64 20 70 61 74 68 20 66  ror "need path f
1e9c0 6f 72 20 5c 60 2d 4c 27 20 6f 70 74 69 6f 6e 22  or \`-L' option"
1e9d0 0a 09 20 20 66 69 0a 09 66 69 0a 09 23 20 57 65  ..  fi..fi..# We
1e9e0 20 6e 65 65 64 20 61 6e 20 61 62 73 6f 6c 75 74   need an absolut
1e9f0 65 20 70 61 74 68 2e 0a 09 63 61 73 65 20 24 64  e path...case $d
1ea00 69 72 20 69 6e 0a 09 5b 5c 5c 2f 5d 2a 20 7c 20  ir in..[\\/]* | 
1ea10 5b 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29  [A-Za-z]:[\\/]*)
1ea20 20 3b 3b 0a 09 2a 29 0a 09 20 20 61 62 73 64 69   ;;..*)..  absdi
1ea30 72 3d 60 63 64 20 22 24 64 69 72 22 20 26 26 20  r=`cd "$dir" && 
1ea40 70 77 64 60 0a 09 20 20 74 65 73 74 20 2d 7a 20  pwd`..  test -z 
1ea50 22 24 61 62 73 64 69 72 22 20 26 26 20 5c 0a 09  "$absdir" && \..
1ea60 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65      func_fatal_e
1ea70 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 64 65 74  rror "cannot det
1ea80 65 72 6d 69 6e 65 20 61 62 73 6f 6c 75 74 65 20  ermine absolute 
1ea90 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 20 6f  directory name o
1eaa0 66 20 5c 60 24 64 69 72 27 22 0a 09 20 20 64 69  f \`$dir'"..  di
1eab0 72 3d 22 24 61 62 73 64 69 72 22 0a 09 20 20 3b  r="$absdir"..  ;
1eac0 3b 0a 09 65 73 61 63 0a 09 63 61 73 65 20 22 24  ;..esac..case "$
1ead0 64 65 70 6c 69 62 73 20 22 20 69 6e 0a 09 2a 22  deplibs " in..*"
1eae0 20 2d 4c 24 64 69 72 20 22 2a 29 20 3b 3b 0a 09   -L$dir "*) ;;..
1eaf0 2a 29 0a 09 20 20 64 65 70 6c 69 62 73 3d 22 24  *)..  deplibs="$
1eb00 64 65 70 6c 69 62 73 20 2d 4c 24 64 69 72 22 0a  deplibs -L$dir".
1eb10 09 20 20 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  .  lib_search_pa
1eb20 74 68 3d 22 24 6c 69 62 5f 73 65 61 72 63 68 5f  th="$lib_search_
1eb30 70 61 74 68 20 24 64 69 72 22 0a 09 20 20 3b 3b  path $dir"..  ;;
1eb40 0a 09 65 73 61 63 0a 09 63 61 73 65 20 24 68 6f  ..esac..case $ho
1eb50 73 74 20 69 6e 0a 09 2a 2d 2a 2d 63 79 67 77 69  st in..*-*-cygwi
1eb60 6e 2a 20 7c 20 2a 2d 2a 2d 6d 69 6e 67 77 2a 20  n* | *-*-mingw* 
1eb70 7c 20 2a 2d 2a 2d 70 77 33 32 2a 20 7c 20 2a 2d  | *-*-pw32* | *-
1eb80 2a 2d 6f 73 32 2a 20 7c 20 2a 2d 63 65 67 63 63  *-os2* | *-cegcc
1eb90 2a 29 0a 09 20 20 74 65 73 74 62 69 6e 64 69 72  *)..  testbindir
1eba0 3d 60 24 45 43 48 4f 20 22 58 24 64 69 72 22 20  =`$ECHO "X$dir" 
1ebb0 7c 20 24 58 73 65 64 20 2d 65 20 27 73 2a 2f 6c  | $Xsed -e 's*/l
1ebc0 69 62 24 2a 2f 62 69 6e 2a 27 60 0a 09 20 20 63  ib$*/bin*'`..  c
1ebd0 61 73 65 20 3a 24 64 6c 6c 73 65 61 72 63 68 70  ase :$dllsearchp
1ebe0 61 74 68 3a 20 69 6e 0a 09 20 20 2a 22 3a 24 64  ath: in..  *":$d
1ebf0 69 72 3a 22 2a 29 20 3b 3b 0a 09 20 20 3a 3a 29  ir:"*) ;;..  ::)
1ec00 20 64 6c 6c 73 65 61 72 63 68 70 61 74 68 3d 24   dllsearchpath=$
1ec10 64 69 72 3b 3b 0a 09 20 20 2a 29 20 64 6c 6c 73  dir;;..  *) dlls
1ec20 65 61 72 63 68 70 61 74 68 3d 22 24 64 6c 6c 73  earchpath="$dlls
1ec30 65 61 72 63 68 70 61 74 68 3a 24 64 69 72 22 3b  earchpath:$dir";
1ec40 3b 0a 09 20 20 65 73 61 63 0a 09 20 20 63 61 73  ;..  esac..  cas
1ec50 65 20 3a 24 64 6c 6c 73 65 61 72 63 68 70 61 74  e :$dllsearchpat
1ec60 68 3a 20 69 6e 0a 09 20 20 2a 22 3a 24 74 65 73  h: in..  *":$tes
1ec70 74 62 69 6e 64 69 72 3a 22 2a 29 20 3b 3b 0a 09  tbindir:"*) ;;..
1ec80 20 20 3a 3a 29 20 64 6c 6c 73 65 61 72 63 68 70    ::) dllsearchp
1ec90 61 74 68 3d 24 74 65 73 74 62 69 6e 64 69 72 3b  ath=$testbindir;
1eca0 3b 0a 09 20 20 2a 29 20 64 6c 6c 73 65 61 72 63  ;..  *) dllsearc
1ecb0 68 70 61 74 68 3d 22 24 64 6c 6c 73 65 61 72 63  hpath="$dllsearc
1ecc0 68 70 61 74 68 3a 24 74 65 73 74 62 69 6e 64 69  hpath:$testbindi
1ecd0 72 22 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20  r";;..  esac..  
1ece0 3b 3b 0a 09 65 73 61 63 0a 09 63 6f 6e 74 69 6e  ;;..esac..contin
1ecf0 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 6c  ue..;;..      -l
1ed00 2a 29 0a 09 69 66 20 74 65 73 74 20 22 58 24 61  *)..if test "X$a
1ed10 72 67 22 20 3d 20 22 58 2d 6c 63 22 20 7c 7c 20  rg" = "X-lc" || 
1ed20 74 65 73 74 20 22 58 24 61 72 67 22 20 3d 20 22  test "X$arg" = "
1ed30 58 2d 6c 6d 22 3b 20 74 68 65 6e 0a 09 20 20 63  X-lm"; then..  c
1ed40 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 20  ase $host in..  
1ed50 2a 2d 2a 2d 63 79 67 77 69 6e 2a 20 7c 20 2a 2d  *-*-cygwin* | *-
1ed60 2a 2d 6d 69 6e 67 77 2a 20 7c 20 2a 2d 2a 2d 70  *-mingw* | *-*-p
1ed70 77 33 32 2a 20 7c 20 2a 2d 2a 2d 62 65 6f 73 2a  w32* | *-*-beos*
1ed80 20 7c 20 2a 2d 63 65 67 63 63 2a 29 0a 09 20 20   | *-cegcc*)..  
1ed90 20 20 23 20 54 68 65 73 65 20 73 79 73 74 65 6d    # These system
1eda0 73 20 64 6f 6e 27 74 20 61 63 74 75 61 6c 6c 79  s don't actually
1edb0 20 68 61 76 65 20 61 20 43 20 6f 72 20 6d 61 74   have a C or mat
1edc0 68 20 6c 69 62 72 61 72 79 20 28 61 73 20 73 75  h library (as su
1edd0 63 68 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75  ch)..    continu
1ede0 65 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a  e..    ;;..  *-*
1edf0 2d 6f 73 32 2a 29 0a 09 20 20 20 20 23 20 54 68  -os2*)..    # Th
1ee00 65 73 65 20 73 79 73 74 65 6d 73 20 64 6f 6e 27  ese systems don'
1ee10 74 20 61 63 74 75 61 6c 6c 79 20 68 61 76 65 20  t actually have 
1ee20 61 20 43 20 6c 69 62 72 61 72 79 20 28 61 73 20  a C library (as 
1ee30 73 75 63 68 29 0a 09 20 20 20 20 74 65 73 74 20  such)..    test 
1ee40 22 58 24 61 72 67 22 20 3d 20 22 58 2d 6c 63 22  "X$arg" = "X-lc"
1ee50 20 26 26 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20   && continue..  
1ee60 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 6f 70 65 6e    ;;..  *-*-open
1ee70 62 73 64 2a 20 7c 20 2a 2d 2a 2d 66 72 65 65 62  bsd* | *-*-freeb
1ee80 73 64 2a 20 7c 20 2a 2d 2a 2d 64 72 61 67 6f 6e  sd* | *-*-dragon
1ee90 66 6c 79 2a 29 0a 09 20 20 20 20 23 20 44 6f 20  fly*)..    # Do 
1eea0 6e 6f 74 20 69 6e 63 6c 75 64 65 20 6c 69 62 63  not include libc
1eeb0 20 64 75 65 20 74 6f 20 75 73 20 68 61 76 69 6e   due to us havin
1eec0 67 20 6c 69 62 63 2f 6c 69 62 63 5f 72 2e 0a 09  g libc/libc_r...
1eed0 20 20 20 20 74 65 73 74 20 22 58 24 61 72 67 22      test "X$arg"
1eee0 20 3d 20 22 58 2d 6c 63 22 20 26 26 20 63 6f 6e   = "X-lc" && con
1eef0 74 69 6e 75 65 0a 09 20 20 20 20 3b 3b 0a 09 20  tinue..    ;;.. 
1ef00 20 2a 2d 2a 2d 72 68 61 70 73 6f 64 79 2a 20 7c   *-*-rhapsody* |
1ef10 20 2a 2d 2a 2d 64 61 72 77 69 6e 31 2e 5b 30 31   *-*-darwin1.[01
1ef20 32 5d 29 0a 09 20 20 20 20 23 20 52 68 61 70 73  2])..    # Rhaps
1ef30 6f 64 79 20 43 20 61 6e 64 20 6d 61 74 68 20 6c  ody C and math l
1ef40 69 62 72 61 72 69 65 73 20 61 72 65 20 69 6e 20  ibraries are in 
1ef50 74 68 65 20 53 79 73 74 65 6d 20 66 72 61 6d 65  the System frame
1ef60 77 6f 72 6b 0a 09 20 20 20 20 64 65 70 6c 69 62  work..    deplib
1ef70 73 3d 22 24 64 65 70 6c 69 62 73 20 53 79 73 74  s="$deplibs Syst
1ef80 65 6d 2e 6c 74 66 72 61 6d 65 77 6f 72 6b 22 0a  em.ltframework".
1ef90 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20  .    continue.. 
1efa0 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 73 63 6f     ;;..  *-*-sco
1efb0 33 2e 32 76 35 2a 20 7c 20 2a 2d 2a 2d 73 63 6f  3.2v5* | *-*-sco
1efc0 35 76 36 2a 29 0a 09 20 20 20 20 23 20 43 61 75  5v6*)..    # Cau
1efd0 73 65 73 20 70 72 6f 62 6c 65 6d 73 20 77 69 74  ses problems wit
1efe0 68 20 5f 5f 63 74 79 70 65 0a 09 20 20 20 20 74  h __ctype..    t
1eff0 65 73 74 20 22 58 24 61 72 67 22 20 3d 20 22 58  est "X$arg" = "X
1f000 2d 6c 63 22 20 26 26 20 63 6f 6e 74 69 6e 75 65  -lc" && continue
1f010 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d  ..    ;;..  *-*-
1f020 73 79 73 76 34 2e 32 75 77 32 2a 20 7c 20 2a 2d  sysv4.2uw2* | *-
1f030 2a 2d 73 79 73 76 35 2a 20 7c 20 2a 2d 2a 2d 75  *-sysv5* | *-*-u
1f040 6e 69 78 77 61 72 65 2a 20 7c 20 2a 2d 2a 2d 4f  nixware* | *-*-O
1f050 70 65 6e 55 4e 49 58 2a 29 0a 09 20 20 20 20 23  penUNIX*)..    #
1f060 20 43 6f 6d 70 69 6c 65 72 20 69 6e 73 65 72 74   Compiler insert
1f070 73 20 6c 69 62 63 20 69 6e 20 74 68 65 20 63 6f  s libc in the co
1f080 72 72 65 63 74 20 70 6c 61 63 65 20 66 6f 72 20  rrect place for 
1f090 74 68 72 65 61 64 73 20 74 6f 20 77 6f 72 6b 0a  threads to work.
1f0a0 09 20 20 20 20 74 65 73 74 20 22 58 24 61 72 67  .    test "X$arg
1f0b0 22 20 3d 20 22 58 2d 6c 63 22 20 26 26 20 63 6f  " = "X-lc" && co
1f0c0 6e 74 69 6e 75 65 0a 09 20 20 20 20 3b 3b 0a 09  ntinue..    ;;..
1f0d0 20 20 65 73 61 63 0a 09 65 6c 69 66 20 74 65 73    esac..elif tes
1f0e0 74 20 22 58 24 61 72 67 22 20 3d 20 22 58 2d 6c  t "X$arg" = "X-l
1f0f0 63 5f 72 22 3b 20 74 68 65 6e 0a 09 20 63 61 73  c_r"; then.. cas
1f100 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 2a 2d 2a  e $host in.. *-*
1f110 2d 6f 70 65 6e 62 73 64 2a 20 7c 20 2a 2d 2a 2d  -openbsd* | *-*-
1f120 66 72 65 65 62 73 64 2a 20 7c 20 2a 2d 2a 2d 64  freebsd* | *-*-d
1f130 72 61 67 6f 6e 66 6c 79 2a 29 0a 09 20 20 20 23  ragonfly*)..   #
1f140 20 44 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20   Do not include 
1f150 6c 69 62 63 5f 72 20 64 69 72 65 63 74 6c 79 2c  libc_r directly,
1f160 20 75 73 65 20 2d 70 74 68 72 65 61 64 20 66 6c   use -pthread fl
1f170 61 67 2e 0a 09 20 20 20 63 6f 6e 74 69 6e 75 65  ag...   continue
1f180 0a 09 20 20 20 3b 3b 0a 09 20 65 73 61 63 0a 09  ..   ;;.. esac..
1f190 66 69 0a 09 64 65 70 6c 69 62 73 3d 22 24 64 65  fi..deplibs="$de
1f1a0 70 6c 69 62 73 20 24 61 72 67 22 0a 09 63 6f 6e  plibs $arg"..con
1f1b0 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20  tinue..;;..     
1f1c0 20 2d 6d 6f 64 75 6c 65 29 0a 09 6d 6f 64 75 6c   -module)..modul
1f1d0 65 3d 79 65 73 0a 09 63 6f 6e 74 69 6e 75 65 0a  e=yes..continue.
1f1e0 09 3b 3b 0a 0a 20 20 20 20 20 20 23 20 54 72 75  .;;..      # Tru
1f1f0 36 34 20 55 4e 49 58 20 75 73 65 73 20 2d 6d 6f  64 UNIX uses -mo
1f200 64 65 6c 20 5b 61 72 67 5d 20 74 6f 20 64 65 74  del [arg] to det
1f210 65 72 6d 69 6e 65 20 74 68 65 20 6c 61 79 6f 75  ermine the layou
1f220 74 20 6f 66 20 43 2b 2b 0a 20 20 20 20 20 20 23  t of C++.      #
1f230 20 63 6c 61 73 73 65 73 2c 20 6e 61 6d 65 20 6d   classes, name m
1f240 61 6e 67 6c 69 6e 67 2c 20 61 6e 64 20 65 78 63  angling, and exc
1f250 65 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 2e  eption handling.
1f260 0a 20 20 20 20 20 20 23 20 44 61 72 77 69 6e 20  .      # Darwin 
1f270 75 73 65 73 20 74 68 65 20 2d 61 72 63 68 20 66  uses the -arch f
1f280 6c 61 67 20 74 6f 20 64 65 74 65 72 6d 69 6e 65  lag to determine
1f290 20 6f 75 74 70 75 74 20 61 72 63 68 69 74 65 63   output architec
1f2a0 74 75 72 65 2e 0a 20 20 20 20 20 20 2d 6d 6f 64  ture..      -mod
1f2b0 65 6c 7c 2d 61 72 63 68 7c 2d 69 73 79 73 72 6f  el|-arch|-isysro
1f2c0 6f 74 29 0a 09 63 6f 6d 70 69 6c 65 72 5f 66 6c  ot)..compiler_fl
1f2d0 61 67 73 3d 22 24 63 6f 6d 70 69 6c 65 72 5f 66  ags="$compiler_f
1f2e0 6c 61 67 73 20 24 61 72 67 22 0a 09 66 75 6e 63  lags $arg"..func
1f2f0 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f  _append compile_
1f300 63 6f 6d 6d 61 6e 64 20 22 20 24 61 72 67 22 0a  command " $arg".
1f310 09 66 75 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e  .func_append fin
1f320 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20  alize_command " 
1f330 24 61 72 67 22 0a 09 70 72 65 76 3d 78 63 6f 6d  $arg"..prev=xcom
1f340 70 69 6c 65 72 0a 09 63 6f 6e 74 69 6e 75 65 0a  piler..continue.
1f350 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 6d 74 7c 2d  .;;..      -mt|-
1f360 6d 74 68 72 65 61 64 73 7c 2d 6b 74 68 72 65 61  mthreads|-kthrea
1f370 64 7c 2d 4b 74 68 72 65 61 64 7c 2d 70 74 68 72  d|-Kthread|-pthr
1f380 65 61 64 7c 2d 70 74 68 72 65 61 64 73 7c 2d 2d  ead|-pthreads|--
1f390 74 68 72 65 61 64 2d 73 61 66 65 7c 2d 74 68 72  thread-safe|-thr
1f3a0 65 61 64 73 29 0a 09 63 6f 6d 70 69 6c 65 72 5f  eads)..compiler_
1f3b0 66 6c 61 67 73 3d 22 24 63 6f 6d 70 69 6c 65 72  flags="$compiler
1f3c0 5f 66 6c 61 67 73 20 24 61 72 67 22 0a 09 66 75  _flags $arg"..fu
1f3d0 6e 63 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c  nc_append compil
1f3e0 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 61 72 67  e_command " $arg
1f3f0 22 0a 09 66 75 6e 63 5f 61 70 70 65 6e 64 20 66  "..func_append f
1f400 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20  inalize_command 
1f410 22 20 24 61 72 67 22 0a 09 63 61 73 65 20 22 24  " $arg"..case "$
1f420 6e 65 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69  new_inherited_li
1f430 6e 6b 65 72 5f 66 6c 61 67 73 20 22 20 69 6e 0a  nker_flags " in.
1f440 09 20 20 20 20 2a 22 20 24 61 72 67 20 22 2a 29  .    *" $arg "*)
1f450 20 3b 3b 0a 09 20 20 20 20 2a 20 29 20 6e 65 77   ;;..    * ) new
1f460 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65  _inherited_linke
1f470 72 5f 66 6c 61 67 73 3d 22 24 6e 65 77 5f 69 6e  r_flags="$new_in
1f480 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66  herited_linker_f
1f490 6c 61 67 73 20 24 61 72 67 22 20 3b 3b 0a 09 65  lags $arg" ;;..e
1f4a0 73 61 63 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b  sac..continue..;
1f4b0 3b 0a 0a 20 20 20 20 20 20 2d 6d 75 6c 74 69 5f  ;..      -multi_
1f4c0 6d 6f 64 75 6c 65 29 0a 09 73 69 6e 67 6c 65 5f  module)..single_
1f4d0 6d 6f 64 75 6c 65 3d 22 24 7b 77 6c 7d 2d 6d 75  module="${wl}-mu
1f4e0 6c 74 69 5f 6d 6f 64 75 6c 65 22 0a 09 63 6f 6e  lti_module"..con
1f4f0 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20  tinue..;;..     
1f500 20 2d 6e 6f 2d 66 61 73 74 2d 69 6e 73 74 61 6c   -no-fast-instal
1f510 6c 29 0a 09 66 61 73 74 5f 69 6e 73 74 61 6c 6c  l)..fast_install
1f520 3d 6e 6f 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b  =no..continue..;
1f530 3b 0a 0a 20 20 20 20 20 20 2d 6e 6f 2d 69 6e 73  ;..      -no-ins
1f540 74 61 6c 6c 29 0a 09 63 61 73 65 20 24 68 6f 73  tall)..case $hos
1f550 74 20 69 6e 0a 09 2a 2d 2a 2d 63 79 67 77 69 6e  t in..*-*-cygwin
1f560 2a 20 7c 20 2a 2d 2a 2d 6d 69 6e 67 77 2a 20 7c  * | *-*-mingw* |
1f570 20 2a 2d 2a 2d 70 77 33 32 2a 20 7c 20 2a 2d 2a   *-*-pw32* | *-*
1f580 2d 6f 73 32 2a 20 7c 20 2a 2d 2a 2d 64 61 72 77  -os2* | *-*-darw
1f590 69 6e 2a 20 7c 20 2a 2d 63 65 67 63 63 2a 29 0a  in* | *-cegcc*).
1f5a0 09 20 20 23 20 54 68 65 20 50 41 54 48 20 68 61  .  # The PATH ha
1f5b0 63 6b 65 72 79 20 69 6e 20 77 72 61 70 70 65 72  ckery in wrapper
1f5c0 20 73 63 72 69 70 74 73 20 69 73 20 72 65 71 75   scripts is requ
1f5d0 69 72 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 0a  ired on Windows.
1f5e0 09 20 20 23 20 61 6e 64 20 44 61 72 77 69 6e 20  .  # and Darwin 
1f5f0 69 6e 20 6f 72 64 65 72 20 66 6f 72 20 74 68 65  in order for the
1f600 20 6c 6f 61 64 65 72 20 74 6f 20 66 69 6e 64 20   loader to find 
1f610 61 6e 79 20 64 6c 6c 73 20 69 74 20 6e 65 65 64  any dlls it need
1f620 73 2e 0a 09 20 20 66 75 6e 63 5f 77 61 72 6e 69  s...  func_warni
1f630 6e 67 20 22 5c 60 2d 6e 6f 2d 69 6e 73 74 61 6c  ng "\`-no-instal
1f640 6c 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f  l' is ignored fo
1f650 72 20 24 68 6f 73 74 22 0a 09 20 20 66 75 6e 63  r $host"..  func
1f660 5f 77 61 72 6e 69 6e 67 20 22 61 73 73 75 6d 69  _warning "assumi
1f670 6e 67 20 5c 60 2d 6e 6f 2d 66 61 73 74 2d 69 6e  ng \`-no-fast-in
1f680 73 74 61 6c 6c 27 20 69 6e 73 74 65 61 64 22 0a  stall' instead".
1f690 09 20 20 66 61 73 74 5f 69 6e 73 74 61 6c 6c 3d  .  fast_install=
1f6a0 6e 6f 0a 09 20 20 3b 3b 0a 09 2a 29 20 6e 6f 5f  no..  ;;..*) no_
1f6b0 69 6e 73 74 61 6c 6c 3d 79 65 73 20 3b 3b 0a 09  install=yes ;;..
1f6c0 65 73 61 63 0a 09 63 6f 6e 74 69 6e 75 65 0a 09  esac..continue..
1f6d0 3b 3b 0a 0a 20 20 20 20 20 20 2d 6e 6f 2d 75 6e  ;;..      -no-un
1f6e0 64 65 66 69 6e 65 64 29 0a 09 61 6c 6c 6f 77 5f  defined)..allow_
1f6f0 75 6e 64 65 66 69 6e 65 64 3d 6e 6f 0a 09 63 6f  undefined=no..co
1f700 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20  ntinue..;;..    
1f710 20 20 2d 6f 62 6a 65 63 74 6c 69 73 74 29 0a 09    -objectlist)..
1f720 70 72 65 76 3d 6f 62 6a 65 63 74 6c 69 73 74 0a  prev=objectlist.
1f730 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20  .continue..;;.. 
1f740 20 20 20 20 20 2d 6f 29 20 70 72 65 76 3d 6f 75       -o) prev=ou
1f750 74 70 75 74 20 3b 3b 0a 0a 20 20 20 20 20 20 2d  tput ;;..      -
1f760 70 72 65 63 69 6f 75 73 2d 66 69 6c 65 73 2d 72  precious-files-r
1f770 65 67 65 78 29 0a 09 70 72 65 76 3d 70 72 65 63  egex)..prev=prec
1f780 69 6f 75 73 5f 72 65 67 65 78 0a 09 63 6f 6e 74  ious_regex..cont
1f790 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
1f7a0 2d 72 65 6c 65 61 73 65 29 0a 09 70 72 65 76 3d  -release)..prev=
1f7b0 72 65 6c 65 61 73 65 0a 09 63 6f 6e 74 69 6e 75  release..continu
1f7c0 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 72 70  e..;;..      -rp
1f7d0 61 74 68 29 0a 09 70 72 65 76 3d 72 70 61 74 68  ath)..prev=rpath
1f7e0 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a  ..continue..;;..
1f7f0 20 20 20 20 20 20 2d 52 29 0a 09 70 72 65 76 3d        -R)..prev=
1f800 78 72 70 61 74 68 0a 09 63 6f 6e 74 69 6e 75 65  xrpath..continue
1f810 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 52 2a 29  ..;;..      -R*)
1f820 0a 09 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  ..func_stripname
1f830 20 27 2d 52 27 20 27 27 20 22 24 61 72 67 22 0a   '-R' '' "$arg".
1f840 09 64 69 72 3d 24 66 75 6e 63 5f 73 74 72 69 70  .dir=$func_strip
1f850 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 09 23 20 57  name_result..# W
1f860 65 20 6e 65 65 64 20 61 6e 20 61 62 73 6f 6c 75  e need an absolu
1f870 74 65 20 70 61 74 68 2e 0a 09 63 61 73 65 20 24  te path...case $
1f880 64 69 72 20 69 6e 0a 09 5b 5c 5c 2f 5d 2a 20 7c  dir in..[\\/]* |
1f890 20 5b 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a   [A-Za-z]:[\\/]*
1f8a0 29 20 3b 3b 0a 09 2a 29 0a 09 20 20 66 75 6e 63  ) ;;..*)..  func
1f8b0 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 6f 6e  _fatal_error "on
1f8c0 6c 79 20 61 62 73 6f 6c 75 74 65 20 72 75 6e 2d  ly absolute run-
1f8d0 70 61 74 68 73 20 61 72 65 20 61 6c 6c 6f 77 65  paths are allowe
1f8e0 64 22 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a 09  d"..  ;;..esac..
1f8f0 63 61 73 65 20 22 24 78 72 70 61 74 68 20 22 20  case "$xrpath " 
1f900 69 6e 0a 09 2a 22 20 24 64 69 72 20 22 2a 29 20  in..*" $dir "*) 
1f910 3b 3b 0a 09 2a 29 20 78 72 70 61 74 68 3d 22 24  ;;..*) xrpath="$
1f920 78 72 70 61 74 68 20 24 64 69 72 22 20 3b 3b 0a  xrpath $dir" ;;.
1f930 09 65 73 61 63 0a 09 63 6f 6e 74 69 6e 75 65 0a  .esac..continue.
1f940 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 73 68 61 72  .;;..      -shar
1f950 65 64 29 0a 09 23 20 54 68 65 20 65 66 66 65 63  ed)..# The effec
1f960 74 73 20 6f 66 20 2d 73 68 61 72 65 64 20 61 72  ts of -shared ar
1f970 65 20 64 65 66 69 6e 65 64 20 69 6e 20 61 20 70  e defined in a p
1f980 72 65 76 69 6f 75 73 20 6c 6f 6f 70 2e 0a 09 63  revious loop...c
1f990 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20  ontinue..;;..   
1f9a0 20 20 20 2d 73 68 72 65 78 74 29 0a 09 70 72 65     -shrext)..pre
1f9b0 76 3d 73 68 72 65 78 74 0a 09 63 6f 6e 74 69 6e  v=shrext..contin
1f9c0 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 73  ue..;;..      -s
1f9d0 74 61 74 69 63 20 7c 20 2d 73 74 61 74 69 63 2d  tatic | -static-
1f9e0 6c 69 62 74 6f 6f 6c 2d 6c 69 62 73 29 0a 09 23  libtool-libs)..#
1f9f0 20 54 68 65 20 65 66 66 65 63 74 73 20 6f 66 20   The effects of 
1fa00 2d 73 74 61 74 69 63 20 61 72 65 20 64 65 66 69  -static are defi
1fa10 6e 65 64 20 69 6e 20 61 20 70 72 65 76 69 6f 75  ned in a previou
1fa20 73 20 6c 6f 6f 70 2e 0a 09 23 20 57 65 20 75 73  s loop...# We us
1fa30 65 64 20 74 6f 20 64 6f 20 74 68 65 20 73 61 6d  ed to do the sam
1fa40 65 20 61 73 20 2d 61 6c 6c 2d 73 74 61 74 69 63  e as -all-static
1fa50 20 6f 6e 20 70 6c 61 74 66 6f 72 6d 73 20 74 68   on platforms th
1fa60 61 74 0a 09 23 20 64 69 64 6e 27 74 20 68 61 76  at..# didn't hav
1fa70 65 20 61 20 50 49 43 20 66 6c 61 67 2c 20 62 75  e a PIC flag, bu
1fa80 74 20 74 68 65 20 61 73 73 75 6d 70 74 69 6f 6e  t the assumption
1fa90 20 74 68 61 74 20 74 68 65 20 65 66 66 65 63 74   that the effect
1faa0 73 0a 09 23 20 77 6f 75 6c 64 20 62 65 20 65 71  s..# would be eq
1fab0 75 69 76 61 6c 65 6e 74 20 77 61 73 20 77 72 6f  uivalent was wro
1fac0 6e 67 2e 20 20 49 74 20 77 6f 75 6c 64 20 62 72  ng.  It would br
1fad0 65 61 6b 20 6f 6e 20 61 74 20 6c 65 61 73 74 0a  eak on at least.
1fae0 09 23 20 44 69 67 69 74 61 6c 20 55 6e 69 78 20  .# Digital Unix 
1faf0 61 6e 64 20 41 49 58 2e 0a 09 63 6f 6e 74 69 6e  and AIX...contin
1fb00 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 74  ue..;;..      -t
1fb10 68 72 65 61 64 2d 73 61 66 65 29 0a 09 74 68 72  hread-safe)..thr
1fb20 65 61 64 5f 73 61 66 65 3d 79 65 73 0a 09 63 6f  ead_safe=yes..co
1fb30 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20  ntinue..;;..    
1fb40 20 20 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 29    -version-info)
1fb50 0a 09 70 72 65 76 3d 76 69 6e 66 6f 0a 09 63 6f  ..prev=vinfo..co
1fb60 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20  ntinue..;;..    
1fb70 20 20 2d 76 65 72 73 69 6f 6e 2d 6e 75 6d 62 65    -version-numbe
1fb80 72 29 0a 09 70 72 65 76 3d 76 69 6e 66 6f 0a 09  r)..prev=vinfo..
1fb90 76 69 6e 66 6f 5f 6e 75 6d 62 65 72 3d 79 65 73  vinfo_number=yes
1fba0 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a  ..continue..;;..
1fbb0 20 20 20 20 20 20 2d 77 65 61 6b 29 0a 20 20 20        -weak).   
1fbc0 20 20 20 20 20 70 72 65 76 3d 77 65 61 6b 0a 09       prev=weak..
1fbd0 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20  continue..;;..  
1fbe0 20 20 20 20 2d 57 63 2c 2a 29 0a 09 66 75 6e 63      -Wc,*)..func
1fbf0 5f 73 74 72 69 70 6e 61 6d 65 20 27 2d 57 63 2c  _stripname '-Wc,
1fc00 27 20 27 27 20 22 24 61 72 67 22 0a 09 61 72 67  ' '' "$arg"..arg
1fc10 73 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  s=$func_stripnam
1fc20 65 5f 72 65 73 75 6c 74 0a 09 61 72 67 3d 0a 09  e_result..arg=..
1fc30 73 61 76 65 5f 69 66 73 3d 22 24 49 46 53 22 3b  save_ifs="$IFS";
1fc40 20 49 46 53 3d 27 2c 27 0a 09 66 6f 72 20 66 6c   IFS=','..for fl
1fc50 61 67 20 69 6e 20 24 61 72 67 73 3b 20 64 6f 0a  ag in $args; do.
1fc60 09 20 20 49 46 53 3d 22 24 73 61 76 65 5f 69 66  .  IFS="$save_if
1fc70 73 22 0a 20 20 20 20 20 20 20 20 20 20 66 75 6e  s".          fun
1fc80 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c  c_quote_for_eval
1fc90 20 22 24 66 6c 61 67 22 0a 09 20 20 61 72 67 3d   "$flag"..  arg=
1fca0 22 24 61 72 67 20 24 77 6c 24 66 75 6e 63 5f 71  "$arg $wl$func_q
1fcb0 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65  uote_for_eval_re
1fcc0 73 75 6c 74 22 0a 09 20 20 63 6f 6d 70 69 6c 65  sult"..  compile
1fcd0 72 5f 66 6c 61 67 73 3d 22 24 63 6f 6d 70 69 6c  r_flags="$compil
1fce0 65 72 5f 66 6c 61 67 73 20 24 66 75 6e 63 5f 71  er_flags $func_q
1fcf0 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65  uote_for_eval_re
1fd00 73 75 6c 74 22 0a 09 64 6f 6e 65 0a 09 49 46 53  sult"..done..IFS
1fd10 3d 22 24 73 61 76 65 5f 69 66 73 22 0a 09 66 75  ="$save_ifs"..fu
1fd20 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27 20 27  nc_stripname ' '
1fd30 20 27 27 20 22 24 61 72 67 22 0a 09 61 72 67 3d   '' "$arg"..arg=
1fd40 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f  $func_stripname_
1fd50 72 65 73 75 6c 74 0a 09 3b 3b 0a 0a 20 20 20 20  result..;;..    
1fd60 20 20 2d 57 6c 2c 2a 29 0a 09 66 75 6e 63 5f 73    -Wl,*)..func_s
1fd70 74 72 69 70 6e 61 6d 65 20 27 2d 57 6c 2c 27 20  tripname '-Wl,' 
1fd80 27 27 20 22 24 61 72 67 22 0a 09 61 72 67 73 3d  '' "$arg"..args=
1fd90 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f  $func_stripname_
1fda0 72 65 73 75 6c 74 0a 09 61 72 67 3d 0a 09 73 61  result..arg=..sa
1fdb0 76 65 5f 69 66 73 3d 22 24 49 46 53 22 3b 20 49  ve_ifs="$IFS"; I
1fdc0 46 53 3d 27 2c 27 0a 09 66 6f 72 20 66 6c 61 67  FS=','..for flag
1fdd0 20 69 6e 20 24 61 72 67 73 3b 20 64 6f 0a 09 20   in $args; do.. 
1fde0 20 49 46 53 3d 22 24 73 61 76 65 5f 69 66 73 22   IFS="$save_ifs"
1fdf0 0a 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f  .          func_
1fe00 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 20 22  quote_for_eval "
1fe10 24 66 6c 61 67 22 0a 09 20 20 61 72 67 3d 22 24  $flag"..  arg="$
1fe20 61 72 67 20 24 77 6c 24 66 75 6e 63 5f 71 75 6f  arg $wl$func_quo
1fe30 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75  te_for_eval_resu
1fe40 6c 74 22 0a 09 20 20 63 6f 6d 70 69 6c 65 72 5f  lt"..  compiler_
1fe50 66 6c 61 67 73 3d 22 24 63 6f 6d 70 69 6c 65 72  flags="$compiler
1fe60 5f 66 6c 61 67 73 20 24 77 6c 24 66 75 6e 63 5f  _flags $wl$func_
1fe70 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72  quote_for_eval_r
1fe80 65 73 75 6c 74 22 0a 09 20 20 6c 69 6e 6b 65 72  esult"..  linker
1fe90 5f 66 6c 61 67 73 3d 22 24 6c 69 6e 6b 65 72 5f  _flags="$linker_
1fea0 66 6c 61 67 73 20 24 66 75 6e 63 5f 71 75 6f 74  flags $func_quot
1feb0 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c  e_for_eval_resul
1fec0 74 22 0a 09 64 6f 6e 65 0a 09 49 46 53 3d 22 24  t"..done..IFS="$
1fed0 73 61 76 65 5f 69 66 73 22 0a 09 66 75 6e 63 5f  save_ifs"..func_
1fee0 73 74 72 69 70 6e 61 6d 65 20 27 20 27 20 27 27  stripname ' ' ''
1fef0 20 22 24 61 72 67 22 0a 09 61 72 67 3d 24 66 75   "$arg"..arg=$fu
1ff00 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65 73  nc_stripname_res
1ff10 75 6c 74 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d  ult..;;..      -
1ff20 58 63 6f 6d 70 69 6c 65 72 29 0a 09 70 72 65 76  Xcompiler)..prev
1ff30 3d 78 63 6f 6d 70 69 6c 65 72 0a 09 63 6f 6e 74  =xcompiler..cont
1ff40 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
1ff50 2d 58 6c 69 6e 6b 65 72 29 0a 09 70 72 65 76 3d  -Xlinker)..prev=
1ff60 78 6c 69 6e 6b 65 72 0a 09 63 6f 6e 74 69 6e 75  xlinker..continu
1ff70 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 58 43  e..;;..      -XC
1ff80 43 6c 69 6e 6b 65 72 29 0a 09 70 72 65 76 3d 78  Clinker)..prev=x
1ff90 63 63 6c 69 6e 6b 65 72 0a 09 63 6f 6e 74 69 6e  cclinker..contin
1ffa0 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 23 20  ue..;;..      # 
1ffb0 2d 6d 73 67 5f 2a 20 66 6f 72 20 6f 73 66 20 63  -msg_* for osf c
1ffc0 63 0a 20 20 20 20 20 20 2d 6d 73 67 5f 2a 29 0a  c.      -msg_*).
1ffd0 09 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f  .func_quote_for_
1ffe0 65 76 61 6c 20 22 24 61 72 67 22 0a 09 61 72 67  eval "$arg"..arg
1fff0 3d 22 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f  ="$func_quote_fo
20000 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74 22 0a 09  r_eval_result"..
20010 3b 3b 0a 0a 20 20 20 20 20 20 23 20 2d 36 34 2c  ;;..      # -64,
20020 20 2d 6d 69 70 73 5b 30 2d 39 5d 20 65 6e 61 62   -mips[0-9] enab
20030 6c 65 20 36 34 2d 62 69 74 20 6d 6f 64 65 20 6f  le 64-bit mode o
20040 6e 20 74 68 65 20 53 47 49 20 63 6f 6d 70 69 6c  n the SGI compil
20050 65 72 0a 20 20 20 20 20 20 23 20 2d 72 5b 30 2d  er.      # -r[0-
20060 39 5d 5b 30 2d 39 5d 2a 20 73 70 65 63 69 66 69  9][0-9]* specifi
20070 65 73 20 74 68 65 20 70 72 6f 63 65 73 73 6f 72  es the processor
20080 20 6f 6e 20 74 68 65 20 53 47 49 20 63 6f 6d 70   on the SGI comp
20090 69 6c 65 72 0a 20 20 20 20 20 20 23 20 2d 78 61  iler.      # -xa
200a0 72 63 68 3d 2a 2c 20 2d 78 74 61 72 67 65 74 3d  rch=*, -xtarget=
200b0 2a 20 65 6e 61 62 6c 65 20 36 34 2d 62 69 74 20  * enable 64-bit 
200c0 6d 6f 64 65 20 6f 6e 20 74 68 65 20 53 75 6e 20  mode on the Sun 
200d0 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 23  compiler.      #
200e0 20 2b 44 41 2a 2c 20 2b 44 44 2a 20 65 6e 61 62   +DA*, +DD* enab
200f0 6c 65 20 36 34 2d 62 69 74 20 6d 6f 64 65 20 6f  le 64-bit mode o
20100 6e 20 74 68 65 20 48 50 20 63 6f 6d 70 69 6c 65  n the HP compile
20110 72 0a 20 20 20 20 20 20 23 20 2d 71 2a 20 70 61  r.      # -q* pa
20120 73 73 20 74 68 72 6f 75 67 68 20 63 6f 6d 70 69  ss through compi
20130 6c 65 72 20 61 72 67 73 20 66 6f 72 20 74 68 65  ler args for the
20140 20 49 42 4d 20 63 6f 6d 70 69 6c 65 72 0a 20 20   IBM compiler.  
20150 20 20 20 20 23 20 2d 6d 2a 2c 20 2d 74 5b 34 35      # -m*, -t[45
20160 5d 2a 2c 20 2d 74 78 73 63 61 6c 65 2a 20 70 61  ]*, -txscale* pa
20170 73 73 20 74 68 72 6f 75 67 68 20 61 72 63 68 69  ss through archi
20180 74 65 63 74 75 72 65 2d 73 70 65 63 69 66 69 63  tecture-specific
20190 0a 20 20 20 20 20 20 23 20 63 6f 6d 70 69 6c 65  .      # compile
201a0 72 20 61 72 67 73 20 66 6f 72 20 47 43 43 0a 20  r args for GCC. 
201b0 20 20 20 20 20 23 20 2d 46 2f 70 61 74 68 20 67       # -F/path g
201c0 69 76 65 73 20 70 61 74 68 20 74 6f 20 75 6e 69  ives path to uni
201d0 6e 73 74 61 6c 6c 65 64 20 66 72 61 6d 65 77 6f  nstalled framewo
201e0 72 6b 73 2c 20 67 63 63 20 6f 6e 20 64 61 72 77  rks, gcc on darw
201f0 69 6e 0a 20 20 20 20 20 20 23 20 2d 70 2c 20 2d  in.      # -p, -
20200 70 67 2c 20 2d 2d 63 6f 76 65 72 61 67 65 2c 20  pg, --coverage, 
20210 2d 66 70 72 6f 66 69 6c 65 2d 2a 20 70 61 73 73  -fprofile-* pass
20220 20 74 68 72 6f 75 67 68 20 70 72 6f 66 69 6c 69   through profili
20230 6e 67 20 66 6c 61 67 20 66 6f 72 20 47 43 43 0a  ng flag for GCC.
20240 20 20 20 20 20 20 23 20 40 66 69 6c 65 20 47 43        # @file GC
20250 43 20 72 65 73 70 6f 6e 73 65 20 66 69 6c 65 73  C response files
20260 0a 20 20 20 20 20 20 2d 36 34 7c 2d 6d 69 70 73  .      -64|-mips
20270 5b 30 2d 39 5d 7c 2d 72 5b 30 2d 39 5d 5b 30 2d  [0-9]|-r[0-9][0-
20280 39 5d 2a 7c 2d 78 61 72 63 68 3d 2a 7c 2d 78 74  9]*|-xarch=*|-xt
20290 61 72 67 65 74 3d 2a 7c 2b 44 41 2a 7c 2b 44 44  arget=*|+DA*|+DD
202a0 2a 7c 2d 71 2a 7c 2d 6d 2a 7c 20 5c 0a 20 20 20  *|-q*|-m*| \.   
202b0 20 20 20 2d 74 5b 34 35 5d 2a 7c 2d 74 78 73 63     -t[45]*|-txsc
202c0 61 6c 65 2a 7c 2d 70 7c 2d 70 67 7c 2d 2d 63 6f  ale*|-p|-pg|--co
202d0 76 65 72 61 67 65 7c 2d 66 70 72 6f 66 69 6c 65  verage|-fprofile
202e0 2d 2a 7c 2d 46 2a 7c 40 2a 29 0a 20 20 20 20 20  -*|-F*|@*).     
202f0 20 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f     func_quote_fo
20300 72 5f 65 76 61 6c 20 22 24 61 72 67 22 0a 09 61  r_eval "$arg"..a
20310 72 67 3d 22 24 66 75 6e 63 5f 71 75 6f 74 65 5f  rg="$func_quote_
20320 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74 22  for_eval_result"
20330 0a 20 20 20 20 20 20 20 20 66 75 6e 63 5f 61 70  .        func_ap
20340 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 63 6f 6d  pend compile_com
20350 6d 61 6e 64 20 22 20 24 61 72 67 22 0a 20 20 20  mand " $arg".   
20360 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64       func_append
20370 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e   finalize_comman
20380 64 20 22 20 24 61 72 67 22 0a 20 20 20 20 20 20  d " $arg".      
20390 20 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73    compiler_flags
203a0 3d 22 24 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67  ="$compiler_flag
203b0 73 20 24 61 72 67 22 0a 20 20 20 20 20 20 20 20  s $arg".        
203c0 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20  continue.       
203d0 20 3b 3b 0a 0a 20 20 20 20 20 20 23 20 53 6f 6d   ;;..      # Som
203e0 65 20 6f 74 68 65 72 20 63 6f 6d 70 69 6c 65 72  e other compiler
203f0 20 66 6c 61 67 2e 0a 20 20 20 20 20 20 2d 2a 20   flag..      -* 
20400 7c 20 2b 2a 29 0a 20 20 20 20 20 20 20 20 66 75  | +*).        fu
20410 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
20420 6c 20 22 24 61 72 67 22 0a 09 61 72 67 3d 22 24  l "$arg"..arg="$
20430 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65  func_quote_for_e
20440 76 61 6c 5f 72 65 73 75 6c 74 22 0a 09 3b 3b 0a  val_result"..;;.
20450 0a 20 20 20 20 20 20 2a 2e 24 6f 62 6a 65 78 74  .      *.$objext
20460 29 0a 09 23 20 41 20 73 74 61 6e 64 61 72 64 20  )..# A standard 
20470 6f 62 6a 65 63 74 2e 0a 09 6f 62 6a 73 3d 22 24  object...objs="$
20480 6f 62 6a 73 20 24 61 72 67 22 0a 09 3b 3b 0a 0a  objs $arg"..;;..
20490 20 20 20 20 20 20 2a 2e 6c 6f 29 0a 09 23 20 41        *.lo)..# A
204a0 20 6c 69 62 74 6f 6f 6c 2d 63 6f 6e 74 72 6f 6c   libtool-control
204b0 6c 65 64 20 6f 62 6a 65 63 74 2e 0a 0a 09 23 20  led object....# 
204c0 43 68 65 63 6b 20 74 6f 20 73 65 65 20 74 68 61  Check to see tha
204d0 74 20 74 68 69 73 20 72 65 61 6c 6c 79 20 69 73  t this really is
204e0 20 61 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65 63   a libtool objec
204f0 74 2e 0a 09 69 66 20 66 75 6e 63 5f 6c 61 6c 69  t...if func_lali
20500 62 5f 75 6e 73 61 66 65 5f 70 20 22 24 61 72 67  b_unsafe_p "$arg
20510 22 3b 20 74 68 65 6e 0a 09 20 20 70 69 63 5f 6f  "; then..  pic_o
20520 62 6a 65 63 74 3d 0a 09 20 20 6e 6f 6e 5f 70 69  bject=..  non_pi
20530 63 5f 6f 62 6a 65 63 74 3d 0a 0a 09 20 20 23 20  c_object=...  # 
20540 52 65 61 64 20 74 68 65 20 2e 6c 6f 20 66 69 6c  Read the .lo fil
20550 65 0a 09 20 20 66 75 6e 63 5f 73 6f 75 72 63 65  e..  func_source
20560 20 22 24 61 72 67 22 0a 0a 09 20 20 69 66 20 74   "$arg"...  if t
20570 65 73 74 20 2d 7a 20 22 24 70 69 63 5f 6f 62 6a  est -z "$pic_obj
20580 65 63 74 22 20 7c 7c 0a 09 20 20 20 20 20 74 65  ect" ||..     te
20590 73 74 20 2d 7a 20 22 24 6e 6f 6e 5f 70 69 63 5f  st -z "$non_pic_
205a0 6f 62 6a 65 63 74 22 20 7c 7c 0a 09 20 20 20 20  object" ||..    
205b0 20 74 65 73 74 20 22 24 70 69 63 5f 6f 62 6a 65   test "$pic_obje
205c0 63 74 22 20 3d 20 6e 6f 6e 65 20 26 26 0a 09 20  ct" = none &&.. 
205d0 20 20 20 20 74 65 73 74 20 22 24 6e 6f 6e 5f 70      test "$non_p
205e0 69 63 5f 6f 62 6a 65 63 74 22 20 3d 20 6e 6f 6e  ic_object" = non
205f0 65 3b 20 74 68 65 6e 0a 09 20 20 20 20 66 75 6e  e; then..    fun
20600 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 63  c_fatal_error "c
20610 61 6e 6e 6f 74 20 66 69 6e 64 20 6e 61 6d 65 20  annot find name 
20620 6f 66 20 6f 62 6a 65 63 74 20 66 6f 72 20 5c 60  of object for \`
20630 24 61 72 67 27 22 0a 09 20 20 66 69 0a 0a 09 20  $arg'"..  fi... 
20640 20 23 20 45 78 74 72 61 63 74 20 73 75 62 64 69   # Extract subdi
20650 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 74 68 65  rectory from the
20660 20 61 72 67 75 6d 65 6e 74 2e 0a 09 20 20 66 75   argument...  fu
20670 6e 63 5f 64 69 72 6e 61 6d 65 20 22 24 61 72 67  nc_dirname "$arg
20680 22 20 22 2f 22 20 22 22 0a 09 20 20 78 64 69 72  " "/" ""..  xdir
20690 3d 22 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f  ="$func_dirname_
206a0 72 65 73 75 6c 74 22 0a 0a 09 20 20 69 66 20 74  result"...  if t
206b0 65 73 74 20 22 24 70 69 63 5f 6f 62 6a 65 63 74  est "$pic_object
206c0 22 20 21 3d 20 6e 6f 6e 65 3b 20 74 68 65 6e 0a  " != none; then.
206d0 09 20 20 20 20 23 20 50 72 65 70 65 6e 64 20 74  .    # Prepend t
206e0 68 65 20 73 75 62 64 69 72 65 63 74 6f 72 79 20  he subdirectory 
206f0 74 68 65 20 6f 62 6a 65 63 74 20 69 73 20 66 6f  the object is fo
20700 75 6e 64 20 69 6e 2e 0a 09 20 20 20 20 70 69 63  und in...    pic
20710 5f 6f 62 6a 65 63 74 3d 22 24 78 64 69 72 24 70  _object="$xdir$p
20720 69 63 5f 6f 62 6a 65 63 74 22 0a 0a 09 20 20 20  ic_object"...   
20730 20 69 66 20 74 65 73 74 20 22 24 70 72 65 76 22   if test "$prev"
20740 20 3d 20 64 6c 66 69 6c 65 73 3b 20 74 68 65 6e   = dlfiles; then
20750 0a 09 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
20760 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f  "$build_libtool_
20770 6c 69 62 73 22 20 3d 20 79 65 73 20 26 26 20 74  libs" = yes && t
20780 65 73 74 20 22 24 64 6c 6f 70 65 6e 5f 73 75 70  est "$dlopen_sup
20790 70 6f 72 74 22 20 3d 20 79 65 73 3b 20 74 68 65  port" = yes; the
207a0 6e 0a 09 09 64 6c 66 69 6c 65 73 3d 22 24 64 6c  n...dlfiles="$dl
207b0 66 69 6c 65 73 20 24 70 69 63 5f 6f 62 6a 65 63  files $pic_objec
207c0 74 22 0a 09 09 70 72 65 76 3d 0a 09 09 63 6f 6e  t"...prev=...con
207d0 74 69 6e 75 65 0a 09 20 20 20 20 20 20 65 6c 73  tinue..      els
207e0 65 0a 09 09 23 20 49 66 20 6c 69 62 74 6f 6f 6c  e...# If libtool
207f0 20 6f 62 6a 65 63 74 73 20 61 72 65 20 75 6e 73   objects are uns
20800 75 70 70 6f 72 74 65 64 2c 20 74 68 65 6e 20 77  upported, then w
20810 65 20 6e 65 65 64 20 74 6f 20 70 72 65 6c 6f 61  e need to preloa
20820 64 2e 0a 09 09 70 72 65 76 3d 64 6c 70 72 65 66  d....prev=dlpref
20830 69 6c 65 73 0a 09 20 20 20 20 20 20 66 69 0a 09  iles..      fi..
20840 20 20 20 20 66 69 0a 0a 09 20 20 20 20 23 20 43      fi...    # C
20850 48 45 43 4b 20 4d 45 3a 20 20 49 20 74 68 69 6e  HECK ME:  I thin
20860 6b 20 49 20 62 75 73 74 65 64 20 74 68 69 73 2e  k I busted this.
20870 20 20 2d 4f 73 73 61 6d 61 0a 09 20 20 20 20 69    -Ossama..    i
20880 66 20 74 65 73 74 20 22 24 70 72 65 76 22 20 3d  f test "$prev" =
20890 20 64 6c 70 72 65 66 69 6c 65 73 3b 20 74 68 65   dlprefiles; the
208a0 6e 0a 09 20 20 20 20 20 20 23 20 50 72 65 6c 6f  n..      # Prelo
208b0 61 64 20 74 68 65 20 6f 6c 64 2d 73 74 79 6c 65  ad the old-style
208c0 20 6f 62 6a 65 63 74 2e 0a 09 20 20 20 20 20 20   object...      
208d0 64 6c 70 72 65 66 69 6c 65 73 3d 22 24 64 6c 70  dlprefiles="$dlp
208e0 72 65 66 69 6c 65 73 20 24 70 69 63 5f 6f 62 6a  refiles $pic_obj
208f0 65 63 74 22 0a 09 20 20 20 20 20 20 70 72 65 76  ect"..      prev
20900 3d 0a 09 20 20 20 20 66 69 0a 0a 09 20 20 20 20  =..    fi...    
20910 23 20 41 20 50 49 43 20 6f 62 6a 65 63 74 2e 0a  # A PIC object..
20920 09 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64  .    func_append
20930 20 6c 69 62 6f 62 6a 73 20 22 20 24 70 69 63 5f   libobjs " $pic_
20940 6f 62 6a 65 63 74 22 0a 09 20 20 20 20 61 72 67  object"..    arg
20950 3d 22 24 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09  ="$pic_object"..
20960 20 20 66 69 0a 0a 09 20 20 23 20 4e 6f 6e 2d 50    fi...  # Non-P
20970 49 43 20 6f 62 6a 65 63 74 2e 0a 09 20 20 69 66  IC object...  if
20980 20 74 65 73 74 20 22 24 6e 6f 6e 5f 70 69 63 5f   test "$non_pic_
20990 6f 62 6a 65 63 74 22 20 21 3d 20 6e 6f 6e 65 3b  object" != none;
209a0 20 74 68 65 6e 0a 09 20 20 20 20 23 20 50 72 65   then..    # Pre
209b0 70 65 6e 64 20 74 68 65 20 73 75 62 64 69 72 65  pend the subdire
209c0 63 74 6f 72 79 20 74 68 65 20 6f 62 6a 65 63 74  ctory the object
209d0 20 69 73 20 66 6f 75 6e 64 20 69 6e 2e 0a 09 20   is found in... 
209e0 20 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63     non_pic_objec
209f0 74 3d 22 24 78 64 69 72 24 6e 6f 6e 5f 70 69 63  t="$xdir$non_pic
20a00 5f 6f 62 6a 65 63 74 22 0a 0a 09 20 20 20 20 23  _object"...    #
20a10 20 41 20 73 74 61 6e 64 61 72 64 20 6e 6f 6e 2d   A standard non-
20a20 50 49 43 20 6f 62 6a 65 63 74 0a 09 20 20 20 20  PIC object..    
20a30 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 6f 6e 5f  func_append non_
20a40 70 69 63 5f 6f 62 6a 65 63 74 73 20 22 20 24 6e  pic_objects " $n
20a50 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09  on_pic_object"..
20a60 20 20 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22      if test -z "
20a70 24 70 69 63 5f 6f 62 6a 65 63 74 22 20 7c 7c 20  $pic_object" || 
20a80 74 65 73 74 20 22 24 70 69 63 5f 6f 62 6a 65 63  test "$pic_objec
20a90 74 22 20 3d 20 6e 6f 6e 65 20 3b 20 74 68 65 6e  t" = none ; then
20aa0 0a 09 20 20 20 20 20 20 61 72 67 3d 22 24 6e 6f  ..      arg="$no
20ab0 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09 20  n_pic_object".. 
20ac0 20 20 20 66 69 0a 09 20 20 65 6c 73 65 0a 09 20     fi..  else.. 
20ad0 20 20 20 23 20 49 66 20 74 68 65 20 50 49 43 20     # If the PIC 
20ae0 6f 62 6a 65 63 74 20 65 78 69 73 74 73 2c 20 75  object exists, u
20af0 73 65 20 69 74 20 69 6e 73 74 65 61 64 2e 0a 09  se it instead...
20b00 20 20 20 20 23 20 24 78 64 69 72 20 77 61 73 20      # $xdir was 
20b10 70 72 65 70 65 6e 64 65 64 20 74 6f 20 24 70 69  prepended to $pi
20b20 63 5f 6f 62 6a 65 63 74 20 61 62 6f 76 65 2e 0a  c_object above..
20b30 09 20 20 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a  .    non_pic_obj
20b40 65 63 74 3d 22 24 70 69 63 5f 6f 62 6a 65 63 74  ect="$pic_object
20b50 22 0a 09 20 20 20 20 66 75 6e 63 5f 61 70 70 65  "..    func_appe
20b60 6e 64 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63  nd non_pic_objec
20b70 74 73 20 22 20 24 6e 6f 6e 5f 70 69 63 5f 6f 62  ts " $non_pic_ob
20b80 6a 65 63 74 22 0a 09 20 20 66 69 0a 09 65 6c 73  ject"..  fi..els
20b90 65 0a 09 20 20 23 20 4f 6e 6c 79 20 61 6e 20 65  e..  # Only an e
20ba0 72 72 6f 72 20 69 66 20 6e 6f 74 20 64 6f 69 6e  rror if not doin
20bb0 67 20 61 20 64 72 79 2d 72 75 6e 2e 0a 09 20 20  g a dry-run...  
20bc0 69 66 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 3b  if $opt_dry_run;
20bd0 20 74 68 65 6e 0a 09 20 20 20 20 23 20 45 78 74   then..    # Ext
20be0 72 61 63 74 20 73 75 62 64 69 72 65 63 74 6f 72  ract subdirector
20bf0 79 20 66 72 6f 6d 20 74 68 65 20 61 72 67 75 6d  y from the argum
20c00 65 6e 74 2e 0a 09 20 20 20 20 66 75 6e 63 5f 64  ent...    func_d
20c10 69 72 6e 61 6d 65 20 22 24 61 72 67 22 20 22 2f  irname "$arg" "/
20c20 22 20 22 22 0a 09 20 20 20 20 78 64 69 72 3d 22  " ""..    xdir="
20c30 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65  $func_dirname_re
20c40 73 75 6c 74 22 0a 0a 09 20 20 20 20 66 75 6e 63  sult"...    func
20c50 5f 6c 6f 32 6f 20 22 24 61 72 67 22 0a 09 20 20  _lo2o "$arg"..  
20c60 20 20 70 69 63 5f 6f 62 6a 65 63 74 3d 24 78 64    pic_object=$xd
20c70 69 72 24 6f 62 6a 64 69 72 2f 24 66 75 6e 63 5f  ir$objdir/$func_
20c80 6c 6f 32 6f 5f 72 65 73 75 6c 74 0a 09 20 20 20  lo2o_result..   
20c90 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 3d   non_pic_object=
20ca0 24 78 64 69 72 24 66 75 6e 63 5f 6c 6f 32 6f 5f  $xdir$func_lo2o_
20cb0 72 65 73 75 6c 74 0a 09 20 20 20 20 66 75 6e 63  result..    func
20cc0 5f 61 70 70 65 6e 64 20 6c 69 62 6f 62 6a 73 20  _append libobjs 
20cd0 22 20 24 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09  " $pic_object"..
20ce0 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20      func_append 
20cf0 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 73 20  non_pic_objects 
20d00 22 20 24 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63  " $non_pic_objec
20d10 74 22 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20  t"..  else..    
20d20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72  func_fatal_error
20d30 20 22 5c 60 24 61 72 67 27 20 69 73 20 6e 6f 74   "\`$arg' is not
20d40 20 61 20 76 61 6c 69 64 20 6c 69 62 74 6f 6f 6c   a valid libtool
20d50 20 6f 62 6a 65 63 74 22 0a 09 20 20 66 69 0a 09   object"..  fi..
20d60 66 69 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2a 2e  fi..;;..      *.
20d70 24 6c 69 62 65 78 74 29 0a 09 23 20 41 6e 20 61  $libext)..# An a
20d80 72 63 68 69 76 65 2e 0a 09 64 65 70 6c 69 62 73  rchive...deplibs
20d90 3d 22 24 64 65 70 6c 69 62 73 20 24 61 72 67 22  ="$deplibs $arg"
20da0 0a 09 6f 6c 64 5f 64 65 70 6c 69 62 73 3d 22 24  ..old_deplibs="$
20db0 6f 6c 64 5f 64 65 70 6c 69 62 73 20 24 61 72 67  old_deplibs $arg
20dc0 22 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a  "..continue..;;.
20dd0 0a 20 20 20 20 20 20 2a 2e 6c 61 29 0a 09 23 20  .      *.la)..# 
20de0 41 20 6c 69 62 74 6f 6f 6c 2d 63 6f 6e 74 72 6f  A libtool-contro
20df0 6c 6c 65 64 20 6c 69 62 72 61 72 79 2e 0a 0a 09  lled library....
20e00 69 66 20 74 65 73 74 20 22 24 70 72 65 76 22 20  if test "$prev" 
20e10 3d 20 64 6c 66 69 6c 65 73 3b 20 74 68 65 6e 0a  = dlfiles; then.
20e20 09 20 20 23 20 54 68 69 73 20 6c 69 62 72 61 72  .  # This librar
20e30 79 20 77 61 73 20 73 70 65 63 69 66 69 65 64 20  y was specified 
20e40 77 69 74 68 20 2d 64 6c 6f 70 65 6e 2e 0a 09 20  with -dlopen... 
20e50 20 64 6c 66 69 6c 65 73 3d 22 24 64 6c 66 69 6c   dlfiles="$dlfil
20e60 65 73 20 24 61 72 67 22 0a 09 20 20 70 72 65 76  es $arg"..  prev
20e70 3d 0a 09 65 6c 69 66 20 74 65 73 74 20 22 24 70  =..elif test "$p
20e80 72 65 76 22 20 3d 20 64 6c 70 72 65 66 69 6c 65  rev" = dlprefile
20e90 73 3b 20 74 68 65 6e 0a 09 20 20 23 20 54 68 65  s; then..  # The
20ea0 20 6c 69 62 72 61 72 79 20 77 61 73 20 73 70 65   library was spe
20eb0 63 69 66 69 65 64 20 77 69 74 68 20 2d 64 6c 70  cified with -dlp
20ec0 72 65 6f 70 65 6e 2e 0a 09 20 20 64 6c 70 72 65  reopen...  dlpre
20ed0 66 69 6c 65 73 3d 22 24 64 6c 70 72 65 66 69 6c  files="$dlprefil
20ee0 65 73 20 24 61 72 67 22 0a 09 20 20 70 72 65 76  es $arg"..  prev
20ef0 3d 0a 09 65 6c 73 65 0a 09 20 20 64 65 70 6c 69  =..else..  depli
20f00 62 73 3d 22 24 64 65 70 6c 69 62 73 20 24 61 72  bs="$deplibs $ar
20f10 67 22 0a 09 66 69 0a 09 63 6f 6e 74 69 6e 75 65  g"..fi..continue
20f20 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 23 20 53 6f  ..;;..      # So
20f30 6d 65 20 6f 74 68 65 72 20 63 6f 6d 70 69 6c 65  me other compile
20f40 72 20 61 72 67 75 6d 65 6e 74 2e 0a 20 20 20 20  r argument..    
20f50 20 20 2a 29 0a 09 23 20 55 6e 6b 6e 6f 77 6e 20    *)..# Unknown 
20f60 61 72 67 75 6d 65 6e 74 73 20 69 6e 20 62 6f 74  arguments in bot
20f70 68 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61  h finalize_comma
20f80 6e 64 20 61 6e 64 20 63 6f 6d 70 69 6c 65 5f 63  nd and compile_c
20f90 6f 6d 6d 61 6e 64 20 6e 65 65 64 0a 09 23 20 74  ommand need..# t
20fa0 6f 20 62 65 20 61 65 73 74 68 65 74 69 63 61 6c  o be aesthetical
20fb0 6c 79 20 71 75 6f 74 65 64 20 62 65 63 61 75 73  ly quoted becaus
20fc0 65 20 74 68 65 79 20 61 72 65 20 65 76 61 6c 65  e they are evale
20fd0 64 20 6c 61 74 65 72 2e 0a 09 66 75 6e 63 5f 71  d later...func_q
20fe0 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 20 22 24  uote_for_eval "$
20ff0 61 72 67 22 0a 09 61 72 67 3d 22 24 66 75 6e 63  arg"..arg="$func
21000 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f  _quote_for_eval_
21010 72 65 73 75 6c 74 22 0a 09 3b 3b 0a 20 20 20 20  result"..;;.    
21020 20 20 65 73 61 63 20 23 20 61 72 67 0a 0a 20 20    esac # arg..  
21030 20 20 20 20 23 20 4e 6f 77 20 61 63 74 75 61 6c      # Now actual
21040 6c 79 20 73 75 62 73 74 69 74 75 74 65 20 74 68  ly substitute th
21050 65 20 61 72 67 75 6d 65 6e 74 20 69 6e 74 6f 20  e argument into 
21060 74 68 65 20 63 6f 6d 6d 61 6e 64 73 2e 0a 20 20  the commands..  
21070 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
21080 24 61 72 67 22 3b 20 74 68 65 6e 0a 09 66 75 6e  $arg"; then..fun
21090 63 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65  c_append compile
210a0 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 61 72 67 22  _command " $arg"
210b0 0a 09 66 75 6e 63 5f 61 70 70 65 6e 64 20 66 69  ..func_append fi
210c0 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22  nalize_command "
210d0 20 24 61 72 67 22 0a 20 20 20 20 20 20 66 69 0a   $arg".      fi.
210e0 20 20 20 20 64 6f 6e 65 20 23 20 61 72 67 75 6d      done # argum
210f0 65 6e 74 20 70 61 72 73 69 6e 67 20 6c 6f 6f 70  ent parsing loop
21100 0a 0a 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24  ..    test -n "$
21110 70 72 65 76 22 20 26 26 20 5c 0a 20 20 20 20 20  prev" && \.     
21120 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70   func_fatal_help
21130 20 22 74 68 65 20 5c 60 24 70 72 65 76 61 72 67   "the \`$prevarg
21140 27 20 6f 70 74 69 6f 6e 20 72 65 71 75 69 72 65  ' option require
21150 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 22 0a 0a  s an argument"..
21160 20 20 20 20 69 66 20 74 65 73 74 20 22 24 65 78      if test "$ex
21170 70 6f 72 74 5f 64 79 6e 61 6d 69 63 22 20 3d 20  port_dynamic" = 
21180 79 65 73 20 26 26 20 74 65 73 74 20 2d 6e 20 22  yes && test -n "
21190 24 65 78 70 6f 72 74 5f 64 79 6e 61 6d 69 63 5f  $export_dynamic_
211a0 66 6c 61 67 5f 73 70 65 63 22 3b 20 74 68 65 6e  flag_spec"; then
211b0 0a 20 20 20 20 20 20 65 76 61 6c 20 61 72 67 3d  .      eval arg=
211c0 5c 22 24 65 78 70 6f 72 74 5f 64 79 6e 61 6d 69  \"$export_dynami
211d0 63 5f 66 6c 61 67 5f 73 70 65 63 5c 22 0a 20 20  c_flag_spec\".  
211e0 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20      func_append 
211f0 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20  compile_command 
21200 22 20 24 61 72 67 22 0a 20 20 20 20 20 20 66 75  " $arg".      fu
21210 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69  nc_append finali
21220 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 61 72  ze_command " $ar
21230 67 22 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 6f  g".    fi..    o
21240 6c 64 6c 69 62 73 3d 0a 20 20 20 20 23 20 63 61  ldlibs=.    # ca
21250 6c 63 75 6c 61 74 65 20 74 68 65 20 6e 61 6d 65  lculate the name
21260 20 6f 66 20 74 68 65 20 66 69 6c 65 2c 20 77 69   of the file, wi
21270 74 68 6f 75 74 20 69 74 73 20 64 69 72 65 63 74  thout its direct
21280 6f 72 79 0a 20 20 20 20 66 75 6e 63 5f 62 61 73  ory.    func_bas
21290 65 6e 61 6d 65 20 22 24 6f 75 74 70 75 74 22 0a  ename "$output".
212a0 20 20 20 20 6f 75 74 70 75 74 6e 61 6d 65 3d 22      outputname="
212b0 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72  $func_basename_r
212c0 65 73 75 6c 74 22 0a 20 20 20 20 6c 69 62 6f 62  esult".    libob
212d0 6a 73 5f 73 61 76 65 3d 22 24 6c 69 62 6f 62 6a  js_save="$libobj
212e0 73 22 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20  s"..    if test 
212f0 2d 6e 20 22 24 73 68 6c 69 62 70 61 74 68 5f 76  -n "$shlibpath_v
21300 61 72 22 3b 20 74 68 65 6e 0a 20 20 20 20 20 20  ar"; then.      
21310 23 20 67 65 74 20 74 68 65 20 64 69 72 65 63 74  # get the direct
21320 6f 72 69 65 73 20 6c 69 73 74 65 64 20 69 6e 20  ories listed in 
21330 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72 0a 20  $shlibpath_var. 
21340 20 20 20 20 20 65 76 61 6c 20 73 68 6c 69 62 5f       eval shlib_
21350 73 65 61 72 63 68 5f 70 61 74 68 3d 5c 60 5c 24  search_path=\`\$
21360 45 43 48 4f 20 5c 22 58 5c 24 7b 24 73 68 6c 69  ECHO \"X\${$shli
21370 62 70 61 74 68 5f 76 61 72 7d 5c 22 20 5c 7c 20  bpath_var}\" \| 
21380 5c 24 58 73 65 64 20 2d 65 20 5c 27 73 2f 3a 2f  \$Xsed -e \'s/:/
21390 20 2f 67 5c 27 5c 60 0a 20 20 20 20 65 6c 73 65   /g\'\`.    else
213a0 0a 20 20 20 20 20 20 73 68 6c 69 62 5f 73 65 61  .      shlib_sea
213b0 72 63 68 5f 70 61 74 68 3d 0a 20 20 20 20 66 69  rch_path=.    fi
213c0 0a 20 20 20 20 65 76 61 6c 20 73 79 73 5f 6c 69  .    eval sys_li
213d0 62 5f 73 65 61 72 63 68 5f 70 61 74 68 3d 5c 22  b_search_path=\"
213e0 24 73 79 73 5f 6c 69 62 5f 73 65 61 72 63 68 5f  $sys_lib_search_
213f0 70 61 74 68 5f 73 70 65 63 5c 22 0a 20 20 20 20  path_spec\".    
21400 65 76 61 6c 20 73 79 73 5f 6c 69 62 5f 64 6c 73  eval sys_lib_dls
21410 65 61 72 63 68 5f 70 61 74 68 3d 5c 22 24 73 79  earch_path=\"$sy
21420 73 5f 6c 69 62 5f 64 6c 73 65 61 72 63 68 5f 70  s_lib_dlsearch_p
21430 61 74 68 5f 73 70 65 63 5c 22 0a 0a 20 20 20 20  ath_spec\"..    
21440 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20 22 24 6f  func_dirname "$o
21450 75 74 70 75 74 22 20 22 2f 22 20 22 22 0a 20 20  utput" "/" "".  
21460 20 20 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 3d    output_objdir=
21470 22 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72  "$func_dirname_r
21480 65 73 75 6c 74 24 6f 62 6a 64 69 72 22 0a 20 20  esult$objdir".  
21490 20 20 23 20 43 72 65 61 74 65 20 74 68 65 20 6f    # Create the o
214a0 62 6a 65 63 74 20 64 69 72 65 63 74 6f 72 79 2e  bject directory.
214b0 0a 20 20 20 20 66 75 6e 63 5f 6d 6b 64 69 72 5f  .    func_mkdir_
214c0 70 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69  p "$output_objdi
214d0 72 22 0a 0a 20 20 20 20 23 20 44 65 74 65 72 6d  r"..    # Determ
214e0 69 6e 65 20 74 68 65 20 74 79 70 65 20 6f 66 20  ine the type of 
214f0 6f 75 74 70 75 74 0a 20 20 20 20 63 61 73 65 20  output.    case 
21500 24 6f 75 74 70 75 74 20 69 6e 0a 20 20 20 20 22  $output in.    "
21510 22 29 0a 20 20 20 20 20 20 66 75 6e 63 5f 66 61  ").      func_fa
21520 74 61 6c 5f 68 65 6c 70 20 22 79 6f 75 20 6d 75  tal_help "you mu
21530 73 74 20 73 70 65 63 69 66 79 20 61 6e 20 6f 75  st specify an ou
21540 74 70 75 74 20 66 69 6c 65 22 0a 20 20 20 20 20  tput file".     
21550 20 3b 3b 0a 20 20 20 20 2a 2e 24 6c 69 62 65 78   ;;.    *.$libex
21560 74 29 20 6c 69 6e 6b 6d 6f 64 65 3d 6f 6c 64 6c  t) linkmode=oldl
21570 69 62 20 3b 3b 0a 20 20 20 20 2a 2e 6c 6f 20 7c  ib ;;.    *.lo |
21580 20 2a 2e 24 6f 62 6a 65 78 74 29 20 6c 69 6e 6b   *.$objext) link
21590 6d 6f 64 65 3d 6f 62 6a 20 3b 3b 0a 20 20 20 20  mode=obj ;;.    
215a0 2a 2e 6c 61 29 20 6c 69 6e 6b 6d 6f 64 65 3d 6c  *.la) linkmode=l
215b0 69 62 20 3b 3b 0a 20 20 20 20 2a 29 20 6c 69 6e  ib ;;.    *) lin
215c0 6b 6d 6f 64 65 3d 70 72 6f 67 20 3b 3b 20 23 20  kmode=prog ;; # 
215d0 41 6e 79 74 68 69 6e 67 20 65 6c 73 65 20 73 68  Anything else sh
215e0 6f 75 6c 64 20 62 65 20 61 20 70 72 6f 67 72 61  ould be a progra
215f0 6d 2e 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20  m..    esac..   
21600 20 73 70 65 63 69 61 6c 64 65 70 6c 69 62 73 3d   specialdeplibs=
21610 0a 0a 20 20 20 20 6c 69 62 73 3d 0a 20 20 20 20  ..    libs=.    
21620 23 20 46 69 6e 64 20 61 6c 6c 20 69 6e 74 65 72  # Find all inter
21630 64 65 70 65 6e 64 65 6e 74 20 64 65 70 6c 69 62  dependent deplib
21640 73 20 62 79 20 73 65 61 72 63 68 69 6e 67 20 66  s by searching f
21650 6f 72 20 6c 69 62 72 61 72 69 65 73 0a 20 20 20  or libraries.   
21660 20 23 20 74 68 61 74 20 61 72 65 20 6c 69 6e 6b   # that are link
21670 65 64 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 63  ed more than onc
21680 65 20 28 65 2e 67 2e 20 2d 6c 61 20 2d 6c 62 20  e (e.g. -la -lb 
21690 2d 6c 61 29 0a 20 20 20 20 66 6f 72 20 64 65 70  -la).    for dep
216a0 6c 69 62 20 69 6e 20 24 64 65 70 6c 69 62 73 3b  lib in $deplibs;
216b0 20 64 6f 0a 20 20 20 20 20 20 69 66 20 24 6f 70   do.      if $op
216c0 74 5f 64 75 70 6c 69 63 61 74 65 5f 64 65 70 73  t_duplicate_deps
216d0 20 3b 20 74 68 65 6e 0a 09 63 61 73 65 20 22 24   ; then..case "$
216e0 6c 69 62 73 20 22 20 69 6e 0a 09 2a 22 20 24 64  libs " in..*" $d
216f0 65 70 6c 69 62 20 22 2a 29 20 73 70 65 63 69 61  eplib "*) specia
21700 6c 64 65 70 6c 69 62 73 3d 22 24 73 70 65 63 69  ldeplibs="$speci
21710 61 6c 64 65 70 6c 69 62 73 20 24 64 65 70 6c 69  aldeplibs $depli
21720 62 22 20 3b 3b 0a 09 65 73 61 63 0a 20 20 20 20  b" ;;..esac.    
21730 20 20 66 69 0a 20 20 20 20 20 20 6c 69 62 73 3d    fi.      libs=
21740 22 24 6c 69 62 73 20 24 64 65 70 6c 69 62 22 0a  "$libs $deplib".
21750 20 20 20 20 64 6f 6e 65 0a 0a 20 20 20 20 69 66      done..    if
21760 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
21770 22 20 3d 20 6c 69 62 3b 20 74 68 65 6e 0a 20 20  " = lib; then.  
21780 20 20 20 20 6c 69 62 73 3d 22 24 70 72 65 64 65      libs="$prede
21790 70 73 20 24 6c 69 62 73 20 24 63 6f 6d 70 69 6c  ps $libs $compil
217a0 65 72 5f 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  er_lib_search_pa
217b0 74 68 20 24 70 6f 73 74 64 65 70 73 22 0a 0a 20  th $postdeps".. 
217c0 20 20 20 20 20 23 20 43 6f 6d 70 75 74 65 20 6c       # Compute l
217d0 69 62 72 61 72 69 65 73 20 74 68 61 74 20 61 72  ibraries that ar
217e0 65 20 6c 69 73 74 65 64 20 6d 6f 72 65 20 74 68  e listed more th
217f0 61 6e 20 6f 6e 63 65 20 69 6e 20 24 70 72 65 64  an once in $pred
21800 65 70 73 0a 20 20 20 20 20 20 23 20 24 70 6f 73  eps.      # $pos
21810 74 64 65 70 73 20 61 6e 64 20 6d 61 72 6b 20 74  tdeps and mark t
21820 68 65 6d 20 61 73 20 73 70 65 63 69 61 6c 20 28  hem as special (
21830 69 2e 65 2e 2c 20 77 68 6f 73 65 20 64 75 70 6c  i.e., whose dupl
21840 69 63 61 74 65 73 20 61 72 65 0a 20 20 20 20 20  icates are.     
21850 20 23 20 6e 6f 74 20 74 6f 20 62 65 20 65 6c 69   # not to be eli
21860 6d 69 6e 61 74 65 64 29 2e 0a 20 20 20 20 20 20  minated)..      
21870 70 72 65 5f 70 6f 73 74 5f 64 65 70 73 3d 0a 20  pre_post_deps=. 
21880 20 20 20 20 20 69 66 20 24 6f 70 74 5f 64 75 70       if $opt_dup
21890 6c 69 63 61 74 65 5f 63 6f 6d 70 69 6c 65 72 5f  licate_compiler_
218a0 67 65 6e 65 72 61 74 65 64 5f 64 65 70 73 3b 20  generated_deps; 
218b0 74 68 65 6e 0a 09 66 6f 72 20 70 72 65 5f 70 6f  then..for pre_po
218c0 73 74 5f 64 65 70 20 69 6e 20 24 70 72 65 64 65  st_dep in $prede
218d0 70 73 20 24 70 6f 73 74 64 65 70 73 3b 20 64 6f  ps $postdeps; do
218e0 0a 09 20 20 63 61 73 65 20 22 24 70 72 65 5f 70  ..  case "$pre_p
218f0 6f 73 74 5f 64 65 70 73 20 22 20 69 6e 0a 09 20  ost_deps " in.. 
21900 20 2a 22 20 24 70 72 65 5f 70 6f 73 74 5f 64 65   *" $pre_post_de
21910 70 20 22 2a 29 20 73 70 65 63 69 61 6c 64 65 70  p "*) specialdep
21920 6c 69 62 73 3d 22 24 73 70 65 63 69 61 6c 64 65  libs="$specialde
21930 70 6c 69 62 73 20 24 70 72 65 5f 70 6f 73 74 5f  plibs $pre_post_
21940 64 65 70 73 22 20 3b 3b 0a 09 20 20 65 73 61 63  deps" ;;..  esac
21950 0a 09 20 20 70 72 65 5f 70 6f 73 74 5f 64 65 70  ..  pre_post_dep
21960 73 3d 22 24 70 72 65 5f 70 6f 73 74 5f 64 65 70  s="$pre_post_dep
21970 73 20 24 70 72 65 5f 70 6f 73 74 5f 64 65 70 22  s $pre_post_dep"
21980 0a 09 64 6f 6e 65 0a 20 20 20 20 20 20 66 69 0a  ..done.      fi.
21990 20 20 20 20 20 20 70 72 65 5f 70 6f 73 74 5f 64        pre_post_d
219a0 65 70 73 3d 0a 20 20 20 20 66 69 0a 0a 20 20 20  eps=.    fi..   
219b0 20 64 65 70 6c 69 62 73 3d 0a 20 20 20 20 6e 65   deplibs=.    ne
219c0 77 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73  wdependency_libs
219d0 3d 0a 20 20 20 20 6e 65 77 6c 69 62 5f 73 65 61  =.    newlib_sea
219e0 72 63 68 5f 70 61 74 68 3d 0a 20 20 20 20 6e 65  rch_path=.    ne
219f0 65 64 5f 72 65 6c 69 6e 6b 3d 6e 6f 20 23 20 77  ed_relink=no # w
21a00 68 65 74 68 65 72 20 77 65 27 72 65 20 6c 69 6e  hether we're lin
21a10 6b 69 6e 67 20 61 6e 79 20 75 6e 69 6e 73 74 61  king any uninsta
21a20 6c 6c 65 64 20 6c 69 62 74 6f 6f 6c 20 6c 69 62  lled libtool lib
21a30 72 61 72 69 65 73 0a 20 20 20 20 6e 6f 74 69 6e  raries.    notin
21a40 73 74 5f 64 65 70 6c 69 62 73 3d 20 23 20 6e 6f  st_deplibs= # no
21a50 74 2d 69 6e 73 74 61 6c 6c 65 64 20 6c 69 62 74  t-installed libt
21a60 6f 6f 6c 20 6c 69 62 72 61 72 69 65 73 0a 20 20  ool libraries.  
21a70 20 20 6e 6f 74 69 6e 73 74 5f 70 61 74 68 3d 20    notinst_path= 
21a80 23 20 70 61 74 68 73 20 74 68 61 74 20 63 6f 6e  # paths that con
21a90 74 61 69 6e 20 6e 6f 74 2d 69 6e 73 74 61 6c 6c  tain not-install
21aa0 65 64 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61  ed libtool libra
21ab0 72 69 65 73 0a 0a 20 20 20 20 63 61 73 65 20 24  ries..    case $
21ac0 6c 69 6e 6b 6d 6f 64 65 20 69 6e 0a 20 20 20 20  linkmode in.    
21ad0 6c 69 62 29 0a 09 70 61 73 73 65 73 3d 22 63 6f  lib)..passes="co
21ae0 6e 76 20 64 6c 70 72 65 6f 70 65 6e 20 6c 69 6e  nv dlpreopen lin
21af0 6b 22 0a 09 66 6f 72 20 66 69 6c 65 20 69 6e 20  k"..for file in 
21b00 24 64 6c 66 69 6c 65 73 20 24 64 6c 70 72 65 66  $dlfiles $dlpref
21b10 69 6c 65 73 3b 20 64 6f 0a 09 20 20 63 61 73 65  iles; do..  case
21b20 20 24 66 69 6c 65 20 69 6e 0a 09 20 20 2a 2e 6c   $file in..  *.l
21b30 61 29 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20  a) ;;..  *)..   
21b40 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70   func_fatal_help
21b50 20 22 6c 69 62 72 61 72 69 65 73 20 63 61 6e 20   "libraries can 
21b60 5c 60 2d 64 6c 6f 70 65 6e 27 20 6f 6e 6c 79 20  \`-dlopen' only 
21b70 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 69 65  libtool librarie
21b80 73 3a 20 24 66 69 6c 65 22 0a 09 20 20 20 20 3b  s: $file"..    ;
21b90 3b 0a 09 20 20 65 73 61 63 0a 09 64 6f 6e 65 0a  ;..  esac..done.
21ba0 09 3b 3b 0a 20 20 20 20 70 72 6f 67 29 0a 09 63  .;;.    prog)..c
21bb0 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 0a  ompile_deplibs=.
21bc0 09 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62  .finalize_deplib
21bd0 73 3d 0a 09 61 6c 6c 64 65 70 6c 69 62 73 3d 6e  s=..alldeplibs=n
21be0 6f 0a 09 6e 65 77 64 6c 66 69 6c 65 73 3d 0a 09  o..newdlfiles=..
21bf0 6e 65 77 64 6c 70 72 65 66 69 6c 65 73 3d 0a 09  newdlprefiles=..
21c00 70 61 73 73 65 73 3d 22 63 6f 6e 76 20 73 63 61  passes="conv sca
21c10 6e 20 64 6c 6f 70 65 6e 20 64 6c 70 72 65 6f 70  n dlopen dlpreop
21c20 65 6e 20 6c 69 6e 6b 22 0a 09 3b 3b 0a 20 20 20  en link"..;;.   
21c30 20 2a 29 20 20 70 61 73 73 65 73 3d 22 63 6f 6e   *)  passes="con
21c40 76 22 0a 09 3b 3b 0a 20 20 20 20 65 73 61 63 0a  v"..;;.    esac.
21c50 0a 20 20 20 20 66 6f 72 20 70 61 73 73 20 69 6e  .    for pass in
21c60 20 24 70 61 73 73 65 73 3b 20 64 6f 0a 20 20 20   $passes; do.   
21c70 20 20 20 23 20 54 68 65 20 70 72 65 6f 70 65 6e     # The preopen
21c80 20 70 61 73 73 20 69 6e 20 6c 69 62 20 6d 6f 64   pass in lib mod
21c90 65 20 72 65 76 65 72 73 65 73 20 24 64 65 70 6c  e reverses $depl
21ca0 69 62 73 3b 20 70 75 74 20 69 74 20 62 61 63 6b  ibs; put it back
21cb0 20 68 65 72 65 0a 20 20 20 20 20 20 23 20 73 6f   here.      # so
21cc0 20 74 68 61 74 20 2d 4c 20 63 6f 6d 65 73 20 62   that -L comes b
21cd0 65 66 6f 72 65 20 6c 69 62 73 20 74 68 61 74 20  efore libs that 
21ce0 6e 65 65 64 20 69 74 20 66 6f 72 20 69 6e 73 74  need it for inst
21cf0 61 6e 63 65 2e 2e 2e 0a 20 20 20 20 20 20 69 66  ance....      if
21d00 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
21d10 2c 24 70 61 73 73 22 20 3d 20 22 6c 69 62 2c 6c  ,$pass" = "lib,l
21d20 69 6e 6b 22 3b 20 74 68 65 6e 0a 09 23 23 20 46  ink"; then..## F
21d30 49 58 4d 45 3a 20 46 69 6e 64 20 74 68 65 20 70  IXME: Find the p
21d40 6c 61 63 65 20 77 68 65 72 65 20 74 68 65 20 6c  lace where the l
21d50 69 73 74 20 69 73 20 72 65 62 75 69 6c 74 20 69  ist is rebuilt i
21d60 6e 20 74 68 65 20 77 72 6f 6e 67 0a 09 23 23 20  n the wrong..## 
21d70 20 20 20 20 20 20 20 6f 72 64 65 72 2c 20 61 6e         order, an
21d80 64 20 66 69 78 20 69 74 20 74 68 65 72 65 20 70  d fix it there p
21d90 72 6f 70 65 72 6c 79 0a 20 20 20 20 20 20 20 20  roperly.        
21da0 74 6d 70 5f 64 65 70 6c 69 62 73 3d 0a 09 66 6f  tmp_deplibs=..fo
21db0 72 20 64 65 70 6c 69 62 20 69 6e 20 24 64 65 70  r deplib in $dep
21dc0 6c 69 62 73 3b 20 64 6f 0a 09 20 20 74 6d 70 5f  libs; do..  tmp_
21dd0 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62  deplibs="$deplib
21de0 20 24 74 6d 70 5f 64 65 70 6c 69 62 73 22 0a 09   $tmp_deplibs"..
21df0 64 6f 6e 65 0a 09 64 65 70 6c 69 62 73 3d 22 24  done..deplibs="$
21e00 74 6d 70 5f 64 65 70 6c 69 62 73 22 0a 20 20 20  tmp_deplibs".   
21e10 20 20 20 66 69 0a 0a 20 20 20 20 20 20 69 66 20     fi..      if 
21e20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 2c  test "$linkmode,
21e30 24 70 61 73 73 22 20 3d 20 22 6c 69 62 2c 6c 69  $pass" = "lib,li
21e40 6e 6b 22 20 7c 7c 0a 09 20 74 65 73 74 20 22 24  nk" ||.. test "$
21e50 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22 20  linkmode,$pass" 
21e60 3d 20 22 70 72 6f 67 2c 73 63 61 6e 22 3b 20 74  = "prog,scan"; t
21e70 68 65 6e 0a 09 6c 69 62 73 3d 22 24 64 65 70 6c  hen..libs="$depl
21e80 69 62 73 22 0a 09 64 65 70 6c 69 62 73 3d 0a 20  ibs"..deplibs=. 
21e90 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 69 66       fi.      if
21ea0 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
21eb0 22 20 3d 20 70 72 6f 67 3b 20 74 68 65 6e 0a 09  " = prog; then..
21ec0 63 61 73 65 20 24 70 61 73 73 20 69 6e 0a 09 64  case $pass in..d
21ed0 6c 6f 70 65 6e 29 20 6c 69 62 73 3d 22 24 64 6c  lopen) libs="$dl
21ee0 66 69 6c 65 73 22 20 3b 3b 0a 09 64 6c 70 72 65  files" ;;..dlpre
21ef0 6f 70 65 6e 29 20 6c 69 62 73 3d 22 24 64 6c 70  open) libs="$dlp
21f00 72 65 66 69 6c 65 73 22 20 3b 3b 0a 09 6c 69 6e  refiles" ;;..lin
21f10 6b 29 20 6c 69 62 73 3d 22 24 64 65 70 6c 69 62  k) libs="$deplib
21f20 73 20 25 44 45 50 4c 49 42 53 25 20 24 64 65 70  s %DEPLIBS% $dep
21f30 65 6e 64 65 6e 63 79 5f 6c 69 62 73 22 20 3b 3b  endency_libs" ;;
21f40 0a 09 65 73 61 63 0a 20 20 20 20 20 20 66 69 0a  ..esac.      fi.
21f50 20 20 20 20 20 20 69 66 20 74 65 73 74 20 22 24        if test "$
21f60 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22 20  linkmode,$pass" 
21f70 3d 20 22 6c 69 62 2c 64 6c 70 72 65 6f 70 65 6e  = "lib,dlpreopen
21f80 22 3b 20 74 68 65 6e 0a 09 23 20 43 6f 6c 6c 65  "; then..# Colle
21f90 63 74 20 61 6e 64 20 66 6f 72 77 61 72 64 20 64  ct and forward d
21fa0 65 70 6c 69 62 73 20 6f 66 20 70 72 65 6f 70 65  eplibs of preope
21fb0 6e 65 64 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 73  ned libtool libs
21fc0 0a 09 66 6f 72 20 6c 69 62 20 69 6e 20 24 64 6c  ..for lib in $dl
21fd0 70 72 65 66 69 6c 65 73 3b 20 64 6f 0a 09 20 20  prefiles; do..  
21fe0 23 20 49 67 6e 6f 72 65 20 6e 6f 6e 2d 6c 69 62  # Ignore non-lib
21ff0 74 6f 6f 6c 2d 6c 69 62 73 0a 09 20 20 64 65 70  tool-libs..  dep
22000 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 0a 09 20  endency_libs=.. 
22010 20 63 61 73 65 20 24 6c 69 62 20 69 6e 0a 09 20   case $lib in.. 
22020 20 2a 2e 6c 61 29 09 66 75 6e 63 5f 73 6f 75 72   *.la).func_sour
22030 63 65 20 22 24 6c 69 62 22 20 3b 3b 0a 09 20 20  ce "$lib" ;;..  
22040 65 73 61 63 0a 0a 09 20 20 23 20 43 6f 6c 6c 65  esac...  # Colle
22050 63 74 20 70 72 65 6f 70 65 6e 65 64 20 6c 69 62  ct preopened lib
22060 74 6f 6f 6c 20 64 65 70 6c 69 62 73 2c 20 65 78  tool deplibs, ex
22070 63 65 70 74 20 61 6e 79 20 74 68 69 73 20 6c 69  cept any this li
22080 62 72 61 72 79 0a 09 20 20 23 20 68 61 73 20 64  brary..  # has d
22090 65 63 6c 61 72 65 64 20 61 73 20 77 65 61 6b 20  eclared as weak 
220a0 6c 69 62 73 0a 09 20 20 66 6f 72 20 64 65 70 6c  libs..  for depl
220b0 69 62 20 69 6e 20 24 64 65 70 65 6e 64 65 6e 63  ib in $dependenc
220c0 79 5f 6c 69 62 73 3b 20 64 6f 0a 20 20 20 20 20  y_libs; do.     
220d0 20 20 20 20 20 20 20 64 65 70 6c 69 62 5f 62 61         deplib_ba
220e0 73 65 3d 60 24 45 43 48 4f 20 22 58 24 64 65 70  se=`$ECHO "X$dep
220f0 6c 69 62 22 20 7c 20 24 58 73 65 64 20 2d 65 20  lib" | $Xsed -e 
22100 22 24 62 61 73 65 6e 61 6d 65 22 60 0a 09 20 20  "$basename"`..  
22110 20 20 63 61 73 65 20 22 20 24 77 65 61 6b 5f 6c    case " $weak_l
22120 69 62 73 20 22 20 69 6e 0a 09 20 20 20 20 2a 22  ibs " in..    *"
22130 20 24 64 65 70 6c 69 62 5f 62 61 73 65 20 22 2a   $deplib_base "*
22140 29 20 3b 3b 0a 09 20 20 20 20 2a 29 20 64 65 70  ) ;;..    *) dep
22150 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 73 20 24  libs="$deplibs $
22160 64 65 70 6c 69 62 22 20 3b 3b 0a 09 20 20 20 20  deplib" ;;..    
22170 65 73 61 63 0a 09 20 20 64 6f 6e 65 0a 09 64 6f  esac..  done..do
22180 6e 65 0a 09 6c 69 62 73 3d 22 24 64 6c 70 72 65  ne..libs="$dlpre
22190 66 69 6c 65 73 22 0a 20 20 20 20 20 20 66 69 0a  files".      fi.
221a0 20 20 20 20 20 20 69 66 20 74 65 73 74 20 22 24        if test "$
221b0 70 61 73 73 22 20 3d 20 64 6c 6f 70 65 6e 3b 20  pass" = dlopen; 
221c0 74 68 65 6e 0a 09 23 20 43 6f 6c 6c 65 63 74 20  then..# Collect 
221d0 64 6c 70 72 65 6f 70 65 6e 65 64 20 6c 69 62 72  dlpreopened libr
221e0 61 72 69 65 73 0a 09 73 61 76 65 5f 64 65 70 6c  aries..save_depl
221f0 69 62 73 3d 22 24 64 65 70 6c 69 62 73 22 0a 09  ibs="$deplibs"..
22200 64 65 70 6c 69 62 73 3d 0a 20 20 20 20 20 20 66  deplibs=.      f
22210 69 0a 0a 20 20 20 20 20 20 66 6f 72 20 64 65 70  i..      for dep
22220 6c 69 62 20 69 6e 20 24 6c 69 62 73 3b 20 64 6f  lib in $libs; do
22230 0a 09 6c 69 62 3d 0a 09 66 6f 75 6e 64 3d 6e 6f  ..lib=..found=no
22240 0a 09 63 61 73 65 20 24 64 65 70 6c 69 62 20 69  ..case $deplib i
22250 6e 0a 09 2d 6d 74 7c 2d 6d 74 68 72 65 61 64 73  n..-mt|-mthreads
22260 7c 2d 6b 74 68 72 65 61 64 7c 2d 4b 74 68 72 65  |-kthread|-Kthre
22270 61 64 7c 2d 70 74 68 72 65 61 64 7c 2d 70 74 68  ad|-pthread|-pth
22280 72 65 61 64 73 7c 2d 2d 74 68 72 65 61 64 2d 73  reads|--thread-s
22290 61 66 65 7c 2d 74 68 72 65 61 64 73 29 0a 09 20  afe|-threads).. 
222a0 20 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d   if test "$linkm
222b0 6f 64 65 2c 24 70 61 73 73 22 20 3d 20 22 70 72  ode,$pass" = "pr
222c0 6f 67 2c 6c 69 6e 6b 22 3b 20 74 68 65 6e 0a 09  og,link"; then..
222d0 20 20 20 20 63 6f 6d 70 69 6c 65 5f 64 65 70 6c      compile_depl
222e0 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 63 6f  ibs="$deplib $co
222f0 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 22 0a 09  mpile_deplibs"..
22300 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 64 65 70      finalize_dep
22310 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 66  libs="$deplib $f
22320 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 22  inalize_deplibs"
22330 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20 63 6f  ..  else..    co
22340 6d 70 69 6c 65 72 5f 66 6c 61 67 73 3d 22 24 63  mpiler_flags="$c
22350 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20 24 64  ompiler_flags $d
22360 65 70 6c 69 62 22 0a 09 20 20 20 20 69 66 20 74  eplib"..    if t
22370 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20  est "$linkmode" 
22380 3d 20 6c 69 62 20 3b 20 74 68 65 6e 0a 09 09 63  = lib ; then...c
22390 61 73 65 20 22 24 6e 65 77 5f 69 6e 68 65 72 69  ase "$new_inheri
223a0 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73  ted_linker_flags
223b0 20 22 20 69 6e 0a 09 09 20 20 20 20 2a 22 20 24   " in...    *" $
223c0 64 65 70 6c 69 62 20 22 2a 29 20 3b 3b 0a 09 09  deplib "*) ;;...
223d0 20 20 20 20 2a 20 29 20 6e 65 77 5f 69 6e 68 65      * ) new_inhe
223e0 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61  rited_linker_fla
223f0 67 73 3d 22 24 6e 65 77 5f 69 6e 68 65 72 69 74  gs="$new_inherit
22400 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 20  ed_linker_flags 
22410 24 64 65 70 6c 69 62 22 20 3b 3b 0a 09 09 65 73  $deplib" ;;...es
22420 61 63 0a 09 20 20 20 20 66 69 0a 09 20 20 66 69  ac..    fi..  fi
22430 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20  ..  continue..  
22440 3b 3b 0a 09 2d 6c 2a 29 0a 09 20 20 69 66 20 74  ;;..-l*)..  if t
22450 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20  est "$linkmode" 
22460 21 3d 20 6c 69 62 20 26 26 20 74 65 73 74 20 22  != lib && test "
22470 24 6c 69 6e 6b 6d 6f 64 65 22 20 21 3d 20 70 72  $linkmode" != pr
22480 6f 67 3b 20 74 68 65 6e 0a 09 20 20 20 20 66 75  og; then..    fu
22490 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 2d 6c  nc_warning "\`-l
224a0 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72  ' is ignored for
224b0 20 61 72 63 68 69 76 65 73 2f 6f 62 6a 65 63 74   archives/object
224c0 73 22 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65  s"..    continue
224d0 0a 09 20 20 66 69 0a 09 20 20 66 75 6e 63 5f 73  ..  fi..  func_s
224e0 74 72 69 70 6e 61 6d 65 20 27 2d 6c 27 20 27 27  tripname '-l' ''
224f0 20 22 24 64 65 70 6c 69 62 22 0a 09 20 20 6e 61   "$deplib"..  na
22500 6d 65 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61  me=$func_stripna
22510 6d 65 5f 72 65 73 75 6c 74 0a 09 20 20 69 66 20  me_result..  if 
22520 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22  test "$linkmode"
22530 20 3d 20 6c 69 62 3b 20 74 68 65 6e 0a 09 20 20   = lib; then..  
22540 20 20 73 65 61 72 63 68 64 69 72 73 3d 22 24 6e    searchdirs="$n
22550 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  ewlib_search_pat
22560 68 20 24 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  h $lib_search_pa
22570 74 68 20 24 63 6f 6d 70 69 6c 65 72 5f 6c 69 62  th $compiler_lib
22580 5f 73 65 61 72 63 68 5f 64 69 72 73 20 24 73 79  _search_dirs $sy
22590 73 5f 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  s_lib_search_pat
225a0 68 20 24 73 68 6c 69 62 5f 73 65 61 72 63 68 5f  h $shlib_search_
225b0 70 61 74 68 22 0a 09 20 20 65 6c 73 65 0a 09 20  path"..  else.. 
225c0 20 20 20 73 65 61 72 63 68 64 69 72 73 3d 22 24     searchdirs="$
225d0 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  newlib_search_pa
225e0 74 68 20 24 6c 69 62 5f 73 65 61 72 63 68 5f 70  th $lib_search_p
225f0 61 74 68 20 24 73 79 73 5f 6c 69 62 5f 73 65 61  ath $sys_lib_sea
22600 72 63 68 5f 70 61 74 68 20 24 73 68 6c 69 62 5f  rch_path $shlib_
22610 73 65 61 72 63 68 5f 70 61 74 68 22 0a 09 20 20  search_path"..  
22620 66 69 0a 09 20 20 66 6f 72 20 73 65 61 72 63 68  fi..  for search
22630 64 69 72 20 69 6e 20 24 73 65 61 72 63 68 64 69  dir in $searchdi
22640 72 73 3b 20 64 6f 0a 09 20 20 20 20 66 6f 72 20  rs; do..    for 
22650 73 65 61 72 63 68 5f 65 78 74 20 69 6e 20 2e 6c  search_ext in .l
22660 61 20 24 73 74 64 5f 73 68 72 65 78 74 20 2e 73  a $std_shrext .s
22670 6f 20 2e 61 3b 20 64 6f 0a 09 20 20 20 20 20 20  o .a; do..      
22680 23 20 53 65 61 72 63 68 20 74 68 65 20 6c 69 62  # Search the lib
22690 74 6f 6f 6c 20 6c 69 62 72 61 72 79 0a 09 20 20  tool library..  
226a0 20 20 20 20 6c 69 62 3d 22 24 73 65 61 72 63 68      lib="$search
226b0 64 69 72 2f 6c 69 62 24 7b 6e 61 6d 65 7d 24 7b  dir/lib${name}${
226c0 73 65 61 72 63 68 5f 65 78 74 7d 22 0a 09 20 20  search_ext}"..  
226d0 20 20 20 20 69 66 20 74 65 73 74 20 2d 66 20 22      if test -f "
226e0 24 6c 69 62 22 3b 20 74 68 65 6e 0a 09 09 69 66  $lib"; then...if
226f0 20 74 65 73 74 20 22 24 73 65 61 72 63 68 5f 65   test "$search_e
22700 78 74 22 20 3d 20 22 2e 6c 61 22 3b 20 74 68 65  xt" = ".la"; the
22710 6e 0a 09 09 20 20 66 6f 75 6e 64 3d 79 65 73 0a  n...  found=yes.
22720 09 09 65 6c 73 65 0a 09 09 20 20 66 6f 75 6e 64  ..else...  found
22730 3d 6e 6f 0a 09 09 66 69 0a 09 09 62 72 65 61 6b  =no...fi...break
22740 20 32 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20   2..      fi..  
22750 20 20 64 6f 6e 65 0a 09 20 20 64 6f 6e 65 0a 09    done..  done..
22760 20 20 69 66 20 74 65 73 74 20 22 24 66 6f 75 6e    if test "$foun
22770 64 22 20 21 3d 20 79 65 73 3b 20 74 68 65 6e 0a  d" != yes; then.
22780 09 20 20 20 20 23 20 64 65 70 6c 69 62 20 64 6f  .    # deplib do
22790 65 73 6e 27 74 20 73 65 65 6d 20 74 6f 20 62 65  esn't seem to be
227a0 20 61 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61   a libtool libra
227b0 72 79 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  ry..    if test 
227c0 22 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73  "$linkmode,$pass
227d0 22 20 3d 20 22 70 72 6f 67 2c 6c 69 6e 6b 22 3b  " = "prog,link";
227e0 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63 6f 6d   then..      com
227f0 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 22 24 64  pile_deplibs="$d
22800 65 70 6c 69 62 20 24 63 6f 6d 70 69 6c 65 5f 64  eplib $compile_d
22810 65 70 6c 69 62 73 22 0a 09 20 20 20 20 20 20 66  eplibs"..      f
22820 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d  inalize_deplibs=
22830 22 24 64 65 70 6c 69 62 20 24 66 69 6e 61 6c 69  "$deplib $finali
22840 7a 65 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 20  ze_deplibs"..   
22850 20 65 6c 73 65 0a 09 20 20 20 20 20 20 64 65 70   else..      dep
22860 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 64  libs="$deplib $d
22870 65 70 6c 69 62 73 22 0a 09 20 20 20 20 20 20 74  eplibs"..      t
22880 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20  est "$linkmode" 
22890 3d 20 6c 69 62 20 26 26 20 6e 65 77 64 65 70 65  = lib && newdepe
228a0 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 22 24 64 65  ndency_libs="$de
228b0 70 6c 69 62 20 24 6e 65 77 64 65 70 65 6e 64 65  plib $newdepende
228c0 6e 63 79 5f 6c 69 62 73 22 0a 09 20 20 20 20 66  ncy_libs"..    f
228d0 69 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a  i..    continue.
228e0 09 20 20 65 6c 73 65 20 23 20 64 65 70 6c 69 62  .  else # deplib
228f0 20 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20 6c 69   is a libtool li
22900 62 72 61 72 79 0a 09 20 20 20 20 23 20 49 66 20  brary..    # If 
22910 24 61 6c 6c 6f 77 5f 6c 69 62 74 6f 6f 6c 5f 6c  $allow_libtool_l
22920 69 62 73 5f 77 69 74 68 5f 73 74 61 74 69 63 5f  ibs_with_static_
22930 72 75 6e 74 69 6d 65 73 20 26 26 20 24 64 65 70  runtimes && $dep
22940 6c 69 62 20 69 73 20 61 20 73 74 64 6c 69 62 2c  lib is a stdlib,
22950 0a 09 20 20 20 20 23 20 57 65 20 6e 65 65 64 20  ..    # We need 
22960 74 6f 20 64 6f 20 73 6f 6d 65 20 73 70 65 63 69  to do some speci
22970 61 6c 20 74 68 69 6e 67 73 20 68 65 72 65 2c 20  al things here, 
22980 61 6e 64 20 6e 6f 74 20 6c 61 74 65 72 2e 0a 09  and not later...
22990 20 20 20 20 69 66 20 74 65 73 74 20 22 58 24 61      if test "X$a
229a0 6c 6c 6f 77 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  llow_libtool_lib
229b0 73 5f 77 69 74 68 5f 73 74 61 74 69 63 5f 72 75  s_with_static_ru
229c0 6e 74 69 6d 65 73 22 20 3d 20 22 58 79 65 73 22  ntimes" = "Xyes"
229d0 20 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63   ; then..      c
229e0 61 73 65 20 22 20 24 70 72 65 64 65 70 73 20 24  ase " $predeps $
229f0 70 6f 73 74 64 65 70 73 20 22 20 69 6e 0a 09 20  postdeps " in.. 
22a00 20 20 20 20 20 2a 22 20 24 64 65 70 6c 69 62 20       *" $deplib 
22a10 22 2a 29 0a 09 09 69 66 20 66 75 6e 63 5f 6c 61  "*)...if func_la
22a20 6c 69 62 5f 70 20 22 24 6c 69 62 22 3b 20 74 68  lib_p "$lib"; th
22a30 65 6e 0a 09 09 20 20 6c 69 62 72 61 72 79 5f 6e  en...  library_n
22a40 61 6d 65 73 3d 0a 09 09 20 20 6f 6c 64 5f 6c 69  ames=...  old_li
22a50 62 72 61 72 79 3d 0a 09 09 20 20 66 75 6e 63 5f  brary=...  func_
22a60 73 6f 75 72 63 65 20 22 24 6c 69 62 22 0a 09 09  source "$lib"...
22a70 20 20 66 6f 72 20 6c 20 69 6e 20 24 6f 6c 64 5f    for l in $old_
22a80 6c 69 62 72 61 72 79 20 24 6c 69 62 72 61 72 79  library $library
22a90 5f 6e 61 6d 65 73 3b 20 64 6f 0a 09 09 20 20 20  _names; do...   
22aa0 20 6c 6c 3d 22 24 6c 22 0a 09 09 20 20 64 6f 6e   ll="$l"...  don
22ab0 65 0a 09 09 20 20 69 66 20 74 65 73 74 20 22 58  e...  if test "X
22ac0 24 6c 6c 22 20 3d 20 22 58 24 6f 6c 64 5f 6c 69  $ll" = "X$old_li
22ad0 62 72 61 72 79 22 20 3b 20 74 68 65 6e 20 23 20  brary" ; then # 
22ae0 6f 6e 6c 79 20 73 74 61 74 69 63 20 76 65 72 73  only static vers
22af0 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 0a 09 09  ion available...
22b00 20 20 20 20 66 6f 75 6e 64 3d 6e 6f 0a 09 09 20      found=no... 
22b10 20 20 20 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20     func_dirname 
22b20 22 24 6c 69 62 22 20 22 22 20 22 2e 22 0a 09 09  "$lib" "" "."...
22b30 20 20 20 20 6c 61 64 69 72 3d 22 24 66 75 6e 63      ladir="$func
22b40 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22  _dirname_result"
22b50 0a 09 09 20 20 20 20 6c 69 62 3d 24 6c 61 64 69  ...    lib=$ladi
22b60 72 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 0a 09  r/$old_library..
22b70 09 20 20 20 20 69 66 20 74 65 73 74 20 22 24 6c  .    if test "$l
22b80 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22 20 3d  inkmode,$pass" =
22b90 20 22 70 72 6f 67 2c 6c 69 6e 6b 22 3b 20 74 68   "prog,link"; th
22ba0 65 6e 0a 09 09 20 20 20 20 20 20 63 6f 6d 70 69  en...      compi
22bb0 6c 65 5f 64 65 70 6c 69 62 73 3d 22 24 64 65 70  le_deplibs="$dep
22bc0 6c 69 62 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70  lib $compile_dep
22bd0 6c 69 62 73 22 0a 09 09 20 20 20 20 20 20 66 69  libs"...      fi
22be0 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d 22  nalize_deplibs="
22bf0 24 64 65 70 6c 69 62 20 24 66 69 6e 61 6c 69 7a  $deplib $finaliz
22c00 65 5f 64 65 70 6c 69 62 73 22 0a 09 09 20 20 20  e_deplibs"...   
22c10 20 65 6c 73 65 0a 09 09 20 20 20 20 20 20 64 65   else...      de
22c20 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24  plibs="$deplib $
22c30 64 65 70 6c 69 62 73 22 0a 09 09 20 20 20 20 20  deplibs"...     
22c40 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
22c50 22 20 3d 20 6c 69 62 20 26 26 20 6e 65 77 64 65  " = lib && newde
22c60 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 22 24  pendency_libs="$
22c70 64 65 70 6c 69 62 20 24 6e 65 77 64 65 70 65 6e  deplib $newdepen
22c80 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09 09 20 20  dency_libs"...  
22c90 20 20 66 69 0a 09 09 20 20 20 20 63 6f 6e 74 69    fi...    conti
22ca0 6e 75 65 0a 09 09 20 20 66 69 0a 09 09 66 69 0a  nue...  fi...fi.
22cb0 09 09 3b 3b 0a 09 20 20 20 20 20 20 2a 29 20 3b  ..;;..      *) ;
22cc0 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20  ;..      esac.. 
22cd0 20 20 20 66 69 0a 09 20 20 66 69 0a 09 20 20 3b     fi..  fi..  ;
22ce0 3b 20 23 20 2d 6c 0a 09 2a 2e 6c 74 66 72 61 6d  ; # -l..*.ltfram
22cf0 65 77 6f 72 6b 29 0a 09 20 20 69 66 20 74 65 73  ework)..  if tes
22d00 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61  t "$linkmode,$pa
22d10 73 73 22 20 3d 20 22 70 72 6f 67 2c 6c 69 6e 6b  ss" = "prog,link
22d20 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 63 6f 6d  "; then..    com
22d30 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 22 24 64  pile_deplibs="$d
22d40 65 70 6c 69 62 20 24 63 6f 6d 70 69 6c 65 5f 64  eplib $compile_d
22d50 65 70 6c 69 62 73 22 0a 09 20 20 20 20 66 69 6e  eplibs"..    fin
22d60 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d 22 24  alize_deplibs="$
22d70 64 65 70 6c 69 62 20 24 66 69 6e 61 6c 69 7a 65  deplib $finalize
22d80 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 65 6c 73  _deplibs"..  els
22d90 65 0a 09 20 20 20 20 64 65 70 6c 69 62 73 3d 22  e..    deplibs="
22da0 24 64 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73  $deplib $deplibs
22db0 22 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22  "..    if test "
22dc0 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 6c 69 62  $linkmode" = lib
22dd0 20 3b 20 74 68 65 6e 0a 09 09 63 61 73 65 20 22   ; then...case "
22de0 24 6e 65 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c  $new_inherited_l
22df0 69 6e 6b 65 72 5f 66 6c 61 67 73 20 22 20 69 6e  inker_flags " in
22e00 0a 09 09 20 20 20 20 2a 22 20 24 64 65 70 6c 69  ...    *" $depli
22e10 62 20 22 2a 29 20 3b 3b 0a 09 09 20 20 20 20 2a  b "*) ;;...    *
22e20 20 29 20 6e 65 77 5f 69 6e 68 65 72 69 74 65 64   ) new_inherited
22e30 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 22 24  _linker_flags="$
22e40 6e 65 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69  new_inherited_li
22e50 6e 6b 65 72 5f 66 6c 61 67 73 20 24 64 65 70 6c  nker_flags $depl
22e60 69 62 22 20 3b 3b 0a 09 09 65 73 61 63 0a 09 20  ib" ;;...esac.. 
22e70 20 20 20 66 69 0a 09 20 20 66 69 0a 09 20 20 63     fi..  fi..  c
22e80 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 09 2d  ontinue..  ;;..-
22e90 4c 2a 29 0a 09 20 20 63 61 73 65 20 24 6c 69 6e  L*)..  case $lin
22ea0 6b 6d 6f 64 65 20 69 6e 0a 09 20 20 6c 69 62 29  kmode in..  lib)
22eb0 0a 09 20 20 20 20 64 65 70 6c 69 62 73 3d 22 24  ..    deplibs="$
22ec0 64 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73 22  deplib $deplibs"
22ed0 0a 09 20 20 20 20 74 65 73 74 20 22 24 70 61 73  ..    test "$pas
22ee0 73 22 20 3d 20 63 6f 6e 76 20 26 26 20 63 6f 6e  s" = conv && con
22ef0 74 69 6e 75 65 0a 09 20 20 20 20 6e 65 77 64 65  tinue..    newde
22f00 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 22 24  pendency_libs="$
22f10 64 65 70 6c 69 62 20 24 6e 65 77 64 65 70 65 6e  deplib $newdepen
22f20 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09 20 20 20  dency_libs"..   
22f30 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20   func_stripname 
22f40 27 2d 4c 27 20 27 27 20 22 24 64 65 70 6c 69 62  '-L' '' "$deplib
22f50 22 0a 09 20 20 20 20 6e 65 77 6c 69 62 5f 73 65  "..    newlib_se
22f60 61 72 63 68 5f 70 61 74 68 3d 22 24 6e 65 77 6c  arch_path="$newl
22f70 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 20 24  ib_search_path $
22f80 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72  func_stripname_r
22f90 65 73 75 6c 74 22 0a 09 20 20 20 20 3b 3b 0a 09  esult"..    ;;..
22fa0 20 20 70 72 6f 67 29 0a 09 20 20 20 20 69 66 20    prog)..    if 
22fb0 74 65 73 74 20 22 24 70 61 73 73 22 20 3d 20 63  test "$pass" = c
22fc0 6f 6e 76 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  onv; then..     
22fd0 20 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69   deplibs="$depli
22fe0 62 20 24 64 65 70 6c 69 62 73 22 0a 09 20 20 20  b $deplibs"..   
22ff0 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20     continue..   
23000 20 66 69 0a 09 20 20 20 20 69 66 20 74 65 73 74   fi..    if test
23010 20 22 24 70 61 73 73 22 20 3d 20 73 63 61 6e 3b   "$pass" = scan;
23020 20 74 68 65 6e 0a 09 20 20 20 20 20 20 64 65 70   then..      dep
23030 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 64  libs="$deplib $d
23040 65 70 6c 69 62 73 22 0a 09 20 20 20 20 65 6c 73  eplibs"..    els
23050 65 0a 09 20 20 20 20 20 20 63 6f 6d 70 69 6c 65  e..      compile
23060 5f 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69  _deplibs="$depli
23070 62 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69  b $compile_depli
23080 62 73 22 0a 09 20 20 20 20 20 20 66 69 6e 61 6c  bs"..      final
23090 69 7a 65 5f 64 65 70 6c 69 62 73 3d 22 24 64 65  ize_deplibs="$de
230a0 70 6c 69 62 20 24 66 69 6e 61 6c 69 7a 65 5f 64  plib $finalize_d
230b0 65 70 6c 69 62 73 22 0a 09 20 20 20 20 66 69 0a  eplibs"..    fi.
230c0 09 20 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e  .    func_stripn
230d0 61 6d 65 20 27 2d 4c 27 20 27 27 20 22 24 64 65  ame '-L' '' "$de
230e0 70 6c 69 62 22 0a 09 20 20 20 20 6e 65 77 6c 69  plib"..    newli
230f0 62 5f 73 65 61 72 63 68 5f 70 61 74 68 3d 22 24  b_search_path="$
23100 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  newlib_search_pa
23110 74 68 20 24 66 75 6e 63 5f 73 74 72 69 70 6e 61  th $func_stripna
23120 6d 65 5f 72 65 73 75 6c 74 22 0a 09 20 20 20 20  me_result"..    
23130 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20 66 75  ;;..  *)..    fu
23140 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 2d 4c  nc_warning "\`-L
23150 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72  ' is ignored for
23160 20 61 72 63 68 69 76 65 73 2f 6f 62 6a 65 63 74   archives/object
23170 73 22 0a 09 20 20 20 20 3b 3b 0a 09 20 20 65 73  s"..    ;;..  es
23180 61 63 20 23 20 6c 69 6e 6b 6d 6f 64 65 0a 09 20  ac # linkmode.. 
23190 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 20   continue..  ;; 
231a0 23 20 2d 4c 0a 09 2d 52 2a 29 0a 09 20 20 69 66  # -L..-R*)..  if
231b0 20 74 65 73 74 20 22 24 70 61 73 73 22 20 3d 20   test "$pass" = 
231c0 6c 69 6e 6b 3b 20 74 68 65 6e 0a 09 20 20 20 20  link; then..    
231d0 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
231e0 2d 52 27 20 27 27 20 22 24 64 65 70 6c 69 62 22  -R' '' "$deplib"
231f0 0a 09 20 20 20 20 64 69 72 3d 24 66 75 6e 63 5f  ..    dir=$func_
23200 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
23210 0a 09 20 20 20 20 23 20 4d 61 6b 65 20 73 75 72  ..    # Make sur
23220 65 20 74 68 65 20 78 72 70 61 74 68 20 63 6f 6e  e the xrpath con
23230 74 61 69 6e 73 20 6f 6e 6c 79 20 75 6e 69 71 75  tains only uniqu
23240 65 20 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 09  e directories...
23250 20 20 20 20 63 61 73 65 20 22 24 78 72 70 61 74      case "$xrpat
23260 68 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20 24  h " in..    *" $
23270 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20  dir "*) ;;..    
23280 2a 29 20 78 72 70 61 74 68 3d 22 24 78 72 70 61  *) xrpath="$xrpa
23290 74 68 20 24 64 69 72 22 20 3b 3b 0a 09 20 20 20  th $dir" ;;..   
232a0 20 65 73 61 63 0a 09 20 20 66 69 0a 09 20 20 64   esac..  fi..  d
232b0 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20  eplibs="$deplib 
232c0 24 64 65 70 6c 69 62 73 22 0a 09 20 20 63 6f 6e  $deplibs"..  con
232d0 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 09 2a 2e 6c  tinue..  ;;..*.l
232e0 61 29 20 6c 69 62 3d 22 24 64 65 70 6c 69 62 22  a) lib="$deplib"
232f0 20 3b 3b 0a 09 2a 2e 24 6c 69 62 65 78 74 29 0a   ;;..*.$libext).
23300 09 20 20 69 66 20 74 65 73 74 20 22 24 70 61 73  .  if test "$pas
23310 73 22 20 3d 20 63 6f 6e 76 3b 20 74 68 65 6e 0a  s" = conv; then.
23320 09 20 20 20 20 64 65 70 6c 69 62 73 3d 22 24 64  .    deplibs="$d
23330 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73 22 0a  eplib $deplibs".
23340 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20  .    continue.. 
23350 20 66 69 0a 09 20 20 63 61 73 65 20 24 6c 69 6e   fi..  case $lin
23360 6b 6d 6f 64 65 20 69 6e 0a 09 20 20 6c 69 62 29  kmode in..  lib)
23370 0a 09 20 20 20 20 23 20 4c 69 6e 6b 69 6e 67 20  ..    # Linking 
23380 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6d 6f 64 75  convenience modu
23390 6c 65 73 20 69 6e 74 6f 20 73 68 61 72 65 64 20  les into shared 
233a0 6c 69 62 72 61 72 69 65 73 20 69 73 20 61 6c 6c  libraries is all
233b0 6f 77 65 64 2c 0a 09 20 20 20 20 23 20 62 75 74  owed,..    # but
233c0 20 6c 69 6e 6b 69 6e 67 20 6f 74 68 65 72 20 73   linking other s
233d0 74 61 74 69 63 20 6c 69 62 72 61 72 69 65 73 20  tatic libraries 
233e0 69 73 20 6e 6f 6e 2d 70 6f 72 74 61 62 6c 65 2e  is non-portable.
233f0 0a 09 20 20 20 20 63 61 73 65 20 22 20 24 64 6c  ..    case " $dl
23400 70 72 65 63 6f 6e 76 65 6e 69 65 6e 63 65 6c 69  preconvenienceli
23410 62 73 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20  bs " in..    *" 
23420 24 64 65 70 6c 69 62 20 22 2a 29 20 3b 3b 0a 09  $deplib "*) ;;..
23430 20 20 20 20 2a 29 0a 09 20 20 20 20 20 20 76 61      *)..      va
23440 6c 69 64 5f 61 5f 6c 69 62 3d 6e 6f 0a 09 20 20  lid_a_lib=no..  
23450 20 20 20 20 63 61 73 65 20 24 64 65 70 6c 69 62      case $deplib
23460 73 5f 63 68 65 63 6b 5f 6d 65 74 68 6f 64 20 69  s_check_method i
23470 6e 0a 09 09 6d 61 74 63 68 5f 70 61 74 74 65 72  n...match_patter
23480 6e 2a 29 0a 09 09 20 20 73 65 74 20 64 75 6d 6d  n*)...  set dumm
23490 79 20 24 64 65 70 6c 69 62 73 5f 63 68 65 63 6b  y $deplibs_check
234a0 5f 6d 65 74 68 6f 64 3b 20 73 68 69 66 74 0a 09  _method; shift..
234b0 09 20 20 6d 61 74 63 68 5f 70 61 74 74 65 72 6e  .  match_pattern
234c0 5f 72 65 67 65 78 3d 60 65 78 70 72 20 22 24 64  _regex=`expr "$d
234d0 65 70 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74  eplibs_check_met
234e0 68 6f 64 22 20 3a 20 22 24 31 20 5c 28 2e 2a 5c  hod" : "$1 \(.*\
234f0 29 22 60 0a 09 09 20 20 69 66 20 65 76 61 6c 20  )"`...  if eval 
23500 22 5c 24 45 43 48 4f 20 5c 22 58 24 64 65 70 6c  "\$ECHO \"X$depl
23510 69 62 5c 22 22 20 32 3e 2f 64 65 76 2f 6e 75 6c  ib\"" 2>/dev/nul
23520 6c 20 7c 20 24 58 73 65 64 20 2d 65 20 31 30 71  l | $Xsed -e 10q
23530 20 5c 0a 09 09 20 20 20 20 7c 20 24 45 47 52 45   \...    | $EGRE
23540 50 20 22 24 6d 61 74 63 68 5f 70 61 74 74 65 72  P "$match_patter
23550 6e 5f 72 65 67 65 78 22 20 3e 20 2f 64 65 76 2f  n_regex" > /dev/
23560 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 20 20 20  null; then...   
23570 20 76 61 6c 69 64 5f 61 5f 6c 69 62 3d 79 65 73   valid_a_lib=yes
23580 0a 09 09 20 20 66 69 0a 09 09 3b 3b 0a 09 09 70  ...  fi...;;...p
23590 61 73 73 5f 61 6c 6c 29 0a 09 09 20 20 76 61 6c  ass_all)...  val
235a0 69 64 5f 61 5f 6c 69 62 3d 79 65 73 0a 09 09 3b  id_a_lib=yes...;
235b0 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20  ;..      esac.. 
235c0 20 20 20 20 20 69 66 20 74 65 73 74 20 22 24 76       if test "$v
235d0 61 6c 69 64 5f 61 5f 6c 69 62 22 20 21 3d 20 79  alid_a_lib" != y
235e0 65 73 3b 20 74 68 65 6e 0a 09 09 24 45 43 48 4f  es; then...$ECHO
235f0 0a 09 09 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61  ...$ECHO "*** Wa
23600 72 6e 69 6e 67 3a 20 54 72 79 69 6e 67 20 74 6f  rning: Trying to
23610 20 6c 69 6e 6b 20 77 69 74 68 20 73 74 61 74 69   link with stati
23620 63 20 6c 69 62 20 61 72 63 68 69 76 65 20 24 64  c lib archive $d
23630 65 70 6c 69 62 2e 22 0a 09 09 24 45 43 48 4f 20  eplib."...$ECHO 
23640 22 2a 2a 2a 20 49 20 68 61 76 65 20 74 68 65 20  "*** I have the 
23650 63 61 70 61 62 69 6c 69 74 79 20 74 6f 20 6d 61  capability to ma
23660 6b 65 20 74 68 61 74 20 6c 69 62 72 61 72 79 20  ke that library 
23670 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 69  automatically li
23680 6e 6b 20 69 6e 20 77 68 65 6e 22 0a 09 09 24 45  nk in when"...$E
23690 43 48 4f 20 22 2a 2a 2a 20 79 6f 75 20 6c 69 6e  CHO "*** you lin
236a0 6b 20 74 6f 20 74 68 69 73 20 6c 69 62 72 61 72  k to this librar
236b0 79 2e 20 20 42 75 74 20 49 20 63 61 6e 20 6f 6e  y.  But I can on
236c0 6c 79 20 64 6f 20 74 68 69 73 20 69 66 20 79 6f  ly do this if yo
236d0 75 20 68 61 76 65 20 61 22 0a 09 09 24 45 43 48  u have a"...$ECH
236e0 4f 20 22 2a 2a 2a 20 73 68 61 72 65 64 20 76 65  O "*** shared ve
236f0 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6c 69 62  rsion of the lib
23700 72 61 72 79 2c 20 77 68 69 63 68 20 79 6f 75 20  rary, which you 
23710 64 6f 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f  do not appear to
23720 20 68 61 76 65 22 0a 09 09 24 45 43 48 4f 20 22   have"...$ECHO "
23730 2a 2a 2a 20 62 65 63 61 75 73 65 20 74 68 65 20  *** because the 
23740 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 73 20  file extensions 
23750 2e 24 6c 69 62 65 78 74 20 6f 66 20 74 68 69 73  .$libext of this
23760 20 61 72 67 75 6d 65 6e 74 20 6d 61 6b 65 73 20   argument makes 
23770 6d 65 20 62 65 6c 69 65 76 65 22 0a 09 09 24 45  me believe"...$E
23780 43 48 4f 20 22 2a 2a 2a 20 74 68 61 74 20 69 74  CHO "*** that it
23790 20 69 73 20 6a 75 73 74 20 61 20 73 74 61 74 69   is just a stati
237a0 63 20 61 72 63 68 69 76 65 20 74 68 61 74 20 49  c archive that I
237b0 20 73 68 6f 75 6c 64 20 6e 6f 74 20 75 73 65 20   should not use 
237c0 68 65 72 65 2e 22 0a 09 20 20 20 20 20 20 65 6c  here."..      el
237d0 73 65 0a 09 09 24 45 43 48 4f 0a 09 09 24 45 43  se...$ECHO...$EC
237e0 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a  HO "*** Warning:
237f0 20 4c 69 6e 6b 69 6e 67 20 74 68 65 20 73 68 61   Linking the sha
23800 72 65 64 20 6c 69 62 72 61 72 79 20 24 6f 75 74  red library $out
23810 70 75 74 20 61 67 61 69 6e 73 74 20 74 68 65 22  put against the"
23820 0a 09 09 24 45 43 48 4f 20 22 2a 2a 2a 20 73 74  ...$ECHO "*** st
23830 61 74 69 63 20 6c 69 62 72 61 72 79 20 24 64 65  atic library $de
23840 70 6c 69 62 20 69 73 20 6e 6f 74 20 70 6f 72 74  plib is not port
23850 61 62 6c 65 21 22 0a 09 09 64 65 70 6c 69 62 73  able!"...deplibs
23860 3d 22 24 64 65 70 6c 69 62 20 24 64 65 70 6c 69  ="$deplib $depli
23870 62 73 22 0a 09 20 20 20 20 20 20 66 69 0a 09 20  bs"..      fi.. 
23880 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 65 73 61       ;;..    esa
23890 63 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a  c..    continue.
238a0 09 20 20 20 20 3b 3b 0a 09 20 20 70 72 6f 67 29  .    ;;..  prog)
238b0 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22 24  ..    if test "$
238c0 70 61 73 73 22 20 21 3d 20 6c 69 6e 6b 3b 20 74  pass" != link; t
238d0 68 65 6e 0a 09 20 20 20 20 20 20 64 65 70 6c 69  hen..      depli
238e0 62 73 3d 22 24 64 65 70 6c 69 62 20 24 64 65 70  bs="$deplib $dep
238f0 6c 69 62 73 22 0a 09 20 20 20 20 65 6c 73 65 0a  libs"..    else.
23900 09 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 5f 64  .      compile_d
23910 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20  eplibs="$deplib 
23920 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73  $compile_deplibs
23930 22 0a 09 20 20 20 20 20 20 66 69 6e 61 6c 69 7a  "..      finaliz
23940 65 5f 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c  e_deplibs="$depl
23950 69 62 20 24 66 69 6e 61 6c 69 7a 65 5f 64 65 70  ib $finalize_dep
23960 6c 69 62 73 22 0a 09 20 20 20 20 66 69 0a 09 20  libs"..    fi.. 
23970 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20     continue..   
23980 20 3b 3b 0a 09 20 20 65 73 61 63 20 23 20 6c 69   ;;..  esac # li
23990 6e 6b 6d 6f 64 65 0a 09 20 20 3b 3b 20 23 20 2a  nkmode..  ;; # *
239a0 2e 24 6c 69 62 65 78 74 0a 09 2a 2e 6c 6f 20 7c  .$libext..*.lo |
239b0 20 2a 2e 24 6f 62 6a 65 78 74 29 0a 09 20 20 69   *.$objext)..  i
239c0 66 20 74 65 73 74 20 22 24 70 61 73 73 22 20 3d  f test "$pass" =
239d0 20 63 6f 6e 76 3b 20 74 68 65 6e 0a 09 20 20 20   conv; then..   
239e0 20 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69   deplibs="$depli
239f0 62 20 24 64 65 70 6c 69 62 73 22 0a 09 20 20 65  b $deplibs"..  e
23a00 6c 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d  lif test "$linkm
23a10 6f 64 65 22 20 3d 20 70 72 6f 67 3b 20 74 68 65  ode" = prog; the
23a20 6e 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22  n..    if test "
23a30 24 70 61 73 73 22 20 3d 20 64 6c 70 72 65 6f 70  $pass" = dlpreop
23a40 65 6e 20 7c 7c 20 74 65 73 74 20 22 24 64 6c 6f  en || test "$dlo
23a50 70 65 6e 5f 73 75 70 70 6f 72 74 22 20 21 3d 20  pen_support" != 
23a60 79 65 73 20 7c 7c 20 74 65 73 74 20 22 24 62 75  yes || test "$bu
23a70 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73  ild_libtool_libs
23a80 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09 20 20  " = no; then..  
23a90 20 20 20 20 23 20 49 66 20 74 68 65 72 65 20 69      # If there i
23aa0 73 20 6e 6f 20 64 6c 6f 70 65 6e 20 73 75 70 70  s no dlopen supp
23ab0 6f 72 74 20 6f 72 20 77 65 27 72 65 20 6c 69 6e  ort or we're lin
23ac0 6b 69 6e 67 20 73 74 61 74 69 63 61 6c 6c 79 2c  king statically,
23ad0 0a 09 20 20 20 20 20 20 23 20 77 65 20 6e 65 65  ..      # we nee
23ae0 64 20 74 6f 20 70 72 65 6c 6f 61 64 2e 0a 09 20  d to preload... 
23af0 20 20 20 20 20 6e 65 77 64 6c 70 72 65 66 69 6c       newdlprefil
23b00 65 73 3d 22 24 6e 65 77 64 6c 70 72 65 66 69 6c  es="$newdlprefil
23b10 65 73 20 24 64 65 70 6c 69 62 22 0a 09 20 20 20  es $deplib"..   
23b20 20 20 20 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69     compile_depli
23b30 62 73 3d 22 24 64 65 70 6c 69 62 20 24 63 6f 6d  bs="$deplib $com
23b40 70 69 6c 65 5f 64 65 70 6c 69 62 73 22 0a 09 20  pile_deplibs".. 
23b50 20 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 64 65       finalize_de
23b60 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24  plibs="$deplib $
23b70 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73  finalize_deplibs
23b80 22 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20  "..    else..   
23b90 20 20 20 6e 65 77 64 6c 66 69 6c 65 73 3d 22 24     newdlfiles="$
23ba0 6e 65 77 64 6c 66 69 6c 65 73 20 24 64 65 70 6c  newdlfiles $depl
23bb0 69 62 22 0a 09 20 20 20 20 66 69 0a 09 20 20 66  ib"..    fi..  f
23bc0 69 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20  i..  continue.. 
23bd0 20 3b 3b 0a 09 25 44 45 50 4c 49 42 53 25 29 0a   ;;..%DEPLIBS%).
23be0 09 20 20 61 6c 6c 64 65 70 6c 69 62 73 3d 79 65  .  alldeplibs=ye
23bf0 73 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20  s..  continue.. 
23c00 20 3b 3b 0a 09 65 73 61 63 20 23 20 63 61 73 65   ;;..esac # case
23c10 20 24 64 65 70 6c 69 62 0a 0a 09 69 66 20 74 65   $deplib...if te
23c20 73 74 20 22 24 66 6f 75 6e 64 22 20 3d 20 79 65  st "$found" = ye
23c30 73 20 7c 7c 20 74 65 73 74 20 2d 66 20 22 24 6c  s || test -f "$l
23c40 69 62 22 3b 20 74 68 65 6e 20 3a 0a 09 65 6c 73  ib"; then :..els
23c50 65 0a 09 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  e..  func_fatal_
23c60 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 66 69  error "cannot fi
23c70 6e 64 20 74 68 65 20 6c 69 62 72 61 72 79 20 5c  nd the library \
23c80 60 24 6c 69 62 27 20 6f 72 20 75 6e 68 61 6e 64  `$lib' or unhand
23c90 6c 65 64 20 61 72 67 75 6d 65 6e 74 20 5c 60 24  led argument \`$
23ca0 64 65 70 6c 69 62 27 22 0a 09 66 69 0a 0a 09 23  deplib'"..fi...#
23cb0 20 43 68 65 63 6b 20 74 6f 20 73 65 65 20 74 68   Check to see th
23cc0 61 74 20 74 68 69 73 20 72 65 61 6c 6c 79 20 69  at this really i
23cd0 73 20 61 20 6c 69 62 74 6f 6f 6c 20 61 72 63 68  s a libtool arch
23ce0 69 76 65 2e 0a 09 66 75 6e 63 5f 6c 61 6c 69 62  ive...func_lalib
23cf0 5f 75 6e 73 61 66 65 5f 70 20 22 24 6c 69 62 22  _unsafe_p "$lib"
23d00 20 5c 0a 09 20 20 7c 7c 20 66 75 6e 63 5f 66 61   \..  || func_fa
23d10 74 61 6c 5f 65 72 72 6f 72 20 22 5c 60 24 6c 69  tal_error "\`$li
23d20 62 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69  b' is not a vali
23d30 64 20 6c 69 62 74 6f 6f 6c 20 61 72 63 68 69 76  d libtool archiv
23d40 65 22 0a 0a 09 66 75 6e 63 5f 64 69 72 6e 61 6d  e"...func_dirnam
23d50 65 20 22 24 6c 69 62 22 20 22 22 20 22 2e 22 0a  e "$lib" "" ".".
23d60 09 6c 61 64 69 72 3d 22 24 66 75 6e 63 5f 64 69  .ladir="$func_di
23d70 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 0a 09  rname_result"...
23d80 64 6c 6e 61 6d 65 3d 0a 09 64 6c 6f 70 65 6e 3d  dlname=..dlopen=
23d90 0a 09 64 6c 70 72 65 6f 70 65 6e 3d 0a 09 6c 69  ..dlpreopen=..li
23da0 62 64 69 72 3d 0a 09 6c 69 62 72 61 72 79 5f 6e  bdir=..library_n
23db0 61 6d 65 73 3d 0a 09 6f 6c 64 5f 6c 69 62 72 61  ames=..old_libra
23dc0 72 79 3d 0a 09 69 6e 68 65 72 69 74 65 64 5f 6c  ry=..inherited_l
23dd0 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 0a 09 23 20  inker_flags=..# 
23de0 49 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 77  If the library w
23df0 61 73 20 69 6e 73 74 61 6c 6c 65 64 20 77 69 74  as installed wit
23e00 68 20 61 6e 20 6f 6c 64 20 72 65 6c 65 61 73 65  h an old release
23e10 20 6f 66 20 6c 69 62 74 6f 6f 6c 2c 0a 09 23 20   of libtool,..# 
23e20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 72 65 64 65  it will not rede
23e30 66 69 6e 65 20 76 61 72 69 61 62 6c 65 73 20 69  fine variables i
23e40 6e 73 74 61 6c 6c 65 64 2c 20 6f 72 20 73 68 6f  nstalled, or sho
23e50 75 6c 64 6e 6f 74 6c 69 6e 6b 0a 09 69 6e 73 74  uldnotlink..inst
23e60 61 6c 6c 65 64 3d 79 65 73 0a 09 73 68 6f 75 6c  alled=yes..shoul
23e70 64 6e 6f 74 6c 69 6e 6b 3d 6e 6f 0a 09 61 76 6f  dnotlink=no..avo
23e80 69 64 74 65 6d 70 72 70 61 74 68 3d 0a 0a 0a 09  idtemprpath=....
23e90 23 20 52 65 61 64 20 74 68 65 20 2e 6c 61 20 66  # Read the .la f
23ea0 69 6c 65 0a 09 66 75 6e 63 5f 73 6f 75 72 63 65  ile..func_source
23eb0 20 22 24 6c 69 62 22 0a 0a 09 23 20 43 6f 6e 76   "$lib"...# Conv
23ec0 65 72 74 20 22 2d 66 72 61 6d 65 77 6f 72 6b 20  ert "-framework 
23ed0 66 6f 6f 22 20 74 6f 20 22 66 6f 6f 2e 6c 74 66  foo" to "foo.ltf
23ee0 72 61 6d 65 77 6f 72 6b 22 0a 09 69 66 20 74 65  ramework"..if te
23ef0 73 74 20 2d 6e 20 22 24 69 6e 68 65 72 69 74 65  st -n "$inherite
23f00 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 22 3b  d_linker_flags";
23f10 20 74 68 65 6e 0a 09 20 20 74 6d 70 5f 69 6e 68   then..  tmp_inh
23f20 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c  erited_linker_fl
23f30 61 67 73 3d 60 24 45 43 48 4f 20 22 58 24 69 6e  ags=`$ECHO "X$in
23f40 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66  herited_linker_f
23f50 6c 61 67 73 22 20 7c 20 24 58 73 65 64 20 2d 65  lags" | $Xsed -e
23f60 20 27 73 2f 2d 66 72 61 6d 65 77 6f 72 6b 20 5c   's/-framework \
23f70 28 5b 5e 20 24 5d 2a 5c 29 2f 5c 31 2e 6c 74 66  ([^ $]*\)/\1.ltf
23f80 72 61 6d 65 77 6f 72 6b 2f 67 27 60 0a 09 20 20  ramework/g'`..  
23f90 66 6f 72 20 74 6d 70 5f 69 6e 68 65 72 69 74 65  for tmp_inherite
23fa0 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 20 69 6e  d_linker_flag in
23fb0 20 24 74 6d 70 5f 69 6e 68 65 72 69 74 65 64 5f   $tmp_inherited_
23fc0 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 3b 20 64 6f  linker_flags; do
23fd0 0a 09 20 20 20 20 63 61 73 65 20 22 20 24 6e 65  ..    case " $ne
23fe0 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b  w_inherited_link
23ff0 65 72 5f 66 6c 61 67 73 20 22 20 69 6e 0a 09 20  er_flags " in.. 
24000 20 20 20 20 20 2a 22 20 24 74 6d 70 5f 69 6e 68       *" $tmp_inh
24010 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c  erited_linker_fl
24020 61 67 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20 20  ag "*) ;;..     
24030 20 2a 29 20 6e 65 77 5f 69 6e 68 65 72 69 74 65   *) new_inherite
24040 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 22  d_linker_flags="
24050 24 6e 65 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c  $new_inherited_l
24060 69 6e 6b 65 72 5f 66 6c 61 67 73 20 24 74 6d 70  inker_flags $tmp
24070 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65  _inherited_linke
24080 72 5f 66 6c 61 67 22 3b 3b 0a 09 20 20 20 20 65  r_flag";;..    e
24090 73 61 63 0a 09 20 20 64 6f 6e 65 0a 09 66 69 0a  sac..  done..fi.
240a0 09 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73  .dependency_libs
240b0 3d 60 24 45 43 48 4f 20 22 58 20 24 64 65 70 65  =`$ECHO "X $depe
240c0 6e 64 65 6e 63 79 5f 6c 69 62 73 22 20 7c 20 24  ndency_libs" | $
240d0 58 73 65 64 20 2d 65 20 27 73 25 20 5c 28 5b 5e  Xsed -e 's% \([^
240e0 20 24 5d 2a 5c 29 2e 6c 74 66 72 61 6d 65 77 6f   $]*\).ltframewo
240f0 72 6b 25 20 2d 66 72 61 6d 65 77 6f 72 6b 20 5c  rk% -framework \
24100 31 25 67 27 60 0a 09 69 66 20 74 65 73 74 20 22  1%g'`..if test "
24110 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22  $linkmode,$pass"
24120 20 3d 20 22 6c 69 62 2c 6c 69 6e 6b 22 20 7c 7c   = "lib,link" ||
24130 0a 09 20 20 20 74 65 73 74 20 22 24 6c 69 6e 6b  ..   test "$link
24140 6d 6f 64 65 2c 24 70 61 73 73 22 20 3d 20 22 70  mode,$pass" = "p
24150 72 6f 67 2c 73 63 61 6e 22 20 7c 7c 0a 09 20 20  rog,scan" ||..  
24160 20 7b 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f   { test "$linkmo
24170 64 65 22 20 21 3d 20 70 72 6f 67 20 26 26 20 74  de" != prog && t
24180 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20  est "$linkmode" 
24190 21 3d 20 6c 69 62 3b 20 7d 3b 20 74 68 65 6e 0a  != lib; }; then.
241a0 09 20 20 74 65 73 74 20 2d 6e 20 22 24 64 6c 6f  .  test -n "$dlo
241b0 70 65 6e 22 20 26 26 20 64 6c 66 69 6c 65 73 3d  pen" && dlfiles=
241c0 22 24 64 6c 66 69 6c 65 73 20 24 64 6c 6f 70 65  "$dlfiles $dlope
241d0 6e 22 0a 09 20 20 74 65 73 74 20 2d 6e 20 22 24  n"..  test -n "$
241e0 64 6c 70 72 65 6f 70 65 6e 22 20 26 26 20 64 6c  dlpreopen" && dl
241f0 70 72 65 66 69 6c 65 73 3d 22 24 64 6c 70 72 65  prefiles="$dlpre
24200 66 69 6c 65 73 20 24 64 6c 70 72 65 6f 70 65 6e  files $dlpreopen
24210 22 0a 09 66 69 0a 0a 09 69 66 20 74 65 73 74 20  "..fi...if test 
24220 22 24 70 61 73 73 22 20 3d 20 63 6f 6e 76 3b 20  "$pass" = conv; 
24230 74 68 65 6e 0a 09 20 20 23 20 4f 6e 6c 79 20 63  then..  # Only c
24240 68 65 63 6b 20 66 6f 72 20 63 6f 6e 76 65 6e 69  heck for conveni
24250 65 6e 63 65 20 6c 69 62 72 61 72 69 65 73 0a 09  ence libraries..
24260 20 20 64 65 70 6c 69 62 73 3d 22 24 6c 69 62 20    deplibs="$lib 
24270 24 64 65 70 6c 69 62 73 22 0a 09 20 20 69 66 20  $deplibs"..  if 
24280 74 65 73 74 20 2d 7a 20 22 24 6c 69 62 64 69 72  test -z "$libdir
24290 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 69 66 20  "; then..    if 
242a0 74 65 73 74 20 2d 7a 20 22 24 6f 6c 64 5f 6c 69  test -z "$old_li
242b0 62 72 61 72 79 22 3b 20 74 68 65 6e 0a 09 20 20  brary"; then..  
242c0 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65      func_fatal_e
242d0 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e  rror "cannot fin
242e0 64 20 6e 61 6d 65 20 6f 66 20 6c 69 6e 6b 20 6c  d name of link l
242f0 69 62 72 61 72 79 20 66 6f 72 20 5c 60 24 6c 69  ibrary for \`$li
24300 62 27 22 0a 09 20 20 20 20 66 69 0a 09 20 20 20  b'"..    fi..   
24310 20 23 20 49 74 20 69 73 20 61 20 6c 69 62 74 6f   # It is a libto
24320 6f 6c 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6c  ol convenience l
24330 69 62 72 61 72 79 2c 20 73 6f 20 61 64 64 20 69  ibrary, so add i
24340 6e 20 69 74 73 20 6f 62 6a 65 63 74 73 2e 0a 09  n its objects...
24350 20 20 20 20 63 6f 6e 76 65 6e 69 65 6e 63 65 3d      convenience=
24360 22 24 63 6f 6e 76 65 6e 69 65 6e 63 65 20 24 6c  "$convenience $l
24370 61 64 69 72 2f 24 6f 62 6a 64 69 72 2f 24 6f 6c  adir/$objdir/$ol
24380 64 5f 6c 69 62 72 61 72 79 22 0a 09 20 20 20 20  d_library"..    
24390 6f 6c 64 5f 63 6f 6e 76 65 6e 69 65 6e 63 65 3d  old_convenience=
243a0 22 24 6f 6c 64 5f 63 6f 6e 76 65 6e 69 65 6e 63  "$old_convenienc
243b0 65 20 24 6c 61 64 69 72 2f 24 6f 62 6a 64 69 72  e $ladir/$objdir
243c0 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 0a 09  /$old_library"..
243d0 20 20 65 6c 69 66 20 74 65 73 74 20 22 24 6c 69    elif test "$li
243e0 6e 6b 6d 6f 64 65 22 20 21 3d 20 70 72 6f 67 20  nkmode" != prog 
243f0 26 26 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f  && test "$linkmo
24400 64 65 22 20 21 3d 20 6c 69 62 3b 20 74 68 65 6e  de" != lib; then
24410 0a 09 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c  ..    func_fatal
24420 5f 65 72 72 6f 72 20 22 5c 60 24 6c 69 62 27 20  _error "\`$lib' 
24430 69 73 20 6e 6f 74 20 61 20 63 6f 6e 76 65 6e 69  is not a conveni
24440 65 6e 63 65 20 6c 69 62 72 61 72 79 22 0a 09 20  ence library".. 
24450 20 66 69 0a 09 20 20 74 6d 70 5f 6c 69 62 73 3d   fi..  tmp_libs=
24460 0a 09 20 20 66 6f 72 20 64 65 70 6c 69 62 20 69  ..  for deplib i
24470 6e 20 24 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69  n $dependency_li
24480 62 73 3b 20 64 6f 0a 09 20 20 20 20 64 65 70 6c  bs; do..    depl
24490 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 64 65  ibs="$deplib $de
244a0 70 6c 69 62 73 22 0a 09 20 20 20 20 69 66 20 24  plibs"..    if $
244b0 6f 70 74 5f 64 75 70 6c 69 63 61 74 65 5f 64 65  opt_duplicate_de
244c0 70 73 20 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  ps ; then..     
244d0 20 63 61 73 65 20 22 24 74 6d 70 5f 6c 69 62 73   case "$tmp_libs
244e0 20 22 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20   " in..      *" 
244f0 24 64 65 70 6c 69 62 20 22 2a 29 20 73 70 65 63  $deplib "*) spec
24500 69 61 6c 64 65 70 6c 69 62 73 3d 22 24 73 70 65  ialdeplibs="$spe
24510 63 69 61 6c 64 65 70 6c 69 62 73 20 24 64 65 70  cialdeplibs $dep
24520 6c 69 62 22 20 3b 3b 0a 09 20 20 20 20 20 20 65  lib" ;;..      e
24530 73 61 63 0a 09 20 20 20 20 66 69 0a 09 20 20 20  sac..    fi..   
24540 20 74 6d 70 5f 6c 69 62 73 3d 22 24 74 6d 70 5f   tmp_libs="$tmp_
24550 6c 69 62 73 20 24 64 65 70 6c 69 62 22 0a 09 20  libs $deplib".. 
24560 20 64 6f 6e 65 0a 09 20 20 63 6f 6e 74 69 6e 75   done..  continu
24570 65 0a 09 66 69 20 23 20 24 70 61 73 73 20 3d 20  e..fi # $pass = 
24580 63 6f 6e 76 0a 0a 0a 09 23 20 47 65 74 20 74 68  conv....# Get th
24590 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6c 69  e name of the li
245a0 62 72 61 72 79 20 77 65 20 6c 69 6e 6b 20 61 67  brary we link ag
245b0 61 69 6e 73 74 2e 0a 09 6c 69 6e 6b 6c 69 62 3d  ainst...linklib=
245c0 0a 09 66 6f 72 20 6c 20 69 6e 20 24 6f 6c 64 5f  ..for l in $old_
245d0 6c 69 62 72 61 72 79 20 24 6c 69 62 72 61 72 79  library $library
245e0 5f 6e 61 6d 65 73 3b 20 64 6f 0a 09 20 20 6c 69  _names; do..  li
245f0 6e 6b 6c 69 62 3d 22 24 6c 22 0a 09 64 6f 6e 65  nklib="$l"..done
24600 0a 09 69 66 20 74 65 73 74 20 2d 7a 20 22 24 6c  ..if test -z "$l
24610 69 6e 6b 6c 69 62 22 3b 20 74 68 65 6e 0a 09 20  inklib"; then.. 
24620 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f   func_fatal_erro
24630 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e 64 20 6e  r "cannot find n
24640 61 6d 65 20 6f 66 20 6c 69 6e 6b 20 6c 69 62 72  ame of link libr
24650 61 72 79 20 66 6f 72 20 5c 60 24 6c 69 62 27 22  ary for \`$lib'"
24660 0a 09 66 69 0a 0a 09 23 20 54 68 69 73 20 6c 69  ..fi...# This li
24670 62 72 61 72 79 20 77 61 73 20 73 70 65 63 69 66  brary was specif
24680 69 65 64 20 77 69 74 68 20 2d 64 6c 6f 70 65 6e  ied with -dlopen
24690 2e 0a 09 69 66 20 74 65 73 74 20 22 24 70 61 73  ...if test "$pas
246a0 73 22 20 3d 20 64 6c 6f 70 65 6e 3b 20 74 68 65  s" = dlopen; the
246b0 6e 0a 09 20 20 69 66 20 74 65 73 74 20 2d 7a 20  n..  if test -z 
246c0 22 24 6c 69 62 64 69 72 22 3b 20 74 68 65 6e 0a  "$libdir"; then.
246d0 09 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  .    func_fatal_
246e0 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 2d 64  error "cannot -d
246f0 6c 6f 70 65 6e 20 61 20 63 6f 6e 76 65 6e 69 65  lopen a convenie
24700 6e 63 65 20 6c 69 62 72 61 72 79 3a 20 5c 60 24  nce library: \`$
24710 6c 69 62 27 22 0a 09 20 20 66 69 0a 09 20 20 69  lib'"..  fi..  i
24720 66 20 74 65 73 74 20 2d 7a 20 22 24 64 6c 6e 61  f test -z "$dlna
24730 6d 65 22 20 7c 7c 0a 09 20 20 20 20 20 74 65 73  me" ||..     tes
24740 74 20 22 24 64 6c 6f 70 65 6e 5f 73 75 70 70 6f  t "$dlopen_suppo
24750 72 74 22 20 21 3d 20 79 65 73 20 7c 7c 0a 09 20  rt" != yes ||.. 
24760 20 20 20 20 74 65 73 74 20 22 24 62 75 69 6c 64      test "$build
24770 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 3d  _libtool_libs" =
24780 20 6e 6f 3b 20 74 68 65 6e 0a 09 20 20 20 20 23   no; then..    #
24790 20 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20   If there is no 
247a0 64 6c 6e 61 6d 65 2c 20 6e 6f 20 64 6c 6f 70 65  dlname, no dlope
247b0 6e 20 73 75 70 70 6f 72 74 20 6f 72 20 77 65 27  n support or we'
247c0 72 65 20 6c 69 6e 6b 69 6e 67 0a 09 20 20 20 20  re linking..    
247d0 23 20 73 74 61 74 69 63 61 6c 6c 79 2c 20 77 65  # statically, we
247e0 20 6e 65 65 64 20 74 6f 20 70 72 65 6c 6f 61 64   need to preload
247f0 2e 20 20 57 65 20 61 6c 73 6f 20 6e 65 65 64 20  .  We also need 
24800 74 6f 20 70 72 65 6c 6f 61 64 20 61 6e 79 0a 09  to preload any..
24810 20 20 20 20 23 20 64 65 70 65 6e 64 65 6e 74 20      # dependent 
24820 6c 69 62 72 61 72 69 65 73 20 73 6f 20 6c 69 62  libraries so lib
24830 6c 74 64 6c 27 73 20 64 65 70 6c 69 62 20 70 72  ltdl's deplib pr
24840 65 6c 6f 61 64 65 72 20 64 6f 65 73 6e 27 74 0a  eloader doesn't.
24850 09 20 20 20 20 23 20 62 6f 6d 62 20 6f 75 74 20  .    # bomb out 
24860 69 6e 20 74 68 65 20 6c 6f 61 64 20 64 65 70 6c  in the load depl
24870 69 62 73 20 70 68 61 73 65 2e 0a 09 20 20 20 20  ibs phase...    
24880 64 6c 70 72 65 66 69 6c 65 73 3d 22 24 64 6c 70  dlprefiles="$dlp
24890 72 65 66 69 6c 65 73 20 24 6c 69 62 20 24 64 65  refiles $lib $de
248a0 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09  pendency_libs"..
248b0 20 20 65 6c 73 65 0a 09 20 20 20 20 6e 65 77 64    else..    newd
248c0 6c 66 69 6c 65 73 3d 22 24 6e 65 77 64 6c 66 69  lfiles="$newdlfi
248d0 6c 65 73 20 24 6c 69 62 22 0a 09 20 20 66 69 0a  les $lib"..  fi.
248e0 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 66 69 20  .  continue..fi 
248f0 23 20 24 70 61 73 73 20 3d 20 64 6c 6f 70 65 6e  # $pass = dlopen
24900 0a 0a 09 23 20 57 65 20 6e 65 65 64 20 61 6e 20  ...# We need an 
24910 61 62 73 6f 6c 75 74 65 20 70 61 74 68 2e 0a 09  absolute path...
24920 63 61 73 65 20 24 6c 61 64 69 72 20 69 6e 0a 09  case $ladir in..
24930 5b 5c 5c 2f 5d 2a 20 7c 20 5b 41 2d 5a 61 2d 7a  [\\/]* | [A-Za-z
24940 5d 3a 5b 5c 5c 2f 5d 2a 29 20 61 62 73 5f 6c 61  ]:[\\/]*) abs_la
24950 64 69 72 3d 22 24 6c 61 64 69 72 22 20 3b 3b 0a  dir="$ladir" ;;.
24960 09 2a 29 0a 09 20 20 61 62 73 5f 6c 61 64 69 72  .*)..  abs_ladir
24970 3d 60 63 64 20 22 24 6c 61 64 69 72 22 20 26 26  =`cd "$ladir" &&
24980 20 70 77 64 60 0a 09 20 20 69 66 20 74 65 73 74   pwd`..  if test
24990 20 2d 7a 20 22 24 61 62 73 5f 6c 61 64 69 72 22   -z "$abs_ladir"
249a0 3b 20 74 68 65 6e 0a 09 20 20 20 20 66 75 6e 63  ; then..    func
249b0 5f 77 61 72 6e 69 6e 67 20 22 63 61 6e 6e 6f 74  _warning "cannot
249c0 20 64 65 74 65 72 6d 69 6e 65 20 61 62 73 6f 6c   determine absol
249d0 75 74 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61  ute directory na
249e0 6d 65 20 6f 66 20 5c 60 24 6c 61 64 69 72 27 22  me of \`$ladir'"
249f0 0a 09 20 20 20 20 66 75 6e 63 5f 77 61 72 6e 69  ..    func_warni
24a00 6e 67 20 22 70 61 73 73 69 6e 67 20 69 74 20 6c  ng "passing it l
24a10 69 74 65 72 61 6c 6c 79 20 74 6f 20 74 68 65 20  iterally to the 
24a20 6c 69 6e 6b 65 72 2c 20 61 6c 74 68 6f 75 67 68  linker, although
24a30 20 69 74 20 6d 69 67 68 74 20 66 61 69 6c 22 0a   it might fail".
24a40 09 20 20 20 20 61 62 73 5f 6c 61 64 69 72 3d 22  .    abs_ladir="
24a50 24 6c 61 64 69 72 22 0a 09 20 20 66 69 0a 09 20  $ladir"..  fi.. 
24a60 20 3b 3b 0a 09 65 73 61 63 0a 09 66 75 6e 63 5f   ;;..esac..func_
24a70 62 61 73 65 6e 61 6d 65 20 22 24 6c 69 62 22 0a  basename "$lib".
24a80 09 6c 61 6e 61 6d 65 3d 22 24 66 75 6e 63 5f 62  .laname="$func_b
24a90 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a  asename_result".
24aa0 0a 09 23 20 46 69 6e 64 20 74 68 65 20 72 65 6c  ..# Find the rel
24ab0 65 76 61 6e 74 20 6f 62 6a 65 63 74 20 64 69 72  evant object dir
24ac0 65 63 74 6f 72 79 20 61 6e 64 20 6c 69 62 72 61  ectory and libra
24ad0 72 79 20 6e 61 6d 65 2e 0a 09 69 66 20 74 65 73  ry name...if tes
24ae0 74 20 22 58 24 69 6e 73 74 61 6c 6c 65 64 22 20  t "X$installed" 
24af0 3d 20 58 79 65 73 3b 20 74 68 65 6e 0a 09 20 20  = Xyes; then..  
24b00 69 66 20 74 65 73 74 20 21 20 2d 66 20 22 24 6c  if test ! -f "$l
24b10 69 62 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 20  ibdir/$linklib" 
24b20 26 26 20 74 65 73 74 20 2d 66 20 22 24 61 62 73  && test -f "$abs
24b30 5f 6c 61 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22  _ladir/$linklib"
24b40 3b 20 74 68 65 6e 0a 09 20 20 20 20 66 75 6e 63  ; then..    func
24b50 5f 77 61 72 6e 69 6e 67 20 22 6c 69 62 72 61 72  _warning "librar
24b60 79 20 5c 60 24 6c 69 62 27 20 77 61 73 20 6d 6f  y \`$lib' was mo
24b70 76 65 64 2e 22 0a 09 20 20 20 20 64 69 72 3d 22  ved."..    dir="
24b80 24 6c 61 64 69 72 22 0a 09 20 20 20 20 61 62 73  $ladir"..    abs
24b90 64 69 72 3d 22 24 61 62 73 5f 6c 61 64 69 72 22  dir="$abs_ladir"
24ba0 0a 09 20 20 20 20 6c 69 62 64 69 72 3d 22 24 61  ..    libdir="$a
24bb0 62 73 5f 6c 61 64 69 72 22 0a 09 20 20 65 6c 73  bs_ladir"..  els
24bc0 65 0a 09 20 20 20 20 64 69 72 3d 22 24 6c 69 62  e..    dir="$lib
24bd0 64 69 72 22 0a 09 20 20 20 20 61 62 73 64 69 72  dir"..    absdir
24be0 3d 22 24 6c 69 62 64 69 72 22 0a 09 20 20 66 69  ="$libdir"..  fi
24bf0 0a 09 20 20 74 65 73 74 20 22 58 24 68 61 72 64  ..  test "X$hard
24c00 63 6f 64 65 5f 61 75 74 6f 6d 61 74 69 63 22 20  code_automatic" 
24c10 3d 20 58 79 65 73 20 26 26 20 61 76 6f 69 64 74  = Xyes && avoidt
24c20 65 6d 70 72 70 61 74 68 3d 79 65 73 0a 09 65 6c  emprpath=yes..el
24c30 73 65 0a 09 20 20 69 66 20 74 65 73 74 20 21 20  se..  if test ! 
24c40 2d 66 20 22 24 6c 61 64 69 72 2f 24 6f 62 6a 64  -f "$ladir/$objd
24c50 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 20 26 26 20  ir/$linklib" && 
24c60 74 65 73 74 20 2d 66 20 22 24 61 62 73 5f 6c 61  test -f "$abs_la
24c70 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 3b 20 74  dir/$linklib"; t
24c80 68 65 6e 0a 09 20 20 20 20 64 69 72 3d 22 24 6c  hen..    dir="$l
24c90 61 64 69 72 22 0a 09 20 20 20 20 61 62 73 64 69  adir"..    absdi
24ca0 72 3d 22 24 61 62 73 5f 6c 61 64 69 72 22 0a 09  r="$abs_ladir"..
24cb0 20 20 20 20 23 20 52 65 6d 6f 76 65 20 74 68 69      # Remove thi
24cc0 73 20 73 65 61 72 63 68 20 70 61 74 68 20 6c 61  s search path la
24cd0 74 65 72 0a 09 20 20 20 20 6e 6f 74 69 6e 73 74  ter..    notinst
24ce0 5f 70 61 74 68 3d 22 24 6e 6f 74 69 6e 73 74 5f  _path="$notinst_
24cf0 70 61 74 68 20 24 61 62 73 5f 6c 61 64 69 72 22  path $abs_ladir"
24d00 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20 64 69  ..  else..    di
24d10 72 3d 22 24 6c 61 64 69 72 2f 24 6f 62 6a 64 69  r="$ladir/$objdi
24d20 72 22 0a 09 20 20 20 20 61 62 73 64 69 72 3d 22  r"..    absdir="
24d30 24 61 62 73 5f 6c 61 64 69 72 2f 24 6f 62 6a 64  $abs_ladir/$objd
24d40 69 72 22 0a 09 20 20 20 20 23 20 52 65 6d 6f 76  ir"..    # Remov
24d50 65 20 74 68 69 73 20 73 65 61 72 63 68 20 70 61  e this search pa
24d60 74 68 20 6c 61 74 65 72 0a 09 20 20 20 20 6e 6f  th later..    no
24d70 74 69 6e 73 74 5f 70 61 74 68 3d 22 24 6e 6f 74  tinst_path="$not
24d80 69 6e 73 74 5f 70 61 74 68 20 24 61 62 73 5f 6c  inst_path $abs_l
24d90 61 64 69 72 22 0a 09 20 20 66 69 0a 09 66 69 20  adir"..  fi..fi 
24da0 23 20 24 69 6e 73 74 61 6c 6c 65 64 20 3d 20 79  # $installed = y
24db0 65 73 0a 09 66 75 6e 63 5f 73 74 72 69 70 6e 61  es..func_stripna
24dc0 6d 65 20 27 6c 69 62 27 20 27 2e 6c 61 27 20 22  me 'lib' '.la' "
24dd0 24 6c 61 6e 61 6d 65 22 0a 09 6e 61 6d 65 3d 24  $laname"..name=$
24de0 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72  func_stripname_r
24df0 65 73 75 6c 74 0a 0a 09 23 20 54 68 69 73 20 6c  esult...# This l
24e00 69 62 72 61 72 79 20 77 61 73 20 73 70 65 63 69  ibrary was speci
24e10 66 69 65 64 20 77 69 74 68 20 2d 64 6c 70 72 65  fied with -dlpre
24e20 6f 70 65 6e 2e 0a 09 69 66 20 74 65 73 74 20 22  open...if test "
24e30 24 70 61 73 73 22 20 3d 20 64 6c 70 72 65 6f 70  $pass" = dlpreop
24e40 65 6e 3b 20 74 68 65 6e 0a 09 20 20 69 66 20 74  en; then..  if t
24e50 65 73 74 20 2d 7a 20 22 24 6c 69 62 64 69 72 22  est -z "$libdir"
24e60 20 26 26 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d   && test "$linkm
24e70 6f 64 65 22 20 3d 20 70 72 6f 67 3b 20 74 68 65  ode" = prog; the
24e80 6e 0a 09 20 20 20 20 66 75 6e 63 5f 66 61 74 61  n..    func_fata
24e90 6c 5f 65 72 72 6f 72 20 22 6f 6e 6c 79 20 6c 69  l_error "only li
24ea0 62 72 61 72 69 65 73 20 6d 61 79 20 2d 64 6c 70  braries may -dlp
24eb0 72 65 6f 70 65 6e 20 61 20 63 6f 6e 76 65 6e 69  reopen a conveni
24ec0 65 6e 63 65 20 6c 69 62 72 61 72 79 3a 20 5c 60  ence library: \`
24ed0 24 6c 69 62 27 22 0a 09 20 20 66 69 0a 09 20 20  $lib'"..  fi..  
24ee0 23 20 50 72 65 66 65 72 20 75 73 69 6e 67 20 61  # Prefer using a
24ef0 20 73 74 61 74 69 63 20 6c 69 62 72 61 72 79 20   static library 
24f00 28 73 6f 20 74 68 61 74 20 6e 6f 20 73 69 6c 6c  (so that no sill
24f10 79 20 5f 44 59 4e 41 4d 49 43 20 73 79 6d 62 6f  y _DYNAMIC symbo
24f20 6c 73 0a 09 20 20 23 20 61 72 65 20 72 65 71 75  ls..  # are requ
24f30 69 72 65 64 20 74 6f 20 6c 69 6e 6b 29 2e 0a 09  ired to link)...
24f40 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 6f    if test -n "$o
24f50 6c 64 5f 6c 69 62 72 61 72 79 22 3b 20 74 68 65  ld_library"; the
24f60 6e 0a 09 20 20 20 20 6e 65 77 64 6c 70 72 65 66  n..    newdlpref
24f70 69 6c 65 73 3d 22 24 6e 65 77 64 6c 70 72 65 66  iles="$newdlpref
24f80 69 6c 65 73 20 24 64 69 72 2f 24 6f 6c 64 5f 6c  iles $dir/$old_l
24f90 69 62 72 61 72 79 22 0a 09 20 20 20 20 23 20 4b  ibrary"..    # K
24fa0 65 65 70 20 61 20 6c 69 73 74 20 6f 66 20 70 72  eep a list of pr
24fb0 65 6f 70 65 6e 65 64 20 63 6f 6e 76 65 6e 69 65  eopened convenie
24fc0 6e 63 65 20 6c 69 62 72 61 72 69 65 73 20 74 6f  nce libraries to
24fd0 20 63 68 65 63 6b 0a 09 20 20 20 20 23 20 74 68   check..    # th
24fe0 61 74 20 74 68 65 79 20 61 72 65 20 62 65 69 6e  at they are bein
24ff0 67 20 75 73 65 64 20 63 6f 72 72 65 63 74 6c 79  g used correctly
25000 20 69 6e 20 74 68 65 20 6c 69 6e 6b 20 70 61 73   in the link pas
25010 73 2e 0a 09 20 20 20 20 74 65 73 74 20 2d 7a 20  s...    test -z 
25020 22 24 6c 69 62 64 69 72 22 20 26 26 20 5c 0a 09  "$libdir" && \..
25030 09 64 6c 70 72 65 63 6f 6e 76 65 6e 69 65 6e 63  .dlpreconvenienc
25040 65 6c 69 62 73 3d 22 24 64 6c 70 72 65 63 6f 6e  elibs="$dlprecon
25050 76 65 6e 69 65 6e 63 65 6c 69 62 73 20 24 64 69  veniencelibs $di
25060 72 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 0a  r/$old_library".
25070 09 20 20 23 20 4f 74 68 65 72 77 69 73 65 2c 20  .  # Otherwise, 
25080 75 73 65 20 74 68 65 20 64 6c 6e 61 6d 65 2c 20  use the dlname, 
25090 73 6f 20 74 68 61 74 20 6c 74 5f 64 6c 6f 70 65  so that lt_dlope
250a0 6e 20 66 69 6e 64 73 20 69 74 2e 0a 09 20 20 65  n finds it...  e
250b0 6c 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64 6c  lif test -n "$dl
250c0 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20 20 20  name"; then..   
250d0 20 6e 65 77 64 6c 70 72 65 66 69 6c 65 73 3d 22   newdlprefiles="
250e0 24 6e 65 77 64 6c 70 72 65 66 69 6c 65 73 20 24  $newdlprefiles $
250f0 64 69 72 2f 24 64 6c 6e 61 6d 65 22 0a 09 20 20  dir/$dlname"..  
25100 65 6c 73 65 0a 09 20 20 20 20 6e 65 77 64 6c 70  else..    newdlp
25110 72 65 66 69 6c 65 73 3d 22 24 6e 65 77 64 6c 70  refiles="$newdlp
25120 72 65 66 69 6c 65 73 20 24 64 69 72 2f 24 6c 69  refiles $dir/$li
25130 6e 6b 6c 69 62 22 0a 09 20 20 66 69 0a 09 66 69  nklib"..  fi..fi
25140 20 23 20 24 70 61 73 73 20 3d 20 64 6c 70 72 65   # $pass = dlpre
25150 6f 70 65 6e 0a 0a 09 69 66 20 74 65 73 74 20 2d  open...if test -
25160 7a 20 22 24 6c 69 62 64 69 72 22 3b 20 74 68 65  z "$libdir"; the
25170 6e 0a 09 20 20 23 20 4c 69 6e 6b 20 74 68 65 20  n..  # Link the 
25180 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6c 69 62 72  convenience libr
25190 61 72 79 0a 09 20 20 69 66 20 74 65 73 74 20 22  ary..  if test "
251a0 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 6c 69 62  $linkmode" = lib
251b0 3b 20 74 68 65 6e 0a 09 20 20 20 20 64 65 70 6c  ; then..    depl
251c0 69 62 73 3d 22 24 64 69 72 2f 24 6f 6c 64 5f 6c  ibs="$dir/$old_l
251d0 69 62 72 61 72 79 20 24 64 65 70 6c 69 62 73 22  ibrary $deplibs"
251e0 0a 09 20 20 65 6c 69 66 20 74 65 73 74 20 22 24  ..  elif test "$
251f0 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22 20  linkmode,$pass" 
25200 3d 20 22 70 72 6f 67 2c 6c 69 6e 6b 22 3b 20 74  = "prog,link"; t
25210 68 65 6e 0a 09 20 20 20 20 63 6f 6d 70 69 6c 65  hen..    compile
25220 5f 64 65 70 6c 69 62 73 3d 22 24 64 69 72 2f 24  _deplibs="$dir/$
25230 6f 6c 64 5f 6c 69 62 72 61 72 79 20 24 63 6f 6d  old_library $com
25240 70 69 6c 65 5f 64 65 70 6c 69 62 73 22 0a 09 20  pile_deplibs".. 
25250 20 20 20 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c     finalize_depl
25260 69 62 73 3d 22 24 64 69 72 2f 24 6f 6c 64 5f 6c  ibs="$dir/$old_l
25270 69 62 72 61 72 79 20 24 66 69 6e 61 6c 69 7a 65  ibrary $finalize
25280 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 65 6c 73  _deplibs"..  els
25290 65 0a 09 20 20 20 20 64 65 70 6c 69 62 73 3d 22  e..    deplibs="
252a0 24 6c 69 62 20 24 64 65 70 6c 69 62 73 22 20 23  $lib $deplibs" #
252b0 20 75 73 65 64 20 66 6f 72 20 70 72 6f 67 2c 73   used for prog,s
252c0 63 61 6e 20 70 61 73 73 0a 09 20 20 66 69 0a 09  can pass..  fi..
252d0 20 20 63 6f 6e 74 69 6e 75 65 0a 09 66 69 0a 0a    continue..fi..
252e0 0a 09 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b  ..if test "$link
252f0 6d 6f 64 65 22 20 3d 20 70 72 6f 67 20 26 26 20  mode" = prog && 
25300 74 65 73 74 20 22 24 70 61 73 73 22 20 21 3d 20  test "$pass" != 
25310 6c 69 6e 6b 3b 20 74 68 65 6e 0a 09 20 20 6e 65  link; then..  ne
25320 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68  wlib_search_path
25330 3d 22 24 6e 65 77 6c 69 62 5f 73 65 61 72 63 68  ="$newlib_search
25340 5f 70 61 74 68 20 24 6c 61 64 69 72 22 0a 09 20  _path $ladir".. 
25350 20 64 65 70 6c 69 62 73 3d 22 24 6c 69 62 20 24   deplibs="$lib $
25360 64 65 70 6c 69 62 73 22 0a 0a 09 20 20 6c 69 6e  deplibs"...  lin
25370 6b 61 6c 6c 64 65 70 6c 69 62 73 3d 6e 6f 0a 09  kalldeplibs=no..
25380 20 20 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b    if test "$link
25390 5f 61 6c 6c 5f 64 65 70 6c 69 62 73 22 20 21 3d  _all_deplibs" !=
253a0 20 6e 6f 20 7c 7c 20 74 65 73 74 20 2d 7a 20 22   no || test -z "
253b0 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 22 20  $library_names" 
253c0 7c 7c 0a 09 20 20 20 20 20 74 65 73 74 20 22 24  ||..     test "$
253d0 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69  build_libtool_li
253e0 62 73 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09  bs" = no; then..
253f0 20 20 20 20 6c 69 6e 6b 61 6c 6c 64 65 70 6c 69      linkalldepli
25400 62 73 3d 79 65 73 0a 09 20 20 66 69 0a 0a 09 20  bs=yes..  fi... 
25410 20 74 6d 70 5f 6c 69 62 73 3d 0a 09 20 20 66 6f   tmp_libs=..  fo
25420 72 20 64 65 70 6c 69 62 20 69 6e 20 24 64 65 70  r deplib in $dep
25430 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3b 20 64 6f  endency_libs; do
25440 0a 09 20 20 20 20 63 61 73 65 20 24 64 65 70 6c  ..    case $depl
25450 69 62 20 69 6e 0a 09 20 20 20 20 2d 4c 2a 29 20  ib in..    -L*) 
25460 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
25470 2d 4c 27 20 27 27 20 22 24 64 65 70 6c 69 62 22  -L' '' "$deplib"
25480 0a 09 20 20 20 20 20 20 20 20 20 6e 65 77 6c 69  ..         newli
25490 62 5f 73 65 61 72 63 68 5f 70 61 74 68 3d 22 24  b_search_path="$
254a0 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  newlib_search_pa
254b0 74 68 20 24 66 75 6e 63 5f 73 74 72 69 70 6e 61  th $func_stripna
254c0 6d 65 5f 72 65 73 75 6c 74 22 0a 09 09 20 3b 3b  me_result"... ;;
254d0 0a 09 20 20 20 20 65 73 61 63 0a 09 20 20 20 20  ..    esac..    
254e0 23 20 4e 65 65 64 20 74 6f 20 6c 69 6e 6b 20 61  # Need to link a
254f0 67 61 69 6e 73 74 20 61 6c 6c 20 64 65 70 65 6e  gainst all depen
25500 64 65 6e 63 79 5f 6c 69 62 73 3f 0a 09 20 20 20  dency_libs?..   
25510 20 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 61   if test "$linka
25520 6c 6c 64 65 70 6c 69 62 73 22 20 3d 20 79 65 73  lldeplibs" = yes
25530 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 64 65  ; then..      de
25540 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24  plibs="$deplib $
25550 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 65 6c  deplibs"..    el
25560 73 65 0a 09 20 20 20 20 20 20 23 20 4e 65 65 64  se..      # Need
25570 20 74 6f 20 68 61 72 64 63 6f 64 65 20 73 68 61   to hardcode sha
25580 72 65 64 20 6c 69 62 72 61 72 79 20 70 61 74 68  red library path
25590 73 0a 09 20 20 20 20 20 20 23 20 6f 72 2f 61 6e  s..      # or/an
255a0 64 20 6c 69 6e 6b 20 61 67 61 69 6e 73 74 20 73  d link against s
255b0 74 61 74 69 63 20 6c 69 62 72 61 72 69 65 73 0a  tatic libraries.
255c0 09 20 20 20 20 20 20 6e 65 77 64 65 70 65 6e 64  .      newdepend
255d0 65 6e 63 79 5f 6c 69 62 73 3d 22 24 64 65 70 6c  ency_libs="$depl
255e0 69 62 20 24 6e 65 77 64 65 70 65 6e 64 65 6e 63  ib $newdependenc
255f0 79 5f 6c 69 62 73 22 0a 09 20 20 20 20 66 69 0a  y_libs"..    fi.
25600 09 20 20 20 20 69 66 20 24 6f 70 74 5f 64 75 70  .    if $opt_dup
25610 6c 69 63 61 74 65 5f 64 65 70 73 20 3b 20 74 68  licate_deps ; th
25620 65 6e 0a 09 20 20 20 20 20 20 63 61 73 65 20 22  en..      case "
25630 24 74 6d 70 5f 6c 69 62 73 20 22 20 69 6e 0a 09  $tmp_libs " in..
25640 20 20 20 20 20 20 2a 22 20 24 64 65 70 6c 69 62        *" $deplib
25650 20 22 2a 29 20 73 70 65 63 69 61 6c 64 65 70 6c   "*) specialdepl
25660 69 62 73 3d 22 24 73 70 65 63 69 61 6c 64 65 70  ibs="$specialdep
25670 6c 69 62 73 20 24 64 65 70 6c 69 62 22 20 3b 3b  libs $deplib" ;;
25680 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20  ..      esac..  
25690 20 20 66 69 0a 09 20 20 20 20 74 6d 70 5f 6c 69    fi..    tmp_li
256a0 62 73 3d 22 24 74 6d 70 5f 6c 69 62 73 20 24 64  bs="$tmp_libs $d
256b0 65 70 6c 69 62 22 0a 09 20 20 64 6f 6e 65 20 23  eplib"..  done #
256c0 20 66 6f 72 20 64 65 70 6c 69 62 0a 09 20 20 63   for deplib..  c
256d0 6f 6e 74 69 6e 75 65 0a 09 66 69 20 23 20 24 6c  ontinue..fi # $l
256e0 69 6e 6b 6d 6f 64 65 20 3d 20 70 72 6f 67 2e 2e  inkmode = prog..
256f0 2e 0a 0a 09 69 66 20 74 65 73 74 20 22 24 6c 69  ....if test "$li
25700 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22 20 3d 20  nkmode,$pass" = 
25710 22 70 72 6f 67 2c 6c 69 6e 6b 22 3b 20 74 68 65  "prog,link"; the
25720 6e 0a 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20  n..  if test -n 
25730 22 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 22  "$library_names"
25740 20 26 26 0a 09 20 20 20 20 20 7b 20 7b 20 74 65   &&..     { { te
25750 73 74 20 22 24 70 72 65 66 65 72 5f 73 74 61 74  st "$prefer_stat
25760 69 63 5f 6c 69 62 73 22 20 3d 20 6e 6f 20 7c 7c  ic_libs" = no ||
25770 0a 09 20 20 20 20 20 20 20 20 20 74 65 73 74 20  ..         test 
25780 22 24 70 72 65 66 65 72 5f 73 74 61 74 69 63 5f  "$prefer_static_
25790 6c 69 62 73 2c 24 69 6e 73 74 61 6c 6c 65 64 22  libs,$installed"
257a0 20 3d 20 22 62 75 69 6c 74 2c 79 65 73 22 3b 20   = "built,yes"; 
257b0 7d 20 7c 7c 0a 09 20 20 20 20 20 20 20 74 65 73  } ||..       tes
257c0 74 20 2d 7a 20 22 24 6f 6c 64 5f 6c 69 62 72 61  t -z "$old_libra
257d0 72 79 22 3b 20 7d 3b 20 74 68 65 6e 0a 09 20 20  ry"; }; then..  
257e0 20 20 23 20 57 65 20 6e 65 65 64 20 74 6f 20 68    # We need to h
257f0 61 72 64 63 6f 64 65 20 74 68 65 20 6c 69 62 72  ardcode the libr
25800 61 72 79 20 70 61 74 68 0a 09 20 20 20 20 69 66  ary path..    if
25810 20 74 65 73 74 20 2d 6e 20 22 24 73 68 6c 69 62   test -n "$shlib
25820 70 61 74 68 5f 76 61 72 22 20 26 26 20 74 65 73  path_var" && tes
25830 74 20 2d 7a 20 22 24 61 76 6f 69 64 74 65 6d 70  t -z "$avoidtemp
25840 72 70 61 74 68 22 20 3b 20 74 68 65 6e 0a 09 20  rpath" ; then.. 
25850 20 20 20 20 20 23 20 4d 61 6b 65 20 73 75 72 65       # Make sure
25860 20 74 68 65 20 72 70 61 74 68 20 63 6f 6e 74 61   the rpath conta
25870 69 6e 73 20 6f 6e 6c 79 20 75 6e 69 71 75 65 20  ins only unique 
25880 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 09 20 20  directories...  
25890 20 20 20 20 63 61 73 65 20 22 24 74 65 6d 70 5f      case "$temp_
258a0 72 70 61 74 68 3a 22 20 69 6e 0a 09 20 20 20 20  rpath:" in..    
258b0 20 20 2a 22 24 61 62 73 64 69 72 3a 22 2a 29 20    *"$absdir:"*) 
258c0 3b 3b 0a 09 20 20 20 20 20 20 2a 29 20 74 65 6d  ;;..      *) tem
258d0 70 5f 72 70 61 74 68 3d 22 24 74 65 6d 70 5f 72  p_rpath="$temp_r
258e0 70 61 74 68 24 61 62 73 64 69 72 3a 22 20 3b 3b  path$absdir:" ;;
258f0 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20  ..      esac..  
25900 20 20 66 69 0a 0a 09 20 20 20 20 23 20 48 61 72    fi...    # Har
25910 64 63 6f 64 65 20 74 68 65 20 6c 69 62 72 61 72  dcode the librar
25920 79 20 70 61 74 68 2e 0a 09 20 20 20 20 23 20 53  y path...    # S
25930 6b 69 70 20 64 69 72 65 63 74 6f 72 69 65 73 20  kip directories 
25940 74 68 61 74 20 61 72 65 20 69 6e 20 74 68 65 20  that are in the 
25950 73 79 73 74 65 6d 20 64 65 66 61 75 6c 74 20 72  system default r
25960 75 6e 2d 74 69 6d 65 0a 09 20 20 20 20 23 20 73  un-time..    # s
25970 65 61 72 63 68 20 70 61 74 68 2e 0a 09 20 20 20  earch path...   
25980 20 63 61 73 65 20 22 20 24 73 79 73 5f 6c 69 62   case " $sys_lib
25990 5f 64 6c 73 65 61 72 63 68 5f 70 61 74 68 20 22  _dlsearch_path "
259a0 20 69 6e 0a 09 20 20 20 20 2a 22 20 24 61 62 73   in..    *" $abs
259b0 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20  dir "*) ;;..    
259c0 2a 29 0a 09 20 20 20 20 20 20 63 61 73 65 20 22  *)..      case "
259d0 24 63 6f 6d 70 69 6c 65 5f 72 70 61 74 68 20 22  $compile_rpath "
259e0 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24 61   in..      *" $a
259f0 62 73 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20  bsdir "*) ;;..  
25a00 20 20 20 20 2a 29 20 63 6f 6d 70 69 6c 65 5f 72      *) compile_r
25a10 70 61 74 68 3d 22 24 63 6f 6d 70 69 6c 65 5f 72  path="$compile_r
25a20 70 61 74 68 20 24 61 62 73 64 69 72 22 0a 09 20  path $absdir".. 
25a30 20 20 20 20 20 65 73 61 63 0a 09 20 20 20 20 20       esac..     
25a40 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09 20   ;;..    esac.. 
25a50 20 20 20 63 61 73 65 20 22 20 24 73 79 73 5f 6c     case " $sys_l
25a60 69 62 5f 64 6c 73 65 61 72 63 68 5f 70 61 74 68  ib_dlsearch_path
25a70 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20 24 6c   " in..    *" $l
25a80 69 62 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20  ibdir "*) ;;..  
25a90 20 20 2a 29 0a 09 20 20 20 20 20 20 63 61 73 65    *)..      case
25aa0 20 22 24 66 69 6e 61 6c 69 7a 65 5f 72 70 61 74   "$finalize_rpat
25ab0 68 20 22 20 69 6e 0a 09 20 20 20 20 20 20 2a 22  h " in..      *"
25ac0 20 24 6c 69 62 64 69 72 20 22 2a 29 20 3b 3b 0a   $libdir "*) ;;.
25ad0 09 20 20 20 20 20 20 2a 29 20 66 69 6e 61 6c 69  .      *) finali
25ae0 7a 65 5f 72 70 61 74 68 3d 22 24 66 69 6e 61 6c  ze_rpath="$final
25af0 69 7a 65 5f 72 70 61 74 68 20 24 6c 69 62 64 69  ize_rpath $libdi
25b00 72 22 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09  r"..      esac..
25b10 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 65 73        ;;..    es
25b20 61 63 0a 09 20 20 66 69 20 23 20 24 6c 69 6e 6b  ac..  fi # $link
25b30 6d 6f 64 65 2c 24 70 61 73 73 20 3d 20 70 72 6f  mode,$pass = pro
25b40 67 2c 6c 69 6e 6b 2e 2e 2e 0a 0a 09 20 20 69 66  g,link......  if
25b50 20 74 65 73 74 20 22 24 61 6c 6c 64 65 70 6c 69   test "$alldepli
25b60 62 73 22 20 3d 20 79 65 73 20 26 26 0a 09 20 20  bs" = yes &&..  
25b70 20 20 20 7b 20 74 65 73 74 20 22 24 64 65 70 6c     { test "$depl
25b80 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68 6f 64  ibs_check_method
25b90 22 20 3d 20 70 61 73 73 5f 61 6c 6c 20 7c 7c 0a  " = pass_all ||.
25ba0 09 20 20 20 20 20 20 20 7b 20 74 65 73 74 20 22  .       { test "
25bb0 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c  $build_libtool_l
25bc0 69 62 73 22 20 3d 20 79 65 73 20 26 26 0a 09 09  ibs" = yes &&...
25bd0 20 74 65 73 74 20 2d 6e 20 22 24 6c 69 62 72 61   test -n "$libra
25be0 72 79 5f 6e 61 6d 65 73 22 3b 20 7d 3b 20 7d 3b  ry_names"; }; };
25bf0 20 74 68 65 6e 0a 09 20 20 20 20 23 20 57 65 20   then..    # We 
25c00 6f 6e 6c 79 20 6e 65 65 64 20 74 6f 20 73 65 61  only need to sea
25c10 72 63 68 20 66 6f 72 20 73 74 61 74 69 63 20 6c  rch for static l
25c20 69 62 72 61 72 69 65 73 0a 09 20 20 20 20 63 6f  ibraries..    co
25c30 6e 74 69 6e 75 65 0a 09 20 20 66 69 0a 09 66 69  ntinue..  fi..fi
25c40 0a 0a 09 6c 69 6e 6b 5f 73 74 61 74 69 63 3d 6e  ...link_static=n
25c50 6f 20 23 20 57 68 65 74 68 65 72 20 74 68 65 20  o # Whether the 
25c60 64 65 70 6c 69 62 20 77 69 6c 6c 20 62 65 20 6c  deplib will be l
25c70 69 6e 6b 65 64 20 73 74 61 74 69 63 61 6c 6c 79  inked statically
25c80 0a 09 75 73 65 5f 73 74 61 74 69 63 5f 6c 69 62  ..use_static_lib
25c90 73 3d 24 70 72 65 66 65 72 5f 73 74 61 74 69 63  s=$prefer_static
25ca0 5f 6c 69 62 73 0a 09 69 66 20 74 65 73 74 20 22  _libs..if test "
25cb0 24 75 73 65 5f 73 74 61 74 69 63 5f 6c 69 62 73  $use_static_libs
25cc0 22 20 3d 20 62 75 69 6c 74 20 26 26 20 74 65 73  " = built && tes
25cd0 74 20 22 24 69 6e 73 74 61 6c 6c 65 64 22 20 3d  t "$installed" =
25ce0 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20 75 73   yes; then..  us
25cf0 65 5f 73 74 61 74 69 63 5f 6c 69 62 73 3d 6e 6f  e_static_libs=no
25d00 0a 09 66 69 0a 09 69 66 20 74 65 73 74 20 2d 6e  ..fi..if test -n
25d10 20 22 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73   "$library_names
25d20 22 20 26 26 0a 09 20 20 20 7b 20 74 65 73 74 20  " &&..   { test 
25d30 22 24 75 73 65 5f 73 74 61 74 69 63 5f 6c 69 62  "$use_static_lib
25d40 73 22 20 3d 20 6e 6f 20 7c 7c 20 74 65 73 74 20  s" = no || test 
25d50 2d 7a 20 22 24 6f 6c 64 5f 6c 69 62 72 61 72 79  -z "$old_library
25d60 22 3b 20 7d 3b 20 74 68 65 6e 0a 09 20 20 63 61  "; }; then..  ca
25d70 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 20 2a  se $host in..  *
25d80 63 79 67 77 69 6e 2a 20 7c 20 2a 6d 69 6e 67 77  cygwin* | *mingw
25d90 2a 20 7c 20 2a 63 65 67 63 63 2a 29 0a 09 20 20  * | *cegcc*)..  
25da0 20 20 20 20 23 20 4e 6f 20 70 6f 69 6e 74 20 69      # No point i
25db0 6e 20 72 65 6c 69 6e 6b 69 6e 67 20 44 4c 4c 73  n relinking DLLs
25dc0 20 62 65 63 61 75 73 65 20 70 61 74 68 73 20 61   because paths a
25dd0 72 65 20 6e 6f 74 20 65 6e 63 6f 64 65 64 0a 09  re not encoded..
25de0 20 20 20 20 20 20 6e 6f 74 69 6e 73 74 5f 64 65        notinst_de
25df0 70 6c 69 62 73 3d 22 24 6e 6f 74 69 6e 73 74 5f  plibs="$notinst_
25e00 64 65 70 6c 69 62 73 20 24 6c 69 62 22 0a 09 20  deplibs $lib".. 
25e10 20 20 20 20 20 6e 65 65 64 5f 72 65 6c 69 6e 6b       need_relink
25e20 3d 6e 6f 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a  =no..    ;;..  *
25e30 29 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22  )..    if test "
25e40 24 69 6e 73 74 61 6c 6c 65 64 22 20 3d 20 6e 6f  $installed" = no
25e50 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 6e 6f  ; then..      no
25e60 74 69 6e 73 74 5f 64 65 70 6c 69 62 73 3d 22 24  tinst_deplibs="$
25e70 6e 6f 74 69 6e 73 74 5f 64 65 70 6c 69 62 73 20  notinst_deplibs 
25e80 24 6c 69 62 22 0a 09 20 20 20 20 20 20 6e 65 65  $lib"..      nee
25e90 64 5f 72 65 6c 69 6e 6b 3d 79 65 73 0a 09 20 20  d_relink=yes..  
25ea0 20 20 66 69 0a 09 20 20 20 20 3b 3b 0a 09 20 20    fi..    ;;..  
25eb0 65 73 61 63 0a 09 20 20 23 20 54 68 69 73 20 69  esac..  # This i
25ec0 73 20 61 20 73 68 61 72 65 64 20 6c 69 62 72 61  s a shared libra
25ed0 72 79 0a 0a 09 20 20 23 20 57 61 72 6e 20 61 62  ry...  # Warn ab
25ee0 6f 75 74 20 70 6f 72 74 61 62 69 6c 69 74 79 2c  out portability,
25ef0 20 63 61 6e 27 74 20 6c 69 6e 6b 20 61 67 61 69   can't link agai
25f00 6e 73 74 20 2d 6d 6f 64 75 6c 65 27 73 20 6f 6e  nst -module's on
25f10 20 73 6f 6d 65 0a 09 20 20 23 20 73 79 73 74 65   some..  # syste
25f20 6d 73 20 28 64 61 72 77 69 6e 29 2e 20 20 44 6f  ms (darwin).  Do
25f30 6e 27 74 20 62 6c 65 61 74 20 61 62 6f 75 74 20  n't bleat about 
25f40 64 6c 6f 70 65 6e 65 64 20 6d 6f 64 75 6c 65 73  dlopened modules
25f50 20 74 68 6f 75 67 68 21 0a 09 20 20 64 6c 6f 70   though!..  dlop
25f60 65 6e 6d 6f 64 75 6c 65 3d 22 22 0a 09 20 20 66  enmodule=""..  f
25f70 6f 72 20 64 6c 70 72 65 6d 6f 64 75 6c 65 74 65  or dlpremodulete
25f80 73 74 20 69 6e 20 24 64 6c 70 72 65 66 69 6c 65  st in $dlprefile
25f90 73 3b 20 64 6f 0a 09 20 20 20 20 69 66 20 74 65  s; do..    if te
25fa0 73 74 20 22 58 24 64 6c 70 72 65 6d 6f 64 75 6c  st "X$dlpremodul
25fb0 65 74 65 73 74 22 20 3d 20 22 58 24 6c 69 62 22  etest" = "X$lib"
25fc0 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 64 6c  ; then..      dl
25fd0 6f 70 65 6e 6d 6f 64 75 6c 65 3d 22 24 64 6c 70  openmodule="$dlp
25fe0 72 65 6d 6f 64 75 6c 65 74 65 73 74 22 0a 09 20  remoduletest".. 
25ff0 20 20 20 20 20 62 72 65 61 6b 0a 09 20 20 20 20       break..    
26000 66 69 0a 09 20 20 64 6f 6e 65 0a 09 20 20 69 66  fi..  done..  if
26010 20 74 65 73 74 20 2d 7a 20 22 24 64 6c 6f 70 65   test -z "$dlope
26020 6e 6d 6f 64 75 6c 65 22 20 26 26 20 74 65 73 74  nmodule" && test
26030 20 22 24 73 68 6f 75 6c 64 6e 6f 74 6c 69 6e 6b   "$shouldnotlink
26040 22 20 3d 20 79 65 73 20 26 26 20 74 65 73 74 20  " = yes && test 
26050 22 24 70 61 73 73 22 20 3d 20 6c 69 6e 6b 3b 20  "$pass" = link; 
26060 74 68 65 6e 0a 09 20 20 20 20 24 45 43 48 4f 0a  then..    $ECHO.
26070 09 20 20 20 20 69 66 20 74 65 73 74 20 22 24 6c  .    if test "$l
26080 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67 3b  inkmode" = prog;
26090 20 74 68 65 6e 0a 09 20 20 20 20 20 20 24 45 43   then..      $EC
260a0 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a  HO "*** Warning:
260b0 20 4c 69 6e 6b 69 6e 67 20 74 68 65 20 65 78 65   Linking the exe
260c0 63 75 74 61 62 6c 65 20 24 6f 75 74 70 75 74 20  cutable $output 
260d0 61 67 61 69 6e 73 74 20 74 68 65 20 6c 6f 61 64  against the load
260e0 61 62 6c 65 20 6d 6f 64 75 6c 65 22 0a 09 20 20  able module"..  
260f0 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 24 45    else..      $E
26100 43 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67  CHO "*** Warning
26110 3a 20 4c 69 6e 6b 69 6e 67 20 74 68 65 20 73 68  : Linking the sh
26120 61 72 65 64 20 6c 69 62 72 61 72 79 20 24 6f 75  ared library $ou
26130 74 70 75 74 20 61 67 61 69 6e 73 74 20 74 68 65  tput against the
26140 20 6c 6f 61 64 61 62 6c 65 20 6d 6f 64 75 6c 65   loadable module
26150 22 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 24  "..    fi..    $
26160 45 43 48 4f 20 22 2a 2a 2a 20 24 6c 69 6e 6b 6c  ECHO "*** $linkl
26170 69 62 20 69 73 20 6e 6f 74 20 70 6f 72 74 61 62  ib is not portab
26180 6c 65 21 22 0a 09 20 20 66 69 0a 09 20 20 69 66  le!"..  fi..  if
26190 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
261a0 22 20 3d 20 6c 69 62 20 26 26 0a 09 20 20 20 20  " = lib &&..    
261b0 20 74 65 73 74 20 22 24 68 61 72 64 63 6f 64 65   test "$hardcode
261c0 5f 69 6e 74 6f 5f 6c 69 62 73 22 20 3d 20 79 65  _into_libs" = ye
261d0 73 3b 20 74 68 65 6e 0a 09 20 20 20 20 23 20 48  s; then..    # H
261e0 61 72 64 63 6f 64 65 20 74 68 65 20 6c 69 62 72  ardcode the libr
261f0 61 72 79 20 70 61 74 68 2e 0a 09 20 20 20 20 23  ary path...    #
26200 20 53 6b 69 70 20 64 69 72 65 63 74 6f 72 69 65   Skip directorie
26210 73 20 74 68 61 74 20 61 72 65 20 69 6e 20 74 68  s that are in th
26220 65 20 73 79 73 74 65 6d 20 64 65 66 61 75 6c 74  e system default
26230 20 72 75 6e 2d 74 69 6d 65 0a 09 20 20 20 20 23   run-time..    #
26240 20 73 65 61 72 63 68 20 70 61 74 68 2e 0a 09 20   search path... 
26250 20 20 20 63 61 73 65 20 22 20 24 73 79 73 5f 6c     case " $sys_l
26260 69 62 5f 64 6c 73 65 61 72 63 68 5f 70 61 74 68  ib_dlsearch_path
26270 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20 24 61   " in..    *" $a
26280 62 73 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20  bsdir "*) ;;..  
26290 20 20 2a 29 0a 09 20 20 20 20 20 20 63 61 73 65    *)..      case
262a0 20 22 24 63 6f 6d 70 69 6c 65 5f 72 70 61 74 68   "$compile_rpath
262b0 20 22 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20   " in..      *" 
262c0 24 61 62 73 64 69 72 20 22 2a 29 20 3b 3b 0a 09  $absdir "*) ;;..
262d0 20 20 20 20 20 20 2a 29 20 63 6f 6d 70 69 6c 65        *) compile
262e0 5f 72 70 61 74 68 3d 22 24 63 6f 6d 70 69 6c 65  _rpath="$compile
262f0 5f 72 70 61 74 68 20 24 61 62 73 64 69 72 22 0a  _rpath $absdir".
26300 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20 20  .      esac..   
26310 20 20 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a     ;;..    esac.
26320 09 20 20 20 20 63 61 73 65 20 22 20 24 73 79 73  .    case " $sys
26330 5f 6c 69 62 5f 64 6c 73 65 61 72 63 68 5f 70 61  _lib_dlsearch_pa
26340 74 68 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20  th " in..    *" 
26350 24 6c 69 62 64 69 72 20 22 2a 29 20 3b 3b 0a 09  $libdir "*) ;;..
26360 20 20 20 20 2a 29 0a 09 20 20 20 20 20 20 63 61      *)..      ca
26370 73 65 20 22 24 66 69 6e 61 6c 69 7a 65 5f 72 70  se "$finalize_rp
26380 61 74 68 20 22 20 69 6e 0a 09 20 20 20 20 20 20  ath " in..      
26390 2a 22 20 24 6c 69 62 64 69 72 20 22 2a 29 20 3b  *" $libdir "*) ;
263a0 3b 0a 09 20 20 20 20 20 20 2a 29 20 66 69 6e 61  ;..      *) fina
263b0 6c 69 7a 65 5f 72 70 61 74 68 3d 22 24 66 69 6e  lize_rpath="$fin
263c0 61 6c 69 7a 65 5f 72 70 61 74 68 20 24 6c 69 62  alize_rpath $lib
263d0 64 69 72 22 0a 09 20 20 20 20 20 20 65 73 61 63  dir"..      esac
263e0 0a 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20  ..      ;;..    
263f0 65 73 61 63 0a 09 20 20 66 69 0a 0a 09 20 20 69  esac..  fi...  i
26400 66 20 74 65 73 74 20 2d 6e 20 22 24 6f 6c 64 5f  f test -n "$old_
26410 61 72 63 68 69 76 65 5f 66 72 6f 6d 5f 65 78 70  archive_from_exp
26420 73 79 6d 73 5f 63 6d 64 73 22 3b 20 74 68 65 6e  syms_cmds"; then
26430 0a 09 20 20 20 20 23 20 66 69 67 75 72 65 20 6f  ..    # figure o
26440 75 74 20 74 68 65 20 73 6f 6e 61 6d 65 0a 09 20  ut the soname.. 
26450 20 20 20 73 65 74 20 64 75 6d 6d 79 20 24 6c 69     set dummy $li
26460 62 72 61 72 79 5f 6e 61 6d 65 73 0a 09 20 20 20  brary_names..   
26470 20 73 68 69 66 74 0a 09 20 20 20 20 72 65 61 6c   shift..    real
26480 6e 61 6d 65 3d 22 24 31 22 0a 09 20 20 20 20 73  name="$1"..    s
26490 68 69 66 74 0a 09 20 20 20 20 6c 69 62 6e 61 6d  hift..    libnam
264a0 65 3d 60 65 76 61 6c 20 22 5c 5c 24 45 43 48 4f  e=`eval "\\$ECHO
264b0 20 5c 22 24 6c 69 62 6e 61 6d 65 5f 73 70 65 63   \"$libname_spec
264c0 5c 22 22 60 0a 09 20 20 20 20 23 20 75 73 65 20  \""`..    # use 
264d0 64 6c 6e 61 6d 65 20 69 66 20 77 65 20 67 6f 74  dlname if we got
264e0 20 69 74 2e 20 69 74 27 73 20 70 65 72 66 65 63   it. it's perfec
264f0 74 6c 79 20 67 6f 6f 64 2c 20 6e 6f 3f 0a 09 20  tly good, no?.. 
26500 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
26510 64 6c 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20  dlname"; then.. 
26520 20 20 20 20 20 73 6f 6e 61 6d 65 3d 22 24 64 6c       soname="$dl
26530 6e 61 6d 65 22 0a 09 20 20 20 20 65 6c 69 66 20  name"..    elif 
26540 74 65 73 74 20 2d 6e 20 22 24 73 6f 6e 61 6d 65  test -n "$soname
26550 5f 73 70 65 63 22 3b 20 74 68 65 6e 0a 09 20 20  _spec"; then..  
26560 20 20 20 20 23 20 62 6c 65 68 20 77 69 6e 64 6f      # bleh windo
26570 77 73 0a 09 20 20 20 20 20 20 63 61 73 65 20 24  ws..      case $
26580 68 6f 73 74 20 69 6e 0a 09 20 20 20 20 20 20 2a  host in..      *
26590 63 79 67 77 69 6e 2a 20 7c 20 6d 69 6e 67 77 2a  cygwin* | mingw*
265a0 20 7c 20 2a 63 65 67 63 63 2a 29 0a 09 20 20 20   | *cegcc*)..   
265b0 20 20 20 20 20 66 75 6e 63 5f 61 72 69 74 68 20       func_arith 
265c0 24 63 75 72 72 65 6e 74 20 2d 20 24 61 67 65 0a  $current - $age.
265d0 09 09 6d 61 6a 6f 72 3d 24 66 75 6e 63 5f 61 72  ..major=$func_ar
265e0 69 74 68 5f 72 65 73 75 6c 74 0a 09 09 76 65 72  ith_result...ver
265f0 73 75 66 66 69 78 3d 22 2d 24 6d 61 6a 6f 72 22  suffix="-$major"
26600 0a 09 09 3b 3b 0a 09 20 20 20 20 20 20 65 73 61  ...;;..      esa
26610 63 0a 09 20 20 20 20 20 20 65 76 61 6c 20 73 6f  c..      eval so
26620 6e 61 6d 65 3d 5c 22 24 73 6f 6e 61 6d 65 5f 73  name=\"$soname_s
26630 70 65 63 5c 22 0a 09 20 20 20 20 65 6c 73 65 0a  pec\"..    else.
26640 09 20 20 20 20 20 20 73 6f 6e 61 6d 65 3d 22 24  .      soname="$
26650 72 65 61 6c 6e 61 6d 65 22 0a 09 20 20 20 20 66  realname"..    f
26660 69 0a 0a 09 20 20 20 20 23 20 4d 61 6b 65 20 61  i...    # Make a
26670 20 6e 65 77 20 6e 61 6d 65 20 66 6f 72 20 74 68   new name for th
26680 65 20 65 78 74 72 61 63 74 5f 65 78 70 73 79 6d  e extract_expsym
26690 73 5f 63 6d 64 73 20 74 6f 20 75 73 65 0a 09 20  s_cmds to use.. 
266a0 20 20 20 73 6f 72 6f 6f 74 3d 22 24 73 6f 6e 61     soroot="$sona
266b0 6d 65 22 0a 09 20 20 20 20 66 75 6e 63 5f 62 61  me"..    func_ba
266c0 73 65 6e 61 6d 65 20 22 24 73 6f 72 6f 6f 74 22  sename "$soroot"
266d0 0a 09 20 20 20 20 73 6f 6e 61 6d 65 3d 22 24 66  ..    soname="$f
266e0 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73  unc_basename_res
266f0 75 6c 74 22 0a 09 20 20 20 20 66 75 6e 63 5f 73  ult"..    func_s
26700 74 72 69 70 6e 61 6d 65 20 27 6c 69 62 27 20 27  tripname 'lib' '
26710 2e 64 6c 6c 27 20 22 24 73 6f 6e 61 6d 65 22 0a  .dll' "$soname".
26720 09 20 20 20 20 6e 65 77 6c 69 62 3d 6c 69 62 69  .    newlib=libi
26730 6d 70 2d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61  mp-$func_stripna
26740 6d 65 5f 72 65 73 75 6c 74 2e 61 0a 0a 09 20 20  me_result.a...  
26750 20 20 23 20 49 66 20 74 68 65 20 6c 69 62 72 61    # If the libra
26760 72 79 20 68 61 73 20 6e 6f 20 65 78 70 6f 72 74  ry has no export
26770 20 6c 69 73 74 2c 20 74 68 65 6e 20 63 72 65 61   list, then crea
26780 74 65 20 6f 6e 65 20 6e 6f 77 0a 09 20 20 20 20  te one now..    
26790 69 66 20 74 65 73 74 20 2d 66 20 22 24 6f 75 74  if test -f "$out
267a0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 73 6f 6e 61  put_objdir/$sona
267b0 6d 65 2d 64 65 66 22 3b 20 74 68 65 6e 20 3a 0a  me-def"; then :.
267c0 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20  .    else..     
267d0 20 66 75 6e 63 5f 76 65 72 62 6f 73 65 20 22 65   func_verbose "e
267e0 78 74 72 61 63 74 69 6e 67 20 65 78 70 6f 72 74  xtracting export
267f0 65 64 20 73 79 6d 62 6f 6c 20 6c 69 73 74 20 66  ed symbol list f
26800 72 6f 6d 20 5c 60 24 73 6f 6e 61 6d 65 27 22 0a  rom \`$soname'".
26810 09 20 20 20 20 20 20 66 75 6e 63 5f 65 78 65 63  .      func_exec
26820 75 74 65 5f 63 6d 64 73 20 22 24 65 78 74 72 61  ute_cmds "$extra
26830 63 74 5f 65 78 70 73 79 6d 73 5f 63 6d 64 73 22  ct_expsyms_cmds"
26840 20 27 65 78 69 74 20 24 3f 27 0a 09 20 20 20 20   'exit $?'..    
26850 66 69 0a 0a 09 20 20 20 20 23 20 43 72 65 61 74  fi...    # Creat
26860 65 20 24 6e 65 77 6c 69 62 0a 09 20 20 20 20 69  e $newlib..    i
26870 66 20 74 65 73 74 20 2d 66 20 22 24 6f 75 74 70  f test -f "$outp
26880 75 74 5f 6f 62 6a 64 69 72 2f 24 6e 65 77 6c 69  ut_objdir/$newli
26890 62 22 3b 20 74 68 65 6e 20 3a 3b 20 65 6c 73 65  b"; then :; else
268a0 0a 09 20 20 20 20 20 20 66 75 6e 63 5f 76 65 72  ..      func_ver
268b0 62 6f 73 65 20 22 67 65 6e 65 72 61 74 69 6e 67  bose "generating
268c0 20 69 6d 70 6f 72 74 20 6c 69 62 72 61 72 79 20   import library 
268d0 66 6f 72 20 5c 60 24 73 6f 6e 61 6d 65 27 22 0a  for \`$soname'".
268e0 09 20 20 20 20 20 20 66 75 6e 63 5f 65 78 65 63  .      func_exec
268f0 75 74 65 5f 63 6d 64 73 20 22 24 6f 6c 64 5f 61  ute_cmds "$old_a
26900 72 63 68 69 76 65 5f 66 72 6f 6d 5f 65 78 70 73  rchive_from_exps
26910 79 6d 73 5f 63 6d 64 73 22 20 27 65 78 69 74 20  yms_cmds" 'exit 
26920 24 3f 27 0a 09 20 20 20 20 66 69 0a 09 20 20 20  $?'..    fi..   
26930 20 23 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65   # make sure the
26940 20 6c 69 62 72 61 72 79 20 76 61 72 69 61 62 6c   library variabl
26950 65 73 20 61 72 65 20 70 6f 69 6e 74 69 6e 67 20  es are pointing 
26960 74 6f 20 74 68 65 20 6e 65 77 20 6c 69 62 72 61  to the new libra
26970 72 79 0a 09 20 20 20 20 64 69 72 3d 24 6f 75 74  ry..    dir=$out
26980 70 75 74 5f 6f 62 6a 64 69 72 0a 09 20 20 20 20  put_objdir..    
26990 6c 69 6e 6b 6c 69 62 3d 24 6e 65 77 6c 69 62 0a  linklib=$newlib.
269a0 09 20 20 66 69 20 23 20 74 65 73 74 20 2d 6e 20  .  fi # test -n 
269b0 22 24 6f 6c 64 5f 61 72 63 68 69 76 65 5f 66 72  "$old_archive_fr
269c0 6f 6d 5f 65 78 70 73 79 6d 73 5f 63 6d 64 73 22  om_expsyms_cmds"
269d0 0a 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 6c  ...  if test "$l
269e0 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67 20  inkmode" = prog 
269f0 7c 7c 20 74 65 73 74 20 22 24 6d 6f 64 65 22 20  || test "$mode" 
26a00 21 3d 20 72 65 6c 69 6e 6b 3b 20 74 68 65 6e 0a  != relink; then.
26a10 09 20 20 20 20 61 64 64 5f 73 68 6c 69 62 70 61  .    add_shlibpa
26a20 74 68 3d 0a 09 20 20 20 20 61 64 64 5f 64 69 72  th=..    add_dir
26a30 3d 0a 09 20 20 20 20 61 64 64 3d 0a 09 20 20 20  =..    add=..   
26a40 20 6c 69 62 5f 6c 69 6e 6b 65 64 3d 79 65 73 0a   lib_linked=yes.
26a50 09 20 20 20 20 63 61 73 65 20 24 68 61 72 64 63  .    case $hardc
26a60 6f 64 65 5f 61 63 74 69 6f 6e 20 69 6e 0a 09 20  ode_action in.. 
26a70 20 20 20 69 6d 6d 65 64 69 61 74 65 20 7c 20 75     immediate | u
26a80 6e 73 75 70 70 6f 72 74 65 64 29 0a 09 20 20 20  nsupported)..   
26a90 20 20 20 69 66 20 74 65 73 74 20 22 24 68 61 72     if test "$har
26aa0 64 63 6f 64 65 5f 64 69 72 65 63 74 22 20 3d 20  dcode_direct" = 
26ab0 6e 6f 3b 20 74 68 65 6e 0a 09 09 61 64 64 3d 22  no; then...add="
26ac0 24 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 0a 09  $dir/$linklib"..
26ad0 09 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09  .case $host in..
26ae0 09 20 20 2a 2d 2a 2d 73 63 6f 33 2e 32 76 35 2e  .  *-*-sco3.2v5.
26af0 30 2e 5b 30 32 34 5d 2a 29 20 61 64 64 5f 64 69  0.[024]*) add_di
26b00 72 3d 22 2d 4c 24 64 69 72 22 20 3b 3b 0a 09 09  r="-L$dir" ;;...
26b10 20 20 2a 2d 2a 2d 73 79 73 76 34 2a 75 77 32 2a    *-*-sysv4*uw2*
26b20 29 20 61 64 64 5f 64 69 72 3d 22 2d 4c 24 64 69  ) add_dir="-L$di
26b30 72 22 20 3b 3b 0a 09 09 20 20 2a 2d 2a 2d 73 79  r" ;;...  *-*-sy
26b40 73 76 35 4f 70 65 6e 55 4e 49 58 2a 20 7c 20 2a  sv5OpenUNIX* | *
26b50 2d 2a 2d 73 79 73 76 35 55 6e 69 78 57 61 72 65  -*-sysv5UnixWare
26b60 37 2e 5b 30 31 5d 2e 5b 31 30 5d 2a 20 7c 20 5c  7.[01].[10]* | \
26b70 0a 09 09 20 20 20 20 2a 2d 2a 2d 75 6e 69 78 77  ...    *-*-unixw
26b80 61 72 65 37 2a 29 20 61 64 64 5f 64 69 72 3d 22  are7*) add_dir="
26b90 2d 4c 24 64 69 72 22 20 3b 3b 0a 09 09 20 20 2a  -L$dir" ;;...  *
26ba0 2d 2a 2d 64 61 72 77 69 6e 2a 20 29 0a 09 09 20  -*-darwin* )... 
26bb0 20 20 20 23 20 69 66 20 74 68 65 20 6c 69 62 20     # if the lib 
26bc0 69 73 20 61 20 28 6e 6f 6e 2d 64 6c 6f 70 65 6e  is a (non-dlopen
26bd0 65 64 29 20 6d 6f 64 75 6c 65 20 74 68 65 6e 20  ed) module then 
26be0 77 65 20 63 61 6e 20 6e 6f 74 0a 09 09 20 20 20  we can not...   
26bf0 20 23 20 6c 69 6e 6b 20 61 67 61 69 6e 73 74 20   # link against 
26c00 69 74 2c 20 73 6f 6d 65 6f 6e 65 20 69 73 20 69  it, someone is i
26c10 67 6e 6f 72 69 6e 67 20 74 68 65 20 65 61 72 6c  gnoring the earl
26c20 69 65 72 20 77 61 72 6e 69 6e 67 73 0a 09 09 20  ier warnings... 
26c30 20 20 20 69 66 20 2f 75 73 72 2f 62 69 6e 2f 66     if /usr/bin/f
26c40 69 6c 65 20 2d 4c 20 24 61 64 64 20 32 3e 20 2f  ile -L $add 2> /
26c50 64 65 76 2f 6e 75 6c 6c 20 7c 0a 09 09 09 20 24  dev/null |.... $
26c60 47 52 45 50 20 22 3a 20 5b 5e 3a 5d 2a 20 62 75  GREP ": [^:]* bu
26c70 6e 64 6c 65 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c  ndle" >/dev/null
26c80 20 3b 20 74 68 65 6e 0a 09 09 20 20 20 20 20 20   ; then...      
26c90 69 66 20 74 65 73 74 20 22 58 24 64 6c 6f 70 65  if test "X$dlope
26ca0 6e 6d 6f 64 75 6c 65 22 20 21 3d 20 22 58 24 6c  nmodule" != "X$l
26cb0 69 62 22 3b 20 74 68 65 6e 0a 09 09 09 24 45 43  ib"; then....$EC
26cc0 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a  HO "*** Warning:
26cd0 20 6c 69 62 20 24 6c 69 6e 6b 6c 69 62 20 69 73   lib $linklib is
26ce0 20 61 20 6d 6f 64 75 6c 65 2c 20 6e 6f 74 20 61   a module, not a
26cf0 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 22   shared library"
26d00 0a 09 09 09 69 66 20 74 65 73 74 20 2d 7a 20 22  ....if test -z "
26d10 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 20 3b 20  $old_library" ; 
26d20 74 68 65 6e 0a 09 09 09 20 20 24 45 43 48 4f 0a  then....  $ECHO.
26d30 09 09 09 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20  ...  $ECHO "*** 
26d40 41 6e 64 20 74 68 65 72 65 20 64 6f 65 73 6e 27  And there doesn'
26d50 74 20 73 65 65 6d 20 74 6f 20 62 65 20 61 20 73  t seem to be a s
26d60 74 61 74 69 63 20 61 72 63 68 69 76 65 20 61 76  tatic archive av
26d70 61 69 6c 61 62 6c 65 22 0a 09 09 09 20 20 24 45  ailable"....  $E
26d80 43 48 4f 20 22 2a 2a 2a 20 54 68 65 20 6c 69 6e  CHO "*** The lin
26d90 6b 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20  k will probably 
26da0 66 61 69 6c 2c 20 73 6f 72 72 79 22 0a 09 09 09  fail, sorry"....
26db0 65 6c 73 65 0a 09 09 09 20 20 61 64 64 3d 22 24  else....  add="$
26dc0 64 69 72 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79  dir/$old_library
26dd0 22 0a 09 09 09 66 69 0a 09 09 20 20 20 20 20 20  "....fi...      
26de0 65 6c 69 66 20 74 65 73 74 20 2d 6e 20 22 24 6f  elif test -n "$o
26df0 6c 64 5f 6c 69 62 72 61 72 79 22 3b 20 74 68 65  ld_library"; the
26e00 6e 0a 09 09 09 61 64 64 3d 22 24 64 69 72 2f 24  n....add="$dir/$
26e10 6f 6c 64 5f 6c 69 62 72 61 72 79 22 0a 09 09 20  old_library"... 
26e20 20 20 20 20 20 66 69 0a 09 09 20 20 20 20 66 69       fi...    fi
26e30 0a 09 09 65 73 61 63 0a 09 20 20 20 20 20 20 65  ...esac..      e
26e40 6c 69 66 20 74 65 73 74 20 22 24 68 61 72 64 63  lif test "$hardc
26e50 6f 64 65 5f 6d 69 6e 75 73 5f 4c 22 20 3d 20 6e  ode_minus_L" = n
26e60 6f 3b 20 74 68 65 6e 0a 09 09 63 61 73 65 20 24  o; then...case $
26e70 68 6f 73 74 20 69 6e 0a 09 09 2a 2d 2a 2d 73 75  host in...*-*-su
26e80 6e 6f 73 2a 29 20 61 64 64 5f 73 68 6c 69 62 70  nos*) add_shlibp
26e90 61 74 68 3d 22 24 64 69 72 22 20 3b 3b 0a 09 09  ath="$dir" ;;...
26ea0 65 73 61 63 0a 09 09 61 64 64 5f 64 69 72 3d 22  esac...add_dir="
26eb0 2d 4c 24 64 69 72 22 0a 09 09 61 64 64 3d 22 2d  -L$dir"...add="-
26ec0 6c 24 6e 61 6d 65 22 0a 09 20 20 20 20 20 20 65  l$name"..      e
26ed0 6c 69 66 20 74 65 73 74 20 22 24 68 61 72 64 63  lif test "$hardc
26ee0 6f 64 65 5f 73 68 6c 69 62 70 61 74 68 5f 76 61  ode_shlibpath_va
26ef0 72 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09 09  r" = no; then...
26f00 61 64 64 5f 73 68 6c 69 62 70 61 74 68 3d 22 24  add_shlibpath="$
26f10 64 69 72 22 0a 09 09 61 64 64 3d 22 2d 6c 24 6e  dir"...add="-l$n
26f20 61 6d 65 22 0a 09 20 20 20 20 20 20 65 6c 73 65  ame"..      else
26f30 0a 09 09 6c 69 62 5f 6c 69 6e 6b 65 64 3d 6e 6f  ...lib_linked=no
26f40 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20 20 20  ..      fi..    
26f50 20 20 3b 3b 0a 09 20 20 20 20 72 65 6c 69 6e 6b    ;;..    relink
26f60 29 0a 09 20 20 20 20 20 20 69 66 20 74 65 73 74  )..      if test
26f70 20 22 24 68 61 72 64 63 6f 64 65 5f 64 69 72 65   "$hardcode_dire
26f80 63 74 22 20 3d 20 79 65 73 20 26 26 0a 09 20 20  ct" = yes &&..  
26f90 20 20 20 20 20 20 20 74 65 73 74 20 22 24 68 61         test "$ha
26fa0 72 64 63 6f 64 65 5f 64 69 72 65 63 74 5f 61 62  rdcode_direct_ab
26fb0 73 6f 6c 75 74 65 22 20 3d 20 6e 6f 3b 20 74 68  solute" = no; th
26fc0 65 6e 0a 09 09 61 64 64 3d 22 24 64 69 72 2f 24  en...add="$dir/$
26fd0 6c 69 6e 6b 6c 69 62 22 0a 09 20 20 20 20 20 20  linklib"..      
26fe0 65 6c 69 66 20 74 65 73 74 20 22 24 68 61 72 64  elif test "$hard
26ff0 63 6f 64 65 5f 6d 69 6e 75 73 5f 4c 22 20 3d 20  code_minus_L" = 
27000 79 65 73 3b 20 74 68 65 6e 0a 09 09 61 64 64 5f  yes; then...add_
27010 64 69 72 3d 22 2d 4c 24 64 69 72 22 0a 09 09 23  dir="-L$dir"...#
27020 20 54 72 79 20 6c 6f 6f 6b 69 6e 67 20 66 69 72   Try looking fir
27030 73 74 20 69 6e 20 74 68 65 20 6c 6f 63 61 74 69  st in the locati
27040 6f 6e 20 77 65 27 72 65 20 62 65 69 6e 67 20 69  on we're being i
27050 6e 73 74 61 6c 6c 65 64 20 74 6f 2e 0a 09 09 69  nstalled to....i
27060 66 20 74 65 73 74 20 2d 6e 20 22 24 69 6e 73 74  f test -n "$inst
27070 5f 70 72 65 66 69 78 5f 64 69 72 22 3b 20 74 68  _prefix_dir"; th
27080 65 6e 0a 09 09 20 20 63 61 73 65 20 24 6c 69 62  en...  case $lib
27090 64 69 72 20 69 6e 0a 09 09 20 20 20 20 5b 5c 5c  dir in...    [\\
270a0 2f 5d 2a 29 0a 09 09 20 20 20 20 20 20 61 64 64  /]*)...      add
270b0 5f 64 69 72 3d 22 24 61 64 64 5f 64 69 72 20 2d  _dir="$add_dir -
270c0 4c 24 69 6e 73 74 5f 70 72 65 66 69 78 5f 64 69  L$inst_prefix_di
270d0 72 24 6c 69 62 64 69 72 22 0a 09 09 20 20 20 20  r$libdir"...    
270e0 20 20 3b 3b 0a 09 09 20 20 65 73 61 63 0a 09 09    ;;...  esac...
270f0 66 69 0a 09 09 61 64 64 3d 22 2d 6c 24 6e 61 6d  fi...add="-l$nam
27100 65 22 0a 09 20 20 20 20 20 20 65 6c 69 66 20 74  e"..      elif t
27110 65 73 74 20 22 24 68 61 72 64 63 6f 64 65 5f 73  est "$hardcode_s
27120 68 6c 69 62 70 61 74 68 5f 76 61 72 22 20 3d 20  hlibpath_var" = 
27130 79 65 73 3b 20 74 68 65 6e 0a 09 09 61 64 64 5f  yes; then...add_
27140 73 68 6c 69 62 70 61 74 68 3d 22 24 64 69 72 22  shlibpath="$dir"
27150 0a 09 09 61 64 64 3d 22 2d 6c 24 6e 61 6d 65 22  ...add="-l$name"
27160 0a 09 20 20 20 20 20 20 65 6c 73 65 0a 09 09 6c  ..      else...l
27170 69 62 5f 6c 69 6e 6b 65 64 3d 6e 6f 0a 09 20 20  ib_linked=no..  
27180 20 20 20 20 66 69 0a 09 20 20 20 20 20 20 3b 3b      fi..      ;;
27190 0a 09 20 20 20 20 2a 29 20 6c 69 62 5f 6c 69 6e  ..    *) lib_lin
271a0 6b 65 64 3d 6e 6f 20 3b 3b 0a 09 20 20 20 20 65  ked=no ;;..    e
271b0 73 61 63 0a 0a 09 20 20 20 20 69 66 20 74 65 73  sac...    if tes
271c0 74 20 22 24 6c 69 62 5f 6c 69 6e 6b 65 64 22 20  t "$lib_linked" 
271d0 21 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20  != yes; then..  
271e0 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 63      func_fatal_c
271f0 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 22 75 6e  onfiguration "un
27200 73 75 70 70 6f 72 74 65 64 20 68 61 72 64 63 6f  supported hardco
27210 64 65 20 70 72 6f 70 65 72 74 69 65 73 22 0a 09  de properties"..
27220 20 20 20 20 66 69 0a 0a 09 20 20 20 20 69 66 20      fi...    if 
27230 74 65 73 74 20 2d 6e 20 22 24 61 64 64 5f 73 68  test -n "$add_sh
27240 6c 69 62 70 61 74 68 22 3b 20 74 68 65 6e 0a 09  libpath"; then..
27250 20 20 20 20 20 20 63 61 73 65 20 3a 24 63 6f 6d        case :$com
27260 70 69 6c 65 5f 73 68 6c 69 62 70 61 74 68 3a 20  pile_shlibpath: 
27270 69 6e 0a 09 20 20 20 20 20 20 2a 22 3a 24 61 64  in..      *":$ad
27280 64 5f 73 68 6c 69 62 70 61 74 68 3a 22 2a 29 20  d_shlibpath:"*) 
27290 3b 3b 0a 09 20 20 20 20 20 20 2a 29 20 63 6f 6d  ;;..      *) com
272a0 70 69 6c 65 5f 73 68 6c 69 62 70 61 74 68 3d 22  pile_shlibpath="
272b0 24 63 6f 6d 70 69 6c 65 5f 73 68 6c 69 62 70 61  $compile_shlibpa
272c0 74 68 24 61 64 64 5f 73 68 6c 69 62 70 61 74 68  th$add_shlibpath
272d0 3a 22 20 3b 3b 0a 09 20 20 20 20 20 20 65 73 61  :" ;;..      esa
272e0 63 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 69  c..    fi..    i
272f0 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64  f test "$linkmod
27300 65 22 20 3d 20 70 72 6f 67 3b 20 74 68 65 6e 0a  e" = prog; then.
27310 09 20 20 20 20 20 20 74 65 73 74 20 2d 6e 20 22  .      test -n "
27320 24 61 64 64 5f 64 69 72 22 20 26 26 20 63 6f 6d  $add_dir" && com
27330 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 22 24 61  pile_deplibs="$a
27340 64 64 5f 64 69 72 20 24 63 6f 6d 70 69 6c 65 5f  dd_dir $compile_
27350 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 20 20  deplibs"..      
27360 74 65 73 74 20 2d 6e 20 22 24 61 64 64 22 20 26  test -n "$add" &
27370 26 20 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62  & compile_deplib
27380 73 3d 22 24 61 64 64 20 24 63 6f 6d 70 69 6c 65  s="$add $compile
27390 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 65  _deplibs"..    e
273a0 6c 73 65 0a 09 20 20 20 20 20 20 74 65 73 74 20  lse..      test 
273b0 2d 6e 20 22 24 61 64 64 5f 64 69 72 22 20 26 26  -n "$add_dir" &&
273c0 20 64 65 70 6c 69 62 73 3d 22 24 61 64 64 5f 64   deplibs="$add_d
273d0 69 72 20 24 64 65 70 6c 69 62 73 22 0a 09 20 20  ir $deplibs"..  
273e0 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24 61 64      test -n "$ad
273f0 64 22 20 26 26 20 64 65 70 6c 69 62 73 3d 22 24  d" && deplibs="$
27400 61 64 64 20 24 64 65 70 6c 69 62 73 22 0a 09 20  add $deplibs".. 
27410 20 20 20 20 20 69 66 20 74 65 73 74 20 22 24 68       if test "$h
27420 61 72 64 63 6f 64 65 5f 64 69 72 65 63 74 22 20  ardcode_direct" 
27430 21 3d 20 79 65 73 20 26 26 0a 09 09 20 74 65 73  != yes &&... tes
27440 74 20 22 24 68 61 72 64 63 6f 64 65 5f 6d 69 6e  t "$hardcode_min
27450 75 73 5f 4c 22 20 21 3d 20 79 65 73 20 26 26 0a  us_L" != yes &&.
27460 09 09 20 74 65 73 74 20 22 24 68 61 72 64 63 6f  .. test "$hardco
27470 64 65 5f 73 68 6c 69 62 70 61 74 68 5f 76 61 72  de_shlibpath_var
27480 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 09  " = yes; then...
27490 63 61 73 65 20 3a 24 66 69 6e 61 6c 69 7a 65 5f  case :$finalize_
274a0 73 68 6c 69 62 70 61 74 68 3a 20 69 6e 0a 09 09  shlibpath: in...
274b0 2a 22 3a 24 6c 69 62 64 69 72 3a 22 2a 29 20 3b  *":$libdir:"*) ;
274c0 3b 0a 09 09 2a 29 20 66 69 6e 61 6c 69 7a 65 5f  ;...*) finalize_
274d0 73 68 6c 69 62 70 61 74 68 3d 22 24 66 69 6e 61  shlibpath="$fina
274e0 6c 69 7a 65 5f 73 68 6c 69 62 70 61 74 68 24 6c  lize_shlibpath$l
274f0 69 62 64 69 72 3a 22 20 3b 3b 0a 09 09 65 73 61  ibdir:" ;;...esa
27500 63 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20 20  c..      fi..   
27510 20 66 69 0a 09 20 20 66 69 0a 0a 09 20 20 69 66   fi..  fi...  if
27520 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
27530 22 20 3d 20 70 72 6f 67 20 7c 7c 20 74 65 73 74  " = prog || test
27540 20 22 24 6d 6f 64 65 22 20 3d 20 72 65 6c 69 6e   "$mode" = relin
27550 6b 3b 20 74 68 65 6e 0a 09 20 20 20 20 61 64 64  k; then..    add
27560 5f 73 68 6c 69 62 70 61 74 68 3d 0a 09 20 20 20  _shlibpath=..   
27570 20 61 64 64 5f 64 69 72 3d 0a 09 20 20 20 20 61   add_dir=..    a
27580 64 64 3d 0a 09 20 20 20 20 23 20 46 69 6e 61 6c  dd=..    # Final
27590 69 7a 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20  ize command for 
275a0 62 6f 74 68 20 69 73 20 73 69 6d 70 6c 65 3a 20  both is simple: 
275b0 6a 75 73 74 20 68 61 72 64 63 6f 64 65 20 69 74  just hardcode it
275c0 2e 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22  ...    if test "
275d0 24 68 61 72 64 63 6f 64 65 5f 64 69 72 65 63 74  $hardcode_direct
275e0 22 20 3d 20 79 65 73 20 26 26 0a 09 20 20 20 20  " = yes &&..    
275f0 20 20 20 74 65 73 74 20 22 24 68 61 72 64 63 6f     test "$hardco
27600 64 65 5f 64 69 72 65 63 74 5f 61 62 73 6f 6c 75  de_direct_absolu
27610 74 65 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09  te" = no; then..
27620 20 20 20 20 20 20 61 64 64 3d 22 24 6c 69 62 64        add="$libd
27630 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 0a 09 20 20  ir/$linklib"..  
27640 20 20 65 6c 69 66 20 74 65 73 74 20 22 24 68 61    elif test "$ha
27650 72 64 63 6f 64 65 5f 6d 69 6e 75 73 5f 4c 22 20  rdcode_minus_L" 
27660 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20 20  = yes; then..   
27670 20 20 20 61 64 64 5f 64 69 72 3d 22 2d 4c 24 6c     add_dir="-L$l
27680 69 62 64 69 72 22 0a 09 20 20 20 20 20 20 61 64  ibdir"..      ad
27690 64 3d 22 2d 6c 24 6e 61 6d 65 22 0a 09 20 20 20  d="-l$name"..   
276a0 20 65 6c 69 66 20 74 65 73 74 20 22 24 68 61 72   elif test "$har
276b0 64 63 6f 64 65 5f 73 68 6c 69 62 70 61 74 68 5f  dcode_shlibpath_
276c0 76 61 72 22 20 3d 20 79 65 73 3b 20 74 68 65 6e  var" = yes; then
276d0 0a 09 20 20 20 20 20 20 63 61 73 65 20 3a 24 66  ..      case :$f
276e0 69 6e 61 6c 69 7a 65 5f 73 68 6c 69 62 70 61 74  inalize_shlibpat
276f0 68 3a 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 3a  h: in..      *":
27700 24 6c 69 62 64 69 72 3a 22 2a 29 20 3b 3b 0a 09  $libdir:"*) ;;..
27710 20 20 20 20 20 20 2a 29 20 66 69 6e 61 6c 69 7a        *) finaliz
27720 65 5f 73 68 6c 69 62 70 61 74 68 3d 22 24 66 69  e_shlibpath="$fi
27730 6e 61 6c 69 7a 65 5f 73 68 6c 69 62 70 61 74 68  nalize_shlibpath
27740 24 6c 69 62 64 69 72 3a 22 20 3b 3b 0a 09 20 20  $libdir:" ;;..  
27750 20 20 20 20 65 73 61 63 0a 09 20 20 20 20 20 20      esac..      
27760 61 64 64 3d 22 2d 6c 24 6e 61 6d 65 22 0a 09 20  add="-l$name".. 
27770 20 20 20 65 6c 69 66 20 74 65 73 74 20 22 24 68     elif test "$h
27780 61 72 64 63 6f 64 65 5f 61 75 74 6f 6d 61 74 69  ardcode_automati
27790 63 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09  c" = yes; then..
277a0 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e        if test -n
277b0 20 22 24 69 6e 73 74 5f 70 72 65 66 69 78 5f 64   "$inst_prefix_d
277c0 69 72 22 20 26 26 0a 09 09 20 74 65 73 74 20 2d  ir" &&... test -
277d0 66 20 22 24 69 6e 73 74 5f 70 72 65 66 69 78 5f  f "$inst_prefix_
277e0 64 69 72 24 6c 69 62 64 69 72 2f 24 6c 69 6e 6b  dir$libdir/$link
277f0 6c 69 62 22 20 3b 20 74 68 65 6e 0a 09 09 61 64  lib" ; then...ad
27800 64 3d 22 24 69 6e 73 74 5f 70 72 65 66 69 78 5f  d="$inst_prefix_
27810 64 69 72 24 6c 69 62 64 69 72 2f 24 6c 69 6e 6b  dir$libdir/$link
27820 6c 69 62 22 0a 09 20 20 20 20 20 20 65 6c 73 65  lib"..      else
27830 0a 09 09 61 64 64 3d 22 24 6c 69 62 64 69 72 2f  ...add="$libdir/
27840 24 6c 69 6e 6b 6c 69 62 22 0a 09 20 20 20 20 20  $linklib"..     
27850 20 66 69 0a 09 20 20 20 20 65 6c 73 65 0a 09 20   fi..    else.. 
27860 20 20 20 20 20 23 20 57 65 20 63 61 6e 6e 6f 74       # We cannot
27870 20 73 65 65 6d 20 74 6f 20 68 61 72 64 63 6f 64   seem to hardcod
27880 65 20 69 74 2c 20 67 75 65 73 73 20 77 65 27 6c  e it, guess we'l
27890 6c 20 66 61 6b 65 20 69 74 2e 0a 09 20 20 20 20  l fake it...    
278a0 20 20 61 64 64 5f 64 69 72 3d 22 2d 4c 24 6c 69    add_dir="-L$li
278b0 62 64 69 72 22 0a 09 20 20 20 20 20 20 23 20 54  bdir"..      # T
278c0 72 79 20 6c 6f 6f 6b 69 6e 67 20 66 69 72 73 74  ry looking first
278d0 20 69 6e 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e   in the location
278e0 20 77 65 27 72 65 20 62 65 69 6e 67 20 69 6e 73   we're being ins
278f0 74 61 6c 6c 65 64 20 74 6f 2e 0a 09 20 20 20 20  talled to...    
27900 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 69    if test -n "$i
27910 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 22 3b  nst_prefix_dir";
27920 20 74 68 65 6e 0a 09 09 63 61 73 65 20 24 6c 69   then...case $li
27930 62 64 69 72 20 69 6e 0a 09 09 20 20 5b 5c 5c 2f  bdir in...  [\\/
27940 5d 2a 29 0a 09 09 20 20 20 20 61 64 64 5f 64 69  ]*)...    add_di
27950 72 3d 22 24 61 64 64 5f 64 69 72 20 2d 4c 24 69  r="$add_dir -L$i
27960 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 24 6c  nst_prefix_dir$l
27970 69 62 64 69 72 22 0a 09 09 20 20 20 20 3b 3b 0a  ibdir"...    ;;.
27980 09 09 65 73 61 63 0a 09 20 20 20 20 20 20 66 69  ..esac..      fi
27990 0a 09 20 20 20 20 20 20 61 64 64 3d 22 2d 6c 24  ..      add="-l$
279a0 6e 61 6d 65 22 0a 09 20 20 20 20 66 69 0a 0a 09  name"..    fi...
279b0 20 20 20 20 69 66 20 74 65 73 74 20 22 24 6c 69      if test "$li
279c0 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67 3b 20  nkmode" = prog; 
279d0 74 68 65 6e 0a 09 20 20 20 20 20 20 74 65 73 74  then..      test
279e0 20 2d 6e 20 22 24 61 64 64 5f 64 69 72 22 20 26   -n "$add_dir" &
279f0 26 20 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69  & finalize_depli
27a00 62 73 3d 22 24 61 64 64 5f 64 69 72 20 24 66 69  bs="$add_dir $fi
27a10 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 22 0a  nalize_deplibs".
27a20 09 20 20 20 20 20 20 74 65 73 74 20 2d 6e 20 22  .      test -n "
27a30 24 61 64 64 22 20 26 26 20 66 69 6e 61 6c 69 7a  $add" && finaliz
27a40 65 5f 64 65 70 6c 69 62 73 3d 22 24 61 64 64 20  e_deplibs="$add 
27a50 24 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62  $finalize_deplib
27a60 73 22 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20  s"..    else..  
27a70 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24 61 64      test -n "$ad
27a80 64 5f 64 69 72 22 20 26 26 20 64 65 70 6c 69 62  d_dir" && deplib
27a90 73 3d 22 24 61 64 64 5f 64 69 72 20 24 64 65 70  s="$add_dir $dep
27aa0 6c 69 62 73 22 0a 09 20 20 20 20 20 20 74 65 73  libs"..      tes
27ab0 74 20 2d 6e 20 22 24 61 64 64 22 20 26 26 20 64  t -n "$add" && d
27ac0 65 70 6c 69 62 73 3d 22 24 61 64 64 20 24 64 65  eplibs="$add $de
27ad0 70 6c 69 62 73 22 0a 09 20 20 20 20 66 69 0a 09  plibs"..    fi..
27ae0 20 20 66 69 0a 09 65 6c 69 66 20 74 65 73 74 20    fi..elif test 
27af0 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72  "$linkmode" = pr
27b00 6f 67 3b 20 74 68 65 6e 0a 09 20 20 23 20 48 65  og; then..  # He
27b10 72 65 20 77 65 20 61 73 73 75 6d 65 20 74 68 61  re we assume tha
27b20 74 20 6f 6e 65 20 6f 66 20 68 61 72 64 63 6f 64  t one of hardcod
27b30 65 5f 64 69 72 65 63 74 20 6f 72 20 68 61 72 64  e_direct or hard
27b40 63 6f 64 65 5f 6d 69 6e 75 73 5f 4c 0a 09 20 20  code_minus_L..  
27b50 23 20 69 73 20 6e 6f 74 20 75 6e 73 75 70 70 6f  # is not unsuppo
27b60 72 74 65 64 2e 20 20 54 68 69 73 20 69 73 20 76  rted.  This is v
27b70 61 6c 69 64 20 6f 6e 20 61 6c 6c 20 6b 6e 6f 77  alid on all know
27b80 6e 20 73 74 61 74 69 63 20 61 6e 64 0a 09 20 20  n static and..  
27b90 23 20 73 68 61 72 65 64 20 70 6c 61 74 66 6f 72  # shared platfor
27ba0 6d 73 2e 0a 09 20 20 69 66 20 74 65 73 74 20 22  ms...  if test "
27bb0 24 68 61 72 64 63 6f 64 65 5f 64 69 72 65 63 74  $hardcode_direct
27bc0 22 20 21 3d 20 75 6e 73 75 70 70 6f 72 74 65 64  " != unsupported
27bd0 3b 20 74 68 65 6e 0a 09 20 20 20 20 74 65 73 74  ; then..    test
27be0 20 2d 6e 20 22 24 6f 6c 64 5f 6c 69 62 72 61 72   -n "$old_librar
27bf0 79 22 20 26 26 20 6c 69 6e 6b 6c 69 62 3d 22 24  y" && linklib="$
27c00 6f 6c 64 5f 6c 69 62 72 61 72 79 22 0a 09 20 20  old_library"..  
27c10 20 20 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62    compile_deplib
27c20 73 3d 22 24 64 69 72 2f 24 6c 69 6e 6b 6c 69 62  s="$dir/$linklib
27c30 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62   $compile_deplib
27c40 73 22 0a 09 20 20 20 20 66 69 6e 61 6c 69 7a 65  s"..    finalize
27c50 5f 64 65 70 6c 69 62 73 3d 22 24 64 69 72 2f 24  _deplibs="$dir/$
27c60 6c 69 6e 6b 6c 69 62 20 24 66 69 6e 61 6c 69 7a  linklib $finaliz
27c70 65 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 65 6c  e_deplibs"..  el
27c80 73 65 0a 09 20 20 20 20 63 6f 6d 70 69 6c 65 5f  se..    compile_
27c90 64 65 70 6c 69 62 73 3d 22 2d 6c 24 6e 61 6d 65  deplibs="-l$name
27ca0 20 2d 4c 24 64 69 72 20 24 63 6f 6d 70 69 6c 65   -L$dir $compile
27cb0 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 66  _deplibs"..    f
27cc0 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d  inalize_deplibs=
27cd0 22 2d 6c 24 6e 61 6d 65 20 2d 4c 24 64 69 72 20  "-l$name -L$dir 
27ce0 24 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62  $finalize_deplib
27cf0 73 22 0a 09 20 20 66 69 0a 09 65 6c 69 66 20 74  s"..  fi..elif t
27d00 65 73 74 20 22 24 62 75 69 6c 64 5f 6c 69 62 74  est "$build_libt
27d10 6f 6f 6c 5f 6c 69 62 73 22 20 3d 20 79 65 73 3b  ool_libs" = yes;
27d20 20 74 68 65 6e 0a 09 20 20 23 20 4e 6f 74 20 61   then..  # Not a
27d30 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 0a   shared library.
27d40 09 20 20 69 66 20 74 65 73 74 20 22 24 64 65 70  .  if test "$dep
27d50 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68 6f  libs_check_metho
27d60 64 22 20 21 3d 20 70 61 73 73 5f 61 6c 6c 3b 20  d" != pass_all; 
27d70 74 68 65 6e 0a 09 20 20 20 20 23 20 57 65 27 72  then..    # We'r
27d80 65 20 74 72 79 69 6e 67 20 6c 69 6e 6b 20 61 20  e trying link a 
27d90 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 20 61  shared library a
27da0 67 61 69 6e 73 74 20 61 20 73 74 61 74 69 63 20  gainst a static 
27db0 6f 6e 65 0a 09 20 20 20 20 23 20 62 75 74 20 74  one..    # but t
27dc0 68 65 20 73 79 73 74 65 6d 20 64 6f 65 73 6e 27  he system doesn'
27dd0 74 20 73 75 70 70 6f 72 74 20 69 74 2e 0a 0a 09  t support it....
27de0 20 20 20 20 23 20 4a 75 73 74 20 70 72 69 6e 74      # Just print
27df0 20 61 20 77 61 72 6e 69 6e 67 20 61 6e 64 20 61   a warning and a
27e00 64 64 20 74 68 65 20 6c 69 62 72 61 72 79 20 74  dd the library t
27e10 6f 20 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62  o dependency_lib
27e20 73 20 73 6f 0a 09 20 20 20 20 23 20 74 68 61 74  s so..    # that
27e30 20 74 68 65 20 70 72 6f 67 72 61 6d 20 63 61 6e   the program can
27e40 20 62 65 20 6c 69 6e 6b 65 64 20 61 67 61 69 6e   be linked again
27e50 73 74 20 74 68 65 20 73 74 61 74 69 63 20 6c 69  st the static li
27e60 62 72 61 72 79 2e 0a 09 20 20 20 20 24 45 43 48  brary...    $ECH
27e70 4f 0a 09 20 20 20 20 24 45 43 48 4f 20 22 2a 2a  O..    $ECHO "**
27e80 2a 20 57 61 72 6e 69 6e 67 3a 20 54 68 69 73 20  * Warning: This 
27e90 73 79 73 74 65 6d 20 63 61 6e 20 6e 6f 74 20 6c  system can not l
27ea0 69 6e 6b 20 74 6f 20 73 74 61 74 69 63 20 6c 69  ink to static li
27eb0 62 20 61 72 63 68 69 76 65 20 24 6c 69 62 2e 22  b archive $lib."
27ec0 0a 09 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a  ..    $ECHO "***
27ed0 20 49 20 68 61 76 65 20 74 68 65 20 63 61 70 61   I have the capa
27ee0 62 69 6c 69 74 79 20 74 6f 20 6d 61 6b 65 20 74  bility to make t
27ef0 68 61 74 20 6c 69 62 72 61 72 79 20 61 75 74 6f  hat library auto
27f00 6d 61 74 69 63 61 6c 6c 79 20 6c 69 6e 6b 20 69  matically link i
27f10 6e 20 77 68 65 6e 22 0a 09 20 20 20 20 24 45 43  n when"..    $EC
27f20 48 4f 20 22 2a 2a 2a 20 79 6f 75 20 6c 69 6e 6b  HO "*** you link
27f30 20 74 6f 20 74 68 69 73 20 6c 69 62 72 61 72 79   to this library
27f40 2e 20 20 42 75 74 20 49 20 63 61 6e 20 6f 6e 6c  .  But I can onl
27f50 79 20 64 6f 20 74 68 69 73 20 69 66 20 79 6f 75  y do this if you
27f60 20 68 61 76 65 20 61 22 0a 09 20 20 20 20 24 45   have a"..    $E
27f70 43 48 4f 20 22 2a 2a 2a 20 73 68 61 72 65 64 20  CHO "*** shared 
27f80 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6c  version of the l
27f90 69 62 72 61 72 79 2c 20 77 68 69 63 68 20 79 6f  ibrary, which yo
27fa0 75 20 64 6f 20 6e 6f 74 20 61 70 70 65 61 72 20  u do not appear 
27fb0 74 6f 20 68 61 76 65 2e 22 0a 09 20 20 20 20 69  to have."..    i
27fc0 66 20 74 65 73 74 20 22 24 6d 6f 64 75 6c 65 22  f test "$module"
27fd0 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20   = yes; then..  
27fe0 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 42      $ECHO "*** B
27ff0 75 74 20 61 73 20 79 6f 75 20 74 72 79 20 74 6f  ut as you try to
28000 20 62 75 69 6c 64 20 61 20 6d 6f 64 75 6c 65 20   build a module 
28010 6c 69 62 72 61 72 79 2c 20 6c 69 62 74 6f 6f 6c  library, libtool
28020 20 77 69 6c 6c 20 73 74 69 6c 6c 20 63 72 65 61   will still crea
28030 74 65 20 22 0a 09 20 20 20 20 20 20 24 45 43 48  te "..      $ECH
28040 4f 20 22 2a 2a 2a 20 61 20 73 74 61 74 69 63 20  O "*** a static 
28050 6d 6f 64 75 6c 65 2c 20 74 68 61 74 20 73 68 6f  module, that sho
28060 75 6c 64 20 77 6f 72 6b 20 61 73 20 6c 6f 6e 67  uld work as long
28070 20 61 73 20 74 68 65 20 64 6c 6f 70 65 6e 69 6e   as the dlopenin
28080 67 20 61 70 70 6c 69 63 61 74 69 6f 6e 22 0a 09  g application"..
28090 20 20 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a        $ECHO "***
280a0 20 69 73 20 6c 69 6e 6b 65 64 20 77 69 74 68 20   is linked with 
280b0 74 68 65 20 2d 64 6c 6f 70 65 6e 20 66 6c 61 67  the -dlopen flag
280c0 20 74 6f 20 72 65 73 6f 6c 76 65 20 73 79 6d 62   to resolve symb
280d0 6f 6c 73 20 61 74 20 72 75 6e 74 69 6d 65 2e 22  ols at runtime."
280e0 0a 09 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
280f0 2d 7a 20 22 24 67 6c 6f 62 61 6c 5f 73 79 6d 62  -z "$global_symb
28100 6f 6c 5f 70 69 70 65 22 3b 20 74 68 65 6e 0a 09  ol_pipe"; then..
28110 09 24 45 43 48 4f 0a 09 09 24 45 43 48 4f 20 22  .$ECHO...$ECHO "
28120 2a 2a 2a 20 48 6f 77 65 76 65 72 2c 20 74 68 69  *** However, thi
28130 73 20 77 6f 75 6c 64 20 6f 6e 6c 79 20 77 6f 72  s would only wor
28140 6b 20 69 66 20 6c 69 62 74 6f 6f 6c 20 77 61 73  k if libtool was
28150 20 61 62 6c 65 20 74 6f 20 65 78 74 72 61 63 74   able to extract
28160 20 73 79 6d 62 6f 6c 22 0a 09 09 24 45 43 48 4f   symbol"...$ECHO
28170 20 22 2a 2a 2a 20 6c 69 73 74 73 20 66 72 6f 6d   "*** lists from
28180 20 61 20 70 72 6f 67 72 61 6d 2c 20 75 73 69 6e   a program, usin
28190 67 20 5c 60 6e 6d 27 20 6f 72 20 65 71 75 69 76  g \`nm' or equiv
281a0 61 6c 65 6e 74 2c 20 62 75 74 20 6c 69 62 74 6f  alent, but libto
281b0 6f 6c 20 63 6f 75 6c 64 22 0a 09 09 24 45 43 48  ol could"...$ECH
281c0 4f 20 22 2a 2a 2a 20 6e 6f 74 20 66 69 6e 64 20  O "*** not find 
281d0 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2e 20  such a program. 
281e0 20 53 6f 2c 20 74 68 69 73 20 6d 6f 64 75 6c 65   So, this module
281f0 20 69 73 20 70 72 6f 62 61 62 6c 79 20 75 73 65   is probably use
28200 6c 65 73 73 2e 22 0a 09 09 24 45 43 48 4f 20 22  less."...$ECHO "
28210 2a 2a 2a 20 5c 60 6e 6d 27 20 66 72 6f 6d 20 47  *** \`nm' from G
28220 4e 55 20 62 69 6e 75 74 69 6c 73 20 61 6e 64 20  NU binutils and 
28230 61 20 66 75 6c 6c 20 72 65 62 75 69 6c 64 20 6d  a full rebuild m
28240 61 79 20 68 65 6c 70 2e 22 0a 09 20 20 20 20 20  ay help."..     
28250 20 66 69 0a 09 20 20 20 20 20 20 69 66 20 74 65   fi..      if te
28260 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c 64 5f 6c  st "$build_old_l
28270 69 62 73 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a  ibs" = no; then.
28280 09 09 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f  ..build_libtool_
28290 6c 69 62 73 3d 6d 6f 64 75 6c 65 0a 09 09 62 75  libs=module...bu
282a0 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 3d 79 65 73  ild_old_libs=yes
282b0 0a 09 20 20 20 20 20 20 65 6c 73 65 0a 09 09 62  ..      else...b
282c0 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
282d0 73 3d 6e 6f 0a 09 20 20 20 20 20 20 66 69 0a 09  s=no..      fi..
282e0 20 20 20 20 66 69 0a 09 20 20 65 6c 73 65 0a 09      fi..  else..
282f0 20 20 20 20 64 65 70 6c 69 62 73 3d 22 24 64 69      deplibs="$di
28300 72 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 20 24  r/$old_library $
28310 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 6c 69  deplibs"..    li
28320 6e 6b 5f 73 74 61 74 69 63 3d 79 65 73 0a 09 20  nk_static=yes.. 
28330 20 66 69 0a 09 66 69 20 23 20 6c 69 6e 6b 20 73   fi..fi # link s
28340 68 61 72 65 64 2f 73 74 61 74 69 63 20 6c 69 62  hared/static lib
28350 72 61 72 79 3f 0a 0a 09 69 66 20 74 65 73 74 20  rary?...if test 
28360 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 6c 69  "$linkmode" = li
28370 62 3b 20 74 68 65 6e 0a 09 20 20 69 66 20 74 65  b; then..  if te
28380 73 74 20 2d 6e 20 22 24 64 65 70 65 6e 64 65 6e  st -n "$dependen
28390 63 79 5f 6c 69 62 73 22 20 26 26 0a 09 20 20 20  cy_libs" &&..   
283a0 20 20 7b 20 74 65 73 74 20 22 24 68 61 72 64 63    { test "$hardc
283b0 6f 64 65 5f 69 6e 74 6f 5f 6c 69 62 73 22 20 21  ode_into_libs" !
283c0 3d 20 79 65 73 20 7c 7c 0a 09 20 20 20 20 20 20  = yes ||..      
283d0 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c   test "$build_ol
283e0 64 5f 6c 69 62 73 22 20 3d 20 79 65 73 20 7c 7c  d_libs" = yes ||
283f0 0a 09 20 20 20 20 20 20 20 74 65 73 74 20 22 24  ..       test "$
28400 6c 69 6e 6b 5f 73 74 61 74 69 63 22 20 3d 20 79  link_static" = y
28410 65 73 3b 20 7d 3b 20 74 68 65 6e 0a 09 20 20 20  es; }; then..   
28420 20 23 20 45 78 74 72 61 63 74 20 2d 52 20 66 72   # Extract -R fr
28430 6f 6d 20 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69  om dependency_li
28440 62 73 0a 09 20 20 20 20 74 65 6d 70 5f 64 65 70  bs..    temp_dep
28450 6c 69 62 73 3d 0a 09 20 20 20 20 66 6f 72 20 6c  libs=..    for l
28460 69 62 64 69 72 20 69 6e 20 24 64 65 70 65 6e 64  ibdir in $depend
28470 65 6e 63 79 5f 6c 69 62 73 3b 20 64 6f 0a 09 20  ency_libs; do.. 
28480 20 20 20 20 20 63 61 73 65 20 24 6c 69 62 64 69       case $libdi
28490 72 20 69 6e 0a 09 20 20 20 20 20 20 2d 52 2a 29  r in..      -R*)
284a0 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20   func_stripname 
284b0 27 2d 52 27 20 27 27 20 22 24 6c 69 62 64 69 72  '-R' '' "$libdir
284c0 22 0a 09 20 20 20 20 20 20 20 20 20 20 20 74 65  "..           te
284d0 6d 70 5f 78 72 70 61 74 68 3d 24 66 75 6e 63 5f  mp_xrpath=$func_
284e0 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
284f0 0a 09 09 20 20 20 63 61 73 65 20 22 20 24 78 72  ...   case " $xr
28500 70 61 74 68 20 22 20 69 6e 0a 09 09 20 20 20 2a  path " in...   *
28510 22 20 24 74 65 6d 70 5f 78 72 70 61 74 68 20 22  " $temp_xrpath "
28520 2a 29 20 3b 3b 0a 09 09 20 20 20 2a 29 20 78 72  *) ;;...   *) xr
28530 70 61 74 68 3d 22 24 78 72 70 61 74 68 20 24 74  path="$xrpath $t
28540 65 6d 70 5f 78 72 70 61 74 68 22 3b 3b 0a 09 09  emp_xrpath";;...
28550 20 20 20 65 73 61 63 3b 3b 0a 09 20 20 20 20 20     esac;;..     
28560 20 2a 29 20 74 65 6d 70 5f 64 65 70 6c 69 62 73   *) temp_deplibs
28570 3d 22 24 74 65 6d 70 5f 64 65 70 6c 69 62 73 20  ="$temp_deplibs 
28580 24 6c 69 62 64 69 72 22 3b 3b 0a 09 20 20 20 20  $libdir";;..    
28590 20 20 65 73 61 63 0a 09 20 20 20 20 64 6f 6e 65    esac..    done
285a0 0a 09 20 20 20 20 64 65 70 65 6e 64 65 6e 63 79  ..    dependency
285b0 5f 6c 69 62 73 3d 22 24 74 65 6d 70 5f 64 65 70  _libs="$temp_dep
285c0 6c 69 62 73 22 0a 09 20 20 66 69 0a 0a 09 20 20  libs"..  fi...  
285d0 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  newlib_search_pa
285e0 74 68 3d 22 24 6e 65 77 6c 69 62 5f 73 65 61 72  th="$newlib_sear
285f0 63 68 5f 70 61 74 68 20 24 61 62 73 64 69 72 22  ch_path $absdir"
28600 0a 09 20 20 23 20 4c 69 6e 6b 20 61 67 61 69 6e  ..  # Link again
28610 73 74 20 74 68 69 73 20 6c 69 62 72 61 72 79 0a  st this library.
28620 09 20 20 74 65 73 74 20 22 24 6c 69 6e 6b 5f 73  .  test "$link_s
28630 74 61 74 69 63 22 20 3d 20 6e 6f 20 26 26 20 6e  tatic" = no && n
28640 65 77 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62  ewdependency_lib
28650 73 3d 22 24 61 62 73 5f 6c 61 64 69 72 2f 24 6c  s="$abs_ladir/$l
28660 61 6e 61 6d 65 20 24 6e 65 77 64 65 70 65 6e 64  aname $newdepend
28670 65 6e 63 79 5f 6c 69 62 73 22 0a 09 20 20 23 20  ency_libs"..  # 
28680 2e 2e 2e 20 61 6e 64 20 69 74 73 20 64 65 70 65  ... and its depe
28690 6e 64 65 6e 63 79 5f 6c 69 62 73 0a 09 20 20 74  ndency_libs..  t
286a0 6d 70 5f 6c 69 62 73 3d 0a 09 20 20 66 6f 72 20  mp_libs=..  for 
286b0 64 65 70 6c 69 62 20 69 6e 20 24 64 65 70 65 6e  deplib in $depen
286c0 64 65 6e 63 79 5f 6c 69 62 73 3b 20 64 6f 0a 09  dency_libs; do..
286d0 20 20 20 20 6e 65 77 64 65 70 65 6e 64 65 6e 63      newdependenc
286e0 79 5f 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20  y_libs="$deplib 
286f0 24 6e 65 77 64 65 70 65 6e 64 65 6e 63 79 5f 6c  $newdependency_l
28700 69 62 73 22 0a 09 20 20 20 20 69 66 20 24 6f 70  ibs"..    if $op
28710 74 5f 64 75 70 6c 69 63 61 74 65 5f 64 65 70 73  t_duplicate_deps
28720 20 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63   ; then..      c
28730 61 73 65 20 22 24 74 6d 70 5f 6c 69 62 73 20 22  ase "$tmp_libs "
28740 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24 64   in..      *" $d
28750 65 70 6c 69 62 20 22 2a 29 20 73 70 65 63 69 61  eplib "*) specia
28760 6c 64 65 70 6c 69 62 73 3d 22 24 73 70 65 63 69  ldeplibs="$speci
28770 61 6c 64 65 70 6c 69 62 73 20 24 64 65 70 6c 69  aldeplibs $depli
28780 62 22 20 3b 3b 0a 09 20 20 20 20 20 20 65 73 61  b" ;;..      esa
28790 63 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 74  c..    fi..    t
287a0 6d 70 5f 6c 69 62 73 3d 22 24 74 6d 70 5f 6c 69  mp_libs="$tmp_li
287b0 62 73 20 24 64 65 70 6c 69 62 22 0a 09 20 20 64  bs $deplib"..  d
287c0 6f 6e 65 0a 0a 09 20 20 69 66 20 74 65 73 74 20  one...  if test 
287d0 22 24 6c 69 6e 6b 5f 61 6c 6c 5f 64 65 70 6c 69  "$link_all_depli
287e0 62 73 22 20 21 3d 20 6e 6f 3b 20 74 68 65 6e 0a  bs" != no; then.
287f0 09 20 20 20 20 23 20 41 64 64 20 74 68 65 20 73  .    # Add the s
28800 65 61 72 63 68 20 70 61 74 68 73 20 6f 66 20 61  earch paths of a
28810 6c 6c 20 64 65 70 65 6e 64 65 6e 63 79 20 6c 69  ll dependency li
28820 62 72 61 72 69 65 73 0a 09 20 20 20 20 66 6f 72  braries..    for
28830 20 64 65 70 6c 69 62 20 69 6e 20 24 64 65 70 65   deplib in $depe
28840 6e 64 65 6e 63 79 5f 6c 69 62 73 3b 20 64 6f 0a  ndency_libs; do.
28850 09 20 20 20 20 20 20 63 61 73 65 20 24 64 65 70  .      case $dep
28860 6c 69 62 20 69 6e 0a 09 20 20 20 20 20 20 2d 4c  lib in..      -L
28870 2a 29 20 70 61 74 68 3d 22 24 64 65 70 6c 69 62  *) path="$deplib
28880 22 20 3b 3b 0a 09 20 20 20 20 20 20 2a 2e 6c 61  " ;;..      *.la
28890 29 0a 09 20 20 20 20 20 20 20 20 66 75 6e 63 5f  )..        func_
288a0 64 69 72 6e 61 6d 65 20 22 24 64 65 70 6c 69 62  dirname "$deplib
288b0 22 20 22 22 20 22 2e 22 0a 09 09 64 69 72 3d 22  " "" "."...dir="
288c0 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65  $func_dirname_re
288d0 73 75 6c 74 22 0a 09 09 23 20 57 65 20 6e 65 65  sult"...# We nee
288e0 64 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 70 61  d an absolute pa
288f0 74 68 2e 0a 09 09 63 61 73 65 20 24 64 69 72 20  th....case $dir 
28900 69 6e 0a 09 09 5b 5c 5c 2f 5d 2a 20 7c 20 5b 41  in...[\\/]* | [A
28910 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29 20 61  -Za-z]:[\\/]*) a
28920 62 73 64 69 72 3d 22 24 64 69 72 22 20 3b 3b 0a  bsdir="$dir" ;;.
28930 09 09 2a 29 0a 09 09 20 20 61 62 73 64 69 72 3d  ..*)...  absdir=
28940 60 63 64 20 22 24 64 69 72 22 20 26 26 20 70 77  `cd "$dir" && pw
28950 64 60 0a 09 09 20 20 69 66 20 74 65 73 74 20 2d  d`...  if test -
28960 7a 20 22 24 61 62 73 64 69 72 22 3b 20 74 68 65  z "$absdir"; the
28970 6e 0a 09 09 20 20 20 20 66 75 6e 63 5f 77 61 72  n...    func_war
28980 6e 69 6e 67 20 22 63 61 6e 6e 6f 74 20 64 65 74  ning "cannot det
28990 65 72 6d 69 6e 65 20 61 62 73 6f 6c 75 74 65 20  ermine absolute 
289a0 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 20 6f  directory name o
289b0 66 20 5c 60 24 64 69 72 27 22 0a 09 09 20 20 20  f \`$dir'"...   
289c0 20 61 62 73 64 69 72 3d 22 24 64 69 72 22 0a 09   absdir="$dir"..
289d0 09 20 20 66 69 0a 09 09 20 20 3b 3b 0a 09 09 65  .  fi...  ;;...e
289e0 73 61 63 0a 09 09 69 66 20 24 47 52 45 50 20 22  sac...if $GREP "
289f0 5e 69 6e 73 74 61 6c 6c 65 64 3d 6e 6f 22 20 24  ^installed=no" $
28a00 64 65 70 6c 69 62 20 3e 20 2f 64 65 76 2f 6e 75  deplib > /dev/nu
28a10 6c 6c 3b 20 74 68 65 6e 0a 09 09 63 61 73 65 20  ll; then...case 
28a20 24 68 6f 73 74 20 69 6e 0a 09 09 2a 2d 2a 2d 64  $host in...*-*-d
28a30 61 72 77 69 6e 2a 29 0a 09 09 20 20 64 65 70 64  arwin*)...  depd
28a40 65 70 6c 3d 0a 09 09 20 20 65 76 61 6c 20 64 65  epl=...  eval de
28a50 70 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 3d 60  plibrary_names=`
28a60 24 7b 53 45 44 7d 20 2d 6e 20 2d 65 20 27 73 2f  ${SED} -n -e 's/
28a70 5e 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 3d 5c  ^library_names=\
28a80 28 2e 2a 5c 29 24 2f 5c 31 2f 70 27 20 24 64 65  (.*\)$/\1/p' $de
28a90 70 6c 69 62 60 0a 09 09 20 20 69 66 20 74 65 73  plib`...  if tes
28aa0 74 20 2d 6e 20 22 24 64 65 70 6c 69 62 72 61 72  t -n "$deplibrar
28ab0 79 5f 6e 61 6d 65 73 22 20 3b 20 74 68 65 6e 0a  y_names" ; then.
28ac0 09 09 20 20 20 20 66 6f 72 20 74 6d 70 20 69 6e  ..    for tmp in
28ad0 20 24 64 65 70 6c 69 62 72 61 72 79 5f 6e 61 6d   $deplibrary_nam
28ae0 65 73 20 3b 20 64 6f 0a 09 09 20 20 20 20 20 20  es ; do...      
28af0 64 65 70 64 65 70 6c 3d 24 74 6d 70 0a 09 09 20  depdepl=$tmp... 
28b00 20 20 20 64 6f 6e 65 0a 09 09 20 20 20 20 69 66     done...    if
28b10 20 74 65 73 74 20 2d 66 20 22 24 61 62 73 64 69   test -f "$absdi
28b20 72 2f 24 6f 62 6a 64 69 72 2f 24 64 65 70 64 65  r/$objdir/$depde
28b30 70 6c 22 20 3b 20 74 68 65 6e 0a 09 09 20 20 20  pl" ; then...   
28b40 20 20 20 64 65 70 64 65 70 6c 3d 22 24 61 62 73     depdepl="$abs
28b50 64 69 72 2f 24 6f 62 6a 64 69 72 2f 24 64 65 70  dir/$objdir/$dep
28b60 64 65 70 6c 22 0a 09 09 20 20 20 20 20 20 64 61  depl"...      da
28b70 72 77 69 6e 5f 69 6e 73 74 61 6c 6c 5f 6e 61 6d  rwin_install_nam
28b80 65 3d 60 24 7b 4f 54 4f 4f 4c 7d 20 2d 4c 20 24  e=`${OTOOL} -L $
28b90 64 65 70 64 65 70 6c 20 7c 20 61 77 6b 20 27 7b  depdepl | awk '{
28ba0 69 66 20 28 4e 52 20 3d 3d 20 32 29 20 7b 70 72  if (NR == 2) {pr
28bb0 69 6e 74 20 24 31 3b 65 78 69 74 7d 7d 27 60 0a  int $1;exit}}'`.
28bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
28bd0 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 7a        if test -z
28be0 20 22 24 64 61 72 77 69 6e 5f 69 6e 73 74 61 6c   "$darwin_instal
28bf0 6c 5f 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 20 20  l_name"; then.  
28c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
28c10 20 20 20 20 20 20 20 20 64 61 72 77 69 6e 5f 69          darwin_i
28c20 6e 73 74 61 6c 6c 5f 6e 61 6d 65 3d 60 24 7b 4f  nstall_name=`${O
28c30 54 4f 4f 4c 36 34 7d 20 2d 4c 20 24 64 65 70 64  TOOL64} -L $depd
28c40 65 70 6c 20 20 7c 20 61 77 6b 20 27 7b 69 66 20  epl  | awk '{if 
28c50 28 4e 52 20 3d 3d 20 32 29 20 7b 70 72 69 6e 74  (NR == 2) {print
28c60 20 24 31 3b 65 78 69 74 7d 7d 27 60 0a 20 20 20   $1;exit}}'`.   
28c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
28c80 20 20 20 66 69 0a 09 09 20 20 20 20 20 20 63 6f     fi...      co
28c90 6d 70 69 6c 65 72 5f 66 6c 61 67 73 3d 22 24 63  mpiler_flags="$c
28ca0 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20 24 7b  ompiler_flags ${
28cb0 77 6c 7d 2d 64 79 6c 69 62 5f 66 69 6c 65 20 24  wl}-dylib_file $
28cc0 7b 77 6c 7d 24 7b 64 61 72 77 69 6e 5f 69 6e 73  {wl}${darwin_ins
28cd0 74 61 6c 6c 5f 6e 61 6d 65 7d 3a 24 7b 64 65 70  tall_name}:${dep
28ce0 64 65 70 6c 7d 22 0a 09 09 20 20 20 20 20 20 6c  depl}"...      l
28cf0 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 22 24 6c 69  inker_flags="$li
28d00 6e 6b 65 72 5f 66 6c 61 67 73 20 2d 64 79 6c 69  nker_flags -dyli
28d10 62 5f 66 69 6c 65 20 24 7b 64 61 72 77 69 6e 5f  b_file ${darwin_
28d20 69 6e 73 74 61 6c 6c 5f 6e 61 6d 65 7d 3a 24 7b  install_name}:${
28d30 64 65 70 64 65 70 6c 7d 22 0a 09 09 20 20 20 20  depdepl}"...    
28d40 20 20 70 61 74 68 3d 0a 09 09 20 20 20 20 66 69    path=...    fi
28d50 0a 09 09 20 20 66 69 0a 09 09 20 20 3b 3b 0a 09  ...  fi...  ;;..
28d60 09 2a 29 0a 09 09 20 20 70 61 74 68 3d 22 2d 4c  .*)...  path="-L
28d70 24 61 62 73 64 69 72 2f 24 6f 62 6a 64 69 72 22  $absdir/$objdir"
28d80 0a 09 09 20 20 3b 3b 0a 09 09 65 73 61 63 0a 09  ...  ;;...esac..
28d90 09 65 6c 73 65 0a 09 09 20 20 65 76 61 6c 20 6c  .else...  eval l
28da0 69 62 64 69 72 3d 60 24 7b 53 45 44 7d 20 2d 6e  ibdir=`${SED} -n
28db0 20 2d 65 20 27 73 2f 5e 6c 69 62 64 69 72 3d 5c   -e 's/^libdir=\
28dc0 28 2e 2a 5c 29 24 2f 5c 31 2f 70 27 20 24 64 65  (.*\)$/\1/p' $de
28dd0 70 6c 69 62 60 0a 09 09 20 20 74 65 73 74 20 2d  plib`...  test -
28de0 7a 20 22 24 6c 69 62 64 69 72 22 20 26 26 20 5c  z "$libdir" && \
28df0 0a 09 09 20 20 20 20 66 75 6e 63 5f 66 61 74 61  ...    func_fata
28e00 6c 5f 65 72 72 6f 72 20 22 5c 60 24 64 65 70 6c  l_error "\`$depl
28e10 69 62 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c  ib' is not a val
28e20 69 64 20 6c 69 62 74 6f 6f 6c 20 61 72 63 68 69  id libtool archi
28e30 76 65 22 0a 09 09 20 20 74 65 73 74 20 22 24 61  ve"...  test "$a
28e40 62 73 64 69 72 22 20 21 3d 20 22 24 6c 69 62 64  bsdir" != "$libd
28e50 69 72 22 20 26 26 20 5c 0a 09 09 20 20 20 20 66  ir" && \...    f
28e60 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 24  unc_warning "\`$
28e70 64 65 70 6c 69 62 27 20 73 65 65 6d 73 20 74 6f  deplib' seems to
28e80 20 62 65 20 6d 6f 76 65 64 22 0a 0a 09 09 20 20   be moved"....  
28e90 70 61 74 68 3d 22 2d 4c 24 61 62 73 64 69 72 22  path="-L$absdir"
28ea0 0a 09 09 66 69 0a 09 09 3b 3b 0a 09 20 20 20 20  ...fi...;;..    
28eb0 20 20 65 73 61 63 0a 09 20 20 20 20 20 20 63 61    esac..      ca
28ec0 73 65 20 22 20 24 64 65 70 6c 69 62 73 20 22 20  se " $deplibs " 
28ed0 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24 70 61  in..      *" $pa
28ee0 74 68 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20 20  th "*) ;;..     
28ef0 20 2a 29 20 64 65 70 6c 69 62 73 3d 22 24 70 61   *) deplibs="$pa
28f00 74 68 20 24 64 65 70 6c 69 62 73 22 20 3b 3b 0a  th $deplibs" ;;.
28f10 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20 20  .      esac..   
28f20 20 64 6f 6e 65 0a 09 20 20 66 69 20 23 20 6c 69   done..  fi # li
28f30 6e 6b 5f 61 6c 6c 5f 64 65 70 6c 69 62 73 20 21  nk_all_deplibs !
28f40 3d 20 6e 6f 0a 09 66 69 20 23 20 6c 69 6e 6b 6d  = no..fi # linkm
28f50 6f 64 65 20 3d 20 6c 69 62 0a 20 20 20 20 20 20  ode = lib.      
28f60 64 6f 6e 65 20 23 20 66 6f 72 20 64 65 70 6c 69  done # for depli
28f70 62 20 69 6e 20 24 6c 69 62 73 0a 20 20 20 20 20  b in $libs.     
28f80 20 69 66 20 74 65 73 74 20 22 24 70 61 73 73 22   if test "$pass"
28f90 20 3d 20 6c 69 6e 6b 3b 20 74 68 65 6e 0a 09 69   = link; then..i
28fa0 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64  f test "$linkmod
28fb0 65 22 20 3d 20 22 70 72 6f 67 22 3b 20 74 68 65  e" = "prog"; the
28fc0 6e 0a 09 20 20 63 6f 6d 70 69 6c 65 5f 64 65 70  n..  compile_dep
28fd0 6c 69 62 73 3d 22 24 6e 65 77 5f 69 6e 68 65 72  libs="$new_inher
28fe0 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67  ited_linker_flag
28ff0 73 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69  s $compile_depli
29000 62 73 22 0a 09 20 20 66 69 6e 61 6c 69 7a 65 5f  bs"..  finalize_
29010 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 5f 69 6e  deplibs="$new_in
29020 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66  herited_linker_f
29030 6c 61 67 73 20 24 66 69 6e 61 6c 69 7a 65 5f 64  lags $finalize_d
29040 65 70 6c 69 62 73 22 0a 09 65 6c 73 65 0a 09 20  eplibs"..else.. 
29050 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 3d   compiler_flags=
29060 22 24 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73  "$compiler_flags
29070 20 22 60 24 45 43 48 4f 20 22 58 20 24 6e 65 77   "`$ECHO "X $new
29080 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65  _inherited_linke
29090 72 5f 66 6c 61 67 73 22 20 7c 20 24 58 73 65 64  r_flags" | $Xsed
290a0 20 2d 65 20 27 73 25 20 5c 28 5b 5e 20 24 5d 2a   -e 's% \([^ $]*
290b0 5c 29 2e 6c 74 66 72 61 6d 65 77 6f 72 6b 25 20  \).ltframework% 
290c0 2d 66 72 61 6d 65 77 6f 72 6b 20 5c 31 25 67 27  -framework \1%g'
290d0 60 0a 09 66 69 0a 20 20 20 20 20 20 66 69 0a 20  `..fi.      fi. 
290e0 20 20 20 20 20 64 65 70 65 6e 64 65 6e 63 79 5f       dependency_
290f0 6c 69 62 73 3d 22 24 6e 65 77 64 65 70 65 6e 64  libs="$newdepend
29100 65 6e 63 79 5f 6c 69 62 73 22 0a 20 20 20 20 20  ency_libs".     
29110 20 69 66 20 74 65 73 74 20 22 24 70 61 73 73 22   if test "$pass"
29120 20 3d 20 64 6c 70 72 65 6f 70 65 6e 3b 20 74 68   = dlpreopen; th
29130 65 6e 0a 09 23 20 4c 69 6e 6b 20 74 68 65 20 64  en..# Link the d
29140 6c 70 72 65 6f 70 65 6e 65 64 20 6c 69 62 72 61  lpreopened libra
29150 72 69 65 73 20 62 65 66 6f 72 65 20 6f 74 68 65  ries before othe
29160 72 20 6c 69 62 72 61 72 69 65 73 0a 09 66 6f 72  r libraries..for
29170 20 64 65 70 6c 69 62 20 69 6e 20 24 73 61 76 65   deplib in $save
29180 5f 64 65 70 6c 69 62 73 3b 20 64 6f 0a 09 20 20  _deplibs; do..  
29190 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62  deplibs="$deplib
291a0 20 24 64 65 70 6c 69 62 73 22 0a 09 64 6f 6e 65   $deplibs"..done
291b0 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20  .      fi.      
291c0 69 66 20 74 65 73 74 20 22 24 70 61 73 73 22 20  if test "$pass" 
291d0 21 3d 20 64 6c 6f 70 65 6e 3b 20 74 68 65 6e 0a  != dlopen; then.
291e0 09 69 66 20 74 65 73 74 20 22 24 70 61 73 73 22  .if test "$pass"
291f0 20 21 3d 20 63 6f 6e 76 3b 20 74 68 65 6e 0a 09   != conv; then..
29200 20 20 23 20 4d 61 6b 65 20 73 75 72 65 20 6c 69    # Make sure li
29210 62 5f 73 65 61 72 63 68 5f 70 61 74 68 20 63 6f  b_search_path co
29220 6e 74 61 69 6e 73 20 6f 6e 6c 79 20 75 6e 69 71  ntains only uniq
29230 75 65 20 64 69 72 65 63 74 6f 72 69 65 73 2e 0a  ue directories..
29240 09 20 20 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  .  lib_search_pa
29250 74 68 3d 0a 09 20 20 66 6f 72 20 64 69 72 20 69  th=..  for dir i
29260 6e 20 24 6e 65 77 6c 69 62 5f 73 65 61 72 63 68  n $newlib_search
29270 5f 70 61 74 68 3b 20 64 6f 0a 09 20 20 20 20 63  _path; do..    c
29280 61 73 65 20 22 24 6c 69 62 5f 73 65 61 72 63 68  ase "$lib_search
29290 5f 70 61 74 68 20 22 20 69 6e 0a 09 20 20 20 20  _path " in..    
292a0 2a 22 20 24 64 69 72 20 22 2a 29 20 3b 3b 0a 09  *" $dir "*) ;;..
292b0 20 20 20 20 2a 29 20 6c 69 62 5f 73 65 61 72 63      *) lib_searc
292c0 68 5f 70 61 74 68 3d 22 24 6c 69 62 5f 73 65 61  h_path="$lib_sea
292d0 72 63 68 5f 70 61 74 68 20 24 64 69 72 22 20 3b  rch_path $dir" ;
292e0 3b 0a 09 20 20 20 20 65 73 61 63 0a 09 20 20 64  ;..    esac..  d
292f0 6f 6e 65 0a 09 20 20 6e 65 77 6c 69 62 5f 73 65  one..  newlib_se
29300 61 72 63 68 5f 70 61 74 68 3d 0a 09 66 69 0a 0a  arch_path=..fi..
29310 09 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d  .if test "$linkm
29320 6f 64 65 2c 24 70 61 73 73 22 20 21 3d 20 22 70  ode,$pass" != "p
29330 72 6f 67 2c 6c 69 6e 6b 22 3b 20 74 68 65 6e 0a  rog,link"; then.
29340 09 20 20 76 61 72 73 3d 22 64 65 70 6c 69 62 73  .  vars="deplibs
29350 22 0a 09 65 6c 73 65 0a 09 20 20 76 61 72 73 3d  "..else..  vars=
29360 22 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73  "compile_deplibs
29370 20 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62   finalize_deplib
29380 73 22 0a 09 66 69 0a 09 66 6f 72 20 76 61 72 20  s"..fi..for var 
29390 69 6e 20 24 76 61 72 73 20 64 65 70 65 6e 64 65  in $vars depende
293a0 6e 63 79 5f 6c 69 62 73 3b 20 64 6f 0a 09 20 20  ncy_libs; do..  
293b0 23 20 41 64 64 20 6c 69 62 72 61 72 69 65 73 20  # Add libraries 
293c0 74 6f 20 24 76 61 72 20 69 6e 20 72 65 76 65 72  to $var in rever
293d0 73 65 20 6f 72 64 65 72 0a 09 20 20 65 76 61 6c  se order..  eval
293e0 20 74 6d 70 5f 6c 69 62 73 3d 5c 22 5c 24 24 76   tmp_libs=\"\$$v
293f0 61 72 5c 22 0a 09 20 20 6e 65 77 5f 6c 69 62 73  ar\"..  new_libs
29400 3d 0a 09 20 20 66 6f 72 20 64 65 70 6c 69 62 20  =..  for deplib 
29410 69 6e 20 24 74 6d 70 5f 6c 69 62 73 3b 20 64 6f  in $tmp_libs; do
29420 0a 09 20 20 20 20 23 20 46 49 58 4d 45 3a 20 50  ..    # FIXME: P
29430 65 64 61 6e 74 69 63 61 6c 6c 79 2c 20 74 68 69  edantically, thi
29440 73 20 69 73 20 74 68 65 20 72 69 67 68 74 20 74  s is the right t
29450 68 69 6e 67 20 74 6f 20 64 6f 2c 20 73 6f 0a 09  hing to do, so..
29460 20 20 20 20 23 20 20 20 20 20 20 20 20 74 68 61      #        tha
29470 74 20 73 6f 6d 65 20 6e 61 73 74 79 20 64 65 70  t some nasty dep
29480 65 6e 64 65 6e 63 79 20 6c 6f 6f 70 20 69 73 6e  endency loop isn
29490 27 74 20 61 63 63 69 64 65 6e 74 61 6c 6c 79 0a  't accidentally.
294a0 09 20 20 20 20 23 20 20 20 20 20 20 20 20 62 72  .    #        br
294b0 6f 6b 65 6e 3a 0a 09 20 20 20 20 23 6e 65 77 5f  oken:..    #new_
294c0 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 6e  libs="$deplib $n
294d0 65 77 5f 6c 69 62 73 22 0a 09 20 20 20 20 23 20  ew_libs"..    # 
294e0 50 72 61 67 6d 61 74 69 63 61 6c 6c 79 2c 20 74  Pragmatically, t
294f0 68 69 73 20 73 65 65 6d 73 20 74 6f 20 63 61 75  his seems to cau
29500 73 65 20 76 65 72 79 20 66 65 77 20 70 72 6f 62  se very few prob
29510 6c 65 6d 73 20 69 6e 0a 09 20 20 20 20 23 20 70  lems in..    # p
29520 72 61 63 74 69 63 65 3a 0a 09 20 20 20 20 63 61  ractice:..    ca
29530 73 65 20 24 64 65 70 6c 69 62 20 69 6e 0a 09 20  se $deplib in.. 
29540 20 20 20 2d 4c 2a 29 20 6e 65 77 5f 6c 69 62 73     -L*) new_libs
29550 3d 22 24 64 65 70 6c 69 62 20 24 6e 65 77 5f 6c  ="$deplib $new_l
29560 69 62 73 22 20 3b 3b 0a 09 20 20 20 20 2d 52 2a  ibs" ;;..    -R*
29570 29 20 3b 3b 0a 09 20 20 20 20 2a 29 0a 09 20 20  ) ;;..    *)..  
29580 20 20 20 20 23 20 41 6e 64 20 68 65 72 65 20 69      # And here i
29590 73 20 74 68 65 20 72 65 61 73 6f 6e 3a 20 77 68  s the reason: wh
295a0 65 6e 20 61 20 6c 69 62 72 61 72 79 20 61 70 70  en a library app
295b0 65 61 72 73 20 6d 6f 72 65 0a 09 20 20 20 20 20  ears more..     
295c0 20 23 20 74 68 61 6e 20 6f 6e 63 65 20 61 73 20   # than once as 
295d0 61 6e 20 65 78 70 6c 69 63 69 74 20 64 65 70 65  an explicit depe
295e0 6e 64 65 6e 63 65 20 6f 66 20 61 20 6c 69 62 72  ndence of a libr
295f0 61 72 79 2c 20 6f 72 0a 09 20 20 20 20 20 20 23  ary, or..      #
29600 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 6c   is implicitly l
29610 69 6e 6b 65 64 20 69 6e 20 6d 6f 72 65 20 74 68  inked in more th
29620 61 6e 20 6f 6e 63 65 20 62 79 20 74 68 65 0a 09  an once by the..
29630 20 20 20 20 20 20 23 20 63 6f 6d 70 69 6c 65 72        # compiler
29640 2c 20 69 74 20 69 73 20 63 6f 6e 73 69 64 65 72  , it is consider
29650 65 64 20 73 70 65 63 69 61 6c 2c 20 61 6e 64 20  ed special, and 
29660 6d 75 6c 74 69 70 6c 65 0a 09 20 20 20 20 20 20  multiple..      
29670 23 20 6f 63 63 75 72 72 65 6e 63 65 73 20 74 68  # occurrences th
29680 65 72 65 6f 66 20 61 72 65 20 6e 6f 74 20 72 65  ereof are not re
29690 6d 6f 76 65 64 2e 20 20 43 6f 6d 70 61 72 65 20  moved.  Compare 
296a0 74 68 69 73 0a 09 20 20 20 20 20 20 23 20 77 69  this..      # wi
296b0 74 68 20 68 61 76 69 6e 67 20 74 68 65 20 73 61  th having the sa
296c0 6d 65 20 6c 69 62 72 61 72 79 20 62 65 69 6e 67  me library being
296d0 20 6c 69 73 74 65 64 20 61 73 20 61 0a 09 20 20   listed as a..  
296e0 20 20 20 20 23 20 64 65 70 65 6e 64 65 6e 63 79      # dependency
296f0 20 6f 66 20 6d 75 6c 74 69 70 6c 65 20 6f 74 68   of multiple oth
29700 65 72 20 6c 69 62 72 61 72 69 65 73 3a 20 69 6e  er libraries: in
29710 20 74 68 69 73 20 63 61 73 65 2c 0a 09 20 20 20   this case,..   
29720 20 20 20 23 20 77 65 20 6b 6e 6f 77 20 28 70 65     # we know (pe
29730 64 61 6e 74 69 63 61 6c 6c 79 2c 20 77 65 20 61  dantically, we a
29740 73 73 75 6d 65 29 20 74 68 65 20 6c 69 62 72 61  ssume) the libra
29750 72 79 20 64 6f 65 73 20 6e 6f 74 0a 09 20 20 20  ry does not..   
29760 20 20 20 23 20 6e 65 65 64 20 74 6f 20 62 65 20     # need to be 
29770 6c 69 73 74 65 64 20 6d 6f 72 65 20 74 68 61 6e  listed more than
29780 20 6f 6e 63 65 2c 20 73 6f 20 77 65 20 6b 65 65   once, so we kee
29790 70 20 6f 6e 6c 79 20 74 68 65 0a 09 20 20 20 20  p only the..    
297a0 20 20 23 20 6c 61 73 74 20 63 6f 70 79 2e 20 20    # last copy.  
297b0 54 68 69 73 20 69 73 20 6e 6f 74 20 61 6c 77 61  This is not alwa
297c0 79 73 20 72 69 67 68 74 2c 20 62 75 74 20 69 74  ys right, but it
297d0 20 69 73 20 72 61 72 65 0a 09 20 20 20 20 20 20   is rare..      
297e0 23 20 65 6e 6f 75 67 68 20 74 68 61 74 20 77 65  # enough that we
297f0 20 72 65 71 75 69 72 65 20 75 73 65 72 73 20 74   require users t
29800 68 61 74 20 72 65 61 6c 6c 79 20 6d 65 61 6e 20  hat really mean 
29810 74 6f 20 70 6c 61 79 0a 09 20 20 20 20 20 20 23  to play..      #
29820 20 73 75 63 68 20 75 6e 70 6f 72 74 61 62 6c 65   such unportable
29830 20 6c 69 6e 6b 69 6e 67 20 74 72 69 63 6b 73 20   linking tricks 
29840 74 6f 20 6c 69 6e 6b 20 74 68 65 20 6c 69 62 72  to link the libr
29850 61 72 79 0a 09 20 20 20 20 20 20 23 20 75 73 69  ary..      # usi
29860 6e 67 20 2d 57 6c 2c 2d 6c 6e 61 6d 65 2c 20 73  ng -Wl,-lname, s
29870 6f 20 74 68 61 74 20 6c 69 62 74 6f 6f 6c 20 64  o that libtool d
29880 6f 65 73 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72  oes not consider
29890 20 69 74 0a 09 20 20 20 20 20 20 23 20 66 6f 72   it..      # for
298a0 20 64 75 70 6c 69 63 61 74 65 20 72 65 6d 6f 76   duplicate remov
298b0 61 6c 2e 0a 09 20 20 20 20 20 20 63 61 73 65 20  al...      case 
298c0 22 20 24 73 70 65 63 69 61 6c 64 65 70 6c 69 62  " $specialdeplib
298d0 73 20 22 20 69 6e 0a 09 20 20 20 20 20 20 2a 22  s " in..      *"
298e0 20 24 64 65 70 6c 69 62 20 22 2a 29 20 6e 65 77   $deplib "*) new
298f0 5f 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24  _libs="$deplib $
29900 6e 65 77 5f 6c 69 62 73 22 20 3b 3b 0a 09 20 20  new_libs" ;;..  
29910 20 20 20 20 2a 29 0a 09 09 63 61 73 65 20 22 20      *)...case " 
29920 24 6e 65 77 5f 6c 69 62 73 20 22 20 69 6e 0a 09  $new_libs " in..
29930 09 2a 22 20 24 64 65 70 6c 69 62 20 22 2a 29 20  .*" $deplib "*) 
29940 3b 3b 0a 09 09 2a 29 20 6e 65 77 5f 6c 69 62 73  ;;...*) new_libs
29950 3d 22 24 64 65 70 6c 69 62 20 24 6e 65 77 5f 6c  ="$deplib $new_l
29960 69 62 73 22 20 3b 3b 0a 09 09 65 73 61 63 0a 09  ibs" ;;...esac..
29970 09 3b 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a  .;;..      esac.
29980 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 65  .      ;;..    e
29990 73 61 63 0a 09 20 20 64 6f 6e 65 0a 09 20 20 74  sac..  done..  t
299a0 6d 70 5f 6c 69 62 73 3d 0a 09 20 20 66 6f 72 20  mp_libs=..  for 
299b0 64 65 70 6c 69 62 20 69 6e 20 24 6e 65 77 5f 6c  deplib in $new_l
299c0 69 62 73 3b 20 64 6f 0a 09 20 20 20 20 63 61 73  ibs; do..    cas
299d0 65 20 24 64 65 70 6c 69 62 20 69 6e 0a 09 20 20  e $deplib in..  
299e0 20 20 2d 4c 2a 29 0a 09 20 20 20 20 20 20 63 61    -L*)..      ca
299f0 73 65 20 22 20 24 74 6d 70 5f 6c 69 62 73 20 22  se " $tmp_libs "
29a00 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24 64   in..      *" $d
29a10 65 70 6c 69 62 20 22 2a 29 20 3b 3b 0a 09 20 20  eplib "*) ;;..  
29a20 20 20 20 20 2a 29 20 74 6d 70 5f 6c 69 62 73 3d      *) tmp_libs=
29a30 22 24 74 6d 70 5f 6c 69 62 73 20 24 64 65 70 6c  "$tmp_libs $depl
29a40 69 62 22 20 3b 3b 0a 09 20 20 20 20 20 20 65 73  ib" ;;..      es
29a50 61 63 0a 09 20 20 20 20 20 20 3b 3b 0a 09 20 20  ac..      ;;..  
29a60 20 20 2a 29 20 74 6d 70 5f 6c 69 62 73 3d 22 24    *) tmp_libs="$
29a70 74 6d 70 5f 6c 69 62 73 20 24 64 65 70 6c 69 62  tmp_libs $deplib
29a80 22 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09  " ;;..    esac..
29a90 20 20 64 6f 6e 65 0a 09 20 20 65 76 61 6c 20 24    done..  eval $
29aa0 76 61 72 3d 5c 22 24 74 6d 70 5f 6c 69 62 73 5c  var=\"$tmp_libs\
29ab0 22 0a 09 64 6f 6e 65 20 23 20 66 6f 72 20 76 61  "..done # for va
29ac0 72 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20  r.      fi.     
29ad0 20 23 20 4c 61 73 74 20 73 74 65 70 3a 20 72 65   # Last step: re
29ae0 6d 6f 76 65 20 72 75 6e 74 69 6d 65 20 6c 69 62  move runtime lib
29af0 73 20 66 72 6f 6d 20 64 65 70 65 6e 64 65 6e 63  s from dependenc
29b00 79 5f 6c 69 62 73 0a 20 20 20 20 20 20 23 20 28  y_libs.      # (
29b10 74 68 65 79 20 73 74 61 79 20 69 6e 20 64 65 70  they stay in dep
29b20 6c 69 62 73 29 0a 20 20 20 20 20 20 74 6d 70 5f  libs).      tmp_
29b30 6c 69 62 73 3d 0a 20 20 20 20 20 20 66 6f 72 20  libs=.      for 
29b40 69 20 69 6e 20 24 64 65 70 65 6e 64 65 6e 63 79  i in $dependency
29b50 5f 6c 69 62 73 20 3b 20 64 6f 0a 09 63 61 73 65  _libs ; do..case
29b60 20 22 20 24 70 72 65 64 65 70 73 20 24 70 6f 73   " $predeps $pos
29b70 74 64 65 70 73 20 24 63 6f 6d 70 69 6c 65 72 5f  tdeps $compiler_
29b80 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 20  lib_search_path 
29b90 22 20 69 6e 0a 09 2a 22 20 24 69 20 22 2a 29 0a  " in..*" $i "*).
29ba0 09 20 20 69 3d 22 22 0a 09 20 20 3b 3b 0a 09 65  .  i=""..  ;;..e
29bb0 73 61 63 0a 09 69 66 20 74 65 73 74 20 2d 6e 20  sac..if test -n 
29bc0 22 24 69 22 20 3b 20 74 68 65 6e 0a 09 20 20 74  "$i" ; then..  t
29bd0 6d 70 5f 6c 69 62 73 3d 22 24 74 6d 70 5f 6c 69  mp_libs="$tmp_li
29be0 62 73 20 24 69 22 0a 09 66 69 0a 20 20 20 20 20  bs $i"..fi.     
29bf0 20 64 6f 6e 65 0a 20 20 20 20 20 20 64 65 70 65   done.      depe
29c00 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 24 74 6d 70  ndency_libs=$tmp
29c10 5f 6c 69 62 73 0a 20 20 20 20 64 6f 6e 65 20 23  _libs.    done #
29c20 20 66 6f 72 20 70 61 73 73 0a 20 20 20 20 69 66   for pass.    if
29c30 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
29c40 22 20 3d 20 70 72 6f 67 3b 20 74 68 65 6e 0a 20  " = prog; then. 
29c50 20 20 20 20 20 64 6c 66 69 6c 65 73 3d 22 24 6e       dlfiles="$n
29c60 65 77 64 6c 66 69 6c 65 73 22 0a 20 20 20 20 66  ewdlfiles".    f
29c70 69 0a 20 20 20 20 69 66 20 74 65 73 74 20 22 24  i.    if test "$
29c80 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67  linkmode" = prog
29c90 20 7c 7c 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d   || test "$linkm
29ca0 6f 64 65 22 20 3d 20 6c 69 62 3b 20 74 68 65 6e  ode" = lib; then
29cb0 0a 20 20 20 20 20 20 64 6c 70 72 65 66 69 6c 65  .      dlprefile
29cc0 73 3d 22 24 6e 65 77 64 6c 70 72 65 66 69 6c 65  s="$newdlprefile
29cd0 73 22 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 63  s".    fi..    c
29ce0 61 73 65 20 24 6c 69 6e 6b 6d 6f 64 65 20 69 6e  ase $linkmode in
29cf0 0a 20 20 20 20 6f 6c 64 6c 69 62 29 0a 20 20 20  .    oldlib).   
29d00 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
29d10 64 6c 66 69 6c 65 73 24 64 6c 70 72 65 66 69 6c  dlfiles$dlprefil
29d20 65 73 22 20 7c 7c 20 74 65 73 74 20 22 24 64 6c  es" || test "$dl
29d30 73 65 6c 66 22 20 21 3d 20 6e 6f 3b 20 74 68 65  self" != no; the
29d40 6e 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20  n..func_warning 
29d50 22 5c 60 2d 64 6c 6f 70 65 6e 27 20 69 73 20 69  "\`-dlopen' is i
29d60 67 6e 6f 72 65 64 20 66 6f 72 20 61 72 63 68 69  gnored for archi
29d70 76 65 73 22 0a 20 20 20 20 20 20 66 69 0a 0a 20  ves".      fi.. 
29d80 20 20 20 20 20 63 61 73 65 20 22 20 24 64 65 70       case " $dep
29d90 6c 69 62 73 22 20 69 6e 0a 20 20 20 20 20 20 2a  libs" in.      *
29da0 5c 20 2d 6c 2a 20 7c 20 2a 5c 20 2d 4c 2a 29 0a  \ -l* | *\ -L*).
29db0 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c  .func_warning "\
29dc0 60 2d 6c 27 20 61 6e 64 20 5c 60 2d 4c 27 20 61  `-l' and \`-L' a
29dd0 72 65 20 69 67 6e 6f 72 65 64 20 66 6f 72 20 61  re ignored for a
29de0 72 63 68 69 76 65 73 22 20 3b 3b 0a 20 20 20 20  rchives" ;;.    
29df0 20 20 65 73 61 63 0a 0a 20 20 20 20 20 20 74 65    esac..      te
29e00 73 74 20 2d 6e 20 22 24 72 70 61 74 68 22 20 26  st -n "$rpath" &
29e10 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e  & \..func_warnin
29e20 67 20 22 5c 60 2d 72 70 61 74 68 27 20 69 73 20  g "\`-rpath' is 
29e30 69 67 6e 6f 72 65 64 20 66 6f 72 20 61 72 63 68  ignored for arch
29e40 69 76 65 73 22 0a 0a 20 20 20 20 20 20 74 65 73  ives"..      tes
29e50 74 20 2d 6e 20 22 24 78 72 70 61 74 68 22 20 26  t -n "$xrpath" &
29e60 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e  & \..func_warnin
29e70 67 20 22 5c 60 2d 52 27 20 69 73 20 69 67 6e 6f  g "\`-R' is igno
29e80 72 65 64 20 66 6f 72 20 61 72 63 68 69 76 65 73  red for archives
29e90 22 0a 0a 20 20 20 20 20 20 74 65 73 74 20 2d 6e  "..      test -n
29ea0 20 22 24 76 69 6e 66 6f 22 20 26 26 20 5c 0a 09   "$vinfo" && \..
29eb0 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60  func_warning "\`
29ec0 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 2f 2d 76  -version-info/-v
29ed0 65 72 73 69 6f 6e 2d 6e 75 6d 62 65 72 27 20 69  ersion-number' i
29ee0 73 20 69 67 6e 6f 72 65 64 20 66 6f 72 20 61 72  s ignored for ar
29ef0 63 68 69 76 65 73 22 0a 0a 20 20 20 20 20 20 74  chives"..      t
29f00 65 73 74 20 2d 6e 20 22 24 72 65 6c 65 61 73 65  est -n "$release
29f10 22 20 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72  " && \..func_war
29f20 6e 69 6e 67 20 22 5c 60 2d 72 65 6c 65 61 73 65  ning "\`-release
29f30 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72  ' is ignored for
29f40 20 61 72 63 68 69 76 65 73 22 0a 0a 20 20 20 20   archives"..    
29f50 20 20 74 65 73 74 20 2d 6e 20 22 24 65 78 70 6f    test -n "$expo
29f60 72 74 5f 73 79 6d 62 6f 6c 73 24 65 78 70 6f 72  rt_symbols$expor
29f70 74 5f 73 79 6d 62 6f 6c 73 5f 72 65 67 65 78 22  t_symbols_regex"
29f80 20 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e   && \..func_warn
29f90 69 6e 67 20 22 5c 60 2d 65 78 70 6f 72 74 2d 73  ing "\`-export-s
29fa0 79 6d 62 6f 6c 73 27 20 69 73 20 69 67 6e 6f 72  ymbols' is ignor
29fb0 65 64 20 66 6f 72 20 61 72 63 68 69 76 65 73 22  ed for archives"
29fc0 0a 0a 20 20 20 20 20 20 23 20 4e 6f 77 20 73 65  ..      # Now se
29fd0 74 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20  t the variables 
29fe0 66 6f 72 20 62 75 69 6c 64 69 6e 67 20 6f 6c 64  for building old
29ff0 20 6c 69 62 72 61 72 69 65 73 2e 0a 20 20 20 20   libraries..    
2a000 20 20 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f    build_libtool_
2a010 6c 69 62 73 3d 6e 6f 0a 20 20 20 20 20 20 6f 6c  libs=no.      ol
2a020 64 6c 69 62 73 3d 22 24 6f 75 74 70 75 74 22 0a  dlibs="$output".
2a030 20 20 20 20 20 20 6f 62 6a 73 3d 22 24 6f 62 6a        objs="$obj
2a040 73 24 6f 6c 64 5f 64 65 70 6c 69 62 73 22 0a 20  s$old_deplibs". 
2a050 20 20 20 20 20 3b 3b 0a 0a 20 20 20 20 6c 69 62       ;;..    lib
2a060 29 0a 20 20 20 20 20 20 23 20 4d 61 6b 65 20 73  ).      # Make s
2a070 75 72 65 20 77 65 20 6f 6e 6c 79 20 67 65 6e 65  ure we only gene
2a080 72 61 74 65 20 6c 69 62 72 61 72 69 65 73 20 6f  rate libraries o
2a090 66 20 74 68 65 20 66 6f 72 6d 20 60 6c 69 62 4e  f the form `libN
2a0a0 41 4d 45 2e 6c 61 27 2e 0a 20 20 20 20 20 20 63  AME.la'..      c
2a0b0 61 73 65 20 24 6f 75 74 70 75 74 6e 61 6d 65 20  ase $outputname 
2a0c0 69 6e 0a 20 20 20 20 20 20 6c 69 62 2a 29 0a 09  in.      lib*)..
2a0d0 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
2a0e0 6c 69 62 27 20 27 2e 6c 61 27 20 22 24 6f 75 74  lib' '.la' "$out
2a0f0 70 75 74 6e 61 6d 65 22 0a 09 6e 61 6d 65 3d 24  putname"..name=$
2a100 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72  func_stripname_r
2a110 65 73 75 6c 74 0a 09 65 76 61 6c 20 73 68 61 72  esult..eval shar
2a120 65 64 5f 65 78 74 3d 5c 22 24 73 68 72 65 78 74  ed_ext=\"$shrext
2a130 5f 63 6d 64 73 5c 22 0a 09 65 76 61 6c 20 6c 69  _cmds\"..eval li
2a140 62 6e 61 6d 65 3d 5c 22 24 6c 69 62 6e 61 6d 65  bname=\"$libname
2a150 5f 73 70 65 63 5c 22 0a 09 3b 3b 0a 20 20 20 20  _spec\"..;;.    
2a160 20 20 2a 29 0a 09 74 65 73 74 20 22 24 6d 6f 64    *)..test "$mod
2a170 75 6c 65 22 20 3d 20 6e 6f 20 26 26 20 5c 0a 09  ule" = no && \..
2a180 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c    func_fatal_hel
2a190 70 20 22 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61  p "libtool libra
2a1a0 72 79 20 5c 60 24 6f 75 74 70 75 74 27 20 6d 75  ry \`$output' mu
2a1b0 73 74 20 62 65 67 69 6e 20 77 69 74 68 20 5c 60  st begin with \`
2a1c0 6c 69 62 27 22 0a 0a 09 69 66 20 74 65 73 74 20  lib'"...if test 
2a1d0 22 24 6e 65 65 64 5f 6c 69 62 5f 70 72 65 66 69  "$need_lib_prefi
2a1e0 78 22 20 21 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09  x" != no; then..
2a1f0 20 20 23 20 41 64 64 20 74 68 65 20 22 6c 69 62    # Add the "lib
2a200 22 20 70 72 65 66 69 78 20 66 6f 72 20 6d 6f 64  " prefix for mod
2a210 75 6c 65 73 20 69 66 20 72 65 71 75 69 72 65 64  ules if required
2a220 0a 09 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61  ..  func_stripna
2a230 6d 65 20 27 27 20 27 2e 6c 61 27 20 22 24 6f 75  me '' '.la' "$ou
2a240 74 70 75 74 6e 61 6d 65 22 0a 09 20 20 6e 61 6d  tputname"..  nam
2a250 65 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  e=$func_stripnam
2a260 65 5f 72 65 73 75 6c 74 0a 09 20 20 65 76 61 6c  e_result..  eval
2a270 20 73 68 61 72 65 64 5f 65 78 74 3d 5c 22 24 73   shared_ext=\"$s
2a280 68 72 65 78 74 5f 63 6d 64 73 5c 22 0a 09 20 20  hrext_cmds\"..  
2a290 65 76 61 6c 20 6c 69 62 6e 61 6d 65 3d 5c 22 24  eval libname=\"$
2a2a0 6c 69 62 6e 61 6d 65 5f 73 70 65 63 5c 22 0a 09  libname_spec\"..
2a2b0 65 6c 73 65 0a 09 20 20 66 75 6e 63 5f 73 74 72  else..  func_str
2a2c0 69 70 6e 61 6d 65 20 27 27 20 27 2e 6c 61 27 20  ipname '' '.la' 
2a2d0 22 24 6f 75 74 70 75 74 6e 61 6d 65 22 0a 09 20  "$outputname".. 
2a2e0 20 6c 69 62 6e 61 6d 65 3d 24 66 75 6e 63 5f 73   libname=$func_s
2a2f0 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a  tripname_result.
2a300 09 66 69 0a 09 3b 3b 0a 20 20 20 20 20 20 65 73  .fi..;;.      es
2a310 61 63 0a 0a 20 20 20 20 20 20 69 66 20 74 65 73  ac..      if tes
2a320 74 20 2d 6e 20 22 24 6f 62 6a 73 22 3b 20 74 68  t -n "$objs"; th
2a330 65 6e 0a 09 69 66 20 74 65 73 74 20 22 24 64 65  en..if test "$de
2a340 70 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68  plibs_check_meth
2a350 6f 64 22 20 21 3d 20 70 61 73 73 5f 61 6c 6c 3b  od" != pass_all;
2a360 20 74 68 65 6e 0a 09 20 20 66 75 6e 63 5f 66 61   then..  func_fa
2a370 74 61 6c 5f 65 72 72 6f 72 20 22 63 61 6e 6e 6f  tal_error "canno
2a380 74 20 62 75 69 6c 64 20 6c 69 62 74 6f 6f 6c 20  t build libtool 
2a390 6c 69 62 72 61 72 79 20 5c 60 24 6f 75 74 70 75  library \`$outpu
2a3a0 74 27 20 66 72 6f 6d 20 6e 6f 6e 2d 6c 69 62 74  t' from non-libt
2a3b0 6f 6f 6c 20 6f 62 6a 65 63 74 73 20 6f 6e 20 74  ool objects on t
2a3c0 68 69 73 20 68 6f 73 74 3a 24 6f 62 6a 73 22 0a  his host:$objs".
2a3d0 09 65 6c 73 65 0a 09 20 20 24 45 43 48 4f 0a 09  .else..  $ECHO..
2a3e0 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61 72    $ECHO "*** War
2a3f0 6e 69 6e 67 3a 20 4c 69 6e 6b 69 6e 67 20 74 68  ning: Linking th
2a400 65 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79  e shared library
2a410 20 24 6f 75 74 70 75 74 20 61 67 61 69 6e 73 74   $output against
2a420 20 74 68 65 20 6e 6f 6e 2d 6c 69 62 74 6f 6f 6c   the non-libtool
2a430 22 0a 09 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20  "..  $ECHO "*** 
2a440 6f 62 6a 65 63 74 73 20 24 6f 62 6a 73 20 69 73  objects $objs is
2a450 20 6e 6f 74 20 70 6f 72 74 61 62 6c 65 21 22 0a   not portable!".
2a460 09 20 20 6c 69 62 6f 62 6a 73 3d 22 24 6c 69 62  .  libobjs="$lib
2a470 6f 62 6a 73 20 24 6f 62 6a 73 22 0a 09 66 69 0a  objs $objs"..fi.
2a480 20 20 20 20 20 20 66 69 0a 0a 20 20 20 20 20 20        fi..      
2a490 74 65 73 74 20 22 24 64 6c 73 65 6c 66 22 20 21  test "$dlself" !
2a4a0 3d 20 6e 6f 20 26 26 20 5c 0a 09 66 75 6e 63 5f  = no && \..func_
2a4b0 77 61 72 6e 69 6e 67 20 22 5c 60 2d 64 6c 6f 70  warning "\`-dlop
2a4c0 65 6e 20 73 65 6c 66 27 20 69 73 20 69 67 6e 6f  en self' is igno
2a4d0 72 65 64 20 66 6f 72 20 6c 69 62 74 6f 6f 6c 20  red for libtool 
2a4e0 6c 69 62 72 61 72 69 65 73 22 0a 0a 20 20 20 20  libraries"..    
2a4f0 20 20 73 65 74 20 64 75 6d 6d 79 20 24 72 70 61    set dummy $rpa
2a500 74 68 0a 20 20 20 20 20 20 73 68 69 66 74 0a 20  th.      shift. 
2a510 20 20 20 20 20 74 65 73 74 20 22 24 23 22 20 2d       test "$#" -
2a520 67 74 20 31 20 26 26 20 5c 0a 09 66 75 6e 63 5f  gt 1 && \..func_
2a530 77 61 72 6e 69 6e 67 20 22 69 67 6e 6f 72 69 6e  warning "ignorin
2a540 67 20 6d 75 6c 74 69 70 6c 65 20 5c 60 2d 72 70  g multiple \`-rp
2a550 61 74 68 27 73 20 66 6f 72 20 61 20 6c 69 62 74  ath's for a libt
2a560 6f 6f 6c 20 6c 69 62 72 61 72 79 22 0a 0a 20 20  ool library"..  
2a570 20 20 20 20 69 6e 73 74 61 6c 6c 5f 6c 69 62 64      install_libd
2a580 69 72 3d 22 24 31 22 0a 0a 20 20 20 20 20 20 6f  ir="$1"..      o
2a590 6c 64 6c 69 62 73 3d 0a 20 20 20 20 20 20 69 66  ldlibs=.      if
2a5a0 20 74 65 73 74 20 2d 7a 20 22 24 72 70 61 74 68   test -z "$rpath
2a5b0 22 3b 20 74 68 65 6e 0a 09 69 66 20 74 65 73 74  "; then..if test
2a5c0 20 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c   "$build_libtool
2a5d0 5f 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74 68  _libs" = yes; th
2a5e0 65 6e 0a 09 20 20 23 20 42 75 69 6c 64 69 6e 67  en..  # Building
2a5f0 20 61 20 6c 69 62 74 6f 6f 6c 20 63 6f 6e 76 65   a libtool conve
2a600 6e 69 65 6e 63 65 20 6c 69 62 72 61 72 79 2e 0a  nience library..
2a610 09 20 20 23 20 53 6f 6d 65 20 63 6f 6d 70 69 6c  .  # Some compil
2a620 65 72 73 20 68 61 76 65 20 70 72 6f 62 6c 65 6d  ers have problem
2a630 73 20 77 69 74 68 20 61 20 60 2e 61 6c 27 20 65  s with a `.al' e
2a640 78 74 65 6e 73 69 6f 6e 20 73 6f 0a 09 20 20 23  xtension so..  #
2a650 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6c 69 62   convenience lib
2a660 72 61 72 69 65 73 20 73 68 6f 75 6c 64 20 68 61  raries should ha
2a670 76 65 20 74 68 65 20 73 61 6d 65 20 65 78 74 65  ve the same exte
2a680 6e 73 69 6f 6e 20 61 6e 0a 09 20 20 23 20 61 72  nsion an..  # ar
2a690 63 68 69 76 65 20 6e 6f 72 6d 61 6c 6c 79 20 77  chive normally w
2a6a0 6f 75 6c 64 2e 0a 09 20 20 6f 6c 64 6c 69 62 73  ould...  oldlibs
2a6b0 3d 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72  ="$output_objdir
2a6c0 2f 24 6c 69 62 6e 61 6d 65 2e 24 6c 69 62 65 78  /$libname.$libex
2a6d0 74 20 24 6f 6c 64 6c 69 62 73 22 0a 09 20 20 62  t $oldlibs"..  b
2a6e0 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
2a6f0 73 3d 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 09 20  s=convenience.. 
2a700 20 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 3d   build_old_libs=
2a710 79 65 73 0a 09 66 69 0a 0a 09 74 65 73 74 20 2d  yes..fi...test -
2a720 6e 20 22 24 76 69 6e 66 6f 22 20 26 26 20 5c 0a  n "$vinfo" && \.
2a730 09 20 20 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20  .  func_warning 
2a740 22 5c 60 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f  "\`-version-info
2a750 2f 2d 76 65 72 73 69 6f 6e 2d 6e 75 6d 62 65 72  /-version-number
2a760 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72  ' is ignored for
2a770 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6c 69 62   convenience lib
2a780 72 61 72 69 65 73 22 0a 0a 09 74 65 73 74 20 2d  raries"...test -
2a790 6e 20 22 24 72 65 6c 65 61 73 65 22 20 26 26 20  n "$release" && 
2a7a0 5c 0a 09 20 20 66 75 6e 63 5f 77 61 72 6e 69 6e  \..  func_warnin
2a7b0 67 20 22 5c 60 2d 72 65 6c 65 61 73 65 27 20 69  g "\`-release' i
2a7c0 73 20 69 67 6e 6f 72 65 64 20 66 6f 72 20 63 6f  s ignored for co
2a7d0 6e 76 65 6e 69 65 6e 63 65 20 6c 69 62 72 61 72  nvenience librar
2a7e0 69 65 73 22 0a 20 20 20 20 20 20 65 6c 73 65 0a  ies".      else.
2a7f0 0a 09 23 20 50 61 72 73 65 20 74 68 65 20 76 65  ..# Parse the ve
2a800 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f  rsion informatio
2a810 6e 20 61 72 67 75 6d 65 6e 74 2e 0a 09 73 61 76  n argument...sav
2a820 65 5f 69 66 73 3d 22 24 49 46 53 22 3b 20 49 46  e_ifs="$IFS"; IF
2a830 53 3d 27 3a 27 0a 09 73 65 74 20 64 75 6d 6d 79  S=':'..set dummy
2a840 20 24 76 69 6e 66 6f 20 30 20 30 20 30 0a 09 73   $vinfo 0 0 0..s
2a850 68 69 66 74 0a 09 49 46 53 3d 22 24 73 61 76 65  hift..IFS="$save
2a860 5f 69 66 73 22 0a 0a 09 74 65 73 74 20 2d 6e 20  _ifs"...test -n 
2a870 22 24 37 22 20 26 26 20 5c 0a 09 20 20 66 75 6e  "$7" && \..  fun
2a880 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22 74 6f  c_fatal_help "to
2a890 6f 20 6d 61 6e 79 20 70 61 72 61 6d 65 74 65 72  o many parameter
2a8a0 73 20 74 6f 20 5c 60 2d 76 65 72 73 69 6f 6e 2d  s to \`-version-
2a8b0 69 6e 66 6f 27 22 0a 0a 09 23 20 63 6f 6e 76 65  info'"...# conve
2a8c0 72 74 20 61 62 73 6f 6c 75 74 65 20 76 65 72 73  rt absolute vers
2a8d0 69 6f 6e 20 6e 75 6d 62 65 72 73 20 74 6f 20 6c  ion numbers to l
2a8e0 69 62 74 6f 6f 6c 20 61 67 65 73 0a 09 23 20 74  ibtool ages..# t
2a8f0 68 69 73 20 72 65 74 61 69 6e 73 20 63 6f 6d 70  his retains comp
2a900 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 2e  atibility with .
2a910 6c 61 20 66 69 6c 65 73 20 61 6e 64 20 61 74 74  la files and att
2a920 65 6d 70 74 73 0a 09 23 20 74 6f 20 6d 61 6b 65  empts..# to make
2a930 20 74 68 65 20 63 6f 64 65 20 62 65 6c 6f 77 20   the code below 
2a940 61 20 62 69 74 20 6d 6f 72 65 20 63 6f 6d 70 72  a bit more compr
2a950 65 68 65 6e 73 69 62 6c 65 0a 0a 09 63 61 73 65  ehensible...case
2a960 20 24 76 69 6e 66 6f 5f 6e 75 6d 62 65 72 20 69   $vinfo_number i
2a970 6e 0a 09 79 65 73 29 0a 09 20 20 6e 75 6d 62 65  n..yes)..  numbe
2a980 72 5f 6d 61 6a 6f 72 3d 22 24 31 22 0a 09 20 20  r_major="$1"..  
2a990 6e 75 6d 62 65 72 5f 6d 69 6e 6f 72 3d 22 24 32  number_minor="$2
2a9a0 22 0a 09 20 20 6e 75 6d 62 65 72 5f 72 65 76 69  "..  number_revi
2a9b0 73 69 6f 6e 3d 22 24 33 22 0a 09 20 20 23 0a 09  sion="$3"..  #..
2a9c0 20 20 23 20 54 68 65 72 65 20 61 72 65 20 72 65    # There are re
2a9d0 61 6c 6c 79 20 6f 6e 6c 79 20 74 77 6f 20 6b 69  ally only two ki
2a9e0 6e 64 73 20 2d 2d 20 74 68 6f 73 65 20 74 68 61  nds -- those tha
2a9f0 74 0a 09 20 20 23 20 75 73 65 20 74 68 65 20 63  t..  # use the c
2aa00 75 72 72 65 6e 74 20 72 65 76 69 73 69 6f 6e 20  urrent revision 
2aa10 61 73 20 74 68 65 20 6d 61 6a 6f 72 20 76 65 72  as the major ver
2aa20 73 69 6f 6e 0a 09 20 20 23 20 61 6e 64 20 74 68  sion..  # and th
2aa30 6f 73 65 20 74 68 61 74 20 73 75 62 74 72 61 63  ose that subtrac
2aa40 74 20 61 67 65 20 61 6e 64 20 75 73 65 20 61 67  t age and use ag
2aa50 65 20 61 73 0a 09 20 20 23 20 61 20 6d 69 6e 6f  e as..  # a mino
2aa60 72 20 76 65 72 73 69 6f 6e 2e 20 20 42 75 74 2c  r version.  But,
2aa70 20 74 68 65 6e 20 74 68 65 72 65 20 69 73 20 69   then there is i
2aa80 72 69 78 0a 09 20 20 23 20 77 68 69 63 68 20 68  rix..  # which h
2aa90 61 73 20 61 6e 20 65 78 74 72 61 20 31 20 61 64  as an extra 1 ad
2aaa0 64 65 64 20 6a 75 73 74 20 66 6f 72 20 66 75 6e  ded just for fun
2aab0 0a 09 20 20 23 0a 09 20 20 63 61 73 65 20 24 76  ..  #..  case $v
2aac0 65 72 73 69 6f 6e 5f 74 79 70 65 20 69 6e 0a 09  ersion_type in..
2aad0 20 20 64 61 72 77 69 6e 7c 6c 69 6e 75 78 7c 6f    darwin|linux|o
2aae0 73 66 7c 77 69 6e 64 6f 77 73 7c 6e 6f 6e 65 29  sf|windows|none)
2aaf0 0a 09 20 20 20 20 66 75 6e 63 5f 61 72 69 74 68  ..    func_arith
2ab00 20 24 6e 75 6d 62 65 72 5f 6d 61 6a 6f 72 20 2b   $number_major +
2ab10 20 24 6e 75 6d 62 65 72 5f 6d 69 6e 6f 72 0a 09   $number_minor..
2ab20 20 20 20 20 63 75 72 72 65 6e 74 3d 24 66 75 6e      current=$fun
2ab30 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a 09  c_arith_result..
2ab40 20 20 20 20 61 67 65 3d 22 24 6e 75 6d 62 65 72      age="$number
2ab50 5f 6d 69 6e 6f 72 22 0a 09 20 20 20 20 72 65 76  _minor"..    rev
2ab60 69 73 69 6f 6e 3d 22 24 6e 75 6d 62 65 72 5f 72  ision="$number_r
2ab70 65 76 69 73 69 6f 6e 22 0a 09 20 20 20 20 3b 3b  evision"..    ;;
2ab80 0a 09 20 20 66 72 65 65 62 73 64 2d 61 6f 75 74  ..  freebsd-aout
2ab90 7c 66 72 65 65 62 73 64 2d 65 6c 66 7c 73 75 6e  |freebsd-elf|sun
2aba0 6f 73 29 0a 09 20 20 20 20 63 75 72 72 65 6e 74  os)..    current
2abb0 3d 22 24 6e 75 6d 62 65 72 5f 6d 61 6a 6f 72 22  ="$number_major"
2abc0 0a 09 20 20 20 20 72 65 76 69 73 69 6f 6e 3d 22  ..    revision="
2abd0 24 6e 75 6d 62 65 72 5f 6d 69 6e 6f 72 22 0a 09  $number_minor"..
2abe0 20 20 20 20 61 67 65 3d 22 30 22 0a 09 20 20 20      age="0"..   
2abf0 20 3b 3b 0a 09 20 20 69 72 69 78 7c 6e 6f 6e 73   ;;..  irix|nons
2ac00 74 6f 70 75 78 29 0a 09 20 20 20 20 66 75 6e 63  topux)..    func
2ac10 5f 61 72 69 74 68 20 24 6e 75 6d 62 65 72 5f 6d  _arith $number_m
2ac20 61 6a 6f 72 20 2b 20 24 6e 75 6d 62 65 72 5f 6d  ajor + $number_m
2ac30 69 6e 6f 72 0a 09 20 20 20 20 63 75 72 72 65 6e  inor..    curren
2ac40 74 3d 24 66 75 6e 63 5f 61 72 69 74 68 5f 72 65  t=$func_arith_re
2ac50 73 75 6c 74 0a 09 20 20 20 20 61 67 65 3d 22 24  sult..    age="$
2ac60 6e 75 6d 62 65 72 5f 6d 69 6e 6f 72 22 0a 09 20  number_minor".. 
2ac70 20 20 20 72 65 76 69 73 69 6f 6e 3d 22 24 6e 75     revision="$nu
2ac80 6d 62 65 72 5f 6d 69 6e 6f 72 22 0a 09 20 20 20  mber_minor"..   
2ac90 20 6c 74 5f 69 72 69 78 5f 69 6e 63 72 65 6d 65   lt_irix_increme
2aca0 6e 74 3d 6e 6f 0a 09 20 20 20 20 3b 3b 0a 09 20  nt=no..    ;;.. 
2acb0 20 65 73 61 63 0a 09 20 20 3b 3b 0a 09 6e 6f 29   esac..  ;;..no)
2acc0 0a 09 20 20 63 75 72 72 65 6e 74 3d 22 24 31 22  ..  current="$1"
2acd0 0a 09 20 20 72 65 76 69 73 69 6f 6e 3d 22 24 32  ..  revision="$2
2ace0 22 0a 09 20 20 61 67 65 3d 22 24 33 22 0a 09 20  "..  age="$3".. 
2acf0 20 3b 3b 0a 09 65 73 61 63 0a 0a 09 23 20 43 68   ;;..esac...# Ch
2ad00 65 63 6b 20 74 68 61 74 20 65 61 63 68 20 6f 66  eck that each of
2ad10 20 74 68 65 20 74 68 69 6e 67 73 20 61 72 65 20   the things are 
2ad20 76 61 6c 69 64 20 6e 75 6d 62 65 72 73 2e 0a 09  valid numbers...
2ad30 63 61 73 65 20 24 63 75 72 72 65 6e 74 20 69 6e  case $current in
2ad40 0a 09 30 7c 5b 31 2d 39 5d 7c 5b 31 2d 39 5d 5b  ..0|[1-9]|[1-9][
2ad50 30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b  0-9]|[1-9][0-9][
2ad60 30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b  0-9]|[1-9][0-9][
2ad70 30 2d 39 5d 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b  0-9][0-9]|[1-9][
2ad80 30 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30  0-9][0-9][0-9][0
2ad90 2d 39 5d 29 20 3b 3b 0a 09 2a 29 0a 09 20 20 66  -9]) ;;..*)..  f
2ada0 75 6e 63 5f 65 72 72 6f 72 20 22 43 55 52 52 45  unc_error "CURRE
2adb0 4e 54 20 5c 60 24 63 75 72 72 65 6e 74 27 20 6d  NT \`$current' m
2adc0 75 73 74 20 62 65 20 61 20 6e 6f 6e 6e 65 67 61  ust be a nonnega
2add0 74 69 76 65 20 69 6e 74 65 67 65 72 22 0a 09 20  tive integer".. 
2ade0 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f   func_fatal_erro
2adf0 72 20 22 5c 60 24 76 69 6e 66 6f 27 20 69 73 20  r "\`$vinfo' is 
2ae00 6e 6f 74 20 76 61 6c 69 64 20 76 65 72 73 69 6f  not valid versio
2ae10 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 22 0a 09  n information"..
2ae20 20 20 3b 3b 0a 09 65 73 61 63 0a 0a 09 63 61 73    ;;..esac...cas
2ae30 65 20 24 72 65 76 69 73 69 6f 6e 20 69 6e 0a 09  e $revision in..
2ae40 30 7c 5b 31 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d  0|[1-9]|[1-9][0-
2ae50 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d  9]|[1-9][0-9][0-
2ae60 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d  9]|[1-9][0-9][0-
2ae70 39 5d 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d  9][0-9]|[1-9][0-
2ae80 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39  9][0-9][0-9][0-9
2ae90 5d 29 20 3b 3b 0a 09 2a 29 0a 09 20 20 66 75 6e  ]) ;;..*)..  fun
2aea0 63 5f 65 72 72 6f 72 20 22 52 45 56 49 53 49 4f  c_error "REVISIO
2aeb0 4e 20 5c 60 24 72 65 76 69 73 69 6f 6e 27 20 6d  N \`$revision' m
2aec0 75 73 74 20 62 65 20 61 20 6e 6f 6e 6e 65 67 61  ust be a nonnega
2aed0 74 69 76 65 20 69 6e 74 65 67 65 72 22 0a 09 20  tive integer".. 
2aee0 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f   func_fatal_erro
2aef0 72 20 22 5c 60 24 76 69 6e 66 6f 27 20 69 73 20  r "\`$vinfo' is 
2af00 6e 6f 74 20 76 61 6c 69 64 20 76 65 72 73 69 6f  not valid versio
2af10 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 22 0a 09  n information"..
2af20 20 20 3b 3b 0a 09 65 73 61 63 0a 0a 09 63 61 73    ;;..esac...cas
2af30 65 20 24 61 67 65 20 69 6e 0a 09 30 7c 5b 31 2d  e $age in..0|[1-
2af40 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 7c 5b 31  9]|[1-9][0-9]|[1
2af50 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 7c 5b 31  -9][0-9][0-9]|[1
2af60 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30 2d  -9][0-9][0-9][0-
2af70 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d  9]|[1-9][0-9][0-
2af80 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 29 20 3b 3b  9][0-9][0-9]) ;;
2af90 0a 09 2a 29 0a 09 20 20 66 75 6e 63 5f 65 72 72  ..*)..  func_err
2afa0 6f 72 20 22 41 47 45 20 5c 60 24 61 67 65 27 20  or "AGE \`$age' 
2afb0 6d 75 73 74 20 62 65 20 61 20 6e 6f 6e 6e 65 67  must be a nonneg
2afc0 61 74 69 76 65 20 69 6e 74 65 67 65 72 22 0a 09  ative integer"..
2afd0 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72    func_fatal_err
2afe0 6f 72 20 22 5c 60 24 76 69 6e 66 6f 27 20 69 73  or "\`$vinfo' is
2aff0 20 6e 6f 74 20 76 61 6c 69 64 20 76 65 72 73 69   not valid versi
2b000 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 22 0a  on information".
2b010 09 20 20 3b 3b 0a 09 65 73 61 63 0a 0a 09 69 66  .  ;;..esac...if
2b020 20 74 65 73 74 20 22 24 61 67 65 22 20 2d 67 74   test "$age" -gt
2b030 20 22 24 63 75 72 72 65 6e 74 22 3b 20 74 68 65   "$current"; the
2b040 6e 0a 09 20 20 66 75 6e 63 5f 65 72 72 6f 72 20  n..  func_error 
2b050 22 41 47 45 20 5c 60 24 61 67 65 27 20 69 73 20  "AGE \`$age' is 
2b060 67 72 65 61 74 65 72 20 74 68 61 6e 20 74 68 65  greater than the
2b070 20 63 75 72 72 65 6e 74 20 69 6e 74 65 72 66 61   current interfa
2b080 63 65 20 6e 75 6d 62 65 72 20 5c 60 24 63 75 72  ce number \`$cur
2b090 72 65 6e 74 27 22 0a 09 20 20 66 75 6e 63 5f 66  rent'"..  func_f
2b0a0 61 74 61 6c 5f 65 72 72 6f 72 20 22 5c 60 24 76  atal_error "\`$v
2b0b0 69 6e 66 6f 27 20 69 73 20 6e 6f 74 20 76 61 6c  info' is not val
2b0c0 69 64 20 76 65 72 73 69 6f 6e 20 69 6e 66 6f 72  id version infor
2b0d0 6d 61 74 69 6f 6e 22 0a 09 66 69 0a 0a 09 23 20  mation"..fi...# 
2b0e0 43 61 6c 63 75 6c 61 74 65 20 74 68 65 20 76 65  Calculate the ve
2b0f0 72 73 69 6f 6e 20 76 61 72 69 61 62 6c 65 73 2e  rsion variables.
2b100 0a 09 6d 61 6a 6f 72 3d 0a 09 76 65 72 73 75 66  ..major=..versuf
2b110 66 69 78 3d 0a 09 76 65 72 73 74 72 69 6e 67 3d  fix=..verstring=
2b120 0a 09 63 61 73 65 20 24 76 65 72 73 69 6f 6e 5f  ..case $version_
2b130 74 79 70 65 20 69 6e 0a 09 6e 6f 6e 65 29 20 3b  type in..none) ;
2b140 3b 0a 0a 09 64 61 72 77 69 6e 29 0a 09 20 20 23  ;...darwin)..  #
2b150 20 4c 69 6b 65 20 4c 69 6e 75 78 2c 20 62 75 74   Like Linux, but
2b160 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e   with the curren
2b170 74 20 76 65 72 73 69 6f 6e 20 61 76 61 69 6c 61  t version availa
2b180 62 6c 65 20 69 6e 0a 09 20 20 23 20 76 65 72 73  ble in..  # vers
2b190 74 72 69 6e 67 20 66 6f 72 20 63 6f 64 69 6e 67  tring for coding
2b1a0 20 69 74 20 69 6e 74 6f 20 74 68 65 20 6c 69 62   it into the lib
2b1b0 72 61 72 79 20 68 65 61 64 65 72 0a 09 20 20 66  rary header..  f
2b1c0 75 6e 63 5f 61 72 69 74 68 20 24 63 75 72 72 65  unc_arith $curre
2b1d0 6e 74 20 2d 20 24 61 67 65 0a 09 20 20 6d 61 6a  nt - $age..  maj
2b1e0 6f 72 3d 2e 24 66 75 6e 63 5f 61 72 69 74 68 5f  or=.$func_arith_
2b1f0 72 65 73 75 6c 74 0a 09 20 20 76 65 72 73 75 66  result..  versuf
2b200 66 69 78 3d 22 24 6d 61 6a 6f 72 2e 24 61 67 65  fix="$major.$age
2b210 2e 24 72 65 76 69 73 69 6f 6e 22 0a 09 20 20 23  .$revision"..  #
2b220 20 44 61 72 77 69 6e 20 6c 64 20 64 6f 65 73 6e   Darwin ld doesn
2b230 27 74 20 6c 69 6b 65 20 30 20 66 6f 72 20 74 68  't like 0 for th
2b240 65 73 65 20 6f 70 74 69 6f 6e 73 2e 2e 2e 0a 09  ese options.....
2b250 20 20 66 75 6e 63 5f 61 72 69 74 68 20 24 63 75    func_arith $cu
2b260 72 72 65 6e 74 20 2b 20 31 0a 09 20 20 6d 69 6e  rrent + 1..  min
2b270 6f 72 5f 63 75 72 72 65 6e 74 3d 24 66 75 6e 63  or_current=$func
2b280 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a 09 20  _arith_result.. 
2b290 20 78 6c 63 76 65 72 73 74 72 69 6e 67 3d 22 24   xlcverstring="$
2b2a0 7b 77 6c 7d 2d 63 6f 6d 70 61 74 69 62 69 6c 69  {wl}-compatibili
2b2b0 74 79 5f 76 65 72 73 69 6f 6e 20 24 7b 77 6c 7d  ty_version ${wl}
2b2c0 24 6d 69 6e 6f 72 5f 63 75 72 72 65 6e 74 20 24  $minor_current $
2b2d0 7b 77 6c 7d 2d 63 75 72 72 65 6e 74 5f 76 65 72  {wl}-current_ver
2b2e0 73 69 6f 6e 20 24 7b 77 6c 7d 24 6d 69 6e 6f 72  sion ${wl}$minor
2b2f0 5f 63 75 72 72 65 6e 74 2e 24 72 65 76 69 73 69  _current.$revisi
2b300 6f 6e 22 0a 09 20 20 76 65 72 73 74 72 69 6e 67  on"..  verstring
2b310 3d 22 2d 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  ="-compatibility
2b320 5f 76 65 72 73 69 6f 6e 20 24 6d 69 6e 6f 72 5f  _version $minor_
2b330 63 75 72 72 65 6e 74 20 2d 63 75 72 72 65 6e 74  current -current
2b340 5f 76 65 72 73 69 6f 6e 20 24 6d 69 6e 6f 72 5f  _version $minor_
2b350 63 75 72 72 65 6e 74 2e 24 72 65 76 69 73 69 6f  current.$revisio
2b360 6e 22 0a 09 20 20 3b 3b 0a 0a 09 66 72 65 65 62  n"..  ;;...freeb
2b370 73 64 2d 61 6f 75 74 29 0a 09 20 20 6d 61 6a 6f  sd-aout)..  majo
2b380 72 3d 22 2e 24 63 75 72 72 65 6e 74 22 0a 09 20  r=".$current".. 
2b390 20 76 65 72 73 75 66 66 69 78 3d 22 2e 24 63 75   versuffix=".$cu
2b3a0 72 72 65 6e 74 2e 24 72 65 76 69 73 69 6f 6e 22  rrent.$revision"
2b3b0 3b 0a 09 20 20 3b 3b 0a 0a 09 66 72 65 65 62 73  ;..  ;;...freebs
2b3c0 64 2d 65 6c 66 29 0a 09 20 20 6d 61 6a 6f 72 3d  d-elf)..  major=
2b3d0 22 2e 24 63 75 72 72 65 6e 74 22 0a 09 20 20 76  ".$current"..  v
2b3e0 65 72 73 75 66 66 69 78 3d 22 2e 24 63 75 72 72  ersuffix=".$curr
2b3f0 65 6e 74 22 0a 09 20 20 3b 3b 0a 0a 09 69 72 69  ent"..  ;;...iri
2b400 78 20 7c 20 6e 6f 6e 73 74 6f 70 75 78 29 0a 09  x | nonstopux)..
2b410 20 20 69 66 20 74 65 73 74 20 22 58 24 6c 74 5f    if test "X$lt_
2b420 69 72 69 78 5f 69 6e 63 72 65 6d 65 6e 74 22 20  irix_increment" 
2b430 3d 20 22 58 6e 6f 22 3b 20 74 68 65 6e 0a 09 20  = "Xno"; then.. 
2b440 20 20 20 66 75 6e 63 5f 61 72 69 74 68 20 24 63     func_arith $c
2b450 75 72 72 65 6e 74 20 2d 20 24 61 67 65 0a 09 20  urrent - $age.. 
2b460 20 65 6c 73 65 0a 09 20 20 20 20 66 75 6e 63 5f   else..    func_
2b470 61 72 69 74 68 20 24 63 75 72 72 65 6e 74 20 2d  arith $current -
2b480 20 24 61 67 65 20 2b 20 31 0a 09 20 20 66 69 0a   $age + 1..  fi.
2b490 09 20 20 6d 61 6a 6f 72 3d 24 66 75 6e 63 5f 61  .  major=$func_a
2b4a0 72 69 74 68 5f 72 65 73 75 6c 74 0a 0a 09 20 20  rith_result...  
2b4b0 63 61 73 65 20 24 76 65 72 73 69 6f 6e 5f 74 79  case $version_ty
2b4c0 70 65 20 69 6e 0a 09 20 20 20 20 6e 6f 6e 73 74  pe in..    nonst
2b4d0 6f 70 75 78 29 20 76 65 72 73 74 72 69 6e 67 5f  opux) verstring_
2b4e0 70 72 65 66 69 78 3d 6e 6f 6e 73 74 6f 70 75 78  prefix=nonstopux
2b4f0 20 3b 3b 0a 09 20 20 20 20 2a 29 20 20 20 20 20   ;;..    *)     
2b500 20 20 20 20 76 65 72 73 74 72 69 6e 67 5f 70 72      verstring_pr
2b510 65 66 69 78 3d 73 67 69 20 3b 3b 0a 09 20 20 65  efix=sgi ;;..  e
2b520 73 61 63 0a 09 20 20 76 65 72 73 74 72 69 6e 67  sac..  verstring
2b530 3d 22 24 76 65 72 73 74 72 69 6e 67 5f 70 72 65  ="$verstring_pre
2b540 66 69 78 24 6d 61 6a 6f 72 2e 24 72 65 76 69 73  fix$major.$revis
2b550 69 6f 6e 22 0a 0a 09 20 20 23 20 41 64 64 20 69  ion"...  # Add i
2b560 6e 20 61 6c 6c 20 74 68 65 20 69 6e 74 65 72 66  n all the interf
2b570 61 63 65 73 20 74 68 61 74 20 77 65 20 61 72 65  aces that we are
2b580 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68   compatible with
2b590 2e 0a 09 20 20 6c 6f 6f 70 3d 24 72 65 76 69 73  ...  loop=$revis
2b5a0 69 6f 6e 0a 09 20 20 77 68 69 6c 65 20 74 65 73  ion..  while tes
2b5b0 74 20 22 24 6c 6f 6f 70 22 20 2d 6e 65 20 30 3b  t "$loop" -ne 0;
2b5c0 20 64 6f 0a 09 20 20 20 20 66 75 6e 63 5f 61 72   do..    func_ar
2b5d0 69 74 68 20 24 72 65 76 69 73 69 6f 6e 20 2d 20  ith $revision - 
2b5e0 24 6c 6f 6f 70 0a 09 20 20 20 20 69 66 61 63 65  $loop..    iface
2b5f0 3d 24 66 75 6e 63 5f 61 72 69 74 68 5f 72 65 73  =$func_arith_res
2b600 75 6c 74 0a 09 20 20 20 20 66 75 6e 63 5f 61 72  ult..    func_ar
2b610 69 74 68 20 24 6c 6f 6f 70 20 2d 20 31 0a 09 20  ith $loop - 1.. 
2b620 20 20 20 6c 6f 6f 70 3d 24 66 75 6e 63 5f 61 72     loop=$func_ar
2b630 69 74 68 5f 72 65 73 75 6c 74 0a 09 20 20 20 20  ith_result..    
2b640 76 65 72 73 74 72 69 6e 67 3d 22 24 76 65 72 73  verstring="$vers
2b650 74 72 69 6e 67 5f 70 72 65 66 69 78 24 6d 61 6a  tring_prefix$maj
2b660 6f 72 2e 24 69 66 61 63 65 3a 24 76 65 72 73 74  or.$iface:$verst
2b670 72 69 6e 67 22 0a 09 20 20 64 6f 6e 65 0a 0a 09  ring"..  done...
2b680 20 20 23 20 42 65 66 6f 72 65 20 74 68 69 73 20    # Before this 
2b690 70 6f 69 6e 74 2c 20 24 6d 61 6a 6f 72 20 6d 75  point, $major mu
2b6a0 73 74 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 60  st not contain `
2b6b0 2e 27 2e 0a 09 20 20 6d 61 6a 6f 72 3d 2e 24 6d  .'...  major=.$m
2b6c0 61 6a 6f 72 0a 09 20 20 76 65 72 73 75 66 66 69  ajor..  versuffi
2b6d0 78 3d 22 24 6d 61 6a 6f 72 2e 24 72 65 76 69 73  x="$major.$revis
2b6e0 69 6f 6e 22 0a 09 20 20 3b 3b 0a 0a 09 6c 69 6e  ion"..  ;;...lin
2b6f0 75 78 29 0a 09 20 20 66 75 6e 63 5f 61 72 69 74  ux)..  func_arit
2b700 68 20 24 63 75 72 72 65 6e 74 20 2d 20 24 61 67  h $current - $ag
2b710 65 0a 09 20 20 6d 61 6a 6f 72 3d 2e 24 66 75 6e  e..  major=.$fun
2b720 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a 09  c_arith_result..
2b730 20 20 76 65 72 73 75 66 66 69 78 3d 22 24 6d 61    versuffix="$ma
2b740 6a 6f 72 2e 24 61 67 65 2e 24 72 65 76 69 73 69  jor.$age.$revisi
2b750 6f 6e 22 0a 09 20 20 3b 3b 0a 0a 09 6f 73 66 29  on"..  ;;...osf)
2b760 0a 09 20 20 66 75 6e 63 5f 61 72 69 74 68 20 24  ..  func_arith $
2b770 63 75 72 72 65 6e 74 20 2d 20 24 61 67 65 0a 09  current - $age..
2b780 20 20 6d 61 6a 6f 72 3d 2e 24 66 75 6e 63 5f 61    major=.$func_a
2b790 72 69 74 68 5f 72 65 73 75 6c 74 0a 09 20 20 76  rith_result..  v
2b7a0 65 72 73 75 66 66 69 78 3d 22 2e 24 63 75 72 72  ersuffix=".$curr
2b7b0 65 6e 74 2e 24 61 67 65 2e 24 72 65 76 69 73 69  ent.$age.$revisi
2b7c0 6f 6e 22 0a 09 20 20 76 65 72 73 74 72 69 6e 67  on"..  verstring
2b7d0 3d 22 24 63 75 72 72 65 6e 74 2e 24 61 67 65 2e  ="$current.$age.
2b7e0 24 72 65 76 69 73 69 6f 6e 22 0a 0a 09 20 20 23  $revision"...  #
2b7f0 20 41 64 64 20 69 6e 20 61 6c 6c 20 74 68 65 20   Add in all the 
2b800 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20  interfaces that 
2b810 77 65 20 61 72 65 20 63 6f 6d 70 61 74 69 62 6c  we are compatibl
2b820 65 20 77 69 74 68 2e 0a 09 20 20 6c 6f 6f 70 3d  e with...  loop=
2b830 24 61 67 65 0a 09 20 20 77 68 69 6c 65 20 74 65  $age..  while te
2b840 73 74 20 22 24 6c 6f 6f 70 22 20 2d 6e 65 20 30  st "$loop" -ne 0
2b850 3b 20 64 6f 0a 09 20 20 20 20 66 75 6e 63 5f 61  ; do..    func_a
2b860 72 69 74 68 20 24 63 75 72 72 65 6e 74 20 2d 20  rith $current - 
2b870 24 6c 6f 6f 70 0a 09 20 20 20 20 69 66 61 63 65  $loop..    iface
2b880 3d 24 66 75 6e 63 5f 61 72 69 74 68 5f 72 65 73  =$func_arith_res
2b890 75 6c 74 0a 09 20 20 20 20 66 75 6e 63 5f 61 72  ult..    func_ar
2b8a0 69 74 68 20 24 6c 6f 6f 70 20 2d 20 31 0a 09 20  ith $loop - 1.. 
2b8b0 20 20 20 6c 6f 6f 70 3d 24 66 75 6e 63 5f 61 72     loop=$func_ar
2b8c0 69 74 68 5f 72 65 73 75 6c 74 0a 09 20 20 20 20  ith_result..    
2b8d0 76 65 72 73 74 72 69 6e 67 3d 22 24 76 65 72 73  verstring="$vers
2b8e0 74 72 69 6e 67 3a 24 7b 69 66 61 63 65 7d 2e 30  tring:${iface}.0
2b8f0 22 0a 09 20 20 64 6f 6e 65 0a 0a 09 20 20 23 20  "..  done...  # 
2b900 4d 61 6b 65 20 65 78 65 63 75 74 61 62 6c 65 73  Make executables
2b910 20 64 65 70 65 6e 64 20 6f 6e 20 6f 75 72 20 63   depend on our c
2b920 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 2e 0a  urrent version..
2b930 09 20 20 76 65 72 73 74 72 69 6e 67 3d 22 24 76  .  verstring="$v
2b940 65 72 73 74 72 69 6e 67 3a 24 7b 63 75 72 72 65  erstring:${curre
2b950 6e 74 7d 2e 30 22 0a 09 20 20 3b 3b 0a 0a 09 71  nt}.0"..  ;;...q
2b960 6e 78 29 0a 09 20 20 6d 61 6a 6f 72 3d 22 2e 24  nx)..  major=".$
2b970 63 75 72 72 65 6e 74 22 0a 09 20 20 76 65 72 73  current"..  vers
2b980 75 66 66 69 78 3d 22 2e 24 63 75 72 72 65 6e 74  uffix=".$current
2b990 22 0a 09 20 20 3b 3b 0a 0a 09 73 75 6e 6f 73 29  "..  ;;...sunos)
2b9a0 0a 09 20 20 6d 61 6a 6f 72 3d 22 2e 24 63 75 72  ..  major=".$cur
2b9b0 72 65 6e 74 22 0a 09 20 20 76 65 72 73 75 66 66  rent"..  versuff
2b9c0 69 78 3d 22 2e 24 63 75 72 72 65 6e 74 2e 24 72  ix=".$current.$r
2b9d0 65 76 69 73 69 6f 6e 22 0a 09 20 20 3b 3b 0a 0a  evision"..  ;;..
2b9e0 09 77 69 6e 64 6f 77 73 29 0a 09 20 20 23 20 55  .windows)..  # U
2b9f0 73 65 20 27 2d 27 20 72 61 74 68 65 72 20 74 68  se '-' rather th
2ba00 61 6e 20 27 2e 27 2c 20 73 69 6e 63 65 20 77 65  an '.', since we
2ba10 20 6f 6e 6c 79 20 77 61 6e 74 20 6f 6e 65 0a 09   only want one..
2ba20 20 20 23 20 65 78 74 65 6e 73 69 6f 6e 20 6f 6e    # extension on
2ba30 20 44 4f 53 20 38 2e 33 20 66 69 6c 65 73 79 73   DOS 8.3 filesys
2ba40 74 65 6d 73 2e 0a 09 20 20 66 75 6e 63 5f 61 72  tems...  func_ar
2ba50 69 74 68 20 24 63 75 72 72 65 6e 74 20 2d 20 24  ith $current - $
2ba60 61 67 65 0a 09 20 20 6d 61 6a 6f 72 3d 24 66 75  age..  major=$fu
2ba70 6e 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a  nc_arith_result.
2ba80 09 20 20 76 65 72 73 75 66 66 69 78 3d 22 2d 24  .  versuffix="-$
2ba90 6d 61 6a 6f 72 22 0a 09 20 20 3b 3b 0a 0a 09 2a  major"..  ;;...*
2baa0 29 0a 09 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  )..  func_fatal_
2bab0 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 22 75  configuration "u
2bac0 6e 6b 6e 6f 77 6e 20 6c 69 62 72 61 72 79 20 76  nknown library v
2bad0 65 72 73 69 6f 6e 20 74 79 70 65 20 5c 60 24 76  ersion type \`$v
2bae0 65 72 73 69 6f 6e 5f 74 79 70 65 27 22 0a 09 20  ersion_type'".. 
2baf0 20 3b 3b 0a 09 65 73 61 63 0a 0a 09 23 20 43 6c   ;;..esac...# Cl
2bb00 65 61 72 20 74 68 65 20 76 65 72 73 69 6f 6e 20  ear the version 
2bb10 69 6e 66 6f 20 69 66 20 77 65 20 64 65 66 61 75  info if we defau
2bb20 6c 74 65 64 2c 20 61 6e 64 20 74 68 65 79 20 73  lted, and they s
2bb30 70 65 63 69 66 69 65 64 20 61 20 72 65 6c 65 61  pecified a relea
2bb40 73 65 2e 0a 09 69 66 20 74 65 73 74 20 2d 7a 20  se...if test -z 
2bb50 22 24 76 69 6e 66 6f 22 20 26 26 20 74 65 73 74  "$vinfo" && test
2bb60 20 2d 6e 20 22 24 72 65 6c 65 61 73 65 22 3b 20   -n "$release"; 
2bb70 74 68 65 6e 0a 09 20 20 6d 61 6a 6f 72 3d 0a 09  then..  major=..
2bb80 20 20 63 61 73 65 20 24 76 65 72 73 69 6f 6e 5f    case $version_
2bb90 74 79 70 65 20 69 6e 0a 09 20 20 64 61 72 77 69  type in..  darwi
2bba0 6e 29 0a 09 20 20 20 20 23 20 77 65 20 63 61 6e  n)..    # we can
2bbb0 27 74 20 63 68 65 63 6b 20 66 6f 72 20 22 30 2e  't check for "0.
2bbc0 30 22 20 69 6e 20 61 72 63 68 69 76 65 5f 63 6d  0" in archive_cm
2bbd0 64 73 20 64 75 65 20 74 6f 20 71 75 6f 74 69 6e  ds due to quotin
2bbe0 67 0a 09 20 20 20 20 23 20 70 72 6f 62 6c 65 6d  g..    # problem
2bbf0 73 2c 20 73 6f 20 77 65 20 72 65 73 65 74 20 69  s, so we reset i
2bc00 74 20 63 6f 6d 70 6c 65 74 65 6c 79 0a 09 20 20  t completely..  
2bc10 20 20 76 65 72 73 74 72 69 6e 67 3d 0a 09 20 20    verstring=..  
2bc20 20 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20    ;;..  *)..    
2bc30 76 65 72 73 74 72 69 6e 67 3d 22 30 2e 30 22 0a  verstring="0.0".
2bc40 09 20 20 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a  .    ;;..  esac.
2bc50 09 20 20 69 66 20 74 65 73 74 20 22 24 6e 65 65  .  if test "$nee
2bc60 64 5f 76 65 72 73 69 6f 6e 22 20 3d 20 6e 6f 3b  d_version" = no;
2bc70 20 74 68 65 6e 0a 09 20 20 20 20 76 65 72 73 75   then..    versu
2bc80 66 66 69 78 3d 0a 09 20 20 65 6c 73 65 0a 09 20  ffix=..  else.. 
2bc90 20 20 20 76 65 72 73 75 66 66 69 78 3d 22 2e 30     versuffix=".0
2bca0 2e 30 22 0a 09 20 20 66 69 0a 09 66 69 0a 0a 09  .0"..  fi..fi...
2bcb0 23 20 52 65 6d 6f 76 65 20 76 65 72 73 69 6f 6e  # Remove version
2bcc0 20 69 6e 66 6f 20 66 72 6f 6d 20 6e 61 6d 65 20   info from name 
2bcd0 69 66 20 76 65 72 73 69 6f 6e 69 6e 67 20 73 68  if versioning sh
2bce0 6f 75 6c 64 20 62 65 20 61 76 6f 69 64 65 64 0a  ould be avoided.
2bcf0 09 69 66 20 74 65 73 74 20 22 24 61 76 6f 69 64  .if test "$avoid
2bd00 5f 76 65 72 73 69 6f 6e 22 20 3d 20 79 65 73 20  _version" = yes 
2bd10 26 26 20 74 65 73 74 20 22 24 6e 65 65 64 5f 76  && test "$need_v
2bd20 65 72 73 69 6f 6e 22 20 3d 20 6e 6f 3b 20 74 68  ersion" = no; th
2bd30 65 6e 0a 09 20 20 6d 61 6a 6f 72 3d 0a 09 20 20  en..  major=..  
2bd40 76 65 72 73 75 66 66 69 78 3d 0a 09 20 20 76 65  versuffix=..  ve
2bd50 72 73 74 72 69 6e 67 3d 22 22 0a 09 66 69 0a 0a  rstring=""..fi..
2bd60 09 23 20 43 68 65 63 6b 20 74 6f 20 73 65 65 20  .# Check to see 
2bd70 69 66 20 74 68 65 20 61 72 63 68 69 76 65 20 77  if the archive w
2bd80 69 6c 6c 20 68 61 76 65 20 75 6e 64 65 66 69 6e  ill have undefin
2bd90 65 64 20 73 79 6d 62 6f 6c 73 2e 0a 09 69 66 20  ed symbols...if 
2bda0 74 65 73 74 20 22 24 61 6c 6c 6f 77 5f 75 6e 64  test "$allow_und
2bdb0 65 66 69 6e 65 64 22 20 3d 20 79 65 73 3b 20 74  efined" = yes; t
2bdc0 68 65 6e 0a 09 20 20 69 66 20 74 65 73 74 20 22  hen..  if test "
2bdd0 24 61 6c 6c 6f 77 5f 75 6e 64 65 66 69 6e 65 64  $allow_undefined
2bde0 5f 66 6c 61 67 22 20 3d 20 75 6e 73 75 70 70 6f  _flag" = unsuppo
2bdf0 72 74 65 64 3b 20 74 68 65 6e 0a 09 20 20 20 20  rted; then..    
2be00 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 75 6e  func_warning "un
2be10 64 65 66 69 6e 65 64 20 73 79 6d 62 6f 6c 73 20  defined symbols 
2be20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 24  not allowed in $
2be30 68 6f 73 74 20 73 68 61 72 65 64 20 6c 69 62 72  host shared libr
2be40 61 72 69 65 73 22 0a 09 20 20 20 20 62 75 69 6c  aries"..    buil
2be50 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 3d 6e  d_libtool_libs=n
2be60 6f 0a 09 20 20 20 20 62 75 69 6c 64 5f 6f 6c 64  o..    build_old
2be70 5f 6c 69 62 73 3d 79 65 73 0a 09 20 20 66 69 0a  _libs=yes..  fi.
2be80 09 65 6c 73 65 0a 09 20 20 23 20 44 6f 6e 27 74  .else..  # Don't
2be90 20 61 6c 6c 6f 77 20 75 6e 64 65 66 69 6e 65 64   allow undefined
2bea0 20 73 79 6d 62 6f 6c 73 2e 0a 09 20 20 61 6c 6c   symbols...  all
2beb0 6f 77 5f 75 6e 64 65 66 69 6e 65 64 5f 66 6c 61  ow_undefined_fla
2bec0 67 3d 22 24 6e 6f 5f 75 6e 64 65 66 69 6e 65 64  g="$no_undefined
2bed0 5f 66 6c 61 67 22 0a 09 66 69 0a 0a 20 20 20 20  _flag"..fi..    
2bee0 20 20 66 69 0a 0a 20 20 20 20 20 20 66 75 6e 63    fi..      func
2bef0 5f 67 65 6e 65 72 61 74 65 5f 64 6c 73 79 6d 73  _generate_dlsyms
2bf00 20 22 24 6c 69 62 6e 61 6d 65 22 20 22 24 6c 69   "$libname" "$li
2bf10 62 6e 61 6d 65 22 20 22 79 65 73 22 0a 20 20 20  bname" "yes".   
2bf20 20 20 20 6c 69 62 6f 62 6a 73 3d 22 24 6c 69 62     libobjs="$lib
2bf30 6f 62 6a 73 20 24 73 79 6d 66 69 6c 65 6f 62 6a  objs $symfileobj
2bf40 22 0a 20 20 20 20 20 20 74 65 73 74 20 22 58 24  ".      test "X$
2bf50 6c 69 62 6f 62 6a 73 22 20 3d 20 22 58 20 22 20  libobjs" = "X " 
2bf60 26 26 20 6c 69 62 6f 62 6a 73 3d 0a 0a 20 20 20  && libobjs=..   
2bf70 20 20 20 69 66 20 74 65 73 74 20 22 24 6d 6f 64     if test "$mod
2bf80 65 22 20 21 3d 20 72 65 6c 69 6e 6b 3b 20 74 68  e" != relink; th
2bf90 65 6e 0a 09 23 20 52 65 6d 6f 76 65 20 6f 75 72  en..# Remove our
2bfa0 20 6f 75 74 70 75 74 73 2c 20 62 75 74 20 64 6f   outputs, but do
2bfb0 6e 27 74 20 72 65 6d 6f 76 65 20 6f 62 6a 65 63  n't remove objec
2bfc0 74 20 66 69 6c 65 73 20 73 69 6e 63 65 20 74 68  t files since th
2bfd0 65 79 0a 09 23 20 6d 61 79 20 68 61 76 65 20 62  ey..# may have b
2bfe0 65 65 6e 20 63 72 65 61 74 65 64 20 77 68 65 6e  een created when
2bff0 20 63 6f 6d 70 69 6c 69 6e 67 20 50 49 43 20 6f   compiling PIC o
2c000 62 6a 65 63 74 73 2e 0a 09 72 65 6d 6f 76 65 6c  bjects...removel
2c010 69 73 74 3d 0a 09 74 65 6d 70 72 65 6d 6f 76 65  ist=..tempremove
2c020 6c 69 73 74 3d 60 24 45 43 48 4f 20 22 24 6f 75  list=`$ECHO "$ou
2c030 74 70 75 74 5f 6f 62 6a 64 69 72 2f 2a 22 60 0a  tput_objdir/*"`.
2c040 09 66 6f 72 20 70 20 69 6e 20 24 74 65 6d 70 72  .for p in $tempr
2c050 65 6d 6f 76 65 6c 69 73 74 3b 20 64 6f 0a 09 20  emovelist; do.. 
2c060 20 63 61 73 65 20 24 70 20 69 6e 0a 09 20 20 20   case $p in..   
2c070 20 2a 2e 24 6f 62 6a 65 78 74 20 7c 20 2a 2e 67   *.$objext | *.g
2c080 63 6e 6f 29 0a 09 20 20 20 20 20 20 20 3b 3b 0a  cno)..       ;;.
2c090 09 20 20 20 20 24 6f 75 74 70 75 74 5f 6f 62 6a  .    $output_obj
2c0a0 64 69 72 2f 24 6f 75 74 70 75 74 6e 61 6d 65 20  dir/$outputname 
2c0b0 7c 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72  | $output_objdir
2c0c0 2f 24 6c 69 62 6e 61 6d 65 2e 2a 20 7c 20 24 6f  /$libname.* | $o
2c0d0 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 7b 6c  utput_objdir/${l
2c0e0 69 62 6e 61 6d 65 7d 24 7b 72 65 6c 65 61 73 65  ibname}${release
2c0f0 7d 2e 2a 29 0a 09 20 20 20 20 20 20 20 69 66 20  }.*)..       if 
2c100 74 65 73 74 20 22 58 24 70 72 65 63 69 6f 75 73  test "X$precious
2c110 5f 66 69 6c 65 73 5f 72 65 67 65 78 22 20 21 3d  _files_regex" !=
2c120 20 22 58 22 3b 20 74 68 65 6e 0a 09 09 20 69 66   "X"; then... if
2c130 20 24 45 43 48 4f 20 22 24 70 22 20 7c 20 24 45   $ECHO "$p" | $E
2c140 47 52 45 50 20 2d 65 20 22 24 70 72 65 63 69 6f  GREP -e "$precio
2c150 75 73 5f 66 69 6c 65 73 5f 72 65 67 65 78 22 20  us_files_regex" 
2c160 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 0a  >/dev/null 2>&1.
2c170 09 09 20 74 68 65 6e 0a 09 09 20 20 20 63 6f 6e  .. then...   con
2c180 74 69 6e 75 65 0a 09 09 20 66 69 0a 09 20 20 20  tinue... fi..   
2c190 20 20 20 20 66 69 0a 09 20 20 20 20 20 20 20 72      fi..       r
2c1a0 65 6d 6f 76 65 6c 69 73 74 3d 22 24 72 65 6d 6f  emovelist="$remo
2c1b0 76 65 6c 69 73 74 20 24 70 22 0a 09 20 20 20 20  velist $p"..    
2c1c0 20 20 20 3b 3b 0a 09 20 20 20 20 2a 29 20 3b 3b     ;;..    *) ;;
2c1d0 0a 09 20 20 65 73 61 63 0a 09 64 6f 6e 65 0a 09  ..  esac..done..
2c1e0 74 65 73 74 20 2d 6e 20 22 24 72 65 6d 6f 76 65  test -n "$remove
2c1f0 6c 69 73 74 22 20 26 26 20 5c 0a 09 20 20 66 75  list" && \..  fu
2c200 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20 22 24 7b  nc_show_eval "${
2c210 52 4d 7d 72 20 5c 24 72 65 6d 6f 76 65 6c 69 73  RM}r \$removelis
2c220 74 22 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20  t".      fi..   
2c230 20 20 20 23 20 4e 6f 77 20 73 65 74 20 74 68 65     # Now set the
2c240 20 76 61 72 69 61 62 6c 65 73 20 66 6f 72 20 62   variables for b
2c250 75 69 6c 64 69 6e 67 20 6f 6c 64 20 6c 69 62 72  uilding old libr
2c260 61 72 69 65 73 2e 0a 20 20 20 20 20 20 69 66 20  aries..      if 
2c270 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c 64  test "$build_old
2c280 5f 6c 69 62 73 22 20 3d 20 79 65 73 20 26 26 20  _libs" = yes && 
2c290 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6c 69 62  test "$build_lib
2c2a0 74 6f 6f 6c 5f 6c 69 62 73 22 20 21 3d 20 63 6f  tool_libs" != co
2c2b0 6e 76 65 6e 69 65 6e 63 65 20 3b 20 74 68 65 6e  nvenience ; then
2c2c0 0a 09 6f 6c 64 6c 69 62 73 3d 22 24 6f 6c 64 6c  ..oldlibs="$oldl
2c2d0 69 62 73 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64  ibs $output_objd
2c2e0 69 72 2f 24 6c 69 62 6e 61 6d 65 2e 24 6c 69 62  ir/$libname.$lib
2c2f0 65 78 74 22 0a 0a 09 23 20 54 72 61 6e 73 66 6f  ext"...# Transfo
2c300 72 6d 20 2e 6c 6f 20 66 69 6c 65 73 20 74 6f 20  rm .lo files to 
2c310 2e 6f 20 66 69 6c 65 73 2e 0a 09 6f 6c 64 6f 62  .o files...oldob
2c320 6a 73 3d 22 24 6f 62 6a 73 20 22 60 24 45 43 48  js="$objs "`$ECH
2c330 4f 20 22 58 24 6c 69 62 6f 62 6a 73 22 20 7c 20  O "X$libobjs" | 
2c340 24 53 50 32 4e 4c 20 7c 20 24 58 73 65 64 20 2d  $SP2NL | $Xsed -
2c350 65 20 27 2f 5c 2e 27 24 7b 6c 69 62 65 78 74 7d  e '/\.'${libext}
2c360 27 24 2f 64 27 20 2d 65 20 22 24 6c 6f 32 6f 22  '$/d' -e "$lo2o"
2c370 20 7c 20 24 4e 4c 32 53 50 60 0a 20 20 20 20 20   | $NL2SP`.     
2c380 20 66 69 0a 0a 20 20 20 20 20 20 23 20 45 6c 69   fi..      # Eli
2c390 6d 69 6e 61 74 65 20 61 6c 6c 20 74 65 6d 70 6f  minate all tempo
2c3a0 72 61 72 79 20 64 69 72 65 63 74 6f 72 69 65 73  rary directories
2c3b0 2e 0a 20 20 20 20 20 20 23 66 6f 72 20 70 61 74  ..      #for pat
2c3c0 68 20 69 6e 20 24 6e 6f 74 69 6e 73 74 5f 70 61  h in $notinst_pa
2c3d0 74 68 3b 20 64 6f 0a 20 20 20 20 20 20 23 09 6c  th; do.      #.l
2c3e0 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 3d 60  ib_search_path=`
2c3f0 24 45 43 48 4f 20 22 58 24 6c 69 62 5f 73 65 61  $ECHO "X$lib_sea
2c400 72 63 68 5f 70 61 74 68 20 22 20 7c 20 24 58 73  rch_path " | $Xs
2c410 65 64 20 2d 65 20 22 73 25 20 24 70 61 74 68 20  ed -e "s% $path 
2c420 25 20 25 67 22 60 0a 20 20 20 20 20 20 23 09 64  % %g"`.      #.d
2c430 65 70 6c 69 62 73 3d 60 24 45 43 48 4f 20 22 58  eplibs=`$ECHO "X
2c440 24 64 65 70 6c 69 62 73 20 22 20 7c 20 24 58 73  $deplibs " | $Xs
2c450 65 64 20 2d 65 20 22 73 25 20 2d 4c 24 70 61 74  ed -e "s% -L$pat
2c460 68 20 25 20 25 67 22 60 0a 20 20 20 20 20 20 23  h % %g"`.      #
2c470 09 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73  .dependency_libs
2c480 3d 60 24 45 43 48 4f 20 22 58 24 64 65 70 65 6e  =`$ECHO "X$depen
2c490 64 65 6e 63 79 5f 6c 69 62 73 20 22 20 7c 20 24  dency_libs " | $
2c4a0 58 73 65 64 20 2d 65 20 22 73 25 20 2d 4c 24 70  Xsed -e "s% -L$p
2c4b0 61 74 68 20 25 20 25 67 22 60 0a 20 20 20 20 20  ath % %g"`.     
2c4c0 20 23 64 6f 6e 65 0a 0a 20 20 20 20 20 20 69 66   #done..      if
2c4d0 20 74 65 73 74 20 2d 6e 20 22 24 78 72 70 61 74   test -n "$xrpat
2c4e0 68 22 3b 20 74 68 65 6e 0a 09 23 20 49 66 20 74  h"; then..# If t
2c4f0 68 65 20 75 73 65 72 20 73 70 65 63 69 66 69 65  he user specifie
2c500 64 20 61 6e 79 20 72 70 61 74 68 20 66 6c 61 67  d any rpath flag
2c510 73 2c 20 74 68 65 6e 20 61 64 64 20 74 68 65 6d  s, then add them
2c520 2e 0a 09 74 65 6d 70 5f 78 72 70 61 74 68 3d 0a  ...temp_xrpath=.
2c530 09 66 6f 72 20 6c 69 62 64 69 72 20 69 6e 20 24  .for libdir in $
2c540 78 72 70 61 74 68 3b 20 64 6f 0a 09 20 20 74 65  xrpath; do..  te
2c550 6d 70 5f 78 72 70 61 74 68 3d 22 24 74 65 6d 70  mp_xrpath="$temp
2c560 5f 78 72 70 61 74 68 20 2d 52 24 6c 69 62 64 69  _xrpath -R$libdi
2c570 72 22 0a 09 20 20 63 61 73 65 20 22 24 66 69 6e  r"..  case "$fin
2c580 61 6c 69 7a 65 5f 72 70 61 74 68 20 22 20 69 6e  alize_rpath " in
2c590 0a 09 20 20 2a 22 20 24 6c 69 62 64 69 72 20 22  ..  *" $libdir "
2c5a0 2a 29 20 3b 3b 0a 09 20 20 2a 29 20 66 69 6e 61  *) ;;..  *) fina
2c5b0 6c 69 7a 65 5f 72 70 61 74 68 3d 22 24 66 69 6e  lize_rpath="$fin
2c5c0 61 6c 69 7a 65 5f 72 70 61 74 68 20 24 6c 69 62  alize_rpath $lib
2c5d0 64 69 72 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a  dir" ;;..  esac.
2c5e0 09 64 6f 6e 65 0a 09 69 66 20 74 65 73 74 20 22  .done..if test "
2c5f0 24 68 61 72 64 63 6f 64 65 5f 69 6e 74 6f 5f 6c  $hardcode_into_l
2c600 69 62 73 22 20 21 3d 20 79 65 73 20 7c 7c 20 74  ibs" != yes || t
2c610 65 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c 64 5f  est "$build_old_
2c620 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74 68 65  libs" = yes; the
2c630 6e 0a 09 20 20 64 65 70 65 6e 64 65 6e 63 79 5f  n..  dependency_
2c640 6c 69 62 73 3d 22 24 74 65 6d 70 5f 78 72 70 61  libs="$temp_xrpa
2c650 74 68 20 24 64 65 70 65 6e 64 65 6e 63 79 5f 6c  th $dependency_l
2c660 69 62 73 22 0a 09 66 69 0a 20 20 20 20 20 20 66  ibs"..fi.      f
2c670 69 0a 0a 20 20 20 20 20 20 23 20 4d 61 6b 65 20  i..      # Make 
2c680 73 75 72 65 20 64 6c 66 69 6c 65 73 20 63 6f 6e  sure dlfiles con
2c690 74 61 69 6e 73 20 6f 6e 6c 79 20 75 6e 69 71 75  tains only uniqu
2c6a0 65 20 66 69 6c 65 73 20 74 68 61 74 20 77 6f 6e  e files that won
2c6b0 27 74 20 62 65 20 64 6c 70 72 65 6f 70 65 6e 65  't be dlpreopene
2c6c0 64 0a 20 20 20 20 20 20 6f 6c 64 5f 64 6c 66 69  d.      old_dlfi
2c6d0 6c 65 73 3d 22 24 64 6c 66 69 6c 65 73 22 0a 20  les="$dlfiles". 
2c6e0 20 20 20 20 20 64 6c 66 69 6c 65 73 3d 0a 20 20       dlfiles=.  
2c6f0 20 20 20 20 66 6f 72 20 6c 69 62 20 69 6e 20 24      for lib in $
2c700 6f 6c 64 5f 64 6c 66 69 6c 65 73 3b 20 64 6f 0a  old_dlfiles; do.
2c710 09 63 61 73 65 20 22 20 24 64 6c 70 72 65 66 69  .case " $dlprefi
2c720 6c 65 73 20 24 64 6c 66 69 6c 65 73 20 22 20 69  les $dlfiles " i
2c730 6e 0a 09 2a 22 20 24 6c 69 62 20 22 2a 29 20 3b  n..*" $lib "*) ;
2c740 3b 0a 09 2a 29 20 64 6c 66 69 6c 65 73 3d 22 24  ;..*) dlfiles="$
2c750 64 6c 66 69 6c 65 73 20 24 6c 69 62 22 20 3b 3b  dlfiles $lib" ;;
2c760 0a 09 65 73 61 63 0a 20 20 20 20 20 20 64 6f 6e  ..esac.      don
2c770 65 0a 0a 20 20 20 20 20 20 23 20 4d 61 6b 65 20  e..      # Make 
2c780 73 75 72 65 20 64 6c 70 72 65 66 69 6c 65 73 20  sure dlprefiles 
2c790 63 6f 6e 74 61 69 6e 73 20 6f 6e 6c 79 20 75 6e  contains only un
2c7a0 69 71 75 65 20 66 69 6c 65 73 0a 20 20 20 20 20  ique files.     
2c7b0 20 6f 6c 64 5f 64 6c 70 72 65 66 69 6c 65 73 3d   old_dlprefiles=
2c7c0 22 24 64 6c 70 72 65 66 69 6c 65 73 22 0a 20 20  "$dlprefiles".  
2c7d0 20 20 20 20 64 6c 70 72 65 66 69 6c 65 73 3d 0a      dlprefiles=.
2c7e0 20 20 20 20 20 20 66 6f 72 20 6c 69 62 20 69 6e        for lib in
2c7f0 20 24 6f 6c 64 5f 64 6c 70 72 65 66 69 6c 65 73   $old_dlprefiles
2c800 3b 20 64 6f 0a 09 63 61 73 65 20 22 24 64 6c 70  ; do..case "$dlp
2c810 72 65 66 69 6c 65 73 20 22 20 69 6e 0a 09 2a 22  refiles " in..*"
2c820 20 24 6c 69 62 20 22 2a 29 20 3b 3b 0a 09 2a 29   $lib "*) ;;..*)
2c830 20 64 6c 70 72 65 66 69 6c 65 73 3d 22 24 64 6c   dlprefiles="$dl
2c840 70 72 65 66 69 6c 65 73 20 24 6c 69 62 22 20 3b  prefiles $lib" ;
2c850 3b 0a 09 65 73 61 63 0a 20 20 20 20 20 20 64 6f  ;..esac.      do
2c860 6e 65 0a 0a 20 20 20 20 20 20 69 66 20 74 65 73  ne..      if tes
2c870 74 20 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f  t "$build_libtoo
2c880 6c 5f 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74  l_libs" = yes; t
2c890 68 65 6e 0a 09 69 66 20 74 65 73 74 20 2d 6e 20  hen..if test -n 
2c8a0 22 24 72 70 61 74 68 22 3b 20 74 68 65 6e 0a 09  "$rpath"; then..
2c8b0 20 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a    case $host in.
2c8c0 09 20 20 2a 2d 2a 2d 63 79 67 77 69 6e 2a 20 7c  .  *-*-cygwin* |
2c8d0 20 2a 2d 2a 2d 6d 69 6e 67 77 2a 20 7c 20 2a 2d   *-*-mingw* | *-
2c8e0 2a 2d 70 77 33 32 2a 20 7c 20 2a 2d 2a 2d 6f 73  *-pw32* | *-*-os
2c8f0 32 2a 20 7c 20 2a 2d 2a 2d 62 65 6f 73 2a 20 7c  2* | *-*-beos* |
2c900 20 2a 2d 63 65 67 63 63 2a 29 0a 09 20 20 20 20   *-cegcc*)..    
2c910 23 20 74 68 65 73 65 20 73 79 73 74 65 6d 73 20  # these systems 
2c920 64 6f 6e 27 74 20 61 63 74 75 61 6c 6c 79 20 68  don't actually h
2c930 61 76 65 20 61 20 63 20 6c 69 62 72 61 72 79 20  ave a c library 
2c940 28 61 73 20 73 75 63 68 29 21 0a 09 20 20 20 20  (as such)!..    
2c950 3b 3b 0a 09 20 20 2a 2d 2a 2d 72 68 61 70 73 6f  ;;..  *-*-rhapso
2c960 64 79 2a 20 7c 20 2a 2d 2a 2d 64 61 72 77 69 6e  dy* | *-*-darwin
2c970 31 2e 5b 30 31 32 5d 29 0a 09 20 20 20 20 23 20  1.[012])..    # 
2c980 52 68 61 70 73 6f 64 79 20 43 20 6c 69 62 72 61  Rhapsody C libra
2c990 72 79 20 69 73 20 69 6e 20 74 68 65 20 53 79 73  ry is in the Sys
2c9a0 74 65 6d 20 66 72 61 6d 65 77 6f 72 6b 0a 09 20  tem framework.. 
2c9b0 20 20 20 64 65 70 6c 69 62 73 3d 22 24 64 65 70     deplibs="$dep
2c9c0 6c 69 62 73 20 53 79 73 74 65 6d 2e 6c 74 66 72  libs System.ltfr
2c9d0 61 6d 65 77 6f 72 6b 22 0a 09 20 20 20 20 3b 3b  amework"..    ;;
2c9e0 0a 09 20 20 2a 2d 2a 2d 6e 65 74 62 73 64 2a 29  ..  *-*-netbsd*)
2c9f0 0a 09 20 20 20 20 23 20 44 6f 6e 27 74 20 6c 69  ..    # Don't li
2ca00 6e 6b 20 77 69 74 68 20 6c 69 62 63 20 75 6e 74  nk with libc unt
2ca10 69 6c 20 74 68 65 20 61 2e 6f 75 74 20 6c 64 2e  il the a.out ld.
2ca20 73 6f 20 69 73 20 66 69 78 65 64 2e 0a 09 20 20  so is fixed...  
2ca30 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 6f 70 65 6e    ;;..  *-*-open
2ca40 62 73 64 2a 20 7c 20 2a 2d 2a 2d 66 72 65 65 62  bsd* | *-*-freeb
2ca50 73 64 2a 20 7c 20 2a 2d 2a 2d 64 72 61 67 6f 6e  sd* | *-*-dragon
2ca60 66 6c 79 2a 29 0a 09 20 20 20 20 23 20 44 6f 20  fly*)..    # Do 
2ca70 6e 6f 74 20 69 6e 63 6c 75 64 65 20 6c 69 62 63  not include libc
2ca80 20 64 75 65 20 74 6f 20 75 73 20 68 61 76 69 6e   due to us havin
2ca90 67 20 6c 69 62 63 2f 6c 69 62 63 5f 72 2e 0a 09  g libc/libc_r...
2caa0 20 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 73 63      ;;..  *-*-sc
2cab0 6f 33 2e 32 76 35 2a 20 7c 20 2a 2d 2a 2d 73 63  o3.2v5* | *-*-sc
2cac0 6f 35 76 36 2a 29 0a 09 20 20 20 20 23 20 43 61  o5v6*)..    # Ca
2cad0 75 73 65 73 20 70 72 6f 62 6c 65 6d 73 20 77 69  uses problems wi
2cae0 74 68 20 5f 5f 63 74 79 70 65 0a 09 20 20 20 20  th __ctype..    
2caf0 3b 3b 0a 09 20 20 2a 2d 2a 2d 73 79 73 76 34 2e  ;;..  *-*-sysv4.
2cb00 32 75 77 32 2a 20 7c 20 2a 2d 2a 2d 73 79 73 76  2uw2* | *-*-sysv
2cb10 35 2a 20 7c 20 2a 2d 2a 2d 75 6e 69 78 77 61 72  5* | *-*-unixwar
2cb20 65 2a 20 7c 20 2a 2d 2a 2d 4f 70 65 6e 55 4e 49  e* | *-*-OpenUNI
2cb30 58 2a 29 0a 09 20 20 20 20 23 20 43 6f 6d 70 69  X*)..    # Compi
2cb40 6c 65 72 20 69 6e 73 65 72 74 73 20 6c 69 62 63  ler inserts libc
2cb50 20 69 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20   in the correct 
2cb60 70 6c 61 63 65 20 66 6f 72 20 74 68 72 65 61 64  place for thread
2cb70 73 20 74 6f 20 77 6f 72 6b 0a 09 20 20 20 20 3b  s to work..    ;
2cb80 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20 23 20 41  ;..  *)..    # A
2cb90 64 64 20 6c 69 62 63 20 74 6f 20 64 65 70 6c 69  dd libc to depli
2cba0 62 73 20 6f 6e 20 61 6c 6c 20 6f 74 68 65 72 20  bs on all other 
2cbb0 73 79 73 74 65 6d 73 20 69 66 20 6e 65 63 65 73  systems if neces
2cbc0 73 61 72 79 2e 0a 09 20 20 20 20 69 66 20 74 65  sary...    if te
2cbd0 73 74 20 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f  st "$build_libto
2cbe0 6f 6c 5f 6e 65 65 64 5f 6c 63 22 20 3d 20 22 79  ol_need_lc" = "y
2cbf0 65 73 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  es"; then..     
2cc00 20 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69   deplibs="$depli
2cc10 62 73 20 2d 6c 63 22 0a 09 20 20 20 20 66 69 0a  bs -lc"..    fi.
2cc20 09 20 20 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a  .    ;;..  esac.
2cc30 09 66 69 0a 0a 09 23 20 54 72 61 6e 73 66 6f 72  .fi...# Transfor
2cc40 6d 20 64 65 70 6c 69 62 73 20 69 6e 74 6f 20 6f  m deplibs into o
2cc50 6e 6c 79 20 64 65 70 6c 69 62 73 20 74 68 61 74  nly deplibs that
2cc60 20 63 61 6e 20 62 65 20 6c 69 6e 6b 65 64 20 69   can be linked i
2cc70 6e 20 73 68 61 72 65 64 2e 0a 09 6e 61 6d 65 5f  n shared...name_
2cc80 73 61 76 65 3d 24 6e 61 6d 65 0a 09 6c 69 62 6e  save=$name..libn
2cc90 61 6d 65 5f 73 61 76 65 3d 24 6c 69 62 6e 61 6d  ame_save=$libnam
2cca0 65 0a 09 72 65 6c 65 61 73 65 5f 73 61 76 65 3d  e..release_save=
2ccb0 24 72 65 6c 65 61 73 65 0a 09 76 65 72 73 75 66  $release..versuf
2ccc0 66 69 78 5f 73 61 76 65 3d 24 76 65 72 73 75 66  fix_save=$versuf
2ccd0 66 69 78 0a 09 6d 61 6a 6f 72 5f 73 61 76 65 3d  fix..major_save=
2cce0 24 6d 61 6a 6f 72 0a 09 23 20 49 27 6d 20 6e 6f  $major..# I'm no
2ccf0 74 20 73 75 72 65 20 69 66 20 49 27 6d 20 74 72  t sure if I'm tr
2cd00 65 61 74 69 6e 67 20 74 68 65 20 72 65 6c 65 61  eating the relea
2cd10 73 65 20 63 6f 72 72 65 63 74 6c 79 2e 20 20 49  se correctly.  I
2cd20 20 74 68 69 6e 6b 0a 09 23 20 72 65 6c 65 61 73   think..# releas
2cd30 65 20 73 68 6f 75 6c 64 20 73 68 6f 77 20 75 70  e should show up
2cd40 20 69 6e 20 74 68 65 20 2d 6c 20 28 69 65 20 2d   in the -l (ie -
2cd50 6c 67 6d 70 35 29 20 73 6f 20 77 65 20 64 6f 6e  lgmp5) so we don
2cd60 27 74 20 77 61 6e 74 20 74 6f 0a 09 23 20 61 64  't want to..# ad
2cd70 64 20 69 74 20 69 6e 20 74 77 69 63 65 2e 20 20  d it in twice.  
2cd80 49 73 20 74 68 61 74 20 63 6f 72 72 65 63 74 3f  Is that correct?
2cd90 0a 09 72 65 6c 65 61 73 65 3d 22 22 0a 09 76 65  ..release=""..ve
2cda0 72 73 75 66 66 69 78 3d 22 22 0a 09 6d 61 6a 6f  rsuffix=""..majo
2cdb0 72 3d 22 22 0a 09 6e 65 77 64 65 70 6c 69 62 73  r=""..newdeplibs
2cdc0 3d 0a 09 64 72 6f 70 70 65 64 64 65 70 73 3d 6e  =..droppeddeps=n
2cdd0 6f 0a 09 63 61 73 65 20 24 64 65 70 6c 69 62 73  o..case $deplibs
2cde0 5f 63 68 65 63 6b 5f 6d 65 74 68 6f 64 20 69 6e  _check_method in
2cdf0 0a 09 70 61 73 73 5f 61 6c 6c 29 0a 09 20 20 23  ..pass_all)..  #
2ce00 20 44 6f 6e 27 74 20 63 68 65 63 6b 20 66 6f 72   Don't check for
2ce10 20 73 68 61 72 65 64 2f 73 74 61 74 69 63 2e 20   shared/static. 
2ce20 20 45 76 65 72 79 74 68 69 6e 67 20 77 6f 72 6b   Everything work
2ce30 73 2e 0a 09 20 20 23 20 54 68 69 73 20 6d 69 67  s...  # This mig
2ce40 68 74 20 62 65 20 61 20 6c 69 74 74 6c 65 20 6e  ht be a little n
2ce50 61 69 76 65 2e 20 20 57 65 20 6d 69 67 68 74 20  aive.  We might 
2ce60 77 61 6e 74 20 74 6f 20 63 68 65 63 6b 0a 09 20  want to check.. 
2ce70 20 23 20 77 68 65 74 68 65 72 20 74 68 65 20 6c   # whether the l
2ce80 69 62 72 61 72 79 20 65 78 69 73 74 73 20 6f 72  ibrary exists or
2ce90 20 6e 6f 74 2e 20 20 42 75 74 20 74 68 69 73 20   not.  But this 
2cea0 69 73 20 6f 6e 0a 09 20 20 23 20 6f 73 66 33 20  is on..  # osf3 
2ceb0 26 20 6f 73 66 34 20 61 6e 64 20 49 27 6d 20 6e  & osf4 and I'm n
2cec0 6f 74 20 72 65 61 6c 6c 79 20 73 75 72 65 2e 2e  ot really sure..
2ced0 2e 20 4a 75 73 74 0a 09 20 20 23 20 69 6d 70 6c  . Just..  # impl
2cee0 65 6d 65 6e 74 69 6e 67 20 77 68 61 74 20 77 61  ementing what wa
2cef0 73 20 61 6c 72 65 61 64 79 20 74 68 65 20 62 65  s already the be
2cf00 68 61 76 69 6f 72 2e 0a 09 20 20 6e 65 77 64 65  havior...  newde
2cf10 70 6c 69 62 73 3d 24 64 65 70 6c 69 62 73 0a 09  plibs=$deplibs..
2cf20 20 20 3b 3b 0a 09 74 65 73 74 5f 63 6f 6d 70 69    ;;..test_compi
2cf30 6c 65 29 0a 09 20 20 23 20 54 68 69 73 20 63 6f  le)..  # This co
2cf40 64 65 20 73 74 72 65 73 73 65 73 20 74 68 65 20  de stresses the 
2cf50 22 6c 69 62 72 61 72 69 65 73 20 61 72 65 20 70  "libraries are p
2cf60 72 6f 67 72 61 6d 73 22 20 70 61 72 61 64 69 67  rograms" paradig
2cf70 6d 20 74 6f 20 69 74 73 0a 09 20 20 23 20 6c 69  m to its..  # li
2cf80 6d 69 74 73 2e 20 4d 61 79 62 65 20 65 76 65 6e  mits. Maybe even
2cf90 20 62 72 65 61 6b 73 20 69 74 2e 20 20 57 65 20   breaks it.  We 
2cfa0 63 6f 6d 70 69 6c 65 20 61 20 70 72 6f 67 72 61  compile a progra
2cfb0 6d 2c 20 6c 69 6e 6b 69 6e 67 20 69 74 0a 09 20  m, linking it.. 
2cfc0 20 23 20 61 67 61 69 6e 73 74 20 74 68 65 20 64   # against the d
2cfd0 65 70 6c 69 62 73 20 61 73 20 61 20 70 72 6f 78  eplibs as a prox
2cfe0 79 20 66 6f 72 20 74 68 65 20 6c 69 62 72 61 72  y for the librar
2cff0 79 2e 20 20 54 68 65 6e 20 77 65 20 63 61 6e 20  y.  Then we can 
2d000 63 68 65 63 6b 0a 09 20 20 23 20 77 68 65 74 68  check..  # wheth
2d010 65 72 20 74 68 65 79 20 6c 69 6e 6b 65 64 20 69  er they linked i
2d020 6e 20 73 74 61 74 69 63 61 6c 6c 79 20 6f 72 20  n statically or 
2d030 64 79 6e 61 6d 69 63 61 6c 6c 79 20 77 69 74 68  dynamically with
2d040 20 6c 64 64 2e 0a 09 20 20 24 6f 70 74 5f 64 72   ldd...  $opt_dr
2d050 79 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 63 6f 6e  y_run || $RM con
2d060 66 74 65 73 74 2e 63 0a 09 20 20 63 61 74 20 3e  ftest.c..  cat >
2d070 20 63 6f 6e 66 74 65 73 74 2e 63 20 3c 3c 45 4f   conftest.c <<EO
2d080 46 0a 09 20 20 69 6e 74 20 6d 61 69 6e 28 29 20  F..  int main() 
2d090 7b 20 72 65 74 75 72 6e 20 30 3b 20 7d 0a 45 4f  { return 0; }.EO
2d0a0 46 0a 09 20 20 24 6f 70 74 5f 64 72 79 5f 72 75  F..  $opt_dry_ru
2d0b0 6e 20 7c 7c 20 24 52 4d 20 63 6f 6e 66 74 65 73  n || $RM conftes
2d0c0 74 0a 09 20 20 69 66 20 24 4c 54 43 43 20 24 4c  t..  if $LTCC $L
2d0d0 54 43 46 4c 41 47 53 20 2d 6f 20 63 6f 6e 66 74  TCFLAGS -o conft
2d0e0 65 73 74 20 63 6f 6e 66 74 65 73 74 2e 63 20 24  est conftest.c $
2d0f0 64 65 70 6c 69 62 73 3b 20 74 68 65 6e 0a 09 20  deplibs; then.. 
2d100 20 20 20 6c 64 64 5f 6f 75 74 70 75 74 3d 60 6c     ldd_output=`l
2d110 64 64 20 63 6f 6e 66 74 65 73 74 60 0a 09 20 20  dd conftest`..  
2d120 20 20 66 6f 72 20 69 20 69 6e 20 24 64 65 70 6c    for i in $depl
2d130 69 62 73 3b 20 64 6f 0a 09 20 20 20 20 20 20 63  ibs; do..      c
2d140 61 73 65 20 24 69 20 69 6e 0a 09 20 20 20 20 20  ase $i in..     
2d150 20 2d 6c 2a 29 0a 09 09 66 75 6e 63 5f 73 74 72   -l*)...func_str
2d160 69 70 6e 61 6d 65 20 2d 6c 20 27 27 20 22 24 69  ipname -l '' "$i
2d170 22 0a 09 09 6e 61 6d 65 3d 24 66 75 6e 63 5f 73  "...name=$func_s
2d180 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a  tripname_result.
2d190 09 09 69 66 20 74 65 73 74 20 22 58 24 61 6c 6c  ..if test "X$all
2d1a0 6f 77 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 5f  ow_libtool_libs_
2d1b0 77 69 74 68 5f 73 74 61 74 69 63 5f 72 75 6e 74  with_static_runt
2d1c0 69 6d 65 73 22 20 3d 20 22 58 79 65 73 22 20 3b  imes" = "Xyes" ;
2d1d0 20 74 68 65 6e 0a 09 09 20 20 63 61 73 65 20 22   then...  case "
2d1e0 20 24 70 72 65 64 65 70 73 20 24 70 6f 73 74 64   $predeps $postd
2d1f0 65 70 73 20 22 20 69 6e 0a 09 09 20 20 2a 22 20  eps " in...  *" 
2d200 24 69 20 22 2a 29 0a 09 09 20 20 20 20 6e 65 77  $i "*)...    new
2d210 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 64 65 70  deplibs="$newdep
2d220 6c 69 62 73 20 24 69 22 0a 09 09 20 20 20 20 69  libs $i"...    i
2d230 3d 22 22 0a 09 09 20 20 20 20 3b 3b 0a 09 09 20  =""...    ;;... 
2d240 20 65 73 61 63 0a 09 09 66 69 0a 09 09 69 66 20   esac...fi...if 
2d250 74 65 73 74 20 2d 6e 20 22 24 69 22 20 3b 20 74  test -n "$i" ; t
2d260 68 65 6e 0a 09 09 20 20 6c 69 62 6e 61 6d 65 3d  hen...  libname=
2d270 60 65 76 61 6c 20 22 5c 5c 24 45 43 48 4f 20 5c  `eval "\\$ECHO \
2d280 22 24 6c 69 62 6e 61 6d 65 5f 73 70 65 63 5c 22  "$libname_spec\"
2d290 22 60 0a 09 09 20 20 64 65 70 6c 69 62 5f 6d 61  "`...  deplib_ma
2d2a0 74 63 68 65 73 3d 60 65 76 61 6c 20 22 5c 5c 24  tches=`eval "\\$
2d2b0 45 43 48 4f 20 5c 22 24 6c 69 62 72 61 72 79 5f  ECHO \"$library_
2d2c0 6e 61 6d 65 73 5f 73 70 65 63 5c 22 22 60 0a 09  names_spec\""`..
2d2d0 09 20 20 73 65 74 20 64 75 6d 6d 79 20 24 64 65  .  set dummy $de
2d2e0 70 6c 69 62 5f 6d 61 74 63 68 65 73 3b 20 73 68  plib_matches; sh
2d2f0 69 66 74 0a 09 09 20 20 64 65 70 6c 69 62 5f 6d  ift...  deplib_m
2d300 61 74 63 68 3d 24 31 0a 09 09 20 20 69 66 20 74  atch=$1...  if t
2d310 65 73 74 20 60 65 78 70 72 20 22 24 6c 64 64 5f  est `expr "$ldd_
2d320 6f 75 74 70 75 74 22 20 3a 20 22 2e 2a 24 64 65  output" : ".*$de
2d330 70 6c 69 62 5f 6d 61 74 63 68 22 60 20 2d 6e 65  plib_match"` -ne
2d340 20 30 20 3b 20 74 68 65 6e 0a 09 09 20 20 20 20   0 ; then...    
2d350 6e 65 77 64 65 70 6c 69 62 73 3d 22 24 6e 65 77  newdeplibs="$new
2d360 64 65 70 6c 69 62 73 20 24 69 22 0a 09 09 20 20  deplibs $i"...  
2d370 65 6c 73 65 0a 09 09 20 20 20 20 64 72 6f 70 70  else...    dropp
2d380 65 64 64 65 70 73 3d 79 65 73 0a 09 09 20 20 20  eddeps=yes...   
2d390 20 24 45 43 48 4f 0a 09 09 20 20 20 20 24 45 43   $ECHO...    $EC
2d3a0 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a  HO "*** Warning:
2d3b0 20 64 79 6e 61 6d 69 63 20 6c 69 6e 6b 65 72 20   dynamic linker 
2d3c0 64 6f 65 73 20 6e 6f 74 20 61 63 63 65 70 74 20  does not accept 
2d3d0 6e 65 65 64 65 64 20 6c 69 62 72 61 72 79 20 24  needed library $
2d3e0 69 2e 22 0a 09 09 20 20 20 20 24 45 43 48 4f 20  i."...    $ECHO 
2d3f0 22 2a 2a 2a 20 49 20 68 61 76 65 20 74 68 65 20  "*** I have the 
2d400 63 61 70 61 62 69 6c 69 74 79 20 74 6f 20 6d 61  capability to ma
2d410 6b 65 20 74 68 61 74 20 6c 69 62 72 61 72 79 20  ke that library 
2d420 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 69  automatically li
2d430 6e 6b 20 69 6e 20 77 68 65 6e 22 0a 09 09 20 20  nk in when"...  
2d440 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 79 6f 75    $ECHO "*** you
2d450 20 6c 69 6e 6b 20 74 6f 20 74 68 69 73 20 6c 69   link to this li
2d460 62 72 61 72 79 2e 20 20 42 75 74 20 49 20 63 61  brary.  But I ca
2d470 6e 20 6f 6e 6c 79 20 64 6f 20 74 68 69 73 20 69  n only do this i
2d480 66 20 79 6f 75 20 68 61 76 65 20 61 22 0a 09 09  f you have a"...
2d490 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 73      $ECHO "*** s
2d4a0 68 61 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66  hared version of
2d4b0 20 74 68 65 20 6c 69 62 72 61 72 79 2c 20 77 68   the library, wh
2d4c0 69 63 68 20 49 20 62 65 6c 69 65 76 65 20 79 6f  ich I believe yo
2d4d0 75 20 64 6f 20 6e 6f 74 20 68 61 76 65 22 0a 09  u do not have"..
2d4e0 09 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20  .    $ECHO "*** 
2d4f0 62 65 63 61 75 73 65 20 61 20 74 65 73 74 5f 63  because a test_c
2d500 6f 6d 70 69 6c 65 20 64 69 64 20 72 65 76 65 61  ompile did revea
2d510 6c 20 74 68 61 74 20 74 68 65 20 6c 69 6e 6b 65  l that the linke
2d520 72 20 64 69 64 20 6e 6f 74 20 75 73 65 20 69 74  r did not use it
2d530 20 66 6f 72 22 0a 09 09 20 20 20 20 24 45 43 48   for"...    $ECH
2d540 4f 20 22 2a 2a 2a 20 69 74 73 20 64 79 6e 61 6d  O "*** its dynam
2d550 69 63 20 64 65 70 65 6e 64 65 6e 63 79 20 6c 69  ic dependency li
2d560 73 74 20 74 68 61 74 20 70 72 6f 67 72 61 6d 73  st that programs
2d570 20 67 65 74 20 72 65 73 6f 6c 76 65 64 20 77 69   get resolved wi
2d580 74 68 20 61 74 20 72 75 6e 74 69 6d 65 2e 22 0a  th at runtime.".
2d590 09 09 20 20 66 69 0a 09 09 66 69 0a 09 09 3b 3b  ..  fi...fi...;;
2d5a0 0a 09 20 20 20 20 20 20 2a 29 0a 09 09 6e 65 77  ..      *)...new
2d5b0 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 64 65 70  deplibs="$newdep
2d5c0 6c 69 62 73 20 24 69 22 0a 09 09 3b 3b 0a 09 20  libs $i"...;;.. 
2d5d0 20 20 20 20 20 65 73 61 63 0a 09 20 20 20 20 64       esac..    d
2d5e0 6f 6e 65 0a 09 20 20 65 6c 73 65 0a 09 20 20 20  one..  else..   
2d5f0 20 23 20 45 72 72 6f 72 20 6f 63 63 75 72 72 65   # Error occurre
2d600 64 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 63  d in the first c
2d610 6f 6d 70 69 6c 65 2e 20 20 4c 65 74 27 73 20 74  ompile.  Let's t
2d620 72 79 20 74 6f 20 73 61 6c 76 61 67 65 0a 09 20  ry to salvage.. 
2d630 20 20 20 23 20 74 68 65 20 73 69 74 75 61 74 69     # the situati
2d640 6f 6e 3a 20 43 6f 6d 70 69 6c 65 20 61 20 73 65  on: Compile a se
2d650 70 61 72 61 74 65 20 70 72 6f 67 72 61 6d 20 66  parate program f
2d660 6f 72 20 65 61 63 68 20 6c 69 62 72 61 72 79 2e  or each library.
2d670 0a 09 20 20 20 20 66 6f 72 20 69 20 69 6e 20 24  ..    for i in $
2d680 64 65 70 6c 69 62 73 3b 20 64 6f 0a 09 20 20 20  deplibs; do..   
2d690 20 20 20 63 61 73 65 20 24 69 20 69 6e 0a 09 20     case $i in.. 
2d6a0 20 20 20 20 20 2d 6c 2a 29 0a 09 09 66 75 6e 63       -l*)...func
2d6b0 5f 73 74 72 69 70 6e 61 6d 65 20 2d 6c 20 27 27  _stripname -l ''
2d6c0 20 22 24 69 22 0a 09 09 6e 61 6d 65 3d 24 66 75   "$i"...name=$fu
2d6d0 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65 73  nc_stripname_res
2d6e0 75 6c 74 0a 09 09 24 6f 70 74 5f 64 72 79 5f 72  ult...$opt_dry_r
2d6f0 75 6e 20 7c 7c 20 24 52 4d 20 63 6f 6e 66 74 65  un || $RM confte
2d700 73 74 0a 09 09 69 66 20 24 4c 54 43 43 20 24 4c  st...if $LTCC $L
2d710 54 43 46 4c 41 47 53 20 2d 6f 20 63 6f 6e 66 74  TCFLAGS -o conft
2d720 65 73 74 20 63 6f 6e 66 74 65 73 74 2e 63 20 24  est conftest.c $
2d730 69 3b 20 74 68 65 6e 0a 09 09 20 20 6c 64 64 5f  i; then...  ldd_
2d740 6f 75 74 70 75 74 3d 60 6c 64 64 20 63 6f 6e 66  output=`ldd conf
2d750 74 65 73 74 60 0a 09 09 20 20 69 66 20 74 65 73  test`...  if tes
2d760 74 20 22 58 24 61 6c 6c 6f 77 5f 6c 69 62 74 6f  t "X$allow_libto
2d770 6f 6c 5f 6c 69 62 73 5f 77 69 74 68 5f 73 74 61  ol_libs_with_sta
2d780 74 69 63 5f 72 75 6e 74 69 6d 65 73 22 20 3d 20  tic_runtimes" = 
2d790 22 58 79 65 73 22 20 3b 20 74 68 65 6e 0a 09 09  "Xyes" ; then...
2d7a0 20 20 20 20 63 61 73 65 20 22 20 24 70 72 65 64      case " $pred
2d7b0 65 70 73 20 24 70 6f 73 74 64 65 70 73 20 22 20  eps $postdeps " 
2d7c0 69 6e 0a 09 09 20 20 20 20 2a 22 20 24 69 20 22  in...    *" $i "
2d7d0 2a 29 0a 09 09 20 20 20 20 20 20 6e 65 77 64 65  *)...      newde
2d7e0 70 6c 69 62 73 3d 22 24 6e 65 77 64 65 70 6c 69  plibs="$newdepli
2d7f0 62 73 20 24 69 22 0a 09 09 20 20 20 20 20 20 69  bs $i"...      i
2d800 3d 22 22 0a 09 09 20 20 20 20 20 20 3b 3b 0a 09  =""...      ;;..
2d810 09 20 20 20 20 65 73 61 63 0a 09 09 20 20 66 69  .    esac...  fi
2d820 0a 09 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20  ...  if test -n 
2d830 22 24 69 22 20 3b 20 74 68 65 6e 0a 09 09 20 20  "$i" ; then...  
2d840 20 20 6c 69 62 6e 61 6d 65 3d 60 65 76 61 6c 20    libname=`eval 
2d850 22 5c 5c 24 45 43 48 4f 20 5c 22 24 6c 69 62 6e  "\\$ECHO \"$libn
2d860 61 6d 65 5f 73 70 65 63 5c 22 22 60 0a 09 09 20  ame_spec\""`... 
2d870 20 20 20 64 65 70 6c 69 62 5f 6d 61 74 63 68 65     deplib_matche
2d880 73 3d 60 65 76 61 6c 20 22 5c 5c 24 45 43 48 4f  s=`eval "\\$ECHO
2d890 20 5c 22 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65   \"$library_name
2d8a0 73 5f 73 70 65 63 5c 22 22 60 0a 09 09 20 20 20  s_spec\""`...   
2d8b0 20 73 65 74 20 64 75 6d 6d 79 20 24 64 65 70 6c   set dummy $depl
2d8c0 69 62 5f 6d 61 74 63 68 65 73 3b 20 73 68 69 66  ib_matches; shif
2d8d0 74 0a 09 09 20 20 20 20 64 65 70 6c 69 62 5f 6d  t...    deplib_m
2d8e0 61 74 63 68 3d 24 31 0a 09 09 20 20 20 20 69 66  atch=$1...    if
2d8f0 20 74 65 73 74 20 60 65 78 70 72 20 22 24 6c 64   test `expr "$ld
2d900 64 5f 6f 75 74 70 75 74 22 20 3a 20 22 2e 2a 24  d_output" : ".*$
2d910 64 65 70 6c 69 62 5f 6d 61 74 63 68 22 60 20 2d  deplib_match"` -
2d920 6e 65 20 30 20 3b 20 74 68 65 6e 0a 09 09 20 20  ne 0 ; then...  
2d930 20 20 20 20 6e 65 77 64 65 70 6c 69 62 73 3d 22      newdeplibs="
2d940 24 6e 65 77 64 65 70 6c 69 62 73 20 24 69 22 0a  $newdeplibs $i".
2d950 09 09 20 20 20 20 65 6c 73 65 0a 09 09 20 20 20  ..    else...   
2d960 20 20 20 64 72 6f 70 70 65 64 64 65 70 73 3d 79     droppeddeps=y
2d970 65 73 0a 09 09 20 20 20 20 20 20 24 45 43 48 4f  es...      $ECHO
2d980 0a 09 09 20 20 20 20 20 20 24 45 43 48 4f 20 22  ...      $ECHO "
2d990 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a 20 64 79 6e  *** Warning: dyn
2d9a0 61 6d 69 63 20 6c 69 6e 6b 65 72 20 64 6f 65 73  amic linker does
2d9b0 20 6e 6f 74 20 61 63 63 65 70 74 20 6e 65 65 64   not accept need
2d9c0 65 64 20 6c 69 62 72 61 72 79 20 24 69 2e 22 0a  ed library $i.".
2d9d0 09 09 20 20 20 20 20 20 24 45 43 48 4f 20 22 2a  ..      $ECHO "*
2d9e0 2a 2a 20 49 20 68 61 76 65 20 74 68 65 20 63 61  ** I have the ca
2d9f0 70 61 62 69 6c 69 74 79 20 74 6f 20 6d 61 6b 65  pability to make
2da00 20 74 68 61 74 20 6c 69 62 72 61 72 79 20 61 75   that library au
2da10 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 69 6e 6b  tomatically link
2da20 20 69 6e 20 77 68 65 6e 22 0a 09 09 20 20 20 20   in when"...    
2da30 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 79 6f 75    $ECHO "*** you
2da40 20 6c 69 6e 6b 20 74 6f 20 74 68 69 73 20 6c 69   link to this li
2da50 62 72 61 72 79 2e 20 20 42 75 74 20 49 20 63 61  brary.  But I ca
2da60 6e 20 6f 6e 6c 79 20 64 6f 20 74 68 69 73 20 69  n only do this i
2da70 66 20 79 6f 75 20 68 61 76 65 20 61 22 0a 09 09  f you have a"...
2da80 20 20 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a        $ECHO "***
2da90 20 73 68 61 72 65 64 20 76 65 72 73 69 6f 6e 20   shared version 
2daa0 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 2c 20  of the library, 
2dab0 77 68 69 63 68 20 79 6f 75 20 64 6f 20 6e 6f 74  which you do not
2dac0 20 61 70 70 65 61 72 20 74 6f 20 68 61 76 65 22   appear to have"
2dad0 0a 09 09 20 20 20 20 20 20 24 45 43 48 4f 20 22  ...      $ECHO "
2dae0 2a 2a 2a 20 62 65 63 61 75 73 65 20 61 20 74 65  *** because a te
2daf0 73 74 5f 63 6f 6d 70 69 6c 65 20 64 69 64 20 72  st_compile did r
2db00 65 76 65 61 6c 20 74 68 61 74 20 74 68 65 20 6c  eveal that the l
2db10 69 6e 6b 65 72 20 64 69 64 20 6e 6f 74 20 75 73  inker did not us
2db20 65 20 74 68 69 73 20 6f 6e 65 22 0a 09 09 20 20  e this one"...  
2db30 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 61      $ECHO "*** a
2db40 73 20 61 20 64 79 6e 61 6d 69 63 20 64 65 70 65  s a dynamic depe
2db50 6e 64 65 6e 63 79 20 74 68 61 74 20 70 72 6f 67  ndency that prog
2db60 72 61 6d 73 20 63 61 6e 20 67 65 74 20 72 65 73  rams can get res
2db70 6f 6c 76 65 64 20 77 69 74 68 20 61 74 20 72 75  olved with at ru
2db80 6e 74 69 6d 65 2e 22 0a 09 09 20 20 20 20 66 69  ntime."...    fi
2db90 0a 09 09 20 20 66 69 0a 09 09 65 6c 73 65 0a 09  ...  fi...else..
2dba0 09 20 20 64 72 6f 70 70 65 64 64 65 70 73 3d 79  .  droppeddeps=y
2dbb0 65 73 0a 09 09 20 20 24 45 43 48 4f 0a 09 09 20  es...  $ECHO... 
2dbc0 20 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61 72 6e   $ECHO "*** Warn
2dbd0 69 6e 67 21 20 20 4c 69 62 72 61 72 79 20 24 69  ing!  Library $i
2dbe0 20 69 73 20 6e 65 65 64 65 64 20 62 79 20 74 68   is needed by th
2dbf0 69 73 20 6c 69 62 72 61 72 79 20 62 75 74 20 49  is library but I
2dc00 20 77 61 73 20 6e 6f 74 20 61 62 6c 65 20 74 6f   was not able to
2dc10 22 0a 09 09 20 20 24 45 43 48 4f 20 22 2a 2a 2a  "...  $ECHO "***
2dc20 20 6d 61 6b 65 20 69 74 20 6c 69 6e 6b 20 69 6e   make it link in
2dc30 21 20 20 59 6f 75 20 77 69 6c 6c 20 70 72 6f 62  !  You will prob
2dc40 61 62 6c 79 20 6e 65 65 64 20 74 6f 20 69 6e 73  ably need to ins
2dc50 74 61 6c 6c 20 69 74 20 6f 72 20 73 6f 6d 65 22  tall it or some"
2dc60 0a 09 09 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20  ...  $ECHO "*** 
2dc70 6c 69 62 72 61 72 79 20 74 68 61 74 20 69 74 20  library that it 
2dc80 64 65 70 65 6e 64 73 20 6f 6e 20 62 65 66 6f 72  depends on befor
2dc90 65 20 74 68 69 73 20 6c 69 62 72 61 72 79 20 77  e this library w
2dca0 69 6c 6c 20 62 65 20 66 75 6c 6c 79 22 0a 09 09  ill be fully"...
2dcb0 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 66 75 6e    $ECHO "*** fun
2dcc0 63 74 69 6f 6e 61 6c 2e 20 20 49 6e 73 74 61 6c  ctional.  Instal
2dcd0 6c 69 6e 67 20 69 74 20 62 65 66 6f 72 65 20 63  ling it before c
2dce0 6f 6e 74 69 6e 75 69 6e 67 20 77 6f 75 6c 64 20  ontinuing would 
2dcf0 62 65 20 65 76 65 6e 20 62 65 74 74 65 72 2e 22  be even better."
2dd00 0a 09 09 66 69 0a 09 09 3b 3b 0a 09 20 20 20 20  ...fi...;;..    
2dd10 20 20 2a 29 0a 09 09 6e 65 77 64 65 70 6c 69 62    *)...newdeplib
2dd20 73 3d 22 24 6e 65 77 64 65 70 6c 69 62 73 20 24  s="$newdeplibs $
2dd30 69 22 0a 09 09 3b 3b 0a 09 20 20 20 20 20 20 65  i"...;;..      e
2dd40 73 61 63 0a 09 20 20 20 20 64 6f 6e 65 0a 09 20  sac..    done.. 
2dd50 20 66 69 0a 09 20 20 3b 3b 0a 09 66 69 6c 65 5f   fi..  ;;..file_
2dd60 6d 61 67 69 63 2a 29 0a 09 20 20 73 65 74 20 64  magic*)..  set d
2dd70 75 6d 6d 79 20 24 64 65 70 6c 69 62 73 5f 63 68  ummy $deplibs_ch
2dd80 65 63 6b 5f 6d 65 74 68 6f 64 3b 20 73 68 69 66  eck_method; shif
2dd90 74 0a 09 20 20 66 69 6c 65 5f 6d 61 67 69 63 5f  t..  file_magic_
2dda0 72 65 67 65 78 3d 60 65 78 70 72 20 22 24 64 65  regex=`expr "$de
2ddb0 70 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68  plibs_check_meth
2ddc0 6f 64 22 20 3a 20 22 24 31 20 5c 28 2e 2a 5c 29  od" : "$1 \(.*\)
2ddd0 22 60 0a 09 20 20 66 6f 72 20 61 5f 64 65 70 6c  "`..  for a_depl
2dde0 69 62 20 69 6e 20 24 64 65 70 6c 69 62 73 3b 20  ib in $deplibs; 
2ddf0 64 6f 0a 09 20 20 20 20 63 61 73 65 20 24 61 5f  do..    case $a_
2de00 64 65 70 6c 69 62 20 69 6e 0a 09 20 20 20 20 2d  deplib in..    -
2de10 6c 2a 29 0a 09 20 20 20 20 20 20 66 75 6e 63 5f  l*)..      func_
2de20 73 74 72 69 70 6e 61 6d 65 20 2d 6c 20 27 27 20  stripname -l '' 
2de30 22 24 61 5f 64 65 70 6c 69 62 22 0a 09 20 20 20  "$a_deplib"..   
2de40 20 20 20 6e 61 6d 65 3d 24 66 75 6e 63 5f 73 74     name=$func_st
2de50 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 09  ripname_result..
2de60 20 20 20 20 20 20 69 66 20 74 65 73 74 20 22 58        if test "X
2de70 24 61 6c 6c 6f 77 5f 6c 69 62 74 6f 6f 6c 5f 6c  $allow_libtool_l
2de80 69 62 73 5f 77 69 74 68 5f 73 74 61 74 69 63 5f  ibs_with_static_
2de90 72 75 6e 74 69 6d 65 73 22 20 3d 20 22 58 79 65  runtimes" = "Xye
2dea0 73 22 20 3b 20 74 68 65 6e 0a 09 09 63 61 73 65  s" ; then...case
2deb0 20 22 20 24 70 72 65 64 65 70 73 20 24 70 6f 73   " $predeps $pos
2dec0 74 64 65 70 73 20 22 20 69 6e 0a 09 09 2a 22 20  tdeps " in...*" 
2ded0 24 61 5f 64 65 70 6c 69 62 20 22 2a 29 0a 09 09  $a_deplib "*)...
2dee0 20 20 6e 65 77 64 65 70 6c 69 62 73 3d 22 24 6e    newdeplibs="$n
2def0 65 77 64 65 70 6c 69 62 73 20 24 61 5f 64 65 70  ewdeplibs $a_dep
2df00 6c 69 62 22 0a 09 09 20 20 61 5f 64 65 70 6c 69  lib"...  a_depli
2df10 62 3d 22 22 0a 09 09 20 20 3b 3b 0a 09 09 65 73  b=""...  ;;...es
2df20 61 63 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20  ac..      fi..  
2df30 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
2df40 24 61 5f 64 65 70 6c 69 62 22 20 3b 20 74 68 65  $a_deplib" ; the
2df50 6e 0a 09 09 6c 69 62 6e 61 6d 65 3d 60 65 76 61  n...libname=`eva
2df60 6c 20 22 5c 5c 24 45 43 48 4f 20 5c 22 24 6c 69  l "\\$ECHO \"$li
2df70 62 6e 61 6d 65 5f 73 70 65 63 5c 22 22 60 0a 09  bname_spec\""`..
2df80 09 66 6f 72 20 69 20 69 6e 20 24 6c 69 62 5f 73  .for i in $lib_s
2df90 65 61 72 63 68 5f 70 61 74 68 20 24 73 79 73 5f  earch_path $sys_
2dfa0 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 20  lib_search_path 
2dfb0 24 73 68 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  $shlib_search_pa
2dfc0 74 68 3b 20 64 6f 0a 09 09 20 20 70 6f 74 65 6e  th; do...  poten
2dfd0 74 69 61 6c 5f 6c 69 62 73 3d 60 6c 73 20 24 69  tial_libs=`ls $i
2dfe0 2f 24 6c 69 62 6e 61 6d 65 5b 2e 2d 5d 2a 20 32  /$libname[.-]* 2
2dff0 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a 09 09 20 20  >/dev/null`...  
2e000 66 6f 72 20 70 6f 74 65 6e 74 5f 6c 69 62 20 69  for potent_lib i
2e010 6e 20 24 70 6f 74 65 6e 74 69 61 6c 5f 6c 69 62  n $potential_lib
2e020 73 3b 20 64 6f 0a 09 09 20 20 20 20 20 20 23 20  s; do...      # 
2e030 46 6f 6c 6c 6f 77 20 73 6f 66 74 20 6c 69 6e 6b  Follow soft link
2e040 73 2e 0a 09 09 20 20 20 20 20 20 69 66 20 6c 73  s....      if ls
2e050 20 2d 6c 4c 64 20 22 24 70 6f 74 65 6e 74 5f 6c   -lLd "$potent_l
2e060 69 62 22 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20  ib" 2>/dev/null 
2e070 7c 0a 09 09 09 20 24 47 52 45 50 20 22 20 2d 3e  |.... $GREP " ->
2e080 20 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74   " >/dev/null; t
2e090 68 65 6e 0a 09 09 09 63 6f 6e 74 69 6e 75 65 0a  hen....continue.
2e0a0 09 09 20 20 20 20 20 20 66 69 0a 09 09 20 20 20  ..      fi...   
2e0b0 20 20 20 23 20 54 68 65 20 73 74 61 74 65 6d 65     # The stateme
2e0c0 6e 74 20 61 62 6f 76 65 20 74 72 69 65 73 20 74  nt above tries t
2e0d0 6f 20 61 76 6f 69 64 20 65 6e 74 65 72 69 6e 67  o avoid entering
2e0e0 20 61 6e 0a 09 09 20 20 20 20 20 20 23 20 65 6e   an...      # en
2e0f0 64 6c 65 73 73 20 6c 6f 6f 70 20 62 65 6c 6f 77  dless loop below
2e100 2c 20 69 6e 20 63 61 73 65 20 6f 66 20 63 79 63  , in case of cyc
2e110 6c 69 63 20 6c 69 6e 6b 73 2e 0a 09 09 20 20 20  lic links....   
2e120 20 20 20 23 20 57 65 20 6d 69 67 68 74 20 73 74     # We might st
2e130 69 6c 6c 20 65 6e 74 65 72 20 61 6e 20 65 6e 64  ill enter an end
2e140 6c 65 73 73 20 6c 6f 6f 70 2c 20 73 69 6e 63 65  less loop, since
2e150 20 61 20 6c 69 6e 6b 0a 09 09 20 20 20 20 20 20   a link...      
2e160 23 20 6c 6f 6f 70 20 63 61 6e 20 62 65 20 63 6c  # loop can be cl
2e170 6f 73 65 64 20 77 68 69 6c 65 20 77 65 20 66 6f  osed while we fo
2e180 6c 6c 6f 77 20 6c 69 6e 6b 73 2c 0a 09 09 20 20  llow links,...  
2e190 20 20 20 20 23 20 62 75 74 20 73 6f 20 77 68 61      # but so wha
2e1a0 74 3f 0a 09 09 20 20 20 20 20 20 70 6f 74 6c 69  t?...      potli
2e1b0 62 3d 22 24 70 6f 74 65 6e 74 5f 6c 69 62 22 0a  b="$potent_lib".
2e1c0 09 09 20 20 20 20 20 20 77 68 69 6c 65 20 74 65  ..      while te
2e1d0 73 74 20 2d 68 20 22 24 70 6f 74 6c 69 62 22 20  st -h "$potlib" 
2e1e0 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 64 6f 0a  2>/dev/null; do.
2e1f0 09 09 09 70 6f 74 6c 69 62 6c 69 6e 6b 3d 60 6c  ...potliblink=`l
2e200 73 20 2d 6c 64 20 24 70 6f 74 6c 69 62 20 7c 20  s -ld $potlib | 
2e210 24 7b 53 45 44 7d 20 27 73 2f 2e 2a 20 2d 3e 20  ${SED} 's/.* -> 
2e220 2f 2f 27 60 0a 09 09 09 63 61 73 65 20 24 70 6f  //'`....case $po
2e230 74 6c 69 62 6c 69 6e 6b 20 69 6e 0a 09 09 09 5b  tliblink in....[
2e240 5c 5c 2f 5d 2a 20 7c 20 5b 41 2d 5a 61 2d 7a 5d  \\/]* | [A-Za-z]
2e250 3a 5b 5c 5c 2f 5d 2a 29 20 70 6f 74 6c 69 62 3d  :[\\/]*) potlib=
2e260 22 24 70 6f 74 6c 69 62 6c 69 6e 6b 22 3b 3b 0a  "$potliblink";;.
2e270 09 09 09 2a 29 20 70 6f 74 6c 69 62 3d 60 24 45  ...*) potlib=`$E
2e280 43 48 4f 20 22 58 24 70 6f 74 6c 69 62 22 20 7c  CHO "X$potlib" |
2e290 20 24 58 73 65 64 20 2d 65 20 27 73 2c 5b 5e 2f   $Xsed -e 's,[^/
2e2a0 5d 2a 24 2c 2c 27 60 22 24 70 6f 74 6c 69 62 6c  ]*$,,'`"$potlibl
2e2b0 69 6e 6b 22 3b 3b 0a 09 09 09 65 73 61 63 0a 09  ink";;....esac..
2e2c0 09 20 20 20 20 20 20 64 6f 6e 65 0a 09 09 20 20  .      done...  
2e2d0 20 20 20 20 69 66 20 65 76 61 6c 20 24 66 69 6c      if eval $fil
2e2e0 65 5f 6d 61 67 69 63 5f 63 6d 64 20 5c 22 5c 24  e_magic_cmd \"\$
2e2f0 70 6f 74 6c 69 62 5c 22 20 32 3e 2f 64 65 76 2f  potlib\" 2>/dev/
2e300 6e 75 6c 6c 20 7c 0a 09 09 09 20 24 53 45 44 20  null |.... $SED 
2e310 2d 65 20 31 30 71 20 7c 0a 09 09 09 20 24 45 47  -e 10q |.... $EG
2e320 52 45 50 20 22 24 66 69 6c 65 5f 6d 61 67 69 63  REP "$file_magic
2e330 5f 72 65 67 65 78 22 20 3e 20 2f 64 65 76 2f 6e  _regex" > /dev/n
2e340 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 09 6e 65 77  ull; then....new
2e350 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 64 65 70  deplibs="$newdep
2e360 6c 69 62 73 20 24 61 5f 64 65 70 6c 69 62 22 0a  libs $a_deplib".
2e370 09 09 09 61 5f 64 65 70 6c 69 62 3d 22 22 0a 09  ...a_deplib=""..
2e380 09 09 62 72 65 61 6b 20 32 0a 09 09 20 20 20 20  ..break 2...    
2e390 20 20 66 69 0a 09 09 20 20 64 6f 6e 65 0a 09 09    fi...  done...
2e3a0 64 6f 6e 65 0a 09 20 20 20 20 20 20 66 69 0a 09  done..      fi..
2e3b0 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e        if test -n
2e3c0 20 22 24 61 5f 64 65 70 6c 69 62 22 20 3b 20 74   "$a_deplib" ; t
2e3d0 68 65 6e 0a 09 09 64 72 6f 70 70 65 64 64 65 70  hen...droppeddep
2e3e0 73 3d 79 65 73 0a 09 09 24 45 43 48 4f 0a 09 09  s=yes...$ECHO...
2e3f0 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69  $ECHO "*** Warni
2e400 6e 67 3a 20 6c 69 6e 6b 65 72 20 70 61 74 68 20  ng: linker path 
2e410 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 72 65  does not have re
2e420 61 6c 20 66 69 6c 65 20 66 6f 72 20 6c 69 62 72  al file for libr
2e430 61 72 79 20 24 61 5f 64 65 70 6c 69 62 2e 22 0a  ary $a_deplib.".
2e440 09 09 24 45 43 48 4f 20 22 2a 2a 2a 20 49 20 68  ..$ECHO "*** I h
2e450 61 76 65 20 74 68 65 20 63 61 70 61 62 69 6c 69  ave the capabili
2e460 74 79 20 74 6f 20 6d 61 6b 65 20 74 68 61 74 20  ty to make that 
2e470 6c 69 62 72 61 72 79 20 61 75 74 6f 6d 61 74 69  library automati
2e480 63 61 6c 6c 79 20 6c 69 6e 6b 20 69 6e 20 77 68  cally link in wh
2e490 65 6e 22 0a 09 09 24 45 43 48 4f 20 22 2a 2a 2a  en"...$ECHO "***
2e4a0 20 79 6f 75 20 6c 69 6e 6b 20 74 6f 20 74 68 69   you link to thi
2e4b0 73 20 6c 69 62 72 61 72 79 2e 20 20 42 75 74 20  s library.  But 
2e4c0 49 20 63 61 6e 20 6f 6e 6c 79 20 64 6f 20 74 68  I can only do th
2e4d0 69 73 20 69 66 20 79 6f 75 20 68 61 76 65 20 61  is if you have a
2e4e0 22 0a 09 09 24 45 43 48 4f 20 22 2a 2a 2a 20 73  "...$ECHO "*** s
2e4f0 68 61 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66  hared version of
2e500 20 74 68 65 20 6c 69 62 72 61 72 79 2c 20 77 68   the library, wh
2e510 69 63 68 20 79 6f 75 20 64 6f 20 6e 6f 74 20 61  ich you do not a
2e520 70 70 65 61 72 20 74 6f 20 68 61 76 65 22 0a 09  ppear to have"..
2e530 09 24 45 43 48 4f 20 22 2a 2a 2a 20 62 65 63 61  .$ECHO "*** beca
2e540 75 73 65 20 49 20 64 69 64 20 63 68 65 63 6b 20  use I did check 
2e550 74 68 65 20 6c 69 6e 6b 65 72 20 70 61 74 68 20  the linker path 
2e560 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 61 20 66 69  looking for a fi
2e570 6c 65 20 73 74 61 72 74 69 6e 67 22 0a 09 09 69  le starting"...i
2e580 66 20 74 65 73 74 20 2d 7a 20 22 24 70 6f 74 6c  f test -z "$potl
2e590 69 62 22 20 3b 20 74 68 65 6e 0a 09 09 20 20 24  ib" ; then...  $
2e5a0 45 43 48 4f 20 22 2a 2a 2a 20 77 69 74 68 20 24  ECHO "*** with $
2e5b0 6c 69 62 6e 61 6d 65 20 62 75 74 20 6e 6f 20 63  libname but no c
2e5c0 61 6e 64 69 64 61 74 65 73 20 77 65 72 65 20 66  andidates were f
2e5d0 6f 75 6e 64 2e 20 28 2e 2e 2e 66 6f 72 20 66 69  ound. (...for fi
2e5e0 6c 65 20 6d 61 67 69 63 20 74 65 73 74 29 22 0a  le magic test)".
2e5f0 09 09 65 6c 73 65 0a 09 09 20 20 24 45 43 48 4f  ..else...  $ECHO
2e600 20 22 2a 2a 2a 20 77 69 74 68 20 24 6c 69 62 6e   "*** with $libn
2e610 61 6d 65 20 61 6e 64 20 6e 6f 6e 65 20 6f 66 20  ame and none of 
2e620 74 68 65 20 63 61 6e 64 69 64 61 74 65 73 20 70  the candidates p
2e630 61 73 73 65 64 20 61 20 66 69 6c 65 20 66 6f 72  assed a file for
2e640 6d 61 74 20 74 65 73 74 22 0a 09 09 20 20 24 45  mat test"...  $E
2e650 43 48 4f 20 22 2a 2a 2a 20 75 73 69 6e 67 20 61  CHO "*** using a
2e660 20 66 69 6c 65 20 6d 61 67 69 63 2e 20 4c 61 73   file magic. Las
2e670 74 20 66 69 6c 65 20 63 68 65 63 6b 65 64 3a 20  t file checked: 
2e680 24 70 6f 74 6c 69 62 22 0a 09 09 66 69 0a 09 20  $potlib"...fi.. 
2e690 20 20 20 20 20 66 69 0a 09 20 20 20 20 20 20 3b       fi..      ;
2e6a0 3b 0a 09 20 20 20 20 2a 29 0a 09 20 20 20 20 20  ;..    *)..     
2e6b0 20 23 20 41 64 64 20 61 20 2d 4c 20 61 72 67 75   # Add a -L argu
2e6c0 6d 65 6e 74 2e 0a 09 20 20 20 20 20 20 6e 65 77  ment...      new
2e6d0 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 64 65 70  deplibs="$newdep
2e6e0 6c 69 62 73 20 24 61 5f 64 65 70 6c 69 62 22 0a  libs $a_deplib".
2e6f0 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 65  .      ;;..    e
2e700 73 61 63 0a 09 20 20 64 6f 6e 65 20 23 20 47 6f  sac..  done # Go
2e710 6e 65 20 74 68 72 6f 75 67 68 20 61 6c 6c 20 64  ne through all d
2e720 65 70 6c 69 62 73 2e 0a 09 20 20 3b 3b 0a 09 6d  eplibs...  ;;..m
2e730 61 74 63 68 5f 70 61 74 74 65 72 6e 2a 29 0a 09  atch_pattern*)..
2e740 20 20 73 65 74 20 64 75 6d 6d 79 20 24 64 65 70    set dummy $dep
2e750 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68 6f  libs_check_metho
2e760 64 3b 20 73 68 69 66 74 0a 09 20 20 6d 61 74 63  d; shift..  matc
2e770 68 5f 70 61 74 74 65 72 6e 5f 72 65 67 65 78 3d  h_pattern_regex=
2e780 60 65 78 70 72 20 22 24 64 65 70 6c 69 62 73 5f  `expr "$deplibs_
2e790 63 68 65 63 6b 5f 6d 65 74 68 6f 64 22 20 3a 20  check_method" : 
2e7a0 22 24 31 20 5c 28 2e 2a 5c 29 22 60 0a 09 20 20  "$1 \(.*\)"`..  
2e7b0 66 6f 72 20 61 5f 64 65 70 6c 69 62 20 69 6e 20  for a_deplib in 
2e7c0 24 64 65 70 6c 69 62 73 3b 20 64 6f 0a 09 20 20  $deplibs; do..  
2e7d0 20 20 63 61 73 65 20 24 61 5f 64 65 70 6c 69 62    case $a_deplib
2e7e0 20 69 6e 0a 09 20 20 20 20 2d 6c 2a 29 0a 09 20   in..    -l*).. 
2e7f0 20 20 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e       func_stripn
2e800 61 6d 65 20 2d 6c 20 27 27 20 22 24 61 5f 64 65  ame -l '' "$a_de
2e810 70 6c 69 62 22 0a 09 20 20 20 20 20 20 6e 61 6d  plib"..      nam
2e820 65 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  e=$func_stripnam
2e830 65 5f 72 65 73 75 6c 74 0a 09 20 20 20 20 20 20  e_result..      
2e840 69 66 20 74 65 73 74 20 22 58 24 61 6c 6c 6f 77  if test "X$allow
2e850 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 5f 77 69  _libtool_libs_wi
2e860 74 68 5f 73 74 61 74 69 63 5f 72 75 6e 74 69 6d  th_static_runtim
2e870 65 73 22 20 3d 20 22 58 79 65 73 22 20 3b 20 74  es" = "Xyes" ; t
2e880 68 65 6e 0a 09 09 63 61 73 65 20 22 20 24 70 72  hen...case " $pr
2e890 65 64 65 70 73 20 24 70 6f 73 74 64 65 70 73 20  edeps $postdeps 
2e8a0 22 20 69 6e 0a 09 09 2a 22 20 24 61 5f 64 65 70  " in...*" $a_dep
2e8b0 6c 69 62 20 22 2a 29 0a 09 09 20 20 6e 65 77 64  lib "*)...  newd
2e8c0 65 70 6c 69 62 73 3d 22 24 6e 65 77 64 65 70 6c  eplibs="$newdepl
2e8d0 69 62 73 20 24 61 5f 64 65 70 6c 69 62 22 0a 09  ibs $a_deplib"..
2e8e0 09 20 20 61 5f 64 65 70 6c 69 62 3d 22 22 0a 09  .  a_deplib=""..
2e8f0 09 20 20 3b 3b 0a 09 09 65 73 61 63 0a 09 20 20  .  ;;...esac..  
2e900 20 20 20 20 66 69 0a 09 20 20 20 20 20 20 69 66      fi..      if
2e910 20 74 65 73 74 20 2d 6e 20 22 24 61 5f 64 65 70   test -n "$a_dep
2e920 6c 69 62 22 20 3b 20 74 68 65 6e 0a 09 09 6c 69  lib" ; then...li
2e930 62 6e 61 6d 65 3d 60 65 76 61 6c 20 22 5c 5c 24  bname=`eval "\\$
2e940 45 43 48 4f 20 5c 22 24 6c 69 62 6e 61 6d 65 5f  ECHO \"$libname_
2e950 73 70 65 63 5c 22 22 60 0a 09 09 66 6f 72 20 69  spec\""`...for i
2e960 20 69 6e 20 24 6c 69 62 5f 73 65 61 72 63 68 5f   in $lib_search_
2e970 70 61 74 68 20 24 73 79 73 5f 6c 69 62 5f 73 65  path $sys_lib_se
2e980 61 72 63 68 5f 70 61 74 68 20 24 73 68 6c 69 62  arch_path $shlib
2e990 5f 73 65 61 72 63 68 5f 70 61 74 68 3b 20 64 6f  _search_path; do
2e9a0 0a 09 09 20 20 70 6f 74 65 6e 74 69 61 6c 5f 6c  ...  potential_l
2e9b0 69 62 73 3d 60 6c 73 20 24 69 2f 24 6c 69 62 6e  ibs=`ls $i/$libn
2e9c0 61 6d 65 5b 2e 2d 5d 2a 20 32 3e 2f 64 65 76 2f  ame[.-]* 2>/dev/
2e9d0 6e 75 6c 6c 60 0a 09 09 20 20 66 6f 72 20 70 6f  null`...  for po
2e9e0 74 65 6e 74 5f 6c 69 62 20 69 6e 20 24 70 6f 74  tent_lib in $pot
2e9f0 65 6e 74 69 61 6c 5f 6c 69 62 73 3b 20 64 6f 0a  ential_libs; do.
2ea00 09 09 20 20 20 20 70 6f 74 6c 69 62 3d 22 24 70  ..    potlib="$p
2ea10 6f 74 65 6e 74 5f 6c 69 62 22 20 23 20 73 65 65  otent_lib" # see
2ea20 20 73 79 6d 6c 69 6e 6b 2d 63 68 65 63 6b 20 61   symlink-check a
2ea30 62 6f 76 65 20 69 6e 20 66 69 6c 65 5f 6d 61 67  bove in file_mag
2ea40 69 63 20 74 65 73 74 0a 09 09 20 20 20 20 69 66  ic test...    if
2ea50 20 65 76 61 6c 20 22 5c 24 45 43 48 4f 20 5c 22   eval "\$ECHO \"
2ea60 58 24 70 6f 74 65 6e 74 5f 6c 69 62 5c 22 22 20  X$potent_lib\"" 
2ea70 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 20 24 58  2>/dev/null | $X
2ea80 73 65 64 20 2d 65 20 31 30 71 20 7c 20 5c 0a 09  sed -e 10q | \..
2ea90 09 20 20 20 20 20 20 20 24 45 47 52 45 50 20 22  .       $EGREP "
2eaa0 24 6d 61 74 63 68 5f 70 61 74 74 65 72 6e 5f 72  $match_pattern_r
2eab0 65 67 65 78 22 20 3e 20 2f 64 65 76 2f 6e 75 6c  egex" > /dev/nul
2eac0 6c 3b 20 74 68 65 6e 0a 09 09 20 20 20 20 20 20  l; then...      
2ead0 6e 65 77 64 65 70 6c 69 62 73 3d 22 24 6e 65 77  newdeplibs="$new
2eae0 64 65 70 6c 69 62 73 20 24 61 5f 64 65 70 6c 69  deplibs $a_depli
2eaf0 62 22 0a 09 09 20 20 20 20 20 20 61 5f 64 65 70  b"...      a_dep
2eb00 6c 69 62 3d 22 22 0a 09 09 20 20 20 20 20 20 62  lib=""...      b
2eb10 72 65 61 6b 20 32 0a 09 09 20 20 20 20 66 69 0a  reak 2...    fi.
2eb20 09 09 20 20 64 6f 6e 65 0a 09 09 64 6f 6e 65 0a  ..  done...done.
2eb30 09 20 20 20 20 20 20 66 69 0a 09 20 20 20 20 20  .      fi..     
2eb40 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 61 5f   if test -n "$a_
2eb50 64 65 70 6c 69 62 22 20 3b 20 74 68 65 6e 0a 09  deplib" ; then..
2eb60 09 64 72 6f 70 70 65 64 64 65 70 73 3d 79 65 73  .droppeddeps=yes
2eb70 0a 09 09 24 45 43 48 4f 0a 09 09 24 45 43 48 4f  ...$ECHO...$ECHO
2eb80 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a 20 6c   "*** Warning: l
2eb90 69 6e 6b 65 72 20 70 61 74 68 20 64 6f 65 73 20  inker path does 
2eba0 6e 6f 74 20 68 61 76 65 20 72 65 61 6c 20 66 69  not have real fi
2ebb0 6c 65 20 66 6f 72 20 6c 69 62 72 61 72 79 20 24  le for library $
2ebc0 61 5f 64 65 70 6c 69 62 2e 22 0a 09 09 24 45 43  a_deplib."...$EC
2ebd0 48 4f 20 22 2a 2a 2a 20 49 20 68 61 76 65 20 74  HO "*** I have t
2ebe0 68 65 20 63 61 70 61 62 69 6c 69 74 79 20 74 6f  he capability to
2ebf0 20 6d 61 6b 65 20 74 68 61 74 20 6c 69 62 72 61   make that libra
2ec00 72 79 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ry automatically
2ec10 20 6c 69 6e 6b 20 69 6e 20 77 68 65 6e 22 0a 09   link in when"..
2ec20 09 24 45 43 48 4f 20 22 2a 2a 2a 20 79 6f 75 20  .$ECHO "*** you 
2ec30 6c 69 6e 6b 20 74 6f 20 74 68 69 73 20 6c 69 62  link to this lib
2ec40 72 61 72 79 2e 20 20 42 75 74 20 49 20 63 61 6e  rary.  But I can
2ec50 20 6f 6e 6c 79 20 64 6f 20 74 68 69 73 20 69 66   only do this if
2ec60 20 79 6f 75 20 68 61 76 65 20 61 22 0a 09 09 24   you have a"...$
2ec70 45 43 48 4f 20 22 2a 2a 2a 20 73 68 61 72 65 64  ECHO "*** shared
2ec80 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20   version of the 
2ec90 6c 69 62 72 61 72 79 2c 20 77 68 69 63 68 20 79  library, which y
2eca0 6f 75 20 64 6f 20 6e 6f 74 20 61 70 70 65 61 72  ou do not appear
2ecb0 20 74 6f 20 68 61 76 65 22 0a 09 09 24 45 43 48   to have"...$ECH
2ecc0 4f 20 22 2a 2a 2a 20 62 65 63 61 75 73 65 20 49  O "*** because I
2ecd0 20 64 69 64 20 63 68 65 63 6b 20 74 68 65 20 6c   did check the l
2ece0 69 6e 6b 65 72 20 70 61 74 68 20 6c 6f 6f 6b 69  inker path looki
2ecf0 6e 67 20 66 6f 72 20 61 20 66 69 6c 65 20 73 74  ng for a file st
2ed00 61 72 74 69 6e 67 22 0a 09 09 69 66 20 74 65 73  arting"...if tes
2ed10 74 20 2d 7a 20 22 24 70 6f 74 6c 69 62 22 20 3b  t -z "$potlib" ;
2ed20 20 74 68 65 6e 0a 09 09 20 20 24 45 43 48 4f 20   then...  $ECHO 
2ed30 22 2a 2a 2a 20 77 69 74 68 20 24 6c 69 62 6e 61  "*** with $libna
2ed40 6d 65 20 62 75 74 20 6e 6f 20 63 61 6e 64 69 64  me but no candid
2ed50 61 74 65 73 20 77 65 72 65 20 66 6f 75 6e 64 2e  ates were found.
2ed60 20 28 2e 2e 2e 66 6f 72 20 72 65 67 65 78 20 70   (...for regex p
2ed70 61 74 74 65 72 6e 20 74 65 73 74 29 22 0a 09 09  attern test)"...
2ed80 65 6c 73 65 0a 09 09 20 20 24 45 43 48 4f 20 22  else...  $ECHO "
2ed90 2a 2a 2a 20 77 69 74 68 20 24 6c 69 62 6e 61 6d  *** with $libnam
2eda0 65 20 61 6e 64 20 6e 6f 6e 65 20 6f 66 20 74 68  e and none of th
2edb0 65 20 63 61 6e 64 69 64 61 74 65 73 20 70 61 73  e candidates pas
2edc0 73 65 64 20 61 20 66 69 6c 65 20 66 6f 72 6d 61  sed a file forma
2edd0 74 20 74 65 73 74 22 0a 09 09 20 20 24 45 43 48  t test"...  $ECH
2ede0 4f 20 22 2a 2a 2a 20 75 73 69 6e 67 20 61 20 72  O "*** using a r
2edf0 65 67 65 78 20 70 61 74 74 65 72 6e 2e 20 4c 61  egex pattern. La
2ee00 73 74 20 66 69 6c 65 20 63 68 65 63 6b 65 64 3a  st file checked:
2ee10 20 24 70 6f 74 6c 69 62 22 0a 09 09 66 69 0a 09   $potlib"...fi..
2ee20 20 20 20 20 20 20 66 69 0a 09 20 20 20 20 20 20        fi..      
2ee30 3b 3b 0a 09 20 20 20 20 2a 29 0a 09 20 20 20 20  ;;..    *)..    
2ee40 20 20 23 20 41 64 64 20 61 20 2d 4c 20 61 72 67    # Add a -L arg
2ee50 75 6d 65 6e 74 2e 0a 09 20 20 20 20 20 20 6e 65  ument...      ne
2ee60 77 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 64 65  wdeplibs="$newde
2ee70 70 6c 69 62 73 20 24 61 5f 64 65 70 6c 69 62 22  plibs $a_deplib"
2ee80 0a 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20  ..      ;;..    
2ee90 65 73 61 63 0a 09 20 20 64 6f 6e 65 20 23 20 47  esac..  done # G
2eea0 6f 6e 65 20 74 68 72 6f 75 67 68 20 61 6c 6c 20  one through all 
2eeb0 64 65 70 6c 69 62 73 2e 0a 09 20 20 3b 3b 0a 09  deplibs...  ;;..
2eec0 6e 6f 6e 65 20 7c 20 75 6e 6b 6e 6f 77 6e 20 7c  none | unknown |
2eed0 20 2a 29 0a 09 20 20 6e 65 77 64 65 70 6c 69 62   *)..  newdeplib
2eee0 73 3d 22 22 0a 09 20 20 74 6d 70 5f 64 65 70 6c  s=""..  tmp_depl
2eef0 69 62 73 3d 60 24 45 43 48 4f 20 22 58 20 24 64  ibs=`$ECHO "X $d
2ef00 65 70 6c 69 62 73 22 20 7c 20 24 58 73 65 64 20  eplibs" | $Xsed 
2ef10 5c 0a 09 20 20 20 20 20 20 2d 65 20 27 73 2f 20  \..      -e 's/ 
2ef20 2d 6c 63 24 2f 2f 27 20 2d 65 20 27 73 2f 20 2d  -lc$//' -e 's/ -
2ef30 5b 4c 52 5d 5b 5e 20 5d 2a 2f 2f 67 27 60 0a 09  [LR][^ ]*//g'`..
2ef40 20 20 69 66 20 74 65 73 74 20 22 58 24 61 6c 6c    if test "X$all
2ef50 6f 77 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 5f  ow_libtool_libs_
2ef60 77 69 74 68 5f 73 74 61 74 69 63 5f 72 75 6e 74  with_static_runt
2ef70 69 6d 65 73 22 20 3d 20 22 58 79 65 73 22 20 3b  imes" = "Xyes" ;
2ef80 20 74 68 65 6e 0a 09 20 20 20 20 66 6f 72 20 69   then..    for i
2ef90 20 69 6e 20 24 70 72 65 64 65 70 73 20 24 70 6f   in $predeps $po
2efa0 73 74 64 65 70 73 20 3b 20 64 6f 0a 09 20 20 20  stdeps ; do..   
2efb0 20 20 20 23 20 63 61 6e 27 74 20 75 73 65 20 58     # can't use X
2efc0 73 65 64 20 62 65 6c 6f 77 2c 20 62 65 63 61 75  sed below, becau
2efd0 73 65 20 24 69 20 6d 69 67 68 74 20 63 6f 6e 74  se $i might cont
2efe0 61 69 6e 20 27 2f 27 0a 09 20 20 20 20 20 20 74  ain '/'..      t
2eff0 6d 70 5f 64 65 70 6c 69 62 73 3d 60 24 45 43 48  mp_deplibs=`$ECH
2f000 4f 20 22 58 20 24 74 6d 70 5f 64 65 70 6c 69 62  O "X $tmp_deplib
2f010 73 22 20 7c 20 24 58 73 65 64 20 2d 65 20 22 73  s" | $Xsed -e "s
2f020 2c 24 69 2c 2c 22 60 0a 09 20 20 20 20 64 6f 6e  ,$i,,"`..    don
2f030 65 0a 09 20 20 66 69 0a 09 20 20 69 66 20 24 45  e..  fi..  if $E
2f040 43 48 4f 20 22 58 20 24 74 6d 70 5f 64 65 70 6c  CHO "X $tmp_depl
2f050 69 62 73 22 20 7c 20 24 58 73 65 64 20 2d 65 20  ibs" | $Xsed -e 
2f060 27 73 2f 5b 09 20 5d 2f 2f 67 27 20 7c 0a 09 20  's/[. ]//g' |.. 
2f070 20 20 20 20 24 47 52 45 50 20 2e 20 3e 2f 64 65      $GREP . >/de
2f080 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 20 20  v/null; then..  
2f090 20 20 24 45 43 48 4f 0a 09 20 20 20 20 69 66 20    $ECHO..    if 
2f0a0 74 65 73 74 20 22 58 24 64 65 70 6c 69 62 73 5f  test "X$deplibs_
2f0b0 63 68 65 63 6b 5f 6d 65 74 68 6f 64 22 20 3d 20  check_method" = 
2f0c0 22 58 6e 6f 6e 65 22 3b 20 74 68 65 6e 0a 09 20  "Xnone"; then.. 
2f0d0 20 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20       $ECHO "*** 
2f0e0 57 61 72 6e 69 6e 67 3a 20 69 6e 74 65 72 2d 6c  Warning: inter-l
2f0f0 69 62 72 61 72 79 20 64 65 70 65 6e 64 65 6e 63  ibrary dependenc
2f100 69 65 73 20 61 72 65 20 6e 6f 74 20 73 75 70 70  ies are not supp
2f110 6f 72 74 65 64 20 69 6e 20 74 68 69 73 20 70 6c  orted in this pl
2f120 61 74 66 6f 72 6d 2e 22 0a 09 20 20 20 20 65 6c  atform."..    el
2f130 73 65 0a 09 20 20 20 20 20 20 24 45 43 48 4f 20  se..      $ECHO 
2f140 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a 20 69 6e  "*** Warning: in
2f150 74 65 72 2d 6c 69 62 72 61 72 79 20 64 65 70 65  ter-library depe
2f160 6e 64 65 6e 63 69 65 73 20 61 72 65 20 6e 6f 74  ndencies are not
2f170 20 6b 6e 6f 77 6e 20 74 6f 20 62 65 20 73 75 70   known to be sup
2f180 70 6f 72 74 65 64 2e 22 0a 09 20 20 20 20 66 69  ported."..    fi
2f190 0a 09 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a  ..    $ECHO "***
2f1a0 20 41 6c 6c 20 64 65 63 6c 61 72 65 64 20 69 6e   All declared in
2f1b0 74 65 72 2d 6c 69 62 72 61 72 79 20 64 65 70 65  ter-library depe
2f1c0 6e 64 65 6e 63 69 65 73 20 61 72 65 20 62 65 69  ndencies are bei
2f1d0 6e 67 20 64 72 6f 70 70 65 64 2e 22 0a 09 20 20  ng dropped."..  
2f1e0 20 20 64 72 6f 70 70 65 64 64 65 70 73 3d 79 65    droppeddeps=ye
2f1f0 73 0a 09 20 20 66 69 0a 09 20 20 3b 3b 0a 09 65  s..  fi..  ;;..e
2f200 73 61 63 0a 09 76 65 72 73 75 66 66 69 78 3d 24  sac..versuffix=$
2f210 76 65 72 73 75 66 66 69 78 5f 73 61 76 65 0a 09  versuffix_save..
2f220 6d 61 6a 6f 72 3d 24 6d 61 6a 6f 72 5f 73 61 76  major=$major_sav
2f230 65 0a 09 72 65 6c 65 61 73 65 3d 24 72 65 6c 65  e..release=$rele
2f240 61 73 65 5f 73 61 76 65 0a 09 6c 69 62 6e 61 6d  ase_save..libnam
2f250 65 3d 24 6c 69 62 6e 61 6d 65 5f 73 61 76 65 0a  e=$libname_save.
2f260 09 6e 61 6d 65 3d 24 6e 61 6d 65 5f 73 61 76 65  .name=$name_save
2f270 0a 0a 09 63 61 73 65 20 24 68 6f 73 74 20 69 6e  ...case $host in
2f280 0a 09 2a 2d 2a 2d 72 68 61 70 73 6f 64 79 2a 20  ..*-*-rhapsody* 
2f290 7c 20 2a 2d 2a 2d 64 61 72 77 69 6e 31 2e 5b 30  | *-*-darwin1.[0
2f2a0 31 32 5d 29 0a 09 20 20 23 20 4f 6e 20 52 68 61  12])..  # On Rha
2f2b0 70 73 6f 64 79 20 72 65 70 6c 61 63 65 20 74 68  psody replace th
2f2c0 65 20 43 20 6c 69 62 72 61 72 79 20 77 69 74 68  e C library with
2f2d0 20 74 68 65 20 53 79 73 74 65 6d 20 66 72 61 6d   the System fram
2f2e0 65 77 6f 72 6b 0a 09 20 20 6e 65 77 64 65 70 6c  ework..  newdepl
2f2f0 69 62 73 3d 60 24 45 43 48 4f 20 22 58 20 24 6e  ibs=`$ECHO "X $n
2f300 65 77 64 65 70 6c 69 62 73 22 20 7c 20 24 58 73  ewdeplibs" | $Xs
2f310 65 64 20 2d 65 20 27 73 2f 20 2d 6c 63 20 2f 20  ed -e 's/ -lc / 
2f320 53 79 73 74 65 6d 2e 6c 74 66 72 61 6d 65 77 6f  System.ltframewo
2f330 72 6b 20 2f 27 60 0a 09 20 20 3b 3b 0a 09 65 73  rk /'`..  ;;..es
2f340 61 63 0a 0a 09 69 66 20 74 65 73 74 20 22 24 64  ac...if test "$d
2f350 72 6f 70 70 65 64 64 65 70 73 22 20 3d 20 79 65  roppeddeps" = ye
2f360 73 3b 20 74 68 65 6e 0a 09 20 20 69 66 20 74 65  s; then..  if te
2f370 73 74 20 22 24 6d 6f 64 75 6c 65 22 20 3d 20 79  st "$module" = y
2f380 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20 24 45  es; then..    $E
2f390 43 48 4f 0a 09 20 20 20 20 24 45 43 48 4f 20 22  CHO..    $ECHO "
2f3a0 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a 20 6c 69 62  *** Warning: lib
2f3b0 74 6f 6f 6c 20 63 6f 75 6c 64 20 6e 6f 74 20 73  tool could not s
2f3c0 61 74 69 73 66 79 20 61 6c 6c 20 64 65 63 6c 61  atisfy all decla
2f3d0 72 65 64 20 69 6e 74 65 72 2d 6c 69 62 72 61 72  red inter-librar
2f3e0 79 22 0a 09 20 20 20 20 24 45 43 48 4f 20 22 2a  y"..    $ECHO "*
2f3f0 2a 2a 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20  ** dependencies 
2f400 6f 66 20 6d 6f 64 75 6c 65 20 24 6c 69 62 6e 61  of module $libna
2f410 6d 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20  me.  Therefore, 
2f420 6c 69 62 74 6f 6f 6c 20 77 69 6c 6c 20 63 72 65  libtool will cre
2f430 61 74 65 22 0a 09 20 20 20 20 24 45 43 48 4f 20  ate"..    $ECHO 
2f440 22 2a 2a 2a 20 61 20 73 74 61 74 69 63 20 6d 6f  "*** a static mo
2f450 64 75 6c 65 2c 20 74 68 61 74 20 73 68 6f 75 6c  dule, that shoul
2f460 64 20 77 6f 72 6b 20 61 73 20 6c 6f 6e 67 20 61  d work as long a
2f470 73 20 74 68 65 20 64 6c 6f 70 65 6e 69 6e 67 22  s the dlopening"
2f480 0a 09 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a  ..    $ECHO "***
2f490 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 20   application is 
2f4a0 6c 69 6e 6b 65 64 20 77 69 74 68 20 74 68 65 20  linked with the 
2f4b0 2d 64 6c 6f 70 65 6e 20 66 6c 61 67 2e 22 0a 09  -dlopen flag."..
2f4c0 20 20 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22      if test -z "
2f4d0 24 67 6c 6f 62 61 6c 5f 73 79 6d 62 6f 6c 5f 70  $global_symbol_p
2f4e0 69 70 65 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  ipe"; then..    
2f4f0 20 20 24 45 43 48 4f 0a 09 20 20 20 20 20 20 24    $ECHO..      $
2f500 45 43 48 4f 20 22 2a 2a 2a 20 48 6f 77 65 76 65  ECHO "*** Howeve
2f510 72 2c 20 74 68 69 73 20 77 6f 75 6c 64 20 6f 6e  r, this would on
2f520 6c 79 20 77 6f 72 6b 20 69 66 20 6c 69 62 74 6f  ly work if libto
2f530 6f 6c 20 77 61 73 20 61 62 6c 65 20 74 6f 20 65  ol was able to e
2f540 78 74 72 61 63 74 20 73 79 6d 62 6f 6c 22 0a 09  xtract symbol"..
2f550 20 20 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a        $ECHO "***
2f560 20 6c 69 73 74 73 20 66 72 6f 6d 20 61 20 70 72   lists from a pr
2f570 6f 67 72 61 6d 2c 20 75 73 69 6e 67 20 5c 60 6e  ogram, using \`n
2f580 6d 27 20 6f 72 20 65 71 75 69 76 61 6c 65 6e 74  m' or equivalent
2f590 2c 20 62 75 74 20 6c 69 62 74 6f 6f 6c 20 63 6f  , but libtool co
2f5a0 75 6c 64 22 0a 09 20 20 20 20 20 20 24 45 43 48  uld"..      $ECH
2f5b0 4f 20 22 2a 2a 2a 20 6e 6f 74 20 66 69 6e 64 20  O "*** not find 
2f5c0 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2e 20  such a program. 
2f5d0 20 53 6f 2c 20 74 68 69 73 20 6d 6f 64 75 6c 65   So, this module
2f5e0 20 69 73 20 70 72 6f 62 61 62 6c 79 20 75 73 65   is probably use
2f5f0 6c 65 73 73 2e 22 0a 09 20 20 20 20 20 20 24 45  less."..      $E
2f600 43 48 4f 20 22 2a 2a 2a 20 5c 60 6e 6d 27 20 66  CHO "*** \`nm' f
2f610 72 6f 6d 20 47 4e 55 20 62 69 6e 75 74 69 6c 73  rom GNU binutils
2f620 20 61 6e 64 20 61 20 66 75 6c 6c 20 72 65 62 75   and a full rebu
2f630 69 6c 64 20 6d 61 79 20 68 65 6c 70 2e 22 0a 09  ild may help."..
2f640 20 20 20 20 66 69 0a 09 20 20 20 20 69 66 20 74      fi..    if t
2f650 65 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c 64 5f  est "$build_old_
2f660 6c 69 62 73 22 20 3d 20 6e 6f 3b 20 74 68 65 6e  libs" = no; then
2f670 0a 09 20 20 20 20 20 20 6f 6c 64 6c 69 62 73 3d  ..      oldlibs=
2f680 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f  "$output_objdir/
2f690 24 6c 69 62 6e 61 6d 65 2e 24 6c 69 62 65 78 74  $libname.$libext
2f6a0 22 0a 09 20 20 20 20 20 20 62 75 69 6c 64 5f 6c  "..      build_l
2f6b0 69 62 74 6f 6f 6c 5f 6c 69 62 73 3d 6d 6f 64 75  ibtool_libs=modu
2f6c0 6c 65 0a 09 20 20 20 20 20 20 62 75 69 6c 64 5f  le..      build_
2f6d0 6f 6c 64 5f 6c 69 62 73 3d 79 65 73 0a 09 20 20  old_libs=yes..  
2f6e0 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 62 75    else..      bu
2f6f0 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73  ild_libtool_libs
2f700 3d 6e 6f 0a 09 20 20 20 20 66 69 0a 09 20 20 65  =no..    fi..  e
2f710 6c 73 65 0a 09 20 20 20 20 24 45 43 48 4f 20 22  lse..    $ECHO "
2f720 2a 2a 2a 20 54 68 65 20 69 6e 74 65 72 2d 6c 69  *** The inter-li
2f730 62 72 61 72 79 20 64 65 70 65 6e 64 65 6e 63 69  brary dependenci
2f740 65 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65  es that have bee
2f750 6e 20 64 72 6f 70 70 65 64 20 68 65 72 65 20 77  n dropped here w
2f760 69 6c 6c 20 62 65 22 0a 09 20 20 20 20 24 45 43  ill be"..    $EC
2f770 48 4f 20 22 2a 2a 2a 20 61 75 74 6f 6d 61 74 69  HO "*** automati
2f780 63 61 6c 6c 79 20 61 64 64 65 64 20 77 68 65 6e  cally added when
2f790 65 76 65 72 20 61 20 70 72 6f 67 72 61 6d 20 69  ever a program i
2f7a0 73 20 6c 69 6e 6b 65 64 20 77 69 74 68 20 74 68  s linked with th
2f7b0 69 73 20 6c 69 62 72 61 72 79 22 0a 09 20 20 20  is library"..   
2f7c0 20 24 45 43 48 4f 20 22 2a 2a 2a 20 6f 72 20 69   $ECHO "*** or i
2f7d0 73 20 64 65 63 6c 61 72 65 64 20 74 6f 20 2d 64  s declared to -d
2f7e0 6c 6f 70 65 6e 20 69 74 2e 22 0a 0a 09 20 20 20  lopen it."...   
2f7f0 20 69 66 20 74 65 73 74 20 22 24 61 6c 6c 6f 77   if test "$allow
2f800 5f 75 6e 64 65 66 69 6e 65 64 22 20 3d 20 6e 6f  _undefined" = no
2f810 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 24 45  ; then..      $E
2f820 43 48 4f 0a 09 20 20 20 20 20 20 24 45 43 48 4f  CHO..      $ECHO
2f830 20 22 2a 2a 2a 20 53 69 6e 63 65 20 74 68 69 73   "*** Since this
2f840 20 6c 69 62 72 61 72 79 20 6d 75 73 74 20 6e 6f   library must no
2f850 74 20 63 6f 6e 74 61 69 6e 20 75 6e 64 65 66 69  t contain undefi
2f860 6e 65 64 20 73 79 6d 62 6f 6c 73 2c 22 0a 09 20  ned symbols,".. 
2f870 20 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20       $ECHO "*** 
2f880 62 65 63 61 75 73 65 20 65 69 74 68 65 72 20 74  because either t
2f890 68 65 20 70 6c 61 74 66 6f 72 6d 20 64 6f 65 73  he platform does
2f8a0 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 74 68 65   not support the
2f8b0 6d 20 6f 72 22 0a 09 20 20 20 20 20 20 24 45 43  m or"..      $EC
2f8c0 48 4f 20 22 2a 2a 2a 20 69 74 20 77 61 73 20 65  HO "*** it was e
2f8d0 78 70 6c 69 63 69 74 6c 79 20 72 65 71 75 65 73  xplicitly reques
2f8e0 74 65 64 20 77 69 74 68 20 2d 6e 6f 2d 75 6e 64  ted with -no-und
2f8f0 65 66 69 6e 65 64 2c 22 0a 09 20 20 20 20 20 20  efined,"..      
2f900 24 45 43 48 4f 20 22 2a 2a 2a 20 6c 69 62 74 6f  $ECHO "*** libto
2f910 6f 6c 20 77 69 6c 6c 20 6f 6e 6c 79 20 63 72 65  ol will only cre
2f920 61 74 65 20 61 20 73 74 61 74 69 63 20 76 65 72  ate a static ver
2f930 73 69 6f 6e 20 6f 66 20 69 74 2e 22 0a 09 20 20  sion of it."..  
2f940 20 20 20 20 69 66 20 74 65 73 74 20 22 24 62 75      if test "$bu
2f950 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d 20  ild_old_libs" = 
2f960 6e 6f 3b 20 74 68 65 6e 0a 09 09 6f 6c 64 6c 69  no; then...oldli
2f970 62 73 3d 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64  bs="$output_objd
2f980 69 72 2f 24 6c 69 62 6e 61 6d 65 2e 24 6c 69 62  ir/$libname.$lib
2f990 65 78 74 22 0a 09 09 62 75 69 6c 64 5f 6c 69 62  ext"...build_lib
2f9a0 74 6f 6f 6c 5f 6c 69 62 73 3d 6d 6f 64 75 6c 65  tool_libs=module
2f9b0 0a 09 09 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62  ...build_old_lib
2f9c0 73 3d 79 65 73 0a 09 20 20 20 20 20 20 65 6c 73  s=yes..      els
2f9d0 65 0a 09 09 62 75 69 6c 64 5f 6c 69 62 74 6f 6f  e...build_libtoo
2f9e0 6c 5f 6c 69 62 73 3d 6e 6f 0a 09 20 20 20 20 20  l_libs=no..     
2f9f0 20 66 69 0a 09 20 20 20 20 66 69 0a 09 20 20 66   fi..    fi..  f
2fa00 69 0a 09 66 69 0a 09 23 20 44 6f 6e 65 20 63 68  i..fi..# Done ch
2fa10 65 63 6b 69 6e 67 20 64 65 70 6c 69 62 73 21 0a  ecking deplibs!.
2fa20 09 64 65 70 6c 69 62 73 3d 24 6e 65 77 64 65 70  .deplibs=$newdep
2fa30 6c 69 62 73 0a 20 20 20 20 20 20 66 69 0a 20 20  libs.      fi.  
2fa40 20 20 20 20 23 20 54 69 6d 65 20 74 6f 20 63 68      # Time to ch
2fa50 61 6e 67 65 20 61 6c 6c 20 6f 75 72 20 22 66 6f  ange all our "fo
2fa60 6f 2e 6c 74 66 72 61 6d 65 77 6f 72 6b 22 20 73  o.ltframework" s
2fa70 74 75 66 66 20 62 61 63 6b 20 74 6f 20 22 2d 66  tuff back to "-f
2fa80 72 61 6d 65 77 6f 72 6b 20 66 6f 6f 22 0a 20 20  ramework foo".  
2fa90 20 20 20 20 63 61 73 65 20 24 68 6f 73 74 20 69      case $host i
2faa0 6e 0a 09 2a 2d 2a 2d 64 61 72 77 69 6e 2a 29 0a  n..*-*-darwin*).
2fab0 09 20 20 6e 65 77 64 65 70 6c 69 62 73 3d 60 24  .  newdeplibs=`$
2fac0 45 43 48 4f 20 22 58 20 24 6e 65 77 64 65 70 6c  ECHO "X $newdepl
2fad0 69 62 73 22 20 7c 20 24 58 73 65 64 20 2d 65 20  ibs" | $Xsed -e 
2fae0 27 73 25 20 5c 28 5b 5e 20 24 5d 2a 5c 29 2e 6c  's% \([^ $]*\).l
2faf0 74 66 72 61 6d 65 77 6f 72 6b 25 20 2d 66 72 61  tframework% -fra
2fb00 6d 65 77 6f 72 6b 20 5c 31 25 67 27 60 0a 09 20  mework \1%g'`.. 
2fb10 20 6e 65 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c   new_inherited_l
2fb20 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 60 24 45 43  inker_flags=`$EC
2fb30 48 4f 20 22 58 20 24 6e 65 77 5f 69 6e 68 65 72  HO "X $new_inher
2fb40 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67  ited_linker_flag
2fb50 73 22 20 7c 20 24 58 73 65 64 20 2d 65 20 27 73  s" | $Xsed -e 's
2fb60 25 20 5c 28 5b 5e 20 24 5d 2a 5c 29 2e 6c 74 66  % \([^ $]*\).ltf
2fb70 72 61 6d 65 77 6f 72 6b 25 20 2d 66 72 61 6d 65  ramework% -frame
2fb80 77 6f 72 6b 20 5c 31 25 67 27 60 0a 09 20 20 64  work \1%g'`..  d
2fb90 65 70 6c 69 62 73 3d 60 24 45 43 48 4f 20 22 58  eplibs=`$ECHO "X
2fba0 20 24 64 65 70 6c 69 62 73 22 20 7c 20 24 58 73   $deplibs" | $Xs
2fbb0 65 64 20 2d 65 20 27 73 25 20 5c 28 5b 5e 20 24  ed -e 's% \([^ $
2fbc0 5d 2a 5c 29 2e 6c 74 66 72 61 6d 65 77 6f 72 6b  ]*\).ltframework
2fbd0 25 20 2d 66 72 61 6d 65 77 6f 72 6b 20 5c 31 25  % -framework \1%
2fbe0 67 27 60 0a 09 20 20 3b 3b 0a 20 20 20 20 20 20  g'`..  ;;.      
2fbf0 65 73 61 63 0a 0a 20 20 20 20 20 20 23 20 6d 6f  esac..      # mo
2fc00 76 65 20 6c 69 62 72 61 72 79 20 73 65 61 72 63  ve library searc
2fc10 68 20 70 61 74 68 73 20 74 68 61 74 20 63 6f 69  h paths that coi
2fc20 6e 63 69 64 65 20 77 69 74 68 20 70 61 74 68 73  ncide with paths
2fc30 20 74 6f 20 6e 6f 74 20 79 65 74 0a 20 20 20 20   to not yet.    
2fc40 20 20 23 20 69 6e 73 74 61 6c 6c 65 64 20 6c 69    # installed li
2fc50 62 72 61 72 69 65 73 20 74 6f 20 74 68 65 20 62  braries to the b
2fc60 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20  eginning of the 
2fc70 6c 69 62 72 61 72 79 20 73 65 61 72 63 68 20 6c  library search l
2fc80 69 73 74 0a 20 20 20 20 20 20 6e 65 77 5f 6c 69  ist.      new_li
2fc90 62 73 3d 0a 20 20 20 20 20 20 66 6f 72 20 70 61  bs=.      for pa
2fca0 74 68 20 69 6e 20 24 6e 6f 74 69 6e 73 74 5f 70  th in $notinst_p
2fcb0 61 74 68 3b 20 64 6f 0a 09 63 61 73 65 20 22 20  ath; do..case " 
2fcc0 24 6e 65 77 5f 6c 69 62 73 20 22 20 69 6e 0a 09  $new_libs " in..
2fcd0 2a 22 20 2d 4c 24 70 61 74 68 2f 24 6f 62 6a 64  *" -L$path/$objd
2fce0 69 72 20 22 2a 29 20 3b 3b 0a 09 2a 29 0a 09 20  ir "*) ;;..*).. 
2fcf0 20 63 61 73 65 20 22 20 24 64 65 70 6c 69 62 73   case " $deplibs
2fd00 20 22 20 69 6e 0a 09 20 20 2a 22 20 2d 4c 24 70   " in..  *" -L$p
2fd10 61 74 68 2f 24 6f 62 6a 64 69 72 20 22 2a 29 0a  ath/$objdir "*).
2fd20 09 20 20 20 20 6e 65 77 5f 6c 69 62 73 3d 22 24  .    new_libs="$
2fd30 6e 65 77 5f 6c 69 62 73 20 2d 4c 24 70 61 74 68  new_libs -L$path
2fd40 2f 24 6f 62 6a 64 69 72 22 20 3b 3b 0a 09 20 20  /$objdir" ;;..  
2fd50 65 73 61 63 0a 09 20 20 3b 3b 0a 09 65 73 61 63  esac..  ;;..esac
2fd60 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20 20 20 20  .      done.    
2fd70 20 20 66 6f 72 20 64 65 70 6c 69 62 20 69 6e 20    for deplib in 
2fd80 24 64 65 70 6c 69 62 73 3b 20 64 6f 0a 09 63 61  $deplibs; do..ca
2fd90 73 65 20 24 64 65 70 6c 69 62 20 69 6e 0a 09 2d  se $deplib in..-
2fda0 4c 2a 29 0a 09 20 20 63 61 73 65 20 22 20 24 6e  L*)..  case " $n
2fdb0 65 77 5f 6c 69 62 73 20 22 20 69 6e 0a 09 20 20  ew_libs " in..  
2fdc0 2a 22 20 24 64 65 70 6c 69 62 20 22 2a 29 20 3b  *" $deplib "*) ;
2fdd0 3b 0a 09 20 20 2a 29 20 6e 65 77 5f 6c 69 62 73  ;..  *) new_libs
2fde0 3d 22 24 6e 65 77 5f 6c 69 62 73 20 24 64 65 70  ="$new_libs $dep
2fdf0 6c 69 62 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a  lib" ;;..  esac.
2fe00 09 20 20 3b 3b 0a 09 2a 29 20 6e 65 77 5f 6c 69  .  ;;..*) new_li
2fe10 62 73 3d 22 24 6e 65 77 5f 6c 69 62 73 20 24 64  bs="$new_libs $d
2fe20 65 70 6c 69 62 22 20 3b 3b 0a 09 65 73 61 63 0a  eplib" ;;..esac.
2fe30 20 20 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 20        done.     
2fe40 20 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 5f 6c   deplibs="$new_l
2fe50 69 62 73 22 0a 0a 20 20 20 20 20 20 23 20 41 6c  ibs"..      # Al
2fe60 6c 20 74 68 65 20 6c 69 62 72 61 72 79 2d 73 70  l the library-sp
2fe70 65 63 69 66 69 63 20 76 61 72 69 61 62 6c 65 73  ecific variables
2fe80 20 28 69 6e 73 74 61 6c 6c 5f 6c 69 62 64 69 72   (install_libdir
2fe90 20 69 73 20 73 65 74 20 61 62 6f 76 65 29 2e 0a   is set above)..
2fea0 20 20 20 20 20 20 6c 69 62 72 61 72 79 5f 6e 61        library_na
2feb0 6d 65 73 3d 0a 20 20 20 20 20 20 6f 6c 64 5f 6c  mes=.      old_l
2fec0 69 62 72 61 72 79 3d 0a 20 20 20 20 20 20 64 6c  ibrary=.      dl
2fed0 6e 61 6d 65 3d 0a 0a 20 20 20 20 20 20 23 20 54  name=..      # T
2fee0 65 73 74 20 61 67 61 69 6e 2c 20 77 65 20 6d 61  est again, we ma
2fef0 79 20 68 61 76 65 20 64 65 63 69 64 65 64 20 6e  y have decided n
2ff00 6f 74 20 74 6f 20 62 75 69 6c 64 20 69 74 20 61  ot to build it a
2ff10 6e 79 20 6d 6f 72 65 0a 20 20 20 20 20 20 69 66  ny more.      if
2ff20 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6c 69   test "$build_li
2ff30 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 3d 20 79 65  btool_libs" = ye
2ff40 73 3b 20 74 68 65 6e 0a 09 69 66 20 74 65 73 74  s; then..if test
2ff50 20 22 24 68 61 72 64 63 6f 64 65 5f 69 6e 74 6f   "$hardcode_into
2ff60 5f 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74 68  _libs" = yes; th
2ff70 65 6e 0a 09 20 20 23 20 48 61 72 64 63 6f 64 65  en..  # Hardcode
2ff80 20 74 68 65 20 6c 69 62 72 61 72 79 20 70 61 74   the library pat
2ff90 68 73 0a 09 20 20 68 61 72 64 63 6f 64 65 5f 6c  hs..  hardcode_l
2ffa0 69 62 64 69 72 73 3d 0a 09 20 20 64 65 70 5f 72  ibdirs=..  dep_r
2ffb0 70 61 74 68 3d 0a 09 20 20 72 70 61 74 68 3d 22  path=..  rpath="
2ffc0 24 66 69 6e 61 6c 69 7a 65 5f 72 70 61 74 68 22  $finalize_rpath"
2ffd0 0a 09 20 20 74 65 73 74 20 22 24 6d 6f 64 65 22  ..  test "$mode"
2ffe0 20 21 3d 20 72 65 6c 69 6e 6b 20 26 26 20 72 70   != relink && rp
2fff0 61 74 68 3d 22 24 63 6f 6d 70 69 6c 65 5f 72 70  ath="$compile_rp
30000 61 74 68 24 72 70 61 74 68 22 0a 09 20 20 66 6f  ath$rpath"..  fo
30010 72 20 6c 69 62 64 69 72 20 69 6e 20 24 72 70 61  r libdir in $rpa
30020 74 68 3b 20 64 6f 0a 09 20 20 20 20 69 66 20 74  th; do..    if t
30030 65 73 74 20 2d 6e 20 22 24 68 61 72 64 63 6f 64  est -n "$hardcod
30040 65 5f 6c 69 62 64 69 72 5f 66 6c 61 67 5f 73 70  e_libdir_flag_sp
30050 65 63 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  ec"; then..     
30060 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 68 61   if test -n "$ha
30070 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f 73 65  rdcode_libdir_se
30080 70 61 72 61 74 6f 72 22 3b 20 74 68 65 6e 0a 09  parator"; then..
30090 09 69 66 20 74 65 73 74 20 2d 7a 20 22 24 68 61  .if test -z "$ha
300a0 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 73 22 3b  rdcode_libdirs";
300b0 20 74 68 65 6e 0a 09 09 20 20 68 61 72 64 63 6f   then...  hardco
300c0 64 65 5f 6c 69 62 64 69 72 73 3d 22 24 6c 69 62  de_libdirs="$lib
300d0 64 69 72 22 0a 09 09 65 6c 73 65 0a 09 09 20 20  dir"...else...  
300e0 23 20 4a 75 73 74 20 61 63 63 75 6d 75 6c 61 74  # Just accumulat
300f0 65 20 74 68 65 20 75 6e 69 71 75 65 20 6c 69 62  e the unique lib
30100 64 69 72 73 2e 0a 09 09 20 20 63 61 73 65 20 24  dirs....  case $
30110 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f  hardcode_libdir_
30120 73 65 70 61 72 61 74 6f 72 24 68 61 72 64 63 6f  separator$hardco
30130 64 65 5f 6c 69 62 64 69 72 73 24 68 61 72 64 63  de_libdirs$hardc
30140 6f 64 65 5f 6c 69 62 64 69 72 5f 73 65 70 61 72  ode_libdir_separ
30150 61 74 6f 72 20 69 6e 0a 09 09 20 20 2a 22 24 68  ator in...  *"$h
30160 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f 73  ardcode_libdir_s
30170 65 70 61 72 61 74 6f 72 24 6c 69 62 64 69 72 24  eparator$libdir$
30180 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f  hardcode_libdir_
30190 73 65 70 61 72 61 74 6f 72 22 2a 29 0a 09 09 20  separator"*)... 
301a0 20 20 20 3b 3b 0a 09 09 20 20 2a 29 0a 09 09 20     ;;...  *)... 
301b0 20 20 20 68 61 72 64 63 6f 64 65 5f 6c 69 62 64     hardcode_libd
301c0 69 72 73 3d 22 24 68 61 72 64 63 6f 64 65 5f 6c  irs="$hardcode_l
301d0 69 62 64 69 72 73 24 68 61 72 64 63 6f 64 65 5f  ibdirs$hardcode_
301e0 6c 69 62 64 69 72 5f 73 65 70 61 72 61 74 6f 72  libdir_separator
301f0 24 6c 69 62 64 69 72 22 0a 09 09 20 20 20 20 3b  $libdir"...    ;
30200 3b 0a 09 09 20 20 65 73 61 63 0a 09 09 66 69 0a  ;...  esac...fi.
30210 09 20 20 20 20 20 20 65 6c 73 65 0a 09 09 65 76  .      else...ev
30220 61 6c 20 66 6c 61 67 3d 5c 22 24 68 61 72 64 63  al flag=\"$hardc
30230 6f 64 65 5f 6c 69 62 64 69 72 5f 66 6c 61 67 5f  ode_libdir_flag_
30240 73 70 65 63 5c 22 0a 09 09 64 65 70 5f 72 70 61  spec\"...dep_rpa
30250 74 68 3d 22 24 64 65 70 5f 72 70 61 74 68 20 24  th="$dep_rpath $
30260 66 6c 61 67 22 0a 09 20 20 20 20 20 20 66 69 0a  flag"..      fi.
30270 09 20 20 20 20 65 6c 69 66 20 74 65 73 74 20 2d  .    elif test -
30280 6e 20 22 24 72 75 6e 70 61 74 68 5f 76 61 72 22  n "$runpath_var"
30290 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63 61  ; then..      ca
302a0 73 65 20 22 24 70 65 72 6d 5f 72 70 61 74 68 20  se "$perm_rpath 
302b0 22 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24  " in..      *" $
302c0 6c 69 62 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20  libdir "*) ;;.. 
302d0 20 20 20 20 20 2a 29 20 70 65 72 6d 5f 72 70 61       *) perm_rpa
302e0 74 68 3d 22 24 70 65 72 6d 5f 72 70 61 74 68 20  th="$perm_rpath 
302f0 24 6c 69 62 64 69 72 22 20 3b 3b 0a 09 20 20 20  $libdir" ;;..   
30300 20 20 20 65 73 61 63 0a 09 20 20 20 20 66 69 0a     esac..    fi.
30310 09 20 20 64 6f 6e 65 0a 09 20 20 23 20 53 75 62  .  done..  # Sub
30320 73 74 69 74 75 74 65 20 74 68 65 20 68 61 72 64  stitute the hard
30330 63 6f 64 65 64 20 6c 69 62 64 69 72 73 20 69 6e  coded libdirs in
30340 74 6f 20 74 68 65 20 72 70 61 74 68 2e 0a 09 20  to the rpath... 
30350 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 68 61   if test -n "$ha
30360 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f 73 65  rdcode_libdir_se
30370 70 61 72 61 74 6f 72 22 20 26 26 0a 09 20 20 20  parator" &&..   
30380 20 20 74 65 73 74 20 2d 6e 20 22 24 68 61 72 64    test -n "$hard
30390 63 6f 64 65 5f 6c 69 62 64 69 72 73 22 3b 20 74  code_libdirs"; t
303a0 68 65 6e 0a 09 20 20 20 20 6c 69 62 64 69 72 3d  hen..    libdir=
303b0 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69  "$hardcode_libdi
303c0 72 73 22 0a 09 20 20 20 20 69 66 20 74 65 73 74  rs"..    if test
303d0 20 2d 6e 20 22 24 68 61 72 64 63 6f 64 65 5f 6c   -n "$hardcode_l
303e0 69 62 64 69 72 5f 66 6c 61 67 5f 73 70 65 63 5f  ibdir_flag_spec_
303f0 6c 64 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  ld"; then..     
30400 20 65 76 61 6c 20 64 65 70 5f 72 70 61 74 68 3d   eval dep_rpath=
30410 5c 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64  \"$hardcode_libd
30420 69 72 5f 66 6c 61 67 5f 73 70 65 63 5f 6c 64 5c  ir_flag_spec_ld\
30430 22 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20  "..    else..   
30440 20 20 20 65 76 61 6c 20 64 65 70 5f 72 70 61 74     eval dep_rpat
30450 68 3d 5c 22 24 68 61 72 64 63 6f 64 65 5f 6c 69  h=\"$hardcode_li
30460 62 64 69 72 5f 66 6c 61 67 5f 73 70 65 63 5c 22  bdir_flag_spec\"
30470 0a 09 20 20 20 20 66 69 0a 09 20 20 66 69 0a 09  ..    fi..  fi..
30480 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 72    if test -n "$r
30490 75 6e 70 61 74 68 5f 76 61 72 22 20 26 26 20 74  unpath_var" && t
304a0 65 73 74 20 2d 6e 20 22 24 70 65 72 6d 5f 72 70  est -n "$perm_rp
304b0 61 74 68 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  ath"; then..    
304c0 23 20 57 65 20 73 68 6f 75 6c 64 20 73 65 74 20  # We should set 
304d0 74 68 65 20 72 75 6e 70 61 74 68 5f 76 61 72 2e  the runpath_var.
304e0 0a 09 20 20 20 20 72 70 61 74 68 3d 0a 09 20 20  ..    rpath=..  
304f0 20 20 66 6f 72 20 64 69 72 20 69 6e 20 24 70 65    for dir in $pe
30500 72 6d 5f 72 70 61 74 68 3b 20 64 6f 0a 09 20 20  rm_rpath; do..  
30510 20 20 20 20 72 70 61 74 68 3d 22 24 72 70 61 74      rpath="$rpat
30520 68 24 64 69 72 3a 22 0a 09 20 20 20 20 64 6f 6e  h$dir:"..    don
30530 65 0a 09 20 20 20 20 65 76 61 6c 20 22 24 72 75  e..    eval "$ru
30540 6e 70 61 74 68 5f 76 61 72 3d 27 24 72 70 61 74  npath_var='$rpat
30550 68 5c 24 24 72 75 6e 70 61 74 68 5f 76 61 72 27  h\$$runpath_var'
30560 3b 20 65 78 70 6f 72 74 20 24 72 75 6e 70 61 74  ; export $runpat
30570 68 5f 76 61 72 22 0a 09 20 20 66 69 0a 09 20 20  h_var"..  fi..  
30580 74 65 73 74 20 2d 6e 20 22 24 64 65 70 5f 72 70  test -n "$dep_rp
30590 61 74 68 22 20 26 26 20 64 65 70 6c 69 62 73 3d  ath" && deplibs=
305a0 22 24 64 65 70 5f 72 70 61 74 68 20 24 64 65 70  "$dep_rpath $dep
305b0 6c 69 62 73 22 0a 09 66 69 0a 0a 09 73 68 6c 69  libs"..fi...shli
305c0 62 70 61 74 68 3d 22 24 66 69 6e 61 6c 69 7a 65  bpath="$finalize
305d0 5f 73 68 6c 69 62 70 61 74 68 22 0a 09 74 65 73  _shlibpath"..tes
305e0 74 20 22 24 6d 6f 64 65 22 20 21 3d 20 72 65 6c  t "$mode" != rel
305f0 69 6e 6b 20 26 26 20 73 68 6c 69 62 70 61 74 68  ink && shlibpath
30600 3d 22 24 63 6f 6d 70 69 6c 65 5f 73 68 6c 69 62  ="$compile_shlib
30610 70 61 74 68 24 73 68 6c 69 62 70 61 74 68 22 0a  path$shlibpath".
30620 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 73 68  .if test -n "$sh
30630 6c 69 62 70 61 74 68 22 3b 20 74 68 65 6e 0a 09  libpath"; then..
30640 20 20 65 76 61 6c 20 22 24 73 68 6c 69 62 70 61    eval "$shlibpa
30650 74 68 5f 76 61 72 3d 27 24 73 68 6c 69 62 70 61  th_var='$shlibpa
30660 74 68 5c 24 24 73 68 6c 69 62 70 61 74 68 5f 76  th\$$shlibpath_v
30670 61 72 27 3b 20 65 78 70 6f 72 74 20 24 73 68 6c  ar'; export $shl
30680 69 62 70 61 74 68 5f 76 61 72 22 0a 09 66 69 0a  ibpath_var"..fi.
30690 0a 09 23 20 47 65 74 20 74 68 65 20 72 65 61 6c  ..# Get the real
306a0 20 61 6e 64 20 6c 69 6e 6b 20 6e 61 6d 65 73 20   and link names 
306b0 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 2e 0a  of the library..
306c0 09 65 76 61 6c 20 73 68 61 72 65 64 5f 65 78 74  .eval shared_ext
306d0 3d 5c 22 24 73 68 72 65 78 74 5f 63 6d 64 73 5c  =\"$shrext_cmds\
306e0 22 0a 09 65 76 61 6c 20 6c 69 62 72 61 72 79 5f  "..eval library_
306f0 6e 61 6d 65 73 3d 5c 22 24 6c 69 62 72 61 72 79  names=\"$library
30700 5f 6e 61 6d 65 73 5f 73 70 65 63 5c 22 0a 09 73  _names_spec\"..s
30710 65 74 20 64 75 6d 6d 79 20 24 6c 69 62 72 61 72  et dummy $librar
30720 79 5f 6e 61 6d 65 73 0a 09 73 68 69 66 74 0a 09  y_names..shift..
30730 72 65 61 6c 6e 61 6d 65 3d 22 24 31 22 0a 09 73  realname="$1"..s
30740 68 69 66 74 0a 0a 09 69 66 20 74 65 73 74 20 2d  hift...if test -
30750 6e 20 22 24 73 6f 6e 61 6d 65 5f 73 70 65 63 22  n "$soname_spec"
30760 3b 20 74 68 65 6e 0a 09 20 20 65 76 61 6c 20 73  ; then..  eval s
30770 6f 6e 61 6d 65 3d 5c 22 24 73 6f 6e 61 6d 65 5f  oname=\"$soname_
30780 73 70 65 63 5c 22 0a 09 65 6c 73 65 0a 09 20 20  spec\"..else..  
30790 73 6f 6e 61 6d 65 3d 22 24 72 65 61 6c 6e 61 6d  soname="$realnam
307a0 65 22 0a 09 66 69 0a 09 69 66 20 74 65 73 74 20  e"..fi..if test 
307b0 2d 7a 20 22 24 64 6c 6e 61 6d 65 22 3b 20 74 68  -z "$dlname"; th
307c0 65 6e 0a 09 20 20 64 6c 6e 61 6d 65 3d 24 73 6f  en..  dlname=$so
307d0 6e 61 6d 65 0a 09 66 69 0a 0a 09 6c 69 62 3d 22  name..fi...lib="
307e0 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24  $output_objdir/$
307f0 72 65 61 6c 6e 61 6d 65 22 0a 09 6c 69 6e 6b 6e  realname"..linkn
30800 61 6d 65 73 3d 0a 09 66 6f 72 20 6c 69 6e 6b 0a  ames=..for link.
30810 09 64 6f 0a 09 20 20 6c 69 6e 6b 6e 61 6d 65 73  .do..  linknames
30820 3d 22 24 6c 69 6e 6b 6e 61 6d 65 73 20 24 6c 69  ="$linknames $li
30830 6e 6b 22 0a 09 64 6f 6e 65 0a 0a 09 23 20 55 73  nk"..done...# Us
30840 65 20 73 74 61 6e 64 61 72 64 20 6f 62 6a 65 63  e standard objec
30850 74 73 20 69 66 20 74 68 65 79 20 61 72 65 20 70  ts if they are p
30860 69 63 0a 09 74 65 73 74 20 2d 7a 20 22 24 70 69  ic..test -z "$pi
30870 63 5f 66 6c 61 67 22 20 26 26 20 6c 69 62 6f 62  c_flag" && libob
30880 6a 73 3d 60 24 45 43 48 4f 20 22 58 24 6c 69 62  js=`$ECHO "X$lib
30890 6f 62 6a 73 22 20 7c 20 24 53 50 32 4e 4c 20 7c  objs" | $SP2NL |
308a0 20 24 58 73 65 64 20 2d 65 20 22 24 6c 6f 32 6f   $Xsed -e "$lo2o
308b0 22 20 7c 20 24 4e 4c 32 53 50 60 0a 09 74 65 73  " | $NL2SP`..tes
308c0 74 20 22 58 24 6c 69 62 6f 62 6a 73 22 20 3d 20  t "X$libobjs" = 
308d0 22 58 20 22 20 26 26 20 6c 69 62 6f 62 6a 73 3d  "X " && libobjs=
308e0 0a 0a 09 64 65 6c 66 69 6c 65 73 3d 0a 09 69 66  ...delfiles=..if
308f0 20 74 65 73 74 20 2d 6e 20 22 24 65 78 70 6f 72   test -n "$expor
30900 74 5f 73 79 6d 62 6f 6c 73 22 20 26 26 20 74 65  t_symbols" && te
30910 73 74 20 2d 6e 20 22 24 69 6e 63 6c 75 64 65 5f  st -n "$include_
30920 65 78 70 73 79 6d 73 22 3b 20 74 68 65 6e 0a 09  expsyms"; then..
30930 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c    $opt_dry_run |
30940 7c 20 63 70 20 22 24 65 78 70 6f 72 74 5f 73 79  | cp "$export_sy
30950 6d 62 6f 6c 73 22 20 22 24 6f 75 74 70 75 74 5f  mbols" "$output_
30960 6f 62 6a 64 69 72 2f 24 6c 69 62 6e 61 6d 65 2e  objdir/$libname.
30970 75 65 78 70 22 0a 09 20 20 65 78 70 6f 72 74 5f  uexp"..  export_
30980 73 79 6d 62 6f 6c 73 3d 22 24 6f 75 74 70 75 74  symbols="$output
30990 5f 6f 62 6a 64 69 72 2f 24 6c 69 62 6e 61 6d 65  _objdir/$libname
309a0 2e 75 65 78 70 22 0a 09 20 20 64 65 6c 66 69 6c  .uexp"..  delfil
309b0 65 73 3d 22 24 64 65 6c 66 69 6c 65 73 20 24 65  es="$delfiles $e
309c0 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 0a 09  xport_symbols"..
309d0 66 69 0a 0a 09 6f 72 69 67 5f 65 78 70 6f 72 74  fi...orig_export
309e0 5f 73 79 6d 62 6f 6c 73 3d 0a 09 63 61 73 65 20  _symbols=..case 
309f0 24 68 6f 73 74 5f 6f 73 20 69 6e 0a 09 63 79 67  $host_os in..cyg
30a00 77 69 6e 2a 20 7c 20 6d 69 6e 67 77 2a 20 7c 20  win* | mingw* | 
30a10 63 65 67 63 63 2a 29 0a 09 20 20 69 66 20 74 65  cegcc*)..  if te
30a20 73 74 20 2d 6e 20 22 24 65 78 70 6f 72 74 5f 73  st -n "$export_s
30a30 79 6d 62 6f 6c 73 22 20 26 26 20 74 65 73 74 20  ymbols" && test 
30a40 2d 7a 20 22 24 65 78 70 6f 72 74 5f 73 79 6d 62  -z "$export_symb
30a50 6f 6c 73 5f 72 65 67 65 78 22 3b 20 74 68 65 6e  ols_regex"; then
30a60 0a 09 20 20 20 20 23 20 65 78 70 6f 72 74 69 6e  ..    # exportin
30a70 67 20 75 73 69 6e 67 20 75 73 65 72 20 73 75 70  g using user sup
30a80 70 6c 69 65 64 20 73 79 6d 66 69 6c 65 0a 09 20  plied symfile.. 
30a90 20 20 20 69 66 20 74 65 73 74 20 22 78 60 24 53     if test "x`$S
30aa0 45 44 20 31 71 20 24 65 78 70 6f 72 74 5f 73 79  ED 1q $export_sy
30ab0 6d 62 6f 6c 73 60 22 20 21 3d 20 78 45 58 50 4f  mbols`" != xEXPO
30ac0 52 54 53 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  RTS; then..     
30ad0 20 23 20 61 6e 64 20 69 74 27 73 20 4e 4f 54 20   # and it's NOT 
30ae0 61 6c 72 65 61 64 79 20 61 20 2e 64 65 66 20 66  already a .def f
30af0 69 6c 65 2e 20 4d 75 73 74 20 66 69 67 75 72 65  ile. Must figure
30b00 20 6f 75 74 0a 09 20 20 20 20 20 20 23 20 77 68   out..      # wh
30b10 69 63 68 20 6f 66 20 74 68 65 20 67 69 76 65 6e  ich of the given
30b20 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 64 61 74   symbols are dat
30b30 61 20 73 79 6d 62 6f 6c 73 20 61 6e 64 20 74 61  a symbols and ta
30b40 67 0a 09 20 20 20 20 20 20 23 20 74 68 65 6d 20  g..      # them 
30b50 61 73 20 73 75 63 68 2e 20 53 6f 2c 20 74 72 69  as such. So, tri
30b60 67 67 65 72 20 75 73 65 20 6f 66 20 65 78 70 6f  gger use of expo
30b70 72 74 5f 73 79 6d 62 6f 6c 73 5f 63 6d 64 73 2e  rt_symbols_cmds.
30b80 0a 09 20 20 20 20 20 20 23 20 65 78 70 6f 72 74  ..      # export
30b90 5f 73 79 6d 62 6f 6c 73 20 67 65 74 73 20 72 65  _symbols gets re
30ba0 61 73 73 69 67 6e 65 64 20 69 6e 73 69 64 65 20  assigned inside 
30bb0 74 68 65 20 22 70 72 65 70 61 72 65 0a 09 20 20  the "prepare..  
30bc0 20 20 20 20 23 20 74 68 65 20 6c 69 73 74 20 6f      # the list o
30bd0 66 20 65 78 70 6f 72 74 65 64 20 73 79 6d 62 6f  f exported symbo
30be0 6c 73 22 20 69 66 20 73 74 61 74 65 6d 65 6e 74  ls" if statement
30bf0 2c 20 73 6f 20 74 68 65 0a 09 20 20 20 20 20 20  , so the..      
30c00 23 20 69 6e 63 6c 75 64 65 5f 65 78 70 73 79 6d  # include_expsym
30c10 73 20 6c 6f 67 69 63 20 73 74 69 6c 6c 20 77 6f  s logic still wo
30c20 72 6b 73 2e 0a 09 20 20 20 20 20 20 6f 72 69 67  rks...      orig
30c30 5f 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 3d  _export_symbols=
30c40 22 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73  "$export_symbols
30c50 22 0a 09 20 20 20 20 20 20 65 78 70 6f 72 74 5f  "..      export_
30c60 73 79 6d 62 6f 6c 73 3d 0a 09 20 20 20 20 20 20  symbols=..      
30c70 61 6c 77 61 79 73 5f 65 78 70 6f 72 74 5f 73 79  always_export_sy
30c80 6d 62 6f 6c 73 3d 79 65 73 0a 09 20 20 20 20 66  mbols=yes..    f
30c90 69 0a 09 20 20 66 69 0a 09 20 20 3b 3b 0a 09 65  i..  fi..  ;;..e
30ca0 73 61 63 0a 0a 09 23 20 50 72 65 70 61 72 65 20  sac...# Prepare 
30cb0 74 68 65 20 6c 69 73 74 20 6f 66 20 65 78 70 6f  the list of expo
30cc0 72 74 65 64 20 73 79 6d 62 6f 6c 73 0a 09 69 66  rted symbols..if
30cd0 20 74 65 73 74 20 2d 7a 20 22 24 65 78 70 6f 72   test -z "$expor
30ce0 74 5f 73 79 6d 62 6f 6c 73 22 3b 20 74 68 65 6e  t_symbols"; then
30cf0 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 61 6c  ..  if test "$al
30d00 77 61 79 73 5f 65 78 70 6f 72 74 5f 73 79 6d 62  ways_export_symb
30d10 6f 6c 73 22 20 3d 20 79 65 73 20 7c 7c 20 74 65  ols" = yes || te
30d20 73 74 20 2d 6e 20 22 24 65 78 70 6f 72 74 5f 73  st -n "$export_s
30d30 79 6d 62 6f 6c 73 5f 72 65 67 65 78 22 3b 20 74  ymbols_regex"; t
30d40 68 65 6e 0a 09 20 20 20 20 66 75 6e 63 5f 76 65  hen..    func_ve
30d50 72 62 6f 73 65 20 22 67 65 6e 65 72 61 74 69 6e  rbose "generatin
30d60 67 20 73 79 6d 62 6f 6c 20 6c 69 73 74 20 66 6f  g symbol list fo
30d70 72 20 5c 60 24 6c 69 62 6e 61 6d 65 2e 6c 61 27  r \`$libname.la'
30d80 22 0a 09 20 20 20 20 65 78 70 6f 72 74 5f 73 79  "..    export_sy
30d90 6d 62 6f 6c 73 3d 22 24 6f 75 74 70 75 74 5f 6f  mbols="$output_o
30da0 62 6a 64 69 72 2f 24 6c 69 62 6e 61 6d 65 2e 65  bjdir/$libname.e
30db0 78 70 22 0a 09 20 20 20 20 24 6f 70 74 5f 64 72  xp"..    $opt_dr
30dc0 79 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 24 65 78  y_run || $RM $ex
30dd0 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 0a 09 20 20  port_symbols..  
30de0 20 20 63 6d 64 73 3d 24 65 78 70 6f 72 74 5f 73    cmds=$export_s
30df0 79 6d 62 6f 6c 73 5f 63 6d 64 73 0a 09 20 20 20  ymbols_cmds..   
30e00 20 73 61 76 65 5f 69 66 73 3d 22 24 49 46 53 22   save_ifs="$IFS"
30e10 3b 20 49 46 53 3d 27 7e 27 0a 09 20 20 20 20 66  ; IFS='~'..    f
30e20 6f 72 20 63 6d 64 20 69 6e 20 24 63 6d 64 73 3b  or cmd in $cmds;
30e30 20 64 6f 0a 09 20 20 20 20 20 20 49 46 53 3d 22   do..      IFS="
30e40 24 73 61 76 65 5f 69 66 73 22 0a 09 20 20 20 20  $save_ifs"..    
30e50 20 20 65 76 61 6c 20 63 6d 64 3d 5c 22 24 63 6d    eval cmd=\"$cm
30e60 64 5c 22 0a 09 20 20 20 20 20 20 66 75 6e 63 5f  d\"..      func_
30e70 6c 65 6e 20 22 20 24 63 6d 64 22 0a 09 20 20 20  len " $cmd"..   
30e80 20 20 20 6c 65 6e 3d 24 66 75 6e 63 5f 6c 65 6e     len=$func_len
30e90 5f 72 65 73 75 6c 74 0a 09 20 20 20 20 20 20 69  _result..      i
30ea0 66 20 74 65 73 74 20 22 24 6c 65 6e 22 20 2d 6c  f test "$len" -l
30eb0 74 20 22 24 6d 61 78 5f 63 6d 64 5f 6c 65 6e 22  t "$max_cmd_len"
30ec0 20 7c 7c 20 74 65 73 74 20 22 24 6d 61 78 5f 63   || test "$max_c
30ed0 6d 64 5f 6c 65 6e 22 20 2d 6c 65 20 2d 31 3b 20  md_len" -le -1; 
30ee0 74 68 65 6e 0a 09 09 66 75 6e 63 5f 73 68 6f 77  then...func_show
30ef0 5f 65 76 61 6c 20 22 24 63 6d 64 22 20 27 65 78  _eval "$cmd" 'ex
30f00 69 74 20 24 3f 27 0a 09 09 73 6b 69 70 70 65 64  it $?'...skipped
30f10 5f 65 78 70 6f 72 74 3d 66 61 6c 73 65 0a 09 20  _export=false.. 
30f20 20 20 20 20 20 65 6c 73 65 0a 09 09 23 20 54 68       else...# Th
30f30 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 69  e command line i
30f40 73 20 74 6f 6f 20 6c 6f 6e 67 20 74 6f 20 65 78  s too long to ex
30f50 65 63 75 74 65 20 69 6e 20 6f 6e 65 20 73 74 65  ecute in one ste
30f60 70 2e 0a 09 09 66 75 6e 63 5f 76 65 72 62 6f 73  p....func_verbos
30f70 65 20 22 75 73 69 6e 67 20 72 65 6c 6f 61 64 61  e "using reloada
30f80 62 6c 65 20 6f 62 6a 65 63 74 20 66 69 6c 65 20  ble object file 
30f90 66 6f 72 20 65 78 70 6f 72 74 20 6c 69 73 74 2e  for export list.
30fa0 2e 2e 22 0a 09 09 73 6b 69 70 70 65 64 5f 65 78  .."...skipped_ex
30fb0 70 6f 72 74 3d 3a 0a 09 09 23 20 42 72 65 61 6b  port=:...# Break
30fc0 20 6f 75 74 20 65 61 72 6c 79 2c 20 6f 74 68 65   out early, othe
30fd0 72 77 69 73 65 20 73 6b 69 70 70 65 64 5f 65 78  rwise skipped_ex
30fe0 70 6f 72 74 20 6d 61 79 20 62 65 0a 09 09 23 20  port may be...# 
30ff0 73 65 74 20 74 6f 20 66 61 6c 73 65 20 62 79 20  set to false by 
31000 61 20 6c 61 74 65 72 20 62 75 74 20 73 68 6f 72  a later but shor
31010 74 65 72 20 63 6d 64 2e 0a 09 09 62 72 65 61 6b  ter cmd....break
31020 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20 20 20  ..      fi..    
31030 64 6f 6e 65 0a 09 20 20 20 20 49 46 53 3d 22 24  done..    IFS="$
31040 73 61 76 65 5f 69 66 73 22 0a 09 20 20 20 20 69  save_ifs"..    i
31050 66 20 74 65 73 74 20 2d 6e 20 22 24 65 78 70 6f  f test -n "$expo
31060 72 74 5f 73 79 6d 62 6f 6c 73 5f 72 65 67 65 78  rt_symbols_regex
31070 22 20 26 26 20 74 65 73 74 20 22 58 24 73 6b 69  " && test "X$ski
31080 70 70 65 64 5f 65 78 70 6f 72 74 22 20 21 3d 20  pped_export" != 
31090 22 58 3a 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  "X:"; then..    
310a0 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c    func_show_eval
310b0 20 27 24 45 47 52 45 50 20 2d 65 20 22 24 65 78   '$EGREP -e "$ex
310c0 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 5f 72 65 67  port_symbols_reg
310d0 65 78 22 20 22 24 65 78 70 6f 72 74 5f 73 79 6d  ex" "$export_sym
310e0 62 6f 6c 73 22 20 3e 20 22 24 7b 65 78 70 6f 72  bols" > "${expor
310f0 74 5f 73 79 6d 62 6f 6c 73 7d 54 22 27 0a 09 20  t_symbols}T"'.. 
31100 20 20 20 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65       func_show_e
31110 76 61 6c 20 27 24 4d 56 20 22 24 7b 65 78 70 6f  val '$MV "${expo
31120 72 74 5f 73 79 6d 62 6f 6c 73 7d 54 22 20 22 24  rt_symbols}T" "$
31130 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 27  export_symbols"'
31140 0a 09 20 20 20 20 66 69 0a 09 20 20 66 69 0a 09  ..    fi..  fi..
31150 66 69 0a 0a 09 69 66 20 74 65 73 74 20 2d 6e 20  fi...if test -n 
31160 22 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73  "$export_symbols
31170 22 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24 69  " && test -n "$i
31180 6e 63 6c 75 64 65 5f 65 78 70 73 79 6d 73 22 3b  nclude_expsyms";
31190 20 74 68 65 6e 0a 09 20 20 74 6d 70 5f 65 78 70   then..  tmp_exp
311a0 6f 72 74 5f 73 79 6d 62 6f 6c 73 3d 22 24 65 78  ort_symbols="$ex
311b0 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 0a 09 20  port_symbols".. 
311c0 20 74 65 73 74 20 2d 6e 20 22 24 6f 72 69 67 5f   test -n "$orig_
311d0 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 20  export_symbols" 
311e0 26 26 20 74 6d 70 5f 65 78 70 6f 72 74 5f 73 79  && tmp_export_sy
311f0 6d 62 6f 6c 73 3d 22 24 6f 72 69 67 5f 65 78 70  mbols="$orig_exp
31200 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 0a 09 20 20  ort_symbols"..  
31210 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20  $opt_dry_run || 
31220 65 76 61 6c 20 27 24 45 43 48 4f 20 22 58 24 69  eval '$ECHO "X$i
31230 6e 63 6c 75 64 65 5f 65 78 70 73 79 6d 73 22 20  nclude_expsyms" 
31240 7c 20 24 58 73 65 64 20 7c 20 24 53 50 32 4e 4c  | $Xsed | $SP2NL
31250 20 3e 3e 20 22 24 74 6d 70 5f 65 78 70 6f 72 74   >> "$tmp_export
31260 5f 73 79 6d 62 6f 6c 73 22 27 0a 09 66 69 0a 0a  _symbols"'..fi..
31270 09 69 66 20 74 65 73 74 20 22 58 24 73 6b 69 70  .if test "X$skip
31280 70 65 64 5f 65 78 70 6f 72 74 22 20 21 3d 20 22  ped_export" != "
31290 58 3a 22 20 26 26 20 74 65 73 74 20 2d 6e 20 22  X:" && test -n "
312a0 24 6f 72 69 67 5f 65 78 70 6f 72 74 5f 73 79 6d  $orig_export_sym
312b0 62 6f 6c 73 22 3b 20 74 68 65 6e 0a 09 20 20 23  bols"; then..  #
312c0 20 54 68 65 20 67 69 76 65 6e 20 65 78 70 6f 72   The given expor
312d0 74 73 5f 73 79 6d 62 6f 6c 73 20 66 69 6c 65 20  ts_symbols file 
312e0 68 61 73 20 74 6f 20 62 65 20 66 69 6c 74 65 72  has to be filter
312f0 65 64 2c 20 73 6f 20 66 69 6c 74 65 72 20 69 74  ed, so filter it
31300 2e 0a 09 20 20 66 75 6e 63 5f 76 65 72 62 6f 73  ...  func_verbos
31310 65 20 22 66 69 6c 74 65 72 20 73 79 6d 62 6f 6c  e "filter symbol
31320 20 6c 69 73 74 20 66 6f 72 20 5c 60 24 6c 69 62   list for \`$lib
31330 6e 61 6d 65 2e 6c 61 27 20 74 6f 20 74 61 67 20  name.la' to tag 
31340 44 41 54 41 20 65 78 70 6f 72 74 73 22 0a 09 20  DATA exports".. 
31350 20 23 20 46 49 58 4d 45 3a 20 24 6f 75 74 70 75   # FIXME: $outpu
31360 74 5f 6f 62 6a 64 69 72 2f 24 6c 69 62 6e 61 6d  t_objdir/$libnam
31370 65 2e 66 69 6c 74 65 72 20 70 6f 74 65 6e 74 69  e.filter potenti
31380 61 6c 6c 79 20 63 6f 6e 74 61 69 6e 73 20 6c 6f  ally contains lo
31390 74 73 20 6f 66 0a 09 20 20 23 20 27 73 27 20 63  ts of..  # 's' c
313a0 6f 6d 6d 61 6e 64 73 20 77 68 69 63 68 20 6e 6f  ommands which no
313b0 74 20 61 6c 6c 20 73 65 64 73 20 63 61 6e 20 68  t all seds can h
313c0 61 6e 64 6c 65 2e 20 47 4e 55 20 73 65 64 20 73  andle. GNU sed s
313d0 68 6f 75 6c 64 20 62 65 20 66 69 6e 65 0a 09 20  hould be fine.. 
313e0 20 23 20 74 68 6f 75 67 68 2e 20 41 6c 73 6f 2c   # though. Also,
313f0 20 74 68 65 20 66 69 6c 74 65 72 20 73 63 61 6c   the filter scal
31400 65 73 20 73 75 70 65 72 6c 69 6e 65 61 72 6c 79  es superlinearly
31410 20 77 69 74 68 20 74 68 65 20 6e 75 6d 62 65 72   with the number
31420 20 6f 66 0a 09 20 20 23 20 67 6c 6f 62 61 6c 20   of..  # global 
31430 76 61 72 69 61 62 6c 65 73 2e 20 6a 6f 69 6e 28  variables. join(
31440 31 29 20 77 6f 75 6c 64 20 62 65 20 6e 69 63 65  1) would be nice
31450 20 68 65 72 65 2c 20 62 75 74 20 75 6e 66 6f 72   here, but unfor
31460 74 75 6e 61 74 65 6c 79 0a 09 20 20 23 20 69 73  tunately..  # is
31470 6e 27 74 20 61 20 62 6c 65 73 73 65 64 20 74 6f  n't a blessed to
31480 6f 6c 2e 0a 09 20 20 24 6f 70 74 5f 64 72 79 5f  ol...  $opt_dry_
31490 72 75 6e 20 7c 7c 20 24 53 45 44 20 2d 65 20 27  run || $SED -e '
314a0 2f 5b 20 2c 5d 44 41 54 41 2f 21 64 3b 73 2c 5c  /[ ,]DATA/!d;s,\
314b0 28 2e 2a 5c 29 5c 28 5b 20 5c 2c 5d 2e 2a 5c 29  (.*\)\([ \,].*\)
314c0 2c 73 7c 5e 5c 31 24 7c 5c 31 5c 32 7c 2c 27 20  ,s|^\1$|\1\2|,' 
314d0 3c 20 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c  < $export_symbol
314e0 73 20 3e 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64  s > $output_objd
314f0 69 72 2f 24 6c 69 62 6e 61 6d 65 2e 66 69 6c 74  ir/$libname.filt
31500 65 72 0a 09 20 20 64 65 6c 66 69 6c 65 73 3d 22  er..  delfiles="
31510 24 64 65 6c 66 69 6c 65 73 20 24 65 78 70 6f 72  $delfiles $expor
31520 74 5f 73 79 6d 62 6f 6c 73 20 24 6f 75 74 70 75  t_symbols $outpu
31530 74 5f 6f 62 6a 64 69 72 2f 24 6c 69 62 6e 61 6d  t_objdir/$libnam
31540 65 2e 66 69 6c 74 65 72 22 0a 09 20 20 65 78 70  e.filter"..  exp
31550 6f 72 74 5f 73 79 6d 62 6f 6c 73 3d 24 6f 75 74  ort_symbols=$out
31560 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6c 69 62 6e  put_objdir/$libn
31570 61 6d 65 2e 64 65 66 0a 09 20 20 24 6f 70 74 5f  ame.def..  $opt_
31580 64 72 79 5f 72 75 6e 20 7c 7c 20 24 53 45 44 20  dry_run || $SED 
31590 2d 66 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69  -f $output_objdi
315a0 72 2f 24 6c 69 62 6e 61 6d 65 2e 66 69 6c 74 65  r/$libname.filte
315b0 72 20 3c 20 24 6f 72 69 67 5f 65 78 70 6f 72 74  r < $orig_export
315c0 5f 73 79 6d 62 6f 6c 73 20 3e 20 24 65 78 70 6f  _symbols > $expo
315d0 72 74 5f 73 79 6d 62 6f 6c 73 0a 09 66 69 0a 0a  rt_symbols..fi..
315e0 09 74 6d 70 5f 64 65 70 6c 69 62 73 3d 0a 09 66  .tmp_deplibs=..f
315f0 6f 72 20 74 65 73 74 5f 64 65 70 6c 69 62 20 69  or test_deplib i
31600 6e 20 24 64 65 70 6c 69 62 73 3b 20 64 6f 0a 09  n $deplibs; do..
31610 20 20 63 61 73 65 20 22 20 24 63 6f 6e 76 65 6e    case " $conven
31620 69 65 6e 63 65 20 22 20 69 6e 0a 09 20 20 2a 22  ience " in..  *"
31630 20 24 74 65 73 74 5f 64 65 70 6c 69 62 20 22 2a   $test_deplib "*
31640 29 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20  ) ;;..  *)..    
31650 74 6d 70 5f 64 65 70 6c 69 62 73 3d 22 24 74 6d  tmp_deplibs="$tm
31660 70 5f 64 65 70 6c 69 62 73 20 24 74 65 73 74 5f  p_deplibs $test_
31670 64 65 70 6c 69 62 22 0a 09 20 20 20 20 3b 3b 0a  deplib"..    ;;.
31680 09 20 20 65 73 61 63 0a 09 64 6f 6e 65 0a 09 64  .  esac..done..d
31690 65 70 6c 69 62 73 3d 22 24 74 6d 70 5f 64 65 70  eplibs="$tmp_dep
316a0 6c 69 62 73 22 0a 0a 09 69 66 20 74 65 73 74 20  libs"...if test 
316b0 2d 6e 20 22 24 63 6f 6e 76 65 6e 69 65 6e 63 65  -n "$convenience
316c0 22 3b 20 74 68 65 6e 0a 09 20 20 69 66 20 74 65  "; then..  if te
316d0 73 74 20 2d 6e 20 22 24 77 68 6f 6c 65 5f 61 72  st -n "$whole_ar
316e0 63 68 69 76 65 5f 66 6c 61 67 5f 73 70 65 63 22  chive_flag_spec"
316f0 20 26 26 0a 09 20 20 20 20 74 65 73 74 20 22 24   &&..    test "$
31700 63 6f 6d 70 69 6c 65 72 5f 6e 65 65 64 73 5f 6f  compiler_needs_o
31710 62 6a 65 63 74 22 20 3d 20 79 65 73 20 26 26 0a  bject" = yes &&.
31720 09 20 20 20 20 74 65 73 74 20 2d 7a 20 22 24 6c  .    test -z "$l
31730 69 62 6f 62 6a 73 22 3b 20 74 68 65 6e 0a 09 20  ibobjs"; then.. 
31740 20 20 20 23 20 65 78 74 72 61 63 74 20 74 68 65     # extract the
31750 20 61 72 63 68 69 76 65 73 2c 20 73 6f 20 77 65   archives, so we
31760 20 68 61 76 65 20 6f 62 6a 65 63 74 73 20 74 6f   have objects to
31770 20 6c 69 73 74 2e 0a 09 20 20 20 20 23 20 54 4f   list...    # TO
31780 44 4f 3a 20 63 6f 75 6c 64 20 6f 70 74 69 6d 69  DO: could optimi
31790 7a 65 20 74 68 69 73 20 74 6f 20 6a 75 73 74 20  ze this to just 
317a0 65 78 74 72 61 63 74 20 6f 6e 65 20 61 72 63 68  extract one arch
317b0 69 76 65 2e 0a 09 20 20 20 20 77 68 6f 6c 65 5f  ive...    whole_
317c0 61 72 63 68 69 76 65 5f 66 6c 61 67 5f 73 70 65  archive_flag_spe
317d0 63 3d 0a 09 20 20 66 69 0a 09 20 20 69 66 20 74  c=..  fi..  if t
317e0 65 73 74 20 2d 6e 20 22 24 77 68 6f 6c 65 5f 61  est -n "$whole_a
317f0 72 63 68 69 76 65 5f 66 6c 61 67 5f 73 70 65 63  rchive_flag_spec
31800 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 73 61 76  "; then..    sav
31810 65 5f 6c 69 62 6f 62 6a 73 3d 24 6c 69 62 6f 62  e_libobjs=$libob
31820 6a 73 0a 09 20 20 20 20 65 76 61 6c 20 6c 69 62  js..    eval lib
31830 6f 62 6a 73 3d 5c 22 5c 24 6c 69 62 6f 62 6a 73  objs=\"\$libobjs
31840 20 24 77 68 6f 6c 65 5f 61 72 63 68 69 76 65 5f   $whole_archive_
31850 66 6c 61 67 5f 73 70 65 63 5c 22 0a 09 20 20 20  flag_spec\"..   
31860 20 74 65 73 74 20 22 58 24 6c 69 62 6f 62 6a 73   test "X$libobjs
31870 22 20 3d 20 22 58 20 22 20 26 26 20 6c 69 62 6f  " = "X " && libo
31880 62 6a 73 3d 0a 09 20 20 65 6c 73 65 0a 09 20 20  bjs=..  else..  
31890 20 20 67 65 6e 74 6f 70 3d 22 24 6f 75 74 70 75    gentop="$outpu
318a0 74 5f 6f 62 6a 64 69 72 2f 24 7b 6f 75 74 70 75  t_objdir/${outpu
318b0 74 6e 61 6d 65 7d 78 22 0a 09 20 20 20 20 67 65  tname}x"..    ge
318c0 6e 65 72 61 74 65 64 3d 22 24 67 65 6e 65 72 61  nerated="$genera
318d0 74 65 64 20 24 67 65 6e 74 6f 70 22 0a 0a 09 20  ted $gentop"... 
318e0 20 20 20 66 75 6e 63 5f 65 78 74 72 61 63 74 5f     func_extract_
318f0 61 72 63 68 69 76 65 73 20 24 67 65 6e 74 6f 70  archives $gentop
31900 20 24 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 09 20   $convenience.. 
31910 20 20 20 6c 69 62 6f 62 6a 73 3d 22 24 6c 69 62     libobjs="$lib
31920 6f 62 6a 73 20 24 66 75 6e 63 5f 65 78 74 72 61  objs $func_extra
31930 63 74 5f 61 72 63 68 69 76 65 73 5f 72 65 73 75  ct_archives_resu
31940 6c 74 22 0a 09 20 20 20 20 74 65 73 74 20 22 58  lt"..    test "X
31950 24 6c 69 62 6f 62 6a 73 22 20 3d 20 22 58 20 22  $libobjs" = "X "
31960 20 26 26 20 6c 69 62 6f 62 6a 73 3d 0a 09 20 20   && libobjs=..  
31970 66 69 0a 09 66 69 0a 0a 09 69 66 20 74 65 73 74  fi..fi...if test
31980 20 22 24 74 68 72 65 61 64 5f 73 61 66 65 22 20   "$thread_safe" 
31990 3d 20 79 65 73 20 26 26 20 74 65 73 74 20 2d 6e  = yes && test -n
319a0 20 22 24 74 68 72 65 61 64 5f 73 61 66 65 5f 66   "$thread_safe_f
319b0 6c 61 67 5f 73 70 65 63 22 3b 20 74 68 65 6e 0a  lag_spec"; then.
319c0 09 20 20 65 76 61 6c 20 66 6c 61 67 3d 5c 22 24  .  eval flag=\"$
319d0 74 68 72 65 61 64 5f 73 61 66 65 5f 66 6c 61 67  thread_safe_flag
319e0 5f 73 70 65 63 5c 22 0a 09 20 20 6c 69 6e 6b 65  _spec\"..  linke
319f0 72 5f 66 6c 61 67 73 3d 22 24 6c 69 6e 6b 65 72  r_flags="$linker
31a00 5f 66 6c 61 67 73 20 24 66 6c 61 67 22 0a 09 66  _flags $flag"..f
31a10 69 0a 0a 09 23 20 4d 61 6b 65 20 61 20 62 61 63  i...# Make a bac
31a20 6b 75 70 20 6f 66 20 74 68 65 20 75 6e 69 6e 73  kup of the unins
31a30 74 61 6c 6c 65 64 20 6c 69 62 72 61 72 79 20 77  talled library w
31a40 68 65 6e 20 72 65 6c 69 6e 6b 69 6e 67 0a 09 69  hen relinking..i
31a50 66 20 74 65 73 74 20 22 24 6d 6f 64 65 22 20 3d  f test "$mode" =
31a60 20 72 65 6c 69 6e 6b 3b 20 74 68 65 6e 0a 09 20   relink; then.. 
31a70 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c   $opt_dry_run ||
31a80 20 65 76 61 6c 20 27 28 63 64 20 24 6f 75 74 70   eval '(cd $outp
31a90 75 74 5f 6f 62 6a 64 69 72 20 26 26 20 24 52 4d  ut_objdir && $RM
31aa0 20 24 7b 72 65 61 6c 6e 61 6d 65 7d 55 20 26 26   ${realname}U &&
31ab0 20 24 4d 56 20 24 72 65 61 6c 6e 61 6d 65 20 24   $MV $realname $
31ac0 7b 72 65 61 6c 6e 61 6d 65 7d 55 29 27 20 7c 7c  {realname}U)' ||
31ad0 20 65 78 69 74 20 24 3f 0a 09 66 69 0a 0a 09 23   exit $?..fi...#
31ae0 20 44 6f 20 65 61 63 68 20 6f 66 20 74 68 65 20   Do each of the 
31af0 61 72 63 68 69 76 65 20 63 6f 6d 6d 61 6e 64 73  archive commands
31b00 2e 0a 09 69 66 20 74 65 73 74 20 22 24 6d 6f 64  ...if test "$mod
31b10 75 6c 65 22 20 3d 20 79 65 73 20 26 26 20 74 65  ule" = yes && te
31b20 73 74 20 2d 6e 20 22 24 6d 6f 64 75 6c 65 5f 63  st -n "$module_c
31b30 6d 64 73 22 20 3b 20 74 68 65 6e 0a 09 20 20 69  mds" ; then..  i
31b40 66 20 74 65 73 74 20 2d 6e 20 22 24 65 78 70 6f  f test -n "$expo
31b50 72 74 5f 73 79 6d 62 6f 6c 73 22 20 26 26 20 74  rt_symbols" && t
31b60 65 73 74 20 2d 6e 20 22 24 6d 6f 64 75 6c 65 5f  est -n "$module_
31b70 65 78 70 73 79 6d 5f 63 6d 64 73 22 3b 20 74 68  expsym_cmds"; th
31b80 65 6e 0a 09 20 20 20 20 65 76 61 6c 20 74 65 73  en..    eval tes
31b90 74 5f 63 6d 64 73 3d 5c 22 24 6d 6f 64 75 6c 65  t_cmds=\"$module
31ba0 5f 65 78 70 73 79 6d 5f 63 6d 64 73 5c 22 0a 09  _expsym_cmds\"..
31bb0 20 20 20 20 63 6d 64 73 3d 24 6d 6f 64 75 6c 65      cmds=$module
31bc0 5f 65 78 70 73 79 6d 5f 63 6d 64 73 0a 09 20 20  _expsym_cmds..  
31bd0 65 6c 73 65 0a 09 20 20 20 20 65 76 61 6c 20 74  else..    eval t
31be0 65 73 74 5f 63 6d 64 73 3d 5c 22 24 6d 6f 64 75  est_cmds=\"$modu
31bf0 6c 65 5f 63 6d 64 73 5c 22 0a 09 20 20 20 20 63  le_cmds\"..    c
31c00 6d 64 73 3d 24 6d 6f 64 75 6c 65 5f 63 6d 64 73  mds=$module_cmds
31c10 0a 09 20 20 66 69 0a 09 65 6c 73 65 0a 09 20 20  ..  fi..else..  
31c20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 65 78 70  if test -n "$exp
31c30 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 20 26 26 20  ort_symbols" && 
31c40 74 65 73 74 20 2d 6e 20 22 24 61 72 63 68 69 76  test -n "$archiv
31c50 65 5f 65 78 70 73 79 6d 5f 63 6d 64 73 22 3b 20  e_expsym_cmds"; 
31c60 74 68 65 6e 0a 09 20 20 20 20 65 76 61 6c 20 74  then..    eval t
31c70 65 73 74 5f 63 6d 64 73 3d 5c 22 24 61 72 63 68  est_cmds=\"$arch
31c80 69 76 65 5f 65 78 70 73 79 6d 5f 63 6d 64 73 5c  ive_expsym_cmds\
31c90 22 0a 09 20 20 20 20 63 6d 64 73 3d 24 61 72 63  "..    cmds=$arc
31ca0 68 69 76 65 5f 65 78 70 73 79 6d 5f 63 6d 64 73  hive_expsym_cmds
31cb0 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20 65 76  ..  else..    ev
31cc0 61 6c 20 74 65 73 74 5f 63 6d 64 73 3d 5c 22 24  al test_cmds=\"$
31cd0 61 72 63 68 69 76 65 5f 63 6d 64 73 5c 22 0a 09  archive_cmds\"..
31ce0 20 20 20 20 63 6d 64 73 3d 24 61 72 63 68 69 76      cmds=$archiv
31cf0 65 5f 63 6d 64 73 0a 09 20 20 66 69 0a 09 66 69  e_cmds..  fi..fi
31d00 0a 0a 09 69 66 20 74 65 73 74 20 22 58 24 73 6b  ...if test "X$sk
31d10 69 70 70 65 64 5f 65 78 70 6f 72 74 22 20 21 3d  ipped_export" !=
31d20 20 22 58 3a 22 20 26 26 0a 09 20 20 20 66 75 6e   "X:" &&..   fun
31d30 63 5f 6c 65 6e 20 22 20 24 74 65 73 74 5f 63 6d  c_len " $test_cm
31d40 64 73 22 20 26 26 0a 09 20 20 20 6c 65 6e 3d 24  ds" &&..   len=$
31d50 66 75 6e 63 5f 6c 65 6e 5f 72 65 73 75 6c 74 20  func_len_result 
31d60 26 26 0a 09 20 20 20 74 65 73 74 20 22 24 6c 65  &&..   test "$le
31d70 6e 22 20 2d 6c 74 20 22 24 6d 61 78 5f 63 6d 64  n" -lt "$max_cmd
31d80 5f 6c 65 6e 22 20 7c 7c 20 74 65 73 74 20 22 24  _len" || test "$
31d90 6d 61 78 5f 63 6d 64 5f 6c 65 6e 22 20 2d 6c 65  max_cmd_len" -le
31da0 20 2d 31 3b 20 74 68 65 6e 0a 09 20 20 3a 0a 09   -1; then..  :..
31db0 65 6c 73 65 0a 09 20 20 23 20 54 68 65 20 63 6f  else..  # The co
31dc0 6d 6d 61 6e 64 20 6c 69 6e 65 20 69 73 20 74 6f  mmand line is to
31dd0 6f 20 6c 6f 6e 67 20 74 6f 20 6c 69 6e 6b 20 69  o long to link i
31de0 6e 20 6f 6e 65 20 73 74 65 70 2c 20 6c 69 6e 6b  n one step, link
31df0 20 70 69 65 63 65 77 69 73 65 0a 09 20 20 23 20   piecewise..  # 
31e00 6f 72 2c 20 69 66 20 75 73 69 6e 67 20 47 4e 55  or, if using GNU
31e10 20 6c 64 20 61 6e 64 20 73 6b 69 70 70 65 64 5f   ld and skipped_
31e20 65 78 70 6f 72 74 20 69 73 20 6e 6f 74 20 3a 2c  export is not :,
31e30 20 75 73 65 20 61 20 6c 69 6e 6b 65 72 0a 09 20   use a linker.. 
31e40 20 23 20 73 63 72 69 70 74 2e 0a 0a 09 20 20 23   # script....  #
31e50 20 53 61 76 65 20 74 68 65 20 76 61 6c 75 65 20   Save the value 
31e60 6f 66 20 24 6f 75 74 70 75 74 20 61 6e 64 20 24  of $output and $
31e70 6c 69 62 6f 62 6a 73 20 62 65 63 61 75 73 65 20  libobjs because 
31e80 77 65 20 77 61 6e 74 20 74 6f 0a 09 20 20 23 20  we want to..  # 
31e90 75 73 65 20 74 68 65 6d 20 6c 61 74 65 72 2e 20  use them later. 
31ea0 20 49 66 20 77 65 20 68 61 76 65 20 77 68 6f 6c   If we have whol
31eb0 65 5f 61 72 63 68 69 76 65 5f 66 6c 61 67 5f 73  e_archive_flag_s
31ec0 70 65 63 2c 20 77 65 0a 09 20 20 23 20 77 61 6e  pec, we..  # wan
31ed0 74 20 74 6f 20 75 73 65 20 73 61 76 65 5f 6c 69  t to use save_li
31ee0 62 6f 62 6a 73 20 61 73 20 69 74 20 77 61 73 20  bobjs as it was 
31ef0 62 65 66 6f 72 65 0a 09 20 20 23 20 77 68 6f 6c  before..  # whol
31f00 65 5f 61 72 63 68 69 76 65 5f 66 6c 61 67 5f 73  e_archive_flag_s
31f10 70 65 63 20 77 61 73 20 65 78 70 61 6e 64 65 64  pec was expanded
31f20 2c 20 62 65 63 61 75 73 65 20 77 65 20 63 61 6e  , because we can
31f30 27 74 0a 09 20 20 23 20 61 73 73 75 6d 65 20 74  't..  # assume t
31f40 68 65 20 6c 69 6e 6b 65 72 20 75 6e 64 65 72 73  he linker unders
31f50 74 61 6e 64 73 20 77 68 6f 6c 65 5f 61 72 63 68  tands whole_arch
31f60 69 76 65 5f 66 6c 61 67 5f 73 70 65 63 2e 0a 09  ive_flag_spec...
31f70 20 20 23 20 54 68 69 73 20 6d 61 79 20 68 61 76    # This may hav
31f80 65 20 74 6f 20 62 65 20 72 65 76 69 73 69 74 65  e to be revisite
31f90 64 2c 20 69 6e 20 63 61 73 65 20 74 6f 6f 20 6d  d, in case too m
31fa0 61 6e 79 0a 09 20 20 23 20 63 6f 6e 76 65 6e 69  any..  # conveni
31fb0 65 6e 63 65 20 6c 69 62 72 61 72 69 65 73 20 67  ence libraries g
31fc0 65 74 20 6c 69 6e 6b 65 64 20 69 6e 20 61 6e 64  et linked in and
31fd0 20 65 6e 64 20 75 70 20 65 78 63 65 65 64 69 6e   end up exceedin
31fe0 67 0a 09 20 20 23 20 74 68 65 20 73 70 65 63 2e  g..  # the spec.
31ff0 0a 09 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22  ..  if test -z "
32000 24 63 6f 6e 76 65 6e 69 65 6e 63 65 22 20 7c 7c  $convenience" ||
32010 20 74 65 73 74 20 2d 7a 20 22 24 77 68 6f 6c 65   test -z "$whole
32020 5f 61 72 63 68 69 76 65 5f 66 6c 61 67 5f 73 70  _archive_flag_sp
32030 65 63 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 73  ec"; then..    s
32040 61 76 65 5f 6c 69 62 6f 62 6a 73 3d 24 6c 69 62  ave_libobjs=$lib
32050 6f 62 6a 73 0a 09 20 20 66 69 0a 09 20 20 73 61  objs..  fi..  sa
32060 76 65 5f 6f 75 74 70 75 74 3d 24 6f 75 74 70 75  ve_output=$outpu
32070 74 0a 09 20 20 6f 75 74 70 75 74 5f 6c 61 3d 60  t..  output_la=`
32080 24 45 43 48 4f 20 22 58 24 6f 75 74 70 75 74 22  $ECHO "X$output"
32090 20 7c 20 24 58 73 65 64 20 2d 65 20 22 24 62 61   | $Xsed -e "$ba
320a0 73 65 6e 61 6d 65 22 60 0a 0a 09 20 20 23 20 43  sename"`...  # C
320b0 6c 65 61 72 20 74 68 65 20 72 65 6c 6f 61 64 61  lear the reloada
320c0 62 6c 65 20 6f 62 6a 65 63 74 20 63 72 65 61 74  ble object creat
320d0 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 71 75 65 75  ion command queu
320e0 65 20 61 6e 64 0a 09 20 20 23 20 69 6e 69 74 69  e and..  # initi
320f0 61 6c 69 7a 65 20 6b 20 74 6f 20 6f 6e 65 2e 0a  alize k to one..
32100 09 20 20 74 65 73 74 5f 63 6d 64 73 3d 0a 09 20  .  test_cmds=.. 
32110 20 63 6f 6e 63 61 74 5f 63 6d 64 73 3d 0a 09 20   concat_cmds=.. 
32120 20 6f 62 6a 6c 69 73 74 3d 0a 09 20 20 6c 61 73   objlist=..  las
32130 74 5f 72 6f 62 6a 3d 0a 09 20 20 6b 3d 31 0a 0a  t_robj=..  k=1..
32140 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24  .  if test -n "$
32150 73 61 76 65 5f 6c 69 62 6f 62 6a 73 22 20 26 26  save_libobjs" &&
32160 20 74 65 73 74 20 22 58 24 73 6b 69 70 70 65 64   test "X$skipped
32170 5f 65 78 70 6f 72 74 22 20 21 3d 20 22 58 3a 22  _export" != "X:"
32180 20 26 26 20 74 65 73 74 20 22 24 77 69 74 68 5f   && test "$with_
32190 67 6e 75 5f 6c 64 22 20 3d 20 79 65 73 3b 20 74  gnu_ld" = yes; t
321a0 68 65 6e 0a 09 20 20 20 20 6f 75 74 70 75 74 3d  hen..    output=
321b0 24 7b 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 7d  ${output_objdir}
321c0 2f 24 7b 6f 75 74 70 75 74 5f 6c 61 7d 2e 6c 6e  /${output_la}.ln
321d0 6b 73 63 72 69 70 74 0a 09 20 20 20 20 66 75 6e  kscript..    fun
321e0 63 5f 76 65 72 62 6f 73 65 20 22 63 72 65 61 74  c_verbose "creat
321f0 69 6e 67 20 47 4e 55 20 6c 64 20 73 63 72 69 70  ing GNU ld scrip
32200 74 3a 20 24 6f 75 74 70 75 74 22 0a 09 20 20 20  t: $output"..   
32210 20 24 45 43 48 4f 20 27 49 4e 50 55 54 20 28 27   $ECHO 'INPUT ('
32220 20 3e 20 24 6f 75 74 70 75 74 0a 09 20 20 20 20   > $output..    
32230 66 6f 72 20 6f 62 6a 20 69 6e 20 24 73 61 76 65  for obj in $save
32240 5f 6c 69 62 6f 62 6a 73 0a 09 20 20 20 20 64 6f  _libobjs..    do
32250 0a 09 20 20 20 20 20 20 24 45 43 48 4f 20 22 24  ..      $ECHO "$
32260 6f 62 6a 22 20 3e 3e 20 24 6f 75 74 70 75 74 0a  obj" >> $output.
32270 09 20 20 20 20 64 6f 6e 65 0a 09 20 20 20 20 24  .    done..    $
32280 45 43 48 4f 20 27 29 27 20 3e 3e 20 24 6f 75 74  ECHO ')' >> $out
32290 70 75 74 0a 09 20 20 20 20 64 65 6c 66 69 6c 65  put..    delfile
322a0 73 3d 22 24 64 65 6c 66 69 6c 65 73 20 24 6f 75  s="$delfiles $ou
322b0 74 70 75 74 22 0a 09 20 20 65 6c 69 66 20 74 65  tput"..  elif te
322c0 73 74 20 2d 6e 20 22 24 73 61 76 65 5f 6c 69 62  st -n "$save_lib
322d0 6f 62 6a 73 22 20 26 26 20 74 65 73 74 20 22 58  objs" && test "X
322e0 24 73 6b 69 70 70 65 64 5f 65 78 70 6f 72 74 22  $skipped_export"
322f0 20 21 3d 20 22 58 3a 22 20 26 26 20 74 65 73 74   != "X:" && test
32300 20 22 58 24 66 69 6c 65 5f 6c 69 73 74 5f 73 70   "X$file_list_sp
32310 65 63 22 20 21 3d 20 58 3b 20 74 68 65 6e 0a 09  ec" != X; then..
32320 20 20 20 20 6f 75 74 70 75 74 3d 24 7b 6f 75 74      output=${out
32330 70 75 74 5f 6f 62 6a 64 69 72 7d 2f 24 7b 6f 75  put_objdir}/${ou
32340 74 70 75 74 5f 6c 61 7d 2e 6c 6e 6b 0a 09 20 20  tput_la}.lnk..  
32350 20 20 66 75 6e 63 5f 76 65 72 62 6f 73 65 20 22    func_verbose "
32360 63 72 65 61 74 69 6e 67 20 6c 69 6e 6b 65 72 20  creating linker 
32370 69 6e 70 75 74 20 66 69 6c 65 20 6c 69 73 74 3a  input file list:
32380 20 24 6f 75 74 70 75 74 22 0a 09 20 20 20 20 3a   $output"..    :
32390 20 3e 20 24 6f 75 74 70 75 74 0a 09 20 20 20 20   > $output..    
323a0 73 65 74 20 78 20 24 73 61 76 65 5f 6c 69 62 6f  set x $save_libo
323b0 62 6a 73 0a 09 20 20 20 20 73 68 69 66 74 0a 09  bjs..    shift..
323c0 20 20 20 20 66 69 72 73 74 6f 62 6a 3d 0a 09 20      firstobj=.. 
323d0 20 20 20 69 66 20 74 65 73 74 20 22 24 63 6f 6d     if test "$com
323e0 70 69 6c 65 72 5f 6e 65 65 64 73 5f 6f 62 6a 65  piler_needs_obje
323f0 63 74 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a  ct" = yes; then.
32400 09 20 20 20 20 20 20 66 69 72 73 74 6f 62 6a 3d  .      firstobj=
32410 22 24 31 20 22 0a 09 20 20 20 20 20 20 73 68 69  "$1 "..      shi
32420 66 74 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20  ft..    fi..    
32430 66 6f 72 20 6f 62 6a 0a 09 20 20 20 20 64 6f 0a  for obj..    do.
32440 09 20 20 20 20 20 20 24 45 43 48 4f 20 22 24 6f  .      $ECHO "$o
32450 62 6a 22 20 3e 3e 20 24 6f 75 74 70 75 74 0a 09  bj" >> $output..
32460 20 20 20 20 64 6f 6e 65 0a 09 20 20 20 20 64 65      done..    de
32470 6c 66 69 6c 65 73 3d 22 24 64 65 6c 66 69 6c 65  lfiles="$delfile
32480 73 20 24 6f 75 74 70 75 74 22 0a 09 20 20 20 20  s $output"..    
32490 6f 75 74 70 75 74 3d 24 66 69 72 73 74 6f 62 6a  output=$firstobj
324a0 5c 22 24 66 69 6c 65 5f 6c 69 73 74 5f 73 70 65  \"$file_list_spe
324b0 63 24 6f 75 74 70 75 74 5c 22 0a 09 20 20 65 6c  c$output\"..  el
324c0 73 65 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  se..    if test 
324d0 2d 6e 20 22 24 73 61 76 65 5f 6c 69 62 6f 62 6a  -n "$save_libobj
324e0 73 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  s"; then..      
324f0 66 75 6e 63 5f 76 65 72 62 6f 73 65 20 22 63 72  func_verbose "cr
32500 65 61 74 69 6e 67 20 72 65 6c 6f 61 64 61 62 6c  eating reloadabl
32510 65 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 2e 2e  e object files..
32520 2e 22 0a 09 20 20 20 20 20 20 6f 75 74 70 75 74  ."..      output
32530 3d 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f  =$output_objdir/
32540 24 6f 75 74 70 75 74 5f 6c 61 2d 24 7b 6b 7d 2e  $output_la-${k}.
32550 24 6f 62 6a 65 78 74 0a 09 20 20 20 20 20 20 65  $objext..      e
32560 76 61 6c 20 74 65 73 74 5f 63 6d 64 73 3d 5c 22  val test_cmds=\"
32570 24 72 65 6c 6f 61 64 5f 63 6d 64 73 5c 22 0a 09  $reload_cmds\"..
32580 20 20 20 20 20 20 66 75 6e 63 5f 6c 65 6e 20 22        func_len "
32590 20 24 74 65 73 74 5f 63 6d 64 73 22 0a 09 20 20   $test_cmds"..  
325a0 20 20 20 20 6c 65 6e 30 3d 24 66 75 6e 63 5f 6c      len0=$func_l
325b0 65 6e 5f 72 65 73 75 6c 74 0a 09 20 20 20 20 20  en_result..     
325c0 20 6c 65 6e 3d 24 6c 65 6e 30 0a 0a 09 20 20 20   len=$len0...   
325d0 20 20 20 23 20 4c 6f 6f 70 20 6f 76 65 72 20 74     # Loop over t
325e0 68 65 20 6c 69 73 74 20 6f 66 20 6f 62 6a 65 63  he list of objec
325f0 74 73 20 74 6f 20 62 65 20 6c 69 6e 6b 65 64 2e  ts to be linked.
32600 0a 09 20 20 20 20 20 20 66 6f 72 20 6f 62 6a 20  ..      for obj 
32610 69 6e 20 24 73 61 76 65 5f 6c 69 62 6f 62 6a 73  in $save_libobjs
32620 0a 09 20 20 20 20 20 20 64 6f 0a 09 09 66 75 6e  ..      do...fun
32630 63 5f 6c 65 6e 20 22 20 24 6f 62 6a 22 0a 09 09  c_len " $obj"...
32640 66 75 6e 63 5f 61 72 69 74 68 20 24 6c 65 6e 20  func_arith $len 
32650 2b 20 24 66 75 6e 63 5f 6c 65 6e 5f 72 65 73 75  + $func_len_resu
32660 6c 74 0a 09 09 6c 65 6e 3d 24 66 75 6e 63 5f 61  lt...len=$func_a
32670 72 69 74 68 5f 72 65 73 75 6c 74 0a 09 09 69 66  rith_result...if
32680 20 74 65 73 74 20 22 58 24 6f 62 6a 6c 69 73 74   test "X$objlist
32690 22 20 3d 20 58 20 7c 7c 0a 09 09 20 20 20 74 65  " = X ||...   te
326a0 73 74 20 22 24 6c 65 6e 22 20 2d 6c 74 20 22 24  st "$len" -lt "$
326b0 6d 61 78 5f 63 6d 64 5f 6c 65 6e 22 3b 20 74 68  max_cmd_len"; th
326c0 65 6e 0a 09 09 20 20 66 75 6e 63 5f 61 70 70 65  en...  func_appe
326d0 6e 64 20 6f 62 6a 6c 69 73 74 20 22 20 24 6f 62  nd objlist " $ob
326e0 6a 22 0a 09 09 65 6c 73 65 0a 09 09 20 20 23 20  j"...else...  # 
326f0 54 68 65 20 63 6f 6d 6d 61 6e 64 20 24 74 65 73  The command $tes
32700 74 5f 63 6d 64 73 20 69 73 20 61 6c 6d 6f 73 74  t_cmds is almost
32710 20 74 6f 6f 20 6c 6f 6e 67 2c 20 61 64 64 20 61   too long, add a
32720 0a 09 09 20 20 23 20 63 6f 6d 6d 61 6e 64 20 74  ...  # command t
32730 6f 20 74 68 65 20 71 75 65 75 65 2e 0a 09 09 20  o the queue.... 
32740 20 69 66 20 74 65 73 74 20 22 24 6b 22 20 2d 65   if test "$k" -e
32750 71 20 31 20 3b 20 74 68 65 6e 0a 09 09 20 20 20  q 1 ; then...   
32760 20 23 20 54 68 65 20 66 69 72 73 74 20 66 69 6c   # The first fil
32770 65 20 64 6f 65 73 6e 27 74 20 68 61 76 65 20 61  e doesn't have a
32780 20 70 72 65 76 69 6f 75 73 20 63 6f 6d 6d 61 6e   previous comman
32790 64 20 74 6f 20 61 64 64 2e 0a 09 09 20 20 20 20  d to add....    
327a0 65 76 61 6c 20 63 6f 6e 63 61 74 5f 63 6d 64 73  eval concat_cmds
327b0 3d 5c 22 24 72 65 6c 6f 61 64 5f 63 6d 64 73 20  =\"$reload_cmds 
327c0 24 6f 62 6a 6c 69 73 74 20 24 6c 61 73 74 5f 72  $objlist $last_r
327d0 6f 62 6a 5c 22 0a 09 09 20 20 65 6c 73 65 0a 09  obj\"...  else..
327e0 09 20 20 20 20 23 20 41 6c 6c 20 73 75 62 73 65  .    # All subse
327f0 71 75 65 6e 74 20 72 65 6c 6f 61 64 61 62 6c 65  quent reloadable
32800 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 77 69   object files wi
32810 6c 6c 20 6c 69 6e 6b 20 69 6e 0a 09 09 20 20 20  ll link in...   
32820 20 23 20 74 68 65 20 6c 61 73 74 20 6f 6e 65 20   # the last one 
32830 63 72 65 61 74 65 64 2e 0a 09 09 20 20 20 20 65  created....    e
32840 76 61 6c 20 63 6f 6e 63 61 74 5f 63 6d 64 73 3d  val concat_cmds=
32850 5c 22 5c 24 63 6f 6e 63 61 74 5f 63 6d 64 73 7e  \"\$concat_cmds~
32860 24 72 65 6c 6f 61 64 5f 63 6d 64 73 20 24 6f 62  $reload_cmds $ob
32870 6a 6c 69 73 74 20 24 6c 61 73 74 5f 72 6f 62 6a  jlist $last_robj
32880 7e 5c 24 52 4d 20 24 6c 61 73 74 5f 72 6f 62 6a  ~\$RM $last_robj
32890 5c 22 0a 09 09 20 20 66 69 0a 09 09 20 20 6c 61  \"...  fi...  la
328a0 73 74 5f 72 6f 62 6a 3d 24 6f 75 74 70 75 74 5f  st_robj=$output_
328b0 6f 62 6a 64 69 72 2f 24 6f 75 74 70 75 74 5f 6c  objdir/$output_l
328c0 61 2d 24 7b 6b 7d 2e 24 6f 62 6a 65 78 74 0a 09  a-${k}.$objext..
328d0 09 20 20 66 75 6e 63 5f 61 72 69 74 68 20 24 6b  .  func_arith $k
328e0 20 2b 20 31 0a 09 09 20 20 6b 3d 24 66 75 6e 63   + 1...  k=$func
328f0 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a 09 09  _arith_result...
32900 20 20 6f 75 74 70 75 74 3d 24 6f 75 74 70 75 74    output=$output
32910 5f 6f 62 6a 64 69 72 2f 24 6f 75 74 70 75 74 5f  _objdir/$output_
32920 6c 61 2d 24 7b 6b 7d 2e 24 6f 62 6a 65 78 74 0a  la-${k}.$objext.
32930 09 09 20 20 6f 62 6a 6c 69 73 74 3d 24 6f 62 6a  ..  objlist=$obj
32940 0a 09 09 20 20 66 75 6e 63 5f 6c 65 6e 20 22 20  ...  func_len " 
32950 24 6c 61 73 74 5f 72 6f 62 6a 22 0a 09 09 20 20  $last_robj"...  
32960 66 75 6e 63 5f 61 72 69 74 68 20 24 6c 65 6e 30  func_arith $len0
32970 20 2b 20 24 66 75 6e 63 5f 6c 65 6e 5f 72 65 73   + $func_len_res
32980 75 6c 74 0a 09 09 20 20 6c 65 6e 3d 24 66 75 6e  ult...  len=$fun
32990 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a 09  c_arith_result..
329a0 09 66 69 0a 09 20 20 20 20 20 20 64 6f 6e 65 0a  .fi..      done.
329b0 09 20 20 20 20 20 20 23 20 48 61 6e 64 6c 65 20  .      # Handle 
329c0 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 6f 62  the remaining ob
329d0 6a 65 63 74 73 20 62 79 20 63 72 65 61 74 69 6e  jects by creatin
329e0 67 20 6f 6e 65 20 6c 61 73 74 0a 09 20 20 20 20  g one last..    
329f0 20 20 23 20 72 65 6c 6f 61 64 61 62 6c 65 20 6f    # reloadable o
32a00 62 6a 65 63 74 20 66 69 6c 65 2e 20 20 41 6c 6c  bject file.  All
32a10 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 6c 6f   subsequent relo
32a20 61 64 61 62 6c 65 20 6f 62 6a 65 63 74 0a 09 20  adable object.. 
32a30 20 20 20 20 20 23 20 66 69 6c 65 73 20 77 69 6c       # files wil
32a40 6c 20 6c 69 6e 6b 20 69 6e 20 74 68 65 20 6c 61  l link in the la
32a50 73 74 20 6f 6e 65 20 63 72 65 61 74 65 64 2e 0a  st one created..
32a60 09 20 20 20 20 20 20 74 65 73 74 20 2d 7a 20 22  .      test -z "
32a70 24 63 6f 6e 63 61 74 5f 63 6d 64 73 22 20 7c 7c  $concat_cmds" ||
32a80 20 63 6f 6e 63 61 74 5f 63 6d 64 73 3d 24 63 6f   concat_cmds=$co
32a90 6e 63 61 74 5f 63 6d 64 73 7e 0a 09 20 20 20 20  ncat_cmds~..    
32aa0 20 20 65 76 61 6c 20 63 6f 6e 63 61 74 5f 63 6d    eval concat_cm
32ab0 64 73 3d 5c 22 5c 24 7b 63 6f 6e 63 61 74 5f 63  ds=\"\${concat_c
32ac0 6d 64 73 7d 24 72 65 6c 6f 61 64 5f 63 6d 64 73  mds}$reload_cmds
32ad0 20 24 6f 62 6a 6c 69 73 74 20 24 6c 61 73 74 5f   $objlist $last_
32ae0 72 6f 62 6a 5c 22 0a 09 20 20 20 20 20 20 69 66  robj\"..      if
32af0 20 74 65 73 74 20 2d 6e 20 22 24 6c 61 73 74 5f   test -n "$last_
32b00 72 6f 62 6a 22 3b 20 74 68 65 6e 0a 09 20 20 20  robj"; then..   
32b10 20 20 20 20 20 65 76 61 6c 20 63 6f 6e 63 61 74       eval concat
32b20 5f 63 6d 64 73 3d 5c 22 5c 24 7b 63 6f 6e 63 61  _cmds=\"\${conca
32b30 74 5f 63 6d 64 73 7d 7e 5c 24 52 4d 20 24 6c 61  t_cmds}~\$RM $la
32b40 73 74 5f 72 6f 62 6a 5c 22 0a 09 20 20 20 20 20  st_robj\"..     
32b50 20 66 69 0a 09 20 20 20 20 20 20 64 65 6c 66 69   fi..      delfi
32b60 6c 65 73 3d 22 24 64 65 6c 66 69 6c 65 73 20 24  les="$delfiles $
32b70 6f 75 74 70 75 74 22 0a 0a 09 20 20 20 20 65 6c  output"...    el
32b80 73 65 0a 09 20 20 20 20 20 20 6f 75 74 70 75 74  se..      output
32b90 3d 0a 09 20 20 20 20 66 69 0a 0a 09 20 20 20 20  =..    fi...    
32ba0 69 66 20 24 7b 73 6b 69 70 70 65 64 5f 65 78 70  if ${skipped_exp
32bb0 6f 72 74 2d 66 61 6c 73 65 7d 3b 20 74 68 65 6e  ort-false}; then
32bc0 0a 09 20 20 20 20 20 20 66 75 6e 63 5f 76 65 72  ..      func_ver
32bd0 62 6f 73 65 20 22 67 65 6e 65 72 61 74 69 6e 67  bose "generating
32be0 20 73 79 6d 62 6f 6c 20 6c 69 73 74 20 66 6f 72   symbol list for
32bf0 20 5c 60 24 6c 69 62 6e 61 6d 65 2e 6c 61 27 22   \`$libname.la'"
32c00 0a 09 20 20 20 20 20 20 65 78 70 6f 72 74 5f 73  ..      export_s
32c10 79 6d 62 6f 6c 73 3d 22 24 6f 75 74 70 75 74 5f  ymbols="$output_
32c20 6f 62 6a 64 69 72 2f 24 6c 69 62 6e 61 6d 65 2e  objdir/$libname.
32c30 65 78 70 22 0a 09 20 20 20 20 20 20 24 6f 70 74  exp"..      $opt
32c40 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 24 52 4d 20  _dry_run || $RM 
32c50 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 0a  $export_symbols.
32c60 09 20 20 20 20 20 20 6c 69 62 6f 62 6a 73 3d 24  .      libobjs=$
32c70 6f 75 74 70 75 74 0a 09 20 20 20 20 20 20 23 20  output..      # 
32c80 41 70 70 65 6e 64 20 74 68 65 20 63 6f 6d 6d 61  Append the comma
32c90 6e 64 20 74 6f 20 63 72 65 61 74 65 20 74 68 65  nd to create the
32ca0 20 65 78 70 6f 72 74 20 66 69 6c 65 2e 0a 09 20   export file... 
32cb0 20 20 20 20 20 74 65 73 74 20 2d 7a 20 22 24 63       test -z "$c
32cc0 6f 6e 63 61 74 5f 63 6d 64 73 22 20 7c 7c 20 63  oncat_cmds" || c
32cd0 6f 6e 63 61 74 5f 63 6d 64 73 3d 24 63 6f 6e 63  oncat_cmds=$conc
32ce0 61 74 5f 63 6d 64 73 7e 0a 09 20 20 20 20 20 20  at_cmds~..      
32cf0 65 76 61 6c 20 63 6f 6e 63 61 74 5f 63 6d 64 73  eval concat_cmds
32d00 3d 5c 22 5c 24 63 6f 6e 63 61 74 5f 63 6d 64 73  =\"\$concat_cmds
32d10 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 5f  $export_symbols_
32d20 63 6d 64 73 5c 22 0a 09 20 20 20 20 20 20 69 66  cmds\"..      if
32d30 20 74 65 73 74 20 2d 6e 20 22 24 6c 61 73 74 5f   test -n "$last_
32d40 72 6f 62 6a 22 3b 20 74 68 65 6e 0a 09 09 65 76  robj"; then...ev
32d50 61 6c 20 63 6f 6e 63 61 74 5f 63 6d 64 73 3d 5c  al concat_cmds=\
32d60 22 5c 24 63 6f 6e 63 61 74 5f 63 6d 64 73 7e 5c  "\$concat_cmds~\
32d70 24 52 4d 20 24 6c 61 73 74 5f 72 6f 62 6a 5c 22  $RM $last_robj\"
32d80 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20 20 20  ..      fi..    
32d90 66 69 0a 0a 09 20 20 20 20 74 65 73 74 20 2d 6e  fi...    test -n
32da0 20 22 24 73 61 76 65 5f 6c 69 62 6f 62 6a 73 22   "$save_libobjs"
32db0 20 26 26 0a 09 20 20 20 20 20 20 66 75 6e 63 5f   &&..      func_
32dc0 76 65 72 62 6f 73 65 20 22 63 72 65 61 74 69 6e  verbose "creatin
32dd0 67 20 61 20 74 65 6d 70 6f 72 61 72 79 20 72 65  g a temporary re
32de0 6c 6f 61 64 61 62 6c 65 20 6f 62 6a 65 63 74 20  loadable object 
32df0 66 69 6c 65 3a 20 24 6f 75 74 70 75 74 22 0a 0a  file: $output"..
32e00 09 20 20 20 20 23 20 4c 6f 6f 70 20 74 68 72 6f  .    # Loop thro
32e10 75 67 68 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73  ugh the commands
32e20 20 67 65 6e 65 72 61 74 65 64 20 61 62 6f 76 65   generated above
32e30 20 61 6e 64 20 65 78 65 63 75 74 65 20 74 68 65   and execute the
32e40 6d 2e 0a 09 20 20 20 20 73 61 76 65 5f 69 66 73  m...    save_ifs
32e50 3d 22 24 49 46 53 22 3b 20 49 46 53 3d 27 7e 27  ="$IFS"; IFS='~'
32e60 0a 09 20 20 20 20 66 6f 72 20 63 6d 64 20 69 6e  ..    for cmd in
32e70 20 24 63 6f 6e 63 61 74 5f 63 6d 64 73 3b 20 64   $concat_cmds; d
32e80 6f 0a 09 20 20 20 20 20 20 49 46 53 3d 22 24 73  o..      IFS="$s
32e90 61 76 65 5f 69 66 73 22 0a 09 20 20 20 20 20 20  ave_ifs"..      
32ea0 24 6f 70 74 5f 73 69 6c 65 6e 74 20 7c 7c 20 7b  $opt_silent || {
32eb0 0a 09 09 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f  ...  func_quote_
32ec0 66 6f 72 5f 65 78 70 61 6e 64 20 22 24 63 6d 64  for_expand "$cmd
32ed0 22 0a 09 09 20 20 65 76 61 6c 20 22 66 75 6e 63  "...  eval "func
32ee0 5f 65 63 68 6f 20 24 66 75 6e 63 5f 71 75 6f 74  _echo $func_quot
32ef0 65 5f 66 6f 72 5f 65 78 70 61 6e 64 5f 72 65 73  e_for_expand_res
32f00 75 6c 74 22 0a 09 20 20 20 20 20 20 7d 0a 09 20  ult"..      }.. 
32f10 20 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72 75       $opt_dry_ru
32f20 6e 20 7c 7c 20 65 76 61 6c 20 22 24 63 6d 64 22  n || eval "$cmd"
32f30 20 7c 7c 20 7b 0a 09 09 6c 74 5f 65 78 69 74 3d   || {...lt_exit=
32f40 24 3f 0a 0a 09 09 23 20 52 65 73 74 6f 72 65 20  $?....# Restore 
32f50 74 68 65 20 75 6e 69 6e 73 74 61 6c 6c 65 64 20  the uninstalled 
32f60 6c 69 62 72 61 72 79 20 61 6e 64 20 65 78 69 74  library and exit
32f70 0a 09 09 69 66 20 74 65 73 74 20 22 24 6d 6f 64  ...if test "$mod
32f80 65 22 20 3d 20 72 65 6c 69 6e 6b 3b 20 74 68 65  e" = relink; the
32f90 6e 0a 09 09 20 20 28 20 63 64 20 22 24 6f 75 74  n...  ( cd "$out
32fa0 70 75 74 5f 6f 62 6a 64 69 72 22 20 26 26 20 5c  put_objdir" && \
32fb0 0a 09 09 20 20 20 20 24 52 4d 20 22 24 7b 72 65  ...    $RM "${re
32fc0 61 6c 6e 61 6d 65 7d 54 22 20 26 26 20 5c 0a 09  alname}T" && \..
32fd0 09 20 20 20 20 24 4d 56 20 22 24 7b 72 65 61 6c  .    $MV "${real
32fe0 6e 61 6d 65 7d 55 22 20 22 24 72 65 61 6c 6e 61  name}U" "$realna
32ff0 6d 65 22 20 29 0a 09 09 66 69 0a 0a 09 09 65 78  me" )...fi....ex
33000 69 74 20 24 6c 74 5f 65 78 69 74 0a 09 20 20 20  it $lt_exit..   
33010 20 20 20 7d 0a 09 20 20 20 20 64 6f 6e 65 0a 09     }..    done..
33020 20 20 20 20 49 46 53 3d 22 24 73 61 76 65 5f 69      IFS="$save_i
33030 66 73 22 0a 0a 09 20 20 20 20 69 66 20 74 65 73  fs"...    if tes
33040 74 20 2d 6e 20 22 24 65 78 70 6f 72 74 5f 73 79  t -n "$export_sy
33050 6d 62 6f 6c 73 5f 72 65 67 65 78 22 20 26 26 20  mbols_regex" && 
33060 24 7b 73 6b 69 70 70 65 64 5f 65 78 70 6f 72 74  ${skipped_export
33070 2d 66 61 6c 73 65 7d 3b 20 74 68 65 6e 0a 09 20  -false}; then.. 
33080 20 20 20 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65       func_show_e
33090 76 61 6c 20 27 24 45 47 52 45 50 20 2d 65 20 22  val '$EGREP -e "
330a0 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 5f  $export_symbols_
330b0 72 65 67 65 78 22 20 22 24 65 78 70 6f 72 74 5f  regex" "$export_
330c0 73 79 6d 62 6f 6c 73 22 20 3e 20 22 24 7b 65 78  symbols" > "${ex
330d0 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 7d 54 22 27  port_symbols}T"'
330e0 0a 09 20 20 20 20 20 20 66 75 6e 63 5f 73 68 6f  ..      func_sho
330f0 77 5f 65 76 61 6c 20 27 24 4d 56 20 22 24 7b 65  w_eval '$MV "${e
33100 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 7d 54 22  xport_symbols}T"
33110 20 22 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c   "$export_symbol
33120 73 22 27 0a 09 20 20 20 20 66 69 0a 09 20 20 66  s"'..    fi..  f
33130 69 0a 0a 20 20 20 20 20 20 20 20 20 20 69 66 20  i..          if 
33140 24 7b 73 6b 69 70 70 65 64 5f 65 78 70 6f 72 74  ${skipped_export
33150 2d 66 61 6c 73 65 7d 3b 20 74 68 65 6e 0a 09 20  -false}; then.. 
33160 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
33170 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 20  export_symbols" 
33180 26 26 20 74 65 73 74 20 2d 6e 20 22 24 69 6e 63  && test -n "$inc
33190 6c 75 64 65 5f 65 78 70 73 79 6d 73 22 3b 20 74  lude_expsyms"; t
331a0 68 65 6e 0a 09 20 20 20 20 20 20 74 6d 70 5f 65  hen..      tmp_e
331b0 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 3d 22 24  xport_symbols="$
331c0 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 0a  export_symbols".
331d0 09 20 20 20 20 20 20 74 65 73 74 20 2d 6e 20 22  .      test -n "
331e0 24 6f 72 69 67 5f 65 78 70 6f 72 74 5f 73 79 6d  $orig_export_sym
331f0 62 6f 6c 73 22 20 26 26 20 74 6d 70 5f 65 78 70  bols" && tmp_exp
33200 6f 72 74 5f 73 79 6d 62 6f 6c 73 3d 22 24 6f 72  ort_symbols="$or
33210 69 67 5f 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c  ig_export_symbol
33220 73 22 0a 09 20 20 20 20 20 20 24 6f 70 74 5f 64  s"..      $opt_d
33230 72 79 5f 72 75 6e 20 7c 7c 20 65 76 61 6c 20 27  ry_run || eval '
33240 24 45 43 48 4f 20 22 58 24 69 6e 63 6c 75 64 65  $ECHO "X$include
33250 5f 65 78 70 73 79 6d 73 22 20 7c 20 24 58 73 65  _expsyms" | $Xse
33260 64 20 7c 20 24 53 50 32 4e 4c 20 3e 3e 20 22 24  d | $SP2NL >> "$
33270 74 6d 70 5f 65 78 70 6f 72 74 5f 73 79 6d 62 6f  tmp_export_symbo
33280 6c 73 22 27 0a 09 20 20 20 20 66 69 0a 0a 09 20  ls"'..    fi... 
33290 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
332a0 6f 72 69 67 5f 65 78 70 6f 72 74 5f 73 79 6d 62  orig_export_symb
332b0 6f 6c 73 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  ols"; then..    
332c0 20 20 23 20 54 68 65 20 67 69 76 65 6e 20 65 78    # The given ex
332d0 70 6f 72 74 73 5f 73 79 6d 62 6f 6c 73 20 66 69  ports_symbols fi
332e0 6c 65 20 68 61 73 20 74 6f 20 62 65 20 66 69 6c  le has to be fil
332f0 74 65 72 65 64 2c 20 73 6f 20 66 69 6c 74 65 72  tered, so filter
33300 20 69 74 2e 0a 09 20 20 20 20 20 20 66 75 6e 63   it...      func
33310 5f 76 65 72 62 6f 73 65 20 22 66 69 6c 74 65 72  _verbose "filter
33320 20 73 79 6d 62 6f 6c 20 6c 69 73 74 20 66 6f 72   symbol list for
33330 20 5c 60 24 6c 69 62 6e 61 6d 65 2e 6c 61 27 20   \`$libname.la' 
33340 74 6f 20 74 61 67 20 44 41 54 41 20 65 78 70 6f  to tag DATA expo
33350 72 74 73 22 0a 09 20 20 20 20 20 20 23 20 46 49  rts"..      # FI
33360 58 4d 45 3a 20 24 6f 75 74 70 75 74 5f 6f 62 6a  XME: $output_obj
33370 64 69 72 2f 24 6c 69 62 6e 61 6d 65 2e 66 69 6c  dir/$libname.fil
33380 74 65 72 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20  ter potentially 
33390 63 6f 6e 74 61 69 6e 73 20 6c 6f 74 73 20 6f 66  contains lots of
333a0 0a 09 20 20 20 20 20 20 23 20 27 73 27 20 63 6f  ..      # 's' co
333b0 6d 6d 61 6e 64 73 20 77 68 69 63 68 20 6e 6f 74  mmands which not
333c0 20 61 6c 6c 20 73 65 64 73 20 63 61 6e 20 68 61   all seds can ha
333d0 6e 64 6c 65 2e 20 47 4e 55 20 73 65 64 20 73 68  ndle. GNU sed sh
333e0 6f 75 6c 64 20 62 65 20 66 69 6e 65 0a 09 20 20  ould be fine..  
333f0 20 20 20 20 23 20 74 68 6f 75 67 68 2e 20 41 6c      # though. Al
33400 73 6f 2c 20 74 68 65 20 66 69 6c 74 65 72 20 73  so, the filter s
33410 63 61 6c 65 73 20 73 75 70 65 72 6c 69 6e 65 61  cales superlinea
33420 72 6c 79 20 77 69 74 68 20 74 68 65 20 6e 75 6d  rly with the num
33430 62 65 72 20 6f 66 0a 09 20 20 20 20 20 20 23 20  ber of..      # 
33440 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73  global variables
33450 2e 20 6a 6f 69 6e 28 31 29 20 77 6f 75 6c 64 20  . join(1) would 
33460 62 65 20 6e 69 63 65 20 68 65 72 65 2c 20 62 75  be nice here, bu
33470 74 20 75 6e 66 6f 72 74 75 6e 61 74 65 6c 79 0a  t unfortunately.
33480 09 20 20 20 20 20 20 23 20 69 73 6e 27 74 20 61  .      # isn't a
33490 20 62 6c 65 73 73 65 64 20 74 6f 6f 6c 2e 0a 09   blessed tool...
334a0 20 20 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72        $opt_dry_r
334b0 75 6e 20 7c 7c 20 24 53 45 44 20 2d 65 20 27 2f  un || $SED -e '/
334c0 5b 20 2c 5d 44 41 54 41 2f 21 64 3b 73 2c 5c 28  [ ,]DATA/!d;s,\(
334d0 2e 2a 5c 29 5c 28 5b 20 5c 2c 5d 2e 2a 5c 29 2c  .*\)\([ \,].*\),
334e0 73 7c 5e 5c 31 24 7c 5c 31 5c 32 7c 2c 27 20 3c  s|^\1$|\1\2|,' <
334f0 20 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73   $export_symbols
33500 20 3e 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69   > $output_objdi
33510 72 2f 24 6c 69 62 6e 61 6d 65 2e 66 69 6c 74 65  r/$libname.filte
33520 72 0a 09 20 20 20 20 20 20 64 65 6c 66 69 6c 65  r..      delfile
33530 73 3d 22 24 64 65 6c 66 69 6c 65 73 20 24 65 78  s="$delfiles $ex
33540 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 20 24 6f 75  port_symbols $ou
33550 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6c 69 62  tput_objdir/$lib
33560 6e 61 6d 65 2e 66 69 6c 74 65 72 22 0a 09 20 20  name.filter"..  
33570 20 20 20 20 65 78 70 6f 72 74 5f 73 79 6d 62 6f      export_symbo
33580 6c 73 3d 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69  ls=$output_objdi
33590 72 2f 24 6c 69 62 6e 61 6d 65 2e 64 65 66 0a 09  r/$libname.def..
335a0 20 20 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72        $opt_dry_r
335b0 75 6e 20 7c 7c 20 24 53 45 44 20 2d 66 20 24 6f  un || $SED -f $o
335c0 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6c 69  utput_objdir/$li
335d0 62 6e 61 6d 65 2e 66 69 6c 74 65 72 20 3c 20 24  bname.filter < $
335e0 6f 72 69 67 5f 65 78 70 6f 72 74 5f 73 79 6d 62  orig_export_symb
335f0 6f 6c 73 20 3e 20 24 65 78 70 6f 72 74 5f 73 79  ols > $export_sy
33600 6d 62 6f 6c 73 0a 09 20 20 20 20 66 69 0a 09 20  mbols..    fi.. 
33610 20 66 69 0a 0a 09 20 20 6c 69 62 6f 62 6a 73 3d   fi...  libobjs=
33620 24 6f 75 74 70 75 74 0a 09 20 20 23 20 52 65 73  $output..  # Res
33630 74 6f 72 65 20 74 68 65 20 76 61 6c 75 65 20 6f  tore the value o
33640 66 20 6f 75 74 70 75 74 2e 0a 09 20 20 6f 75 74  f output...  out
33650 70 75 74 3d 24 73 61 76 65 5f 6f 75 74 70 75 74  put=$save_output
33660 0a 0a 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20  ...  if test -n 
33670 22 24 63 6f 6e 76 65 6e 69 65 6e 63 65 22 20 26  "$convenience" &
33680 26 20 74 65 73 74 20 2d 6e 20 22 24 77 68 6f 6c  & test -n "$whol
33690 65 5f 61 72 63 68 69 76 65 5f 66 6c 61 67 5f 73  e_archive_flag_s
336a0 70 65 63 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  pec"; then..    
336b0 65 76 61 6c 20 6c 69 62 6f 62 6a 73 3d 5c 22 5c  eval libobjs=\"\
336c0 24 6c 69 62 6f 62 6a 73 20 24 77 68 6f 6c 65 5f  $libobjs $whole_
336d0 61 72 63 68 69 76 65 5f 66 6c 61 67 5f 73 70 65  archive_flag_spe
336e0 63 5c 22 0a 09 20 20 20 20 74 65 73 74 20 22 58  c\"..    test "X
336f0 24 6c 69 62 6f 62 6a 73 22 20 3d 20 22 58 20 22  $libobjs" = "X "
33700 20 26 26 20 6c 69 62 6f 62 6a 73 3d 0a 09 20 20   && libobjs=..  
33710 66 69 0a 09 20 20 23 20 45 78 70 61 6e 64 20 74  fi..  # Expand t
33720 68 65 20 6c 69 62 72 61 72 79 20 6c 69 6e 6b 69  he library linki
33730 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 61 67 61 69  ng commands agai
33740 6e 20 74 6f 20 72 65 73 65 74 20 74 68 65 0a 09  n to reset the..
33750 20 20 23 20 76 61 6c 75 65 20 6f 66 20 24 6c 69    # value of $li
33760 62 6f 62 6a 73 20 66 6f 72 20 70 69 65 63 65 77  bobjs for piecew
33770 69 73 65 20 6c 69 6e 6b 69 6e 67 2e 0a 0a 09 20  ise linking.... 
33780 20 23 20 44 6f 20 65 61 63 68 20 6f 66 20 74 68   # Do each of th
33790 65 20 61 72 63 68 69 76 65 20 63 6f 6d 6d 61 6e  e archive comman
337a0 64 73 2e 0a 09 20 20 69 66 20 74 65 73 74 20 22  ds...  if test "
337b0 24 6d 6f 64 75 6c 65 22 20 3d 20 79 65 73 20 26  $module" = yes &
337c0 26 20 74 65 73 74 20 2d 6e 20 22 24 6d 6f 64 75  & test -n "$modu
337d0 6c 65 5f 63 6d 64 73 22 20 3b 20 74 68 65 6e 0a  le_cmds" ; then.
337e0 09 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20  .    if test -n 
337f0 22 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73  "$export_symbols
33800 22 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24 6d  " && test -n "$m
33810 6f 64 75 6c 65 5f 65 78 70 73 79 6d 5f 63 6d 64  odule_expsym_cmd
33820 73 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  s"; then..      
33830 63 6d 64 73 3d 24 6d 6f 64 75 6c 65 5f 65 78 70  cmds=$module_exp
33840 73 79 6d 5f 63 6d 64 73 0a 09 20 20 20 20 65 6c  sym_cmds..    el
33850 73 65 0a 09 20 20 20 20 20 20 63 6d 64 73 3d 24  se..      cmds=$
33860 6d 6f 64 75 6c 65 5f 63 6d 64 73 0a 09 20 20 20  module_cmds..   
33870 20 66 69 0a 09 20 20 65 6c 73 65 0a 09 20 20 20   fi..  else..   
33880 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 65 78   if test -n "$ex
33890 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 20 26 26  port_symbols" &&
338a0 20 74 65 73 74 20 2d 6e 20 22 24 61 72 63 68 69   test -n "$archi
338b0 76 65 5f 65 78 70 73 79 6d 5f 63 6d 64 73 22 3b  ve_expsym_cmds";
338c0 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63 6d 64   then..      cmd
338d0 73 3d 24 61 72 63 68 69 76 65 5f 65 78 70 73 79  s=$archive_expsy
338e0 6d 5f 63 6d 64 73 0a 09 20 20 20 20 65 6c 73 65  m_cmds..    else
338f0 0a 09 20 20 20 20 20 20 63 6d 64 73 3d 24 61 72  ..      cmds=$ar
33900 63 68 69 76 65 5f 63 6d 64 73 0a 09 20 20 20 20  chive_cmds..    
33910 66 69 0a 09 20 20 66 69 0a 09 66 69 0a 0a 09 69  fi..  fi..fi...i
33920 66 20 74 65 73 74 20 2d 6e 20 22 24 64 65 6c 66  f test -n "$delf
33930 69 6c 65 73 22 3b 20 74 68 65 6e 0a 09 20 20 23  iles"; then..  #
33940 20 41 70 70 65 6e 64 20 74 68 65 20 63 6f 6d 6d   Append the comm
33950 61 6e 64 20 74 6f 20 72 65 6d 6f 76 65 20 74 65  and to remove te
33960 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 74 6f  mporary files to
33970 20 24 63 6d 64 73 2e 0a 09 20 20 65 76 61 6c 20   $cmds...  eval 
33980 63 6d 64 73 3d 5c 22 5c 24 63 6d 64 73 7e 5c 24  cmds=\"\$cmds~\$
33990 52 4d 20 24 64 65 6c 66 69 6c 65 73 5c 22 0a 09  RM $delfiles\"..
339a0 66 69 0a 0a 09 23 20 41 64 64 20 61 6e 79 20 6f  fi...# Add any o
339b0 62 6a 65 63 74 73 20 66 72 6f 6d 20 70 72 65 6c  bjects from prel
339c0 6f 61 64 65 64 20 63 6f 6e 76 65 6e 69 65 6e 63  oaded convenienc
339d0 65 20 6c 69 62 72 61 72 69 65 73 0a 09 69 66 20  e libraries..if 
339e0 74 65 73 74 20 2d 6e 20 22 24 64 6c 70 72 65 66  test -n "$dlpref
339f0 69 6c 65 73 22 3b 20 74 68 65 6e 0a 09 20 20 67  iles"; then..  g
33a00 65 6e 74 6f 70 3d 22 24 6f 75 74 70 75 74 5f 6f  entop="$output_o
33a10 62 6a 64 69 72 2f 24 7b 6f 75 74 70 75 74 6e 61  bjdir/${outputna
33a20 6d 65 7d 78 22 0a 09 20 20 67 65 6e 65 72 61 74  me}x"..  generat
33a30 65 64 3d 22 24 67 65 6e 65 72 61 74 65 64 20 24  ed="$generated $
33a40 67 65 6e 74 6f 70 22 0a 0a 09 20 20 66 75 6e 63  gentop"...  func
33a50 5f 65 78 74 72 61 63 74 5f 61 72 63 68 69 76 65  _extract_archive
33a60 73 20 24 67 65 6e 74 6f 70 20 24 64 6c 70 72 65  s $gentop $dlpre
33a70 66 69 6c 65 73 0a 09 20 20 6c 69 62 6f 62 6a 73  files..  libobjs
33a80 3d 22 24 6c 69 62 6f 62 6a 73 20 24 66 75 6e 63  ="$libobjs $func
33a90 5f 65 78 74 72 61 63 74 5f 61 72 63 68 69 76 65  _extract_archive
33aa0 73 5f 72 65 73 75 6c 74 22 0a 09 20 20 74 65 73  s_result"..  tes
33ab0 74 20 22 58 24 6c 69 62 6f 62 6a 73 22 20 3d 20  t "X$libobjs" = 
33ac0 22 58 20 22 20 26 26 20 6c 69 62 6f 62 6a 73 3d  "X " && libobjs=
33ad0 0a 09 66 69 0a 0a 09 73 61 76 65 5f 69 66 73 3d  ..fi...save_ifs=
33ae0 22 24 49 46 53 22 3b 20 49 46 53 3d 27 7e 27 0a  "$IFS"; IFS='~'.
33af0 09 66 6f 72 20 63 6d 64 20 69 6e 20 24 63 6d 64  .for cmd in $cmd
33b00 73 3b 20 64 6f 0a 09 20 20 49 46 53 3d 22 24 73  s; do..  IFS="$s
33b10 61 76 65 5f 69 66 73 22 0a 09 20 20 65 76 61 6c  ave_ifs"..  eval
33b20 20 63 6d 64 3d 5c 22 24 63 6d 64 5c 22 0a 09 20   cmd=\"$cmd\".. 
33b30 20 24 6f 70 74 5f 73 69 6c 65 6e 74 20 7c 7c 20   $opt_silent || 
33b40 7b 0a 09 20 20 20 20 66 75 6e 63 5f 71 75 6f 74  {..    func_quot
33b50 65 5f 66 6f 72 5f 65 78 70 61 6e 64 20 22 24 63  e_for_expand "$c
33b60 6d 64 22 0a 09 20 20 20 20 65 76 61 6c 20 22 66  md"..    eval "f
33b70 75 6e 63 5f 65 63 68 6f 20 24 66 75 6e 63 5f 71  unc_echo $func_q
33b80 75 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 5f  uote_for_expand_
33b90 72 65 73 75 6c 74 22 0a 09 20 20 7d 0a 09 20 20  result"..  }..  
33ba0 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20  $opt_dry_run || 
33bb0 65 76 61 6c 20 22 24 63 6d 64 22 20 7c 7c 20 7b  eval "$cmd" || {
33bc0 0a 09 20 20 20 20 6c 74 5f 65 78 69 74 3d 24 3f  ..    lt_exit=$?
33bd0 0a 0a 09 20 20 20 20 23 20 52 65 73 74 6f 72 65  ...    # Restore
33be0 20 74 68 65 20 75 6e 69 6e 73 74 61 6c 6c 65 64   the uninstalled
33bf0 20 6c 69 62 72 61 72 79 20 61 6e 64 20 65 78 69   library and exi
33c00 74 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22  t..    if test "
33c10 24 6d 6f 64 65 22 20 3d 20 72 65 6c 69 6e 6b 3b  $mode" = relink;
33c20 20 74 68 65 6e 0a 09 20 20 20 20 20 20 28 20 63   then..      ( c
33c30 64 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69  d "$output_objdi
33c40 72 22 20 26 26 20 5c 0a 09 20 20 20 20 20 20 20  r" && \..       
33c50 20 24 52 4d 20 22 24 7b 72 65 61 6c 6e 61 6d 65   $RM "${realname
33c60 7d 54 22 20 26 26 20 5c 0a 09 09 24 4d 56 20 22  }T" && \...$MV "
33c70 24 7b 72 65 61 6c 6e 61 6d 65 7d 55 22 20 22 24  ${realname}U" "$
33c80 72 65 61 6c 6e 61 6d 65 22 20 29 0a 09 20 20 20  realname" )..   
33c90 20 66 69 0a 0a 09 20 20 20 20 65 78 69 74 20 24   fi...    exit $
33ca0 6c 74 5f 65 78 69 74 0a 09 20 20 7d 0a 09 64 6f  lt_exit..  }..do
33cb0 6e 65 0a 09 49 46 53 3d 22 24 73 61 76 65 5f 69  ne..IFS="$save_i
33cc0 66 73 22 0a 0a 09 23 20 52 65 73 74 6f 72 65 20  fs"...# Restore 
33cd0 74 68 65 20 75 6e 69 6e 73 74 61 6c 6c 65 64 20  the uninstalled 
33ce0 6c 69 62 72 61 72 79 20 61 6e 64 20 65 78 69 74  library and exit
33cf0 0a 09 69 66 20 74 65 73 74 20 22 24 6d 6f 64 65  ..if test "$mode
33d00 22 20 3d 20 72 65 6c 69 6e 6b 3b 20 74 68 65 6e  " = relink; then
33d10 0a 09 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e  ..  $opt_dry_run
33d20 20 7c 7c 20 65 76 61 6c 20 27 28 63 64 20 24 6f   || eval '(cd $o
33d30 75 74 70 75 74 5f 6f 62 6a 64 69 72 20 26 26 20  utput_objdir && 
33d40 24 52 4d 20 24 7b 72 65 61 6c 6e 61 6d 65 7d 54  $RM ${realname}T
33d50 20 26 26 20 24 4d 56 20 24 72 65 61 6c 6e 61 6d   && $MV $realnam
33d60 65 20 24 7b 72 65 61 6c 6e 61 6d 65 7d 54 20 26  e ${realname}T &
33d70 26 20 24 4d 56 20 24 7b 72 65 61 6c 6e 61 6d 65  & $MV ${realname
33d80 7d 55 20 24 72 65 61 6c 6e 61 6d 65 29 27 20 7c  }U $realname)' |
33d90 7c 20 65 78 69 74 20 24 3f 0a 0a 09 20 20 69 66  | exit $?...  if
33da0 20 74 65 73 74 20 2d 6e 20 22 24 63 6f 6e 76 65   test -n "$conve
33db0 6e 69 65 6e 63 65 22 3b 20 74 68 65 6e 0a 09 20  nience"; then.. 
33dc0 20 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22 24     if test -z "$
33dd0 77 68 6f 6c 65 5f 61 72 63 68 69 76 65 5f 66 6c  whole_archive_fl
33de0 61 67 5f 73 70 65 63 22 3b 20 74 68 65 6e 0a 09  ag_spec"; then..
33df0 20 20 20 20 20 20 66 75 6e 63 5f 73 68 6f 77 5f        func_show_
33e00 65 76 61 6c 20 27 24 7b 52 4d 7d 72 20 22 24 67  eval '${RM}r "$g
33e10 65 6e 74 6f 70 22 27 0a 09 20 20 20 20 66 69 0a  entop"'..    fi.
33e20 09 20 20 66 69 0a 0a 09 20 20 65 78 69 74 20 24  .  fi...  exit $
33e30 45 58 49 54 5f 53 55 43 43 45 53 53 0a 09 66 69  EXIT_SUCCESS..fi
33e40 0a 0a 09 23 20 43 72 65 61 74 65 20 6c 69 6e 6b  ...# Create link
33e50 73 20 74 6f 20 74 68 65 20 72 65 61 6c 20 6c 69  s to the real li
33e60 62 72 61 72 79 2e 0a 09 66 6f 72 20 6c 69 6e 6b  brary...for link
33e70 6e 61 6d 65 20 69 6e 20 24 6c 69 6e 6b 6e 61 6d  name in $linknam
33e80 65 73 3b 20 64 6f 0a 09 20 20 69 66 20 74 65 73  es; do..  if tes
33e90 74 20 22 24 72 65 61 6c 6e 61 6d 65 22 20 21 3d  t "$realname" !=
33ea0 20 22 24 6c 69 6e 6b 6e 61 6d 65 22 3b 20 74 68   "$linkname"; th
33eb0 65 6e 0a 09 20 20 20 20 66 75 6e 63 5f 73 68 6f  en..    func_sho
33ec0 77 5f 65 76 61 6c 20 27 28 63 64 20 22 24 6f 75  w_eval '(cd "$ou
33ed0 74 70 75 74 5f 6f 62 6a 64 69 72 22 20 26 26 20  tput_objdir" && 
33ee0 24 52 4d 20 22 24 6c 69 6e 6b 6e 61 6d 65 22 20  $RM "$linkname" 
33ef0 26 26 20 24 4c 4e 5f 53 20 22 24 72 65 61 6c 6e  && $LN_S "$realn
33f00 61 6d 65 22 20 22 24 6c 69 6e 6b 6e 61 6d 65 22  ame" "$linkname"
33f10 29 27 20 27 65 78 69 74 20 24 3f 27 0a 09 20 20  )' 'exit $?'..  
33f20 66 69 0a 09 64 6f 6e 65 0a 0a 09 23 20 49 66 20  fi..done...# If 
33f30 2d 6d 6f 64 75 6c 65 20 6f 72 20 2d 65 78 70 6f  -module or -expo
33f40 72 74 2d 64 79 6e 61 6d 69 63 20 77 61 73 20 73  rt-dynamic was s
33f50 70 65 63 69 66 69 65 64 2c 20 73 65 74 20 74 68  pecified, set th
33f60 65 20 64 6c 6e 61 6d 65 2e 0a 09 69 66 20 74 65  e dlname...if te
33f70 73 74 20 22 24 6d 6f 64 75 6c 65 22 20 3d 20 79  st "$module" = y
33f80 65 73 20 7c 7c 20 74 65 73 74 20 22 24 65 78 70  es || test "$exp
33f90 6f 72 74 5f 64 79 6e 61 6d 69 63 22 20 3d 20 79  ort_dynamic" = y
33fa0 65 73 3b 20 74 68 65 6e 0a 09 20 20 23 20 4f 6e  es; then..  # On
33fb0 20 61 6c 6c 20 6b 6e 6f 77 6e 20 6f 70 65 72 61   all known opera
33fc0 74 69 6e 67 20 73 79 73 74 65 6d 73 2c 20 74 68  ting systems, th
33fd0 65 73 65 20 61 72 65 20 69 64 65 6e 74 69 63 61  ese are identica
33fe0 6c 2e 0a 09 20 20 64 6c 6e 61 6d 65 3d 22 24 73  l...  dlname="$s
33ff0 6f 6e 61 6d 65 22 0a 09 66 69 0a 20 20 20 20 20  oname"..fi.     
34000 20 66 69 0a 20 20 20 20 20 20 3b 3b 0a 0a 20 20   fi.      ;;..  
34010 20 20 6f 62 6a 29 0a 20 20 20 20 20 20 69 66 20    obj).      if 
34020 74 65 73 74 20 2d 6e 20 22 24 64 6c 66 69 6c 65  test -n "$dlfile
34030 73 24 64 6c 70 72 65 66 69 6c 65 73 22 20 7c 7c  s$dlprefiles" ||
34040 20 74 65 73 74 20 22 24 64 6c 73 65 6c 66 22 20   test "$dlself" 
34050 21 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09 66 75 6e  != no; then..fun
34060 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 2d 64 6c  c_warning "\`-dl
34070 6f 70 65 6e 27 20 69 73 20 69 67 6e 6f 72 65 64  open' is ignored
34080 20 66 6f 72 20 6f 62 6a 65 63 74 73 22 0a 20 20   for objects".  
34090 20 20 20 20 66 69 0a 0a 20 20 20 20 20 20 63 61      fi..      ca
340a0 73 65 20 22 20 24 64 65 70 6c 69 62 73 22 20 69  se " $deplibs" i
340b0 6e 0a 20 20 20 20 20 20 2a 5c 20 2d 6c 2a 20 7c  n.      *\ -l* |
340c0 20 2a 5c 20 2d 4c 2a 29 0a 09 66 75 6e 63 5f 77   *\ -L*)..func_w
340d0 61 72 6e 69 6e 67 20 22 5c 60 2d 6c 27 20 61 6e  arning "\`-l' an
340e0 64 20 5c 60 2d 4c 27 20 61 72 65 20 69 67 6e 6f  d \`-L' are igno
340f0 72 65 64 20 66 6f 72 20 6f 62 6a 65 63 74 73 22  red for objects"
34100 20 3b 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 0a   ;;.      esac..
34110 20 20 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24        test -n "$
34120 72 70 61 74 68 22 20 26 26 20 5c 0a 09 66 75 6e  rpath" && \..fun
34130 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 2d 72 70  c_warning "\`-rp
34140 61 74 68 27 20 69 73 20 69 67 6e 6f 72 65 64 20  ath' is ignored 
34150 66 6f 72 20 6f 62 6a 65 63 74 73 22 0a 0a 20 20  for objects"..  
34160 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24 78 72      test -n "$xr
34170 70 61 74 68 22 20 26 26 20 5c 0a 09 66 75 6e 63  path" && \..func
34180 5f 77 61 72 6e 69 6e 67 20 22 5c 60 2d 52 27 20  _warning "\`-R' 
34190 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72 20 6f  is ignored for o
341a0 62 6a 65 63 74 73 22 0a 0a 20 20 20 20 20 20 74  bjects"..      t
341b0 65 73 74 20 2d 6e 20 22 24 76 69 6e 66 6f 22 20  est -n "$vinfo" 
341c0 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69  && \..func_warni
341d0 6e 67 20 22 5c 60 2d 76 65 72 73 69 6f 6e 2d 69  ng "\`-version-i
341e0 6e 66 6f 27 20 69 73 20 69 67 6e 6f 72 65 64 20  nfo' is ignored 
341f0 66 6f 72 20 6f 62 6a 65 63 74 73 22 0a 0a 20 20  for objects"..  
34200 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24 72 65      test -n "$re
34210 6c 65 61 73 65 22 20 26 26 20 5c 0a 09 66 75 6e  lease" && \..fun
34220 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 2d 72 65  c_warning "\`-re
34230 6c 65 61 73 65 27 20 69 73 20 69 67 6e 6f 72 65  lease' is ignore
34240 64 20 66 6f 72 20 6f 62 6a 65 63 74 73 22 0a 0a  d for objects"..
34250 20 20 20 20 20 20 63 61 73 65 20 24 6f 75 74 70        case $outp
34260 75 74 20 69 6e 0a 20 20 20 20 20 20 2a 2e 6c 6f  ut in.      *.lo
34270 29 0a 09 74 65 73 74 20 2d 6e 20 22 24 6f 62 6a  )..test -n "$obj
34280 73 24 6f 6c 64 5f 64 65 70 6c 69 62 73 22 20 26  s$old_deplibs" &
34290 26 20 5c 0a 09 20 20 66 75 6e 63 5f 66 61 74 61  & \..  func_fata
342a0 6c 5f 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20  l_error "cannot 
342b0 62 75 69 6c 64 20 6c 69 62 72 61 72 79 20 6f 62  build library ob
342c0 6a 65 63 74 20 5c 60 24 6f 75 74 70 75 74 27 20  ject \`$output' 
342d0 66 72 6f 6d 20 6e 6f 6e 2d 6c 69 62 74 6f 6f 6c  from non-libtool
342e0 20 6f 62 6a 65 63 74 73 22 0a 0a 09 6c 69 62 6f   objects"...libo
342f0 62 6a 3d 24 6f 75 74 70 75 74 0a 09 66 75 6e 63  bj=$output..func
34300 5f 6c 6f 32 6f 20 22 24 6c 69 62 6f 62 6a 22 0a  _lo2o "$libobj".
34310 09 6f 62 6a 3d 24 66 75 6e 63 5f 6c 6f 32 6f 5f  .obj=$func_lo2o_
34320 72 65 73 75 6c 74 0a 09 3b 3b 0a 20 20 20 20 20  result..;;.     
34330 20 2a 29 0a 09 6c 69 62 6f 62 6a 3d 0a 09 6f 62   *)..libobj=..ob
34340 6a 3d 22 24 6f 75 74 70 75 74 22 0a 09 3b 3b 0a  j="$output"..;;.
34350 20 20 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20        esac..    
34360 20 20 23 20 44 65 6c 65 74 65 20 74 68 65 20 6f    # Delete the o
34370 6c 64 20 6f 62 6a 65 63 74 73 2e 0a 20 20 20 20  ld objects..    
34380 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c    $opt_dry_run |
34390 7c 20 24 52 4d 20 24 6f 62 6a 20 24 6c 69 62 6f  | $RM $obj $libo
343a0 62 6a 0a 0a 20 20 20 20 20 20 23 20 4f 62 6a 65  bj..      # Obje
343b0 63 74 73 20 66 72 6f 6d 20 63 6f 6e 76 65 6e 69  cts from conveni
343c0 65 6e 63 65 20 6c 69 62 72 61 72 69 65 73 2e 20  ence libraries. 
343d0 20 54 68 69 73 20 61 73 73 75 6d 65 73 0a 20 20   This assumes.  
343e0 20 20 20 20 23 20 73 69 6e 67 6c 65 2d 76 65 72      # single-ver
343f0 73 69 6f 6e 20 63 6f 6e 76 65 6e 69 65 6e 63 65  sion convenience
34400 20 6c 69 62 72 61 72 69 65 73 2e 20 20 57 68 65   libraries.  Whe
34410 6e 65 76 65 72 20 77 65 20 63 72 65 61 74 65 0a  never we create.
34420 20 20 20 20 20 20 23 20 64 69 66 66 65 72 65 6e        # differen
34430 74 20 6f 6e 65 73 20 66 6f 72 20 50 49 43 2f 6e  t ones for PIC/n
34440 6f 6e 2d 50 49 43 2c 20 74 68 69 73 20 77 65 27  on-PIC, this we'
34450 6c 6c 20 68 61 76 65 20 74 6f 20 64 75 70 6c 69  ll have to dupli
34460 63 61 74 65 0a 20 20 20 20 20 20 23 20 74 68 65  cate.      # the
34470 20 65 78 74 72 61 63 74 69 6f 6e 2e 0a 20 20 20   extraction..   
34480 20 20 20 72 65 6c 6f 61 64 5f 63 6f 6e 76 5f 6f     reload_conv_o
34490 62 6a 73 3d 0a 20 20 20 20 20 20 67 65 6e 74 6f  bjs=.      gento
344a0 70 3d 0a 20 20 20 20 20 20 23 20 72 65 6c 6f 61  p=.      # reloa
344b0 64 5f 63 6d 64 73 20 72 75 6e 73 20 24 4c 44 20  d_cmds runs $LD 
344c0 64 69 72 65 63 74 6c 79 2c 20 73 6f 20 6c 65 74  directly, so let
344d0 20 75 73 20 67 65 74 20 72 69 64 20 6f 66 0a 20   us get rid of. 
344e0 20 20 20 20 20 23 20 2d 57 6c 20 66 72 6f 6d 20       # -Wl from 
344f0 77 68 6f 6c 65 5f 61 72 63 68 69 76 65 5f 66 6c  whole_archive_fl
34500 61 67 5f 73 70 65 63 20 61 6e 64 20 68 6f 70 65  ag_spec and hope
34510 20 77 65 20 63 61 6e 20 67 65 74 20 62 79 20 77   we can get by w
34520 69 74 68 0a 20 20 20 20 20 20 23 20 74 75 72 6e  ith.      # turn
34530 69 6e 67 20 63 6f 6d 6d 61 20 69 6e 74 6f 20 73  ing comma into s
34540 70 61 63 65 2e 2e 0a 20 20 20 20 20 20 77 6c 3d  pace...      wl=
34550 0a 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
34560 2d 6e 20 22 24 63 6f 6e 76 65 6e 69 65 6e 63 65  -n "$convenience
34570 22 3b 20 74 68 65 6e 0a 09 69 66 20 74 65 73 74  "; then..if test
34580 20 2d 6e 20 22 24 77 68 6f 6c 65 5f 61 72 63 68   -n "$whole_arch
34590 69 76 65 5f 66 6c 61 67 5f 73 70 65 63 22 3b 20  ive_flag_spec"; 
345a0 74 68 65 6e 0a 09 20 20 65 76 61 6c 20 74 6d 70  then..  eval tmp
345b0 5f 77 68 6f 6c 65 5f 61 72 63 68 69 76 65 5f 66  _whole_archive_f
345c0 6c 61 67 73 3d 5c 22 24 77 68 6f 6c 65 5f 61 72  lags=\"$whole_ar
345d0 63 68 69 76 65 5f 66 6c 61 67 5f 73 70 65 63 5c  chive_flag_spec\
345e0 22 0a 09 20 20 72 65 6c 6f 61 64 5f 63 6f 6e 76  "..  reload_conv
345f0 5f 6f 62 6a 73 3d 24 72 65 6c 6f 61 64 5f 6f 62  _objs=$reload_ob
34600 6a 73 5c 20 60 24 45 43 48 4f 20 22 58 24 74 6d  js\ `$ECHO "X$tm
34610 70 5f 77 68 6f 6c 65 5f 61 72 63 68 69 76 65 5f  p_whole_archive_
34620 66 6c 61 67 73 22 20 7c 20 24 58 73 65 64 20 2d  flags" | $Xsed -
34630 65 20 27 73 7c 2c 7c 20 7c 67 27 60 0a 09 65 6c  e 's|,| |g'`..el
34640 73 65 0a 09 20 20 67 65 6e 74 6f 70 3d 22 24 6f  se..  gentop="$o
34650 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 7b 6f  utput_objdir/${o
34660 62 6a 7d 78 22 0a 09 20 20 67 65 6e 65 72 61 74  bj}x"..  generat
34670 65 64 3d 22 24 67 65 6e 65 72 61 74 65 64 20 24  ed="$generated $
34680 67 65 6e 74 6f 70 22 0a 0a 09 20 20 66 75 6e 63  gentop"...  func
34690 5f 65 78 74 72 61 63 74 5f 61 72 63 68 69 76 65  _extract_archive
346a0 73 20 24 67 65 6e 74 6f 70 20 24 63 6f 6e 76 65  s $gentop $conve
346b0 6e 69 65 6e 63 65 0a 09 20 20 72 65 6c 6f 61 64  nience..  reload
346c0 5f 63 6f 6e 76 5f 6f 62 6a 73 3d 22 24 72 65 6c  _conv_objs="$rel
346d0 6f 61 64 5f 6f 62 6a 73 20 24 66 75 6e 63 5f 65  oad_objs $func_e
346e0 78 74 72 61 63 74 5f 61 72 63 68 69 76 65 73 5f  xtract_archives_
346f0 72 65 73 75 6c 74 22 0a 09 66 69 0a 20 20 20 20  result"..fi.    
34700 20 20 66 69 0a 0a 20 20 20 20 20 20 23 20 43 72    fi..      # Cr
34710 65 61 74 65 20 74 68 65 20 6f 6c 64 2d 73 74 79  eate the old-sty
34720 6c 65 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20 20  le object..     
34730 20 72 65 6c 6f 61 64 5f 6f 62 6a 73 3d 22 24 6f   reload_objs="$o
34740 62 6a 73 24 6f 6c 64 5f 64 65 70 6c 69 62 73 20  bjs$old_deplibs 
34750 22 60 24 45 43 48 4f 20 22 58 24 6c 69 62 6f 62  "`$ECHO "X$libob
34760 6a 73 22 20 7c 20 24 53 50 32 4e 4c 20 7c 20 24  js" | $SP2NL | $
34770 58 73 65 64 20 2d 65 20 27 2f 5c 2e 27 24 7b 6c  Xsed -e '/\.'${l
34780 69 62 65 78 74 7d 24 27 2f 64 27 20 2d 65 20 27  ibext}$'/d' -e '
34790 2f 5c 2e 6c 69 62 24 2f 64 27 20 2d 65 20 22 24  /\.lib$/d' -e "$
347a0 6c 6f 32 6f 22 20 7c 20 24 4e 4c 32 53 50 60 22  lo2o" | $NL2SP`"
347b0 20 24 72 65 6c 6f 61 64 5f 63 6f 6e 76 5f 6f 62   $reload_conv_ob
347c0 6a 73 22 20 23 23 23 20 74 65 73 74 73 75 69 74  js" ### testsuit
347d0 65 3a 20 73 6b 69 70 20 6e 65 73 74 65 64 20 71  e: skip nested q
347e0 75 6f 74 69 6e 67 20 74 65 73 74 0a 0a 20 20 20  uoting test..   
347f0 20 20 20 6f 75 74 70 75 74 3d 22 24 6f 62 6a 22     output="$obj"
34800 0a 20 20 20 20 20 20 66 75 6e 63 5f 65 78 65 63  .      func_exec
34810 75 74 65 5f 63 6d 64 73 20 22 24 72 65 6c 6f 61  ute_cmds "$reloa
34820 64 5f 63 6d 64 73 22 20 27 65 78 69 74 20 24 3f  d_cmds" 'exit $?
34830 27 0a 0a 20 20 20 20 20 20 23 20 45 78 69 74 20  '..      # Exit 
34840 69 66 20 77 65 20 61 72 65 6e 27 74 20 64 6f 69  if we aren't doi
34850 6e 67 20 61 20 6c 69 62 72 61 72 79 20 6f 62 6a  ng a library obj
34860 65 63 74 20 66 69 6c 65 2e 0a 20 20 20 20 20 20  ect file..      
34870 69 66 20 74 65 73 74 20 2d 7a 20 22 24 6c 69 62  if test -z "$lib
34880 6f 62 6a 22 3b 20 74 68 65 6e 0a 09 69 66 20 74  obj"; then..if t
34890 65 73 74 20 2d 6e 20 22 24 67 65 6e 74 6f 70 22  est -n "$gentop"
348a0 3b 20 74 68 65 6e 0a 09 20 20 66 75 6e 63 5f 73  ; then..  func_s
348b0 68 6f 77 5f 65 76 61 6c 20 27 24 7b 52 4d 7d 72  how_eval '${RM}r
348c0 20 22 24 67 65 6e 74 6f 70 22 27 0a 09 66 69 0a   "$gentop"'..fi.
348d0 0a 09 65 78 69 74 20 24 45 58 49 54 5f 53 55 43  ..exit $EXIT_SUC
348e0 43 45 53 53 0a 20 20 20 20 20 20 66 69 0a 0a 20  CESS.      fi.. 
348f0 20 20 20 20 20 69 66 20 74 65 73 74 20 22 24 62       if test "$b
34900 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
34910 73 22 20 21 3d 20 79 65 73 3b 20 74 68 65 6e 0a  s" != yes; then.
34920 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 67 65  .if test -n "$ge
34930 6e 74 6f 70 22 3b 20 74 68 65 6e 0a 09 20 20 66  ntop"; then..  f
34940 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20 27 24  unc_show_eval '$
34950 7b 52 4d 7d 72 20 22 24 67 65 6e 74 6f 70 22 27  {RM}r "$gentop"'
34960 0a 09 66 69 0a 0a 09 23 20 43 72 65 61 74 65 20  ..fi...# Create 
34970 61 6e 20 69 6e 76 61 6c 69 64 20 6c 69 62 74 6f  an invalid libto
34980 6f 6c 20 6f 62 6a 65 63 74 20 69 66 20 6e 6f 20  ol object if no 
34990 50 49 43 2c 20 73 6f 20 74 68 61 74 20 77 65 20  PIC, so that we 
349a0 64 6f 6e 27 74 0a 09 23 20 61 63 63 69 64 65 6e  don't..# acciden
349b0 74 61 6c 6c 79 20 6c 69 6e 6b 20 69 74 20 69 6e  tally link it in
349c0 74 6f 20 61 20 70 72 6f 67 72 61 6d 2e 0a 09 23  to a program...#
349d0 20 24 73 68 6f 77 20 22 65 63 68 6f 20 74 69 6d   $show "echo tim
349e0 65 73 74 61 6d 70 20 3e 20 24 6c 69 62 6f 62 6a  estamp > $libobj
349f0 22 0a 09 23 20 24 6f 70 74 5f 64 72 79 5f 72 75  "..# $opt_dry_ru
34a00 6e 20 7c 7c 20 65 76 61 6c 20 22 65 63 68 6f 20  n || eval "echo 
34a10 74 69 6d 65 73 74 61 6d 70 20 3e 20 24 6c 69 62  timestamp > $lib
34a20 6f 62 6a 22 20 7c 7c 20 65 78 69 74 20 24 3f 0a  obj" || exit $?.
34a30 09 65 78 69 74 20 24 45 58 49 54 5f 53 55 43 43  .exit $EXIT_SUCC
34a40 45 53 53 0a 20 20 20 20 20 20 66 69 0a 0a 20 20  ESS.      fi..  
34a50 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
34a60 24 70 69 63 5f 66 6c 61 67 22 20 7c 7c 20 74 65  $pic_flag" || te
34a70 73 74 20 22 24 70 69 63 5f 6d 6f 64 65 22 20 21  st "$pic_mode" !
34a80 3d 20 64 65 66 61 75 6c 74 3b 20 74 68 65 6e 0a  = default; then.
34a90 09 23 20 4f 6e 6c 79 20 64 6f 20 63 6f 6d 6d 61  .# Only do comma
34aa0 6e 64 73 20 69 66 20 77 65 20 72 65 61 6c 6c 79  nds if we really
34ab0 20 68 61 76 65 20 64 69 66 66 65 72 65 6e 74 20   have different 
34ac0 50 49 43 20 6f 62 6a 65 63 74 73 2e 0a 09 72 65  PIC objects...re
34ad0 6c 6f 61 64 5f 6f 62 6a 73 3d 22 24 6c 69 62 6f  load_objs="$libo
34ae0 62 6a 73 20 24 72 65 6c 6f 61 64 5f 63 6f 6e 76  bjs $reload_conv
34af0 5f 6f 62 6a 73 22 0a 09 6f 75 74 70 75 74 3d 22  _objs"..output="
34b00 24 6c 69 62 6f 62 6a 22 0a 09 66 75 6e 63 5f 65  $libobj"..func_e
34b10 78 65 63 75 74 65 5f 63 6d 64 73 20 22 24 72 65  xecute_cmds "$re
34b20 6c 6f 61 64 5f 63 6d 64 73 22 20 27 65 78 69 74  load_cmds" 'exit
34b30 20 24 3f 27 0a 20 20 20 20 20 20 66 69 0a 0a 20   $?'.      fi.. 
34b40 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20       if test -n 
34b50 22 24 67 65 6e 74 6f 70 22 3b 20 74 68 65 6e 0a  "$gentop"; then.
34b60 09 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20  .func_show_eval 
34b70 27 24 7b 52 4d 7d 72 20 22 24 67 65 6e 74 6f 70  '${RM}r "$gentop
34b80 22 27 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20  "'.      fi..   
34b90 20 20 20 65 78 69 74 20 24 45 58 49 54 5f 53 55     exit $EXIT_SU
34ba0 43 43 45 53 53 0a 20 20 20 20 20 20 3b 3b 0a 0a  CCESS.      ;;..
34bb0 20 20 20 20 70 72 6f 67 29 0a 20 20 20 20 20 20      prog).      
34bc0 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 2a  case $host in..*
34bd0 63 79 67 77 69 6e 2a 29 20 66 75 6e 63 5f 73 74  cygwin*) func_st
34be0 72 69 70 6e 61 6d 65 20 27 27 20 27 2e 65 78 65  ripname '' '.exe
34bf0 27 20 22 24 6f 75 74 70 75 74 22 0a 09 20 20 20  ' "$output"..   
34c00 20 20 20 20 20 20 20 6f 75 74 70 75 74 3d 24 66         output=$f
34c10 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65  unc_stripname_re
34c20 73 75 6c 74 2e 65 78 65 3b 3b 0a 20 20 20 20 20  sult.exe;;.     
34c30 20 65 73 61 63 0a 20 20 20 20 20 20 74 65 73 74   esac.      test
34c40 20 2d 6e 20 22 24 76 69 6e 66 6f 22 20 26 26 20   -n "$vinfo" && 
34c50 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20  \..func_warning 
34c60 22 5c 60 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f  "\`-version-info
34c70 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72  ' is ignored for
34c80 20 70 72 6f 67 72 61 6d 73 22 0a 0a 20 20 20 20   programs"..    
34c90 20 20 74 65 73 74 20 2d 6e 20 22 24 72 65 6c 65    test -n "$rele
34ca0 61 73 65 22 20 26 26 20 5c 0a 09 66 75 6e 63 5f  ase" && \..func_
34cb0 77 61 72 6e 69 6e 67 20 22 5c 60 2d 72 65 6c 65  warning "\`-rele
34cc0 61 73 65 27 20 69 73 20 69 67 6e 6f 72 65 64 20  ase' is ignored 
34cd0 66 6f 72 20 70 72 6f 67 72 61 6d 73 22 0a 0a 20  for programs".. 
34ce0 20 20 20 20 20 74 65 73 74 20 22 24 70 72 65 6c       test "$prel
34cf0 6f 61 64 22 20 3d 20 79 65 73 20 5c 0a 20 20 20  oad" = yes \.   
34d00 20 20 20 20 20 26 26 20 74 65 73 74 20 22 24 64       && test "$d
34d10 6c 6f 70 65 6e 5f 73 75 70 70 6f 72 74 22 20 3d  lopen_support" =
34d20 20 75 6e 6b 6e 6f 77 6e 20 5c 0a 09 26 26 20 74   unknown \..&& t
34d30 65 73 74 20 22 24 64 6c 6f 70 65 6e 5f 73 65 6c  est "$dlopen_sel
34d40 66 22 20 3d 20 75 6e 6b 6e 6f 77 6e 20 5c 0a 09  f" = unknown \..
34d50 26 26 20 74 65 73 74 20 22 24 64 6c 6f 70 65 6e  && test "$dlopen
34d60 5f 73 65 6c 66 5f 73 74 61 74 69 63 22 20 3d 20  _self_static" = 
34d70 75 6e 6b 6e 6f 77 6e 20 26 26 20 5c 0a 09 20 20  unknown && \..  
34d80 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60  func_warning "\`
34d90 4c 54 5f 49 4e 49 54 28 5b 64 6c 6f 70 65 6e 5d  LT_INIT([dlopen]
34da0 29 27 20 6e 6f 74 20 75 73 65 64 2e 20 41 73 73  )' not used. Ass
34db0 75 6d 69 6e 67 20 6e 6f 20 64 6c 6f 70 65 6e 20  uming no dlopen 
34dc0 73 75 70 70 6f 72 74 2e 22 0a 0a 20 20 20 20 20  support."..     
34dd0 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 20   case $host in. 
34de0 20 20 20 20 20 2a 2d 2a 2d 72 68 61 70 73 6f 64       *-*-rhapsod
34df0 79 2a 20 7c 20 2a 2d 2a 2d 64 61 72 77 69 6e 31  y* | *-*-darwin1
34e00 2e 5b 30 31 32 5d 29 0a 09 23 20 4f 6e 20 52 68  .[012])..# On Rh
34e10 61 70 73 6f 64 79 20 72 65 70 6c 61 63 65 20 74  apsody replace t
34e20 68 65 20 43 20 6c 69 62 72 61 72 79 20 69 73 20  he C library is 
34e30 74 68 65 20 53 79 73 74 65 6d 20 66 72 61 6d 65  the System frame
34e40 77 6f 72 6b 0a 09 63 6f 6d 70 69 6c 65 5f 64 65  work..compile_de
34e50 70 6c 69 62 73 3d 60 24 45 43 48 4f 20 22 58 20  plibs=`$ECHO "X 
34e60 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73  $compile_deplibs
34e70 22 20 7c 20 24 58 73 65 64 20 2d 65 20 27 73 2f  " | $Xsed -e 's/
34e80 20 2d 6c 63 20 2f 20 53 79 73 74 65 6d 2e 6c 74   -lc / System.lt
34e90 66 72 61 6d 65 77 6f 72 6b 20 2f 27 60 0a 09 66  framework /'`..f
34ea0 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d  inalize_deplibs=
34eb0 60 24 45 43 48 4f 20 22 58 20 24 66 69 6e 61 6c  `$ECHO "X $final
34ec0 69 7a 65 5f 64 65 70 6c 69 62 73 22 20 7c 20 24  ize_deplibs" | $
34ed0 58 73 65 64 20 2d 65 20 27 73 2f 20 2d 6c 63 20  Xsed -e 's/ -lc 
34ee0 2f 20 53 79 73 74 65 6d 2e 6c 74 66 72 61 6d 65  / System.ltframe
34ef0 77 6f 72 6b 20 2f 27 60 0a 09 3b 3b 0a 20 20 20  work /'`..;;.   
34f00 20 20 20 65 73 61 63 0a 0a 20 20 20 20 20 20 63     esac..      c
34f10 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 20 20 20  ase $host in.   
34f20 20 20 20 2a 2d 2a 2d 64 61 72 77 69 6e 2a 29 0a     *-*-darwin*).
34f30 09 23 20 44 6f 6e 27 74 20 61 6c 6c 6f 77 20 6c  .# Don't allow l
34f40 61 7a 79 20 6c 69 6e 6b 69 6e 67 2c 20 69 74 20  azy linking, it 
34f50 62 72 65 61 6b 73 20 43 2b 2b 20 67 6c 6f 62 61  breaks C++ globa
34f60 6c 20 63 6f 6e 73 74 72 75 63 74 6f 72 73 0a 09  l constructors..
34f70 23 20 42 75 74 20 69 73 20 73 75 70 70 6f 73 65  # But is suppose
34f80 64 6c 79 20 66 69 78 65 64 20 6f 6e 20 31 30 2e  dly fixed on 10.
34f90 34 20 6f 72 20 6c 61 74 65 72 20 28 79 61 79 21  4 or later (yay!
34fa0 29 2e 0a 09 69 66 20 74 65 73 74 20 22 24 74 61  )...if test "$ta
34fb0 67 6e 61 6d 65 22 20 3d 20 43 58 58 20 3b 20 74  gname" = CXX ; t
34fc0 68 65 6e 0a 09 20 20 63 61 73 65 20 24 7b 4d 41  hen..  case ${MA
34fd0 43 4f 53 58 5f 44 45 50 4c 4f 59 4d 45 4e 54 5f  COSX_DEPLOYMENT_
34fe0 54 41 52 47 45 54 2d 31 30 2e 30 7d 20 69 6e 0a  TARGET-10.0} in.
34ff0 09 20 20 20 20 31 30 2e 5b 30 31 32 33 5d 29 0a  .    10.[0123]).
35000 09 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 5f 63  .      compile_c
35010 6f 6d 6d 61 6e 64 3d 22 24 63 6f 6d 70 69 6c 65  ommand="$compile
35020 5f 63 6f 6d 6d 61 6e 64 20 24 7b 77 6c 7d 2d 62  _command ${wl}-b
35030 69 6e 64 5f 61 74 5f 6c 6f 61 64 22 0a 09 20 20  ind_at_load"..  
35040 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d      finalize_com
35050 6d 61 6e 64 3d 22 24 66 69 6e 61 6c 69 7a 65 5f  mand="$finalize_
35060 63 6f 6d 6d 61 6e 64 20 24 7b 77 6c 7d 2d 62 69  command ${wl}-bi
35070 6e 64 5f 61 74 5f 6c 6f 61 64 22 0a 09 20 20 20  nd_at_load"..   
35080 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 66 69 0a   ;;..  esac..fi.
35090 09 23 20 54 69 6d 65 20 74 6f 20 63 68 61 6e 67  .# Time to chang
350a0 65 20 61 6c 6c 20 6f 75 72 20 22 66 6f 6f 2e 6c  e all our "foo.l
350b0 74 66 72 61 6d 65 77 6f 72 6b 22 20 73 74 75 66  tframework" stuf
350c0 66 20 62 61 63 6b 20 74 6f 20 22 2d 66 72 61 6d  f back to "-fram
350d0 65 77 6f 72 6b 20 66 6f 6f 22 0a 09 63 6f 6d 70  ework foo"..comp
350e0 69 6c 65 5f 64 65 70 6c 69 62 73 3d 60 24 45 43  ile_deplibs=`$EC
350f0 48 4f 20 22 58 20 24 63 6f 6d 70 69 6c 65 5f 64  HO "X $compile_d
35100 65 70 6c 69 62 73 22 20 7c 20 24 58 73 65 64 20  eplibs" | $Xsed 
35110 2d 65 20 27 73 25 20 5c 28 5b 5e 20 24 5d 2a 5c  -e 's% \([^ $]*\
35120 29 2e 6c 74 66 72 61 6d 65 77 6f 72 6b 25 20 2d  ).ltframework% -
35130 66 72 61 6d 65 77 6f 72 6b 20 5c 31 25 67 27 60  framework \1%g'`
35140 0a 09 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69  ..finalize_depli
35150 62 73 3d 60 24 45 43 48 4f 20 22 58 20 24 66 69  bs=`$ECHO "X $fi
35160 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 22 20  nalize_deplibs" 
35170 7c 20 24 58 73 65 64 20 2d 65 20 27 73 25 20 5c  | $Xsed -e 's% \
35180 28 5b 5e 20 24 5d 2a 5c 29 2e 6c 74 66 72 61 6d  ([^ $]*\).ltfram
35190 65 77 6f 72 6b 25 20 2d 66 72 61 6d 65 77 6f 72  ework% -framewor
351a0 6b 20 5c 31 25 67 27 60 0a 09 3b 3b 0a 20 20 20  k \1%g'`..;;.   
351b0 20 20 20 65 73 61 63 0a 0a 0a 20 20 20 20 20 20     esac...      
351c0 23 20 6d 6f 76 65 20 6c 69 62 72 61 72 79 20 73  # move library s
351d0 65 61 72 63 68 20 70 61 74 68 73 20 74 68 61 74  earch paths that
351e0 20 63 6f 69 6e 63 69 64 65 20 77 69 74 68 20 70   coincide with p
351f0 61 74 68 73 20 74 6f 20 6e 6f 74 20 79 65 74 0a  aths to not yet.
35200 20 20 20 20 20 20 23 20 69 6e 73 74 61 6c 6c 65        # installe
35210 64 20 6c 69 62 72 61 72 69 65 73 20 74 6f 20 74  d libraries to t
35220 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20  he beginning of 
35230 74 68 65 20 6c 69 62 72 61 72 79 20 73 65 61 72  the library sear
35240 63 68 20 6c 69 73 74 0a 20 20 20 20 20 20 6e 65  ch list.      ne
35250 77 5f 6c 69 62 73 3d 0a 20 20 20 20 20 20 66 6f  w_libs=.      fo
35260 72 20 70 61 74 68 20 69 6e 20 24 6e 6f 74 69 6e  r path in $notin
35270 73 74 5f 70 61 74 68 3b 20 64 6f 0a 09 63 61 73  st_path; do..cas
35280 65 20 22 20 24 6e 65 77 5f 6c 69 62 73 20 22 20  e " $new_libs " 
35290 69 6e 0a 09 2a 22 20 2d 4c 24 70 61 74 68 2f 24  in..*" -L$path/$
352a0 6f 62 6a 64 69 72 20 22 2a 29 20 3b 3b 0a 09 2a  objdir "*) ;;..*
352b0 29 0a 09 20 20 63 61 73 65 20 22 20 24 63 6f 6d  )..  case " $com
352c0 70 69 6c 65 5f 64 65 70 6c 69 62 73 20 22 20 69  pile_deplibs " i
352d0 6e 0a 09 20 20 2a 22 20 2d 4c 24 70 61 74 68 2f  n..  *" -L$path/
352e0 24 6f 62 6a 64 69 72 20 22 2a 29 0a 09 20 20 20  $objdir "*)..   
352f0 20 6e 65 77 5f 6c 69 62 73 3d 22 24 6e 65 77 5f   new_libs="$new_
35300 6c 69 62 73 20 2d 4c 24 70 61 74 68 2f 24 6f 62  libs -L$path/$ob
35310 6a 64 69 72 22 20 3b 3b 0a 09 20 20 65 73 61 63  jdir" ;;..  esac
35320 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a 20 20 20  ..  ;;..esac.   
35330 20 20 20 64 6f 6e 65 0a 20 20 20 20 20 20 66 6f     done.      fo
35340 72 20 64 65 70 6c 69 62 20 69 6e 20 24 63 6f 6d  r deplib in $com
35350 70 69 6c 65 5f 64 65 70 6c 69 62 73 3b 20 64 6f  pile_deplibs; do
35360 0a 09 63 61 73 65 20 24 64 65 70 6c 69 62 20 69  ..case $deplib i
35370 6e 0a 09 2d 4c 2a 29 0a 09 20 20 63 61 73 65 20  n..-L*)..  case 
35380 22 20 24 6e 65 77 5f 6c 69 62 73 20 22 20 69 6e  " $new_libs " in
35390 0a 09 20 20 2a 22 20 24 64 65 70 6c 69 62 20 22  ..  *" $deplib "
353a0 2a 29 20 3b 3b 0a 09 20 20 2a 29 20 6e 65 77 5f  *) ;;..  *) new_
353b0 6c 69 62 73 3d 22 24 6e 65 77 5f 6c 69 62 73 20  libs="$new_libs 
353c0 24 64 65 70 6c 69 62 22 20 3b 3b 0a 09 20 20 65  $deplib" ;;..  e
353d0 73 61 63 0a 09 20 20 3b 3b 0a 09 2a 29 20 6e 65  sac..  ;;..*) ne
353e0 77 5f 6c 69 62 73 3d 22 24 6e 65 77 5f 6c 69 62  w_libs="$new_lib
353f0 73 20 24 64 65 70 6c 69 62 22 20 3b 3b 0a 09 65  s $deplib" ;;..e
35400 73 61 63 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20  sac.      done. 
35410 20 20 20 20 20 63 6f 6d 70 69 6c 65 5f 64 65 70       compile_dep
35420 6c 69 62 73 3d 22 24 6e 65 77 5f 6c 69 62 73 22  libs="$new_libs"
35430 0a 0a 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65  ...      compile
35440 5f 63 6f 6d 6d 61 6e 64 3d 22 24 63 6f 6d 70 69  _command="$compi
35450 6c 65 5f 63 6f 6d 6d 61 6e 64 20 24 63 6f 6d 70  le_command $comp
35460 69 6c 65 5f 64 65 70 6c 69 62 73 22 0a 20 20 20  ile_deplibs".   
35470 20 20 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d     finalize_comm
35480 61 6e 64 3d 22 24 66 69 6e 61 6c 69 7a 65 5f 63  and="$finalize_c
35490 6f 6d 6d 61 6e 64 20 24 66 69 6e 61 6c 69 7a 65  ommand $finalize
354a0 5f 64 65 70 6c 69 62 73 22 0a 0a 20 20 20 20 20  _deplibs"..     
354b0 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 72 70   if test -n "$rp
354c0 61 74 68 24 78 72 70 61 74 68 22 3b 20 74 68 65  ath$xrpath"; the
354d0 6e 0a 09 23 20 49 66 20 74 68 65 20 75 73 65 72  n..# If the user
354e0 20 73 70 65 63 69 66 69 65 64 20 61 6e 79 20 72   specified any r
354f0 70 61 74 68 20 66 6c 61 67 73 2c 20 74 68 65 6e  path flags, then
35500 20 61 64 64 20 74 68 65 6d 2e 0a 09 66 6f 72 20   add them...for 
35510 6c 69 62 64 69 72 20 69 6e 20 24 72 70 61 74 68  libdir in $rpath
35520 20 24 78 72 70 61 74 68 3b 20 64 6f 0a 09 20 20   $xrpath; do..  
35530 23 20 54 68 69 73 20 69 73 20 74 68 65 20 6d 61  # This is the ma
35540 67 69 63 20 74 6f 20 75 73 65 20 2d 72 70 61 74  gic to use -rpat
35550 68 2e 0a 09 20 20 63 61 73 65 20 22 24 66 69 6e  h...  case "$fin
35560 61 6c 69 7a 65 5f 72 70 61 74 68 20 22 20 69 6e  alize_rpath " in
35570 0a 09 20 20 2a 22 20 24 6c 69 62 64 69 72 20 22  ..  *" $libdir "
35580 2a 29 20 3b 3b 0a 09 20 20 2a 29 20 66 69 6e 61  *) ;;..  *) fina
35590 6c 69 7a 65 5f 72 70 61 74 68 3d 22 24 66 69 6e  lize_rpath="$fin
355a0 61 6c 69 7a 65 5f 72 70 61 74 68 20 24 6c 69 62  alize_rpath $lib
355b0 64 69 72 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a  dir" ;;..  esac.
355c0 09 64 6f 6e 65 0a 20 20 20 20 20 20 66 69 0a 0a  .done.      fi..
355d0 20 20 20 20 20 20 23 20 4e 6f 77 20 68 61 72 64        # Now hard
355e0 63 6f 64 65 20 74 68 65 20 6c 69 62 72 61 72 79  code the library
355f0 20 70 61 74 68 73 0a 20 20 20 20 20 20 72 70 61   paths.      rpa
35600 74 68 3d 0a 20 20 20 20 20 20 68 61 72 64 63 6f  th=.      hardco
35610 64 65 5f 6c 69 62 64 69 72 73 3d 0a 20 20 20 20  de_libdirs=.    
35620 20 20 66 6f 72 20 6c 69 62 64 69 72 20 69 6e 20    for libdir in 
35630 24 63 6f 6d 70 69 6c 65 5f 72 70 61 74 68 20 24  $compile_rpath $
35640 66 69 6e 61 6c 69 7a 65 5f 72 70 61 74 68 3b 20  finalize_rpath; 
35650 64 6f 0a 09 69 66 20 74 65 73 74 20 2d 6e 20 22  do..if test -n "
35660 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72  $hardcode_libdir
35670 5f 66 6c 61 67 5f 73 70 65 63 22 3b 20 74 68 65  _flag_spec"; the
35680 6e 0a 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20  n..  if test -n 
35690 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69  "$hardcode_libdi
356a0 72 5f 73 65 70 61 72 61 74 6f 72 22 3b 20 74 68  r_separator"; th
356b0 65 6e 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  en..    if test 
356c0 2d 7a 20 22 24 68 61 72 64 63 6f 64 65 5f 6c 69  -z "$hardcode_li
356d0 62 64 69 72 73 22 3b 20 74 68 65 6e 0a 09 20 20  bdirs"; then..  
356e0 20 20 20 20 68 61 72 64 63 6f 64 65 5f 6c 69 62      hardcode_lib
356f0 64 69 72 73 3d 22 24 6c 69 62 64 69 72 22 0a 09  dirs="$libdir"..
35700 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20      else..      
35710 23 20 4a 75 73 74 20 61 63 63 75 6d 75 6c 61 74  # Just accumulat
35720 65 20 74 68 65 20 75 6e 69 71 75 65 20 6c 69 62  e the unique lib
35730 64 69 72 73 2e 0a 09 20 20 20 20 20 20 63 61 73  dirs...      cas
35740 65 20 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64  e $hardcode_libd
35750 69 72 5f 73 65 70 61 72 61 74 6f 72 24 68 61 72  ir_separator$har
35760 64 63 6f 64 65 5f 6c 69 62 64 69 72 73 24 68 61  dcode_libdirs$ha
35770 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f 73 65  rdcode_libdir_se
35780 70 61 72 61 74 6f 72 20 69 6e 0a 09 20 20 20 20  parator in..    
35790 20 20 2a 22 24 68 61 72 64 63 6f 64 65 5f 6c 69    *"$hardcode_li
357a0 62 64 69 72 5f 73 65 70 61 72 61 74 6f 72 24 6c  bdir_separator$l
357b0 69 62 64 69 72 24 68 61 72 64 63 6f 64 65 5f 6c  ibdir$hardcode_l
357c0 69 62 64 69 72 5f 73 65 70 61 72 61 74 6f 72 22  ibdir_separator"
357d0 2a 29 0a 09 09 3b 3b 0a 09 20 20 20 20 20 20 2a  *)...;;..      *
357e0 29 0a 09 09 68 61 72 64 63 6f 64 65 5f 6c 69 62  )...hardcode_lib
357f0 64 69 72 73 3d 22 24 68 61 72 64 63 6f 64 65 5f  dirs="$hardcode_
35800 6c 69 62 64 69 72 73 24 68 61 72 64 63 6f 64 65  libdirs$hardcode
35810 5f 6c 69 62 64 69 72 5f 73 65 70 61 72 61 74 6f  _libdir_separato
35820 72 24 6c 69 62 64 69 72 22 0a 09 09 3b 3b 0a 09  r$libdir"...;;..
35830 20 20 20 20 20 20 65 73 61 63 0a 09 20 20 20 20        esac..    
35840 66 69 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20  fi..  else..    
35850 65 76 61 6c 20 66 6c 61 67 3d 5c 22 24 68 61 72  eval flag=\"$har
35860 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f 66 6c 61  dcode_libdir_fla
35870 67 5f 73 70 65 63 5c 22 0a 09 20 20 20 20 72 70  g_spec\"..    rp
35880 61 74 68 3d 22 24 72 70 61 74 68 20 24 66 6c 61  ath="$rpath $fla
35890 67 22 0a 09 20 20 66 69 0a 09 65 6c 69 66 20 74  g"..  fi..elif t
358a0 65 73 74 20 2d 6e 20 22 24 72 75 6e 70 61 74 68  est -n "$runpath
358b0 5f 76 61 72 22 3b 20 74 68 65 6e 0a 09 20 20 63  _var"; then..  c
358c0 61 73 65 20 22 24 70 65 72 6d 5f 72 70 61 74 68  ase "$perm_rpath
358d0 20 22 20 69 6e 0a 09 20 20 2a 22 20 24 6c 69 62   " in..  *" $lib
358e0 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20 2a 29  dir "*) ;;..  *)
358f0 20 70 65 72 6d 5f 72 70 61 74 68 3d 22 24 70 65   perm_rpath="$pe
35900 72 6d 5f 72 70 61 74 68 20 24 6c 69 62 64 69 72  rm_rpath $libdir
35910 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 66 69  " ;;..  esac..fi
35920 0a 09 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a  ..case $host in.
35930 09 2a 2d 2a 2d 63 79 67 77 69 6e 2a 20 7c 20 2a  .*-*-cygwin* | *
35940 2d 2a 2d 6d 69 6e 67 77 2a 20 7c 20 2a 2d 2a 2d  -*-mingw* | *-*-
35950 70 77 33 32 2a 20 7c 20 2a 2d 2a 2d 6f 73 32 2a  pw32* | *-*-os2*
35960 20 7c 20 2a 2d 63 65 67 63 63 2a 29 0a 09 20 20   | *-cegcc*)..  
35970 74 65 73 74 62 69 6e 64 69 72 3d 60 24 7b 45 43  testbindir=`${EC
35980 48 4f 7d 20 22 24 6c 69 62 64 69 72 22 20 7c 20  HO} "$libdir" | 
35990 24 7b 53 45 44 7d 20 2d 65 20 27 73 2a 2f 6c 69  ${SED} -e 's*/li
359a0 62 24 2a 2f 62 69 6e 2a 27 60 0a 09 20 20 63 61  b$*/bin*'`..  ca
359b0 73 65 20 3a 24 64 6c 6c 73 65 61 72 63 68 70 61  se :$dllsearchpa
359c0 74 68 3a 20 69 6e 0a 09 20 20 2a 22 3a 24 6c 69  th: in..  *":$li
359d0 62 64 69 72 3a 22 2a 29 20 3b 3b 0a 09 20 20 3a  bdir:"*) ;;..  :
359e0 3a 29 20 64 6c 6c 73 65 61 72 63 68 70 61 74 68  :) dllsearchpath
359f0 3d 24 6c 69 62 64 69 72 3b 3b 0a 09 20 20 2a 29  =$libdir;;..  *)
35a00 20 64 6c 6c 73 65 61 72 63 68 70 61 74 68 3d 22   dllsearchpath="
35a10 24 64 6c 6c 73 65 61 72 63 68 70 61 74 68 3a 24  $dllsearchpath:$
35a20 6c 69 62 64 69 72 22 3b 3b 0a 09 20 20 65 73 61  libdir";;..  esa
35a30 63 0a 09 20 20 63 61 73 65 20 3a 24 64 6c 6c 73  c..  case :$dlls
35a40 65 61 72 63 68 70 61 74 68 3a 20 69 6e 0a 09 20  earchpath: in.. 
35a50 20 2a 22 3a 24 74 65 73 74 62 69 6e 64 69 72 3a   *":$testbindir:
35a60 22 2a 29 20 3b 3b 0a 09 20 20 3a 3a 29 20 64 6c  "*) ;;..  ::) dl
35a70 6c 73 65 61 72 63 68 70 61 74 68 3d 24 74 65 73  lsearchpath=$tes
35a80 74 62 69 6e 64 69 72 3b 3b 0a 09 20 20 2a 29 20  tbindir;;..  *) 
35a90 64 6c 6c 73 65 61 72 63 68 70 61 74 68 3d 22 24  dllsearchpath="$
35aa0 64 6c 6c 73 65 61 72 63 68 70 61 74 68 3a 24 74  dllsearchpath:$t
35ab0 65 73 74 62 69 6e 64 69 72 22 3b 3b 0a 09 20 20  estbindir";;..  
35ac0 65 73 61 63 0a 09 20 20 3b 3b 0a 09 65 73 61 63  esac..  ;;..esac
35ad0 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20 20 20 20  .      done.    
35ae0 20 20 23 20 53 75 62 73 74 69 74 75 74 65 20 74    # Substitute t
35af0 68 65 20 68 61 72 64 63 6f 64 65 64 20 6c 69 62  he hardcoded lib
35b00 64 69 72 73 20 69 6e 74 6f 20 74 68 65 20 72 70  dirs into the rp
35b10 61 74 68 2e 0a 20 20 20 20 20 20 69 66 20 74 65  ath..      if te
35b20 73 74 20 2d 6e 20 22 24 68 61 72 64 63 6f 64 65  st -n "$hardcode
35b30 5f 6c 69 62 64 69 72 5f 73 65 70 61 72 61 74 6f  _libdir_separato
35b40 72 22 20 26 26 0a 09 20 74 65 73 74 20 2d 6e 20  r" &&.. test -n 
35b50 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69  "$hardcode_libdi
35b60 72 73 22 3b 20 74 68 65 6e 0a 09 6c 69 62 64 69  rs"; then..libdi
35b70 72 3d 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62  r="$hardcode_lib
35b80 64 69 72 73 22 0a 09 65 76 61 6c 20 72 70 61 74  dirs"..eval rpat
35b90 68 3d 5c 22 20 24 68 61 72 64 63 6f 64 65 5f 6c  h=\" $hardcode_l
35ba0 69 62 64 69 72 5f 66 6c 61 67 5f 73 70 65 63 5c  ibdir_flag_spec\
35bb0 22 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20  ".      fi.     
35bc0 20 63 6f 6d 70 69 6c 65 5f 72 70 61 74 68 3d 22   compile_rpath="
35bd0 24 72 70 61 74 68 22 0a 0a 20 20 20 20 20 20 72  $rpath"..      r
35be0 70 61 74 68 3d 0a 20 20 20 20 20 20 68 61 72 64  path=.      hard
35bf0 63 6f 64 65 5f 6c 69 62 64 69 72 73 3d 0a 20 20  code_libdirs=.  
35c00 20 20 20 20 66 6f 72 20 6c 69 62 64 69 72 20 69      for libdir i
35c10 6e 20 24 66 69 6e 61 6c 69 7a 65 5f 72 70 61 74  n $finalize_rpat
35c20 68 3b 20 64 6f 0a 09 69 66 20 74 65 73 74 20 2d  h; do..if test -
35c30 6e 20 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62  n "$hardcode_lib
35c40 64 69 72 5f 66 6c 61 67 5f 73 70 65 63 22 3b 20  dir_flag_spec"; 
35c50 74 68 65 6e 0a 09 20 20 69 66 20 74 65 73 74 20  then..  if test 
35c60 2d 6e 20 22 24 68 61 72 64 63 6f 64 65 5f 6c 69  -n "$hardcode_li
35c70 62 64 69 72 5f 73 65 70 61 72 61 74 6f 72 22 3b  bdir_separator";
35c80 20 74 68 65 6e 0a 09 20 20 20 20 69 66 20 74 65   then..    if te
35c90 73 74 20 2d 7a 20 22 24 68 61 72 64 63 6f 64 65  st -z "$hardcode
35ca0 5f 6c 69 62 64 69 72 73 22 3b 20 74 68 65 6e 0a  _libdirs"; then.
35cb0 09 20 20 20 20 20 20 68 61 72 64 63 6f 64 65 5f  .      hardcode_
35cc0 6c 69 62 64 69 72 73 3d 22 24 6c 69 62 64 69 72  libdirs="$libdir
35cd0 22 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20  "..    else..   
35ce0 20 20 20 23 20 4a 75 73 74 20 61 63 63 75 6d 75     # Just accumu
35cf0 6c 61 74 65 20 74 68 65 20 75 6e 69 71 75 65 20  late the unique 
35d00 6c 69 62 64 69 72 73 2e 0a 09 20 20 20 20 20 20  libdirs...      
35d10 63 61 73 65 20 24 68 61 72 64 63 6f 64 65 5f 6c  case $hardcode_l
35d20 69 62 64 69 72 5f 73 65 70 61 72 61 74 6f 72 24  ibdir_separator$
35d30 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 73  hardcode_libdirs
35d40 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72  $hardcode_libdir
35d50 5f 73 65 70 61 72 61 74 6f 72 20 69 6e 0a 09 20  _separator in.. 
35d60 20 20 20 20 20 2a 22 24 68 61 72 64 63 6f 64 65       *"$hardcode
35d70 5f 6c 69 62 64 69 72 5f 73 65 70 61 72 61 74 6f  _libdir_separato
35d80 72 24 6c 69 62 64 69 72 24 68 61 72 64 63 6f 64  r$libdir$hardcod
35d90 65 5f 6c 69 62 64 69 72 5f 73 65 70 61 72 61 74  e_libdir_separat
35da0 6f 72 22 2a 29 0a 09 09 3b 3b 0a 09 20 20 20 20  or"*)...;;..    
35db0 20 20 2a 29 0a 09 09 68 61 72 64 63 6f 64 65 5f    *)...hardcode_
35dc0 6c 69 62 64 69 72 73 3d 22 24 68 61 72 64 63 6f  libdirs="$hardco
35dd0 64 65 5f 6c 69 62 64 69 72 73 24 68 61 72 64 63  de_libdirs$hardc
35de0 6f 64 65 5f 6c 69 62 64 69 72 5f 73 65 70 61 72  ode_libdir_separ
35df0 61 74 6f 72 24 6c 69 62 64 69 72 22 0a 09 09 3b  ator$libdir"...;
35e00 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20  ;..      esac.. 
35e10 20 20 20 66 69 0a 09 20 20 65 6c 73 65 0a 09 20     fi..  else.. 
35e20 20 20 20 65 76 61 6c 20 66 6c 61 67 3d 5c 22 24     eval flag=\"$
35e30 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 5f  hardcode_libdir_
35e40 66 6c 61 67 5f 73 70 65 63 5c 22 0a 09 20 20 20  flag_spec\"..   
35e50 20 72 70 61 74 68 3d 22 24 72 70 61 74 68 20 24   rpath="$rpath $
35e60 66 6c 61 67 22 0a 09 20 20 66 69 0a 09 65 6c 69  flag"..  fi..eli
35e70 66 20 74 65 73 74 20 2d 6e 20 22 24 72 75 6e 70  f test -n "$runp
35e80 61 74 68 5f 76 61 72 22 3b 20 74 68 65 6e 0a 09  ath_var"; then..
35e90 20 20 63 61 73 65 20 22 24 66 69 6e 61 6c 69 7a    case "$finaliz
35ea0 65 5f 70 65 72 6d 5f 72 70 61 74 68 20 22 20 69  e_perm_rpath " i
35eb0 6e 0a 09 20 20 2a 22 20 24 6c 69 62 64 69 72 20  n..  *" $libdir 
35ec0 22 2a 29 20 3b 3b 0a 09 20 20 2a 29 20 66 69 6e  "*) ;;..  *) fin
35ed0 61 6c 69 7a 65 5f 70 65 72 6d 5f 72 70 61 74 68  alize_perm_rpath
35ee0 3d 22 24 66 69 6e 61 6c 69 7a 65 5f 70 65 72 6d  ="$finalize_perm
35ef0 5f 72 70 61 74 68 20 24 6c 69 62 64 69 72 22 20  _rpath $libdir" 
35f00 3b 3b 0a 09 20 20 65 73 61 63 0a 09 66 69 0a 20  ;;..  esac..fi. 
35f10 20 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 20 20       done.      
35f20 23 20 53 75 62 73 74 69 74 75 74 65 20 74 68 65  # Substitute the
35f30 20 68 61 72 64 63 6f 64 65 64 20 6c 69 62 64 69   hardcoded libdi
35f40 72 73 20 69 6e 74 6f 20 74 68 65 20 72 70 61 74  rs into the rpat
35f50 68 2e 0a 20 20 20 20 20 20 69 66 20 74 65 73 74  h..      if test
35f60 20 2d 6e 20 22 24 68 61 72 64 63 6f 64 65 5f 6c   -n "$hardcode_l
35f70 69 62 64 69 72 5f 73 65 70 61 72 61 74 6f 72 22  ibdir_separator"
35f80 20 26 26 0a 09 20 74 65 73 74 20 2d 6e 20 22 24   &&.. test -n "$
35f90 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69 72 73  hardcode_libdirs
35fa0 22 3b 20 74 68 65 6e 0a 09 6c 69 62 64 69 72 3d  "; then..libdir=
35fb0 22 24 68 61 72 64 63 6f 64 65 5f 6c 69 62 64 69  "$hardcode_libdi
35fc0 72 73 22 0a 09 65 76 61 6c 20 72 70 61 74 68 3d  rs"..eval rpath=
35fd0 5c 22 20 24 68 61 72 64 63 6f 64 65 5f 6c 69 62  \" $hardcode_lib
35fe0 64 69 72 5f 66 6c 61 67 5f 73 70 65 63 5c 22 0a  dir_flag_spec\".
35ff0 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 66        fi.      f
36000 69 6e 61 6c 69 7a 65 5f 72 70 61 74 68 3d 22 24  inalize_rpath="$
36010 72 70 61 74 68 22 0a 0a 20 20 20 20 20 20 69 66  rpath"..      if
36020 20 74 65 73 74 20 2d 6e 20 22 24 6c 69 62 6f 62   test -n "$libob
36030 6a 73 22 20 26 26 20 74 65 73 74 20 22 24 62 75  js" && test "$bu
36040 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d 20  ild_old_libs" = 
36050 79 65 73 3b 20 74 68 65 6e 0a 09 23 20 54 72 61  yes; then..# Tra
36060 6e 73 66 6f 72 6d 20 61 6c 6c 20 74 68 65 20 6c  nsform all the l
36070 69 62 72 61 72 79 20 6f 62 6a 65 63 74 73 20 69  ibrary objects i
36080 6e 74 6f 20 73 74 61 6e 64 61 72 64 20 6f 62 6a  nto standard obj
36090 65 63 74 73 2e 0a 09 63 6f 6d 70 69 6c 65 5f 63  ects...compile_c
360a0 6f 6d 6d 61 6e 64 3d 60 24 45 43 48 4f 20 22 58  ommand=`$ECHO "X
360b0 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64  $compile_command
360c0 22 20 7c 20 24 53 50 32 4e 4c 20 7c 20 24 58 73  " | $SP2NL | $Xs
360d0 65 64 20 2d 65 20 22 24 6c 6f 32 6f 22 20 7c 20  ed -e "$lo2o" | 
360e0 24 4e 4c 32 53 50 60 0a 09 66 69 6e 61 6c 69 7a  $NL2SP`..finaliz
360f0 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45 43 48 4f  e_command=`$ECHO
36100 20 22 58 24 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d   "X$finalize_com
36110 6d 61 6e 64 22 20 7c 20 24 53 50 32 4e 4c 20 7c  mand" | $SP2NL |
36120 20 24 58 73 65 64 20 2d 65 20 22 24 6c 6f 32 6f   $Xsed -e "$lo2o
36130 22 20 7c 20 24 4e 4c 32 53 50 60 0a 20 20 20 20  " | $NL2SP`.    
36140 20 20 66 69 0a 0a 20 20 20 20 20 20 66 75 6e 63    fi..      func
36150 5f 67 65 6e 65 72 61 74 65 5f 64 6c 73 79 6d 73  _generate_dlsyms
36160 20 22 24 6f 75 74 70 75 74 6e 61 6d 65 22 20 22   "$outputname" "
36170 40 50 52 4f 47 52 41 4d 40 22 20 22 6e 6f 22 0a  @PROGRAM@" "no".
36180 0a 20 20 20 20 20 20 23 20 74 65 6d 70 6c 61 74  .      # templat
36190 65 20 70 72 65 6c 69 6e 6b 69 6e 67 20 73 74 65  e prelinking ste
361a0 70 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  p.      if test 
361b0 2d 6e 20 22 24 70 72 65 6c 69 6e 6b 5f 63 6d 64  -n "$prelink_cmd
361c0 73 22 3b 20 74 68 65 6e 0a 09 66 75 6e 63 5f 65  s"; then..func_e
361d0 78 65 63 75 74 65 5f 63 6d 64 73 20 22 24 70 72  xecute_cmds "$pr
361e0 65 6c 69 6e 6b 5f 63 6d 64 73 22 20 27 65 78 69  elink_cmds" 'exi
361f0 74 20 24 3f 27 0a 20 20 20 20 20 20 66 69 0a 0a  t $?'.      fi..
36200 20 20 20 20 20 20 77 72 61 70 70 65 72 73 5f 72        wrappers_r
36210 65 71 75 69 72 65 64 3d 79 65 73 0a 20 20 20 20  equired=yes.    
36220 20 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a    case $host in.
36230 20 20 20 20 20 20 2a 63 79 67 77 69 6e 2a 20 7c        *cygwin* |
36240 20 2a 6d 69 6e 67 77 2a 20 29 0a 20 20 20 20 20   *mingw* ).     
36250 20 20 20 69 66 20 74 65 73 74 20 22 24 62 75 69     if test "$bui
36260 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22  ld_libtool_libs"
36270 20 21 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20   != yes; then.  
36280 20 20 20 20 20 20 20 20 77 72 61 70 70 65 72 73          wrappers
36290 5f 72 65 71 75 69 72 65 64 3d 6e 6f 0a 20 20 20  _required=no.   
362a0 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 20 20       fi.        
362b0 3b 3b 0a 20 20 20 20 20 20 2a 63 65 67 63 63 29  ;;.      *cegcc)
362c0 0a 20 20 20 20 20 20 20 20 23 20 44 69 73 61 62  .        # Disab
362d0 6c 65 20 77 72 61 70 70 65 72 73 20 66 6f 72 20  le wrappers for 
362e0 63 65 67 63 63 2c 20 77 65 20 61 72 65 20 63 72  cegcc, we are cr
362f0 6f 73 73 20 63 6f 6d 70 69 6c 69 6e 67 20 61 6e  oss compiling an
36300 79 77 61 79 2e 0a 20 20 20 20 20 20 20 20 77 72  yway..        wr
36310 61 70 70 65 72 73 5f 72 65 71 75 69 72 65 64 3d  appers_required=
36320 6e 6f 0a 20 20 20 20 20 20 20 20 3b 3b 0a 20 20  no.        ;;.  
36330 20 20 20 20 2a 29 0a 20 20 20 20 20 20 20 20 69      *).        i
36340 66 20 74 65 73 74 20 22 24 6e 65 65 64 5f 72 65  f test "$need_re
36350 6c 69 6e 6b 22 20 3d 20 6e 6f 20 7c 7c 20 74 65  link" = no || te
36360 73 74 20 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f  st "$build_libto
36370 6f 6c 5f 6c 69 62 73 22 20 21 3d 20 79 65 73 3b  ol_libs" != yes;
36380 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20   then.          
36390 77 72 61 70 70 65 72 73 5f 72 65 71 75 69 72 65  wrappers_require
363a0 64 3d 6e 6f 0a 20 20 20 20 20 20 20 20 66 69 0a  d=no.        fi.
363b0 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20          ;;.     
363c0 20 65 73 61 63 0a 20 20 20 20 20 20 69 66 20 74   esac.      if t
363d0 65 73 74 20 22 24 77 72 61 70 70 65 72 73 5f 72  est "$wrappers_r
363e0 65 71 75 69 72 65 64 22 20 3d 20 6e 6f 3b 20 74  equired" = no; t
363f0 68 65 6e 0a 09 23 20 52 65 70 6c 61 63 65 20 74  hen..# Replace t
36400 68 65 20 6f 75 74 70 75 74 20 66 69 6c 65 20 73  he output file s
36410 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 0a 09 63  pecification...c
36420 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 3d 60  ompile_command=`
36430 24 45 43 48 4f 20 22 58 24 63 6f 6d 70 69 6c 65  $ECHO "X$compile
36440 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 58 73 65  _command" | $Xse
36450 64 20 2d 65 20 27 73 25 40 4f 55 54 50 55 54 40  d -e 's%@OUTPUT@
36460 25 27 22 24 6f 75 74 70 75 74 22 27 25 67 27 60  %'"$output"'%g'`
36470 0a 09 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 22  ..link_command="
36480 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64  $compile_command
36490 24 63 6f 6d 70 69 6c 65 5f 72 70 61 74 68 22 0a  $compile_rpath".
364a0 0a 09 23 20 57 65 20 68 61 76 65 20 6e 6f 20 75  ..# We have no u
364b0 6e 69 6e 73 74 61 6c 6c 65 64 20 6c 69 62 72 61  ninstalled libra
364c0 72 79 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2c  ry dependencies,
364d0 20 73 6f 20 66 69 6e 61 6c 69 7a 65 20 72 69 67   so finalize rig
364e0 68 74 20 6e 6f 77 2e 0a 09 65 78 69 74 5f 73 74  ht now...exit_st
364f0 61 74 75 73 3d 30 0a 09 66 75 6e 63 5f 73 68 6f  atus=0..func_sho
36500 77 5f 65 76 61 6c 20 22 24 6c 69 6e 6b 5f 63 6f  w_eval "$link_co
36510 6d 6d 61 6e 64 22 20 27 65 78 69 74 5f 73 74 61  mmand" 'exit_sta
36520 74 75 73 3d 24 3f 27 0a 0a 09 23 20 44 65 6c 65  tus=$?'...# Dele
36530 74 65 20 74 68 65 20 67 65 6e 65 72 61 74 65 64  te the generated
36540 20 66 69 6c 65 73 2e 0a 09 69 66 20 74 65 73 74   files...if test
36550 20 2d 66 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a   -f "$output_obj
36560 64 69 72 2f 24 7b 6f 75 74 70 75 74 6e 61 6d 65  dir/${outputname
36570 7d 53 2e 24 7b 6f 62 6a 65 78 74 7d 22 3b 20 74  }S.${objext}"; t
36580 68 65 6e 0a 09 20 20 66 75 6e 63 5f 73 68 6f 77  hen..  func_show
36590 5f 65 76 61 6c 20 27 24 52 4d 20 22 24 6f 75 74  _eval '$RM "$out
365a0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 7b 6f 75 74  put_objdir/${out
365b0 70 75 74 6e 61 6d 65 7d 53 2e 24 7b 6f 62 6a 65  putname}S.${obje
365c0 78 74 7d 22 27 0a 09 66 69 0a 0a 09 65 78 69 74  xt}"'..fi...exit
365d0 20 24 65 78 69 74 5f 73 74 61 74 75 73 0a 20 20   $exit_status.  
365e0 20 20 20 20 66 69 0a 0a 20 20 20 20 20 20 69 66      fi..      if
365f0 20 74 65 73 74 20 2d 6e 20 22 24 63 6f 6d 70 69   test -n "$compi
36600 6c 65 5f 73 68 6c 69 62 70 61 74 68 24 66 69 6e  le_shlibpath$fin
36610 61 6c 69 7a 65 5f 73 68 6c 69 62 70 61 74 68 22  alize_shlibpath"
36620 3b 20 74 68 65 6e 0a 09 63 6f 6d 70 69 6c 65 5f  ; then..compile_
36630 63 6f 6d 6d 61 6e 64 3d 22 24 73 68 6c 69 62 70  command="$shlibp
36640 61 74 68 5f 76 61 72 3d 5c 22 24 63 6f 6d 70 69  ath_var=\"$compi
36650 6c 65 5f 73 68 6c 69 62 70 61 74 68 24 66 69 6e  le_shlibpath$fin
36660 61 6c 69 7a 65 5f 73 68 6c 69 62 70 61 74 68 5c  alize_shlibpath\
36670 24 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72 5c  $$shlibpath_var\
36680 22 20 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61  " $compile_comma
36690 6e 64 22 0a 20 20 20 20 20 20 66 69 0a 20 20 20  nd".      fi.   
366a0 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
366b0 66 69 6e 61 6c 69 7a 65 5f 73 68 6c 69 62 70 61  finalize_shlibpa
366c0 74 68 22 3b 20 74 68 65 6e 0a 09 66 69 6e 61 6c  th"; then..final
366d0 69 7a 65 5f 63 6f 6d 6d 61 6e 64 3d 22 24 73 68  ize_command="$sh
366e0 6c 69 62 70 61 74 68 5f 76 61 72 3d 5c 22 24 66  libpath_var=\"$f
366f0 69 6e 61 6c 69 7a 65 5f 73 68 6c 69 62 70 61 74  inalize_shlibpat
36700 68 5c 24 24 73 68 6c 69 62 70 61 74 68 5f 76 61  h\$$shlibpath_va
36710 72 5c 22 20 24 66 69 6e 61 6c 69 7a 65 5f 63 6f  r\" $finalize_co
36720 6d 6d 61 6e 64 22 0a 20 20 20 20 20 20 66 69 0a  mmand".      fi.
36730 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 5f 76  .      compile_v
36740 61 72 3d 0a 20 20 20 20 20 20 66 69 6e 61 6c 69  ar=.      finali
36750 7a 65 5f 76 61 72 3d 0a 20 20 20 20 20 20 69 66  ze_var=.      if
36760 20 74 65 73 74 20 2d 6e 20 22 24 72 75 6e 70 61   test -n "$runpa
36770 74 68 5f 76 61 72 22 3b 20 74 68 65 6e 0a 09 69  th_var"; then..i
36780 66 20 74 65 73 74 20 2d 6e 20 22 24 70 65 72 6d  f test -n "$perm
36790 5f 72 70 61 74 68 22 3b 20 74 68 65 6e 0a 09 20  _rpath"; then.. 
367a0 20 23 20 57 65 20 73 68 6f 75 6c 64 20 73 65 74   # We should set
367b0 20 74 68 65 20 72 75 6e 70 61 74 68 5f 76 61 72   the runpath_var
367c0 2e 0a 09 20 20 72 70 61 74 68 3d 0a 09 20 20 66  ...  rpath=..  f
367d0 6f 72 20 64 69 72 20 69 6e 20 24 70 65 72 6d 5f  or dir in $perm_
367e0 72 70 61 74 68 3b 20 64 6f 0a 09 20 20 20 20 72  rpath; do..    r
367f0 70 61 74 68 3d 22 24 72 70 61 74 68 24 64 69 72  path="$rpath$dir
36800 3a 22 0a 09 20 20 64 6f 6e 65 0a 09 20 20 63 6f  :"..  done..  co
36810 6d 70 69 6c 65 5f 76 61 72 3d 22 24 72 75 6e 70  mpile_var="$runp
36820 61 74 68 5f 76 61 72 3d 5c 22 24 72 70 61 74 68  ath_var=\"$rpath
36830 5c 24 24 72 75 6e 70 61 74 68 5f 76 61 72 5c 22  \$$runpath_var\"
36840 20 22 0a 09 66 69 0a 09 69 66 20 74 65 73 74 20   "..fi..if test 
36850 2d 6e 20 22 24 66 69 6e 61 6c 69 7a 65 5f 70 65  -n "$finalize_pe
36860 72 6d 5f 72 70 61 74 68 22 3b 20 74 68 65 6e 0a  rm_rpath"; then.
36870 09 20 20 23 20 57 65 20 73 68 6f 75 6c 64 20 73  .  # We should s
36880 65 74 20 74 68 65 20 72 75 6e 70 61 74 68 5f 76  et the runpath_v
36890 61 72 2e 0a 09 20 20 72 70 61 74 68 3d 0a 09 20  ar...  rpath=.. 
368a0 20 66 6f 72 20 64 69 72 20 69 6e 20 24 66 69 6e   for dir in $fin
368b0 61 6c 69 7a 65 5f 70 65 72 6d 5f 72 70 61 74 68  alize_perm_rpath
368c0 3b 20 64 6f 0a 09 20 20 20 20 72 70 61 74 68 3d  ; do..    rpath=
368d0 22 24 72 70 61 74 68 24 64 69 72 3a 22 0a 09 20  "$rpath$dir:".. 
368e0 20 64 6f 6e 65 0a 09 20 20 66 69 6e 61 6c 69 7a   done..  finaliz
368f0 65 5f 76 61 72 3d 22 24 72 75 6e 70 61 74 68 5f  e_var="$runpath_
36900 76 61 72 3d 5c 22 24 72 70 61 74 68 5c 24 24 72  var=\"$rpath\$$r
36910 75 6e 70 61 74 68 5f 76 61 72 5c 22 20 22 0a 09  unpath_var\" "..
36920 66 69 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20  fi.      fi..   
36930 20 20 20 69 66 20 74 65 73 74 20 22 24 6e 6f 5f     if test "$no_
36940 69 6e 73 74 61 6c 6c 22 20 3d 20 79 65 73 3b 20  install" = yes; 
36950 74 68 65 6e 0a 09 23 20 57 65 20 64 6f 6e 27 74  then..# We don't
36960 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 65 20   need to create 
36970 61 20 77 72 61 70 70 65 72 20 73 63 72 69 70 74  a wrapper script
36980 2e 0a 09 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d  ...link_command=
36990 22 24 63 6f 6d 70 69 6c 65 5f 76 61 72 24 63 6f  "$compile_var$co
369a0 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 24 63 6f  mpile_command$co
369b0 6d 70 69 6c 65 5f 72 70 61 74 68 22 0a 09 23 20  mpile_rpath"..# 
369c0 52 65 70 6c 61 63 65 20 74 68 65 20 6f 75 74 70  Replace the outp
369d0 75 74 20 66 69 6c 65 20 73 70 65 63 69 66 69 63  ut file specific
369e0 61 74 69 6f 6e 2e 0a 09 6c 69 6e 6b 5f 63 6f 6d  ation...link_com
369f0 6d 61 6e 64 3d 60 24 45 43 48 4f 20 22 58 24 6c  mand=`$ECHO "X$l
36a00 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20 24  ink_command" | $
36a10 58 73 65 64 20 2d 65 20 27 73 25 40 4f 55 54 50  Xsed -e 's%@OUTP
36a20 55 54 40 25 27 22 24 6f 75 74 70 75 74 22 27 25  UT@%'"$output"'%
36a30 67 27 60 0a 09 23 20 44 65 6c 65 74 65 20 74 68  g'`..# Delete th
36a40 65 20 6f 6c 64 20 6f 75 74 70 75 74 20 66 69 6c  e old output fil
36a50 65 2e 0a 09 24 6f 70 74 5f 64 72 79 5f 72 75 6e  e...$opt_dry_run
36a60 20 7c 7c 20 24 52 4d 20 24 6f 75 74 70 75 74 0a   || $RM $output.
36a70 09 23 20 4c 69 6e 6b 20 74 68 65 20 65 78 65 63  .# Link the exec
36a80 75 74 61 62 6c 65 20 61 6e 64 20 65 78 69 74 0a  utable and exit.
36a90 09 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20  .func_show_eval 
36aa0 22 24 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 20  "$link_command" 
36ab0 27 65 78 69 74 20 24 3f 27 0a 09 65 78 69 74 20  'exit $?'..exit 
36ac0 24 45 58 49 54 5f 53 55 43 43 45 53 53 0a 20 20  $EXIT_SUCCESS.  
36ad0 20 20 20 20 66 69 0a 0a 20 20 20 20 20 20 69 66      fi..      if
36ae0 20 74 65 73 74 20 22 24 68 61 72 64 63 6f 64 65   test "$hardcode
36af0 5f 61 63 74 69 6f 6e 22 20 3d 20 72 65 6c 69 6e  _action" = relin
36b00 6b 3b 20 74 68 65 6e 0a 09 23 20 46 61 73 74 20  k; then..# Fast 
36b10 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 69 73 20  installation is 
36b20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 0a 09 6c  not supported..l
36b30 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 22 24 63 6f  ink_command="$co
36b40 6d 70 69 6c 65 5f 76 61 72 24 63 6f 6d 70 69 6c  mpile_var$compil
36b50 65 5f 63 6f 6d 6d 61 6e 64 24 63 6f 6d 70 69 6c  e_command$compil
36b60 65 5f 72 70 61 74 68 22 0a 09 72 65 6c 69 6e 6b  e_rpath"..relink
36b70 5f 63 6f 6d 6d 61 6e 64 3d 22 24 66 69 6e 61 6c  _command="$final
36b80 69 7a 65 5f 76 61 72 24 66 69 6e 61 6c 69 7a 65  ize_var$finalize
36b90 5f 63 6f 6d 6d 61 6e 64 24 66 69 6e 61 6c 69 7a  _command$finaliz
36ba0 65 5f 72 70 61 74 68 22 0a 0a 09 66 75 6e 63 5f  e_rpath"...func_
36bb0 77 61 72 6e 69 6e 67 20 22 74 68 69 73 20 70 6c  warning "this pl
36bc0 61 74 66 6f 72 6d 20 64 6f 65 73 20 6e 6f 74 20  atform does not 
36bd0 6c 69 6b 65 20 75 6e 69 6e 73 74 61 6c 6c 65 64  like uninstalled
36be0 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 69 65   shared librarie
36bf0 73 22 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67  s"..func_warning
36c00 20 22 5c 60 24 6f 75 74 70 75 74 27 20 77 69 6c   "\`$output' wil
36c10 6c 20 62 65 20 72 65 6c 69 6e 6b 65 64 20 64 75  l be relinked du
36c20 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f  ring installatio
36c30 6e 22 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 69  n".      else..i
36c40 66 20 74 65 73 74 20 22 24 66 61 73 74 5f 69 6e  f test "$fast_in
36c50 73 74 61 6c 6c 22 20 21 3d 20 6e 6f 3b 20 74 68  stall" != no; th
36c60 65 6e 0a 09 20 20 6c 69 6e 6b 5f 63 6f 6d 6d 61  en..  link_comma
36c70 6e 64 3d 22 24 66 69 6e 61 6c 69 7a 65 5f 76 61  nd="$finalize_va
36c80 72 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e  r$compile_comman
36c90 64 24 66 69 6e 61 6c 69 7a 65 5f 72 70 61 74 68  d$finalize_rpath
36ca0 22 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 66  "..  if test "$f
36cb0 61 73 74 5f 69 6e 73 74 61 6c 6c 22 20 3d 20 79  ast_install" = y
36cc0 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20 72 65  es; then..    re
36cd0 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45  link_command=`$E
36ce0 43 48 4f 20 22 58 24 63 6f 6d 70 69 6c 65 5f 76  CHO "X$compile_v
36cf0 61 72 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61  ar$compile_comma
36d00 6e 64 24 63 6f 6d 70 69 6c 65 5f 72 70 61 74 68  nd$compile_rpath
36d10 22 20 7c 20 24 58 73 65 64 20 2d 65 20 27 73 25  " | $Xsed -e 's%
36d20 40 4f 55 54 50 55 54 40 25 5c 24 70 72 6f 67 64  @OUTPUT@%\$progd
36d30 69 72 2f 5c 24 66 69 6c 65 25 67 27 60 0a 09 20  ir/\$file%g'`.. 
36d40 20 65 6c 73 65 0a 09 20 20 20 20 23 20 66 61 73   else..    # fas
36d50 74 5f 69 6e 73 74 61 6c 6c 20 69 73 20 73 65 74  t_install is set
36d60 20 74 6f 20 6e 65 65 64 6c 65 73 73 0a 09 20 20   to needless..  
36d70 20 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64    relink_command
36d80 3d 0a 09 20 20 66 69 0a 09 65 6c 73 65 0a 09 20  =..  fi..else.. 
36d90 20 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 22 24   link_command="$
36da0 63 6f 6d 70 69 6c 65 5f 76 61 72 24 63 6f 6d 70  compile_var$comp
36db0 69 6c 65 5f 63 6f 6d 6d 61 6e 64 24 63 6f 6d 70  ile_command$comp
36dc0 69 6c 65 5f 72 70 61 74 68 22 0a 09 20 20 72 65  ile_rpath"..  re
36dd0 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 22 24 66  link_command="$f
36de0 69 6e 61 6c 69 7a 65 5f 76 61 72 24 66 69 6e 61  inalize_var$fina
36df0 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 24 66 69 6e  lize_command$fin
36e00 61 6c 69 7a 65 5f 72 70 61 74 68 22 0a 09 66 69  alize_rpath"..fi
36e10 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20 20 20  .      fi..     
36e20 20 23 20 52 65 70 6c 61 63 65 20 74 68 65 20 6f   # Replace the o
36e30 75 74 70 75 74 20 66 69 6c 65 20 73 70 65 63 69  utput file speci
36e40 66 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20  fication..      
36e50 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45  link_command=`$E
36e60 43 48 4f 20 22 58 24 6c 69 6e 6b 5f 63 6f 6d 6d  CHO "X$link_comm
36e70 61 6e 64 22 20 7c 20 24 58 73 65 64 20 2d 65 20  and" | $Xsed -e 
36e80 27 73 25 40 4f 55 54 50 55 54 40 25 27 22 24 6f  's%@OUTPUT@%'"$o
36e90 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6f 75  utput_objdir/$ou
36ea0 74 70 75 74 6e 61 6d 65 22 27 25 67 27 60 0a 0a  tputname"'%g'`..
36eb0 20 20 20 20 20 20 23 20 44 65 6c 65 74 65 20 74        # Delete t
36ec0 68 65 20 6f 6c 64 20 6f 75 74 70 75 74 20 66 69  he old output fi
36ed0 6c 65 73 2e 0a 20 20 20 20 20 20 24 6f 70 74 5f  les..      $opt_
36ee0 64 72 79 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 24  dry_run || $RM $
36ef0 6f 75 74 70 75 74 20 24 6f 75 74 70 75 74 5f 6f  output $output_o
36f00 62 6a 64 69 72 2f 24 6f 75 74 70 75 74 6e 61 6d  bjdir/$outputnam
36f10 65 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72  e $output_objdir
36f20 2f 6c 74 2d 24 6f 75 74 70 75 74 6e 61 6d 65 0a  /lt-$outputname.
36f30 0a 20 20 20 20 20 20 66 75 6e 63 5f 73 68 6f 77  .      func_show
36f40 5f 65 76 61 6c 20 22 24 6c 69 6e 6b 5f 63 6f 6d  _eval "$link_com
36f50 6d 61 6e 64 22 20 27 65 78 69 74 20 24 3f 27 0a  mand" 'exit $?'.
36f60 0a 20 20 20 20 20 20 23 20 4e 6f 77 20 63 72 65  .      # Now cre
36f70 61 74 65 20 74 68 65 20 77 72 61 70 70 65 72 20  ate the wrapper 
36f80 73 63 72 69 70 74 2e 0a 20 20 20 20 20 20 66 75  script..      fu
36f90 6e 63 5f 76 65 72 62 6f 73 65 20 22 63 72 65 61  nc_verbose "crea
36fa0 74 69 6e 67 20 24 6f 75 74 70 75 74 22 0a 0a 20  ting $output".. 
36fb0 20 20 20 20 20 23 20 51 75 6f 74 65 20 74 68 65       # Quote the
36fc0 20 72 65 6c 69 6e 6b 20 63 6f 6d 6d 61 6e 64 20