/ Hex Artifact Content
Login

Artifact 7a658a24028f02331c1d2446562758083c5eadd1:


0000: 0a 23 20 6c 69 62 74 6f 6f 6c 20 28 47 4e 55 20  .# libtool (GNU 
0010: 6c 69 62 74 6f 6f 6c 29 20 32 2e 34 2e 32 0a 23  libtool) 2.4.2.#
0020: 20 57 72 69 74 74 65 6e 20 62 79 20 47 6f 72 64   Written by Gord
0030: 6f 6e 20 4d 61 74 7a 69 67 6b 65 69 74 20 3c 67  on Matzigkeit <g
0040: 6f 72 64 40 67 6e 75 2e 61 69 2e 6d 69 74 2e 65  ord@gnu.ai.mit.e
0050: 64 75 3e 2c 20 31 39 39 36 0a 0a 23 20 43 6f 70  du>, 1996..# Cop
0060: 79 72 69 67 68 74 20 28 43 29 20 31 39 39 36 2c  yright (C) 1996,
0070: 20 31 39 39 37 2c 20 31 39 39 38 2c 20 31 39 39   1997, 1998, 199
0080: 39 2c 20 32 30 30 30 2c 20 32 30 30 31 2c 20 32  9, 2000, 2001, 2
0090: 30 30 33 2c 20 32 30 30 34 2c 20 32 30 30 35 2c  003, 2004, 2005,
00a0: 20 32 30 30 36 2c 0a 23 20 32 30 30 37 2c 20 32   2006,.# 2007, 2
00b0: 30 30 38 2c 20 32 30 30 39 2c 20 32 30 31 30 2c  008, 2009, 2010,
00c0: 20 32 30 31 31 20 46 72 65 65 20 53 6f 66 74 77   2011 Free Softw
00d0: 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20  are Foundation, 
00e0: 49 6e 63 2e 0a 23 20 54 68 69 73 20 69 73 20 66  Inc..# This is f
00f0: 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 73 65  ree software; se
0100: 65 20 74 68 65 20 73 6f 75 72 63 65 20 66 6f 72  e the source for
0110: 20 63 6f 70 79 69 6e 67 20 63 6f 6e 64 69 74 69   copying conditi
0120: 6f 6e 73 2e 20 20 54 68 65 72 65 20 69 73 20 4e  ons.  There is N
0130: 4f 0a 23 20 77 61 72 72 61 6e 74 79 3b 20 6e 6f  O.# warranty; no
0140: 74 20 65 76 65 6e 20 66 6f 72 20 4d 45 52 43 48  t even for MERCH
0150: 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49  ANTABILITY or FI
0160: 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54  TNESS FOR A PART
0170: 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 0a  ICULAR PURPOSE..
0180: 0a 23 20 47 4e 55 20 4c 69 62 74 6f 6f 6c 20 69  .# GNU Libtool i
0190: 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b  s free software;
01a0: 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72   you can redistr
01b0: 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20  ibute it and/or 
01c0: 6d 6f 64 69 66 79 0a 23 20 69 74 20 75 6e 64 65  modify.# it unde
01d0: 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74  r the terms of t
01e0: 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50  he GNU General P
01f0: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73  ublic License as
0200: 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 23 20   published by.# 
0210: 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72  the Free Softwar
0220: 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69  e Foundation; ei
0230: 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 20 6f  ther version 2 o
0240: 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f  f the License, o
0250: 72 0a 23 20 28 61 74 20 79 6f 75 72 20 6f 70 74  r.# (at your opt
0260: 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76  ion) any later v
0270: 65 72 73 69 6f 6e 2e 0a 23 0a 23 20 41 73 20 61  ersion..#.# As a
0280: 20 73 70 65 63 69 61 6c 20 65 78 63 65 70 74 69   special excepti
0290: 6f 6e 20 74 6f 20 74 68 65 20 47 4e 55 20 47 65  on to the GNU Ge
02a0: 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63  neral Public Lic
02b0: 65 6e 73 65 2c 0a 23 20 69 66 20 79 6f 75 20 64  ense,.# if you d
02c0: 69 73 74 72 69 62 75 74 65 20 74 68 69 73 20 66  istribute this f
02d0: 69 6c 65 20 61 73 20 70 61 72 74 20 6f 66 20 61  ile as part of a
02e0: 20 70 72 6f 67 72 61 6d 20 6f 72 20 6c 69 62 72   program or libr
02f0: 61 72 79 20 74 68 61 74 0a 23 20 69 73 20 62 75  ary that.# is bu
0300: 69 6c 74 20 75 73 69 6e 67 20 47 4e 55 20 4c 69  ilt using GNU Li
0310: 62 74 6f 6f 6c 2c 20 79 6f 75 20 6d 61 79 20 69  btool, you may i
0320: 6e 63 6c 75 64 65 20 74 68 69 73 20 66 69 6c 65  nclude this file
0330: 20 75 6e 64 65 72 20 74 68 65 0a 23 20 73 61 6d   under the.# sam
0340: 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 74  e distribution t
0350: 65 72 6d 73 20 74 68 61 74 20 79 6f 75 20 75 73  erms that you us
0360: 65 20 66 6f 72 20 74 68 65 20 72 65 73 74 20 6f  e for the rest o
0370: 66 20 74 68 61 74 20 70 72 6f 67 72 61 6d 2e 0a  f that program..
0380: 23 0a 23 20 47 4e 55 20 4c 69 62 74 6f 6f 6c 20  #.# GNU Libtool 
0390: 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69  is distributed i
03a0: 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20  n the hope that 
03b0: 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75  it will be usefu
03c0: 6c 2c 20 62 75 74 0a 23 20 57 49 54 48 4f 55 54  l, but.# WITHOUT
03d0: 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77   ANY WARRANTY; w
03e0: 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20  ithout even the 
03f0: 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79  implied warranty
0400: 20 6f 66 0a 23 20 4d 45 52 43 48 41 4e 54 41 42   of.# MERCHANTAB
0410: 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53  ILITY or FITNESS
0420: 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41   FOR A PARTICULA
0430: 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20  R PURPOSE.  See 
0440: 74 68 65 20 47 4e 55 0a 23 20 47 65 6e 65 72 61  the GNU.# Genera
0450: 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65  l Public License
0460: 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c   for more detail
0470: 73 2e 0a 23 0a 23 20 59 6f 75 20 73 68 6f 75 6c  s..#.# You shoul
0480: 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20  d have received 
0490: 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e  a copy of the GN
04a0: 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  U General Public
04b0: 20 4c 69 63 65 6e 73 65 0a 23 20 61 6c 6f 6e 67   License.# along
04c0: 20 77 69 74 68 20 47 4e 55 20 4c 69 62 74 6f 6f   with GNU Libtoo
04d0: 6c 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20  l; see the file 
04e0: 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74  COPYING.  If not
04f0: 2c 20 61 20 63 6f 70 79 0a 23 20 63 61 6e 20 62  , a copy.# can b
0500: 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f  e downloaded fro
0510: 6d 20 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75  m http://www.gnu
0520: 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 67 70  .org/licenses/gp
0530: 6c 2e 68 74 6d 6c 2c 0a 23 20 6f 72 20 6f 62 74  l.html,.# or obt
0540: 61 69 6e 65 64 20 62 79 20 77 72 69 74 69 6e 67  ained by writing
0550: 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66   to the Free Sof
0560: 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e  tware Foundation
0570: 2c 20 49 6e 63 2e 2c 0a 23 20 35 31 20 46 72 61  , Inc.,.# 51 Fra
0580: 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69  nklin Street, Fi
0590: 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f  fth Floor, Bosto
05a0: 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31  n, MA 02110-1301
05b0: 2c 20 55 53 41 2e 0a 0a 23 20 55 73 61 67 65 3a  , USA...# Usage:
05c0: 20 24 70 72 6f 67 6e 61 6d 65 20 5b 4f 50 54 49   $progname [OPTI
05d0: 4f 4e 5d 2e 2e 2e 20 5b 4d 4f 44 45 2d 41 52 47  ON]... [MODE-ARG
05e0: 5d 2e 2e 2e 0a 23 0a 23 20 50 72 6f 76 69 64 65  ]....#.# Provide
05f0: 20 67 65 6e 65 72 61 6c 69 7a 65 64 20 6c 69 62   generalized lib
0600: 72 61 72 79 2d 62 75 69 6c 64 69 6e 67 20 73 75  rary-building su
0610: 70 70 6f 72 74 20 73 65 72 76 69 63 65 73 2e 0a  pport services..
0620: 23 0a 23 20 20 20 20 20 20 20 2d 2d 63 6f 6e 66  #.#       --conf
0630: 69 67 20 20 20 20 20 20 20 20 20 20 20 20 20 73  ig             s
0640: 68 6f 77 20 61 6c 6c 20 63 6f 6e 66 69 67 75 72  how all configur
0650: 61 74 69 6f 6e 20 76 61 72 69 61 62 6c 65 73 0a  ation variables.
0660: 23 20 20 20 20 20 20 20 2d 2d 64 65 62 75 67 20  #       --debug 
0670: 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 61               ena
0680: 62 6c 65 20 76 65 72 62 6f 73 65 20 73 68 65 6c  ble verbose shel
0690: 6c 20 74 72 61 63 69 6e 67 0a 23 20 20 20 2d 6e  l tracing.#   -n
06a0: 2c 20 2d 2d 64 72 79 2d 72 75 6e 20 20 20 20 20  , --dry-run     
06b0: 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 20 63         display c
06c0: 6f 6d 6d 61 6e 64 73 20 77 69 74 68 6f 75 74 20  ommands without 
06d0: 6d 6f 64 69 66 79 69 6e 67 20 61 6e 79 20 66 69  modifying any fi
06e0: 6c 65 73 0a 23 20 20 20 20 20 20 20 2d 2d 66 65  les.#       --fe
06f0: 61 74 75 72 65 73 20 20 20 20 20 20 20 20 20 20  atures          
0700: 20 64 69 73 70 6c 61 79 20 62 61 73 69 63 20 63   display basic c
0710: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 6e 66  onfiguration inf
0720: 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 65 78 69  ormation and exi
0730: 74 0a 23 20 20 20 20 20 20 20 2d 2d 6d 6f 64 65  t.#       --mode
0740: 3d 4d 4f 44 45 20 20 20 20 20 20 20 20 20 20 75  =MODE          u
0750: 73 65 20 6f 70 65 72 61 74 69 6f 6e 20 6d 6f 64  se operation mod
0760: 65 20 4d 4f 44 45 0a 23 20 20 20 20 20 20 20 2d  e MODE.#       -
0770: 2d 70 72 65 73 65 72 76 65 2d 64 75 70 2d 64 65  -preserve-dup-de
0780: 70 73 20 20 64 6f 6e 27 74 20 72 65 6d 6f 76 65  ps  don't remove
0790: 20 64 75 70 6c 69 63 61 74 65 20 64 65 70 65 6e   duplicate depen
07a0: 64 65 6e 63 79 20 6c 69 62 72 61 72 69 65 73 0a  dency libraries.
07b0: 23 20 20 20 20 20 20 20 2d 2d 71 75 69 65 74 2c  #       --quiet,
07c0: 20 2d 2d 73 69 6c 65 6e 74 20 20 20 20 64 6f 6e   --silent    don
07d0: 27 74 20 70 72 69 6e 74 20 69 6e 66 6f 72 6d 61  't print informa
07e0: 74 69 6f 6e 61 6c 20 6d 65 73 73 61 67 65 73 0a  tional messages.
07f0: 23 20 20 20 20 20 20 20 2d 2d 6e 6f 2d 71 75 69  #       --no-qui
0800: 65 74 2c 20 2d 2d 6e 6f 2d 73 69 6c 65 6e 74 0a  et, --no-silent.
0810: 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  #               
0820: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69               pri
0830: 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 61 6c  nt informational
0840: 20 6d 65 73 73 61 67 65 73 20 28 64 65 66 61 75   messages (defau
0850: 6c 74 29 0a 23 20 20 20 20 20 20 20 2d 2d 6e 6f  lt).#       --no
0860: 2d 77 61 72 6e 20 20 20 20 20 20 20 20 20 20 20  -warn           
0870: 20 64 6f 6e 27 74 20 64 69 73 70 6c 61 79 20 77   don't display w
0880: 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 0a  arning messages.
0890: 23 20 20 20 20 20 20 20 2d 2d 74 61 67 3d 54 41  #       --tag=TA
08a0: 47 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65  G            use
08b0: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 76   configuration v
08c0: 61 72 69 61 62 6c 65 73 20 66 72 6f 6d 20 74 61  ariables from ta
08d0: 67 20 54 41 47 0a 23 20 20 20 2d 76 2c 20 2d 2d  g TAG.#   -v, --
08e0: 76 65 72 62 6f 73 65 20 20 20 20 20 20 20 20 20  verbose         
08f0: 20 20 20 70 72 69 6e 74 20 6d 6f 72 65 20 69 6e     print more in
0900: 66 6f 72 6d 61 74 69 6f 6e 61 6c 20 6d 65 73 73  formational mess
0910: 61 67 65 73 20 74 68 61 6e 20 64 65 66 61 75 6c  ages than defaul
0920: 74 0a 23 20 20 20 20 20 20 20 2d 2d 6e 6f 2d 76  t.#       --no-v
0930: 65 72 62 6f 73 65 20 20 20 20 20 20 20 20 20 64  erbose         d
0940: 6f 6e 27 74 20 70 72 69 6e 74 20 74 68 65 20 65  on't print the e
0950: 78 74 72 61 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  xtra information
0960: 61 6c 20 6d 65 73 73 61 67 65 73 0a 23 20 20 20  al messages.#   
0970: 20 20 20 20 2d 2d 76 65 72 73 69 6f 6e 20 20 20      --version   
0980: 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 76           print v
0990: 65 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69  ersion informati
09a0: 6f 6e 0a 23 20 20 20 2d 68 2c 20 2d 2d 68 65 6c  on.#   -h, --hel
09b0: 70 2c 20 2d 2d 68 65 6c 70 2d 61 6c 6c 20 20 20  p, --help-all   
09c0: 70 72 69 6e 74 20 73 68 6f 72 74 2c 20 6c 6f 6e  print short, lon
09d0: 67 2c 20 6f 72 20 64 65 74 61 69 6c 65 64 20 68  g, or detailed h
09e0: 65 6c 70 20 6d 65 73 73 61 67 65 0a 23 0a 23 20  elp message.#.# 
09f0: 4d 4f 44 45 20 6d 75 73 74 20 62 65 20 6f 6e 65  MODE must be one
0a00: 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e   of the followin
0a10: 67 3a 0a 23 0a 23 20 20 20 20 20 20 20 20 20 63  g:.#.#         c
0a20: 6c 65 61 6e 20 20 20 20 20 20 20 20 20 20 20 20  lean            
0a30: 20 20 72 65 6d 6f 76 65 20 66 69 6c 65 73 20 66    remove files f
0a40: 72 6f 6d 20 74 68 65 20 62 75 69 6c 64 20 64 69  rom the build di
0a50: 72 65 63 74 6f 72 79 0a 23 20 20 20 20 20 20 20  rectory.#       
0a60: 20 20 63 6f 6d 70 69 6c 65 20 20 20 20 20 20 20    compile       
0a70: 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 61 20 73       compile a s
0a80: 6f 75 72 63 65 20 66 69 6c 65 20 69 6e 74 6f 20  ource file into 
0a90: 61 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65 63 74  a libtool object
0aa0: 0a 23 20 20 20 20 20 20 20 20 20 65 78 65 63 75  .#         execu
0ab0: 74 65 20 20 20 20 20 20 20 20 20 20 20 20 61 75  te            au
0ac0: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73 65 74 20  tomatically set 
0ad0: 6c 69 62 72 61 72 79 20 70 61 74 68 2c 20 74 68  library path, th
0ae0: 65 6e 20 72 75 6e 20 61 20 70 72 6f 67 72 61 6d  en run a program
0af0: 0a 23 20 20 20 20 20 20 20 20 20 66 69 6e 69 73  .#         finis
0b00: 68 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f  h             co
0b10: 6d 70 6c 65 74 65 20 74 68 65 20 69 6e 73 74 61  mplete the insta
0b20: 6c 6c 61 74 69 6f 6e 20 6f 66 20 6c 69 62 74 6f  llation of libto
0b30: 6f 6c 20 6c 69 62 72 61 72 69 65 73 0a 23 20 20  ol libraries.#  
0b40: 20 20 20 20 20 20 20 69 6e 73 74 61 6c 6c 20 20         install  
0b50: 20 20 20 20 20 20 20 20 20 20 69 6e 73 74 61 6c            instal
0b60: 6c 20 6c 69 62 72 61 72 69 65 73 20 6f 72 20 65  l libraries or e
0b70: 78 65 63 75 74 61 62 6c 65 73 0a 23 20 20 20 20  xecutables.#    
0b80: 20 20 20 20 20 6c 69 6e 6b 20 20 20 20 20 20 20       link       
0b90: 20 20 20 20 20 20 20 20 63 72 65 61 74 65 20 61          create a
0ba0: 20 6c 69 62 72 61 72 79 20 6f 72 20 61 6e 20 65   library or an e
0bb0: 78 65 63 75 74 61 62 6c 65 0a 23 20 20 20 20 20  xecutable.#     
0bc0: 20 20 20 20 75 6e 69 6e 73 74 61 6c 6c 20 20 20      uninstall   
0bd0: 20 20 20 20 20 20 20 72 65 6d 6f 76 65 20 6c 69         remove li
0be0: 62 72 61 72 69 65 73 20 66 72 6f 6d 20 61 6e 20  braries from an 
0bf0: 69 6e 73 74 61 6c 6c 65 64 20 64 69 72 65 63 74  installed direct
0c00: 6f 72 79 0a 23 0a 23 20 4d 4f 44 45 2d 41 52 47  ory.#.# MODE-ARG
0c10: 53 20 76 61 72 79 20 64 65 70 65 6e 64 69 6e 67  S vary depending
0c20: 20 6f 6e 20 74 68 65 20 4d 4f 44 45 2e 20 20 57   on the MODE.  W
0c30: 68 65 6e 20 70 61 73 73 65 64 20 61 73 20 66 69  hen passed as fi
0c40: 72 73 74 20 6f 70 74 69 6f 6e 2c 0a 23 20 60 2d  rst option,.# `-
0c50: 2d 6d 6f 64 65 3d 4d 4f 44 45 27 20 6d 61 79 20  -mode=MODE' may 
0c60: 62 65 20 61 62 62 72 65 76 69 61 74 65 64 20 61  be abbreviated a
0c70: 73 20 60 4d 4f 44 45 27 20 6f 72 20 61 20 75 6e  s `MODE' or a un
0c80: 69 71 75 65 20 61 62 62 72 65 76 69 61 74 69 6f  ique abbreviatio
0c90: 6e 20 6f 66 20 74 68 61 74 2e 0a 23 20 54 72 79  n of that..# Try
0ca0: 20 60 24 70 72 6f 67 6e 61 6d 65 20 2d 2d 68 65   `$progname --he
0cb0: 6c 70 20 2d 2d 6d 6f 64 65 3d 4d 4f 44 45 27 20  lp --mode=MODE' 
0cc0: 66 6f 72 20 61 20 6d 6f 72 65 20 64 65 74 61 69  for a more detai
0cd0: 6c 65 64 20 64 65 73 63 72 69 70 74 69 6f 6e 20  led description 
0ce0: 6f 66 20 4d 4f 44 45 2e 0a 23 0a 23 20 57 68 65  of MODE..#.# Whe
0cf0: 6e 20 72 65 70 6f 72 74 69 6e 67 20 61 20 62 75  n reporting a bu
0d00: 67 2c 20 70 6c 65 61 73 65 20 64 65 73 63 72 69  g, please descri
0d10: 62 65 20 61 20 74 65 73 74 20 63 61 73 65 20 74  be a test case t
0d20: 6f 20 72 65 70 72 6f 64 75 63 65 20 69 74 20 61  o reproduce it a
0d30: 6e 64 0a 23 20 69 6e 63 6c 75 64 65 20 74 68 65  nd.# include the
0d40: 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 66 6f 72   following infor
0d50: 6d 61 74 69 6f 6e 3a 0a 23 0a 23 20 20 20 20 20  mation:.#.#     
0d60: 20 20 20 20 68 6f 73 74 2d 74 72 69 70 6c 65 74      host-triplet
0d70: 3a 09 24 68 6f 73 74 0a 23 20 20 20 20 20 20 20  :.$host.#       
0d80: 20 20 73 68 65 6c 6c 3a 09 09 24 53 48 45 4c 4c    shell:..$SHELL
0d90: 0a 23 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69  .#         compi
0da0: 6c 65 72 3a 09 09 24 4c 54 43 43 0a 23 20 20 20  ler:..$LTCC.#   
0db0: 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 72 20 66        compiler f
0dc0: 6c 61 67 73 3a 09 09 24 4c 54 43 46 4c 41 47 53  lags:..$LTCFLAGS
0dd0: 0a 23 20 20 20 20 20 20 20 20 20 6c 69 6e 6b 65  .#         linke
0de0: 72 3a 09 09 24 4c 44 20 28 67 6e 75 3f 20 24 77  r:..$LD (gnu? $w
0df0: 69 74 68 5f 67 6e 75 5f 6c 64 29 0a 23 20 20 20  ith_gnu_ld).#   
0e00: 20 20 20 20 20 20 24 70 72 6f 67 6e 61 6d 65 3a        $progname:
0e10: 09 28 47 4e 55 20 6c 69 62 74 6f 6f 6c 29 20 32  .(GNU libtool) 2
0e20: 2e 34 2e 32 0a 23 20 20 20 20 20 20 20 20 20 61  .4.2.#         a
0e30: 75 74 6f 6d 61 6b 65 3a 09 24 61 75 74 6f 6d 61  utomake:.$automa
0e40: 6b 65 5f 76 65 72 73 69 6f 6e 0a 23 20 20 20 20  ke_version.#    
0e50: 20 20 20 20 20 61 75 74 6f 63 6f 6e 66 3a 09 24       autoconf:.$
0e60: 61 75 74 6f 63 6f 6e 66 5f 76 65 72 73 69 6f 6e  autoconf_version
0e70: 0a 23 0a 23 20 52 65 70 6f 72 74 20 62 75 67 73  .#.# Report bugs
0e80: 20 74 6f 20 3c 62 75 67 2d 6c 69 62 74 6f 6f 6c   to <bug-libtool
0e90: 40 67 6e 75 2e 6f 72 67 3e 2e 0a 23 20 47 4e 55  @gnu.org>..# GNU
0ea0: 20 6c 69 62 74 6f 6f 6c 20 68 6f 6d 65 20 70 61   libtool home pa
0eb0: 67 65 3a 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e  ge: <http://www.
0ec0: 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65  gnu.org/software
0ed0: 2f 6c 69 62 74 6f 6f 6c 2f 3e 2e 0a 23 20 47 65  /libtool/>..# Ge
0ee0: 6e 65 72 61 6c 20 68 65 6c 70 20 75 73 69 6e 67  neral help using
0ef0: 20 47 4e 55 20 73 6f 66 74 77 61 72 65 3a 20 3c   GNU software: <
0f00: 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f  http://www.gnu.o
0f10: 72 67 2f 67 65 74 68 65 6c 70 2f 3e 2e 0a 0a 50  rg/gethelp/>...P
0f20: 52 4f 47 52 41 4d 3d 6c 69 62 74 6f 6f 6c 0a 50  ROGRAM=libtool.P
0f30: 41 43 4b 41 47 45 3d 6c 69 62 74 6f 6f 6c 0a 56  ACKAGE=libtool.V
0f40: 45 52 53 49 4f 4e 3d 32 2e 34 2e 32 0a 54 49 4d  ERSION=2.4.2.TIM
0f50: 45 53 54 41 4d 50 3d 22 22 0a 70 61 63 6b 61 67  ESTAMP="".packag
0f60: 65 5f 72 65 76 69 73 69 6f 6e 3d 31 2e 33 33 33  e_revision=1.333
0f70: 37 0a 0a 23 20 42 65 20 42 6f 75 72 6e 65 20 63  7..# Be Bourne c
0f80: 6f 6d 70 61 74 69 62 6c 65 0a 69 66 20 74 65 73  ompatible.if tes
0f90: 74 20 2d 6e 20 22 24 7b 5a 53 48 5f 56 45 52 53  t -n "${ZSH_VERS
0fa0: 49 4f 4e 2b 73 65 74 7d 22 20 26 26 20 28 65 6d  ION+set}" && (em
0fb0: 75 6c 61 74 65 20 73 68 29 20 3e 2f 64 65 76 2f  ulate sh) >/dev/
0fc0: 6e 75 6c 6c 20 32 3e 26 31 3b 20 74 68 65 6e 0a  null 2>&1; then.
0fd0: 20 20 65 6d 75 6c 61 74 65 20 73 68 0a 20 20 4e    emulate sh.  N
0fe0: 55 4c 4c 43 4d 44 3d 3a 0a 20 20 23 20 5a 73 68  ULLCMD=:.  # Zsh
0ff0: 20 33 2e 78 20 61 6e 64 20 34 2e 78 20 70 65 72   3.x and 4.x per
1000: 66 6f 72 6d 73 20 77 6f 72 64 20 73 70 6c 69 74  forms word split
1010: 74 69 6e 67 20 6f 6e 20 24 7b 31 2b 22 24 40 22  ting on ${1+"$@"
1020: 7d 2c 20 77 68 69 63 68 0a 20 20 23 20 69 73 20  }, which.  # is 
1030: 63 6f 6e 74 72 61 72 79 20 74 6f 20 6f 75 72 20  contrary to our 
1040: 75 73 61 67 65 2e 20 20 44 69 73 61 62 6c 65 20  usage.  Disable 
1050: 74 68 69 73 20 66 65 61 74 75 72 65 2e 0a 20 20  this feature..  
1060: 61 6c 69 61 73 20 2d 67 20 27 24 7b 31 2b 22 24  alias -g '${1+"$
1070: 40 22 7d 27 3d 27 22 24 40 22 27 0a 20 20 73 65  @"}'='"$@"'.  se
1080: 74 6f 70 74 20 4e 4f 5f 47 4c 4f 42 5f 53 55 42  topt NO_GLOB_SUB
1090: 53 54 0a 65 6c 73 65 0a 20 20 63 61 73 65 20 60  ST.else.  case `
10a0: 28 73 65 74 20 2d 6f 29 20 32 3e 2f 64 65 76 2f  (set -o) 2>/dev/
10b0: 6e 75 6c 6c 60 20 69 6e 20 2a 70 6f 73 69 78 2a  null` in *posix*
10c0: 29 20 73 65 74 20 2d 6f 20 70 6f 73 69 78 3b 3b  ) set -o posix;;
10d0: 20 65 73 61 63 0a 66 69 0a 42 49 4e 5f 53 48 3d   esac.fi.BIN_SH=
10e0: 78 70 67 34 3b 20 65 78 70 6f 72 74 20 42 49 4e  xpg4; export BIN
10f0: 5f 53 48 20 23 20 66 6f 72 20 54 72 75 36 34 0a  _SH # for Tru64.
1100: 44 55 41 4c 43 41 53 45 3d 31 3b 20 65 78 70 6f  DUALCASE=1; expo
1110: 72 74 20 44 55 41 4c 43 41 53 45 20 23 20 66 6f  rt DUALCASE # fo
1120: 72 20 4d 4b 53 20 73 68 0a 0a 23 20 41 20 66 75  r MKS sh..# A fu
1130: 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 73 20 75  nction that is u
1140: 73 65 64 20 77 68 65 6e 20 74 68 65 72 65 20 69  sed when there i
1150: 73 20 6e 6f 20 70 72 69 6e 74 20 62 75 69 6c 74  s no print built
1160: 69 6e 20 6f 72 20 70 72 69 6e 74 66 2e 0a 66 75  in or printf..fu
1170: 6e 63 5f 66 61 6c 6c 62 61 63 6b 5f 65 63 68 6f  nc_fallback_echo
1180: 20 28 29 0a 7b 0a 20 20 65 76 61 6c 20 27 63 61   ().{.  eval 'ca
1190: 74 20 3c 3c 5f 4c 54 45 43 48 4f 5f 45 4f 46 0a  t <<_LTECHO_EOF.
11a0: 24 31 0a 5f 4c 54 45 43 48 4f 5f 45 4f 46 27 0a  $1._LTECHO_EOF'.
11b0: 7d 0a 0a 23 20 4e 4c 53 20 6e 75 69 73 61 6e 63  }..# NLS nuisanc
11c0: 65 73 3a 20 57 65 20 73 61 76 65 20 74 68 65 20  es: We save the 
11d0: 6f 6c 64 20 76 61 6c 75 65 73 20 74 6f 20 72 65  old values to re
11e0: 73 74 6f 72 65 20 64 75 72 69 6e 67 20 65 78 65  store during exe
11f0: 63 75 74 65 20 6d 6f 64 65 2e 0a 6c 74 5f 75 73  cute mode..lt_us
1200: 65 72 5f 6c 6f 63 61 6c 65 3d 0a 6c 74 5f 73 61  er_locale=.lt_sa
1210: 66 65 5f 6c 6f 63 61 6c 65 3d 0a 66 6f 72 20 6c  fe_locale=.for l
1220: 74 5f 76 61 72 20 69 6e 20 4c 41 4e 47 20 4c 41  t_var in LANG LA
1230: 4e 47 55 41 47 45 20 4c 43 5f 41 4c 4c 20 4c 43  NGUAGE LC_ALL LC
1240: 5f 43 54 59 50 45 20 4c 43 5f 43 4f 4c 4c 41 54  _CTYPE LC_COLLAT
1250: 45 20 4c 43 5f 4d 45 53 53 41 47 45 53 0a 64 6f  E LC_MESSAGES.do
1260: 0a 20 20 65 76 61 6c 20 22 69 66 20 74 65 73 74  .  eval "if test
1270: 20 5c 22 5c 24 7b 24 6c 74 5f 76 61 72 2b 73 65   \"\${$lt_var+se
1280: 74 7d 5c 22 20 3d 20 73 65 74 3b 20 74 68 65 6e  t}\" = set; then
1290: 0a 20 20 20 20 20 20 20 20 20 20 73 61 76 65 5f  .          save_
12a0: 24 6c 74 5f 76 61 72 3d 5c 24 24 6c 74 5f 76 61  $lt_var=\$$lt_va
12b0: 72 0a 20 20 20 20 20 20 20 20 20 20 24 6c 74 5f  r.          $lt_
12c0: 76 61 72 3d 43 0a 09 20 20 65 78 70 6f 72 74 20  var=C..  export 
12d0: 24 6c 74 5f 76 61 72 0a 09 20 20 6c 74 5f 75 73  $lt_var..  lt_us
12e0: 65 72 5f 6c 6f 63 61 6c 65 3d 5c 22 24 6c 74 5f  er_locale=\"$lt_
12f0: 76 61 72 3d 5c 5c 5c 24 73 61 76 65 5f 5c 24 6c  var=\\\$save_\$l
1300: 74 5f 76 61 72 3b 20 5c 24 6c 74 5f 75 73 65 72  t_var; \$lt_user
1310: 5f 6c 6f 63 61 6c 65 5c 22 0a 09 20 20 6c 74 5f  _locale\"..  lt_
1320: 73 61 66 65 5f 6c 6f 63 61 6c 65 3d 5c 22 24 6c  safe_locale=\"$l
1330: 74 5f 76 61 72 3d 43 3b 20 5c 24 6c 74 5f 73 61  t_var=C; \$lt_sa
1340: 66 65 5f 6c 6f 63 61 6c 65 5c 22 0a 09 66 69 22  fe_locale\"..fi"
1350: 0a 64 6f 6e 65 0a 4c 43 5f 41 4c 4c 3d 43 0a 4c  .done.LC_ALL=C.L
1360: 41 4e 47 55 41 47 45 3d 43 0a 65 78 70 6f 72 74  ANGUAGE=C.export
1370: 20 4c 41 4e 47 55 41 47 45 20 4c 43 5f 41 4c 4c   LANGUAGE LC_ALL
1380: 0a 0a 24 6c 74 5f 75 6e 73 65 74 20 43 44 50 41  ..$lt_unset CDPA
1390: 54 48 0a 0a 0a 23 20 57 6f 72 6b 20 61 72 6f 75  TH...# Work arou
13a0: 6e 64 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70  nd backward comp
13b0: 61 74 69 62 69 6c 69 74 79 20 69 73 73 75 65 20  atibility issue 
13c0: 6f 6e 20 49 52 49 58 20 36 2e 35 2e 20 4f 6e 20  on IRIX 6.5. On 
13d0: 49 52 49 58 20 36 2e 34 2b 2c 20 73 68 0a 23 20  IRIX 6.4+, sh.# 
13e0: 69 73 20 6b 73 68 20 62 75 74 20 77 68 65 6e 20  is ksh but when 
13f0: 74 68 65 20 73 68 65 6c 6c 20 69 73 20 69 6e 76  the shell is inv
1400: 6f 6b 65 64 20 61 73 20 22 73 68 22 20 61 6e 64  oked as "sh" and
1410: 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 61 6c   the current val
1420: 75 65 20 6f 66 0a 23 20 74 68 65 20 5f 58 50 47  ue of.# the _XPG
1430: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72   environment var
1440: 69 61 62 6c 65 20 69 73 20 6e 6f 74 20 65 71 75  iable is not equ
1450: 61 6c 20 74 6f 20 31 20 28 6f 6e 65 29 2c 20 74  al to 1 (one), t
1460: 68 65 20 73 70 65 63 69 61 6c 0a 23 20 70 6f 73  he special.# pos
1470: 69 74 69 6f 6e 61 6c 20 70 61 72 61 6d 65 74 65  itional paramete
1480: 72 20 24 30 2c 20 77 69 74 68 69 6e 20 61 20 66  r $0, within a f
1490: 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2c 20 69 73  unction call, is
14a0: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65   the name of the
14b0: 0a 23 20 66 75 6e 63 74 69 6f 6e 2e 0a 70 72 6f  .# function..pro
14c0: 67 70 61 74 68 3d 22 24 30 22 0a 0a 0a 0a 3a 20  gpath="$0"....: 
14d0: 24 7b 43 50 3d 22 63 70 20 2d 66 22 7d 0a 74 65  ${CP="cp -f"}.te
14e0: 73 74 20 22 24 7b 45 43 48 4f 2b 73 65 74 7d 22  st "${ECHO+set}"
14f0: 20 3d 20 73 65 74 20 7c 7c 20 45 43 48 4f 3d 24   = set || ECHO=$
1500: 7b 61 73 5f 65 63 68 6f 2d 27 70 72 69 6e 74 66  {as_echo-'printf
1510: 20 25 73 5c 6e 27 7d 0a 3a 20 24 7b 4d 41 4b 45   %s\n'}.: ${MAKE
1520: 3d 22 6d 61 6b 65 22 7d 0a 3a 20 24 7b 4d 4b 44  ="make"}.: ${MKD
1530: 49 52 3d 22 6d 6b 64 69 72 22 7d 0a 3a 20 24 7b  IR="mkdir"}.: ${
1540: 4d 56 3d 22 6d 76 20 2d 66 22 7d 0a 3a 20 24 7b  MV="mv -f"}.: ${
1550: 52 4d 3d 22 72 6d 20 2d 66 22 7d 0a 3a 20 24 7b  RM="rm -f"}.: ${
1560: 53 48 45 4c 4c 3d 22 24 7b 43 4f 4e 46 49 47 5f  SHELL="${CONFIG_
1570: 53 48 45 4c 4c 2d 2f 62 69 6e 2f 73 68 7d 22 7d  SHELL-/bin/sh}"}
1580: 0a 3a 20 24 7b 58 73 65 64 3d 22 24 53 45 44 20  .: ${Xsed="$SED 
1590: 2d 65 20 31 73 2f 5e 58 2f 2f 22 7d 0a 0a 23 20  -e 1s/^X//"}..# 
15a0: 47 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73  Global variables
15b0: 3a 0a 45 58 49 54 5f 53 55 43 43 45 53 53 3d 30  :.EXIT_SUCCESS=0
15c0: 0a 45 58 49 54 5f 46 41 49 4c 55 52 45 3d 31 0a  .EXIT_FAILURE=1.
15d0: 45 58 49 54 5f 4d 49 53 4d 41 54 43 48 3d 36 33  EXIT_MISMATCH=63
15e0: 20 20 23 20 24 3f 20 3d 20 36 33 20 69 73 20 75    # $? = 63 is u
15f0: 73 65 64 20 74 6f 20 69 6e 64 69 63 61 74 65 20  sed to indicate 
1600: 76 65 72 73 69 6f 6e 20 6d 69 73 6d 61 74 63 68  version mismatch
1610: 20 74 6f 20 6d 69 73 73 69 6e 67 2e 0a 45 58 49   to missing..EXI
1620: 54 5f 53 4b 49 50 3d 37 37 09 20 20 23 20 24 3f  T_SKIP=77.  # $?
1630: 20 3d 20 37 37 20 69 73 20 75 73 65 64 20 74 6f   = 77 is used to
1640: 20 69 6e 64 69 63 61 74 65 20 61 20 73 6b 69 70   indicate a skip
1650: 70 65 64 20 74 65 73 74 20 74 6f 20 61 75 74 6f  ped test to auto
1660: 6d 61 6b 65 2e 0a 0a 65 78 69 74 5f 73 74 61 74  make...exit_stat
1670: 75 73 3d 24 45 58 49 54 5f 53 55 43 43 45 53 53  us=$EXIT_SUCCESS
1680: 0a 0a 23 20 4d 61 6b 65 20 73 75 72 65 20 49 46  ..# Make sure IF
1690: 53 20 68 61 73 20 61 20 73 65 6e 73 69 62 6c 65  S has a sensible
16a0: 20 64 65 66 61 75 6c 74 0a 6c 74 5f 6e 6c 3d 27   default.lt_nl='
16b0: 0a 27 0a 49 46 53 3d 22 20 09 24 6c 74 5f 6e 6c  .'.IFS=" .$lt_nl
16c0: 22 0a 0a 64 69 72 6e 61 6d 65 3d 22 73 2c 2f 5b  "..dirname="s,/[
16d0: 5e 2f 5d 2a 24 2c 2c 22 0a 62 61 73 65 6e 61 6d  ^/]*$,,".basenam
16e0: 65 3d 22 73 2c 5e 2e 2a 2f 2c 2c 22 0a 0a 23 20  e="s,^.*/,,"..# 
16f0: 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20 66 69 6c  func_dirname fil
1700: 65 20 61 70 70 65 6e 64 20 6e 6f 6e 64 69 72 5f  e append nondir_
1710: 72 65 70 6c 61 63 65 6d 65 6e 74 0a 23 20 43 6f  replacement.# Co
1720: 6d 70 75 74 65 20 74 68 65 20 64 69 72 6e 61 6d  mpute the dirnam
1730: 65 20 6f 66 20 46 49 4c 45 2e 20 20 49 66 20 6e  e of FILE.  If n
1740: 6f 6e 65 6d 70 74 79 2c 20 61 64 64 20 41 50 50  onempty, add APP
1750: 45 4e 44 20 74 6f 20 74 68 65 20 72 65 73 75 6c  END to the resul
1760: 74 2c 0a 23 20 6f 74 68 65 72 77 69 73 65 20 73  t,.# otherwise s
1770: 65 74 20 72 65 73 75 6c 74 20 74 6f 20 4e 4f 4e  et result to NON
1780: 44 49 52 5f 52 45 50 4c 41 43 45 4d 45 4e 54 2e  DIR_REPLACEMENT.
1790: 0a 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20 28 29  .func_dirname ()
17a0: 0a 7b 0a 20 20 20 20 66 75 6e 63 5f 64 69 72 6e  .{.    func_dirn
17b0: 61 6d 65 5f 72 65 73 75 6c 74 3d 60 24 45 43 48  ame_result=`$ECH
17c0: 4f 20 22 24 7b 31 7d 22 20 7c 20 24 53 45 44 20  O "${1}" | $SED 
17d0: 22 24 64 69 72 6e 61 6d 65 22 60 0a 20 20 20 20  "$dirname"`.    
17e0: 69 66 20 74 65 73 74 20 22 58 24 66 75 6e 63 5f  if test "X$func_
17f0: 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22 20  dirname_result" 
1800: 3d 20 22 58 24 7b 31 7d 22 3b 20 74 68 65 6e 0a  = "X${1}"; then.
1810: 20 20 20 20 20 20 66 75 6e 63 5f 64 69 72 6e 61        func_dirna
1820: 6d 65 5f 72 65 73 75 6c 74 3d 22 24 7b 33 7d 22  me_result="${3}"
1830: 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20  .    else.      
1840: 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73  func_dirname_res
1850: 75 6c 74 3d 22 24 66 75 6e 63 5f 64 69 72 6e 61  ult="$func_dirna
1860: 6d 65 5f 72 65 73 75 6c 74 24 7b 32 7d 22 0a 20  me_result${2}". 
1870: 20 20 20 66 69 0a 7d 20 23 20 66 75 6e 63 5f 64     fi.} # func_d
1880: 69 72 6e 61 6d 65 20 6d 61 79 20 62 65 20 72 65  irname may be re
1890: 70 6c 61 63 65 64 20 62 79 20 65 78 74 65 6e 64  placed by extend
18a0: 65 64 20 73 68 65 6c 6c 20 69 6d 70 6c 65 6d 65  ed shell impleme
18b0: 6e 74 61 74 69 6f 6e 0a 0a 0a 23 20 66 75 6e 63  ntation...# func
18c0: 5f 62 61 73 65 6e 61 6d 65 20 66 69 6c 65 0a 66  _basename file.f
18d0: 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20 28 29 0a  unc_basename ().
18e0: 7b 0a 20 20 20 20 66 75 6e 63 5f 62 61 73 65 6e  {.    func_basen
18f0: 61 6d 65 5f 72 65 73 75 6c 74 3d 60 24 45 43 48  ame_result=`$ECH
1900: 4f 20 22 24 7b 31 7d 22 20 7c 20 24 53 45 44 20  O "${1}" | $SED 
1910: 22 24 62 61 73 65 6e 61 6d 65 22 60 0a 7d 20 23  "$basename"`.} #
1920: 20 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20 6d   func_basename m
1930: 61 79 20 62 65 20 72 65 70 6c 61 63 65 64 20 62  ay be replaced b
1940: 79 20 65 78 74 65 6e 64 65 64 20 73 68 65 6c 6c  y extended shell
1950: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a   implementation.
1960: 0a 0a 23 20 66 75 6e 63 5f 64 69 72 6e 61 6d 65  ..# func_dirname
1970: 5f 61 6e 64 5f 62 61 73 65 6e 61 6d 65 20 66 69  _and_basename fi
1980: 6c 65 20 61 70 70 65 6e 64 20 6e 6f 6e 64 69 72  le append nondir
1990: 5f 72 65 70 6c 61 63 65 6d 65 6e 74 0a 23 20 70  _replacement.# p
19a0: 65 72 66 6f 72 6d 20 66 75 6e 63 5f 62 61 73 65  erform func_base
19b0: 6e 61 6d 65 20 61 6e 64 20 66 75 6e 63 5f 64 69  name and func_di
19c0: 72 6e 61 6d 65 20 69 6e 20 61 20 73 69 6e 67 6c  rname in a singl
19d0: 65 20 66 75 6e 63 74 69 6f 6e 0a 23 20 63 61 6c  e function.# cal
19e0: 6c 3a 0a 23 20 20 20 64 69 72 6e 61 6d 65 3a 20  l:.#   dirname: 
19f0: 20 43 6f 6d 70 75 74 65 20 74 68 65 20 64 69 72   Compute the dir
1a00: 6e 61 6d 65 20 6f 66 20 46 49 4c 45 2e 20 20 49  name of FILE.  I
1a10: 66 20 6e 6f 6e 65 6d 70 74 79 2c 0a 23 20 20 20  f nonempty,.#   
1a20: 20 20 20 20 20 20 20 20 20 20 61 64 64 20 41 50            add AP
1a30: 50 45 4e 44 20 74 6f 20 74 68 65 20 72 65 73 75  PEND to the resu
1a40: 6c 74 2c 20 6f 74 68 65 72 77 69 73 65 20 73 65  lt, otherwise se
1a50: 74 20 72 65 73 75 6c 74 0a 23 20 20 20 20 20 20  t result.#      
1a60: 20 20 20 20 20 20 20 74 6f 20 4e 4f 4e 44 49 52         to NONDIR
1a70: 5f 52 45 50 4c 41 43 45 4d 45 4e 54 2e 0a 23 20  _REPLACEMENT..# 
1a80: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75              valu
1a90: 65 20 72 65 74 75 72 6e 65 64 20 69 6e 20 22 24  e returned in "$
1aa0: 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73  func_dirname_res
1ab0: 75 6c 74 22 0a 23 20 20 20 62 61 73 65 6e 61 6d  ult".#   basenam
1ac0: 65 3a 20 43 6f 6d 70 75 74 65 20 66 69 6c 65 6e  e: Compute filen
1ad0: 61 6d 65 20 6f 66 20 46 49 4c 45 2e 0a 23 20 20  ame of FILE..#  
1ae0: 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65             value
1af0: 20 72 65 74 75 6e 65 64 20 69 6e 20 22 24 66 75   retuned in "$fu
1b00: 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75  nc_basename_resu
1b10: 6c 74 22 0a 23 20 49 6d 70 6c 65 6d 65 6e 74 61  lt".# Implementa
1b20: 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 6b 65 70  tion must be kep
1b30: 74 20 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 77  t synchronized w
1b40: 69 74 68 20 66 75 6e 63 5f 64 69 72 6e 61 6d 65  ith func_dirname
1b50: 0a 23 20 61 6e 64 20 66 75 6e 63 5f 62 61 73 65  .# and func_base
1b60: 6e 61 6d 65 2e 20 46 6f 72 20 65 66 66 69 63 69  name. For effici
1b70: 65 6e 63 79 2c 20 77 65 20 64 6f 20 6e 6f 74 20  ency, we do not 
1b80: 64 65 6c 65 67 61 74 65 20 74 6f 0a 23 20 74 68  delegate to.# th
1b90: 6f 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 62 75  ose functions bu
1ba0: 74 20 69 6e 73 74 65 61 64 20 64 75 70 6c 69 63  t instead duplic
1bb0: 61 74 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e  ate the function
1bc0: 61 6c 69 74 79 20 68 65 72 65 2e 0a 66 75 6e 63  ality here..func
1bd0: 5f 64 69 72 6e 61 6d 65 5f 61 6e 64 5f 62 61 73  _dirname_and_bas
1be0: 65 6e 61 6d 65 20 28 29 0a 7b 0a 20 20 20 20 23  ename ().{.    #
1bf0: 20 45 78 74 72 61 63 74 20 73 75 62 64 69 72 65   Extract subdire
1c00: 63 74 6f 72 79 20 66 72 6f 6d 20 74 68 65 20 61  ctory from the a
1c10: 72 67 75 6d 65 6e 74 2e 0a 20 20 20 20 66 75 6e  rgument..    fun
1c20: 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74  c_dirname_result
1c30: 3d 60 24 45 43 48 4f 20 22 24 7b 31 7d 22 20 7c  =`$ECHO "${1}" |
1c40: 20 24 53 45 44 20 2d 65 20 22 24 64 69 72 6e 61   $SED -e "$dirna
1c50: 6d 65 22 60 0a 20 20 20 20 69 66 20 74 65 73 74  me"`.    if test
1c60: 20 22 58 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65   "X$func_dirname
1c70: 5f 72 65 73 75 6c 74 22 20 3d 20 22 58 24 7b 31  _result" = "X${1
1c80: 7d 22 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 66  }"; then.      f
1c90: 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75  unc_dirname_resu
1ca0: 6c 74 3d 22 24 7b 33 7d 22 0a 20 20 20 20 65 6c  lt="${3}".    el
1cb0: 73 65 0a 20 20 20 20 20 20 66 75 6e 63 5f 64 69  se.      func_di
1cc0: 72 6e 61 6d 65 5f 72 65 73 75 6c 74 3d 22 24 66  rname_result="$f
1cd0: 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75  unc_dirname_resu
1ce0: 6c 74 24 7b 32 7d 22 0a 20 20 20 20 66 69 0a 20  lt${2}".    fi. 
1cf0: 20 20 20 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65     func_basename
1d00: 5f 72 65 73 75 6c 74 3d 60 24 45 43 48 4f 20 22  _result=`$ECHO "
1d10: 24 7b 31 7d 22 20 7c 20 24 53 45 44 20 2d 65 20  ${1}" | $SED -e 
1d20: 22 24 62 61 73 65 6e 61 6d 65 22 60 0a 7d 20 23  "$basename"`.} #
1d30: 20 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 61 6e   func_dirname_an
1d40: 64 5f 62 61 73 65 6e 61 6d 65 20 6d 61 79 20 62  d_basename may b
1d50: 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 65 78  e replaced by ex
1d60: 74 65 6e 64 65 64 20 73 68 65 6c 6c 20 69 6d 70  tended shell imp
1d70: 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 0a 23 20  lementation...# 
1d80: 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 70  func_stripname p
1d90: 72 65 66 69 78 20 73 75 66 66 69 78 20 6e 61 6d  refix suffix nam
1da0: 65 0a 23 20 73 74 72 69 70 20 50 52 45 46 49 58  e.# strip PREFIX
1db0: 20 61 6e 64 20 53 55 46 46 49 58 20 6f 66 66 20   and SUFFIX off 
1dc0: 6f 66 20 4e 41 4d 45 2e 0a 23 20 50 52 45 46 49  of NAME..# PREFI
1dd0: 58 20 61 6e 64 20 53 55 46 46 49 58 20 6d 75 73  X and SUFFIX mus
1de0: 74 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 67 6c  t not contain gl
1df0: 6f 62 62 69 6e 67 20 6f 72 20 72 65 67 65 78 20  obbing or regex 
1e00: 73 70 65 63 69 61 6c 0a 23 20 63 68 61 72 61 63  special.# charac
1e10: 74 65 72 73 2c 20 68 61 73 68 65 73 2c 20 70 65  ters, hashes, pe
1e20: 72 63 65 6e 74 20 73 69 67 6e 73 2c 20 62 75 74  rcent signs, but
1e30: 20 53 55 46 46 49 58 20 6d 61 79 20 63 6f 6e 74   SUFFIX may cont
1e40: 61 69 6e 20 61 20 6c 65 61 64 69 6e 67 0a 23 20  ain a leading.# 
1e50: 64 6f 74 20 28 69 6e 20 77 68 69 63 68 20 63 61  dot (in which ca
1e60: 73 65 20 74 68 61 74 20 6d 61 74 63 68 65 73 20  se that matches 
1e70: 6f 6e 6c 79 20 61 20 64 6f 74 29 2e 0a 23 20 66  only a dot)..# f
1e80: 75 6e 63 5f 73 74 72 69 70 5f 73 75 66 66 69 78  unc_strip_suffix
1e90: 20 70 72 65 66 69 78 20 6e 61 6d 65 0a 66 75 6e   prefix name.fun
1ea0: 63 5f 73 74 72 69 70 6e 61 6d 65 20 28 29 0a 7b  c_stripname ().{
1eb0: 0a 20 20 20 20 63 61 73 65 20 24 7b 32 7d 20 69  .    case ${2} i
1ec0: 6e 0a 20 20 20 20 20 20 2e 2a 29 20 66 75 6e 63  n.      .*) func
1ed0: 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c  _stripname_resul
1ee0: 74 3d 60 24 45 43 48 4f 20 22 24 7b 33 7d 22 20  t=`$ECHO "${3}" 
1ef0: 7c 20 24 53 45 44 20 22 73 25 5e 24 7b 31 7d 25  | $SED "s%^${1}%
1f00: 25 3b 20 73 25 5c 5c 5c 5c 24 7b 32 7d 5c 24 25  %; s%\\\\${2}\$%
1f10: 25 22 60 3b 3b 0a 20 20 20 20 20 20 2a 29 20 20  %"`;;.      *)  
1f20: 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72  func_stripname_r
1f30: 65 73 75 6c 74 3d 60 24 45 43 48 4f 20 22 24 7b  esult=`$ECHO "${
1f40: 33 7d 22 20 7c 20 24 53 45 44 20 22 73 25 5e 24  3}" | $SED "s%^$
1f50: 7b 31 7d 25 25 3b 20 73 25 24 7b 32 7d 5c 24 25  {1}%%; s%${2}\$%
1f60: 25 22 60 3b 3b 0a 20 20 20 20 65 73 61 63 0a 7d  %"`;;.    esac.}
1f70: 20 23 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d   # func_stripnam
1f80: 65 20 6d 61 79 20 62 65 20 72 65 70 6c 61 63 65  e may be replace
1f90: 64 20 62 79 20 65 78 74 65 6e 64 65 64 20 73 68  d by extended sh
1fa0: 65 6c 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69  ell implementati
1fb0: 6f 6e 0a 0a 0a 23 20 54 68 65 73 65 20 53 45 44  on...# These SED
1fc0: 20 73 63 72 69 70 74 73 20 70 72 65 73 75 70 70   scripts presupp
1fd0: 6f 73 65 20 61 6e 20 61 62 73 6f 6c 75 74 65 20  ose an absolute 
1fe0: 70 61 74 68 20 77 69 74 68 20 61 20 74 72 61 69  path with a trai
1ff0: 6c 69 6e 67 20 73 6c 61 73 68 2e 0a 70 61 74 68  ling slash..path
2000: 63 61 72 3d 27 73 2c 5e 2f 5c 28 5b 5e 2f 5d 2a  car='s,^/\([^/]*
2010: 5c 29 2e 2a 24 2c 5c 31 2c 27 0a 70 61 74 68 63  \).*$,\1,'.pathc
2020: 64 72 3d 27 73 2c 5e 2f 5b 5e 2f 5d 2a 2c 2c 27  dr='s,^/[^/]*,,'
2030: 0a 72 65 6d 6f 76 65 64 6f 74 70 61 72 74 73 3d  .removedotparts=
2040: 27 3a 64 6f 74 73 6c 0a 09 09 73 40 2f 5c 2e 2f  ':dotsl...s@/\./
2050: 40 2f 40 67 0a 09 09 74 20 64 6f 74 73 6c 0a 09  @/@g...t dotsl..
2060: 09 73 2c 2f 5c 2e 24 2c 2f 2c 27 0a 63 6f 6c 6c  .s,/\.$,/,'.coll
2070: 61 70 73 65 73 6c 61 73 68 65 73 3d 27 73 40 2f  apseslashes='s@/
2080: 5c 7b 31 2c 5c 7d 40 2f 40 67 27 0a 66 69 6e 61  \{1,\}@/@g'.fina
2090: 6c 73 6c 61 73 68 3d 27 73 2c 2f 2a 24 2c 2f 2c  lslash='s,/*$,/,
20a0: 27 0a 0a 23 20 66 75 6e 63 5f 6e 6f 72 6d 61 6c  '..# func_normal
20b0: 5f 61 62 73 70 61 74 68 20 50 41 54 48 0a 23 20  _abspath PATH.# 
20c0: 52 65 6d 6f 76 65 20 64 6f 75 62 6c 65 64 2d 75  Remove doubled-u
20d0: 70 20 61 6e 64 20 74 72 61 69 6c 69 6e 67 20 73  p and trailing s
20e0: 6c 61 73 68 65 73 2c 20 22 2e 22 20 70 61 74 68  lashes, "." path
20f0: 20 63 6f 6d 70 6f 6e 65 6e 74 73 2c 0a 23 20 61   components,.# a
2100: 6e 64 20 63 61 6e 63 65 6c 20 6f 75 74 20 61 6e  nd cancel out an
2110: 79 20 22 2e 2e 22 20 70 61 74 68 20 63 6f 6d 70  y ".." path comp
2120: 6f 6e 65 6e 74 73 20 69 6e 20 50 41 54 48 20 61  onents in PATH a
2130: 66 74 65 72 20 6d 61 6b 69 6e 67 0a 23 20 69 74  fter making.# it
2140: 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 74   an absolute pat
2150: 68 2e 0a 23 20 20 20 20 20 20 20 20 20 20 20 20  h..#            
2160: 20 76 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20   value returned 
2170: 69 6e 20 22 24 66 75 6e 63 5f 6e 6f 72 6d 61 6c  in "$func_normal
2180: 5f 61 62 73 70 61 74 68 5f 72 65 73 75 6c 74 22  _abspath_result"
2190: 0a 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73  .func_normal_abs
21a0: 70 61 74 68 20 28 29 0a 7b 0a 20 20 23 20 53 74  path ().{.  # St
21b0: 61 72 74 20 66 72 6f 6d 20 72 6f 6f 74 20 64 69  art from root di
21c0: 72 20 61 6e 64 20 72 65 61 73 73 65 6d 62 6c 65  r and reassemble
21d0: 20 74 68 65 20 70 61 74 68 2e 0a 20 20 66 75 6e   the path..  fun
21e0: 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68  c_normal_abspath
21f0: 5f 72 65 73 75 6c 74 3d 0a 20 20 66 75 6e 63 5f  _result=.  func_
2200: 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68 5f 74  normal_abspath_t
2210: 70 61 74 68 3d 24 31 0a 20 20 66 75 6e 63 5f 6e  path=$1.  func_n
2220: 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68 5f 61 6c  ormal_abspath_al
2230: 74 6e 61 6d 65 73 70 61 63 65 3d 0a 20 20 63 61  tnamespace=.  ca
2240: 73 65 20 24 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f  se $func_normal_
2250: 61 62 73 70 61 74 68 5f 74 70 61 74 68 20 69 6e  abspath_tpath in
2260: 0a 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 23  .    "").      #
2270: 20 45 6d 70 74 79 20 70 61 74 68 2c 20 74 68 61   Empty path, tha
2280: 74 20 6a 75 73 74 20 6d 65 61 6e 73 20 24 63 77  t just means $cw
2290: 64 2e 0a 20 20 20 20 20 20 66 75 6e 63 5f 73 74  d..      func_st
22a0: 72 69 70 6e 61 6d 65 20 27 27 20 27 2f 27 20 22  ripname '' '/' "
22b0: 60 70 77 64 60 22 0a 20 20 20 20 20 20 66 75 6e  `pwd`".      fun
22c0: 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68  c_normal_abspath
22d0: 5f 72 65 73 75 6c 74 3d 24 66 75 6e 63 5f 73 74  _result=$func_st
22e0: 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 20  ripname_result. 
22f0: 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20       return.    
2300: 3b 3b 0a 20 20 20 20 23 20 54 68 65 20 6e 65 78  ;;.    # The nex
2310: 74 20 74 68 72 65 65 20 65 6e 74 72 69 65 73 20  t three entries 
2320: 61 72 65 20 75 73 65 64 20 74 6f 20 73 70 6f 74  are used to spot
2330: 20 61 20 72 75 6e 20 6f 66 20 70 72 65 63 69 73   a run of precis
2340: 65 6c 79 0a 20 20 20 20 23 20 74 77 6f 20 6c 65  ely.    # two le
2350: 61 64 69 6e 67 20 73 6c 61 73 68 65 73 20 77 69  ading slashes wi
2360: 74 68 6f 75 74 20 75 73 69 6e 67 20 6e 65 67 61  thout using nega
2370: 74 65 64 20 63 68 61 72 61 63 74 65 72 20 63 6c  ted character cl
2380: 61 73 73 65 73 3b 0a 20 20 20 20 23 20 77 65 20  asses;.    # we 
2390: 74 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f  take advantage o
23a0: 66 20 63 61 73 65 27 73 20 66 69 72 73 74 2d 6d  f case's first-m
23b0: 61 74 63 68 20 62 65 68 61 76 69 6f 75 72 2e 0a  atch behaviour..
23c0: 20 20 20 20 2f 2f 2f 2a 29 0a 20 20 20 20 20 20      ///*).      
23d0: 23 20 55 6e 75 73 75 61 6c 20 66 6f 72 6d 20 6f  # Unusual form o
23e0: 66 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 2c  f absolute path,
23f0: 20 64 6f 20 6e 6f 74 68 69 6e 67 2e 0a 20 20 20   do nothing..   
2400: 20 3b 3b 0a 20 20 20 20 2f 2f 2a 29 0a 20 20 20   ;;.    //*).   
2410: 20 20 20 23 20 4e 6f 74 20 6e 65 63 65 73 73 61     # Not necessa
2420: 72 69 6c 79 20 61 6e 20 6f 72 64 69 6e 61 72 79  rily an ordinary
2430: 20 70 61 74 68 3b 20 50 4f 53 49 58 20 72 65 73   path; POSIX res
2440: 65 72 76 65 73 20 6c 65 61 64 69 6e 67 20 27 2f  erves leading '/
2450: 2f 27 0a 20 20 20 20 20 20 23 20 61 6e 64 20 66  /'.      # and f
2460: 6f 72 20 65 78 61 6d 70 6c 65 20 43 79 67 77 69  or example Cygwi
2470: 6e 20 75 73 65 73 20 69 74 20 74 6f 20 61 63 63  n uses it to acc
2480: 65 73 73 20 72 65 6d 6f 74 65 20 66 69 6c 65 20  ess remote file 
2490: 73 68 61 72 65 73 0a 20 20 20 20 20 20 23 20 6f  shares.      # o
24a0: 76 65 72 20 43 49 46 53 2f 53 4d 42 2c 20 73 6f  ver CIFS/SMB, so
24b0: 20 77 65 20 63 6f 6e 73 65 72 76 65 20 61 20 6c   we conserve a l
24c0: 65 61 64 69 6e 67 20 64 6f 75 62 6c 65 20 73 6c  eading double sl
24d0: 61 73 68 20 69 66 20 66 6f 75 6e 64 2e 0a 20 20  ash if found..  
24e0: 20 20 20 20 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f      func_normal_
24f0: 61 62 73 70 61 74 68 5f 61 6c 74 6e 61 6d 65 73  abspath_altnames
2500: 70 61 63 65 3d 2f 0a 20 20 20 20 3b 3b 0a 20 20  pace=/.    ;;.  
2510: 20 20 2f 2a 29 0a 20 20 20 20 20 20 23 20 41 62    /*).      # Ab
2520: 73 6f 6c 75 74 65 20 70 61 74 68 2c 20 64 6f 20  solute path, do 
2530: 6e 6f 74 68 69 6e 67 2e 0a 20 20 20 20 3b 3b 0a  nothing..    ;;.
2540: 20 20 20 20 2a 29 0a 20 20 20 20 20 20 23 20 52      *).      # R
2550: 65 6c 61 74 69 76 65 20 70 61 74 68 2c 20 70 72  elative path, pr
2560: 65 70 65 6e 64 20 24 63 77 64 2e 0a 20 20 20 20  epend $cwd..    
2570: 20 20 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62    func_normal_ab
2580: 73 70 61 74 68 5f 74 70 61 74 68 3d 60 70 77 64  spath_tpath=`pwd
2590: 60 2f 24 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61  `/$func_normal_a
25a0: 62 73 70 61 74 68 5f 74 70 61 74 68 0a 20 20 20  bspath_tpath.   
25b0: 20 3b 3b 0a 20 20 65 73 61 63 0a 20 20 23 20 43   ;;.  esac.  # C
25c0: 61 6e 63 65 6c 20 6f 75 74 20 61 6c 6c 20 74 68  ancel out all th
25d0: 65 20 73 69 6d 70 6c 65 20 73 74 75 66 66 20 74  e simple stuff t
25e0: 6f 20 73 61 76 65 20 69 74 65 72 61 74 69 6f 6e  o save iteration
25f0: 73 2e 20 20 57 65 20 61 6c 73 6f 20 77 61 6e 74  s.  We also want
2600: 0a 20 20 23 20 74 68 65 20 70 61 74 68 20 74 6f  .  # the path to
2610: 20 65 6e 64 20 77 69 74 68 20 61 20 73 6c 61 73   end with a slas
2620: 68 20 66 6f 72 20 65 61 73 65 20 6f 66 20 70 61  h for ease of pa
2630: 72 73 69 6e 67 2c 20 73 6f 20 6d 61 6b 65 20 73  rsing, so make s
2640: 75 72 65 0a 20 20 23 20 74 68 65 72 65 20 69 73  ure.  # there is
2650: 20 6f 6e 65 20 28 61 6e 64 20 6f 6e 6c 79 20 6f   one (and only o
2660: 6e 65 29 20 68 65 72 65 2e 0a 20 20 66 75 6e 63  ne) here..  func
2670: 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68 5f  _normal_abspath_
2680: 74 70 61 74 68 3d 60 24 45 43 48 4f 20 22 24 66  tpath=`$ECHO "$f
2690: 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61  unc_normal_abspa
26a0: 74 68 5f 74 70 61 74 68 22 20 7c 20 24 53 45 44  th_tpath" | $SED
26b0: 20 5c 0a 20 20 20 20 20 20 20 20 2d 65 20 22 24   \.        -e "$
26c0: 72 65 6d 6f 76 65 64 6f 74 70 61 72 74 73 22 20  removedotparts" 
26d0: 2d 65 20 22 24 63 6f 6c 6c 61 70 73 65 73 6c 61  -e "$collapsesla
26e0: 73 68 65 73 22 20 2d 65 20 22 24 66 69 6e 61 6c  shes" -e "$final
26f0: 73 6c 61 73 68 22 60 0a 20 20 77 68 69 6c 65 20  slash"`.  while 
2700: 3a 3b 20 64 6f 0a 20 20 20 20 23 20 50 72 6f 63  :; do.    # Proc
2710: 65 73 73 65 64 20 69 74 20 61 6c 6c 20 79 65 74  essed it all yet
2720: 3f 0a 20 20 20 20 69 66 20 74 65 73 74 20 22 24  ?.    if test "$
2730: 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70  func_normal_absp
2740: 61 74 68 5f 74 70 61 74 68 22 20 3d 20 2f 20 3b  ath_tpath" = / ;
2750: 20 74 68 65 6e 0a 20 20 20 20 20 20 23 20 49 66   then.      # If
2760: 20 77 65 20 61 73 63 65 6e 64 65 64 20 74 6f 20   we ascended to 
2770: 74 68 65 20 72 6f 6f 74 20 75 73 69 6e 67 20 22  the root using "
2780: 2e 2e 22 20 74 68 65 20 72 65 73 75 6c 74 20 6d  .." the result m
2790: 61 79 20 62 65 20 65 6d 70 74 79 20 6e 6f 77 2e  ay be empty now.
27a0: 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d  .      if test -
27b0: 7a 20 22 24 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f  z "$func_normal_
27c0: 61 62 73 70 61 74 68 5f 72 65 73 75 6c 74 22 20  abspath_result" 
27d0: 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 66  ; then.        f
27e0: 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61  unc_normal_abspa
27f0: 74 68 5f 72 65 73 75 6c 74 3d 2f 0a 20 20 20 20  th_result=/.    
2800: 20 20 66 69 0a 20 20 20 20 20 20 62 72 65 61 6b    fi.      break
2810: 0a 20 20 20 20 66 69 0a 20 20 20 20 66 75 6e 63  .    fi.    func
2820: 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68 5f  _normal_abspath_
2830: 74 63 6f 6d 70 6f 6e 65 6e 74 3d 60 24 45 43 48  tcomponent=`$ECH
2840: 4f 20 22 24 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f  O "$func_normal_
2850: 61 62 73 70 61 74 68 5f 74 70 61 74 68 22 20 7c  abspath_tpath" |
2860: 20 24 53 45 44 20 5c 0a 20 20 20 20 20 20 20 20   $SED \.        
2870: 2d 65 20 22 24 70 61 74 68 63 61 72 22 60 0a 20  -e "$pathcar"`. 
2880: 20 20 20 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61     func_normal_a
2890: 62 73 70 61 74 68 5f 74 70 61 74 68 3d 60 24 45  bspath_tpath=`$E
28a0: 43 48 4f 20 22 24 66 75 6e 63 5f 6e 6f 72 6d 61  CHO "$func_norma
28b0: 6c 5f 61 62 73 70 61 74 68 5f 74 70 61 74 68 22  l_abspath_tpath"
28c0: 20 7c 20 24 53 45 44 20 5c 0a 20 20 20 20 20 20   | $SED \.      
28d0: 20 20 2d 65 20 22 24 70 61 74 68 63 64 72 22 60    -e "$pathcdr"`
28e0: 0a 20 20 20 20 23 20 46 69 67 75 72 65 20 6f 75  .    # Figure ou
28f0: 74 20 77 68 61 74 20 74 6f 20 64 6f 20 77 69 74  t what to do wit
2900: 68 20 69 74 0a 20 20 20 20 63 61 73 65 20 24 66  h it.    case $f
2910: 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61  unc_normal_abspa
2920: 74 68 5f 74 63 6f 6d 70 6f 6e 65 6e 74 20 69 6e  th_tcomponent in
2930: 0a 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20  .      "").     
2940: 20 20 20 23 20 54 72 61 69 6c 69 6e 67 20 65 6d     # Trailing em
2950: 70 74 79 20 70 61 74 68 20 63 6f 6d 70 6f 6e 65  pty path compone
2960: 6e 74 2c 20 69 67 6e 6f 72 65 20 69 74 2e 0a 20  nt, ignore it.. 
2970: 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 2e 2e       ;;.      ..
2980: 29 0a 20 20 20 20 20 20 20 20 23 20 50 61 72 65  ).        # Pare
2990: 6e 74 20 64 69 72 3b 20 73 74 72 69 70 20 6c 61  nt dir; strip la
29a0: 73 74 20 61 73 73 65 6d 62 6c 65 64 20 63 6f 6d  st assembled com
29b0: 70 6f 6e 65 6e 74 20 66 72 6f 6d 20 72 65 73 75  ponent from resu
29c0: 6c 74 2e 0a 20 20 20 20 20 20 20 20 66 75 6e 63  lt..        func
29d0: 5f 64 69 72 6e 61 6d 65 20 22 24 66 75 6e 63 5f  _dirname "$func_
29e0: 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68 5f 72  normal_abspath_r
29f0: 65 73 75 6c 74 22 0a 20 20 20 20 20 20 20 20 66  esult".        f
2a00: 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61  unc_normal_abspa
2a10: 74 68 5f 72 65 73 75 6c 74 3d 24 66 75 6e 63 5f  th_result=$func_
2a20: 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 20  dirname_result. 
2a30: 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 2a 29       ;;.      *)
2a40: 0a 20 20 20 20 20 20 20 20 23 20 41 63 74 75 61  .        # Actua
2a50: 6c 20 70 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74  l path component
2a60: 2c 20 61 70 70 65 6e 64 20 69 74 2e 0a 20 20 20  , append it..   
2a70: 20 20 20 20 20 66 75 6e 63 5f 6e 6f 72 6d 61 6c       func_normal
2a80: 5f 61 62 73 70 61 74 68 5f 72 65 73 75 6c 74 3d  _abspath_result=
2a90: 24 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73  $func_normal_abs
2aa0: 70 61 74 68 5f 72 65 73 75 6c 74 2f 24 66 75 6e  path_result/$fun
2ab0: 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68  c_normal_abspath
2ac0: 5f 74 63 6f 6d 70 6f 6e 65 6e 74 0a 20 20 20 20  _tcomponent.    
2ad0: 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20 20    ;;.    esac.  
2ae0: 64 6f 6e 65 0a 20 20 23 20 52 65 73 74 6f 72 65  done.  # Restore
2af0: 20 6c 65 61 64 69 6e 67 20 64 6f 75 62 6c 65 2d   leading double-
2b00: 73 6c 61 73 68 20 69 66 20 6f 6e 65 20 77 61 73  slash if one was
2b10: 20 66 6f 75 6e 64 20 6f 6e 20 65 6e 74 72 79 2e   found on entry.
2b20: 0a 20 20 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61  .  func_normal_a
2b30: 62 73 70 61 74 68 5f 72 65 73 75 6c 74 3d 24 66  bspath_result=$f
2b40: 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61  unc_normal_abspa
2b50: 74 68 5f 61 6c 74 6e 61 6d 65 73 70 61 63 65 24  th_altnamespace$
2b60: 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70  func_normal_absp
2b70: 61 74 68 5f 72 65 73 75 6c 74 0a 7d 0a 0a 23 20  ath_result.}..# 
2b80: 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f 70 61  func_relative_pa
2b90: 74 68 20 53 52 43 44 49 52 20 44 53 54 44 49 52  th SRCDIR DSTDIR
2ba0: 0a 23 20 67 65 6e 65 72 61 74 65 73 20 61 20 72  .# generates a r
2bb0: 65 6c 61 74 69 76 65 20 70 61 74 68 20 66 72 6f  elative path fro
2bc0: 6d 20 53 52 43 44 49 52 20 74 6f 20 44 53 54 44  m SRCDIR to DSTD
2bd0: 49 52 2c 20 77 69 74 68 20 61 20 74 72 61 69 6c  IR, with a trail
2be0: 69 6e 67 0a 23 20 73 6c 61 73 68 20 69 66 20 6e  ing.# slash if n
2bf0: 6f 6e 2d 65 6d 70 74 79 2c 20 73 75 69 74 61 62  on-empty, suitab
2c00: 6c 65 20 66 6f 72 20 69 6d 6d 65 64 69 61 74 65  le for immediate
2c10: 6c 79 20 61 70 70 65 6e 64 69 6e 67 20 61 20 66  ly appending a f
2c20: 69 6c 65 6e 61 6d 65 0a 23 20 77 69 74 68 6f 75  ilename.# withou
2c30: 74 20 6e 65 65 64 69 6e 67 20 74 6f 20 61 70 70  t needing to app
2c40: 65 6e 64 20 61 20 73 65 70 61 72 61 74 6f 72 2e  end a separator.
2c50: 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 76  .#             v
2c60: 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 69 6e  alue returned in
2c70: 20 22 24 66 75 6e 63 5f 72 65 6c 61 74 69 76 65   "$func_relative
2c80: 5f 70 61 74 68 5f 72 65 73 75 6c 74 22 0a 66 75  _path_result".fu
2c90: 6e 63 5f 72 65 6c 61 74 69 76 65 5f 70 61 74 68  nc_relative_path
2ca0: 20 28 29 0a 7b 0a 20 20 66 75 6e 63 5f 72 65 6c   ().{.  func_rel
2cb0: 61 74 69 76 65 5f 70 61 74 68 5f 72 65 73 75 6c  ative_path_resul
2cc0: 74 3d 0a 20 20 66 75 6e 63 5f 6e 6f 72 6d 61 6c  t=.  func_normal
2cd0: 5f 61 62 73 70 61 74 68 20 22 24 31 22 0a 20 20  _abspath "$1".  
2ce0: 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f 70 61  func_relative_pa
2cf0: 74 68 5f 74 6c 69 62 64 69 72 3d 24 66 75 6e 63  th_tlibdir=$func
2d00: 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70 61 74 68 5f  _normal_abspath_
2d10: 72 65 73 75 6c 74 0a 20 20 66 75 6e 63 5f 6e 6f  result.  func_no
2d20: 72 6d 61 6c 5f 61 62 73 70 61 74 68 20 22 24 32  rmal_abspath "$2
2d30: 22 0a 20 20 66 75 6e 63 5f 72 65 6c 61 74 69 76  ".  func_relativ
2d40: 65 5f 70 61 74 68 5f 74 62 69 6e 64 69 72 3d 24  e_path_tbindir=$
2d50: 66 75 6e 63 5f 6e 6f 72 6d 61 6c 5f 61 62 73 70  func_normal_absp
2d60: 61 74 68 5f 72 65 73 75 6c 74 0a 0a 20 20 23 20  ath_result..  # 
2d70: 41 73 63 65 6e 64 20 74 68 65 20 74 72 65 65 20  Ascend the tree 
2d80: 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 6c 69  starting from li
2d90: 62 64 69 72 0a 20 20 77 68 69 6c 65 20 3a 3b 20  bdir.  while :; 
2da0: 64 6f 0a 20 20 20 20 23 20 63 68 65 63 6b 20 69  do.    # check i
2db0: 66 20 77 65 20 68 61 76 65 20 66 6f 75 6e 64 20  f we have found 
2dc0: 61 20 70 72 65 66 69 78 20 6f 66 20 62 69 6e 64  a prefix of bind
2dd0: 69 72 0a 20 20 20 20 63 61 73 65 20 24 66 75 6e  ir.    case $fun
2de0: 63 5f 72 65 6c 61 74 69 76 65 5f 70 61 74 68 5f  c_relative_path_
2df0: 74 62 69 6e 64 69 72 20 69 6e 0a 20 20 20 20 20  tbindir in.     
2e00: 20 24 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f   $func_relative_
2e10: 70 61 74 68 5f 74 6c 69 62 64 69 72 29 0a 20 20  path_tlibdir).  
2e20: 20 20 20 20 20 20 23 20 66 6f 75 6e 64 20 61 6e        # found an
2e30: 20 65 78 61 63 74 20 6d 61 74 63 68 0a 20 20 20   exact match.   
2e40: 20 20 20 20 20 66 75 6e 63 5f 72 65 6c 61 74 69       func_relati
2e50: 76 65 5f 70 61 74 68 5f 74 63 61 6e 63 65 6c 6c  ve_path_tcancell
2e60: 65 64 3d 0a 20 20 20 20 20 20 20 20 62 72 65 61  ed=.        brea
2e70: 6b 0a 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20  k.        ;;.   
2e80: 20 20 20 24 66 75 6e 63 5f 72 65 6c 61 74 69 76     $func_relativ
2e90: 65 5f 70 61 74 68 5f 74 6c 69 62 64 69 72 2a 29  e_path_tlibdir*)
2ea0: 0a 20 20 20 20 20 20 20 20 23 20 66 6f 75 6e 64  .        # found
2eb0: 20 61 20 6d 61 74 63 68 69 6e 67 20 70 72 65 66   a matching pref
2ec0: 69 78 0a 20 20 20 20 20 20 20 20 66 75 6e 63 5f  ix.        func_
2ed0: 73 74 72 69 70 6e 61 6d 65 20 22 24 66 75 6e 63  stripname "$func
2ee0: 5f 72 65 6c 61 74 69 76 65 5f 70 61 74 68 5f 74  _relative_path_t
2ef0: 6c 69 62 64 69 72 22 20 27 27 20 22 24 66 75 6e  libdir" '' "$fun
2f00: 63 5f 72 65 6c 61 74 69 76 65 5f 70 61 74 68 5f  c_relative_path_
2f10: 74 62 69 6e 64 69 72 22 0a 20 20 20 20 20 20 20  tbindir".       
2f20: 20 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f 70   func_relative_p
2f30: 61 74 68 5f 74 63 61 6e 63 65 6c 6c 65 64 3d 24  ath_tcancelled=$
2f40: 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72  func_stripname_r
2f50: 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 69 66  esult.        if
2f60: 20 74 65 73 74 20 2d 7a 20 22 24 66 75 6e 63 5f   test -z "$func_
2f70: 72 65 6c 61 74 69 76 65 5f 70 61 74 68 5f 72 65  relative_path_re
2f80: 73 75 6c 74 22 3b 20 74 68 65 6e 0a 20 20 20 20  sult"; then.    
2f90: 20 20 20 20 20 20 66 75 6e 63 5f 72 65 6c 61 74        func_relat
2fa0: 69 76 65 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d  ive_path_result=
2fb0: 2e 0a 20 20 20 20 20 20 20 20 66 69 0a 20 20 20  ..        fi.   
2fc0: 20 20 20 20 20 62 72 65 61 6b 0a 20 20 20 20 20       break.     
2fd0: 20 20 20 3b 3b 0a 20 20 20 20 20 20 2a 29 0a 20     ;;.      *). 
2fe0: 20 20 20 20 20 20 20 66 75 6e 63 5f 64 69 72 6e         func_dirn
2ff0: 61 6d 65 20 24 66 75 6e 63 5f 72 65 6c 61 74 69  ame $func_relati
3000: 76 65 5f 70 61 74 68 5f 74 6c 69 62 64 69 72 0a  ve_path_tlibdir.
3010: 20 20 20 20 20 20 20 20 66 75 6e 63 5f 72 65 6c          func_rel
3020: 61 74 69 76 65 5f 70 61 74 68 5f 74 6c 69 62 64  ative_path_tlibd
3030: 69 72 3d 24 7b 66 75 6e 63 5f 64 69 72 6e 61 6d  ir=${func_dirnam
3040: 65 5f 72 65 73 75 6c 74 7d 0a 20 20 20 20 20 20  e_result}.      
3050: 20 20 69 66 20 74 65 73 74 20 22 78 24 66 75 6e    if test "x$fun
3060: 63 5f 72 65 6c 61 74 69 76 65 5f 70 61 74 68 5f  c_relative_path_
3070: 74 6c 69 62 64 69 72 22 20 3d 20 78 20 3b 20 74  tlibdir" = x ; t
3080: 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 23 20  hen.          # 
3090: 48 61 76 65 20 74 6f 20 64 65 73 63 65 6e 64 20  Have to descend 
30a0: 61 6c 6c 20 74 68 65 20 77 61 79 20 74 6f 20 74  all the way to t
30b0: 68 65 20 72 6f 6f 74 21 0a 20 20 20 20 20 20 20  he root!.       
30c0: 20 20 20 66 75 6e 63 5f 72 65 6c 61 74 69 76 65     func_relative
30d0: 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d 2e 2e 2f  _path_result=../
30e0: 24 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f 70  $func_relative_p
30f0: 61 74 68 5f 72 65 73 75 6c 74 0a 20 20 20 20 20  ath_result.     
3100: 20 20 20 20 20 66 75 6e 63 5f 72 65 6c 61 74 69       func_relati
3110: 76 65 5f 70 61 74 68 5f 74 63 61 6e 63 65 6c 6c  ve_path_tcancell
3120: 65 64 3d 24 66 75 6e 63 5f 72 65 6c 61 74 69 76  ed=$func_relativ
3130: 65 5f 70 61 74 68 5f 74 62 69 6e 64 69 72 0a 20  e_path_tbindir. 
3140: 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 20           break. 
3150: 20 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20         fi.      
3160: 20 20 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f    func_relative_
3170: 70 61 74 68 5f 72 65 73 75 6c 74 3d 2e 2e 2f 24  path_result=../$
3180: 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f 70 61  func_relative_pa
3190: 74 68 5f 72 65 73 75 6c 74 0a 20 20 20 20 20 20  th_result.      
31a0: 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20 20    ;;.    esac.  
31b0: 64 6f 6e 65 0a 0a 20 20 23 20 4e 6f 77 20 63 61  done..  # Now ca
31c0: 6c 63 75 6c 61 74 65 20 70 61 74 68 3b 20 74 61  lculate path; ta
31d0: 6b 65 20 63 61 72 65 20 74 6f 20 61 76 6f 69 64  ke care to avoid
31e0: 20 64 6f 75 62 6c 69 6e 67 2d 75 70 20 73 6c 61   doubling-up sla
31f0: 73 68 65 73 2e 0a 20 20 66 75 6e 63 5f 73 74 72  shes..  func_str
3200: 69 70 6e 61 6d 65 20 27 27 20 27 2f 27 20 22 24  ipname '' '/' "$
3210: 66 75 6e 63 5f 72 65 6c 61 74 69 76 65 5f 70 61  func_relative_pa
3220: 74 68 5f 72 65 73 75 6c 74 22 0a 20 20 66 75 6e  th_result".  fun
3230: 63 5f 72 65 6c 61 74 69 76 65 5f 70 61 74 68 5f  c_relative_path_
3240: 72 65 73 75 6c 74 3d 24 66 75 6e 63 5f 73 74 72  result=$func_str
3250: 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 20 20  ipname_result.  
3260: 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
3270: 2f 27 20 27 2f 27 20 22 24 66 75 6e 63 5f 72 65  /' '/' "$func_re
3280: 6c 61 74 69 76 65 5f 70 61 74 68 5f 74 63 61 6e  lative_path_tcan
3290: 63 65 6c 6c 65 64 22 0a 20 20 69 66 20 74 65 73  celled".  if tes
32a0: 74 20 22 78 24 66 75 6e 63 5f 73 74 72 69 70 6e  t "x$func_stripn
32b0: 61 6d 65 5f 72 65 73 75 6c 74 22 20 21 3d 20 78  ame_result" != x
32c0: 20 3b 20 74 68 65 6e 0a 20 20 20 20 66 75 6e 63   ; then.    func
32d0: 5f 72 65 6c 61 74 69 76 65 5f 70 61 74 68 5f 72  _relative_path_r
32e0: 65 73 75 6c 74 3d 24 7b 66 75 6e 63 5f 72 65 6c  esult=${func_rel
32f0: 61 74 69 76 65 5f 70 61 74 68 5f 72 65 73 75 6c  ative_path_resul
3300: 74 7d 2f 24 7b 66 75 6e 63 5f 73 74 72 69 70 6e  t}/${func_stripn
3310: 61 6d 65 5f 72 65 73 75 6c 74 7d 0a 20 20 66 69  ame_result}.  fi
3320: 0a 0a 20 20 23 20 4e 6f 72 6d 61 6c 69 73 61 74  ..  # Normalisat
3330: 69 6f 6e 2e 20 49 66 20 62 69 6e 64 69 72 20 69  ion. If bindir i
3340: 73 20 6c 69 62 64 69 72 2c 20 72 65 74 75 72 6e  s libdir, return
3350: 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2c 0a 20   empty string,. 
3360: 20 23 20 65 6c 73 65 20 72 65 6c 61 74 69 76 65   # else relative
3370: 20 70 61 74 68 20 65 6e 64 69 6e 67 20 77 69 74   path ending wit
3380: 68 20 61 20 73 6c 61 73 68 3b 20 65 69 74 68 65  h a slash; eithe
3390: 72 20 77 61 79 2c 20 74 61 72 67 65 74 0a 20 20  r way, target.  
33a0: 23 20 66 69 6c 65 20 6e 61 6d 65 20 63 61 6e 20  # file name can 
33b0: 62 65 20 64 69 72 65 63 74 6c 79 20 61 70 70 65  be directly appe
33c0: 6e 64 65 64 2e 0a 20 20 69 66 20 74 65 73 74 20  nded..  if test 
33d0: 21 20 2d 7a 20 22 24 66 75 6e 63 5f 72 65 6c 61  ! -z "$func_rela
33e0: 74 69 76 65 5f 70 61 74 68 5f 72 65 73 75 6c 74  tive_path_result
33f0: 22 3b 20 74 68 65 6e 0a 20 20 20 20 66 75 6e 63  "; then.    func
3400: 5f 73 74 72 69 70 6e 61 6d 65 20 27 2e 2f 27 20  _stripname './' 
3410: 27 27 20 22 24 66 75 6e 63 5f 72 65 6c 61 74 69  '' "$func_relati
3420: 76 65 5f 70 61 74 68 5f 72 65 73 75 6c 74 2f 22  ve_path_result/"
3430: 0a 20 20 20 20 66 75 6e 63 5f 72 65 6c 61 74 69  .    func_relati
3440: 76 65 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d 24  ve_path_result=$
3450: 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72  func_stripname_r
3460: 65 73 75 6c 74 0a 20 20 66 69 0a 7d 0a 0a 23 20  esult.  fi.}..# 
3470: 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 69 73  The name of this
3480: 20 70 72 6f 67 72 61 6d 3a 0a 66 75 6e 63 5f 64   program:.func_d
3490: 69 72 6e 61 6d 65 5f 61 6e 64 5f 62 61 73 65 6e  irname_and_basen
34a0: 61 6d 65 20 22 24 70 72 6f 67 70 61 74 68 22 0a  ame "$progpath".
34b0: 70 72 6f 67 6e 61 6d 65 3d 24 66 75 6e 63 5f 62  progname=$func_b
34c0: 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 0a  asename_result..
34d0: 23 20 4d 61 6b 65 20 73 75 72 65 20 77 65 20 68  # Make sure we h
34e0: 61 76 65 20 61 6e 20 61 62 73 6f 6c 75 74 65 20  ave an absolute 
34f0: 70 61 74 68 20 66 6f 72 20 72 65 65 78 65 63 75  path for reexecu
3500: 74 69 6f 6e 3a 0a 63 61 73 65 20 24 70 72 6f 67  tion:.case $prog
3510: 70 61 74 68 20 69 6e 0a 20 20 5b 5c 5c 2f 5d 2a  path in.  [\\/]*
3520: 7c 5b 41 2d 5a 61 2d 7a 5d 3a 5c 5c 2a 29 20 3b  |[A-Za-z]:\\*) ;
3530: 3b 0a 20 20 2a 5b 5c 5c 2f 5d 2a 29 0a 20 20 20  ;.  *[\\/]*).   
3540: 20 20 70 72 6f 67 64 69 72 3d 24 66 75 6e 63 5f    progdir=$func_
3550: 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 20  dirname_result. 
3560: 20 20 20 20 70 72 6f 67 64 69 72 3d 60 63 64 20      progdir=`cd 
3570: 22 24 70 72 6f 67 64 69 72 22 20 26 26 20 70 77  "$progdir" && pw
3580: 64 60 0a 20 20 20 20 20 70 72 6f 67 70 61 74 68  d`.     progpath
3590: 3d 22 24 70 72 6f 67 64 69 72 2f 24 70 72 6f 67  ="$progdir/$prog
35a0: 6e 61 6d 65 22 0a 20 20 20 20 20 3b 3b 0a 20 20  name".     ;;.  
35b0: 2a 29 0a 20 20 20 20 20 73 61 76 65 5f 49 46 53  *).     save_IFS
35c0: 3d 22 24 49 46 53 22 0a 20 20 20 20 20 49 46 53  ="$IFS".     IFS
35d0: 3d 24 7b 50 41 54 48 5f 53 45 50 41 52 41 54 4f  =${PATH_SEPARATO
35e0: 52 2d 3a 7d 0a 20 20 20 20 20 66 6f 72 20 70 72  R-:}.     for pr
35f0: 6f 67 64 69 72 20 69 6e 20 24 50 41 54 48 3b 20  ogdir in $PATH; 
3600: 64 6f 0a 20 20 20 20 20 20 20 49 46 53 3d 22 24  do.       IFS="$
3610: 73 61 76 65 5f 49 46 53 22 0a 20 20 20 20 20 20  save_IFS".      
3620: 20 74 65 73 74 20 2d 78 20 22 24 70 72 6f 67 64   test -x "$progd
3630: 69 72 2f 24 70 72 6f 67 6e 61 6d 65 22 20 26 26  ir/$progname" &&
3640: 20 62 72 65 61 6b 0a 20 20 20 20 20 64 6f 6e 65   break.     done
3650: 0a 20 20 20 20 20 49 46 53 3d 22 24 73 61 76 65  .     IFS="$save
3660: 5f 49 46 53 22 0a 20 20 20 20 20 74 65 73 74 20  _IFS".     test 
3670: 2d 6e 20 22 24 70 72 6f 67 64 69 72 22 20 7c 7c  -n "$progdir" ||
3680: 20 70 72 6f 67 64 69 72 3d 60 70 77 64 60 0a 20   progdir=`pwd`. 
3690: 20 20 20 20 70 72 6f 67 70 61 74 68 3d 22 24 70      progpath="$p
36a0: 72 6f 67 64 69 72 2f 24 70 72 6f 67 6e 61 6d 65  rogdir/$progname
36b0: 22 0a 20 20 20 20 20 3b 3b 0a 65 73 61 63 0a 0a  ".     ;;.esac..
36c0: 23 20 53 65 64 20 73 75 62 73 74 69 74 75 74 69  # Sed substituti
36d0: 6f 6e 20 74 68 61 74 20 68 65 6c 70 73 20 75 73  on that helps us
36e0: 20 64 6f 20 72 6f 62 75 73 74 20 71 75 6f 74 69   do robust quoti
36f0: 6e 67 2e 20 20 49 74 20 62 61 63 6b 73 6c 61 73  ng.  It backslas
3700: 68 69 66 69 65 73 0a 23 20 6d 65 74 61 63 68 61  hifies.# metacha
3710: 72 61 63 74 65 72 73 20 74 68 61 74 20 61 72 65  racters that are
3720: 20 73 74 69 6c 6c 20 61 63 74 69 76 65 20 77 69   still active wi
3730: 74 68 69 6e 20 64 6f 75 62 6c 65 2d 71 75 6f 74  thin double-quot
3740: 65 64 20 73 74 72 69 6e 67 73 2e 0a 58 73 65 64  ed strings..Xsed
3750: 3d 22 24 7b 53 45 44 7d 22 27 20 2d 65 20 31 73  ="${SED}"' -e 1s
3760: 2f 5e 58 2f 2f 27 0a 73 65 64 5f 71 75 6f 74 65  /^X//'.sed_quote
3770: 5f 73 75 62 73 74 3d 27 73 2f 5c 28 5b 60 22 24  _subst='s/\([`"$
3780: 5c 5c 5d 5c 29 2f 5c 5c 5c 31 2f 67 27 0a 0a 23  \\]\)/\\\1/g'..#
3790: 20 53 61 6d 65 20 61 73 20 61 62 6f 76 65 2c 20   Same as above, 
37a0: 62 75 74 20 64 6f 20 6e 6f 74 20 71 75 6f 74 65  but do not quote
37b0: 20 76 61 72 69 61 62 6c 65 20 72 65 66 65 72 65   variable refere
37c0: 6e 63 65 73 2e 0a 64 6f 75 62 6c 65 5f 71 75 6f  nces..double_quo
37d0: 74 65 5f 73 75 62 73 74 3d 27 73 2f 5c 28 5b 22  te_subst='s/\(["
37e0: 60 5c 5c 5d 5c 29 2f 5c 5c 5c 31 2f 67 27 0a 0a  `\\]\)/\\\1/g'..
37f0: 23 20 53 65 64 20 73 75 62 73 74 69 74 75 74 69  # Sed substituti
3800: 6f 6e 20 74 68 61 74 20 74 75 72 6e 73 20 61 20  on that turns a 
3810: 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 72 65  string into a re
3820: 67 65 78 20 6d 61 74 63 68 69 6e 67 20 66 6f 72  gex matching for
3830: 20 74 68 65 0a 23 20 73 74 72 69 6e 67 20 6c 69   the.# string li
3840: 74 65 72 61 6c 6c 79 2e 0a 73 65 64 5f 6d 61 6b  terally..sed_mak
3850: 65 5f 6c 69 74 65 72 61 6c 5f 72 65 67 65 78 3d  e_literal_regex=
3860: 27 73 2c 5b 5d 2e 5b 5e 24 5c 5c 2a 5c 2f 5d 2c  's,[].[^$\\*\/],
3870: 5c 5c 26 2c 67 27 0a 0a 23 20 53 65 64 20 73 75  \\&,g'..# Sed su
3880: 62 73 74 69 74 75 74 69 6f 6e 20 74 68 61 74 20  bstitution that 
3890: 63 6f 6e 76 65 72 74 73 20 61 20 77 33 32 20 66  converts a w32 f
38a0: 69 6c 65 20 6e 61 6d 65 20 6f 72 20 70 61 74 68  ile name or path
38b0: 0a 23 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e  .# which contain
38c0: 73 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 65  s forward slashe
38d0: 73 2c 20 69 6e 74 6f 20 6f 6e 65 20 74 68 61 74  s, into one that
38e0: 20 63 6f 6e 74 61 69 6e 73 0a 23 20 28 65 73 63   contains.# (esc
38f0: 61 70 65 64 29 20 62 61 63 6b 73 6c 61 73 68 65  aped) backslashe
3900: 73 2e 20 20 41 20 76 65 72 79 20 6e 61 69 76 65  s.  A very naive
3910: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2e   implementation.
3920: 0a 6c 74 5f 73 65 64 5f 6e 61 69 76 65 5f 62 61  .lt_sed_naive_ba
3930: 63 6b 73 6c 61 73 68 69 66 79 3d 27 73 7c 5c 5c  ckslashify='s|\\
3940: 5c 5c 2a 7c 5c 5c 7c 67 3b 73 7c 2f 7c 5c 5c 7c  \\*|\\|g;s|/|\\|
3950: 67 3b 73 7c 5c 5c 7c 5c 5c 5c 5c 7c 67 27 0a 0a  g;s|\\|\\\\|g'..
3960: 23 20 52 65 2d 60 5c 27 20 70 61 72 61 6d 65 74  # Re-`\' paramet
3970: 65 72 20 65 78 70 61 6e 73 69 6f 6e 73 20 69 6e  er expansions in
3980: 20 6f 75 74 70 75 74 20 6f 66 20 64 6f 75 62 6c   output of doubl
3990: 65 5f 71 75 6f 74 65 5f 73 75 62 73 74 20 74 68  e_quote_subst th
39a0: 61 74 20 77 65 72 65 0a 23 20 60 5c 27 2d 65 64  at were.# `\'-ed
39b0: 20 69 6e 20 69 6e 70 75 74 20 74 6f 20 74 68 65   in input to the
39c0: 20 73 61 6d 65 2e 20 20 49 66 20 61 6e 20 6f 64   same.  If an od
39d0: 64 20 6e 75 6d 62 65 72 20 6f 66 20 60 5c 27 20  d number of `\' 
39e0: 70 72 65 63 65 64 65 64 20 61 20 27 24 27 0a 23  preceded a '$'.#
39f0: 20 69 6e 20 69 6e 70 75 74 20 74 6f 20 64 6f 75   in input to dou
3a00: 62 6c 65 5f 71 75 6f 74 65 5f 73 75 62 73 74 2c  ble_quote_subst,
3a10: 20 74 68 61 74 20 27 24 27 20 77 61 73 20 70 72   that '$' was pr
3a20: 6f 74 65 63 74 65 64 20 66 72 6f 6d 20 65 78 70  otected from exp
3a30: 61 6e 73 69 6f 6e 2e 0a 23 20 53 69 6e 63 65 20  ansion..# Since 
3a40: 65 61 63 68 20 69 6e 70 75 74 20 60 5c 27 20 69  each input `\' i
3a50: 73 20 6e 6f 77 20 74 77 6f 20 60 5c 27 73 2c 20  s now two `\'s, 
3a60: 6c 6f 6f 6b 20 66 6f 72 20 61 6e 79 20 6e 75 6d  look for any num
3a70: 62 65 72 20 6f 66 20 72 75 6e 73 20 6f 66 0a 23  ber of runs of.#
3a80: 20 66 6f 75 72 20 60 5c 27 73 20 66 6f 6c 6c 6f   four `\'s follo
3a90: 77 65 64 20 62 79 20 74 77 6f 20 60 5c 27 73 20  wed by two `\'s 
3aa0: 61 6e 64 20 74 68 65 6e 20 61 20 27 24 27 2e 20  and then a '$'. 
3ab0: 20 60 5c 27 20 74 68 61 74 20 27 24 27 2e 0a 62   `\' that '$'..b
3ac0: 73 3d 27 5c 5c 27 0a 62 73 32 3d 27 5c 5c 5c 5c  s='\\'.bs2='\\\\
3ad0: 27 0a 62 73 34 3d 27 5c 5c 5c 5c 5c 5c 5c 5c 27  '.bs4='\\\\\\\\'
3ae0: 0a 64 6f 6c 6c 61 72 3d 27 5c 24 27 0a 73 65 64  .dollar='\$'.sed
3af0: 5f 64 6f 75 62 6c 65 5f 62 61 63 6b 73 6c 61 73  _double_backslas
3b00: 68 3d 22 5c 0a 20 20 73 2f 24 62 73 34 2f 26 5c  h="\.  s/$bs4/&\
3b10: 5c 0a 2f 67 0a 20 20 73 2f 5e 24 62 73 32 24 64  \./g.  s/^$bs2$d
3b20: 6f 6c 6c 61 72 2f 24 62 73 26 2f 0a 20 20 73 2f  ollar/$bs&/.  s/
3b30: 5c 5c 28 5b 5e 24 62 73 5d 5c 5c 29 24 62 73 32  \\([^$bs]\\)$bs2
3b40: 24 64 6f 6c 6c 61 72 2f 5c 5c 31 24 62 73 32 24  $dollar/\\1$bs2$
3b50: 62 73 24 64 6f 6c 6c 61 72 2f 67 0a 20 20 73 2f  bs$dollar/g.  s/
3b60: 5c 6e 2f 2f 67 22 0a 0a 23 20 53 74 61 6e 64 61  \n//g"..# Standa
3b70: 72 64 20 6f 70 74 69 6f 6e 73 3a 0a 6f 70 74 5f  rd options:.opt_
3b80: 64 72 79 5f 72 75 6e 3d 66 61 6c 73 65 0a 6f 70  dry_run=false.op
3b90: 74 5f 68 65 6c 70 3d 66 61 6c 73 65 0a 6f 70 74  t_help=false.opt
3ba0: 5f 71 75 69 65 74 3d 66 61 6c 73 65 0a 6f 70 74  _quiet=false.opt
3bb0: 5f 76 65 72 62 6f 73 65 3d 66 61 6c 73 65 0a 6f  _verbose=false.o
3bc0: 70 74 5f 77 61 72 6e 69 6e 67 3d 3a 0a 0a 23 20  pt_warning=:..# 
3bd0: 66 75 6e 63 5f 65 63 68 6f 20 61 72 67 2e 2e 2e  func_echo arg...
3be0: 0a 23 20 45 63 68 6f 20 70 72 6f 67 72 61 6d 20  .# Echo program 
3bf0: 6e 61 6d 65 20 70 72 65 66 69 78 65 64 20 6d 65  name prefixed me
3c00: 73 73 61 67 65 2c 20 61 6c 6f 6e 67 20 77 69 74  ssage, along wit
3c10: 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 6f  h the current mo
3c20: 64 65 0a 23 20 6e 61 6d 65 20 69 66 20 69 74 20  de.# name if it 
3c30: 68 61 73 20 62 65 65 6e 20 73 65 74 20 79 65 74  has been set yet
3c40: 2e 0a 66 75 6e 63 5f 65 63 68 6f 20 28 29 0a 7b  ..func_echo ().{
3c50: 0a 20 20 20 20 24 45 43 48 4f 20 22 24 70 72 6f  .    $ECHO "$pro
3c60: 67 6e 61 6d 65 3a 20 24 7b 6f 70 74 5f 6d 6f 64  gname: ${opt_mod
3c70: 65 2b 24 6f 70 74 5f 6d 6f 64 65 3a 20 7d 24 2a  e+$opt_mode: }$*
3c80: 22 0a 7d 0a 0a 23 20 66 75 6e 63 5f 76 65 72 62  ".}..# func_verb
3c90: 6f 73 65 20 61 72 67 2e 2e 2e 0a 23 20 45 63 68  ose arg....# Ech
3ca0: 6f 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65 20 70  o program name p
3cb0: 72 65 66 69 78 65 64 20 6d 65 73 73 61 67 65 20  refixed message 
3cc0: 69 6e 20 76 65 72 62 6f 73 65 20 6d 6f 64 65 20  in verbose mode 
3cd0: 6f 6e 6c 79 2e 0a 66 75 6e 63 5f 76 65 72 62 6f  only..func_verbo
3ce0: 73 65 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  se ().{.    $opt
3cf0: 5f 76 65 72 62 6f 73 65 20 26 26 20 66 75 6e 63  _verbose && func
3d00: 5f 65 63 68 6f 20 24 7b 31 2b 22 24 40 22 7d 0a  _echo ${1+"$@"}.
3d10: 0a 20 20 20 20 23 20 41 20 62 75 67 20 69 6e 20  .    # A bug in 
3d20: 62 61 73 68 20 68 61 6c 74 73 20 74 68 65 20 73  bash halts the s
3d30: 63 72 69 70 74 20 69 66 20 74 68 65 20 6c 61 73  cript if the las
3d40: 74 20 6c 69 6e 65 20 6f 66 20 61 20 66 75 6e 63  t line of a func
3d50: 74 69 6f 6e 0a 20 20 20 20 23 20 66 61 69 6c 73  tion.    # fails
3d60: 20 77 68 65 6e 20 73 65 74 20 2d 65 20 69 73 20   when set -e is 
3d70: 69 6e 20 66 6f 72 63 65 2c 20 73 6f 20 77 65 20  in force, so we 
3d80: 6e 65 65 64 20 61 6e 6f 74 68 65 72 20 63 6f 6d  need another com
3d90: 6d 61 6e 64 20 74 6f 0a 20 20 20 20 23 20 77 6f  mand to.    # wo
3da0: 72 6b 20 61 72 6f 75 6e 64 20 74 68 61 74 3a 0a  rk around that:.
3db0: 20 20 20 20 3a 0a 7d 0a 0a 23 20 66 75 6e 63 5f      :.}..# func_
3dc0: 65 63 68 6f 5f 61 6c 6c 20 61 72 67 2e 2e 2e 0a  echo_all arg....
3dd0: 23 20 49 6e 76 6f 6b 65 20 24 45 43 48 4f 20 77  # Invoke $ECHO w
3de0: 69 74 68 20 61 6c 6c 20 61 72 67 73 2c 20 73 70  ith all args, sp
3df0: 61 63 65 2d 73 65 70 61 72 61 74 65 64 2e 0a 66  ace-separated..f
3e00: 75 6e 63 5f 65 63 68 6f 5f 61 6c 6c 20 28 29 0a  unc_echo_all ().
3e10: 7b 0a 20 20 20 20 24 45 43 48 4f 20 22 24 2a 22  {.    $ECHO "$*"
3e20: 0a 7d 0a 0a 23 20 66 75 6e 63 5f 65 72 72 6f 72  .}..# func_error
3e30: 20 61 72 67 2e 2e 2e 0a 23 20 45 63 68 6f 20 70   arg....# Echo p
3e40: 72 6f 67 72 61 6d 20 6e 61 6d 65 20 70 72 65 66  rogram name pref
3e50: 69 78 65 64 20 6d 65 73 73 61 67 65 20 74 6f 20  ixed message to 
3e60: 73 74 61 6e 64 61 72 64 20 65 72 72 6f 72 2e 0a  standard error..
3e70: 66 75 6e 63 5f 65 72 72 6f 72 20 28 29 0a 7b 0a  func_error ().{.
3e80: 20 20 20 20 24 45 43 48 4f 20 22 24 70 72 6f 67      $ECHO "$prog
3e90: 6e 61 6d 65 3a 20 24 7b 6f 70 74 5f 6d 6f 64 65  name: ${opt_mode
3ea0: 2b 24 6f 70 74 5f 6d 6f 64 65 3a 20 7d 22 24 7b  +$opt_mode: }"${
3eb0: 31 2b 22 24 40 22 7d 20 31 3e 26 32 0a 7d 0a 0a  1+"$@"} 1>&2.}..
3ec0: 23 20 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 61  # func_warning a
3ed0: 72 67 2e 2e 2e 0a 23 20 45 63 68 6f 20 70 72 6f  rg....# Echo pro
3ee0: 67 72 61 6d 20 6e 61 6d 65 20 70 72 65 66 69 78  gram name prefix
3ef0: 65 64 20 77 61 72 6e 69 6e 67 20 6d 65 73 73 61  ed warning messa
3f00: 67 65 20 74 6f 20 73 74 61 6e 64 61 72 64 20 65  ge to standard e
3f10: 72 72 6f 72 2e 0a 66 75 6e 63 5f 77 61 72 6e 69  rror..func_warni
3f20: 6e 67 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  ng ().{.    $opt
3f30: 5f 77 61 72 6e 69 6e 67 20 26 26 20 24 45 43 48  _warning && $ECH
3f40: 4f 20 22 24 70 72 6f 67 6e 61 6d 65 3a 20 24 7b  O "$progname: ${
3f50: 6f 70 74 5f 6d 6f 64 65 2b 24 6f 70 74 5f 6d 6f  opt_mode+$opt_mo
3f60: 64 65 3a 20 7d 77 61 72 6e 69 6e 67 3a 20 22 24  de: }warning: "$
3f70: 7b 31 2b 22 24 40 22 7d 20 31 3e 26 32 0a 0a 20  {1+"$@"} 1>&2.. 
3f80: 20 20 20 23 20 62 61 73 68 20 62 75 67 20 61 67     # bash bug ag
3f90: 61 69 6e 3a 0a 20 20 20 20 3a 0a 7d 0a 0a 23 20  ain:.    :.}..# 
3fa0: 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72  func_fatal_error
3fb0: 20 61 72 67 2e 2e 2e 0a 23 20 45 63 68 6f 20 70   arg....# Echo p
3fc0: 72 6f 67 72 61 6d 20 6e 61 6d 65 20 70 72 65 66  rogram name pref
3fd0: 69 78 65 64 20 6d 65 73 73 61 67 65 20 74 6f 20  ixed message to 
3fe0: 73 74 61 6e 64 61 72 64 20 65 72 72 6f 72 2c 20  standard error, 
3ff0: 61 6e 64 20 65 78 69 74 2e 0a 66 75 6e 63 5f 66  and exit..func_f
4000: 61 74 61 6c 5f 65 72 72 6f 72 20 28 29 0a 7b 0a  atal_error ().{.
4010: 20 20 20 20 66 75 6e 63 5f 65 72 72 6f 72 20 24      func_error $
4020: 7b 31 2b 22 24 40 22 7d 0a 20 20 20 20 65 78 69  {1+"$@"}.    exi
4030: 74 20 24 45 58 49 54 5f 46 41 49 4c 55 52 45 0a  t $EXIT_FAILURE.
4040: 7d 0a 0a 23 20 66 75 6e 63 5f 66 61 74 61 6c 5f  }..# func_fatal_
4050: 68 65 6c 70 20 61 72 67 2e 2e 2e 0a 23 20 45 63  help arg....# Ec
4060: 68 6f 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65 20  ho program name 
4070: 70 72 65 66 69 78 65 64 20 6d 65 73 73 61 67 65  prefixed message
4080: 20 74 6f 20 73 74 61 6e 64 61 72 64 20 65 72 72   to standard err
4090: 6f 72 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 0a  or, followed by.
40a0: 23 20 61 20 68 65 6c 70 20 68 69 6e 74 2c 20 61  # a help hint, a
40b0: 6e 64 20 65 78 69 74 2e 0a 66 75 6e 63 5f 66 61  nd exit..func_fa
40c0: 74 61 6c 5f 68 65 6c 70 20 28 29 0a 7b 0a 20 20  tal_help ().{.  
40d0: 20 20 66 75 6e 63 5f 65 72 72 6f 72 20 24 7b 31    func_error ${1
40e0: 2b 22 24 40 22 7d 0a 20 20 20 20 66 75 6e 63 5f  +"$@"}.    func_
40f0: 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 24 68 65  fatal_error "$he
4100: 6c 70 22 0a 7d 0a 68 65 6c 70 3d 22 54 72 79 20  lp".}.help="Try 
4110: 5c 60 24 70 72 6f 67 6e 61 6d 65 20 2d 2d 68 65  \`$progname --he
4120: 6c 70 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66  lp' for more inf
4130: 6f 72 6d 61 74 69 6f 6e 2e 22 20 20 23 23 20 64  ormation."  ## d
4140: 65 66 61 75 6c 74 0a 0a 0a 23 20 66 75 6e 63 5f  efault...# func_
4150: 67 72 65 70 20 65 78 70 72 65 73 73 69 6f 6e 20  grep expression 
4160: 66 69 6c 65 6e 61 6d 65 0a 23 20 43 68 65 63 6b  filename.# Check
4170: 20 77 68 65 74 68 65 72 20 45 58 50 52 45 53 53   whether EXPRESS
4180: 49 4f 4e 20 6d 61 74 63 68 65 73 20 61 6e 79 20  ION matches any 
4190: 6c 69 6e 65 20 6f 66 20 46 49 4c 45 4e 41 4d 45  line of FILENAME
41a0: 2c 20 77 69 74 68 6f 75 74 20 6f 75 74 70 75 74  , without output
41b0: 2e 0a 66 75 6e 63 5f 67 72 65 70 20 28 29 0a 7b  ..func_grep ().{
41c0: 0a 20 20 20 20 24 47 52 45 50 20 22 24 31 22 20  .    $GREP "$1" 
41d0: 22 24 32 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20  "$2" >/dev/null 
41e0: 32 3e 26 31 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f  2>&1.}...# func_
41f0: 6d 6b 64 69 72 5f 70 20 64 69 72 65 63 74 6f 72  mkdir_p director
4200: 79 2d 70 61 74 68 0a 23 20 4d 61 6b 65 20 73 75  y-path.# Make su
4210: 72 65 20 74 68 65 20 65 6e 74 69 72 65 20 70 61  re the entire pa
4220: 74 68 20 74 6f 20 44 49 52 45 43 54 4f 52 59 2d  th to DIRECTORY-
4230: 50 41 54 48 20 69 73 20 61 76 61 69 6c 61 62 6c  PATH is availabl
4240: 65 2e 0a 66 75 6e 63 5f 6d 6b 64 69 72 5f 70 20  e..func_mkdir_p 
4250: 28 29 0a 7b 0a 20 20 20 20 6d 79 5f 64 69 72 65  ().{.    my_dire
4260: 63 74 6f 72 79 5f 70 61 74 68 3d 22 24 31 22 0a  ctory_path="$1".
4270: 20 20 20 20 6d 79 5f 64 69 72 5f 6c 69 73 74 3d      my_dir_list=
4280: 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e  ..    if test -n
4290: 20 22 24 6d 79 5f 64 69 72 65 63 74 6f 72 79 5f   "$my_directory_
42a0: 70 61 74 68 22 20 26 26 20 74 65 73 74 20 22 24  path" && test "$
42b0: 6f 70 74 5f 64 72 79 5f 72 75 6e 22 20 21 3d 20  opt_dry_run" != 
42c0: 22 3a 22 3b 20 74 68 65 6e 0a 0a 20 20 20 20 20  ":"; then..     
42d0: 20 23 20 50 72 6f 74 65 63 74 20 64 69 72 65 63   # Protect direc
42e0: 74 6f 72 79 20 6e 61 6d 65 73 20 73 74 61 72 74  tory names start
42f0: 69 6e 67 20 77 69 74 68 20 60 2d 27 0a 20 20 20  ing with `-'.   
4300: 20 20 20 63 61 73 65 20 24 6d 79 5f 64 69 72 65     case $my_dire
4310: 63 74 6f 72 79 5f 70 61 74 68 20 69 6e 0a 20 20  ctory_path in.  
4320: 20 20 20 20 20 20 2d 2a 29 20 6d 79 5f 64 69 72        -*) my_dir
4330: 65 63 74 6f 72 79 5f 70 61 74 68 3d 22 2e 2f 24  ectory_path="./$
4340: 6d 79 5f 64 69 72 65 63 74 6f 72 79 5f 70 61 74  my_directory_pat
4350: 68 22 20 3b 3b 0a 20 20 20 20 20 20 65 73 61 63  h" ;;.      esac
4360: 0a 0a 20 20 20 20 20 20 23 20 57 68 69 6c 65 20  ..      # While 
4370: 73 6f 6d 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20  some portion of 
4380: 44 49 52 20 64 6f 65 73 20 6e 6f 74 20 79 65 74  DIR does not yet
4390: 20 65 78 69 73 74 2e 2e 2e 0a 20 20 20 20 20 20   exist....      
43a0: 77 68 69 6c 65 20 74 65 73 74 20 21 20 2d 64 20  while test ! -d 
43b0: 22 24 6d 79 5f 64 69 72 65 63 74 6f 72 79 5f 70  "$my_directory_p
43c0: 61 74 68 22 3b 20 64 6f 0a 20 20 20 20 20 20 20  ath"; do.       
43d0: 20 23 20 2e 2e 2e 6d 61 6b 65 20 61 20 6c 69 73   # ...make a lis
43e0: 74 20 69 6e 20 74 6f 70 6d 6f 73 74 20 66 69 72  t in topmost fir
43f0: 73 74 20 6f 72 64 65 72 2e 20 20 55 73 65 20 61  st order.  Use a
4400: 20 63 6f 6c 6f 6e 20 64 65 6c 69 6d 69 74 65 64   colon delimited
4410: 0a 09 23 20 6c 69 73 74 20 69 6e 63 61 73 65 20  ..# list incase 
4420: 73 6f 6d 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20  some portion of 
4430: 70 61 74 68 20 63 6f 6e 74 61 69 6e 73 20 77 68  path contains wh
4440: 69 74 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20  itespace..      
4450: 20 20 6d 79 5f 64 69 72 5f 6c 69 73 74 3d 22 24    my_dir_list="$
4460: 6d 79 5f 64 69 72 65 63 74 6f 72 79 5f 70 61 74  my_directory_pat
4470: 68 3a 24 6d 79 5f 64 69 72 5f 6c 69 73 74 22 0a  h:$my_dir_list".
4480: 0a 20 20 20 20 20 20 20 20 23 20 49 66 20 74 68  .        # If th
4490: 65 20 6c 61 73 74 20 70 6f 72 74 69 6f 6e 20 61  e last portion a
44a0: 64 64 65 64 20 68 61 73 20 6e 6f 20 73 6c 61 73  dded has no slas
44b0: 68 20 69 6e 20 69 74 2c 20 74 68 65 20 6c 69 73  h in it, the lis
44c0: 74 20 69 73 20 64 6f 6e 65 0a 20 20 20 20 20 20  t is done.      
44d0: 20 20 63 61 73 65 20 24 6d 79 5f 64 69 72 65 63    case $my_direc
44e0: 74 6f 72 79 5f 70 61 74 68 20 69 6e 20 2a 2f 2a  tory_path in */*
44f0: 29 20 3b 3b 20 2a 29 20 62 72 65 61 6b 20 3b 3b  ) ;; *) break ;;
4500: 20 65 73 61 63 0a 0a 20 20 20 20 20 20 20 20 23   esac..        #
4510: 20 2e 2e 2e 6f 74 68 65 72 77 69 73 65 20 74 68   ...otherwise th
4520: 72 6f 77 20 61 77 61 79 20 74 68 65 20 63 68 69  row away the chi
4530: 6c 64 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64  ld directory and
4540: 20 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 6d 79   loop.        my
4550: 5f 64 69 72 65 63 74 6f 72 79 5f 70 61 74 68 3d  _directory_path=
4560: 60 24 45 43 48 4f 20 22 24 6d 79 5f 64 69 72 65  `$ECHO "$my_dire
4570: 63 74 6f 72 79 5f 70 61 74 68 22 20 7c 20 24 53  ctory_path" | $S
4580: 45 44 20 2d 65 20 22 24 64 69 72 6e 61 6d 65 22  ED -e "$dirname"
4590: 60 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20 20 20  `.      done.   
45a0: 20 20 20 6d 79 5f 64 69 72 5f 6c 69 73 74 3d 60     my_dir_list=`
45b0: 24 45 43 48 4f 20 22 24 6d 79 5f 64 69 72 5f 6c  $ECHO "$my_dir_l
45c0: 69 73 74 22 20 7c 20 24 53 45 44 20 27 73 2c 3a  ist" | $SED 's,:
45d0: 2a 24 2c 2c 27 60 0a 0a 20 20 20 20 20 20 73 61  *$,,'`..      sa
45e0: 76 65 5f 6d 6b 64 69 72 5f 70 5f 49 46 53 3d 22  ve_mkdir_p_IFS="
45f0: 24 49 46 53 22 3b 20 49 46 53 3d 27 3a 27 0a 20  $IFS"; IFS=':'. 
4600: 20 20 20 20 20 66 6f 72 20 6d 79 5f 64 69 72 20       for my_dir 
4610: 69 6e 20 24 6d 79 5f 64 69 72 5f 6c 69 73 74 3b  in $my_dir_list;
4620: 20 64 6f 0a 09 49 46 53 3d 22 24 73 61 76 65 5f   do..IFS="$save_
4630: 6d 6b 64 69 72 5f 70 5f 49 46 53 22 0a 20 20 20  mkdir_p_IFS".   
4640: 20 20 20 20 20 23 20 6d 6b 64 69 72 20 63 61 6e       # mkdir can
4650: 20 66 61 69 6c 20 77 69 74 68 20 61 20 60 46 69   fail with a `Fi
4660: 6c 65 20 65 78 69 73 74 27 20 65 72 72 6f 72 20  le exist' error 
4670: 69 66 20 74 77 6f 20 70 72 6f 63 65 73 73 65 73  if two processes
4680: 0a 20 20 20 20 20 20 20 20 23 20 74 72 79 20 74  .        # try t
4690: 6f 20 63 72 65 61 74 65 20 6f 6e 65 20 6f 66 20  o create one of 
46a0: 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20  the directories 
46b0: 63 6f 6e 63 75 72 72 65 6e 74 6c 79 2e 20 20 44  concurrently.  D
46c0: 6f 6e 27 74 0a 20 20 20 20 20 20 20 20 23 20 73  on't.        # s
46d0: 74 6f 70 20 69 6e 20 74 68 61 74 20 63 61 73 65  top in that case
46e0: 21 0a 20 20 20 20 20 20 20 20 24 4d 4b 44 49 52  !.        $MKDIR
46f0: 20 22 24 6d 79 5f 64 69 72 22 20 32 3e 2f 64 65   "$my_dir" 2>/de
4700: 76 2f 6e 75 6c 6c 20 7c 7c 20 3a 0a 20 20 20 20  v/null || :.    
4710: 20 20 64 6f 6e 65 0a 20 20 20 20 20 20 49 46 53    done.      IFS
4720: 3d 22 24 73 61 76 65 5f 6d 6b 64 69 72 5f 70 5f  ="$save_mkdir_p_
4730: 49 46 53 22 0a 0a 20 20 20 20 20 20 23 20 42 61  IFS"..      # Ba
4740: 69 6c 20 6f 75 74 20 69 66 20 77 65 20 28 6f 72  il out if we (or
4750: 20 73 6f 6d 65 20 6f 74 68 65 72 20 70 72 6f 63   some other proc
4760: 65 73 73 29 20 66 61 69 6c 65 64 20 74 6f 20 63  ess) failed to c
4770: 72 65 61 74 65 20 61 20 64 69 72 65 63 74 6f 72  reate a director
4780: 79 2e 0a 20 20 20 20 20 20 74 65 73 74 20 2d 64  y..      test -d
4790: 20 22 24 6d 79 5f 64 69 72 65 63 74 6f 72 79 5f   "$my_directory_
47a0: 70 61 74 68 22 20 7c 7c 20 5c 0a 20 20 20 20 20  path" || \.     
47b0: 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72     func_fatal_er
47c0: 72 6f 72 20 22 46 61 69 6c 65 64 20 74 6f 20 63  ror "Failed to c
47d0: 72 65 61 74 65 20 5c 60 24 31 27 22 0a 20 20 20  reate \`$1'".   
47e0: 20 66 69 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 6d   fi.}...# func_m
47f0: 6b 74 65 6d 70 64 69 72 20 5b 73 74 72 69 6e 67  ktempdir [string
4800: 5d 0a 23 20 4d 61 6b 65 20 61 20 74 65 6d 70 6f  ].# Make a tempo
4810: 72 61 72 79 20 64 69 72 65 63 74 6f 72 79 20 74  rary directory t
4820: 68 61 74 20 77 6f 6e 27 74 20 63 6c 61 73 68 20  hat won't clash 
4830: 77 69 74 68 20 6f 74 68 65 72 20 72 75 6e 6e 69  with other runni
4840: 6e 67 0a 23 20 6c 69 62 74 6f 6f 6c 20 70 72 6f  ng.# libtool pro
4850: 63 65 73 73 65 73 2c 20 61 6e 64 20 61 76 6f 69  cesses, and avoi
4860: 64 73 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f  ds race conditio
4870: 6e 73 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 20  ns if possible. 
4880: 20 49 66 0a 23 20 67 69 76 65 6e 2c 20 53 54 52   If.# given, STR
4890: 49 4e 47 20 69 73 20 74 68 65 20 62 61 73 65 6e  ING is the basen
48a0: 61 6d 65 20 66 6f 72 20 74 68 61 74 20 64 69 72  ame for that dir
48b0: 65 63 74 6f 72 79 2e 0a 66 75 6e 63 5f 6d 6b 74  ectory..func_mkt
48c0: 65 6d 70 64 69 72 20 28 29 0a 7b 0a 20 20 20 20  empdir ().{.    
48d0: 6d 79 5f 74 65 6d 70 6c 61 74 65 3d 22 24 7b 54  my_template="${T
48e0: 4d 50 44 49 52 2d 2f 74 6d 70 7d 2f 24 7b 31 2d  MPDIR-/tmp}/${1-
48f0: 24 70 72 6f 67 6e 61 6d 65 7d 22 0a 0a 20 20 20  $progname}"..   
4900: 20 69 66 20 74 65 73 74 20 22 24 6f 70 74 5f 64   if test "$opt_d
4910: 72 79 5f 72 75 6e 22 20 3d 20 22 3a 22 3b 20 74  ry_run" = ":"; t
4920: 68 65 6e 0a 20 20 20 20 20 20 23 20 52 65 74 75  hen.      # Retu
4930: 72 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e  rn a directory n
4940: 61 6d 65 2c 20 62 75 74 20 64 6f 6e 27 74 20 63  ame, but don't c
4950: 72 65 61 74 65 20 69 74 20 69 6e 20 64 72 79 2d  reate it in dry-
4960: 72 75 6e 20 6d 6f 64 65 0a 20 20 20 20 20 20 6d  run mode.      m
4970: 79 5f 74 6d 70 64 69 72 3d 22 24 7b 6d 79 5f 74  y_tmpdir="${my_t
4980: 65 6d 70 6c 61 74 65 7d 2d 24 24 22 0a 20 20 20  emplate}-$$".   
4990: 20 65 6c 73 65 0a 0a 20 20 20 20 20 20 23 20 49   else..      # I
49a0: 66 20 6d 6b 74 65 6d 70 20 77 6f 72 6b 73 2c 20  f mktemp works, 
49b0: 75 73 65 20 74 68 61 74 20 66 69 72 73 74 20 61  use that first a
49c0: 6e 64 20 66 6f 72 65 6d 6f 73 74 0a 20 20 20 20  nd foremost.    
49d0: 20 20 6d 79 5f 74 6d 70 64 69 72 3d 60 6d 6b 74    my_tmpdir=`mkt
49e0: 65 6d 70 20 2d 64 20 22 24 7b 6d 79 5f 74 65 6d  emp -d "${my_tem
49f0: 70 6c 61 74 65 7d 2d 58 58 58 58 58 58 58 58 22  plate}-XXXXXXXX"
4a00: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a 0a 20   2>/dev/null`.. 
4a10: 20 20 20 20 20 69 66 20 74 65 73 74 20 21 20 2d       if test ! -
4a20: 64 20 22 24 6d 79 5f 74 6d 70 64 69 72 22 3b 20  d "$my_tmpdir"; 
4a30: 74 68 65 6e 0a 20 20 20 20 20 20 20 20 23 20 46  then.        # F
4a40: 61 69 6c 69 6e 67 20 74 68 61 74 2c 20 61 74 20  ailing that, at 
4a50: 6c 65 61 73 74 20 74 72 79 20 61 6e 64 20 75 73  least try and us
4a60: 65 20 24 52 41 4e 44 4f 4d 20 74 6f 20 61 76 6f  e $RANDOM to avo
4a70: 69 64 20 61 20 72 61 63 65 0a 20 20 20 20 20 20  id a race.      
4a80: 20 20 6d 79 5f 74 6d 70 64 69 72 3d 22 24 7b 6d    my_tmpdir="${m
4a90: 79 5f 74 65 6d 70 6c 61 74 65 7d 2d 24 7b 52 41  y_template}-${RA
4aa0: 4e 44 4f 4d 2d 30 7d 24 24 22 0a 0a 20 20 20 20  NDOM-0}$$"..    
4ab0: 20 20 20 20 73 61 76 65 5f 6d 6b 74 65 6d 70 64      save_mktempd
4ac0: 69 72 5f 75 6d 61 73 6b 3d 60 75 6d 61 73 6b 60  ir_umask=`umask`
4ad0: 0a 20 20 20 20 20 20 20 20 75 6d 61 73 6b 20 30  .        umask 0
4ae0: 30 37 37 0a 20 20 20 20 20 20 20 20 24 4d 4b 44  077.        $MKD
4af0: 49 52 20 22 24 6d 79 5f 74 6d 70 64 69 72 22 0a  IR "$my_tmpdir".
4b00: 20 20 20 20 20 20 20 20 75 6d 61 73 6b 20 24 73          umask $s
4b10: 61 76 65 5f 6d 6b 74 65 6d 70 64 69 72 5f 75 6d  ave_mktempdir_um
4b20: 61 73 6b 0a 20 20 20 20 20 20 66 69 0a 0a 20 20  ask.      fi..  
4b30: 20 20 20 20 23 20 49 66 20 77 65 27 72 65 20 6e      # If we're n
4b40: 6f 74 20 69 6e 20 64 72 79 2d 72 75 6e 20 6d 6f  ot in dry-run mo
4b50: 64 65 2c 20 62 6f 6d 62 20 6f 75 74 20 6f 6e 20  de, bomb out on 
4b60: 66 61 69 6c 75 72 65 0a 20 20 20 20 20 20 74 65  failure.      te
4b70: 73 74 20 2d 64 20 22 24 6d 79 5f 74 6d 70 64 69  st -d "$my_tmpdi
4b80: 72 22 20 7c 7c 20 5c 0a 20 20 20 20 20 20 20 20  r" || \.        
4b90: 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72  func_fatal_error
4ba0: 20 22 63 61 6e 6e 6f 74 20 63 72 65 61 74 65 20   "cannot create 
4bb0: 74 65 6d 70 6f 72 61 72 79 20 64 69 72 65 63 74  temporary direct
4bc0: 6f 72 79 20 5c 60 24 6d 79 5f 74 6d 70 64 69 72  ory \`$my_tmpdir
4bd0: 27 22 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 24  '".    fi..    $
4be0: 45 43 48 4f 20 22 24 6d 79 5f 74 6d 70 64 69 72  ECHO "$my_tmpdir
4bf0: 22 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 71 75 6f  ".}...# func_quo
4c00: 74 65 5f 66 6f 72 5f 65 76 61 6c 20 61 72 67 0a  te_for_eval arg.
4c10: 23 20 41 65 73 74 68 65 74 69 63 61 6c 6c 79 20  # Aesthetically 
4c20: 71 75 6f 74 65 20 41 52 47 20 74 6f 20 62 65 20  quote ARG to be 
4c30: 65 76 61 6c 65 64 20 6c 61 74 65 72 2e 0a 23 20  evaled later..# 
4c40: 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65  This function re
4c50: 74 75 72 6e 73 20 74 77 6f 20 76 61 6c 75 65 73  turns two values
4c60: 3a 20 46 55 4e 43 5f 51 55 4f 54 45 5f 46 4f 52  : FUNC_QUOTE_FOR
4c70: 5f 45 56 41 4c 5f 52 45 53 55 4c 54 0a 23 20 69  _EVAL_RESULT.# i
4c80: 73 20 64 6f 75 62 6c 65 2d 71 75 6f 74 65 64 2c  s double-quoted,
4c90: 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 61 20   suitable for a 
4ca0: 73 75 62 73 65 71 75 65 6e 74 20 65 76 61 6c 2c  subsequent eval,
4cb0: 20 77 68 65 72 65 61 73 0a 23 20 46 55 4e 43 5f   whereas.# FUNC_
4cc0: 51 55 4f 54 45 5f 46 4f 52 5f 45 56 41 4c 5f 55  QUOTE_FOR_EVAL_U
4cd0: 4e 51 55 4f 54 45 44 5f 52 45 53 55 4c 54 20 68  NQUOTED_RESULT h
4ce0: 61 73 20 6d 65 72 65 6c 79 20 61 6c 6c 20 63 68  as merely all ch
4cf0: 61 72 61 63 74 65 72 73 0a 23 20 77 68 69 63 68  aracters.# which
4d00: 20 61 72 65 20 73 74 69 6c 6c 20 61 63 74 69 76   are still activ
4d10: 65 20 77 69 74 68 69 6e 20 64 6f 75 62 6c 65 20  e within double 
4d20: 71 75 6f 74 65 73 20 62 61 63 6b 73 6c 61 73 68  quotes backslash
4d30: 69 66 69 65 64 2e 0a 66 75 6e 63 5f 71 75 6f 74  ified..func_quot
4d40: 65 5f 66 6f 72 5f 65 76 61 6c 20 28 29 0a 7b 0a  e_for_eval ().{.
4d50: 20 20 20 20 63 61 73 65 20 24 31 20 69 6e 0a 20      case $1 in. 
4d60: 20 20 20 20 20 2a 5b 5c 5c 5c 60 5c 22 5c 24 5d       *[\\\`\"\$]
4d70: 2a 29 0a 09 66 75 6e 63 5f 71 75 6f 74 65 5f 66  *)..func_quote_f
4d80: 6f 72 5f 65 76 61 6c 5f 75 6e 71 75 6f 74 65 64  or_eval_unquoted
4d90: 5f 72 65 73 75 6c 74 3d 60 24 45 43 48 4f 20 22  _result=`$ECHO "
4da0: 24 31 22 20 7c 20 24 53 45 44 20 22 24 73 65 64  $1" | $SED "$sed
4db0: 5f 71 75 6f 74 65 5f 73 75 62 73 74 22 60 20 3b  _quote_subst"` ;
4dc0: 3b 0a 20 20 20 20 20 20 2a 29 0a 20 20 20 20 20  ;.      *).     
4dd0: 20 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f     func_quote_fo
4de0: 72 5f 65 76 61 6c 5f 75 6e 71 75 6f 74 65 64 5f  r_eval_unquoted_
4df0: 72 65 73 75 6c 74 3d 22 24 31 22 20 3b 3b 0a 20  result="$1" ;;. 
4e00: 20 20 20 65 73 61 63 0a 0a 20 20 20 20 63 61 73     esac..    cas
4e10: 65 20 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f  e $func_quote_fo
4e20: 72 5f 65 76 61 6c 5f 75 6e 71 75 6f 74 65 64 5f  r_eval_unquoted_
4e30: 72 65 73 75 6c 74 20 69 6e 0a 20 20 20 20 20 20  result in.      
4e40: 23 20 44 6f 75 62 6c 65 2d 71 75 6f 74 65 20 61  # Double-quote a
4e50: 72 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 73  rgs containing s
4e60: 68 65 6c 6c 20 6d 65 74 61 63 68 61 72 61 63 74  hell metacharact
4e70: 65 72 73 20 74 6f 20 64 65 6c 61 79 0a 20 20 20  ers to delay.   
4e80: 20 20 20 23 20 77 6f 72 64 20 73 70 6c 69 74 74     # word splitt
4e90: 69 6e 67 2c 20 63 6f 6d 6d 61 6e 64 20 73 75 62  ing, command sub
4ea0: 73 74 69 74 75 74 69 6f 6e 20 61 6e 64 20 61 6e  stitution and an
4eb0: 64 20 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20  d variable.     
4ec0: 20 23 20 65 78 70 61 6e 73 69 6f 6e 20 66 6f 72   # expansion for
4ed0: 20 61 20 73 75 62 73 65 71 75 65 6e 74 20 65 76   a subsequent ev
4ee0: 61 6c 2e 0a 20 20 20 20 20 20 23 20 4d 61 6e 79  al..      # Many
4ef0: 20 42 6f 75 72 6e 65 20 73 68 65 6c 6c 73 20 63   Bourne shells c
4f00: 61 6e 6e 6f 74 20 68 61 6e 64 6c 65 20 63 6c 6f  annot handle clo
4f10: 73 65 20 62 72 61 63 6b 65 74 73 20 63 6f 72 72  se brackets corr
4f20: 65 63 74 6c 79 0a 20 20 20 20 20 20 23 20 69 6e  ectly.      # in
4f30: 20 73 63 61 6e 20 73 65 74 73 2c 20 73 6f 20 77   scan sets, so w
4f40: 65 20 73 70 65 63 69 66 79 20 69 74 20 73 65 70  e specify it sep
4f50: 61 72 61 74 65 6c 79 2e 0a 20 20 20 20 20 20 2a  arately..      *
4f60: 5b 5c 5b 5c 7e 5c 23 5c 5e 5c 26 5c 2a 5c 28 5c  [\[\~\#\^\&\*\(\
4f70: 29 5c 7b 5c 7d 5c 7c 5c 3b 5c 3c 5c 3e 5c 3f 5c  )\{\}\|\;\<\>\?\
4f80: 27 5c 20 5c 09 5d 2a 7c 2a 5d 2a 7c 22 22 29 0a  '\ \.]*|*]*|"").
4f90: 20 20 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f          func_quo
4fa0: 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75  te_for_eval_resu
4fb0: 6c 74 3d 22 5c 22 24 66 75 6e 63 5f 71 75 6f 74  lt="\"$func_quot
4fc0: 65 5f 66 6f 72 5f 65 76 61 6c 5f 75 6e 71 75 6f  e_for_eval_unquo
4fd0: 74 65 64 5f 72 65 73 75 6c 74 5c 22 22 0a 20 20  ted_result\"".  
4fe0: 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 2a        ;;.      *
4ff0: 29 0a 20 20 20 20 20 20 20 20 66 75 6e 63 5f 71  ).        func_q
5000: 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65  uote_for_eval_re
5010: 73 75 6c 74 3d 22 24 66 75 6e 63 5f 71 75 6f 74  sult="$func_quot
5020: 65 5f 66 6f 72 5f 65 76 61 6c 5f 75 6e 71 75 6f  e_for_eval_unquo
5030: 74 65 64 5f 72 65 73 75 6c 74 22 0a 20 20 20 20  ted_result".    
5040: 65 73 61 63 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f  esac.}...# func_
5050: 71 75 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64  quote_for_expand
5060: 20 61 72 67 0a 23 20 41 65 73 74 68 65 74 69 63   arg.# Aesthetic
5070: 61 6c 6c 79 20 71 75 6f 74 65 20 41 52 47 20 74  ally quote ARG t
5080: 6f 20 62 65 20 65 76 61 6c 65 64 20 6c 61 74 65  o be evaled late
5090: 72 3b 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65  r; same as above
50a0: 2c 0a 23 20 62 75 74 20 64 6f 20 6e 6f 74 20 71  ,.# but do not q
50b0: 75 6f 74 65 20 76 61 72 69 61 62 6c 65 20 72 65  uote variable re
50c0: 66 65 72 65 6e 63 65 73 2e 0a 66 75 6e 63 5f 71  ferences..func_q
50d0: 75 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 20  uote_for_expand 
50e0: 28 29 0a 7b 0a 20 20 20 20 63 61 73 65 20 24 31  ().{.    case $1
50f0: 20 69 6e 0a 20 20 20 20 20 20 2a 5b 5c 5c 5c 60   in.      *[\\\`
5100: 5c 22 5d 2a 29 0a 09 6d 79 5f 61 72 67 3d 60 24  \"]*)..my_arg=`$
5110: 45 43 48 4f 20 22 24 31 22 20 7c 20 24 53 45 44  ECHO "$1" | $SED
5120: 20 5c 0a 09 20 20 20 20 2d 65 20 22 24 64 6f 75   \..    -e "$dou
5130: 62 6c 65 5f 71 75 6f 74 65 5f 73 75 62 73 74 22  ble_quote_subst"
5140: 20 2d 65 20 22 24 73 65 64 5f 64 6f 75 62 6c 65   -e "$sed_double
5150: 5f 62 61 63 6b 73 6c 61 73 68 22 60 20 3b 3b 0a  _backslash"` ;;.
5160: 20 20 20 20 20 20 2a 29 0a 20 20 20 20 20 20 20        *).       
5170: 20 6d 79 5f 61 72 67 3d 22 24 31 22 20 3b 3b 0a   my_arg="$1" ;;.
5180: 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20 63 61      esac..    ca
5190: 73 65 20 24 6d 79 5f 61 72 67 20 69 6e 0a 20 20  se $my_arg in.  
51a0: 20 20 20 20 23 20 44 6f 75 62 6c 65 2d 71 75 6f      # Double-quo
51b0: 74 65 20 61 72 67 73 20 63 6f 6e 74 61 69 6e 69  te args containi
51c0: 6e 67 20 73 68 65 6c 6c 20 6d 65 74 61 63 68 61  ng shell metacha
51d0: 72 61 63 74 65 72 73 20 74 6f 20 64 65 6c 61 79  racters to delay
51e0: 0a 20 20 20 20 20 20 23 20 77 6f 72 64 20 73 70  .      # word sp
51f0: 6c 69 74 74 69 6e 67 20 61 6e 64 20 63 6f 6d 6d  litting and comm
5200: 61 6e 64 20 73 75 62 73 74 69 74 75 74 69 6f 6e  and substitution
5210: 20 66 6f 72 20 61 20 73 75 62 73 65 71 75 65 6e   for a subsequen
5220: 74 20 65 76 61 6c 2e 0a 20 20 20 20 20 20 23 20  t eval..      # 
5230: 4d 61 6e 79 20 42 6f 75 72 6e 65 20 73 68 65 6c  Many Bourne shel
5240: 6c 73 20 63 61 6e 6e 6f 74 20 68 61 6e 64 6c 65  ls cannot handle
5250: 20 63 6c 6f 73 65 20 62 72 61 63 6b 65 74 73 20   close brackets 
5260: 63 6f 72 72 65 63 74 6c 79 0a 20 20 20 20 20 20  correctly.      
5270: 23 20 69 6e 20 73 63 61 6e 20 73 65 74 73 2c 20  # in scan sets, 
5280: 73 6f 20 77 65 20 73 70 65 63 69 66 79 20 69 74  so we specify it
5290: 20 73 65 70 61 72 61 74 65 6c 79 2e 0a 20 20 20   separately..   
52a0: 20 20 20 2a 5b 5c 5b 5c 7e 5c 23 5c 5e 5c 26 5c     *[\[\~\#\^\&\
52b0: 2a 5c 28 5c 29 5c 7b 5c 7d 5c 7c 5c 3b 5c 3c 5c  *\(\)\{\}\|\;\<\
52c0: 3e 5c 3f 5c 27 5c 20 5c 09 5d 2a 7c 2a 5d 2a 7c  >\?\'\ \.]*|*]*|
52d0: 22 22 29 0a 20 20 20 20 20 20 20 20 6d 79 5f 61  "").        my_a
52e0: 72 67 3d 22 5c 22 24 6d 79 5f 61 72 67 5c 22 22  rg="\"$my_arg\""
52f0: 0a 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20  .        ;;.    
5300: 65 73 61 63 0a 0a 20 20 20 20 66 75 6e 63 5f 71  esac..    func_q
5310: 75 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 5f  uote_for_expand_
5320: 72 65 73 75 6c 74 3d 22 24 6d 79 5f 61 72 67 22  result="$my_arg"
5330: 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 73 68 6f 77  .}...# func_show
5340: 5f 65 76 61 6c 20 63 6d 64 20 5b 66 61 69 6c 5f  _eval cmd [fail_
5350: 65 78 70 5d 0a 23 20 55 6e 6c 65 73 73 20 6f 70  exp].# Unless op
5360: 74 5f 73 69 6c 65 6e 74 20 69 73 20 74 72 75 65  t_silent is true
5370: 2c 20 74 68 65 6e 20 6f 75 74 70 75 74 20 43 4d  , then output CM
5380: 44 2e 20 20 54 68 65 6e 2c 20 69 66 20 6f 70 74  D.  Then, if opt
5390: 5f 64 72 79 72 75 6e 20 69 73 0a 23 20 6e 6f 74  _dryrun is.# not
53a0: 20 74 72 75 65 2c 20 65 76 61 6c 75 61 74 65 20   true, evaluate 
53b0: 43 4d 44 2e 20 20 49 66 20 74 68 65 20 65 76 61  CMD.  If the eva
53c0: 6c 75 61 74 69 6f 6e 20 6f 66 20 43 4d 44 20 66  luation of CMD f
53d0: 61 69 6c 73 2c 20 61 6e 64 20 46 41 49 4c 5f 45  ails, and FAIL_E
53e0: 58 50 0a 23 20 69 73 20 67 69 76 65 6e 2c 20 74  XP.# is given, t
53f0: 68 65 6e 20 65 76 61 6c 75 61 74 65 20 69 74 2e  hen evaluate it.
5400: 0a 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20  .func_show_eval 
5410: 28 29 0a 7b 0a 20 20 20 20 6d 79 5f 63 6d 64 3d  ().{.    my_cmd=
5420: 22 24 31 22 0a 20 20 20 20 6d 79 5f 66 61 69 6c  "$1".    my_fail
5430: 5f 65 78 70 3d 22 24 7b 32 2d 3a 7d 22 0a 0a 20  _exp="${2-:}".. 
5440: 20 20 20 24 7b 6f 70 74 5f 73 69 6c 65 6e 74 2d     ${opt_silent-
5450: 66 61 6c 73 65 7d 20 7c 7c 20 7b 0a 20 20 20 20  false} || {.    
5460: 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72    func_quote_for
5470: 5f 65 78 70 61 6e 64 20 22 24 6d 79 5f 63 6d 64  _expand "$my_cmd
5480: 22 0a 20 20 20 20 20 20 65 76 61 6c 20 22 66 75  ".      eval "fu
5490: 6e 63 5f 65 63 68 6f 20 24 66 75 6e 63 5f 71 75  nc_echo $func_qu
54a0: 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 5f 72  ote_for_expand_r
54b0: 65 73 75 6c 74 22 0a 20 20 20 20 7d 0a 0a 20 20  esult".    }..  
54c0: 20 20 69 66 20 24 7b 6f 70 74 5f 64 72 79 5f 72    if ${opt_dry_r
54d0: 75 6e 2d 66 61 6c 73 65 7d 3b 20 74 68 65 6e 20  un-false}; then 
54e0: 3a 3b 20 65 6c 73 65 0a 20 20 20 20 20 20 65 76  :; else.      ev
54f0: 61 6c 20 22 24 6d 79 5f 63 6d 64 22 0a 20 20 20  al "$my_cmd".   
5500: 20 20 20 6d 79 5f 73 74 61 74 75 73 3d 24 3f 0a     my_status=$?.
5510: 20 20 20 20 20 20 69 66 20 74 65 73 74 20 22 24        if test "$
5520: 6d 79 5f 73 74 61 74 75 73 22 20 2d 65 71 20 30  my_status" -eq 0
5530: 3b 20 74 68 65 6e 20 3a 3b 20 65 6c 73 65 0a 09  ; then :; else..
5540: 65 76 61 6c 20 22 28 65 78 69 74 20 24 6d 79 5f  eval "(exit $my_
5550: 73 74 61 74 75 73 29 3b 20 24 6d 79 5f 66 61 69  status); $my_fai
5560: 6c 5f 65 78 70 22 0a 20 20 20 20 20 20 66 69 0a  l_exp".      fi.
5570: 20 20 20 20 66 69 0a 7d 0a 0a 0a 23 20 66 75 6e      fi.}...# fun
5580: 63 5f 73 68 6f 77 5f 65 76 61 6c 5f 6c 6f 63 61  c_show_eval_loca
5590: 6c 65 20 63 6d 64 20 5b 66 61 69 6c 5f 65 78 70  le cmd [fail_exp
55a0: 5d 0a 23 20 55 6e 6c 65 73 73 20 6f 70 74 5f 73  ].# Unless opt_s
55b0: 69 6c 65 6e 74 20 69 73 20 74 72 75 65 2c 20 74  ilent is true, t
55c0: 68 65 6e 20 6f 75 74 70 75 74 20 43 4d 44 2e 20  hen output CMD. 
55d0: 20 54 68 65 6e 2c 20 69 66 20 6f 70 74 5f 64 72   Then, if opt_dr
55e0: 79 72 75 6e 20 69 73 0a 23 20 6e 6f 74 20 74 72  yrun is.# not tr
55f0: 75 65 2c 20 65 76 61 6c 75 61 74 65 20 43 4d 44  ue, evaluate CMD
5600: 2e 20 20 49 66 20 74 68 65 20 65 76 61 6c 75 61  .  If the evalua
5610: 74 69 6f 6e 20 6f 66 20 43 4d 44 20 66 61 69 6c  tion of CMD fail
5620: 73 2c 20 61 6e 64 20 46 41 49 4c 5f 45 58 50 0a  s, and FAIL_EXP.
5630: 23 20 69 73 20 67 69 76 65 6e 2c 20 74 68 65 6e  # is given, then
5640: 20 65 76 61 6c 75 61 74 65 20 69 74 2e 20 20 55   evaluate it.  U
5650: 73 65 20 74 68 65 20 73 61 76 65 64 20 6c 6f 63  se the saved loc
5660: 61 6c 65 20 66 6f 72 20 65 76 61 6c 75 61 74 69  ale for evaluati
5670: 6f 6e 2e 0a 66 75 6e 63 5f 73 68 6f 77 5f 65 76  on..func_show_ev
5680: 61 6c 5f 6c 6f 63 61 6c 65 20 28 29 0a 7b 0a 20  al_locale ().{. 
5690: 20 20 20 6d 79 5f 63 6d 64 3d 22 24 31 22 0a 20     my_cmd="$1". 
56a0: 20 20 20 6d 79 5f 66 61 69 6c 5f 65 78 70 3d 22     my_fail_exp="
56b0: 24 7b 32 2d 3a 7d 22 0a 0a 20 20 20 20 24 7b 6f  ${2-:}"..    ${o
56c0: 70 74 5f 73 69 6c 65 6e 74 2d 66 61 6c 73 65 7d  pt_silent-false}
56d0: 20 7c 7c 20 7b 0a 20 20 20 20 20 20 66 75 6e 63   || {.      func
56e0: 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 78 70 61 6e  _quote_for_expan
56f0: 64 20 22 24 6d 79 5f 63 6d 64 22 0a 20 20 20 20  d "$my_cmd".    
5700: 20 20 65 76 61 6c 20 22 66 75 6e 63 5f 65 63 68    eval "func_ech
5710: 6f 20 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f  o $func_quote_fo
5720: 72 5f 65 78 70 61 6e 64 5f 72 65 73 75 6c 74 22  r_expand_result"
5730: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 24  .    }..    if $
5740: 7b 6f 70 74 5f 64 72 79 5f 72 75 6e 2d 66 61 6c  {opt_dry_run-fal
5750: 73 65 7d 3b 20 74 68 65 6e 20 3a 3b 20 65 6c 73  se}; then :; els
5760: 65 0a 20 20 20 20 20 20 65 76 61 6c 20 22 24 6c  e.      eval "$l
5770: 74 5f 75 73 65 72 5f 6c 6f 63 61 6c 65 0a 09 20  t_user_locale.. 
5780: 20 20 20 24 6d 79 5f 63 6d 64 22 0a 20 20 20 20     $my_cmd".    
5790: 20 20 6d 79 5f 73 74 61 74 75 73 3d 24 3f 0a 20    my_status=$?. 
57a0: 20 20 20 20 20 65 76 61 6c 20 22 24 6c 74 5f 73       eval "$lt_s
57b0: 61 66 65 5f 6c 6f 63 61 6c 65 22 0a 20 20 20 20  afe_locale".    
57c0: 20 20 69 66 20 74 65 73 74 20 22 24 6d 79 5f 73    if test "$my_s
57d0: 74 61 74 75 73 22 20 2d 65 71 20 30 3b 20 74 68  tatus" -eq 0; th
57e0: 65 6e 20 3a 3b 20 65 6c 73 65 0a 09 65 76 61 6c  en :; else..eval
57f0: 20 22 28 65 78 69 74 20 24 6d 79 5f 73 74 61 74   "(exit $my_stat
5800: 75 73 29 3b 20 24 6d 79 5f 66 61 69 6c 5f 65 78  us); $my_fail_ex
5810: 70 22 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20  p".      fi.    
5820: 66 69 0a 7d 0a 0a 23 20 66 75 6e 63 5f 74 72 5f  fi.}..# func_tr_
5830: 73 68 0a 23 20 54 75 72 6e 20 24 31 20 69 6e 74  sh.# Turn $1 int
5840: 6f 20 61 20 73 74 72 69 6e 67 20 73 75 69 74 61  o a string suita
5850: 62 6c 65 20 66 6f 72 20 61 20 73 68 65 6c 6c 20  ble for a shell 
5860: 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 2e 0a 23  variable name..#
5870: 20 52 65 73 75 6c 74 20 69 73 20 73 74 6f 72 65   Result is store
5880: 64 20 69 6e 20 24 66 75 6e 63 5f 74 72 5f 73 68  d in $func_tr_sh
5890: 5f 72 65 73 75 6c 74 2e 20 20 41 6c 6c 20 63 68  _result.  All ch
58a0: 61 72 61 63 74 65 72 73 0a 23 20 6e 6f 74 20 69  aracters.# not i
58b0: 6e 20 74 68 65 20 73 65 74 20 61 2d 7a 41 2d 5a  n the set a-zA-Z
58c0: 30 2d 39 5f 20 61 72 65 20 72 65 70 6c 61 63 65  0-9_ are replace
58d0: 64 20 77 69 74 68 20 27 5f 27 2e 20 46 75 72 74  d with '_'. Furt
58e0: 68 65 72 2c 0a 23 20 69 66 20 24 31 20 62 65 67  her,.# if $1 beg
58f0: 69 6e 73 20 77 69 74 68 20 61 20 64 69 67 69 74  ins with a digit
5900: 2c 20 61 20 27 5f 27 20 69 73 20 70 72 65 70 65  , a '_' is prepe
5910: 6e 64 65 64 20 61 73 20 77 65 6c 6c 2e 0a 66 75  nded as well..fu
5920: 6e 63 5f 74 72 5f 73 68 20 28 29 0a 7b 0a 20 20  nc_tr_sh ().{.  
5930: 63 61 73 65 20 24 31 20 69 6e 0a 20 20 5b 30 2d  case $1 in.  [0-
5940: 39 5d 2a 20 7c 20 2a 5b 21 61 2d 7a 41 2d 5a 30  9]* | *[!a-zA-Z0
5950: 2d 39 5f 5d 2a 29 0a 20 20 20 20 66 75 6e 63 5f  -9_]*).    func_
5960: 74 72 5f 73 68 5f 72 65 73 75 6c 74 3d 60 24 45  tr_sh_result=`$E
5970: 43 48 4f 20 22 24 31 22 20 7c 20 24 53 45 44 20  CHO "$1" | $SED 
5980: 27 73 2f 5e 5c 28 5b 30 2d 39 5d 5c 29 2f 5f 5c  's/^\([0-9]\)/_\
5990: 31 2f 3b 20 73 2f 5b 5e 61 2d 7a 41 2d 5a 30 2d  1/; s/[^a-zA-Z0-
59a0: 39 5f 5d 2f 5f 2f 67 27 60 0a 20 20 20 20 3b 3b  9_]/_/g'`.    ;;
59b0: 0a 20 20 2a 20 29 0a 20 20 20 20 66 75 6e 63 5f  .  * ).    func_
59c0: 74 72 5f 73 68 5f 72 65 73 75 6c 74 3d 24 31 0a  tr_sh_result=$1.
59d0: 20 20 20 20 3b 3b 0a 20 20 65 73 61 63 0a 7d 0a      ;;.  esac.}.
59e0: 0a 0a 23 20 66 75 6e 63 5f 76 65 72 73 69 6f 6e  ..# func_version
59f0: 0a 23 20 45 63 68 6f 20 76 65 72 73 69 6f 6e 20  .# Echo version 
5a00: 6d 65 73 73 61 67 65 20 74 6f 20 73 74 61 6e 64  message to stand
5a10: 61 72 64 20 6f 75 74 70 75 74 20 61 6e 64 20 65  ard output and e
5a20: 78 69 74 2e 0a 66 75 6e 63 5f 76 65 72 73 69 6f  xit..func_versio
5a30: 6e 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74 5f  n ().{.    $opt_
5a40: 64 65 62 75 67 0a 0a 20 20 20 20 24 53 45 44 20  debug..    $SED 
5a50: 2d 6e 20 27 2f 28 43 29 2f 21 62 20 67 6f 0a 09  -n '/(C)/!b go..
5a60: 3a 6d 6f 72 65 0a 09 2f 5c 2e 2f 21 7b 0a 09 20  :more../\./!{.. 
5a70: 20 4e 0a 09 20 20 73 2f 5c 6e 23 20 2f 20 2f 0a   N..  s/\n# / /.
5a80: 09 20 20 62 20 6d 6f 72 65 0a 09 7d 0a 09 3a 67  .  b more..}..:g
5a90: 6f 0a 09 2f 5e 23 20 27 24 50 52 4f 47 52 41 4d  o../^# '$PROGRAM
5aa0: 27 20 28 47 4e 55 20 2f 2c 2f 23 20 77 61 72 72  ' (GNU /,/# warr
5ab0: 61 6e 74 79 3b 20 2f 20 7b 0a 20 20 20 20 20 20  anty; / {.      
5ac0: 20 20 73 2f 5e 23 20 2f 2f 0a 09 73 2f 5e 23 20    s/^# //..s/^# 
5ad0: 2a 24 2f 2f 0a 20 20 20 20 20 20 20 20 73 2f 5c  *$//.        s/\
5ae0: 28 28 43 29 5c 29 5b 20 30 2d 39 2c 2d 5d 2a 5c  ((C)\)[ 0-9,-]*\
5af0: 28 20 5b 31 2d 39 5d 5b 30 2d 39 5d 2a 5c 29 2f  ( [1-9][0-9]*\)/
5b00: 5c 31 5c 32 2f 0a 20 20 20 20 20 20 20 20 70 0a  \1\2/.        p.
5b10: 20 20 20 20 20 7d 27 20 3c 20 22 24 70 72 6f 67       }' < "$prog
5b20: 70 61 74 68 22 0a 20 20 20 20 20 65 78 69 74 20  path".     exit 
5b30: 24 3f 0a 7d 0a 0a 23 20 66 75 6e 63 5f 75 73 61  $?.}..# func_usa
5b40: 67 65 0a 23 20 45 63 68 6f 20 73 68 6f 72 74 20  ge.# Echo short 
5b50: 68 65 6c 70 20 6d 65 73 73 61 67 65 20 74 6f 20  help message to 
5b60: 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75 74 20  standard output 
5b70: 61 6e 64 20 65 78 69 74 2e 0a 66 75 6e 63 5f 75  and exit..func_u
5b80: 73 61 67 65 20 28 29 0a 7b 0a 20 20 20 20 24 6f  sage ().{.    $o
5b90: 70 74 5f 64 65 62 75 67 0a 0a 20 20 20 20 24 53  pt_debug..    $S
5ba0: 45 44 20 2d 6e 20 27 2f 5e 23 20 55 73 61 67 65  ED -n '/^# Usage
5bb0: 3a 2f 2c 2f 5e 23 20 20 2a 2e 2a 2d 2d 68 65 6c  :/,/^#  *.*--hel
5bc0: 70 2f 20 7b 0a 20 20 20 20 20 20 20 20 73 2f 5e  p/ {.        s/^
5bd0: 23 20 2f 2f 0a 09 73 2f 5e 23 20 2a 24 2f 2f 0a  # //..s/^# *$//.
5be0: 09 73 2f 5c 24 70 72 6f 67 6e 61 6d 65 2f 27 24  .s/\$progname/'$
5bf0: 70 72 6f 67 6e 61 6d 65 27 2f 0a 09 70 0a 20 20  progname'/..p.  
5c00: 20 20 7d 27 20 3c 20 22 24 70 72 6f 67 70 61 74    }' < "$progpat
5c10: 68 22 0a 20 20 20 20 65 63 68 6f 0a 20 20 20 20  h".    echo.    
5c20: 24 45 43 48 4f 20 22 72 75 6e 20 5c 60 24 70 72  $ECHO "run \`$pr
5c30: 6f 67 6e 61 6d 65 20 2d 2d 68 65 6c 70 20 7c 20  ogname --help | 
5c40: 6d 6f 72 65 27 20 66 6f 72 20 66 75 6c 6c 20 75  more' for full u
5c50: 73 61 67 65 22 0a 20 20 20 20 65 78 69 74 20 24  sage".    exit $
5c60: 3f 0a 7d 0a 0a 23 20 66 75 6e 63 5f 68 65 6c 70  ?.}..# func_help
5c70: 20 5b 4e 4f 45 58 49 54 5d 0a 23 20 45 63 68 6f   [NOEXIT].# Echo
5c80: 20 6c 6f 6e 67 20 68 65 6c 70 20 6d 65 73 73 61   long help messa
5c90: 67 65 20 74 6f 20 73 74 61 6e 64 61 72 64 20 6f  ge to standard o
5ca0: 75 74 70 75 74 20 61 6e 64 20 65 78 69 74 2c 0a  utput and exit,.
5cb0: 23 20 75 6e 6c 65 73 73 20 27 6e 6f 65 78 69 74  # unless 'noexit
5cc0: 27 20 69 73 20 70 61 73 73 65 64 20 61 73 20 61  ' is passed as a
5cd0: 72 67 75 6d 65 6e 74 2e 0a 66 75 6e 63 5f 68 65  rgument..func_he
5ce0: 6c 70 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  lp ().{.    $opt
5cf0: 5f 64 65 62 75 67 0a 0a 20 20 20 20 24 53 45 44  _debug..    $SED
5d00: 20 2d 6e 20 27 2f 5e 23 20 55 73 61 67 65 3a 2f   -n '/^# Usage:/
5d10: 2c 2f 23 20 52 65 70 6f 72 74 20 62 75 67 73 20  ,/# Report bugs 
5d20: 74 6f 2f 20 7b 0a 09 3a 70 72 69 6e 74 0a 20 20  to/ {..:print.  
5d30: 20 20 20 20 20 20 73 2f 5e 23 20 2f 2f 0a 09 73        s/^# //..s
5d40: 2f 5e 23 20 2a 24 2f 2f 0a 09 73 2a 5c 24 70 72  /^# *$//..s*\$pr
5d50: 6f 67 6e 61 6d 65 2a 27 24 70 72 6f 67 6e 61 6d  ogname*'$prognam
5d60: 65 27 2a 0a 09 73 2a 5c 24 68 6f 73 74 2a 27 22  e'*..s*\$host*'"
5d70: 24 68 6f 73 74 22 27 2a 0a 09 73 2a 5c 24 53 48  $host"'*..s*\$SH
5d80: 45 4c 4c 2a 27 22 24 53 48 45 4c 4c 22 27 2a 0a  ELL*'"$SHELL"'*.
5d90: 09 73 2a 5c 24 4c 54 43 43 2a 27 22 24 4c 54 43  .s*\$LTCC*'"$LTC
5da0: 43 22 27 2a 0a 09 73 2a 5c 24 4c 54 43 46 4c 41  C"'*..s*\$LTCFLA
5db0: 47 53 2a 27 22 24 4c 54 43 46 4c 41 47 53 22 27  GS*'"$LTCFLAGS"'
5dc0: 2a 0a 09 73 2a 5c 24 4c 44 2a 27 22 24 4c 44 22  *..s*\$LD*'"$LD"
5dd0: 27 2a 0a 09 73 2f 5c 24 77 69 74 68 5f 67 6e 75  '*..s/\$with_gnu
5de0: 5f 6c 64 2f 27 22 24 77 69 74 68 5f 67 6e 75 5f  _ld/'"$with_gnu_
5df0: 6c 64 22 27 2f 0a 09 73 2f 5c 24 61 75 74 6f 6d  ld"'/..s/\$autom
5e00: 61 6b 65 5f 76 65 72 73 69 6f 6e 2f 27 22 60 28  ake_version/'"`(
5e10: 24 7b 41 55 54 4f 4d 41 4b 45 2d 61 75 74 6f 6d  ${AUTOMAKE-autom
5e20: 61 6b 65 7d 20 2d 2d 76 65 72 73 69 6f 6e 29 20  ake} --version) 
5e30: 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 24 53 45  2>/dev/null |$SE
5e40: 44 20 31 71 60 22 27 2f 0a 09 73 2f 5c 24 61 75  D 1q`"'/..s/\$au
5e50: 74 6f 63 6f 6e 66 5f 76 65 72 73 69 6f 6e 2f 27  toconf_version/'
5e60: 22 60 28 24 7b 41 55 54 4f 43 4f 4e 46 2d 61 75  "`(${AUTOCONF-au
5e70: 74 6f 63 6f 6e 66 7d 20 2d 2d 76 65 72 73 69 6f  toconf} --versio
5e80: 6e 29 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c  n) 2>/dev/null |
5e90: 24 53 45 44 20 31 71 60 22 27 2f 0a 09 70 0a 09  $SED 1q`"'/..p..
5ea0: 64 0a 20 20 20 20 20 7d 0a 20 20 20 20 20 2f 5e  d.     }.     /^
5eb0: 23 20 2e 2a 20 68 6f 6d 65 20 70 61 67 65 3a 2f  # .* home page:/
5ec0: 62 20 70 72 69 6e 74 0a 20 20 20 20 20 2f 5e 23  b print.     /^#
5ed0: 20 47 65 6e 65 72 61 6c 20 68 65 6c 70 20 75 73   General help us
5ee0: 69 6e 67 2f 62 20 70 72 69 6e 74 0a 20 20 20 20  ing/b print.    
5ef0: 20 27 20 3c 20 22 24 70 72 6f 67 70 61 74 68 22   ' < "$progpath"
5f00: 0a 20 20 20 20 72 65 74 3d 24 3f 0a 20 20 20 20  .    ret=$?.    
5f10: 69 66 20 74 65 73 74 20 2d 7a 20 22 24 31 22 3b  if test -z "$1";
5f20: 20 74 68 65 6e 0a 20 20 20 20 20 20 65 78 69 74   then.      exit
5f30: 20 24 72 65 74 0a 20 20 20 20 66 69 0a 7d 0a 0a   $ret.    fi.}..
5f40: 23 20 66 75 6e 63 5f 6d 69 73 73 69 6e 67 5f 61  # func_missing_a
5f50: 72 67 20 61 72 67 6e 61 6d 65 0a 23 20 45 63 68  rg argname.# Ech
5f60: 6f 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65 20 70  o program name p
5f70: 72 65 66 69 78 65 64 20 6d 65 73 73 61 67 65 20  refixed message 
5f80: 74 6f 20 73 74 61 6e 64 61 72 64 20 65 72 72 6f  to standard erro
5f90: 72 20 61 6e 64 20 73 65 74 20 67 6c 6f 62 61 6c  r and set global
5fa0: 0a 23 20 65 78 69 74 5f 63 6d 64 2e 0a 66 75 6e  .# exit_cmd..fun
5fb0: 63 5f 6d 69 73 73 69 6e 67 5f 61 72 67 20 28 29  c_missing_arg ()
5fc0: 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65 62 75  .{.    $opt_debu
5fd0: 67 0a 0a 20 20 20 20 66 75 6e 63 5f 65 72 72 6f  g..    func_erro
5fe0: 72 20 22 6d 69 73 73 69 6e 67 20 61 72 67 75 6d  r "missing argum
5ff0: 65 6e 74 20 66 6f 72 20 24 31 2e 22 0a 20 20 20  ent for $1.".   
6000: 20 65 78 69 74 5f 63 6d 64 3d 65 78 69 74 0a 7d   exit_cmd=exit.}
6010: 0a 0a 0a 23 20 66 75 6e 63 5f 73 70 6c 69 74 5f  ...# func_split_
6020: 73 68 6f 72 74 5f 6f 70 74 20 73 68 6f 72 74 6f  short_opt shorto
6030: 70 74 0a 23 20 53 65 74 20 66 75 6e 63 5f 73 70  pt.# Set func_sp
6040: 6c 69 74 5f 73 68 6f 72 74 5f 6f 70 74 5f 6e 61  lit_short_opt_na
6050: 6d 65 20 61 6e 64 20 66 75 6e 63 5f 73 70 6c 69  me and func_spli
6060: 74 5f 73 68 6f 72 74 5f 6f 70 74 5f 61 72 67 20  t_short_opt_arg 
6070: 73 68 65 6c 6c 0a 23 20 76 61 72 69 61 62 6c 65  shell.# variable
6080: 73 20 61 66 74 65 72 20 73 70 6c 69 74 74 69 6e  s after splittin
6090: 67 20 53 48 4f 52 54 4f 50 54 20 61 66 74 65 72  g SHORTOPT after
60a0: 20 74 68 65 20 32 6e 64 20 63 68 61 72 61 63 74   the 2nd charact
60b0: 65 72 2e 0a 66 75 6e 63 5f 73 70 6c 69 74 5f 73  er..func_split_s
60c0: 68 6f 72 74 5f 6f 70 74 20 28 29 0a 7b 0a 20 20  hort_opt ().{.  
60d0: 20 20 6d 79 5f 73 65 64 5f 73 68 6f 72 74 5f 6f    my_sed_short_o
60e0: 70 74 3d 27 31 73 2f 5e 5c 28 2e 2e 5c 29 2e 2a  pt='1s/^\(..\).*
60f0: 24 2f 5c 31 2f 3b 71 27 0a 20 20 20 20 6d 79 5f  $/\1/;q'.    my_
6100: 73 65 64 5f 73 68 6f 72 74 5f 72 65 73 74 3d 27  sed_short_rest='
6110: 31 73 2f 5e 2e 2e 5c 28 2e 2a 5c 29 24 2f 5c 31  1s/^..\(.*\)$/\1
6120: 2f 3b 71 27 0a 0a 20 20 20 20 66 75 6e 63 5f 73  /;q'..    func_s
6130: 70 6c 69 74 5f 73 68 6f 72 74 5f 6f 70 74 5f 6e  plit_short_opt_n
6140: 61 6d 65 3d 60 24 45 43 48 4f 20 22 24 31 22 20  ame=`$ECHO "$1" 
6150: 7c 20 24 53 45 44 20 22 24 6d 79 5f 73 65 64 5f  | $SED "$my_sed_
6160: 73 68 6f 72 74 5f 6f 70 74 22 60 0a 20 20 20 20  short_opt"`.    
6170: 66 75 6e 63 5f 73 70 6c 69 74 5f 73 68 6f 72 74  func_split_short
6180: 5f 6f 70 74 5f 61 72 67 3d 60 24 45 43 48 4f 20  _opt_arg=`$ECHO 
6190: 22 24 31 22 20 7c 20 24 53 45 44 20 22 24 6d 79  "$1" | $SED "$my
61a0: 5f 73 65 64 5f 73 68 6f 72 74 5f 72 65 73 74 22  _sed_short_rest"
61b0: 60 0a 7d 20 23 20 66 75 6e 63 5f 73 70 6c 69 74  `.} # func_split
61c0: 5f 73 68 6f 72 74 5f 6f 70 74 20 6d 61 79 20 62  _short_opt may b
61d0: 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 65 78  e replaced by ex
61e0: 74 65 6e 64 65 64 20 73 68 65 6c 6c 20 69 6d 70  tended shell imp
61f0: 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 0a 23 20  lementation...# 
6200: 66 75 6e 63 5f 73 70 6c 69 74 5f 6c 6f 6e 67 5f  func_split_long_
6210: 6f 70 74 20 6c 6f 6e 67 6f 70 74 0a 23 20 53 65  opt longopt.# Se
6220: 74 20 66 75 6e 63 5f 73 70 6c 69 74 5f 6c 6f 6e  t func_split_lon
6230: 67 5f 6f 70 74 5f 6e 61 6d 65 20 61 6e 64 20 66  g_opt_name and f
6240: 75 6e 63 5f 73 70 6c 69 74 5f 6c 6f 6e 67 5f 6f  unc_split_long_o
6250: 70 74 5f 61 72 67 20 73 68 65 6c 6c 0a 23 20 76  pt_arg shell.# v
6260: 61 72 69 61 62 6c 65 73 20 61 66 74 65 72 20 73  ariables after s
6270: 70 6c 69 74 74 69 6e 67 20 4c 4f 4e 47 4f 50 54  plitting LONGOPT
6280: 20 61 74 20 74 68 65 20 60 3d 27 20 73 69 67 6e   at the `=' sign
6290: 2e 0a 66 75 6e 63 5f 73 70 6c 69 74 5f 6c 6f 6e  ..func_split_lon
62a0: 67 5f 6f 70 74 20 28 29 0a 7b 0a 20 20 20 20 6d  g_opt ().{.    m
62b0: 79 5f 73 65 64 5f 6c 6f 6e 67 5f 6f 70 74 3d 27  y_sed_long_opt='
62c0: 31 73 2f 5e 5c 28 2d 2d 5b 5e 3d 5d 2a 5c 29 3d  1s/^\(--[^=]*\)=
62d0: 2e 2a 2f 5c 31 2f 3b 71 27 0a 20 20 20 20 6d 79  .*/\1/;q'.    my
62e0: 5f 73 65 64 5f 6c 6f 6e 67 5f 61 72 67 3d 27 31  _sed_long_arg='1
62f0: 73 2f 5e 2d 2d 5b 5e 3d 5d 2a 3d 2f 2f 27 0a 0a  s/^--[^=]*=//'..
6300: 20 20 20 20 66 75 6e 63 5f 73 70 6c 69 74 5f 6c      func_split_l
6310: 6f 6e 67 5f 6f 70 74 5f 6e 61 6d 65 3d 60 24 45  ong_opt_name=`$E
6320: 43 48 4f 20 22 24 31 22 20 7c 20 24 53 45 44 20  CHO "$1" | $SED 
6330: 22 24 6d 79 5f 73 65 64 5f 6c 6f 6e 67 5f 6f 70  "$my_sed_long_op
6340: 74 22 60 0a 20 20 20 20 66 75 6e 63 5f 73 70 6c  t"`.    func_spl
6350: 69 74 5f 6c 6f 6e 67 5f 6f 70 74 5f 61 72 67 3d  it_long_opt_arg=
6360: 60 24 45 43 48 4f 20 22 24 31 22 20 7c 20 24 53  `$ECHO "$1" | $S
6370: 45 44 20 22 24 6d 79 5f 73 65 64 5f 6c 6f 6e 67  ED "$my_sed_long
6380: 5f 61 72 67 22 60 0a 7d 20 23 20 66 75 6e 63 5f  _arg"`.} # func_
6390: 73 70 6c 69 74 5f 6c 6f 6e 67 5f 6f 70 74 20 6d  split_long_opt m
63a0: 61 79 20 62 65 20 72 65 70 6c 61 63 65 64 20 62  ay be replaced b
63b0: 79 20 65 78 74 65 6e 64 65 64 20 73 68 65 6c 6c  y extended shell
63c0: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a   implementation.
63d0: 0a 65 78 69 74 5f 63 6d 64 3d 3a 0a 0a 0a 0a 0a  .exit_cmd=:.....
63e0: 0a 6d 61 67 69 63 3d 22 25 25 25 4d 41 47 49 43  .magic="%%%MAGIC
63f0: 20 76 61 72 69 61 62 6c 65 25 25 25 22 0a 6d 61   variable%%%".ma
6400: 67 69 63 5f 65 78 65 3d 22 25 25 25 4d 41 47 49  gic_exe="%%%MAGI
6410: 43 20 45 58 45 20 76 61 72 69 61 62 6c 65 25 25  C EXE variable%%
6420: 25 22 0a 0a 23 20 47 6c 6f 62 61 6c 20 76 61 72  %"..# Global var
6430: 69 61 62 6c 65 73 2e 0a 6e 6f 6e 6f 70 74 3d 0a  iables..nonopt=.
6440: 70 72 65 73 65 72 76 65 5f 61 72 67 73 3d 0a 6c  preserve_args=.l
6450: 6f 32 6f 3d 22 73 2f 5c 5c 2e 6c 6f 5c 24 2f 2e  o2o="s/\\.lo\$/.
6460: 24 7b 6f 62 6a 65 78 74 7d 2f 22 0a 6f 32 6c 6f  ${objext}/".o2lo
6470: 3d 22 73 2f 5c 5c 2e 24 7b 6f 62 6a 65 78 74 7d  ="s/\\.${objext}
6480: 5c 24 2f 2e 6c 6f 2f 22 0a 65 78 74 72 61 63 74  \$/.lo/".extract
6490: 65 64 5f 61 72 63 68 69 76 65 73 3d 0a 65 78 74  ed_archives=.ext
64a0: 72 61 63 74 65 64 5f 73 65 72 69 61 6c 3d 30 0a  racted_serial=0.
64b0: 0a 23 20 49 66 20 74 68 69 73 20 76 61 72 69 61  .# If this varia
64c0: 62 6c 65 20 69 73 20 73 65 74 20 69 6e 20 61 6e  ble is set in an
64d0: 79 20 6f 66 20 74 68 65 20 61 63 74 69 6f 6e 73  y of the actions
64e0: 2c 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 6e  , the command in
64f0: 20 69 74 0a 23 20 77 69 6c 6c 20 62 65 20 65 78   it.# will be ex
6500: 65 63 65 64 20 61 74 20 74 68 65 20 65 6e 64 2e  eced at the end.
6510: 20 20 54 68 69 73 20 70 72 65 76 65 6e 74 73 20    This prevents 
6520: 68 65 72 65 2d 64 6f 63 75 6d 65 6e 74 73 20 66  here-documents f
6530: 72 6f 6d 20 62 65 69 6e 67 0a 23 20 6c 65 66 74  rom being.# left
6540: 20 6f 76 65 72 20 62 79 20 73 68 65 6c 6c 73 2e   over by shells.
6550: 0a 65 78 65 63 5f 63 6d 64 3d 0a 0a 23 20 66 75  .exec_cmd=..# fu
6560: 6e 63 5f 61 70 70 65 6e 64 20 76 61 72 20 76 61  nc_append var va
6570: 6c 75 65 0a 23 20 41 70 70 65 6e 64 20 56 41 4c  lue.# Append VAL
6580: 55 45 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66  UE to the end of
6590: 20 73 68 65 6c 6c 20 76 61 72 69 61 62 6c 65 20   shell variable 
65a0: 56 41 52 2e 0a 66 75 6e 63 5f 61 70 70 65 6e 64  VAR..func_append
65b0: 20 28 29 0a 7b 0a 20 20 20 20 65 76 61 6c 20 22   ().{.    eval "
65c0: 24 7b 31 7d 3d 5c 24 24 7b 31 7d 5c 24 7b 32 7d  ${1}=\$${1}\${2}
65d0: 22 0a 7d 20 23 20 66 75 6e 63 5f 61 70 70 65 6e  ".} # func_appen
65e0: 64 20 6d 61 79 20 62 65 20 72 65 70 6c 61 63 65  d may be replace
65f0: 64 20 62 79 20 65 78 74 65 6e 64 65 64 20 73 68  d by extended sh
6600: 65 6c 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69  ell implementati
6610: 6f 6e 0a 0a 23 20 66 75 6e 63 5f 61 70 70 65 6e  on..# func_appen
6620: 64 5f 71 75 6f 74 65 64 20 76 61 72 20 76 61 6c  d_quoted var val
6630: 75 65 0a 23 20 51 75 6f 74 65 20 56 41 4c 55 45  ue.# Quote VALUE
6640: 20 61 6e 64 20 61 70 70 65 6e 64 20 74 6f 20 74   and append to t
6650: 68 65 20 65 6e 64 20 6f 66 20 73 68 65 6c 6c 20  he end of shell 
6660: 76 61 72 69 61 62 6c 65 20 56 41 52 2c 20 73 65  variable VAR, se
6670: 70 61 72 61 74 65 64 0a 23 20 62 79 20 61 20 73  parated.# by a s
6680: 70 61 63 65 2e 0a 66 75 6e 63 5f 61 70 70 65 6e  pace..func_appen
6690: 64 5f 71 75 6f 74 65 64 20 28 29 0a 7b 0a 20 20  d_quoted ().{.  
66a0: 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72    func_quote_for
66b0: 5f 65 76 61 6c 20 22 24 7b 32 7d 22 0a 20 20 20  _eval "${2}".   
66c0: 20 65 76 61 6c 20 22 24 7b 31 7d 3d 5c 24 24 7b   eval "${1}=\$${
66d0: 31 7d 5c 5c 20 5c 24 66 75 6e 63 5f 71 75 6f 74  1}\\ \$func_quot
66e0: 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c  e_for_eval_resul
66f0: 74 22 0a 7d 20 23 20 66 75 6e 63 5f 61 70 70 65  t".} # func_appe
6700: 6e 64 5f 71 75 6f 74 65 64 20 6d 61 79 20 62 65  nd_quoted may be
6710: 20 72 65 70 6c 61 63 65 64 20 62 79 20 65 78 74   replaced by ext
6720: 65 6e 64 65 64 20 73 68 65 6c 6c 20 69 6d 70 6c  ended shell impl
6730: 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 0a 23 20 66  ementation...# f
6740: 75 6e 63 5f 61 72 69 74 68 20 61 72 69 74 68 6d  unc_arith arithm
6750: 65 74 69 63 2d 74 65 72 6d 2e 2e 2e 0a 66 75 6e  etic-term....fun
6760: 63 5f 61 72 69 74 68 20 28 29 0a 7b 0a 20 20 20  c_arith ().{.   
6770: 20 66 75 6e 63 5f 61 72 69 74 68 5f 72 65 73 75   func_arith_resu
6780: 6c 74 3d 60 65 78 70 72 20 22 24 7b 40 7d 22 60  lt=`expr "${@}"`
6790: 0a 7d 20 23 20 66 75 6e 63 5f 61 72 69 74 68 20  .} # func_arith 
67a0: 6d 61 79 20 62 65 20 72 65 70 6c 61 63 65 64 20  may be replaced 
67b0: 62 79 20 65 78 74 65 6e 64 65 64 20 73 68 65 6c  by extended shel
67c0: 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  l implementation
67d0: 0a 0a 0a 23 20 66 75 6e 63 5f 6c 65 6e 20 73 74  ...# func_len st
67e0: 72 69 6e 67 0a 23 20 53 54 52 49 4e 47 20 6d 61  ring.# STRING ma
67f0: 79 20 6e 6f 74 20 73 74 61 72 74 20 77 69 74 68  y not start with
6800: 20 61 20 68 79 70 68 65 6e 2e 0a 66 75 6e 63 5f   a hyphen..func_
6810: 6c 65 6e 20 28 29 0a 7b 0a 20 20 20 20 66 75 6e  len ().{.    fun
6820: 63 5f 6c 65 6e 5f 72 65 73 75 6c 74 3d 60 65 78  c_len_result=`ex
6830: 70 72 20 22 24 7b 31 7d 22 20 3a 20 22 2e 2a 22  pr "${1}" : ".*"
6840: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 7c 20   2>/dev/null || 
6850: 65 63 68 6f 20 24 6d 61 78 5f 63 6d 64 5f 6c 65  echo $max_cmd_le
6860: 6e 60 0a 7d 20 23 20 66 75 6e 63 5f 6c 65 6e 20  n`.} # func_len 
6870: 6d 61 79 20 62 65 20 72 65 70 6c 61 63 65 64 20  may be replaced 
6880: 62 79 20 65 78 74 65 6e 64 65 64 20 73 68 65 6c  by extended shel
6890: 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  l implementation
68a0: 0a 0a 0a 23 20 66 75 6e 63 5f 6c 6f 32 6f 20 6f  ...# func_lo2o o
68b0: 62 6a 65 63 74 0a 66 75 6e 63 5f 6c 6f 32 6f 20  bject.func_lo2o 
68c0: 28 29 0a 7b 0a 20 20 20 20 66 75 6e 63 5f 6c 6f  ().{.    func_lo
68d0: 32 6f 5f 72 65 73 75 6c 74 3d 60 24 45 43 48 4f  2o_result=`$ECHO
68e0: 20 22 24 7b 31 7d 22 20 7c 20 24 53 45 44 20 22   "${1}" | $SED "
68f0: 24 6c 6f 32 6f 22 60 0a 7d 20 23 20 66 75 6e 63  $lo2o"`.} # func
6900: 5f 6c 6f 32 6f 20 6d 61 79 20 62 65 20 72 65 70  _lo2o may be rep
6910: 6c 61 63 65 64 20 62 79 20 65 78 74 65 6e 64 65  laced by extende
6920: 64 20 73 68 65 6c 6c 20 69 6d 70 6c 65 6d 65 6e  d shell implemen
6930: 74 61 74 69 6f 6e 0a 0a 0a 23 20 66 75 6e 63 5f  tation...# func_
6940: 78 66 6f 72 6d 20 6c 69 62 6f 62 6a 2d 6f 72 2d  xform libobj-or-
6950: 73 6f 75 72 63 65 0a 66 75 6e 63 5f 78 66 6f 72  source.func_xfor
6960: 6d 20 28 29 0a 7b 0a 20 20 20 20 66 75 6e 63 5f  m ().{.    func_
6970: 78 66 6f 72 6d 5f 72 65 73 75 6c 74 3d 60 24 45  xform_result=`$E
6980: 43 48 4f 20 22 24 7b 31 7d 22 20 7c 20 24 53 45  CHO "${1}" | $SE
6990: 44 20 27 73 2f 5c 2e 5b 5e 2e 5d 2a 24 2f 2e 6c  D 's/\.[^.]*$/.l
69a0: 6f 2f 27 60 0a 7d 20 23 20 66 75 6e 63 5f 78 66  o/'`.} # func_xf
69b0: 6f 72 6d 20 6d 61 79 20 62 65 20 72 65 70 6c 61  orm may be repla
69c0: 63 65 64 20 62 79 20 65 78 74 65 6e 64 65 64 20  ced by extended 
69d0: 73 68 65 6c 6c 20 69 6d 70 6c 65 6d 65 6e 74 61  shell implementa
69e0: 74 69 6f 6e 0a 0a 0a 23 20 66 75 6e 63 5f 66 61  tion...# func_fa
69f0: 74 61 6c 5f 63 6f 6e 66 69 67 75 72 61 74 69 6f  tal_configuratio
6a00: 6e 20 61 72 67 2e 2e 2e 0a 23 20 45 63 68 6f 20  n arg....# Echo 
6a10: 70 72 6f 67 72 61 6d 20 6e 61 6d 65 20 70 72 65  program name pre
6a20: 66 69 78 65 64 20 6d 65 73 73 61 67 65 20 74 6f  fixed message to
6a30: 20 73 74 61 6e 64 61 72 64 20 65 72 72 6f 72 2c   standard error,
6a40: 20 66 6f 6c 6c 6f 77 65 64 20 62 79 0a 23 20 61   followed by.# a
6a50: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66   configuration f
6a60: 61 69 6c 75 72 65 20 68 69 6e 74 2c 20 61 6e 64  ailure hint, and
6a70: 20 65 78 69 74 2e 0a 66 75 6e 63 5f 66 61 74 61   exit..func_fata
6a80: 6c 5f 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  l_configuration 
6a90: 28 29 0a 7b 0a 20 20 20 20 66 75 6e 63 5f 65 72  ().{.    func_er
6aa0: 72 6f 72 20 24 7b 31 2b 22 24 40 22 7d 0a 20 20  ror ${1+"$@"}.  
6ab0: 20 20 66 75 6e 63 5f 65 72 72 6f 72 20 22 53 65    func_error "Se
6ac0: 65 20 74 68 65 20 24 50 41 43 4b 41 47 45 20 64  e the $PACKAGE d
6ad0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72  ocumentation for
6ae0: 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f   more informatio
6af0: 6e 2e 22 0a 20 20 20 20 66 75 6e 63 5f 66 61 74  n.".    func_fat
6b00: 61 6c 5f 65 72 72 6f 72 20 22 46 61 74 61 6c 20  al_error "Fatal 
6b10: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 65 72  configuration er
6b20: 72 6f 72 2e 22 0a 7d 0a 0a 0a 23 20 66 75 6e 63  ror.".}...# func
6b30: 5f 63 6f 6e 66 69 67 0a 23 20 44 69 73 70 6c 61  _config.# Displa
6b40: 79 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74  y the configurat
6b50: 69 6f 6e 20 66 6f 72 20 61 6c 6c 20 74 68 65 20  ion for all the 
6b60: 74 61 67 73 20 69 6e 20 74 68 69 73 20 73 63 72  tags in this scr
6b70: 69 70 74 2e 0a 66 75 6e 63 5f 63 6f 6e 66 69 67  ipt..func_config
6b80: 20 28 29 0a 7b 0a 20 20 20 20 72 65 5f 62 65 67   ().{.    re_beg
6b90: 69 6e 63 66 3d 27 5e 23 20 23 23 23 20 42 45 47  incf='^# ### BEG
6ba0: 49 4e 20 4c 49 42 54 4f 4f 4c 27 0a 20 20 20 20  IN LIBTOOL'.    
6bb0: 72 65 5f 65 6e 64 63 66 3d 27 5e 23 20 23 23 23  re_endcf='^# ###
6bc0: 20 45 4e 44 20 4c 49 42 54 4f 4f 4c 27 0a 0a 20   END LIBTOOL'.. 
6bd0: 20 20 20 23 20 44 65 66 61 75 6c 74 20 63 6f 6e     # Default con
6be0: 66 69 67 75 72 61 74 69 6f 6e 2e 0a 20 20 20 20  figuration..    
6bf0: 24 53 45 44 20 22 31 2c 2f 24 72 65 5f 62 65 67  $SED "1,/$re_beg
6c00: 69 6e 63 66 20 43 4f 4e 46 49 47 2f 64 3b 2f 24  incf CONFIG/d;/$
6c10: 72 65 5f 65 6e 64 63 66 20 43 4f 4e 46 49 47 2f  re_endcf CONFIG/
6c20: 2c 5c 24 64 22 20 3c 20 22 24 70 72 6f 67 70 61  ,\$d" < "$progpa
6c30: 74 68 22 0a 0a 20 20 20 20 23 20 4e 6f 77 20 70  th"..    # Now p
6c40: 72 69 6e 74 20 74 68 65 20 63 6f 6e 66 69 67 75  rint the configu
6c50: 72 61 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20  rations for the 
6c60: 74 61 67 73 2e 0a 20 20 20 20 66 6f 72 20 74 61  tags..    for ta
6c70: 67 6e 61 6d 65 20 69 6e 20 24 74 61 67 6c 69 73  gname in $taglis
6c80: 74 3b 20 64 6f 0a 20 20 20 20 20 20 24 53 45 44  t; do.      $SED
6c90: 20 2d 6e 20 22 2f 24 72 65 5f 62 65 67 69 6e 63   -n "/$re_beginc
6ca0: 66 20 54 41 47 20 43 4f 4e 46 49 47 3a 20 24 74  f TAG CONFIG: $t
6cb0: 61 67 6e 61 6d 65 5c 24 2f 2c 2f 24 72 65 5f 65  agname\$/,/$re_e
6cc0: 6e 64 63 66 20 54 41 47 20 43 4f 4e 46 49 47 3a  ndcf TAG CONFIG:
6cd0: 20 24 74 61 67 6e 61 6d 65 5c 24 2f 70 22 20 3c   $tagname\$/p" <
6ce0: 20 22 24 70 72 6f 67 70 61 74 68 22 0a 20 20 20   "$progpath".   
6cf0: 20 64 6f 6e 65 0a 0a 20 20 20 20 65 78 69 74 20   done..    exit 
6d00: 24 3f 0a 7d 0a 0a 23 20 66 75 6e 63 5f 66 65 61  $?.}..# func_fea
6d10: 74 75 72 65 73 0a 23 20 44 69 73 70 6c 61 79 20  tures.# Display 
6d20: 74 68 65 20 66 65 61 74 75 72 65 73 20 73 75 70  the features sup
6d30: 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 20 73  ported by this s
6d40: 63 72 69 70 74 2e 0a 66 75 6e 63 5f 66 65 61 74  cript..func_feat
6d50: 75 72 65 73 20 28 29 0a 7b 0a 20 20 20 20 65 63  ures ().{.    ec
6d60: 68 6f 20 22 68 6f 73 74 3a 20 24 68 6f 73 74 22  ho "host: $host"
6d70: 0a 20 20 20 20 69 66 20 74 65 73 74 20 22 24 62  .    if test "$b
6d80: 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
6d90: 73 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20  s" = yes; then. 
6da0: 20 20 20 20 20 65 63 68 6f 20 22 65 6e 61 62 6c       echo "enabl
6db0: 65 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 69  e shared librari
6dc0: 65 73 22 0a 20 20 20 20 65 6c 73 65 0a 20 20 20  es".    else.   
6dd0: 20 20 20 65 63 68 6f 20 22 64 69 73 61 62 6c 65     echo "disable
6de0: 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 69 65   shared librarie
6df0: 73 22 0a 20 20 20 20 66 69 0a 20 20 20 20 69 66  s".    fi.    if
6e00: 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6f 6c   test "$build_ol
6e10: 64 5f 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74  d_libs" = yes; t
6e20: 68 65 6e 0a 20 20 20 20 20 20 65 63 68 6f 20 22  hen.      echo "
6e30: 65 6e 61 62 6c 65 20 73 74 61 74 69 63 20 6c 69  enable static li
6e40: 62 72 61 72 69 65 73 22 0a 20 20 20 20 65 6c 73  braries".    els
6e50: 65 0a 20 20 20 20 20 20 65 63 68 6f 20 22 64 69  e.      echo "di
6e60: 73 61 62 6c 65 20 73 74 61 74 69 63 20 6c 69 62  sable static lib
6e70: 72 61 72 69 65 73 22 0a 20 20 20 20 66 69 0a 0a  raries".    fi..
6e80: 20 20 20 20 65 78 69 74 20 24 3f 0a 7d 0a 0a 23      exit $?.}..#
6e90: 20 66 75 6e 63 5f 65 6e 61 62 6c 65 5f 74 61 67   func_enable_tag
6ea0: 20 74 61 67 6e 61 6d 65 0a 23 20 56 65 72 69 66   tagname.# Verif
6eb0: 79 20 74 68 61 74 20 54 41 47 4e 41 4d 45 20 69  y that TAGNAME i
6ec0: 73 20 76 61 6c 69 64 2c 20 61 6e 64 20 65 69 74  s valid, and eit
6ed0: 68 65 72 20 66 6c 61 67 20 61 6e 20 65 72 72 6f  her flag an erro
6ee0: 72 20 61 6e 64 20 65 78 69 74 2c 20 6f 72 0a 23  r and exit, or.#
6ef0: 20 65 6e 61 62 6c 65 20 74 68 65 20 54 41 47 4e   enable the TAGN
6f00: 41 4d 45 20 74 61 67 2e 20 20 57 65 20 61 6c 73  AME tag.  We als
6f10: 6f 20 61 64 64 20 54 41 47 4e 41 4d 45 20 74 6f  o add TAGNAME to
6f20: 20 74 68 65 20 67 6c 6f 62 61 6c 20 24 74 61 67   the global $tag
6f30: 6c 69 73 74 0a 23 20 76 61 72 69 61 62 6c 65 20  list.# variable 
6f40: 68 65 72 65 2e 0a 66 75 6e 63 5f 65 6e 61 62 6c  here..func_enabl
6f50: 65 5f 74 61 67 20 28 29 0a 7b 0a 20 20 23 20 47  e_tag ().{.  # G
6f60: 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 3a 0a  lobal variable:.
6f70: 20 20 74 61 67 6e 61 6d 65 3d 22 24 31 22 0a 0a    tagname="$1"..
6f80: 20 20 72 65 5f 62 65 67 69 6e 63 66 3d 22 5e 23    re_begincf="^#
6f90: 20 23 23 23 20 42 45 47 49 4e 20 4c 49 42 54 4f   ### BEGIN LIBTO
6fa0: 4f 4c 20 54 41 47 20 43 4f 4e 46 49 47 3a 20 24  OL TAG CONFIG: $
6fb0: 74 61 67 6e 61 6d 65 5c 24 22 0a 20 20 72 65 5f  tagname\$".  re_
6fc0: 65 6e 64 63 66 3d 22 5e 23 20 23 23 23 20 45 4e  endcf="^# ### EN
6fd0: 44 20 4c 49 42 54 4f 4f 4c 20 54 41 47 20 43 4f  D LIBTOOL TAG CO
6fe0: 4e 46 49 47 3a 20 24 74 61 67 6e 61 6d 65 5c 24  NFIG: $tagname\$
6ff0: 22 0a 20 20 73 65 64 5f 65 78 74 72 61 63 74 63  ".  sed_extractc
7000: 66 3d 22 2f 24 72 65 5f 62 65 67 69 6e 63 66 2f  f="/$re_begincf/
7010: 2c 2f 24 72 65 5f 65 6e 64 63 66 2f 70 22 0a 0a  ,/$re_endcf/p"..
7020: 20 20 23 20 56 61 6c 69 64 61 74 65 20 74 61 67    # Validate tag
7030: 6e 61 6d 65 2e 0a 20 20 63 61 73 65 20 24 74 61  name..  case $ta
7040: 67 6e 61 6d 65 20 69 6e 0a 20 20 20 20 2a 5b 21  gname in.    *[!
7050: 2d 5f 41 2d 5a 61 2d 7a 30 2d 39 2c 2f 5d 2a 29  -_A-Za-z0-9,/]*)
7060: 0a 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61  .      func_fata
7070: 6c 5f 65 72 72 6f 72 20 22 69 6e 76 61 6c 69 64  l_error "invalid
7080: 20 74 61 67 20 6e 61 6d 65 3a 20 24 74 61 67 6e   tag name: $tagn
7090: 61 6d 65 22 0a 20 20 20 20 20 20 3b 3b 0a 20 20  ame".      ;;.  
70a0: 65 73 61 63 0a 0a 20 20 23 20 44 6f 6e 27 74 20  esac..  # Don't 
70b0: 74 65 73 74 20 66 6f 72 20 74 68 65 20 22 64 65  test for the "de
70c0: 66 61 75 6c 74 22 20 43 20 74 61 67 2c 20 61 73  fault" C tag, as
70d0: 20 77 65 20 6b 6e 6f 77 20 69 74 27 73 0a 20 20   we know it's.  
70e0: 23 20 74 68 65 72 65 20 62 75 74 20 6e 6f 74 20  # there but not 
70f0: 73 70 65 63 69 61 6c 6c 79 20 6d 61 72 6b 65 64  specially marked
7100: 2e 0a 20 20 63 61 73 65 20 24 74 61 67 6e 61 6d  ..  case $tagnam
7110: 65 20 69 6e 0a 20 20 20 20 43 43 29 20 3b 3b 0a  e in.    CC) ;;.
7120: 20 20 20 20 2a 29 0a 20 20 20 20 20 20 69 66 20      *).      if 
7130: 24 47 52 45 50 20 22 24 72 65 5f 62 65 67 69 6e  $GREP "$re_begin
7140: 63 66 22 20 22 24 70 72 6f 67 70 61 74 68 22 20  cf" "$progpath" 
7150: 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 3b  >/dev/null 2>&1;
7160: 20 74 68 65 6e 0a 09 74 61 67 6c 69 73 74 3d 22   then..taglist="
7170: 24 74 61 67 6c 69 73 74 20 24 74 61 67 6e 61 6d  $taglist $tagnam
7180: 65 22 0a 0a 09 23 20 45 76 61 6c 75 61 74 65 20  e"...# Evaluate 
7190: 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  the configuratio
71a0: 6e 2e 20 20 42 65 20 63 61 72 65 66 75 6c 20 74  n.  Be careful t
71b0: 6f 20 71 75 6f 74 65 20 74 68 65 20 70 61 74 68  o quote the path
71c0: 0a 09 23 20 61 6e 64 20 74 68 65 20 73 65 64 20  ..# and the sed 
71d0: 73 63 72 69 70 74 2c 20 74 6f 20 61 76 6f 69 64  script, to avoid
71e0: 20 73 70 6c 69 74 74 69 6e 67 20 6f 6e 20 77 68   splitting on wh
71f0: 69 74 65 73 70 61 63 65 2c 20 62 75 74 0a 09 23  itespace, but..#
7200: 20 61 6c 73 6f 20 64 6f 6e 27 74 20 75 73 65 20   also don't use 
7210: 6e 6f 6e 2d 70 6f 72 74 61 62 6c 65 20 71 75 6f  non-portable quo
7220: 74 65 73 20 77 69 74 68 69 6e 20 62 61 63 6b 71  tes within backq
7230: 75 6f 74 65 73 20 77 69 74 68 69 6e 0a 09 23 20  uotes within..# 
7240: 71 75 6f 74 65 73 20 77 65 20 68 61 76 65 20 74  quotes we have t
7250: 6f 20 64 6f 20 69 74 20 69 6e 20 32 20 73 74 65  o do it in 2 ste
7260: 70 73 3a 0a 09 65 78 74 72 61 63 74 65 64 63 66  ps:..extractedcf
7270: 3d 60 24 53 45 44 20 2d 6e 20 2d 65 20 22 24 73  =`$SED -n -e "$s
7280: 65 64 5f 65 78 74 72 61 63 74 63 66 22 20 3c 20  ed_extractcf" < 
7290: 22 24 70 72 6f 67 70 61 74 68 22 60 0a 09 65 76  "$progpath"`..ev
72a0: 61 6c 20 22 24 65 78 74 72 61 63 74 65 64 63 66  al "$extractedcf
72b0: 22 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 66 75  ".      else..fu
72c0: 6e 63 5f 65 72 72 6f 72 20 22 69 67 6e 6f 72 69  nc_error "ignori
72d0: 6e 67 20 75 6e 6b 6e 6f 77 6e 20 74 61 67 20 24  ng unknown tag $
72e0: 74 61 67 6e 61 6d 65 22 0a 20 20 20 20 20 20 66  tagname".      f
72f0: 69 0a 20 20 20 20 20 20 3b 3b 0a 20 20 65 73 61  i.      ;;.  esa
7300: 63 0a 7d 0a 0a 23 20 66 75 6e 63 5f 63 68 65 63  c.}..# func_chec
7310: 6b 5f 76 65 72 73 69 6f 6e 5f 6d 61 74 63 68 0a  k_version_match.
7320: 23 20 45 6e 73 75 72 65 20 74 68 61 74 20 77 65  # Ensure that we
7330: 20 61 72 65 20 75 73 69 6e 67 20 6d 34 20 6d 61   are using m4 ma
7340: 63 72 6f 73 2c 20 61 6e 64 20 6c 69 62 74 6f 6f  cros, and libtoo
7350: 6c 20 73 63 72 69 70 74 20 66 72 6f 6d 20 74 68  l script from th
7360: 65 20 73 61 6d 65 0a 23 20 72 65 6c 65 61 73 65  e same.# release
7370: 20 6f 66 20 6c 69 62 74 6f 6f 6c 2e 0a 66 75 6e   of libtool..fun
7380: 63 5f 63 68 65 63 6b 5f 76 65 72 73 69 6f 6e 5f  c_check_version_
7390: 6d 61 74 63 68 20 28 29 0a 7b 0a 20 20 69 66 20  match ().{.  if 
73a0: 74 65 73 74 20 22 24 70 61 63 6b 61 67 65 5f 72  test "$package_r
73b0: 65 76 69 73 69 6f 6e 22 20 21 3d 20 22 24 6d 61  evision" != "$ma
73c0: 63 72 6f 5f 72 65 76 69 73 69 6f 6e 22 3b 20 74  cro_revision"; t
73d0: 68 65 6e 0a 20 20 20 20 69 66 20 74 65 73 74 20  hen.    if test 
73e0: 22 24 56 45 52 53 49 4f 4e 22 20 21 3d 20 22 24  "$VERSION" != "$
73f0: 6d 61 63 72 6f 5f 76 65 72 73 69 6f 6e 22 3b 20  macro_version"; 
7400: 74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 74 65  then.      if te
7410: 73 74 20 2d 7a 20 22 24 6d 61 63 72 6f 5f 76 65  st -z "$macro_ve
7420: 72 73 69 6f 6e 22 3b 20 74 68 65 6e 0a 20 20 20  rsion"; then.   
7430: 20 20 20 20 20 63 61 74 20 3e 26 32 20 3c 3c 5f       cat >&2 <<_
7440: 4c 54 5f 45 4f 46 0a 24 70 72 6f 67 6e 61 6d 65  LT_EOF.$progname
7450: 3a 20 56 65 72 73 69 6f 6e 20 6d 69 73 6d 61 74  : Version mismat
7460: 63 68 20 65 72 72 6f 72 2e 20 20 54 68 69 73 20  ch error.  This 
7470: 69 73 20 24 50 41 43 4b 41 47 45 20 24 56 45 52  is $PACKAGE $VER
7480: 53 49 4f 4e 2c 20 62 75 74 20 74 68 65 0a 24 70  SION, but the.$p
7490: 72 6f 67 6e 61 6d 65 3a 20 64 65 66 69 6e 69 74  rogname: definit
74a0: 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 54 5f 49  ion of this LT_I
74b0: 4e 49 54 20 63 6f 6d 65 73 20 66 72 6f 6d 20 61  NIT comes from a
74c0: 6e 20 6f 6c 64 65 72 20 72 65 6c 65 61 73 65 2e  n older release.
74d0: 0a 24 70 72 6f 67 6e 61 6d 65 3a 20 59 6f 75 20  .$progname: You 
74e0: 73 68 6f 75 6c 64 20 72 65 63 72 65 61 74 65 20  should recreate 
74f0: 61 63 6c 6f 63 61 6c 2e 6d 34 20 77 69 74 68 20  aclocal.m4 with 
7500: 6d 61 63 72 6f 73 20 66 72 6f 6d 20 24 50 41 43  macros from $PAC
7510: 4b 41 47 45 20 24 56 45 52 53 49 4f 4e 0a 24 70  KAGE $VERSION.$p
7520: 72 6f 67 6e 61 6d 65 3a 20 61 6e 64 20 72 75 6e  rogname: and run
7530: 20 61 75 74 6f 63 6f 6e 66 20 61 67 61 69 6e 2e   autoconf again.
7540: 0a 5f 4c 54 5f 45 4f 46 0a 20 20 20 20 20 20 65  ._LT_EOF.      e
7550: 6c 73 65 0a 20 20 20 20 20 20 20 20 63 61 74 20  lse.        cat 
7560: 3e 26 32 20 3c 3c 5f 4c 54 5f 45 4f 46 0a 24 70  >&2 <<_LT_EOF.$p
7570: 72 6f 67 6e 61 6d 65 3a 20 56 65 72 73 69 6f 6e  rogname: Version
7580: 20 6d 69 73 6d 61 74 63 68 20 65 72 72 6f 72 2e   mismatch error.
7590: 20 20 54 68 69 73 20 69 73 20 24 50 41 43 4b 41    This is $PACKA
75a0: 47 45 20 24 56 45 52 53 49 4f 4e 2c 20 62 75 74  GE $VERSION, but
75b0: 20 74 68 65 0a 24 70 72 6f 67 6e 61 6d 65 3a 20   the.$progname: 
75c0: 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 74 68  definition of th
75d0: 69 73 20 4c 54 5f 49 4e 49 54 20 63 6f 6d 65 73  is LT_INIT comes
75e0: 20 66 72 6f 6d 20 24 50 41 43 4b 41 47 45 20 24   from $PACKAGE $
75f0: 6d 61 63 72 6f 5f 76 65 72 73 69 6f 6e 2e 0a 24  macro_version..$
7600: 70 72 6f 67 6e 61 6d 65 3a 20 59 6f 75 20 73 68  progname: You sh
7610: 6f 75 6c 64 20 72 65 63 72 65 61 74 65 20 61 63  ould recreate ac
7620: 6c 6f 63 61 6c 2e 6d 34 20 77 69 74 68 20 6d 61  local.m4 with ma
7630: 63 72 6f 73 20 66 72 6f 6d 20 24 50 41 43 4b 41  cros from $PACKA
7640: 47 45 20 24 56 45 52 53 49 4f 4e 0a 24 70 72 6f  GE $VERSION.$pro
7650: 67 6e 61 6d 65 3a 20 61 6e 64 20 72 75 6e 20 61  gname: and run a
7660: 75 74 6f 63 6f 6e 66 20 61 67 61 69 6e 2e 0a 5f  utoconf again.._
7670: 4c 54 5f 45 4f 46 0a 20 20 20 20 20 20 66 69 0a  LT_EOF.      fi.
7680: 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 63      else.      c
7690: 61 74 20 3e 26 32 20 3c 3c 5f 4c 54 5f 45 4f 46  at >&2 <<_LT_EOF
76a0: 0a 24 70 72 6f 67 6e 61 6d 65 3a 20 56 65 72 73  .$progname: Vers
76b0: 69 6f 6e 20 6d 69 73 6d 61 74 63 68 20 65 72 72  ion mismatch err
76c0: 6f 72 2e 20 20 54 68 69 73 20 69 73 20 24 50 41  or.  This is $PA
76d0: 43 4b 41 47 45 20 24 56 45 52 53 49 4f 4e 2c 20  CKAGE $VERSION, 
76e0: 72 65 76 69 73 69 6f 6e 20 24 70 61 63 6b 61 67  revision $packag
76f0: 65 5f 72 65 76 69 73 69 6f 6e 2c 0a 24 70 72 6f  e_revision,.$pro
7700: 67 6e 61 6d 65 3a 20 62 75 74 20 74 68 65 20 64  gname: but the d
7710: 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 74 68 69  efinition of thi
7720: 73 20 4c 54 5f 49 4e 49 54 20 63 6f 6d 65 73 20  s LT_INIT comes 
7730: 66 72 6f 6d 20 72 65 76 69 73 69 6f 6e 20 24 6d  from revision $m
7740: 61 63 72 6f 5f 72 65 76 69 73 69 6f 6e 2e 0a 24  acro_revision..$
7750: 70 72 6f 67 6e 61 6d 65 3a 20 59 6f 75 20 73 68  progname: You sh
7760: 6f 75 6c 64 20 72 65 63 72 65 61 74 65 20 61 63  ould recreate ac
7770: 6c 6f 63 61 6c 2e 6d 34 20 77 69 74 68 20 6d 61  local.m4 with ma
7780: 63 72 6f 73 20 66 72 6f 6d 20 72 65 76 69 73 69  cros from revisi
7790: 6f 6e 20 24 70 61 63 6b 61 67 65 5f 72 65 76 69  on $package_revi
77a0: 73 69 6f 6e 0a 24 70 72 6f 67 6e 61 6d 65 3a 20  sion.$progname: 
77b0: 6f 66 20 24 50 41 43 4b 41 47 45 20 24 56 45 52  of $PACKAGE $VER
77c0: 53 49 4f 4e 20 61 6e 64 20 72 75 6e 20 61 75 74  SION and run aut
77d0: 6f 63 6f 6e 66 20 61 67 61 69 6e 2e 0a 5f 4c 54  oconf again.._LT
77e0: 5f 45 4f 46 0a 20 20 20 20 66 69 0a 0a 20 20 20  _EOF.    fi..   
77f0: 20 65 78 69 74 20 24 45 58 49 54 5f 4d 49 53 4d   exit $EXIT_MISM
7800: 41 54 43 48 0a 20 20 66 69 0a 7d 0a 0a 0a 23 20  ATCH.  fi.}...# 
7810: 53 68 6f 72 74 68 61 6e 64 20 66 6f 72 20 2d 2d  Shorthand for --
7820: 6d 6f 64 65 3d 66 6f 6f 2c 20 6f 6e 6c 79 20 76  mode=foo, only v
7830: 61 6c 69 64 20 61 73 20 74 68 65 20 66 69 72 73  alid as the firs
7840: 74 20 61 72 67 75 6d 65 6e 74 0a 63 61 73 65 20  t argument.case 
7850: 24 31 20 69 6e 0a 63 6c 65 61 6e 7c 63 6c 65 61  $1 in.clean|clea
7860: 7c 63 6c 65 7c 63 6c 29 0a 20 20 73 68 69 66 74  |cle|cl).  shift
7870: 3b 20 73 65 74 20 64 75 6d 6d 79 20 2d 2d 6d 6f  ; set dummy --mo
7880: 64 65 20 63 6c 65 61 6e 20 24 7b 31 2b 22 24 40  de clean ${1+"$@
7890: 22 7d 3b 20 73 68 69 66 74 0a 20 20 3b 3b 0a 63  "}; shift.  ;;.c
78a0: 6f 6d 70 69 6c 65 7c 63 6f 6d 70 69 6c 7c 63 6f  ompile|compil|co
78b0: 6d 70 69 7c 63 6f 6d 70 7c 63 6f 6d 7c 63 6f 7c  mpi|comp|com|co|
78c0: 63 29 0a 20 20 73 68 69 66 74 3b 20 73 65 74 20  c).  shift; set 
78d0: 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65 20 63 6f 6d  dummy --mode com
78e0: 70 69 6c 65 20 24 7b 31 2b 22 24 40 22 7d 3b 20  pile ${1+"$@"}; 
78f0: 73 68 69 66 74 0a 20 20 3b 3b 0a 65 78 65 63 75  shift.  ;;.execu
7900: 74 65 7c 65 78 65 63 75 74 7c 65 78 65 63 75 7c  te|execut|execu|
7910: 65 78 65 63 7c 65 78 65 7c 65 78 7c 65 29 0a 20  exec|exe|ex|e). 
7920: 20 73 68 69 66 74 3b 20 73 65 74 20 64 75 6d 6d   shift; set dumm
7930: 79 20 2d 2d 6d 6f 64 65 20 65 78 65 63 75 74 65  y --mode execute
7940: 20 24 7b 31 2b 22 24 40 22 7d 3b 20 73 68 69 66   ${1+"$@"}; shif
7950: 74 0a 20 20 3b 3b 0a 66 69 6e 69 73 68 7c 66 69  t.  ;;.finish|fi
7960: 6e 69 73 7c 66 69 6e 69 7c 66 69 6e 7c 66 69 7c  nis|fini|fin|fi|
7970: 66 29 0a 20 20 73 68 69 66 74 3b 20 73 65 74 20  f).  shift; set 
7980: 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65 20 66 69 6e  dummy --mode fin
7990: 69 73 68 20 24 7b 31 2b 22 24 40 22 7d 3b 20 73  ish ${1+"$@"}; s
79a0: 68 69 66 74 0a 20 20 3b 3b 0a 69 6e 73 74 61 6c  hift.  ;;.instal
79b0: 6c 7c 69 6e 73 74 61 6c 7c 69 6e 73 74 61 7c 69  l|instal|insta|i
79c0: 6e 73 74 7c 69 6e 73 7c 69 6e 7c 69 29 0a 20 20  nst|ins|in|i).  
79d0: 73 68 69 66 74 3b 20 73 65 74 20 64 75 6d 6d 79  shift; set dummy
79e0: 20 2d 2d 6d 6f 64 65 20 69 6e 73 74 61 6c 6c 20   --mode install 
79f0: 24 7b 31 2b 22 24 40 22 7d 3b 20 73 68 69 66 74  ${1+"$@"}; shift
7a00: 0a 20 20 3b 3b 0a 6c 69 6e 6b 7c 6c 69 6e 7c 6c  .  ;;.link|lin|l
7a10: 69 7c 6c 29 0a 20 20 73 68 69 66 74 3b 20 73 65  i|l).  shift; se
7a20: 74 20 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65 20 6c  t dummy --mode l
7a30: 69 6e 6b 20 24 7b 31 2b 22 24 40 22 7d 3b 20 73  ink ${1+"$@"}; s
7a40: 68 69 66 74 0a 20 20 3b 3b 0a 75 6e 69 6e 73 74  hift.  ;;.uninst
7a50: 61 6c 6c 7c 75 6e 69 6e 73 74 61 6c 7c 75 6e 69  all|uninstal|uni
7a60: 6e 73 74 61 7c 75 6e 69 6e 73 74 7c 75 6e 69 6e  nsta|uninst|unin
7a70: 73 7c 75 6e 69 6e 7c 75 6e 69 7c 75 6e 7c 75 29  s|unin|uni|un|u)
7a80: 0a 20 20 73 68 69 66 74 3b 20 73 65 74 20 64 75  .  shift; set du
7a90: 6d 6d 79 20 2d 2d 6d 6f 64 65 20 75 6e 69 6e 73  mmy --mode unins
7aa0: 74 61 6c 6c 20 24 7b 31 2b 22 24 40 22 7d 3b 20  tall ${1+"$@"}; 
7ab0: 73 68 69 66 74 0a 20 20 3b 3b 0a 65 73 61 63 0a  shift.  ;;.esac.
7ac0: 0a 0a 0a 23 20 4f 70 74 69 6f 6e 20 64 65 66 61  ...# Option defa
7ad0: 75 6c 74 73 3a 0a 6f 70 74 5f 64 65 62 75 67 3d  ults:.opt_debug=
7ae0: 3a 0a 6f 70 74 5f 64 72 79 5f 72 75 6e 3d 66 61  :.opt_dry_run=fa
7af0: 6c 73 65 0a 6f 70 74 5f 63 6f 6e 66 69 67 3d 66  lse.opt_config=f
7b00: 61 6c 73 65 0a 6f 70 74 5f 70 72 65 73 65 72 76  alse.opt_preserv
7b10: 65 5f 64 75 70 5f 64 65 70 73 3d 66 61 6c 73 65  e_dup_deps=false
7b20: 0a 6f 70 74 5f 66 65 61 74 75 72 65 73 3d 66 61  .opt_features=fa
7b30: 6c 73 65 0a 6f 70 74 5f 66 69 6e 69 73 68 3d 66  lse.opt_finish=f
7b40: 61 6c 73 65 0a 6f 70 74 5f 68 65 6c 70 3d 66 61  alse.opt_help=fa
7b50: 6c 73 65 0a 6f 70 74 5f 68 65 6c 70 5f 61 6c 6c  lse.opt_help_all
7b60: 3d 66 61 6c 73 65 0a 6f 70 74 5f 73 69 6c 65 6e  =false.opt_silen
7b70: 74 3d 3a 0a 6f 70 74 5f 77 61 72 6e 69 6e 67 3d  t=:.opt_warning=
7b80: 3a 0a 6f 70 74 5f 76 65 72 62 6f 73 65 3d 3a 0a  :.opt_verbose=:.
7b90: 6f 70 74 5f 73 69 6c 65 6e 74 3d 66 61 6c 73 65  opt_silent=false
7ba0: 0a 6f 70 74 5f 76 65 72 62 6f 73 65 3d 66 61 6c  .opt_verbose=fal
7bb0: 73 65 0a 0a 0a 23 20 50 61 72 73 65 20 6f 70 74  se...# Parse opt
7bc0: 69 6f 6e 73 20 6f 6e 63 65 2c 20 74 68 6f 72 6f  ions once, thoro
7bd0: 75 67 68 6c 79 2e 20 20 54 68 69 73 20 63 6f 6d  ughly.  This com
7be0: 65 73 20 61 73 20 73 6f 6f 6e 20 61 73 20 70 6f  es as soon as po
7bf0: 73 73 69 62 6c 65 20 69 6e 20 74 68 65 0a 23 20  ssible in the.# 
7c00: 73 63 72 69 70 74 20 74 6f 20 6d 61 6b 65 20 74  script to make t
7c10: 68 69 6e 67 73 20 6c 69 6b 65 20 60 2d 2d 76 65  hings like `--ve
7c20: 72 73 69 6f 6e 27 20 68 61 70 70 65 6e 20 61 73  rsion' happen as
7c30: 20 71 75 69 63 6b 6c 79 20 61 73 20 77 65 20 63   quickly as we c
7c40: 61 6e 2e 0a 7b 0a 20 20 23 20 74 68 69 73 20 6a  an..{.  # this j
7c50: 75 73 74 20 65 61 73 65 73 20 65 78 69 74 20 68  ust eases exit h
7c60: 61 6e 64 6c 69 6e 67 0a 20 20 77 68 69 6c 65 20  andling.  while 
7c70: 74 65 73 74 20 24 23 20 2d 67 74 20 30 3b 20 64  test $# -gt 0; d
7c80: 6f 0a 20 20 20 20 6f 70 74 3d 22 24 31 22 0a 20  o.    opt="$1". 
7c90: 20 20 20 73 68 69 66 74 0a 20 20 20 20 63 61 73     shift.    cas
7ca0: 65 20 24 6f 70 74 20 69 6e 0a 20 20 20 20 20 20  e $opt in.      
7cb0: 2d 2d 64 65 62 75 67 7c 2d 78 29 09 6f 70 74 5f  --debug|-x).opt_
7cc0: 64 65 62 75 67 3d 27 73 65 74 20 2d 78 27 0a 09  debug='set -x'..
7cd0: 09 09 66 75 6e 63 5f 65 63 68 6f 20 22 65 6e 61  ..func_echo "ena
7ce0: 62 6c 69 6e 67 20 73 68 65 6c 6c 20 74 72 61 63  bling shell trac
7cf0: 65 20 6d 6f 64 65 22 0a 09 09 09 24 6f 70 74 5f  e mode"....$opt_
7d00: 64 65 62 75 67 0a 09 09 09 3b 3b 0a 20 20 20 20  debug....;;.    
7d10: 20 20 2d 2d 64 72 79 2d 72 75 6e 7c 2d 2d 64 72    --dry-run|--dr
7d20: 79 72 75 6e 7c 2d 6e 29 0a 09 09 09 6f 70 74 5f  yrun|-n)....opt_
7d30: 64 72 79 5f 72 75 6e 3d 3a 0a 09 09 09 3b 3b 0a  dry_run=:....;;.
7d40: 20 20 20 20 20 20 2d 2d 63 6f 6e 66 69 67 29 0a        --config).
7d50: 09 09 09 6f 70 74 5f 63 6f 6e 66 69 67 3d 3a 0a  ...opt_config=:.
7d60: 66 75 6e 63 5f 63 6f 6e 66 69 67 0a 09 09 09 3b  func_config....;
7d70: 3b 0a 20 20 20 20 20 20 2d 2d 64 6c 6f 70 65 6e  ;.      --dlopen
7d80: 7c 2d 64 6c 6f 70 65 6e 29 0a 09 09 09 6f 70 74  |-dlopen)....opt
7d90: 61 72 67 3d 22 24 31 22 0a 09 09 09 6f 70 74 5f  arg="$1"....opt_
7da0: 64 6c 6f 70 65 6e 3d 22 24 7b 6f 70 74 5f 64 6c  dlopen="${opt_dl
7db0: 6f 70 65 6e 2b 24 6f 70 74 5f 64 6c 6f 70 65 6e  open+$opt_dlopen
7dc0: 0a 7d 24 6f 70 74 61 72 67 22 0a 09 09 09 73 68  .}$optarg"....sh
7dd0: 69 66 74 0a 09 09 09 3b 3b 0a 20 20 20 20 20 20  ift....;;.      
7de0: 2d 2d 70 72 65 73 65 72 76 65 2d 64 75 70 2d 64  --preserve-dup-d
7df0: 65 70 73 29 0a 09 09 09 6f 70 74 5f 70 72 65 73  eps)....opt_pres
7e00: 65 72 76 65 5f 64 75 70 5f 64 65 70 73 3d 3a 0a  erve_dup_deps=:.
7e10: 09 09 09 3b 3b 0a 20 20 20 20 20 20 2d 2d 66 65  ...;;.      --fe
7e20: 61 74 75 72 65 73 29 0a 09 09 09 6f 70 74 5f 66  atures)....opt_f
7e30: 65 61 74 75 72 65 73 3d 3a 0a 66 75 6e 63 5f 66  eatures=:.func_f
7e40: 65 61 74 75 72 65 73 0a 09 09 09 3b 3b 0a 20 20  eatures....;;.  
7e50: 20 20 20 20 2d 2d 66 69 6e 69 73 68 29 0a 09 09      --finish)...
7e60: 09 6f 70 74 5f 66 69 6e 69 73 68 3d 3a 0a 73 65  .opt_finish=:.se
7e70: 74 20 64 75 6d 6d 79 20 2d 2d 6d 6f 64 65 20 66  t dummy --mode f
7e80: 69 6e 69 73 68 20 24 7b 31 2b 22 24 40 22 7d 3b  inish ${1+"$@"};
7e90: 20 73 68 69 66 74 0a 09 09 09 3b 3b 0a 20 20 20   shift....;;.   
7ea0: 20 20 20 2d 2d 68 65 6c 70 29 0a 09 09 09 6f 70     --help)....op
7eb0: 74 5f 68 65 6c 70 3d 3a 0a 09 09 09 3b 3b 0a 20  t_help=:....;;. 
7ec0: 20 20 20 20 20 2d 2d 68 65 6c 70 2d 61 6c 6c 29       --help-all)
7ed0: 0a 09 09 09 6f 70 74 5f 68 65 6c 70 5f 61 6c 6c  ....opt_help_all
7ee0: 3d 3a 0a 6f 70 74 5f 68 65 6c 70 3d 27 3a 20 68  =:.opt_help=': h
7ef0: 65 6c 70 2d 61 6c 6c 27 0a 09 09 09 3b 3b 0a 20  elp-all'....;;. 
7f00: 20 20 20 20 20 2d 2d 6d 6f 64 65 29 0a 09 09 09       --mode)....
7f10: 74 65 73 74 20 24 23 20 3d 20 30 20 26 26 20 66  test $# = 0 && f
7f20: 75 6e 63 5f 6d 69 73 73 69 6e 67 5f 61 72 67 20  unc_missing_arg 
7f30: 24 6f 70 74 20 26 26 20 62 72 65 61 6b 0a 09 09  $opt && break...
7f40: 09 6f 70 74 61 72 67 3d 22 24 31 22 0a 09 09 09  .optarg="$1"....
7f50: 6f 70 74 5f 6d 6f 64 65 3d 22 24 6f 70 74 61 72  opt_mode="$optar
7f60: 67 22 0a 63 61 73 65 20 24 6f 70 74 61 72 67 20  g".case $optarg 
7f70: 69 6e 0a 20 20 23 20 56 61 6c 69 64 20 6d 6f 64  in.  # Valid mod
7f80: 65 20 61 72 67 75 6d 65 6e 74 73 3a 0a 20 20 63  e arguments:.  c
7f90: 6c 65 61 6e 7c 63 6f 6d 70 69 6c 65 7c 65 78 65  lean|compile|exe
7fa0: 63 75 74 65 7c 66 69 6e 69 73 68 7c 69 6e 73 74  cute|finish|inst
7fb0: 61 6c 6c 7c 6c 69 6e 6b 7c 72 65 6c 69 6e 6b 7c  all|link|relink|
7fc0: 75 6e 69 6e 73 74 61 6c 6c 29 20 3b 3b 0a 0a 20  uninstall) ;;.. 
7fd0: 20 23 20 43 61 74 63 68 20 61 6e 79 74 68 69 6e   # Catch anythin
7fe0: 67 20 65 6c 73 65 20 61 73 20 61 6e 20 65 72 72  g else as an err
7ff0: 6f 72 0a 20 20 2a 29 20 66 75 6e 63 5f 65 72 72  or.  *) func_err
8000: 6f 72 20 22 69 6e 76 61 6c 69 64 20 61 72 67 75  or "invalid argu
8010: 6d 65 6e 74 20 66 6f 72 20 24 6f 70 74 22 0a 20  ment for $opt". 
8020: 20 20 20 20 65 78 69 74 5f 63 6d 64 3d 65 78 69      exit_cmd=exi
8030: 74 0a 20 20 20 20 20 62 72 65 61 6b 0a 20 20 20  t.     break.   
8040: 20 20 3b 3b 0a 65 73 61 63 0a 09 09 09 73 68 69    ;;.esac....shi
8050: 66 74 0a 09 09 09 3b 3b 0a 20 20 20 20 20 20 2d  ft....;;.      -
8060: 2d 6e 6f 2d 73 69 6c 65 6e 74 7c 2d 2d 6e 6f 2d  -no-silent|--no-
8070: 71 75 69 65 74 29 0a 09 09 09 6f 70 74 5f 73 69  quiet)....opt_si
8080: 6c 65 6e 74 3d 66 61 6c 73 65 0a 66 75 6e 63 5f  lent=false.func_
8090: 61 70 70 65 6e 64 20 70 72 65 73 65 72 76 65 5f  append preserve_
80a0: 61 72 67 73 20 22 20 24 6f 70 74 22 0a 09 09 09  args " $opt"....
80b0: 3b 3b 0a 20 20 20 20 20 20 2d 2d 6e 6f 2d 77 61  ;;.      --no-wa
80c0: 72 6e 69 6e 67 7c 2d 2d 6e 6f 2d 77 61 72 6e 29  rning|--no-warn)
80d0: 0a 09 09 09 6f 70 74 5f 77 61 72 6e 69 6e 67 3d  ....opt_warning=
80e0: 66 61 6c 73 65 0a 66 75 6e 63 5f 61 70 70 65 6e  false.func_appen
80f0: 64 20 70 72 65 73 65 72 76 65 5f 61 72 67 73 20  d preserve_args 
8100: 22 20 24 6f 70 74 22 0a 09 09 09 3b 3b 0a 20 20  " $opt"....;;.  
8110: 20 20 20 20 2d 2d 6e 6f 2d 76 65 72 62 6f 73 65      --no-verbose
8120: 29 0a 09 09 09 6f 70 74 5f 76 65 72 62 6f 73 65  )....opt_verbose
8130: 3d 66 61 6c 73 65 0a 66 75 6e 63 5f 61 70 70 65  =false.func_appe
8140: 6e 64 20 70 72 65 73 65 72 76 65 5f 61 72 67 73  nd preserve_args
8150: 20 22 20 24 6f 70 74 22 0a 09 09 09 3b 3b 0a 20   " $opt"....;;. 
8160: 20 20 20 20 20 2d 2d 73 69 6c 65 6e 74 7c 2d 2d       --silent|--
8170: 71 75 69 65 74 29 0a 09 09 09 6f 70 74 5f 73 69  quiet)....opt_si
8180: 6c 65 6e 74 3d 3a 0a 66 75 6e 63 5f 61 70 70 65  lent=:.func_appe
8190: 6e 64 20 70 72 65 73 65 72 76 65 5f 61 72 67 73  nd preserve_args
81a0: 20 22 20 24 6f 70 74 22 0a 20 20 20 20 20 20 20   " $opt".       
81b0: 20 6f 70 74 5f 76 65 72 62 6f 73 65 3d 66 61 6c   opt_verbose=fal
81c0: 73 65 0a 09 09 09 3b 3b 0a 20 20 20 20 20 20 2d  se....;;.      -
81d0: 2d 76 65 72 62 6f 73 65 7c 2d 76 29 0a 09 09 09  -verbose|-v)....
81e0: 6f 70 74 5f 76 65 72 62 6f 73 65 3d 3a 0a 66 75  opt_verbose=:.fu
81f0: 6e 63 5f 61 70 70 65 6e 64 20 70 72 65 73 65 72  nc_append preser
8200: 76 65 5f 61 72 67 73 20 22 20 24 6f 70 74 22 0a  ve_args " $opt".
8210: 6f 70 74 5f 73 69 6c 65 6e 74 3d 66 61 6c 73 65  opt_silent=false
8220: 0a 09 09 09 3b 3b 0a 20 20 20 20 20 20 2d 2d 74  ....;;.      --t
8230: 61 67 29 0a 09 09 09 74 65 73 74 20 24 23 20 3d  ag)....test $# =
8240: 20 30 20 26 26 20 66 75 6e 63 5f 6d 69 73 73 69   0 && func_missi
8250: 6e 67 5f 61 72 67 20 24 6f 70 74 20 26 26 20 62  ng_arg $opt && b
8260: 72 65 61 6b 0a 09 09 09 6f 70 74 61 72 67 3d 22  reak....optarg="
8270: 24 31 22 0a 09 09 09 6f 70 74 5f 74 61 67 3d 22  $1"....opt_tag="
8280: 24 6f 70 74 61 72 67 22 0a 66 75 6e 63 5f 61 70  $optarg".func_ap
8290: 70 65 6e 64 20 70 72 65 73 65 72 76 65 5f 61 72  pend preserve_ar
82a0: 67 73 20 22 20 24 6f 70 74 20 24 6f 70 74 61 72  gs " $opt $optar
82b0: 67 22 0a 66 75 6e 63 5f 65 6e 61 62 6c 65 5f 74  g".func_enable_t
82c0: 61 67 20 22 24 6f 70 74 61 72 67 22 0a 09 09 09  ag "$optarg"....
82d0: 73 68 69 66 74 0a 09 09 09 3b 3b 0a 0a 20 20 20  shift....;;..   
82e0: 20 20 20 2d 5c 3f 7c 2d 68 29 09 09 66 75 6e 63     -\?|-h)..func
82f0: 5f 75 73 61 67 65 09 09 09 09 3b 3b 0a 20 20 20  _usage....;;.   
8300: 20 20 20 2d 2d 68 65 6c 70 29 09 09 66 75 6e 63     --help)..func
8310: 5f 68 65 6c 70 09 09 09 09 3b 3b 0a 20 20 20 20  _help....;;.    
8320: 20 20 2d 2d 76 65 72 73 69 6f 6e 29 09 66 75 6e    --version).fun
8330: 63 5f 76 65 72 73 69 6f 6e 09 09 09 09 3b 3b 0a  c_version....;;.
8340: 0a 20 20 20 20 20 20 23 20 53 65 70 61 72 61 74  .      # Separat
8350: 65 20 6f 70 74 61 72 67 73 20 74 6f 20 6c 6f 6e  e optargs to lon
8360: 67 20 6f 70 74 69 6f 6e 73 3a 0a 20 20 20 20 20  g options:.     
8370: 20 2d 2d 2a 3d 2a 29 0a 09 09 09 66 75 6e 63 5f   --*=*)....func_
8380: 73 70 6c 69 74 5f 6c 6f 6e 67 5f 6f 70 74 20 22  split_long_opt "
8390: 24 6f 70 74 22 0a 09 09 09 73 65 74 20 64 75 6d  $opt"....set dum
83a0: 6d 79 20 22 24 66 75 6e 63 5f 73 70 6c 69 74 5f  my "$func_split_
83b0: 6c 6f 6e 67 5f 6f 70 74 5f 6e 61 6d 65 22 20 22  long_opt_name" "
83c0: 24 66 75 6e 63 5f 73 70 6c 69 74 5f 6c 6f 6e 67  $func_split_long
83d0: 5f 6f 70 74 5f 61 72 67 22 20 24 7b 31 2b 22 24  _opt_arg" ${1+"$
83e0: 40 22 7d 0a 09 09 09 73 68 69 66 74 0a 09 09 09  @"}....shift....
83f0: 3b 3b 0a 0a 20 20 20 20 20 20 23 20 53 65 70 61  ;;..      # Sepa
8400: 72 61 74 65 20 6e 6f 6e 2d 61 72 67 75 6d 65 6e  rate non-argumen
8410: 74 20 73 68 6f 72 74 20 6f 70 74 69 6f 6e 73 3a  t short options:
8420: 0a 20 20 20 20 20 20 2d 5c 3f 2a 7c 2d 68 2a 7c  .      -\?*|-h*|
8430: 2d 6e 2a 7c 2d 76 2a 29 0a 09 09 09 66 75 6e 63  -n*|-v*)....func
8440: 5f 73 70 6c 69 74 5f 73 68 6f 72 74 5f 6f 70 74  _split_short_opt
8450: 20 22 24 6f 70 74 22 0a 09 09 09 73 65 74 20 64   "$opt"....set d
8460: 75 6d 6d 79 20 22 24 66 75 6e 63 5f 73 70 6c 69  ummy "$func_spli
8470: 74 5f 73 68 6f 72 74 5f 6f 70 74 5f 6e 61 6d 65  t_short_opt_name
8480: 22 20 22 2d 24 66 75 6e 63 5f 73 70 6c 69 74 5f  " "-$func_split_
8490: 73 68 6f 72 74 5f 6f 70 74 5f 61 72 67 22 20 24  short_opt_arg" $
84a0: 7b 31 2b 22 24 40 22 7d 0a 09 09 09 73 68 69 66  {1+"$@"}....shif
84b0: 74 0a 09 09 09 3b 3b 0a 0a 20 20 20 20 20 20 2d  t....;;..      -
84c0: 2d 29 09 09 62 72 65 61 6b 09 09 09 09 09 3b 3b  -)..break.....;;
84d0: 0a 20 20 20 20 20 20 2d 2a 29 09 09 66 75 6e 63  .      -*)..func
84e0: 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22 75 6e 72  _fatal_help "unr
84f0: 65 63 6f 67 6e 69 7a 65 64 20 6f 70 74 69 6f 6e  ecognized option
8500: 20 5c 60 24 6f 70 74 27 22 20 3b 3b 0a 20 20 20   \`$opt'" ;;.   
8510: 20 20 20 2a 29 09 09 73 65 74 20 64 75 6d 6d 79     *)..set dummy
8520: 20 22 24 6f 70 74 22 20 24 7b 31 2b 22 24 40 22   "$opt" ${1+"$@"
8530: 7d 3b 09 73 68 69 66 74 3b 20 62 72 65 61 6b 20  };.shift; break 
8540: 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20 20 64   ;;.    esac.  d
8550: 6f 6e 65 0a 0a 20 20 23 20 56 61 6c 69 64 61 74  one..  # Validat
8560: 65 20 6f 70 74 69 6f 6e 73 3a 0a 0a 20 20 23 20  e options:..  # 
8570: 73 61 76 65 20 66 69 72 73 74 20 6e 6f 6e 2d 6f  save first non-o
8580: 70 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 0a 20  ption argument. 
8590: 20 69 66 20 74 65 73 74 20 22 24 23 22 20 2d 67   if test "$#" -g
85a0: 74 20 30 3b 20 74 68 65 6e 0a 20 20 20 20 6e 6f  t 0; then.    no
85b0: 6e 6f 70 74 3d 22 24 6f 70 74 22 0a 20 20 20 20  nopt="$opt".    
85c0: 73 68 69 66 74 0a 20 20 66 69 0a 0a 20 20 23 20  shift.  fi..  # 
85d0: 70 72 65 73 65 72 76 65 20 2d 2d 64 65 62 75 67  preserve --debug
85e0: 0a 20 20 74 65 73 74 20 22 24 6f 70 74 5f 64 65  .  test "$opt_de
85f0: 62 75 67 22 20 3d 20 3a 20 7c 7c 20 66 75 6e 63  bug" = : || func
8600: 5f 61 70 70 65 6e 64 20 70 72 65 73 65 72 76 65  _append preserve
8610: 5f 61 72 67 73 20 22 20 2d 2d 64 65 62 75 67 22  _args " --debug"
8620: 0a 0a 20 20 63 61 73 65 20 24 68 6f 73 74 20 69  ..  case $host i
8630: 6e 0a 20 20 20 20 2a 63 79 67 77 69 6e 2a 20 7c  n.    *cygwin* |
8640: 20 2a 6d 69 6e 67 77 2a 20 7c 20 2a 70 77 33 32   *mingw* | *pw32
8650: 2a 20 7c 20 2a 63 65 67 63 63 2a 29 0a 20 20 20  * | *cegcc*).   
8660: 20 20 20 23 20 64 6f 6e 27 74 20 65 6c 69 6d 69     # don't elimi
8670: 6e 61 74 65 20 64 75 70 6c 69 63 61 74 69 6f 6e  nate duplication
8680: 73 20 69 6e 20 24 70 6f 73 74 64 65 70 73 20 61  s in $postdeps a
8690: 6e 64 20 24 70 72 65 64 65 70 73 0a 20 20 20 20  nd $predeps.    
86a0: 20 20 6f 70 74 5f 64 75 70 6c 69 63 61 74 65 5f    opt_duplicate_
86b0: 63 6f 6d 70 69 6c 65 72 5f 67 65 6e 65 72 61 74  compiler_generat
86c0: 65 64 5f 64 65 70 73 3d 3a 0a 20 20 20 20 20 20  ed_deps=:.      
86d0: 3b 3b 0a 20 20 20 20 2a 29 0a 20 20 20 20 20 20  ;;.    *).      
86e0: 6f 70 74 5f 64 75 70 6c 69 63 61 74 65 5f 63 6f  opt_duplicate_co
86f0: 6d 70 69 6c 65 72 5f 67 65 6e 65 72 61 74 65 64  mpiler_generated
8700: 5f 64 65 70 73 3d 24 6f 70 74 5f 70 72 65 73 65  _deps=$opt_prese
8710: 72 76 65 5f 64 75 70 5f 64 65 70 73 0a 20 20 20  rve_dup_deps.   
8720: 20 20 20 3b 3b 0a 20 20 65 73 61 63 0a 0a 20 20     ;;.  esac..  
8730: 24 6f 70 74 5f 68 65 6c 70 20 7c 7c 20 7b 0a 20  $opt_help || {. 
8740: 20 20 20 23 20 53 61 6e 69 74 79 20 63 68 65 63     # Sanity chec
8750: 6b 73 20 66 69 72 73 74 3a 0a 20 20 20 20 66 75  ks first:.    fu
8760: 6e 63 5f 63 68 65 63 6b 5f 76 65 72 73 69 6f 6e  nc_check_version
8770: 5f 6d 61 74 63 68 0a 0a 20 20 20 20 69 66 20 74  _match..    if t
8780: 65 73 74 20 22 24 62 75 69 6c 64 5f 6c 69 62 74  est "$build_libt
8790: 6f 6f 6c 5f 6c 69 62 73 22 20 21 3d 20 79 65 73  ool_libs" != yes
87a0: 20 26 26 20 74 65 73 74 20 22 24 62 75 69 6c 64   && test "$build
87b0: 5f 6f 6c 64 5f 6c 69 62 73 22 20 21 3d 20 79 65  _old_libs" != ye
87c0: 73 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 66 75  s; then.      fu
87d0: 6e 63 5f 66 61 74 61 6c 5f 63 6f 6e 66 69 67 75  nc_fatal_configu
87e0: 72 61 74 69 6f 6e 20 22 6e 6f 74 20 63 6f 6e 66  ration "not conf
87f0: 69 67 75 72 65 64 20 74 6f 20 62 75 69 6c 64 20  igured to build 
8800: 61 6e 79 20 6b 69 6e 64 20 6f 66 20 6c 69 62 72  any kind of libr
8810: 61 72 79 22 0a 20 20 20 20 66 69 0a 0a 20 20 20  ary".    fi..   
8820: 20 23 20 44 61 72 77 69 6e 20 73 75 63 6b 73 0a   # Darwin sucks.
8830: 20 20 20 20 65 76 61 6c 20 73 74 64 5f 73 68 72      eval std_shr
8840: 65 78 74 3d 5c 22 24 73 68 72 65 78 74 5f 63 6d  ext=\"$shrext_cm
8850: 64 73 5c 22 0a 0a 20 20 20 20 23 20 4f 6e 6c 79  ds\"..    # Only
8860: 20 65 78 65 63 75 74 65 20 6d 6f 64 65 20 69 73   execute mode is
8870: 20 61 6c 6c 6f 77 65 64 20 74 6f 20 68 61 76 65   allowed to have
8880: 20 2d 64 6c 6f 70 65 6e 20 66 6c 61 67 73 2e 0a   -dlopen flags..
8890: 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
88a0: 24 6f 70 74 5f 64 6c 6f 70 65 6e 22 20 26 26 20  $opt_dlopen" && 
88b0: 74 65 73 74 20 22 24 6f 70 74 5f 6d 6f 64 65 22  test "$opt_mode"
88c0: 20 21 3d 20 65 78 65 63 75 74 65 3b 20 74 68 65   != execute; the
88d0: 6e 0a 20 20 20 20 20 20 66 75 6e 63 5f 65 72 72  n.      func_err
88e0: 6f 72 20 22 75 6e 72 65 63 6f 67 6e 69 7a 65 64  or "unrecognized
88f0: 20 6f 70 74 69 6f 6e 20 5c 60 2d 64 6c 6f 70 65   option \`-dlope
8900: 6e 27 22 0a 20 20 20 20 20 20 24 45 43 48 4f 20  n'".      $ECHO 
8910: 22 24 68 65 6c 70 22 20 31 3e 26 32 0a 20 20 20  "$help" 1>&2.   
8920: 20 20 20 65 78 69 74 20 24 45 58 49 54 5f 46 41     exit $EXIT_FA
8930: 49 4c 55 52 45 0a 20 20 20 20 66 69 0a 0a 20 20  ILURE.    fi..  
8940: 20 20 23 20 43 68 61 6e 67 65 20 74 68 65 20 68    # Change the h
8950: 65 6c 70 20 6d 65 73 73 61 67 65 20 74 6f 20 61  elp message to a
8960: 20 6d 6f 64 65 2d 73 70 65 63 69 66 69 63 20 6f   mode-specific o
8970: 6e 65 2e 0a 20 20 20 20 67 65 6e 65 72 69 63 5f  ne..    generic_
8980: 68 65 6c 70 3d 22 24 68 65 6c 70 22 0a 20 20 20  help="$help".   
8990: 20 68 65 6c 70 3d 22 54 72 79 20 5c 60 24 70 72   help="Try \`$pr
89a0: 6f 67 6e 61 6d 65 20 2d 2d 68 65 6c 70 20 2d 2d  ogname --help --
89b0: 6d 6f 64 65 3d 24 6f 70 74 5f 6d 6f 64 65 27 20  mode=$opt_mode' 
89c0: 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61  for more informa
89d0: 74 69 6f 6e 2e 22 0a 20 20 7d 0a 0a 0a 20 20 23  tion.".  }...  #
89e0: 20 42 61 69 6c 20 69 66 20 74 68 65 20 6f 70 74   Bail if the opt
89f0: 69 6f 6e 73 20 77 65 72 65 20 73 63 72 65 77 65  ions were screwe
8a00: 64 0a 20 20 24 65 78 69 74 5f 63 6d 64 20 24 45  d.  $exit_cmd $E
8a10: 58 49 54 5f 46 41 49 4c 55 52 45 0a 7d 0a 0a 0a  XIT_FAILURE.}...
8a20: 0a 0a 23 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..## -----------
8a30: 20 23 23 0a 23 23 20 20 20 20 4d 61 69 6e 2e 20   ##.##    Main. 
8a40: 20 20 20 23 23 0a 23 23 20 2d 2d 2d 2d 2d 2d 2d     ##.## -------
8a50: 2d 2d 2d 2d 20 23 23 0a 0a 23 20 66 75 6e 63 5f  ---- ##..# func_
8a60: 6c 61 6c 69 62 5f 70 20 66 69 6c 65 0a 23 20 54  lalib_p file.# T
8a70: 72 75 65 20 69 66 66 20 46 49 4c 45 20 69 73 20  rue iff FILE is 
8a80: 61 20 6c 69 62 74 6f 6f 6c 20 60 2e 6c 61 27 20  a libtool `.la' 
8a90: 6c 69 62 72 61 72 79 20 6f 72 20 60 2e 6c 6f 27  library or `.lo'
8aa0: 20 6f 62 6a 65 63 74 20 66 69 6c 65 2e 0a 23 20   object file..# 
8ab0: 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73  This function is
8ac0: 20 6f 6e 6c 79 20 61 20 62 61 73 69 63 20 73 61   only a basic sa
8ad0: 6e 69 74 79 20 63 68 65 63 6b 3b 20 69 74 20 77  nity check; it w
8ae0: 69 6c 6c 20 68 61 72 64 6c 79 20 66 6c 75 73 68  ill hardly flush
8af0: 20 6f 75 74 0a 23 20 64 65 74 65 72 6d 69 6e 65   out.# determine
8b00: 64 20 69 6d 70 6f 73 74 65 72 73 2e 0a 66 75 6e  d imposters..fun
8b10: 63 5f 6c 61 6c 69 62 5f 70 20 28 29 0a 7b 0a 20  c_lalib_p ().{. 
8b20: 20 20 20 74 65 73 74 20 2d 66 20 22 24 31 22 20     test -f "$1" 
8b30: 26 26 0a 20 20 20 20 20 20 24 53 45 44 20 2d 65  &&.      $SED -e
8b40: 20 34 71 20 22 24 31 22 20 32 3e 2f 64 65 76 2f   4q "$1" 2>/dev/
8b50: 6e 75 6c 6c 20 5c 0a 20 20 20 20 20 20 20 20 7c  null \.        |
8b60: 20 24 47 52 45 50 20 22 5e 23 20 47 65 6e 65 72   $GREP "^# Gener
8b70: 61 74 65 64 20 62 79 20 2e 2a 24 50 41 43 4b 41  ated by .*$PACKA
8b80: 47 45 22 20 3e 20 2f 64 65 76 2f 6e 75 6c 6c 20  GE" > /dev/null 
8b90: 32 3e 26 31 0a 7d 0a 0a 23 20 66 75 6e 63 5f 6c  2>&1.}..# func_l
8ba0: 61 6c 69 62 5f 75 6e 73 61 66 65 5f 70 20 66 69  alib_unsafe_p fi
8bb0: 6c 65 0a 23 20 54 72 75 65 20 69 66 66 20 46 49  le.# True iff FI
8bc0: 4c 45 20 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20  LE is a libtool 
8bd0: 60 2e 6c 61 27 20 6c 69 62 72 61 72 79 20 6f 72  `.la' library or
8be0: 20 60 2e 6c 6f 27 20 6f 62 6a 65 63 74 20 66 69   `.lo' object fi
8bf0: 6c 65 2e 0a 23 20 54 68 69 73 20 66 75 6e 63 74  le..# This funct
8c00: 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 74  ion implements t
8c10: 68 65 20 73 61 6d 65 20 63 68 65 63 6b 20 61 73  he same check as
8c20: 20 66 75 6e 63 5f 6c 61 6c 69 62 5f 70 20 77 69   func_lalib_p wi
8c30: 74 68 6f 75 74 0a 23 20 72 65 73 6f 72 74 69 6e  thout.# resortin
8c40: 67 20 74 6f 20 65 78 74 65 72 6e 61 6c 20 70 72  g to external pr
8c50: 6f 67 72 61 6d 73 2e 20 20 54 6f 20 74 68 69 73  ograms.  To this
8c60: 20 65 6e 64 2c 20 69 74 20 72 65 64 69 72 65 63   end, it redirec
8c70: 74 73 20 73 74 64 69 6e 20 61 6e 64 0a 23 20 63  ts stdin and.# c
8c80: 6c 6f 73 65 73 20 69 74 20 61 66 74 65 72 77 61  loses it afterwa
8c90: 72 64 73 2c 20 77 69 74 68 6f 75 74 20 73 61 76  rds, without sav
8ca0: 69 6e 67 20 74 68 65 20 6f 72 69 67 69 6e 61 6c  ing the original
8cb0: 20 66 69 6c 65 20 64 65 73 63 72 69 70 74 6f 72   file descriptor
8cc0: 2e 0a 23 20 41 73 20 61 20 73 61 66 65 74 79 20  ..# As a safety 
8cd0: 6d 65 61 73 75 72 65 2c 20 75 73 65 20 69 74 20  measure, use it 
8ce0: 6f 6e 6c 79 20 77 68 65 72 65 20 61 20 6e 65 67  only where a neg
8cf0: 61 74 69 76 65 20 72 65 73 75 6c 74 20 77 6f 75  ative result wou
8d00: 6c 64 20 62 65 0a 23 20 66 61 74 61 6c 20 61 6e  ld be.# fatal an
8d10: 79 77 61 79 2e 20 20 57 6f 72 6b 73 20 69 66 20  yway.  Works if 
8d20: 60 66 69 6c 65 27 20 64 6f 65 73 20 6e 6f 74 20  `file' does not 
8d30: 65 78 69 73 74 2e 0a 66 75 6e 63 5f 6c 61 6c 69  exist..func_lali
8d40: 62 5f 75 6e 73 61 66 65 5f 70 20 28 29 0a 7b 0a  b_unsafe_p ().{.
8d50: 20 20 20 20 6c 61 6c 69 62 5f 70 3d 6e 6f 0a 20      lalib_p=no. 
8d60: 20 20 20 69 66 20 74 65 73 74 20 2d 66 20 22 24     if test -f "$
8d70: 31 22 20 26 26 20 74 65 73 74 20 2d 72 20 22 24  1" && test -r "$
8d80: 31 22 20 26 26 20 65 78 65 63 20 35 3c 26 30 20  1" && exec 5<&0 
8d90: 3c 22 24 31 22 3b 20 74 68 65 6e 0a 09 66 6f 72  <"$1"; then..for
8da0: 20 6c 61 6c 69 62 5f 70 5f 6c 20 69 6e 20 31 20   lalib_p_l in 1 
8db0: 32 20 33 20 34 0a 09 64 6f 0a 09 20 20 20 20 72  2 3 4..do..    r
8dc0: 65 61 64 20 6c 61 6c 69 62 5f 70 5f 6c 69 6e 65  ead lalib_p_line
8dd0: 0a 09 20 20 20 20 63 61 73 65 20 22 24 6c 61 6c  ..    case "$lal
8de0: 69 62 5f 70 5f 6c 69 6e 65 22 20 69 6e 0a 09 09  ib_p_line" in...
8df0: 5c 23 5c 20 47 65 6e 65 72 61 74 65 64 5c 20 62  \#\ Generated\ b
8e00: 79 5c 20 2a 24 50 41 43 4b 41 47 45 2a 20 29 20  y\ *$PACKAGE* ) 
8e10: 6c 61 6c 69 62 5f 70 3d 79 65 73 3b 20 62 72 65  lalib_p=yes; bre
8e20: 61 6b 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09  ak;;..    esac..
8e30: 64 6f 6e 65 0a 09 65 78 65 63 20 30 3c 26 35 20  done..exec 0<&5 
8e40: 35 3c 26 2d 0a 20 20 20 20 66 69 0a 20 20 20 20  5<&-.    fi.    
8e50: 74 65 73 74 20 22 24 6c 61 6c 69 62 5f 70 22 20  test "$lalib_p" 
8e60: 3d 20 79 65 73 0a 7d 0a 0a 23 20 66 75 6e 63 5f  = yes.}..# func_
8e70: 6c 74 77 72 61 70 70 65 72 5f 73 63 72 69 70 74  ltwrapper_script
8e80: 5f 70 20 66 69 6c 65 0a 23 20 54 72 75 65 20 69  _p file.# True i
8e90: 66 66 20 46 49 4c 45 20 69 73 20 61 20 6c 69 62  ff FILE is a lib
8ea0: 74 6f 6f 6c 20 77 72 61 70 70 65 72 20 73 63 72  tool wrapper scr
8eb0: 69 70 74 0a 23 20 54 68 69 73 20 66 75 6e 63 74  ipt.# This funct
8ec0: 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 61 20 62 61  ion is only a ba
8ed0: 73 69 63 20 73 61 6e 69 74 79 20 63 68 65 63 6b  sic sanity check
8ee0: 3b 20 69 74 20 77 69 6c 6c 20 68 61 72 64 6c 79  ; it will hardly
8ef0: 20 66 6c 75 73 68 20 6f 75 74 0a 23 20 64 65 74   flush out.# det
8f00: 65 72 6d 69 6e 65 64 20 69 6d 70 6f 73 74 65 72  ermined imposter
8f10: 73 2e 0a 66 75 6e 63 5f 6c 74 77 72 61 70 70 65  s..func_ltwrappe
8f20: 72 5f 73 63 72 69 70 74 5f 70 20 28 29 0a 7b 0a  r_script_p ().{.
8f30: 20 20 20 20 66 75 6e 63 5f 6c 61 6c 69 62 5f 70      func_lalib_p
8f40: 20 22 24 31 22 0a 7d 0a 0a 23 20 66 75 6e 63 5f   "$1".}..# func_
8f50: 6c 74 77 72 61 70 70 65 72 5f 65 78 65 63 75 74  ltwrapper_execut
8f60: 61 62 6c 65 5f 70 20 66 69 6c 65 0a 23 20 54 72  able_p file.# Tr
8f70: 75 65 20 69 66 66 20 46 49 4c 45 20 69 73 20 61  ue iff FILE is a
8f80: 20 6c 69 62 74 6f 6f 6c 20 77 72 61 70 70 65 72   libtool wrapper
8f90: 20 65 78 65 63 75 74 61 62 6c 65 0a 23 20 54 68   executable.# Th
8fa0: 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f  is function is o
8fb0: 6e 6c 79 20 61 20 62 61 73 69 63 20 73 61 6e 69  nly a basic sani
8fc0: 74 79 20 63 68 65 63 6b 3b 20 69 74 20 77 69 6c  ty check; it wil
8fd0: 6c 20 68 61 72 64 6c 79 20 66 6c 75 73 68 20 6f  l hardly flush o
8fe0: 75 74 0a 23 20 64 65 74 65 72 6d 69 6e 65 64 20  ut.# determined 
8ff0: 69 6d 70 6f 73 74 65 72 73 2e 0a 66 75 6e 63 5f  imposters..func_
9000: 6c 74 77 72 61 70 70 65 72 5f 65 78 65 63 75 74  ltwrapper_execut
9010: 61 62 6c 65 5f 70 20 28 29 0a 7b 0a 20 20 20 20  able_p ().{.    
9020: 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f 65  func_ltwrapper_e
9030: 78 65 63 5f 73 75 66 66 69 78 3d 0a 20 20 20 20  xec_suffix=.    
9040: 63 61 73 65 20 24 31 20 69 6e 0a 20 20 20 20 2a  case $1 in.    *
9050: 2e 65 78 65 29 20 3b 3b 0a 20 20 20 20 2a 29 20  .exe) ;;.    *) 
9060: 66 75 6e 63 5f 6c 74 77 72 61 70 70 65 72 5f 65  func_ltwrapper_e
9070: 78 65 63 5f 73 75 66 66 69 78 3d 2e 65 78 65 20  xec_suffix=.exe 
9080: 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20 20 20 20  ;;.    esac.    
9090: 24 47 52 45 50 20 22 24 6d 61 67 69 63 5f 65 78  $GREP "$magic_ex
90a0: 65 22 20 22 24 31 24 66 75 6e 63 5f 6c 74 77 72  e" "$1$func_ltwr
90b0: 61 70 70 65 72 5f 65 78 65 63 5f 73 75 66 66 69  apper_exec_suffi
90c0: 78 22 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e  x" >/dev/null 2>
90d0: 26 31 0a 7d 0a 0a 23 20 66 75 6e 63 5f 6c 74 77  &1.}..# func_ltw
90e0: 72 61 70 70 65 72 5f 73 63 72 69 70 74 6e 61 6d  rapper_scriptnam
90f0: 65 20 66 69 6c 65 0a 23 20 41 73 73 75 6d 65 73  e file.# Assumes
9100: 20 66 69 6c 65 20 69 73 20 61 6e 20 6c 74 77 72   file is an ltwr
9110: 61 70 70 65 72 5f 65 78 65 63 75 74 61 62 6c 65  apper_executable
9120: 0a 23 20 75 73 65 73 20 24 66 69 6c 65 20 74 6f  .# uses $file to
9130: 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 61   determine the a
9140: 70 70 72 6f 70 72 69 61 74 65 20 66 69 6c 65 6e  ppropriate filen
9150: 61 6d 65 20 66 6f 72 20 61 0a 23 20 74 65 6d 70  ame for a.# temp
9160: 6f 72 61 72 79 20 6c 74 77 72 61 70 70 65 72 5f  orary ltwrapper_
9170: 73 63 72 69 70 74 2e 0a 66 75 6e 63 5f 6c 74 77  script..func_ltw
9180: 72 61 70 70 65 72 5f 73 63 72 69 70 74 6e 61 6d  rapper_scriptnam
9190: 65 20 28 29 0a 7b 0a 20 20 20 20 66 75 6e 63 5f  e ().{.    func_
91a0: 64 69 72 6e 61 6d 65 5f 61 6e 64 5f 62 61 73 65  dirname_and_base
91b0: 6e 61 6d 65 20 22 24 31 22 20 22 22 20 22 2e 22  name "$1" "" "."
91c0: 0a 20 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e  .    func_stripn
91d0: 61 6d 65 20 27 27 20 27 2e 65 78 65 27 20 22 24  ame '' '.exe' "$
91e0: 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65  func_basename_re
91f0: 73 75 6c 74 22 0a 20 20 20 20 66 75 6e 63 5f 6c  sult".    func_l
9200: 74 77 72 61 70 70 65 72 5f 73 63 72 69 70 74 6e  twrapper_scriptn
9210: 61 6d 65 5f 72 65 73 75 6c 74 3d 22 24 66 75 6e  ame_result="$fun
9220: 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74  c_dirname_result
9230: 2f 24 6f 62 6a 64 69 72 2f 24 7b 66 75 6e 63 5f  /$objdir/${func_
9240: 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
9250: 7d 5f 6c 74 73 68 77 72 61 70 70 65 72 22 0a 7d  }_ltshwrapper".}
9260: 0a 0a 23 20 66 75 6e 63 5f 6c 74 77 72 61 70 70  ..# func_ltwrapp
9270: 65 72 5f 70 20 66 69 6c 65 0a 23 20 54 72 75 65  er_p file.# True
9280: 20 69 66 66 20 46 49 4c 45 20 69 73 20 61 20 6c   iff FILE is a l
9290: 69 62 74 6f 6f 6c 20 77 72 61 70 70 65 72 20 73  ibtool wrapper s
92a0: 63 72 69 70 74 20 6f 72 20 77 72 61 70 70 65 72  cript or wrapper
92b0: 20 65 78 65 63 75 74 61 62 6c 65 0a 23 20 54 68   executable.# Th
92c0: 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f  is function is o
92d0: 6e 6c 79 20 61 20 62 61 73 69 63 20 73 61 6e 69  nly a basic sani
92e0: 74 79 20 63 68 65 63 6b 3b 20 69 74 20 77 69 6c  ty check; it wil
92f0: 6c 20 68 61 72 64 6c 79 20 66 6c 75 73 68 20 6f  l hardly flush o
9300: 75 74 0a 23 20 64 65 74 65 72 6d 69 6e 65 64 20  ut.# determined 
9310: 69 6d 70 6f 73 74 65 72 73 2e 0a 66 75 6e 63 5f  imposters..func_
9320: 6c 74 77 72 61 70 70 65 72 5f 70 20 28 29 0a 7b  ltwrapper_p ().{
9330: 0a 20 20 20 20 66 75 6e 63 5f 6c 74 77 72 61 70  .    func_ltwrap
9340: 70 65 72 5f 73 63 72 69 70 74 5f 70 20 22 24 31  per_script_p "$1
9350: 22 20 7c 7c 20 66 75 6e 63 5f 6c 74 77 72 61 70  " || func_ltwrap
9360: 70 65 72 5f 65 78 65 63 75 74 61 62 6c 65 5f 70  per_executable_p
9370: 20 22 24 31 22 0a 7d 0a 0a 0a 23 20 66 75 6e 63   "$1".}...# func
9380: 5f 65 78 65 63 75 74 65 5f 63 6d 64 73 20 63 6f  _execute_cmds co
9390: 6d 6d 61 6e 64 73 20 66 61 69 6c 5f 63 6d 64 0a  mmands fail_cmd.
93a0: 23 20 45 78 65 63 75 74 65 20 74 69 6c 64 65 2d  # Execute tilde-
93b0: 64 65 6c 69 6d 69 74 65 64 20 43 4f 4d 4d 41 4e  delimited COMMAN
93c0: 44 53 2e 0a 23 20 49 66 20 46 41 49 4c 5f 43 4d  DS..# If FAIL_CM
93d0: 44 20 69 73 20 67 69 76 65 6e 2c 20 65 76 61 6c  D is given, eval
93e0: 20 74 68 61 74 20 75 70 6f 6e 20 66 61 69 6c 75   that upon failu
93f0: 72 65 2e 0a 23 20 46 41 49 4c 5f 43 4d 44 20 6d  re..# FAIL_CMD m
9400: 61 79 20 72 65 61 64 2d 61 63 63 65 73 73 20 74  ay read-access t
9410: 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6d 6d 61  he current comma
9420: 6e 64 20 69 6e 20 76 61 72 69 61 62 6c 65 20 43  nd in variable C
9430: 4d 44 21 0a 66 75 6e 63 5f 65 78 65 63 75 74 65  MD!.func_execute
9440: 5f 63 6d 64 73 20 28 29 0a 7b 0a 20 20 20 20 24  _cmds ().{.    $
9450: 6f 70 74 5f 64 65 62 75 67 0a 20 20 20 20 73 61  opt_debug.    sa
9460: 76 65 5f 69 66 73 3d 24 49 46 53 3b 20 49 46 53  ve_ifs=$IFS; IFS
9470: 3d 27 7e 27 0a 20 20 20 20 66 6f 72 20 63 6d 64  ='~'.    for cmd
9480: 20 69 6e 20 24 31 3b 20 64 6f 0a 20 20 20 20 20   in $1; do.     
9490: 20 49 46 53 3d 24 73 61 76 65 5f 69 66 73 0a 20   IFS=$save_ifs. 
94a0: 20 20 20 20 20 65 76 61 6c 20 63 6d 64 3d 5c 22       eval cmd=\"
94b0: 24 63 6d 64 5c 22 0a 20 20 20 20 20 20 66 75 6e  $cmd\".      fun
94c0: 63 5f 73 68 6f 77 5f 65 76 61 6c 20 22 24 63 6d  c_show_eval "$cm
94d0: 64 22 20 22 24 7b 32 2d 3a 7d 22 0a 20 20 20 20  d" "${2-:}".    
94e0: 64 6f 6e 65 0a 20 20 20 20 49 46 53 3d 24 73 61  done.    IFS=$sa
94f0: 76 65 5f 69 66 73 0a 7d 0a 0a 0a 23 20 66 75 6e  ve_ifs.}...# fun
9500: 63 5f 73 6f 75 72 63 65 20 66 69 6c 65 0a 23 20  c_source file.# 
9510: 53 6f 75 72 63 65 20 46 49 4c 45 2c 20 61 64 64  Source FILE, add
9520: 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 63 6f  ing directory co
9530: 6d 70 6f 6e 65 6e 74 20 69 66 20 6e 65 63 65 73  mponent if neces
9540: 73 61 72 79 2e 0a 23 20 4e 6f 74 65 20 74 68 61  sary..# Note tha
9550: 74 20 69 74 20 69 73 20 6e 6f 74 20 6e 65 63 65  t it is not nece
9560: 73 73 61 72 79 20 6f 6e 20 63 79 67 77 69 6e 2f  ssary on cygwin/
9570: 6d 69 6e 67 77 20 74 6f 20 61 70 70 65 6e 64 20  mingw to append 
9580: 61 20 64 6f 74 20 74 6f 0a 23 20 46 49 4c 45 20  a dot to.# FILE 
9590: 65 76 65 6e 20 69 66 20 62 6f 74 68 20 46 49 4c  even if both FIL
95a0: 45 20 61 6e 64 20 46 49 4c 45 2e 65 78 65 20 65  E and FILE.exe e
95b0: 78 69 73 74 3a 20 61 75 74 6f 6d 61 74 69 63 2d  xist: automatic-
95c0: 61 70 70 65 6e 64 2d 2e 65 78 65 0a 23 20 62 65  append-.exe.# be
95d0: 68 61 76 69 6f 72 20 68 61 70 70 65 6e 73 20 6f  havior happens o
95e0: 6e 6c 79 20 66 6f 72 20 65 78 65 63 28 33 29 2c  nly for exec(3),
95f0: 20 6e 6f 74 20 66 6f 72 20 6f 70 65 6e 28 32 29   not for open(2)
9600: 21 20 20 41 6c 73 6f 2c 20 73 6f 75 72 63 69 6e  !  Also, sourcin
9610: 67 0a 23 20 60 46 49 4c 45 2e 27 20 64 6f 65 73  g.# `FILE.' does
9620: 20 6e 6f 74 20 77 6f 72 6b 20 6f 6e 20 63 79 67   not work on cyg
9630: 77 69 6e 20 6d 61 6e 61 67 65 64 20 6d 6f 75 6e  win managed moun
9640: 74 73 2e 0a 66 75 6e 63 5f 73 6f 75 72 63 65 20  ts..func_source 
9650: 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65  ().{.    $opt_de
9660: 62 75 67 0a 20 20 20 20 63 61 73 65 20 24 31 20  bug.    case $1 
9670: 69 6e 0a 20 20 20 20 2a 2f 2a 20 7c 20 2a 5c 5c  in.    */* | *\\
9680: 2a 29 09 2e 20 22 24 31 22 20 3b 3b 0a 20 20 20  *).. "$1" ;;.   
9690: 20 2a 29 09 09 2e 20 22 2e 2f 24 31 22 20 3b 3b   *)... "./$1" ;;
96a0: 0a 20 20 20 20 65 73 61 63 0a 7d 0a 0a 0a 23 20  .    esac.}...# 
96b0: 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73  func_resolve_sys
96c0: 72 6f 6f 74 20 50 41 54 48 0a 23 20 52 65 70 6c  root PATH.# Repl
96d0: 61 63 65 20 61 20 6c 65 61 64 69 6e 67 20 3d 20  ace a leading = 
96e0: 69 6e 20 50 41 54 48 20 77 69 74 68 20 61 20 73  in PATH with a s
96f0: 79 73 72 6f 6f 74 2e 20 20 53 74 6f 72 65 20 74  ysroot.  Store t
9700: 68 65 20 72 65 73 75 6c 74 20 69 6e 74 6f 0a 23  he result into.#
9710: 20 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79   func_resolve_sy
9720: 73 72 6f 6f 74 5f 72 65 73 75 6c 74 0a 66 75 6e  sroot_result.fun
9730: 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f  c_resolve_sysroo
9740: 74 20 28 29 0a 7b 0a 20 20 66 75 6e 63 5f 72 65  t ().{.  func_re
9750: 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 5f 72 65  solve_sysroot_re
9760: 73 75 6c 74 3d 24 31 0a 20 20 63 61 73 65 20 24  sult=$1.  case $
9770: 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73  func_resolve_sys
9780: 72 6f 6f 74 5f 72 65 73 75 6c 74 20 69 6e 0a 20  root_result in. 
9790: 20 3d 2a 29 0a 20 20 20 20 66 75 6e 63 5f 73 74   =*).    func_st
97a0: 72 69 70 6e 61 6d 65 20 27 3d 27 20 27 27 20 22  ripname '=' '' "
97b0: 24 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79  $func_resolve_sy
97c0: 73 72 6f 6f 74 5f 72 65 73 75 6c 74 22 0a 20 20  sroot_result".  
97d0: 20 20 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73    func_resolve_s
97e0: 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 3d 24 6c  ysroot_result=$l
97f0: 74 5f 73 79 73 72 6f 6f 74 24 66 75 6e 63 5f 73  t_sysroot$func_s
9800: 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a  tripname_result.
9810: 20 20 20 20 3b 3b 0a 20 20 65 73 61 63 0a 7d 0a      ;;.  esac.}.
9820: 0a 23 20 66 75 6e 63 5f 72 65 70 6c 61 63 65 5f  .# func_replace_
9830: 73 79 73 72 6f 6f 74 20 50 41 54 48 0a 23 20 49  sysroot PATH.# I
9840: 66 20 50 41 54 48 20 62 65 67 69 6e 73 20 77 69  f PATH begins wi
9850: 74 68 20 74 68 65 20 73 79 73 72 6f 6f 74 2c 20  th the sysroot, 
9860: 72 65 70 6c 61 63 65 20 69 74 20 77 69 74 68 20  replace it with 
9870: 3d 20 61 6e 64 0a 23 20 73 74 6f 72 65 20 74 68  = and.# store th
9880: 65 20 72 65 73 75 6c 74 20 69 6e 74 6f 20 66 75  e result into fu
9890: 6e 63 5f 72 65 70 6c 61 63 65 5f 73 79 73 72 6f  nc_replace_sysro
98a0: 6f 74 5f 72 65 73 75 6c 74 2e 0a 66 75 6e 63 5f  ot_result..func_
98b0: 72 65 70 6c 61 63 65 5f 73 79 73 72 6f 6f 74 20  replace_sysroot 
98c0: 28 29 0a 7b 0a 20 20 63 61 73 65 20 22 24 6c 74  ().{.  case "$lt
98d0: 5f 73 79 73 72 6f 6f 74 3a 24 31 22 20 69 6e 0a  _sysroot:$1" in.
98e0: 20 20 3f 2a 3a 22 24 6c 74 5f 73 79 73 72 6f 6f    ?*:"$lt_sysroo
98f0: 74 22 2a 29 0a 20 20 20 20 66 75 6e 63 5f 73 74  t"*).    func_st
9900: 72 69 70 6e 61 6d 65 20 22 24 6c 74 5f 73 79 73  ripname "$lt_sys
9910: 72 6f 6f 74 22 20 27 27 20 22 24 31 22 0a 20 20  root" '' "$1".  
9920: 20 20 66 75 6e 63 5f 72 65 70 6c 61 63 65 5f 73    func_replace_s
9930: 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 3d 22 3d  ysroot_result="=
9940: 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f  $func_stripname_
9950: 72 65 73 75 6c 74 22 0a 20 20 20 20 3b 3b 0a 20  result".    ;;. 
9960: 20 2a 29 0a 20 20 20 20 23 20 49 6e 63 6c 75 64   *).    # Includ
9970: 69 6e 67 20 6e 6f 20 73 79 73 72 6f 6f 74 2e 0a  ing no sysroot..
9980: 20 20 20 20 66 75 6e 63 5f 72 65 70 6c 61 63 65      func_replace
9990: 5f 73 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 3d  _sysroot_result=
99a0: 24 31 0a 20 20 20 20 3b 3b 0a 20 20 65 73 61 63  $1.    ;;.  esac
99b0: 0a 7d 0a 0a 23 20 66 75 6e 63 5f 69 6e 66 65 72  .}..# func_infer
99c0: 5f 74 61 67 20 61 72 67 0a 23 20 49 6e 66 65 72  _tag arg.# Infer
99d0: 20 74 61 67 67 65 64 20 63 6f 6e 66 69 67 75 72   tagged configur
99e0: 61 74 69 6f 6e 20 74 6f 20 75 73 65 20 69 66 20  ation to use if 
99f0: 61 6e 79 20 61 72 65 20 61 76 61 69 6c 61 62 6c  any are availabl
9a00: 65 20 61 6e 64 0a 23 20 69 66 20 6f 6e 65 20 77  e and.# if one w
9a10: 61 73 6e 27 74 20 63 68 6f 73 65 6e 20 76 69 61  asn't chosen via
9a20: 20 74 68 65 20 22 2d 2d 74 61 67 22 20 63 6f 6d   the "--tag" com
9a30: 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f 6e  mand line option
9a40: 2e 0a 23 20 4f 6e 6c 79 20 61 74 74 65 6d 70 74  ..# Only attempt
9a50: 20 74 68 69 73 20 69 66 20 74 68 65 20 63 6f 6d   this if the com
9a60: 70 69 6c 65 72 20 69 6e 20 74 68 65 20 62 61 73  piler in the bas
9a70: 65 20 63 6f 6d 70 69 6c 65 0a 23 20 63 6f 6d 6d  e compile.# comm
9a80: 61 6e 64 20 64 6f 65 73 6e 27 74 20 6d 61 74 63  and doesn't matc
9a90: 68 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f  h the default co
9aa0: 6d 70 69 6c 65 72 2e 0a 23 20 61 72 67 20 69 73  mpiler..# arg is
9ab0: 20 75 73 75 61 6c 6c 79 20 6f 66 20 74 68 65 20   usually of the 
9ac0: 66 6f 72 6d 20 27 67 63 63 20 2e 2e 2e 27 0a 66  form 'gcc ...'.f
9ad0: 75 6e 63 5f 69 6e 66 65 72 5f 74 61 67 20 28 29  unc_infer_tag ()
9ae0: 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65 62 75  .{.    $opt_debu
9af0: 67 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e  g.    if test -n
9b00: 20 22 24 61 76 61 69 6c 61 62 6c 65 5f 74 61 67   "$available_tag
9b10: 73 22 20 26 26 20 74 65 73 74 20 2d 7a 20 22 24  s" && test -z "$
9b20: 74 61 67 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 20  tagname"; then. 
9b30: 20 20 20 20 20 43 43 5f 71 75 6f 74 65 64 3d 0a       CC_quoted=.
9b40: 20 20 20 20 20 20 66 6f 72 20 61 72 67 20 69 6e        for arg in
9b50: 20 24 43 43 3b 20 64 6f 0a 09 66 75 6e 63 5f 61   $CC; do..func_a
9b60: 70 70 65 6e 64 5f 71 75 6f 74 65 64 20 43 43 5f  ppend_quoted CC_
9b70: 71 75 6f 74 65 64 20 22 24 61 72 67 22 0a 20 20  quoted "$arg".  
9b80: 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 20 20 43      done.      C
9b90: 43 5f 65 78 70 61 6e 64 65 64 3d 60 66 75 6e 63  C_expanded=`func
9ba0: 5f 65 63 68 6f 5f 61 6c 6c 20 24 43 43 60 0a 20  _echo_all $CC`. 
9bb0: 20 20 20 20 20 43 43 5f 71 75 6f 74 65 64 5f 65       CC_quoted_e
9bc0: 78 70 61 6e 64 65 64 3d 60 66 75 6e 63 5f 65 63  xpanded=`func_ec
9bd0: 68 6f 5f 61 6c 6c 20 24 43 43 5f 71 75 6f 74 65  ho_all $CC_quote
9be0: 64 60 0a 20 20 20 20 20 20 63 61 73 65 20 24 40  d`.      case $@
9bf0: 20 69 6e 0a 20 20 20 20 20 20 23 20 42 6c 61 6e   in.      # Blan
9c00: 6b 73 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e  ks in the comman
9c10: 64 20 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20  d may have been 
9c20: 73 74 72 69 70 70 65 64 20 62 79 20 74 68 65 20  stripped by the 
9c30: 63 61 6c 6c 69 6e 67 20 73 68 65 6c 6c 2c 0a 20  calling shell,. 
9c40: 20 20 20 20 20 23 20 62 75 74 20 6e 6f 74 20 66       # but not f
9c50: 72 6f 6d 20 74 68 65 20 43 43 20 65 6e 76 69 72  rom the CC envir
9c60: 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20  onment variable 
9c70: 77 68 65 6e 20 63 6f 6e 66 69 67 75 72 65 20 77  when configure w
9c80: 61 73 20 72 75 6e 2e 0a 20 20 20 20 20 20 22 20  as run..      " 
9c90: 24 43 43 20 22 2a 20 7c 20 22 24 43 43 20 22 2a  $CC "* | "$CC "*
9ca0: 20 7c 20 22 20 24 43 43 5f 65 78 70 61 6e 64 65   | " $CC_expande
9cb0: 64 20 22 2a 20 7c 20 22 24 43 43 5f 65 78 70 61  d "* | "$CC_expa
9cc0: 6e 64 65 64 20 22 2a 20 7c 20 5c 0a 20 20 20 20  nded "* | \.    
9cd0: 20 20 22 20 24 43 43 5f 71 75 6f 74 65 64 22 2a    " $CC_quoted"*
9ce0: 20 7c 20 22 24 43 43 5f 71 75 6f 74 65 64 20 22   | "$CC_quoted "
9cf0: 2a 20 7c 20 22 20 24 43 43 5f 71 75 6f 74 65 64  * | " $CC_quoted
9d00: 5f 65 78 70 61 6e 64 65 64 20 22 2a 20 7c 20 22  _expanded "* | "
9d10: 24 43 43 5f 71 75 6f 74 65 64 5f 65 78 70 61 6e  $CC_quoted_expan
9d20: 64 65 64 20 22 2a 29 20 3b 3b 0a 20 20 20 20 20  ded "*) ;;.     
9d30: 20 23 20 42 6c 61 6e 6b 73 20 61 74 20 74 68 65   # Blanks at the
9d40: 20 73 74 61 72 74 20 6f 66 20 24 62 61 73 65 5f   start of $base_
9d50: 63 6f 6d 70 69 6c 65 20 77 69 6c 6c 20 63 61 75  compile will cau
9d60: 73 65 20 74 68 69 73 20 74 6f 20 66 61 69 6c 0a  se this to fail.
9d70: 20 20 20 20 20 20 23 20 69 66 20 77 65 20 64 6f        # if we do
9d80: 6e 27 74 20 63 68 65 63 6b 20 66 6f 72 20 74 68  n't check for th
9d90: 65 6d 20 61 73 20 77 65 6c 6c 2e 0a 20 20 20 20  em as well..    
9da0: 20 20 2a 29 0a 09 66 6f 72 20 7a 20 69 6e 20 24    *)..for z in $
9db0: 61 76 61 69 6c 61 62 6c 65 5f 74 61 67 73 3b 20  available_tags; 
9dc0: 64 6f 0a 09 20 20 69 66 20 24 47 52 45 50 20 22  do..  if $GREP "
9dd0: 5e 23 20 23 23 23 20 42 45 47 49 4e 20 4c 49 42  ^# ### BEGIN LIB
9de0: 54 4f 4f 4c 20 54 41 47 20 43 4f 4e 46 49 47 3a  TOOL TAG CONFIG:
9df0: 20 24 7a 24 22 20 3c 20 22 24 70 72 6f 67 70 61   $z$" < "$progpa
9e00: 74 68 22 20 3e 20 2f 64 65 76 2f 6e 75 6c 6c 3b  th" > /dev/null;
9e10: 20 74 68 65 6e 0a 09 20 20 20 20 23 20 45 76 61   then..    # Eva
9e20: 6c 75 61 74 65 20 74 68 65 20 63 6f 6e 66 69 67  luate the config
9e30: 75 72 61 74 69 6f 6e 2e 0a 09 20 20 20 20 65 76  uration...    ev
9e40: 61 6c 20 22 60 24 7b 53 45 44 7d 20 2d 6e 20 2d  al "`${SED} -n -
9e50: 65 20 27 2f 5e 23 20 23 23 23 20 42 45 47 49 4e  e '/^# ### BEGIN
9e60: 20 4c 49 42 54 4f 4f 4c 20 54 41 47 20 43 4f 4e   LIBTOOL TAG CON
9e70: 46 49 47 3a 20 27 24 7a 27 24 2f 2c 2f 5e 23 20  FIG: '$z'$/,/^# 
9e80: 23 23 23 20 45 4e 44 20 4c 49 42 54 4f 4f 4c 20  ### END LIBTOOL 
9e90: 54 41 47 20 43 4f 4e 46 49 47 3a 20 27 24 7a 27  TAG CONFIG: '$z'
9ea0: 24 2f 70 27 20 3c 20 24 70 72 6f 67 70 61 74 68  $/p' < $progpath
9eb0: 60 22 0a 09 20 20 20 20 43 43 5f 71 75 6f 74 65  `"..    CC_quote
9ec0: 64 3d 0a 09 20 20 20 20 66 6f 72 20 61 72 67 20  d=..    for arg 
9ed0: 69 6e 20 24 43 43 3b 20 64 6f 0a 09 20 20 20 20  in $CC; do..    
9ee0: 20 20 23 20 44 6f 75 62 6c 65 2d 71 75 6f 74 65    # Double-quote
9ef0: 20 61 72 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67   args containing
9f00: 20 6f 74 68 65 72 20 73 68 65 6c 6c 20 6d 65 74   other shell met
9f10: 61 63 68 61 72 61 63 74 65 72 73 2e 0a 09 20 20  acharacters...  
9f20: 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 5f      func_append_
9f30: 71 75 6f 74 65 64 20 43 43 5f 71 75 6f 74 65 64  quoted CC_quoted
9f40: 20 22 24 61 72 67 22 0a 09 20 20 20 20 64 6f 6e   "$arg"..    don
9f50: 65 0a 09 20 20 20 20 43 43 5f 65 78 70 61 6e 64  e..    CC_expand
9f60: 65 64 3d 60 66 75 6e 63 5f 65 63 68 6f 5f 61 6c  ed=`func_echo_al
9f70: 6c 20 24 43 43 60 0a 09 20 20 20 20 43 43 5f 71  l $CC`..    CC_q
9f80: 75 6f 74 65 64 5f 65 78 70 61 6e 64 65 64 3d 60  uoted_expanded=`
9f90: 66 75 6e 63 5f 65 63 68 6f 5f 61 6c 6c 20 24 43  func_echo_all $C
9fa0: 43 5f 71 75 6f 74 65 64 60 0a 09 20 20 20 20 63  C_quoted`..    c
9fb0: 61 73 65 20 22 24 40 20 22 20 69 6e 0a 09 20 20  ase "$@ " in..  
9fc0: 20 20 22 20 24 43 43 20 22 2a 20 7c 20 22 24 43    " $CC "* | "$C
9fd0: 43 20 22 2a 20 7c 20 22 20 24 43 43 5f 65 78 70  C "* | " $CC_exp
9fe0: 61 6e 64 65 64 20 22 2a 20 7c 20 22 24 43 43 5f  anded "* | "$CC_
9ff0: 65 78 70 61 6e 64 65 64 20 22 2a 20 7c 20 5c 0a  expanded "* | \.
a000: 09 20 20 20 20 22 20 24 43 43 5f 71 75 6f 74 65  .    " $CC_quote
a010: 64 22 2a 20 7c 20 22 24 43 43 5f 71 75 6f 74 65  d"* | "$CC_quote
a020: 64 20 22 2a 20 7c 20 22 20 24 43 43 5f 71 75 6f  d "* | " $CC_quo
a030: 74 65 64 5f 65 78 70 61 6e 64 65 64 20 22 2a 20  ted_expanded "* 
a040: 7c 20 22 24 43 43 5f 71 75 6f 74 65 64 5f 65 78  | "$CC_quoted_ex
a050: 70 61 6e 64 65 64 20 22 2a 29 0a 09 20 20 20 20  panded "*)..    
a060: 20 20 23 20 54 68 65 20 63 6f 6d 70 69 6c 65 72    # The compiler
a070: 20 69 6e 20 74 68 65 20 62 61 73 65 20 63 6f 6d   in the base com
a080: 70 69 6c 65 20 63 6f 6d 6d 61 6e 64 20 6d 61 74  pile command mat
a090: 63 68 65 73 0a 09 20 20 20 20 20 20 23 20 74 68  ches..      # th
a0a0: 65 20 6f 6e 65 20 69 6e 20 74 68 65 20 74 61 67  e one in the tag
a0b0: 67 65 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  ged configuratio
a0c0: 6e 2e 0a 09 20 20 20 20 20 20 23 20 41 73 73 75  n...      # Assu
a0d0: 6d 65 20 74 68 69 73 20 69 73 20 74 68 65 20 74  me this is the t
a0e0: 61 67 67 65 64 20 63 6f 6e 66 69 67 75 72 61 74  agged configurat
a0f0: 69 6f 6e 20 77 65 20 77 61 6e 74 2e 0a 09 20 20  ion we want...  
a100: 20 20 20 20 74 61 67 6e 61 6d 65 3d 24 7a 0a 09      tagname=$z..
a110: 20 20 20 20 20 20 62 72 65 61 6b 0a 09 20 20 20        break..   
a120: 20 20 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a     ;;..    esac.
a130: 09 20 20 66 69 0a 09 64 6f 6e 65 0a 09 23 20 49  .  fi..done..# I
a140: 66 20 24 74 61 67 6e 61 6d 65 20 73 74 69 6c 6c  f $tagname still
a150: 20 69 73 6e 27 74 20 73 65 74 2c 20 74 68 65 6e   isn't set, then
a160: 20 6e 6f 20 74 61 67 67 65 64 20 63 6f 6e 66 69   no tagged confi
a170: 67 75 72 61 74 69 6f 6e 0a 09 23 20 77 61 73 20  guration..# was 
a180: 66 6f 75 6e 64 20 61 6e 64 20 6c 65 74 20 74 68  found and let th
a190: 65 20 75 73 65 72 20 6b 6e 6f 77 20 74 68 61 74  e user know that
a1a0: 20 74 68 65 20 22 2d 2d 74 61 67 22 20 63 6f 6d   the "--tag" com
a1b0: 6d 61 6e 64 0a 09 23 20 6c 69 6e 65 20 6f 70 74  mand..# line opt
a1c0: 69 6f 6e 20 6d 75 73 74 20 62 65 20 75 73 65 64  ion must be used
a1d0: 2e 0a 09 69 66 20 74 65 73 74 20 2d 7a 20 22 24  ...if test -z "$
a1e0: 74 61 67 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09  tagname"; then..
a1f0: 20 20 66 75 6e 63 5f 65 63 68 6f 20 22 75 6e 61    func_echo "una
a200: 62 6c 65 20 74 6f 20 69 6e 66 65 72 20 74 61 67  ble to infer tag
a210: 67 65 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  ged configuratio
a220: 6e 22 0a 09 20 20 66 75 6e 63 5f 66 61 74 61 6c  n"..  func_fatal
a230: 5f 65 72 72 6f 72 20 22 73 70 65 63 69 66 79 20  _error "specify 
a240: 61 20 74 61 67 20 77 69 74 68 20 5c 60 2d 2d 74  a tag with \`--t
a250: 61 67 27 22 0a 23 09 65 6c 73 65 0a 23 09 20 20  ag'".#.else.#.  
a260: 66 75 6e 63 5f 76 65 72 62 6f 73 65 20 22 75 73  func_verbose "us
a270: 69 6e 67 20 24 74 61 67 6e 61 6d 65 20 74 61 67  ing $tagname tag
a280: 67 65 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  ged configuratio
a290: 6e 22 0a 09 66 69 0a 09 3b 3b 0a 20 20 20 20 20  n"..fi..;;.     
a2a0: 20 65 73 61 63 0a 20 20 20 20 66 69 0a 7d 0a 0a   esac.    fi.}..
a2b0: 0a 0a 23 20 66 75 6e 63 5f 77 72 69 74 65 5f 6c  ..# func_write_l
a2c0: 69 62 74 6f 6f 6c 5f 6f 62 6a 65 63 74 20 6f 75  ibtool_object ou
a2d0: 74 70 75 74 5f 6e 61 6d 65 20 70 69 63 5f 6e 61  tput_name pic_na
a2e0: 6d 65 20 6e 6f 6e 70 69 63 5f 6e 61 6d 65 0a 23  me nonpic_name.#
a2f0: 20 43 72 65 61 74 65 20 61 20 6c 69 62 74 6f 6f   Create a libtoo
a300: 6c 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 28 61  l object file (a
a310: 6e 61 6c 6f 67 6f 75 73 20 74 6f 20 61 20 22 2e  nalogous to a ".
a320: 6c 61 22 20 66 69 6c 65 29 2c 0a 23 20 62 75 74  la" file),.# but
a330: 20 64 6f 6e 27 74 20 63 72 65 61 74 65 20 69 74   don't create it
a340: 20 69 66 20 77 65 27 72 65 20 64 6f 69 6e 67 20   if we're doing 
a350: 61 20 64 72 79 20 72 75 6e 2e 0a 66 75 6e 63 5f  a dry run..func_
a360: 77 72 69 74 65 5f 6c 69 62 74 6f 6f 6c 5f 6f 62  write_libtool_ob
a370: 6a 65 63 74 20 28 29 0a 7b 0a 20 20 20 20 77 72  ject ().{.    wr
a380: 69 74 65 5f 6c 69 62 6f 62 6a 3d 24 7b 31 7d 0a  ite_libobj=${1}.
a390: 20 20 20 20 69 66 20 74 65 73 74 20 22 24 62 75      if test "$bu
a3a0: 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73  ild_libtool_libs
a3b0: 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20  " = yes; then.  
a3c0: 20 20 20 20 77 72 69 74 65 5f 6c 6f 62 6a 3d 5c      write_lobj=\
a3d0: 27 24 7b 32 7d 5c 27 0a 20 20 20 20 65 6c 73 65  '${2}\'.    else
a3e0: 0a 20 20 20 20 20 20 77 72 69 74 65 5f 6c 6f 62  .      write_lob
a3f0: 6a 3d 6e 6f 6e 65 0a 20 20 20 20 66 69 0a 0a 20  j=none.    fi.. 
a400: 20 20 20 69 66 20 74 65 73 74 20 22 24 62 75 69     if test "$bui
a410: 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d 20 79  ld_old_libs" = y
a420: 65 73 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 77  es; then.      w
a430: 72 69 74 65 5f 6f 6c 64 6f 62 6a 3d 5c 27 24 7b  rite_oldobj=\'${
a440: 33 7d 5c 27 0a 20 20 20 20 65 6c 73 65 0a 20 20  3}\'.    else.  
a450: 20 20 20 20 77 72 69 74 65 5f 6f 6c 64 6f 62 6a      write_oldobj
a460: 3d 6e 6f 6e 65 0a 20 20 20 20 66 69 0a 0a 20 20  =none.    fi..  
a470: 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c    $opt_dry_run |
a480: 7c 20 7b 0a 20 20 20 20 20 20 63 61 74 20 3e 24  | {.      cat >$
a490: 7b 77 72 69 74 65 5f 6c 69 62 6f 62 6a 7d 54 20  {write_libobj}T 
a4a0: 3c 3c 45 4f 46 0a 23 20 24 77 72 69 74 65 5f 6c  <<EOF.# $write_l
a4b0: 69 62 6f 62 6a 20 2d 20 61 20 6c 69 62 74 6f 6f  ibobj - a libtoo
a4c0: 6c 20 6f 62 6a 65 63 74 20 66 69 6c 65 0a 23 20  l object file.# 
a4d0: 47 65 6e 65 72 61 74 65 64 20 62 79 20 24 50 52  Generated by $PR
a4e0: 4f 47 52 41 4d 20 28 47 4e 55 20 24 50 41 43 4b  OGRAM (GNU $PACK
a4f0: 41 47 45 24 54 49 4d 45 53 54 41 4d 50 29 20 24  AGE$TIMESTAMP) $
a500: 56 45 52 53 49 4f 4e 0a 23 0a 23 20 50 6c 65 61  VERSION.#.# Plea
a510: 73 65 20 44 4f 20 4e 4f 54 20 64 65 6c 65 74 65  se DO NOT delete
a520: 20 74 68 69 73 20 66 69 6c 65 21 0a 23 20 49 74   this file!.# It
a530: 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 66 6f   is necessary fo
a540: 72 20 6c 69 6e 6b 69 6e 67 20 74 68 65 20 6c 69  r linking the li
a550: 62 72 61 72 79 2e 0a 0a 23 20 4e 61 6d 65 20 6f  brary...# Name o
a560: 66 20 74 68 65 20 50 49 43 20 6f 62 6a 65 63 74  f the PIC object
a570: 2e 0a 70 69 63 5f 6f 62 6a 65 63 74 3d 24 77 72  ..pic_object=$wr
a580: 69 74 65 5f 6c 6f 62 6a 0a 0a 23 20 4e 61 6d 65  ite_lobj..# Name
a590: 20 6f 66 20 74 68 65 20 6e 6f 6e 2d 50 49 43 20   of the non-PIC 
a5a0: 6f 62 6a 65 63 74 0a 6e 6f 6e 5f 70 69 63 5f 6f  object.non_pic_o
a5b0: 62 6a 65 63 74 3d 24 77 72 69 74 65 5f 6f 6c 64  bject=$write_old
a5c0: 6f 62 6a 0a 0a 45 4f 46 0a 20 20 20 20 20 20 24  obj..EOF.      $
a5d0: 4d 56 20 22 24 7b 77 72 69 74 65 5f 6c 69 62 6f  MV "${write_libo
a5e0: 62 6a 7d 54 22 20 22 24 7b 77 72 69 74 65 5f 6c  bj}T" "${write_l
a5f0: 69 62 6f 62 6a 7d 22 0a 20 20 20 20 7d 0a 7d 0a  ibobj}".    }.}.
a600: 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
a610: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a620: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a630: 23 23 23 23 0a 23 20 46 49 4c 45 20 4e 41 4d 45  ####.# FILE NAME
a640: 20 41 4e 44 20 50 41 54 48 20 43 4f 4e 56 45 52   AND PATH CONVER
a650: 53 49 4f 4e 20 48 45 4c 50 45 52 20 46 55 4e 43  SION HELPER FUNC
a660: 54 49 4f 4e 53 20 23 0a 23 23 23 23 23 23 23 23  TIONS #.########
a670: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a680: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
a690: 23 23 23 23 23 23 23 23 23 23 0a 0a 23 20 66 75  ##########..# fu
a6a0: 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f  nc_convert_core_
a6b0: 66 69 6c 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32  file_wine_to_w32
a6c0: 20 41 52 47 0a 23 20 48 65 6c 70 65 72 20 66 75   ARG.# Helper fu
a6d0: 6e 63 74 69 6f 6e 20 75 73 65 64 20 62 79 20 66  nction used by f
a6e0: 69 6c 65 20 6e 61 6d 65 20 63 6f 6e 76 65 72 73  ile name convers
a6f0: 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 20 77 68  ion functions wh
a700: 65 6e 20 24 62 75 69 6c 64 20 69 73 20 2a 6e 69  en $build is *ni
a710: 78 2c 0a 23 20 61 6e 64 20 24 68 6f 73 74 20 69  x,.# and $host i
a720: 73 20 6d 69 6e 67 77 2c 20 63 79 67 77 69 6e 2c  s mingw, cygwin,
a730: 20 6f 72 20 73 6f 6d 65 20 6f 74 68 65 72 20 77   or some other w
a740: 33 32 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 20  32 environment. 
a750: 52 65 6c 69 65 73 20 6f 6e 20 61 0a 23 20 63 6f  Relies on a.# co
a760: 72 72 65 63 74 6c 79 20 63 6f 6e 66 69 67 75 72  rrectly configur
a770: 65 64 20 77 69 6e 65 20 65 6e 76 69 72 6f 6e 6d  ed wine environm
a780: 65 6e 74 20 61 76 61 69 6c 61 62 6c 65 2c 20 77  ent available, w
a790: 69 74 68 20 74 68 65 20 77 69 6e 65 70 61 74 68  ith the winepath
a7a0: 20 70 72 6f 67 72 61 6d 0a 23 20 69 6e 20 24 62   program.# in $b
a7b0: 75 69 6c 64 27 73 20 24 50 41 54 48 2e 0a 23 0a  uild's $PATH..#.
a7c0: 23 20 41 52 47 20 69 73 20 74 68 65 20 24 62 75  # ARG is the $bu
a7d0: 69 6c 64 20 66 69 6c 65 20 6e 61 6d 65 20 74 6f  ild file name to
a7e0: 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f   be converted to
a7f0: 20 77 33 32 20 66 6f 72 6d 61 74 2e 0a 23 20 52   w32 format..# R
a800: 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62  esult is availab
a810: 6c 65 20 69 6e 20 24 66 75 6e 63 5f 63 6f 6e 76  le in $func_conv
a820: 65 72 74 5f 63 6f 72 65 5f 66 69 6c 65 5f 77 69  ert_core_file_wi
a830: 6e 65 5f 74 6f 5f 77 33 32 5f 72 65 73 75 6c 74  ne_to_w32_result
a840: 2c 20 61 6e 64 20 77 69 6c 6c 0a 23 20 62 65 20  , and will.# be 
a850: 65 6d 70 74 79 20 6f 6e 20 65 72 72 6f 72 20 28  empty on error (
a860: 6f 72 20 77 68 65 6e 20 41 52 47 20 69 73 20 65  or when ARG is e
a870: 6d 70 74 79 29 0a 66 75 6e 63 5f 63 6f 6e 76 65  mpty).func_conve
a880: 72 74 5f 63 6f 72 65 5f 66 69 6c 65 5f 77 69 6e  rt_core_file_win
a890: 65 5f 74 6f 5f 77 33 32 20 28 29 0a 7b 0a 20 20  e_to_w32 ().{.  
a8a0: 24 6f 70 74 5f 64 65 62 75 67 0a 20 20 66 75 6e  $opt_debug.  fun
a8b0: 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66  c_convert_core_f
a8c0: 69 6c 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 5f  ile_wine_to_w32_
a8d0: 72 65 73 75 6c 74 3d 22 24 31 22 0a 20 20 69 66  result="$1".  if
a8e0: 20 74 65 73 74 20 2d 6e 20 22 24 31 22 3b 20 74   test -n "$1"; t
a8f0: 68 65 6e 0a 20 20 20 20 23 20 55 6e 66 6f 72 74  hen.    # Unfort
a900: 75 6e 61 74 65 6c 79 2c 20 77 69 6e 65 70 61 74  unately, winepat
a910: 68 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 74 20  h does not exit 
a920: 77 69 74 68 20 61 20 6e 6f 6e 2d 7a 65 72 6f 20  with a non-zero 
a930: 65 72 72 6f 72 20 63 6f 64 65 2c 20 73 6f 20 77  error code, so w
a940: 65 0a 20 20 20 20 23 20 61 72 65 20 66 6f 72 63  e.    # are forc
a950: 65 64 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20  ed to check the 
a960: 63 6f 6e 74 65 6e 74 73 20 6f 66 20 73 74 64 6f  contents of stdo
a970: 75 74 2e 20 4f 6e 20 74 68 65 20 6f 74 68 65 72  ut. On the other
a980: 20 68 61 6e 64 2c 20 69 66 20 74 68 65 0a 20 20   hand, if the.  
a990: 20 20 23 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e    # command is n
a9a0: 6f 74 20 66 6f 75 6e 64 2c 20 74 68 65 20 73 68  ot found, the sh
a9b0: 65 6c 6c 20 77 69 6c 6c 20 73 65 74 20 61 6e 20  ell will set an 
a9c0: 65 78 69 74 20 63 6f 64 65 20 6f 66 20 31 32 37  exit code of 127
a9d0: 20 61 6e 64 20 70 72 69 6e 74 0a 20 20 20 20 23   and print.    #
a9e0: 20 2a 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61   *an error messa
a9f0: 67 65 2a 20 74 6f 20 73 74 64 6f 75 74 2e 20 53  ge* to stdout. S
aa00: 6f 20 77 65 20 6d 75 73 74 20 63 68 65 63 6b 20  o we must check 
aa10: 66 6f 72 20 62 6f 74 68 20 65 72 72 6f 72 20 63  for both error c
aa20: 6f 64 65 20 6f 66 0a 20 20 20 20 23 20 7a 65 72  ode of.    # zer
aa30: 6f 20 41 4e 44 20 6e 6f 6e 2d 65 6d 70 74 79 20  o AND non-empty 
aa40: 73 74 64 6f 75 74 2c 20 77 68 69 63 68 20 65 78  stdout, which ex
aa50: 70 6c 61 69 6e 73 20 74 68 65 20 6f 64 64 20 63  plains the odd c
aa60: 6f 6e 73 74 72 75 63 74 69 6f 6e 3a 0a 20 20 20  onstruction:.   
aa70: 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f   func_convert_co
aa80: 72 65 5f 66 69 6c 65 5f 77 69 6e 65 5f 74 6f 5f  re_file_wine_to_
aa90: 77 33 32 5f 74 6d 70 3d 60 77 69 6e 65 70 61 74  w32_tmp=`winepat
aaa0: 68 20 2d 77 20 22 24 31 22 20 32 3e 2f 64 65 76  h -w "$1" 2>/dev
aab0: 2f 6e 75 6c 6c 60 0a 20 20 20 20 69 66 20 74 65  /null`.    if te
aac0: 73 74 20 22 24 3f 22 20 2d 65 71 20 30 20 26 26  st "$?" -eq 0 &&
aad0: 20 74 65 73 74 20 2d 6e 20 22 24 7b 66 75 6e 63   test -n "${func
aae0: 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66 69  _convert_core_fi
aaf0: 6c 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 5f 74  le_wine_to_w32_t
ab00: 6d 70 7d 22 3b 20 74 68 65 6e 0a 20 20 20 20 20  mp}"; then.     
ab10: 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f   func_convert_co
ab20: 72 65 5f 66 69 6c 65 5f 77 69 6e 65 5f 74 6f 5f  re_file_wine_to_
ab30: 77 33 32 5f 72 65 73 75 6c 74 3d 60 24 45 43 48  w32_result=`$ECH
ab40: 4f 20 22 24 66 75 6e 63 5f 63 6f 6e 76 65 72 74  O "$func_convert
ab50: 5f 63 6f 72 65 5f 66 69 6c 65 5f 77 69 6e 65 5f  _core_file_wine_
ab60: 74 6f 5f 77 33 32 5f 74 6d 70 22 20 7c 0a 20 20  to_w32_tmp" |.  
ab70: 20 20 20 20 20 20 24 53 45 44 20 2d 65 20 22 24        $SED -e "$
ab80: 6c 74 5f 73 65 64 5f 6e 61 69 76 65 5f 62 61 63  lt_sed_naive_bac
ab90: 6b 73 6c 61 73 68 69 66 79 22 60 0a 20 20 20 20  kslashify"`.    
aba0: 65 6c 73 65 0a 20 20 20 20 20 20 66 75 6e 63 5f  else.      func_
abb0: 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66 69 6c  convert_core_fil
abc0: 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 5f 72 65  e_wine_to_w32_re
abd0: 73 75 6c 74 3d 0a 20 20 20 20 66 69 0a 20 20 66  sult=.    fi.  f
abe0: 69 0a 7d 0a 23 20 65 6e 64 3a 20 66 75 6e 63 5f  i.}.# end: func_
abf0: 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66 69 6c  convert_core_fil
ac00: 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 0a 0a 0a  e_wine_to_w32...
ac10: 23 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63  # func_convert_c
ac20: 6f 72 65 5f 70 61 74 68 5f 77 69 6e 65 5f 74 6f  ore_path_wine_to
ac30: 5f 77 33 32 20 41 52 47 0a 23 20 48 65 6c 70 65  _w32 ARG.# Helpe
ac40: 72 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20  r function used 
ac50: 62 79 20 70 61 74 68 20 63 6f 6e 76 65 72 73 69  by path conversi
ac60: 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 65  on functions whe
ac70: 6e 20 24 62 75 69 6c 64 20 69 73 20 2a 6e 69 78  n $build is *nix
ac80: 2c 20 61 6e 64 0a 23 20 24 68 6f 73 74 20 69 73  , and.# $host is
ac90: 20 6d 69 6e 67 77 2c 20 63 79 67 77 69 6e 2c 20   mingw, cygwin, 
aca0: 6f 72 20 73 6f 6d 65 20 6f 74 68 65 72 20 77 33  or some other w3
acb0: 32 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 20 52  2 environment. R
acc0: 65 6c 69 65 73 20 6f 6e 20 61 20 63 6f 72 72 65  elies on a corre
acd0: 63 74 6c 79 0a 23 20 63 6f 6e 66 69 67 75 72 65  ctly.# configure
ace0: 64 20 77 69 6e 65 20 65 6e 76 69 72 6f 6e 6d 65  d wine environme
acf0: 6e 74 20 61 76 61 69 6c 61 62 6c 65 2c 20 77 69  nt available, wi
ad00: 74 68 20 74 68 65 20 77 69 6e 65 70 61 74 68 20  th the winepath 
ad10: 70 72 6f 67 72 61 6d 20 69 6e 20 24 62 75 69 6c  program in $buil
ad20: 64 27 73 0a 23 20 24 50 41 54 48 2e 20 41 73 73  d's.# $PATH. Ass
ad30: 75 6d 65 73 20 41 52 47 20 68 61 73 20 6e 6f 20  umes ARG has no 
ad40: 6c 65 61 64 69 6e 67 20 6f 72 20 74 72 61 69 6c  leading or trail
ad50: 69 6e 67 20 70 61 74 68 20 73 65 70 61 72 61 74  ing path separat
ad60: 6f 72 20 63 68 61 72 61 63 74 65 72 73 2e 0a 23  or characters..#
ad70: 0a 23 20 41 52 47 20 69 73 20 70 61 74 68 20 74  .# ARG is path t
ad80: 6f 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 66  o be converted f
ad90: 72 6f 6d 20 24 62 75 69 6c 64 20 66 6f 72 6d 61  rom $build forma
ada0: 74 20 74 6f 20 77 69 6e 33 32 2e 0a 23 20 52 65  t to win32..# Re
adb0: 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61 62 6c  sult is availabl
adc0: 65 20 69 6e 20 24 66 75 6e 63 5f 63 6f 6e 76 65  e in $func_conve
add0: 72 74 5f 63 6f 72 65 5f 70 61 74 68 5f 77 69 6e  rt_core_path_win
ade0: 65 5f 74 6f 5f 77 33 32 5f 72 65 73 75 6c 74 2e  e_to_w32_result.
adf0: 0a 23 20 55 6e 63 6f 6e 76 65 72 74 69 62 6c 65  .# Unconvertible
ae00: 20 66 69 6c 65 20 28 64 69 72 65 63 74 6f 72 79   file (directory
ae10: 29 20 6e 61 6d 65 73 20 69 6e 20 41 52 47 20 61  ) names in ARG a
ae20: 72 65 20 73 6b 69 70 70 65 64 3b 20 69 66 20 6e  re skipped; if n
ae30: 6f 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65  o directory name
ae40: 73 0a 23 20 61 72 65 20 63 6f 6e 76 65 72 74 69  s.# are converti
ae50: 62 6c 65 2c 20 74 68 65 6e 20 74 68 65 20 72 65  ble, then the re
ae60: 73 75 6c 74 20 6d 61 79 20 62 65 20 65 6d 70 74  sult may be empt
ae70: 79 2e 0a 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f  y..func_convert_
ae80: 63 6f 72 65 5f 70 61 74 68 5f 77 69 6e 65 5f 74  core_path_wine_t
ae90: 6f 5f 77 33 32 20 28 29 0a 7b 0a 20 20 24 6f 70  o_w32 ().{.  $op
aea0: 74 5f 64 65 62 75 67 0a 20 20 23 20 75 6e 66 6f  t_debug.  # unfo
aeb0: 72 74 75 6e 61 74 65 6c 79 2c 20 77 69 6e 65 70  rtunately, winep
aec0: 61 74 68 20 64 6f 65 73 6e 27 74 20 63 6f 6e 76  ath doesn't conv
aed0: 65 72 74 20 70 61 74 68 73 2c 20 6f 6e 6c 79 20  ert paths, only 
aee0: 66 69 6c 65 20 6e 61 6d 65 73 0a 20 20 66 75 6e  file names.  fun
aef0: 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 70  c_convert_core_p
af00: 61 74 68 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 5f  ath_wine_to_w32_
af10: 72 65 73 75 6c 74 3d 22 22 0a 20 20 69 66 20 74  result="".  if t
af20: 65 73 74 20 2d 6e 20 22 24 31 22 3b 20 74 68 65  est -n "$1"; the
af30: 6e 0a 20 20 20 20 6f 6c 64 49 46 53 3d 24 49 46  n.    oldIFS=$IF
af40: 53 0a 20 20 20 20 49 46 53 3d 3a 0a 20 20 20 20  S.    IFS=:.    
af50: 66 6f 72 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74  for func_convert
af60: 5f 63 6f 72 65 5f 70 61 74 68 5f 77 69 6e 65 5f  _core_path_wine_
af70: 74 6f 5f 77 33 32 5f 66 20 69 6e 20 24 31 3b 20  to_w32_f in $1; 
af80: 64 6f 0a 20 20 20 20 20 20 49 46 53 3d 24 6f 6c  do.      IFS=$ol
af90: 64 49 46 53 0a 20 20 20 20 20 20 66 75 6e 63 5f  dIFS.      func_
afa0: 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66 69 6c  convert_core_fil
afb0: 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 20 22 24  e_wine_to_w32 "$
afc0: 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72  func_convert_cor
afd0: 65 5f 70 61 74 68 5f 77 69 6e 65 5f 74 6f 5f 77  e_path_wine_to_w
afe0: 33 32 5f 66 22 0a 20 20 20 20 20 20 69 66 20 74  32_f".      if t
aff0: 65 73 74 20 2d 6e 20 22 24 66 75 6e 63 5f 63 6f  est -n "$func_co
b000: 6e 76 65 72 74 5f 63 6f 72 65 5f 66 69 6c 65 5f  nvert_core_file_
b010: 77 69 6e 65 5f 74 6f 5f 77 33 32 5f 72 65 73 75  wine_to_w32_resu
b020: 6c 74 22 20 3b 20 74 68 65 6e 0a 20 20 20 20 20  lt" ; then.     
b030: 20 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22 24     if test -z "$
b040: 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72  func_convert_cor
b050: 65 5f 70 61 74 68 5f 77 69 6e 65 5f 74 6f 5f 77  e_path_wine_to_w
b060: 33 32 5f 72 65 73 75 6c 74 22 3b 20 74 68 65 6e  32_result"; then
b070: 0a 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f  .          func_
b080: 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 70 61 74  convert_core_pat
b090: 68 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 5f 72 65  h_wine_to_w32_re
b0a0: 73 75 6c 74 3d 22 24 66 75 6e 63 5f 63 6f 6e 76  sult="$func_conv
b0b0: 65 72 74 5f 63 6f 72 65 5f 66 69 6c 65 5f 77 69  ert_core_file_wi
b0c0: 6e 65 5f 74 6f 5f 77 33 32 5f 72 65 73 75 6c 74  ne_to_w32_result
b0d0: 22 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20  ".        else. 
b0e0: 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f 61 70           func_ap
b0f0: 70 65 6e 64 20 66 75 6e 63 5f 63 6f 6e 76 65 72  pend func_conver
b100: 74 5f 63 6f 72 65 5f 70 61 74 68 5f 77 69 6e 65  t_core_path_wine
b110: 5f 74 6f 5f 77 33 32 5f 72 65 73 75 6c 74 20 22  _to_w32_result "
b120: 3b 24 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63  ;$func_convert_c
b130: 6f 72 65 5f 66 69 6c 65 5f 77 69 6e 65 5f 74 6f  ore_file_wine_to
b140: 5f 77 33 32 5f 72 65 73 75 6c 74 22 0a 20 20 20  _w32_result".   
b150: 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 66 69       fi.      fi
b160: 0a 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 49 46  .    done.    IF
b170: 53 3d 24 6f 6c 64 49 46 53 0a 20 20 66 69 0a 7d  S=$oldIFS.  fi.}
b180: 0a 23 20 65 6e 64 3a 20 66 75 6e 63 5f 63 6f 6e  .# end: func_con
b190: 76 65 72 74 5f 63 6f 72 65 5f 70 61 74 68 5f 77  vert_core_path_w
b1a0: 69 6e 65 5f 74 6f 5f 77 33 32 0a 0a 0a 23 20 66  ine_to_w32...# f
b1b0: 75 6e 63 5f 63 79 67 70 61 74 68 20 41 52 47 53  unc_cygpath ARGS
b1c0: 2e 2e 2e 0a 23 20 57 72 61 70 70 65 72 20 61 72  ....# Wrapper ar
b1d0: 6f 75 6e 64 20 63 61 6c 6c 69 6e 67 20 74 68 65  ound calling the
b1e0: 20 63 79 67 70 61 74 68 20 70 72 6f 67 72 61 6d   cygpath program
b1f0: 20 76 69 61 20 4c 54 5f 43 59 47 50 41 54 48 2e   via LT_CYGPATH.
b200: 20 54 68 69 73 20 69 73 20 75 73 65 64 20 77 68   This is used wh
b210: 65 6e 0a 23 20 77 68 65 6e 20 28 31 29 20 24 62  en.# when (1) $b
b220: 75 69 6c 64 20 69 73 20 2a 6e 69 78 20 61 6e 64  uild is *nix and
b230: 20 43 79 67 77 69 6e 20 69 73 20 68 6f 73 74 65   Cygwin is hoste
b240: 64 20 76 69 61 20 61 20 77 69 6e 65 20 65 6e 76  d via a wine env
b250: 69 72 6f 6e 6d 65 6e 74 3b 20 6f 72 20 28 32 29  ironment; or (2)
b260: 0a 23 20 24 62 75 69 6c 64 20 69 73 20 4d 53 59  .# $build is MSY
b270: 53 20 61 6e 64 20 24 68 6f 73 74 20 69 73 20 43  S and $host is C
b280: 79 67 77 69 6e 2c 20 6f 72 20 28 33 29 20 24 62  ygwin, or (3) $b
b290: 75 69 6c 64 20 69 73 20 43 79 67 77 69 6e 2e 20  uild is Cygwin. 
b2a0: 49 6e 20 63 61 73 65 20 28 31 29 20 6f 72 0a 23  In case (1) or.#
b2b0: 20 28 32 29 2c 20 72 65 74 75 72 6e 73 20 74 68   (2), returns th
b2c0: 65 20 43 79 67 77 69 6e 20 66 69 6c 65 20 6e 61  e Cygwin file na
b2d0: 6d 65 20 6f 72 20 70 61 74 68 20 69 6e 20 66 75  me or path in fu
b2e0: 6e 63 5f 63 79 67 70 61 74 68 5f 72 65 73 75 6c  nc_cygpath_resul
b2f0: 74 20 28 69 6e 70 75 74 0a 23 20 66 69 6c 65 20  t (input.# file 
b300: 6e 61 6d 65 20 6f 72 20 70 61 74 68 20 69 73 20  name or path is 
b310: 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 69 6e  assumed to be in
b320: 20 77 33 32 20 66 6f 72 6d 61 74 2c 20 61 73 20   w32 format, as 
b330: 70 72 65 76 69 6f 75 73 6c 79 20 63 6f 6e 76 65  previously conve
b340: 72 74 65 64 0a 23 20 66 72 6f 6d 20 24 62 75 69  rted.# from $bui
b350: 6c 64 27 73 20 2a 6e 69 78 20 6f 72 20 4d 53 59  ld's *nix or MSY
b360: 53 20 66 6f 72 6d 61 74 29 2e 20 49 6e 20 63 61  S format). In ca
b370: 73 65 20 28 33 29 2c 20 72 65 74 75 72 6e 73 20  se (3), returns 
b380: 74 68 65 20 77 33 32 20 66 69 6c 65 20 6e 61 6d  the w32 file nam
b390: 65 0a 23 20 6f 72 20 70 61 74 68 20 69 6e 20 66  e.# or path in f
b3a0: 75 6e 63 5f 63 79 67 70 61 74 68 5f 72 65 73 75  unc_cygpath_resu
b3b0: 6c 74 20 28 69 6e 70 75 74 20 66 69 6c 65 20 6e  lt (input file n
b3c0: 61 6d 65 20 6f 72 20 70 61 74 68 20 69 73 20 61  ame or path is a
b3d0: 73 73 75 6d 65 64 20 74 6f 20 62 65 20 69 6e 0a  ssumed to be in.
b3e0: 23 20 43 79 67 77 69 6e 20 66 6f 72 6d 61 74 29  # Cygwin format)
b3f0: 2e 20 52 65 74 75 72 6e 73 20 61 6e 20 65 6d 70  . Returns an emp
b400: 74 79 20 73 74 72 69 6e 67 20 6f 6e 20 65 72 72  ty string on err
b410: 6f 72 2e 0a 23 0a 23 20 41 52 47 53 20 61 72 65  or..#.# ARGS are
b420: 20 70 61 73 73 65 64 20 74 6f 20 63 79 67 70 61   passed to cygpa
b430: 74 68 2c 20 77 69 74 68 20 74 68 65 20 6c 61 73  th, with the las
b440: 74 20 6f 6e 65 20 62 65 69 6e 67 20 74 68 65 20  t one being the 
b450: 66 69 6c 65 20 6e 61 6d 65 20 6f 72 20 70 61 74  file name or pat
b460: 68 20 74 6f 0a 23 20 62 65 20 63 6f 6e 76 65 72  h to.# be conver
b470: 74 65 64 2e 0a 23 0a 23 20 53 70 65 63 69 66 79  ted..#.# Specify
b480: 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 2a 6e   the absolute *n
b490: 69 78 20 28 6f 72 20 77 33 32 29 20 6e 61 6d 65  ix (or w32) name
b4a0: 20 74 6f 20 63 79 67 70 61 74 68 20 69 6e 20 74   to cygpath in t
b4b0: 68 65 20 4c 54 5f 43 59 47 50 41 54 48 0a 23 20  he LT_CYGPATH.# 
b4c0: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69  environment vari
b4d0: 61 62 6c 65 3b 20 64 6f 20 6e 6f 74 20 70 75 74  able; do not put
b4e0: 20 69 74 20 69 6e 20 24 50 41 54 48 2e 0a 66 75   it in $PATH..fu
b4f0: 6e 63 5f 63 79 67 70 61 74 68 20 28 29 0a 7b 0a  nc_cygpath ().{.
b500: 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20 20 69    $opt_debug.  i
b510: 66 20 74 65 73 74 20 2d 6e 20 22 24 4c 54 5f 43  f test -n "$LT_C
b520: 59 47 50 41 54 48 22 20 26 26 20 74 65 73 74 20  YGPATH" && test 
b530: 2d 66 20 22 24 4c 54 5f 43 59 47 50 41 54 48 22  -f "$LT_CYGPATH"
b540: 3b 20 74 68 65 6e 0a 20 20 20 20 66 75 6e 63 5f  ; then.    func_
b550: 63 79 67 70 61 74 68 5f 72 65 73 75 6c 74 3d 60  cygpath_result=`
b560: 24 4c 54 5f 43 59 47 50 41 54 48 20 22 24 40 22  $LT_CYGPATH "$@"
b570: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a 20 20   2>/dev/null`.  
b580: 20 20 69 66 20 74 65 73 74 20 22 24 3f 22 20 2d    if test "$?" -
b590: 6e 65 20 30 3b 20 74 68 65 6e 0a 20 20 20 20 20  ne 0; then.     
b5a0: 20 23 20 6f 6e 20 66 61 69 6c 75 72 65 2c 20 65   # on failure, e
b5b0: 6e 73 75 72 65 20 72 65 73 75 6c 74 20 69 73 20  nsure result is 
b5c0: 65 6d 70 74 79 0a 20 20 20 20 20 20 66 75 6e 63  empty.      func
b5d0: 5f 63 79 67 70 61 74 68 5f 72 65 73 75 6c 74 3d  _cygpath_result=
b5e0: 0a 20 20 20 20 66 69 0a 20 20 65 6c 73 65 0a 20  .    fi.  else. 
b5f0: 20 20 20 66 75 6e 63 5f 63 79 67 70 61 74 68 5f     func_cygpath_
b600: 72 65 73 75 6c 74 3d 0a 20 20 20 20 66 75 6e 63  result=.    func
b610: 5f 65 72 72 6f 72 20 22 4c 54 5f 43 59 47 50 41  _error "LT_CYGPA
b620: 54 48 20 69 73 20 65 6d 70 74 79 20 6f 72 20 73  TH is empty or s
b630: 70 65 63 69 66 69 65 73 20 6e 6f 6e 2d 65 78 69  pecifies non-exi
b640: 73 74 65 6e 74 20 66 69 6c 65 3a 20 5c 60 24 4c  stent file: \`$L
b650: 54 5f 43 59 47 50 41 54 48 27 22 0a 20 20 66 69  T_CYGPATH'".  fi
b660: 0a 7d 0a 23 65 6e 64 3a 20 66 75 6e 63 5f 63 79  .}.#end: func_cy
b670: 67 70 61 74 68 0a 0a 0a 23 20 66 75 6e 63 5f 63  gpath...# func_c
b680: 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 6d 73 79 73  onvert_core_msys
b690: 5f 74 6f 5f 77 33 32 20 41 52 47 0a 23 20 43 6f  _to_w32 ARG.# Co
b6a0: 6e 76 65 72 74 20 66 69 6c 65 20 6e 61 6d 65 20  nvert file name 
b6b0: 6f 72 20 70 61 74 68 20 41 52 47 20 66 72 6f 6d  or path ARG from
b6c0: 20 4d 53 59 53 20 66 6f 72 6d 61 74 20 74 6f 20   MSYS format to 
b6d0: 77 33 32 20 66 6f 72 6d 61 74 2e 20 20 52 65 74  w32 format.  Ret
b6e0: 75 72 6e 0a 23 20 72 65 73 75 6c 74 20 69 6e 20  urn.# result in 
b6f0: 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72  func_convert_cor
b700: 65 5f 6d 73 79 73 5f 74 6f 5f 77 33 32 5f 72 65  e_msys_to_w32_re
b710: 73 75 6c 74 2e 0a 66 75 6e 63 5f 63 6f 6e 76 65  sult..func_conve
b720: 72 74 5f 63 6f 72 65 5f 6d 73 79 73 5f 74 6f 5f  rt_core_msys_to_
b730: 77 33 32 20 28 29 0a 7b 0a 20 20 24 6f 70 74 5f  w32 ().{.  $opt_
b740: 64 65 62 75 67 0a 20 20 23 20 61 77 6b 77 61 72  debug.  # awkwar
b750: 64 3a 20 63 6d 64 20 61 70 70 65 6e 64 73 20 73  d: cmd appends s
b760: 70 61 63 65 73 20 74 6f 20 72 65 73 75 6c 74 0a  paces to result.
b770: 20 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63    func_convert_c
b780: 6f 72 65 5f 6d 73 79 73 5f 74 6f 5f 77 33 32 5f  ore_msys_to_w32_
b790: 72 65 73 75 6c 74 3d 60 28 20 63 6d 64 20 2f 2f  result=`( cmd //
b7a0: 63 20 65 63 68 6f 20 22 24 31 22 20 29 20 32 3e  c echo "$1" ) 2>
b7b0: 2f 64 65 76 2f 6e 75 6c 6c 20 7c 0a 20 20 20 20  /dev/null |.    
b7c0: 24 53 45 44 20 2d 65 20 27 73 2f 5b 20 5d 2a 24  $SED -e 's/[ ]*$
b7d0: 2f 2f 27 20 2d 65 20 22 24 6c 74 5f 73 65 64 5f  //' -e "$lt_sed_
b7e0: 6e 61 69 76 65 5f 62 61 63 6b 73 6c 61 73 68 69  naive_backslashi
b7f0: 66 79 22 60 0a 7d 0a 23 65 6e 64 3a 20 66 75 6e  fy"`.}.#end: fun
b800: 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 6d  c_convert_core_m
b810: 73 79 73 5f 74 6f 5f 77 33 32 0a 0a 0a 23 20 66  sys_to_w32...# f
b820: 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65  unc_convert_file
b830: 5f 63 68 65 63 6b 20 41 52 47 31 20 41 52 47 32  _check ARG1 ARG2
b840: 0a 23 20 56 65 72 69 66 79 20 74 68 61 74 20 41  .# Verify that A
b850: 52 47 31 20 28 61 20 66 69 6c 65 20 6e 61 6d 65  RG1 (a file name
b860: 20 69 6e 20 24 62 75 69 6c 64 20 66 6f 72 6d 61   in $build forma
b870: 74 29 20 77 61 73 20 63 6f 6e 76 65 72 74 65 64  t) was converted
b880: 20 74 6f 20 24 68 6f 73 74 0a 23 20 66 6f 72 6d   to $host.# form
b890: 61 74 20 69 6e 20 41 52 47 32 2e 20 4f 74 68 65  at in ARG2. Othe
b8a0: 72 77 69 73 65 2c 20 65 6d 69 74 20 61 6e 20 65  rwise, emit an e
b8b0: 72 72 6f 72 20 6d 65 73 73 61 67 65 2c 20 62 75  rror message, bu
b8c0: 74 20 63 6f 6e 74 69 6e 75 65 20 28 72 65 73 65  t continue (rese
b8d0: 74 74 69 6e 67 0a 23 20 66 75 6e 63 5f 74 6f 5f  tting.# func_to_
b8e0: 68 6f 73 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74  host_file_result
b8f0: 20 74 6f 20 41 52 47 31 29 2e 0a 66 75 6e 63 5f   to ARG1)..func_
b900: 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 63 68 65  convert_file_che
b910: 63 6b 20 28 29 0a 7b 0a 20 20 24 6f 70 74 5f 64  ck ().{.  $opt_d
b920: 65 62 75 67 0a 20 20 69 66 20 74 65 73 74 20 2d  ebug.  if test -
b930: 7a 20 22 24 32 22 20 26 26 20 74 65 73 74 20 2d  z "$2" && test -
b940: 6e 20 22 24 31 22 20 3b 20 74 68 65 6e 0a 20 20  n "$1" ; then.  
b950: 20 20 66 75 6e 63 5f 65 72 72 6f 72 20 22 43 6f    func_error "Co
b960: 75 6c 64 20 6e 6f 74 20 64 65 74 65 72 6d 69 6e  uld not determin
b970: 65 20 68 6f 73 74 20 66 69 6c 65 20 6e 61 6d 65  e host file name
b980: 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74   corresponding t
b990: 6f 22 0a 20 20 20 20 66 75 6e 63 5f 65 72 72 6f  o".    func_erro
b9a0: 72 20 22 20 20 5c 60 24 31 27 22 0a 20 20 20 20  r "  \`$1'".    
b9b0: 66 75 6e 63 5f 65 72 72 6f 72 20 22 43 6f 6e 74  func_error "Cont
b9c0: 69 6e 75 69 6e 67 2c 20 62 75 74 20 75 6e 69 6e  inuing, but unin
b9d0: 73 74 61 6c 6c 65 64 20 65 78 65 63 75 74 61 62  stalled executab
b9e0: 6c 65 73 20 6d 61 79 20 6e 6f 74 20 77 6f 72 6b  les may not work
b9f0: 2e 22 0a 20 20 20 20 23 20 46 61 6c 6c 62 61 63  .".    # Fallbac
ba00: 6b 3a 0a 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68  k:.    func_to_h
ba10: 6f 73 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74 3d  ost_file_result=
ba20: 22 24 31 22 0a 20 20 66 69 0a 7d 0a 23 20 65 6e  "$1".  fi.}.# en
ba30: 64 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66  d func_convert_f
ba40: 69 6c 65 5f 63 68 65 63 6b 0a 0a 0a 23 20 66 75  ile_check...# fu
ba50: 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f  nc_convert_path_
ba60: 63 68 65 63 6b 20 46 52 4f 4d 5f 50 41 54 48 53  check FROM_PATHS
ba70: 45 50 20 54 4f 5f 50 41 54 48 53 45 50 20 46 52  EP TO_PATHSEP FR
ba80: 4f 4d 5f 50 41 54 48 20 54 4f 5f 50 41 54 48 0a  OM_PATH TO_PATH.
ba90: 23 20 56 65 72 69 66 79 20 74 68 61 74 20 46 52  # Verify that FR
baa0: 4f 4d 5f 50 41 54 48 20 28 61 20 70 61 74 68 20  OM_PATH (a path 
bab0: 69 6e 20 24 62 75 69 6c 64 20 66 6f 72 6d 61 74  in $build format
bac0: 29 20 77 61 73 20 63 6f 6e 76 65 72 74 65 64 20  ) was converted 
bad0: 74 6f 20 24 68 6f 73 74 0a 23 20 66 6f 72 6d 61  to $host.# forma
bae0: 74 20 69 6e 20 54 4f 5f 50 41 54 48 2e 20 4f 74  t in TO_PATH. Ot
baf0: 68 65 72 77 69 73 65 2c 20 65 6d 69 74 20 61 6e  herwise, emit an
bb00: 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 2c 20   error message, 
bb10: 62 75 74 20 63 6f 6e 74 69 6e 75 65 2c 20 72 65  but continue, re
bb20: 73 65 74 74 69 6e 67 0a 23 20 66 75 6e 63 5f 74  setting.# func_t
bb30: 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65 73 75  o_host_file_resu
bb40: 6c 74 20 74 6f 20 61 20 73 69 6d 70 6c 69 73 74  lt to a simplist
bb50: 69 63 20 66 61 6c 6c 62 61 63 6b 20 76 61 6c 75  ic fallback valu
bb60: 65 20 28 73 65 65 20 62 65 6c 6f 77 29 2e 0a 66  e (see below)..f
bb70: 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68  unc_convert_path
bb80: 5f 63 68 65 63 6b 20 28 29 0a 7b 0a 20 20 24 6f  _check ().{.  $o
bb90: 70 74 5f 64 65 62 75 67 0a 20 20 69 66 20 74 65  pt_debug.  if te
bba0: 73 74 20 2d 7a 20 22 24 34 22 20 26 26 20 74 65  st -z "$4" && te
bbb0: 73 74 20 2d 6e 20 22 24 33 22 3b 20 74 68 65 6e  st -n "$3"; then
bbc0: 0a 20 20 20 20 66 75 6e 63 5f 65 72 72 6f 72 20  .    func_error 
bbd0: 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 74 65 72  "Could not deter
bbe0: 6d 69 6e 65 20 74 68 65 20 68 6f 73 74 20 70 61  mine the host pa
bbf0: 74 68 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  th corresponding
bc00: 20 74 6f 22 0a 20 20 20 20 66 75 6e 63 5f 65 72   to".    func_er
bc10: 72 6f 72 20 22 20 20 5c 60 24 33 27 22 0a 20 20  ror "  \`$3'".  
bc20: 20 20 66 75 6e 63 5f 65 72 72 6f 72 20 22 43 6f    func_error "Co
bc30: 6e 74 69 6e 75 69 6e 67 2c 20 62 75 74 20 75 6e  ntinuing, but un
bc40: 69 6e 73 74 61 6c 6c 65 64 20 65 78 65 63 75 74  installed execut
bc50: 61 62 6c 65 73 20 6d 61 79 20 6e 6f 74 20 77 6f  ables may not wo
bc60: 72 6b 2e 22 0a 20 20 20 20 23 20 46 61 6c 6c 62  rk.".    # Fallb
bc70: 61 63 6b 2e 20 20 54 68 69 73 20 69 73 20 61 20  ack.  This is a 
bc80: 64 65 6c 69 62 65 72 61 74 65 6c 79 20 73 69 6d  deliberately sim
bc90: 70 6c 69 73 74 69 63 20 22 63 6f 6e 76 65 72 73  plistic "convers
bca0: 69 6f 6e 22 20 61 6e 64 0a 20 20 20 20 23 20 73  ion" and.    # s
bcb0: 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 22 69 6d  hould not be "im
bcc0: 70 72 6f 76 65 64 22 2e 20 20 53 65 65 20 6c 69  proved".  See li
bcd0: 62 74 6f 6f 6c 2e 69 6e 66 6f 2e 0a 20 20 20 20  btool.info..    
bce0: 69 66 20 74 65 73 74 20 22 78 24 31 22 20 21 3d  if test "x$1" !=
bcf0: 20 22 78 24 32 22 3b 20 74 68 65 6e 0a 20 20 20   "x$2"; then.   
bd00: 20 20 20 6c 74 5f 72 65 70 6c 61 63 65 5f 70 61     lt_replace_pa
bd10: 74 68 73 65 70 5f 63 68 61 72 73 3d 22 73 7c 24  thsep_chars="s|$
bd20: 31 7c 24 32 7c 67 22 0a 20 20 20 20 20 20 66 75  1|$2|g".      fu
bd30: 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f  nc_to_host_path_
bd40: 72 65 73 75 6c 74 3d 60 65 63 68 6f 20 22 24 33  result=`echo "$3
bd50: 22 20 7c 0a 20 20 20 20 20 20 20 20 24 53 45 44  " |.        $SED
bd60: 20 2d 65 20 22 24 6c 74 5f 72 65 70 6c 61 63 65   -e "$lt_replace
bd70: 5f 70 61 74 68 73 65 70 5f 63 68 61 72 73 22 60  _pathsep_chars"`
bd80: 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20  .    else.      
bd90: 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74  func_to_host_pat
bda0: 68 5f 72 65 73 75 6c 74 3d 22 24 33 22 0a 20 20  h_result="$3".  
bdb0: 20 20 66 69 0a 20 20 66 69 0a 7d 0a 23 20 65 6e    fi.  fi.}.# en
bdc0: 64 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70  d func_convert_p
bdd0: 61 74 68 5f 63 68 65 63 6b 0a 0a 0a 23 20 66 75  ath_check...# fu
bde0: 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f  nc_convert_path_
bdf0: 66 72 6f 6e 74 5f 62 61 63 6b 5f 70 61 74 68 73  front_back_paths
be00: 65 70 20 46 52 4f 4e 54 50 41 54 20 42 41 43 4b  ep FRONTPAT BACK
be10: 50 41 54 20 52 45 50 4c 20 4f 52 49 47 0a 23 20  PAT REPL ORIG.# 
be20: 4d 6f 64 69 66 69 65 73 20 66 75 6e 63 5f 74 6f  Modifies func_to
be30: 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c  _host_path_resul
be40: 74 20 62 79 20 70 72 65 70 65 6e 64 69 6e 67 20  t by prepending 
be50: 52 45 50 4c 20 69 66 20 4f 52 49 47 20 6d 61 74  REPL if ORIG mat
be60: 63 68 65 73 20 46 52 4f 4e 54 50 41 54 0a 23 20  ches FRONTPAT.# 
be70: 61 6e 64 20 61 70 70 65 6e 64 69 6e 67 20 52 45  and appending RE
be80: 50 4c 20 69 66 20 4f 52 49 47 20 6d 61 74 63 68  PL if ORIG match
be90: 65 73 20 42 41 43 4b 50 41 54 2e 0a 66 75 6e 63  es BACKPAT..func
bea0: 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 66 72  _convert_path_fr
beb0: 6f 6e 74 5f 62 61 63 6b 5f 70 61 74 68 73 65 70  ont_back_pathsep
bec0: 20 28 29 0a 7b 0a 20 20 24 6f 70 74 5f 64 65 62   ().{.  $opt_deb
bed0: 75 67 0a 20 20 63 61 73 65 20 24 34 20 69 6e 0a  ug.  case $4 in.
bee0: 20 20 24 31 20 29 20 66 75 6e 63 5f 74 6f 5f 68    $1 ) func_to_h
bef0: 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d  ost_path_result=
bf00: 22 24 33 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  "$3$func_to_host
bf10: 5f 70 61 74 68 5f 72 65 73 75 6c 74 22 0a 20 20  _path_result".  
bf20: 20 20 3b 3b 0a 20 20 65 73 61 63 0a 20 20 63 61    ;;.  esac.  ca
bf30: 73 65 20 24 34 20 69 6e 0a 20 20 24 32 20 29 20  se $4 in.  $2 ) 
bf40: 66 75 6e 63 5f 61 70 70 65 6e 64 20 66 75 6e 63  func_append func
bf50: 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65  _to_host_path_re
bf60: 73 75 6c 74 20 22 24 33 22 0a 20 20 20 20 3b 3b  sult "$3".    ;;
bf70: 0a 20 20 65 73 61 63 0a 7d 0a 23 20 65 6e 64 20  .  esac.}.# end 
bf80: 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74  func_convert_pat
bf90: 68 5f 66 72 6f 6e 74 5f 62 61 63 6b 5f 70 61 74  h_front_back_pat
bfa0: 68 73 65 70 0a 0a 0a 23 23 23 23 23 23 23 23 23  hsep...#########
bfb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
bfc0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
bfd0: 23 23 23 23 23 23 23 23 23 0a 23 20 24 62 75 69  #########.# $bui
bfe0: 6c 64 20 74 6f 20 24 68 6f 73 74 20 46 49 4c 45  ld to $host FILE
bff0: 20 4e 41 4d 45 20 43 4f 4e 56 45 52 53 49 4f 4e   NAME CONVERSION
c000: 20 46 55 4e 43 54 49 4f 4e 53 20 23 0a 23 23 23   FUNCTIONS #.###
c010: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
c020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
c030: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  ###############.
c040: 23 20 69 6e 76 6f 6b 65 64 20 76 69 61 20 60 24  # invoked via `$
c050: 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 63 6d 64  to_host_file_cmd
c060: 20 41 52 47 27 0a 23 0a 23 20 49 6e 20 65 61 63   ARG'.#.# In eac
c070: 68 20 63 61 73 65 2c 20 41 52 47 20 69 73 20 74  h case, ARG is t
c080: 68 65 20 70 61 74 68 20 74 6f 20 62 65 20 63 6f  he path to be co
c090: 6e 76 65 72 74 65 64 20 66 72 6f 6d 20 24 62 75  nverted from $bu
c0a0: 69 6c 64 20 74 6f 20 24 68 6f 73 74 20 66 6f 72  ild to $host for
c0b0: 6d 61 74 2e 0a 23 20 52 65 73 75 6c 74 20 77 69  mat..# Result wi
c0c0: 6c 6c 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20  ll be available 
c0d0: 69 6e 20 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  in $func_to_host
c0e0: 5f 66 69 6c 65 5f 72 65 73 75 6c 74 2e 0a 0a 0a  _file_result....
c0f0: 23 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66  # func_to_host_f
c100: 69 6c 65 20 41 52 47 0a 23 20 43 6f 6e 76 65 72  ile ARG.# Conver
c110: 74 73 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65  ts the file name
c120: 20 41 52 47 20 66 72 6f 6d 20 24 62 75 69 6c 64   ARG from $build
c130: 20 66 6f 72 6d 61 74 20 74 6f 20 24 68 6f 73 74   format to $host
c140: 20 66 6f 72 6d 61 74 2e 20 52 65 74 75 72 6e 20   format. Return 
c150: 72 65 73 75 6c 74 0a 23 20 69 6e 20 66 75 6e 63  result.# in func
c160: 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65  _to_host_file_re
c170: 73 75 6c 74 2e 0a 66 75 6e 63 5f 74 6f 5f 68 6f  sult..func_to_ho
c180: 73 74 5f 66 69 6c 65 20 28 29 0a 7b 0a 20 20 24  st_file ().{.  $
c190: 6f 70 74 5f 64 65 62 75 67 0a 20 20 24 74 6f 5f  opt_debug.  $to_
c1a0: 68 6f 73 74 5f 66 69 6c 65 5f 63 6d 64 20 22 24  host_file_cmd "$
c1b0: 31 22 0a 7d 0a 23 20 65 6e 64 20 66 75 6e 63 5f  1".}.# end func_
c1c0: 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 0a 0a 0a 23  to_host_file...#
c1d0: 20 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69   func_to_tool_fi
c1e0: 6c 65 20 41 52 47 20 4c 41 5a 59 0a 23 20 63 6f  le ARG LAZY.# co
c1f0: 6e 76 65 72 74 73 20 74 68 65 20 66 69 6c 65 20  nverts the file 
c200: 6e 61 6d 65 20 41 52 47 20 66 72 6f 6d 20 24 62  name ARG from $b
c210: 75 69 6c 64 20 66 6f 72 6d 61 74 20 74 6f 20 74  uild format to t
c220: 6f 6f 6c 63 68 61 69 6e 20 66 6f 72 6d 61 74 2e  oolchain format.
c230: 20 52 65 74 75 72 6e 0a 23 20 72 65 73 75 6c 74   Return.# result
c240: 20 69 6e 20 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c   in func_to_tool
c250: 5f 66 69 6c 65 5f 72 65 73 75 6c 74 2e 20 20 49  _file_result.  I
c260: 66 20 74 68 65 20 63 6f 6e 76 65 72 73 69 6f 6e  f the conversion
c270: 20 69 6e 20 75 73 65 20 69 73 20 6c 69 73 74 65   in use is liste
c280: 64 0a 23 20 69 6e 20 28 74 68 65 20 63 6f 6d 6d  d.# in (the comm
c290: 61 20 73 65 70 61 72 61 74 65 64 29 20 4c 41 5a  a separated) LAZ
c2a0: 59 2c 20 6e 6f 20 63 6f 6e 76 65 72 73 69 6f 6e  Y, no conversion
c2b0: 20 74 61 6b 65 73 20 70 6c 61 63 65 2e 0a 66 75   takes place..fu
c2c0: 6e 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 20  nc_to_tool_file 
c2d0: 28 29 0a 7b 0a 20 20 24 6f 70 74 5f 64 65 62 75  ().{.  $opt_debu
c2e0: 67 0a 20 20 63 61 73 65 20 2c 24 32 2c 20 69 6e  g.  case ,$2, in
c2f0: 0a 20 20 20 20 2a 2c 22 24 74 6f 5f 74 6f 6f 6c  .    *,"$to_tool
c300: 5f 66 69 6c 65 5f 63 6d 64 22 2c 2a 29 0a 20 20  _file_cmd",*).  
c310: 20 20 20 20 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c      func_to_tool
c320: 5f 66 69 6c 65 5f 72 65 73 75 6c 74 3d 24 31 0a  _file_result=$1.
c330: 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 2a 29 0a        ;;.    *).
c340: 20 20 20 20 20 20 24 74 6f 5f 74 6f 6f 6c 5f 66        $to_tool_f
c350: 69 6c 65 5f 63 6d 64 20 22 24 31 22 0a 20 20 20  ile_cmd "$1".   
c360: 20 20 20 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c 5f     func_to_tool_
c370: 66 69 6c 65 5f 72 65 73 75 6c 74 3d 24 66 75 6e  file_result=$fun
c380: 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72  c_to_host_file_r
c390: 65 73 75 6c 74 0a 20 20 20 20 20 20 3b 3b 0a 20  esult.      ;;. 
c3a0: 20 65 73 61 63 0a 7d 0a 23 20 65 6e 64 20 66 75   esac.}.# end fu
c3b0: 6e 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 0a  nc_to_tool_file.
c3c0: 0a 0a 23 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74  ..# func_convert
c3d0: 5f 66 69 6c 65 5f 6e 6f 6f 70 20 41 52 47 0a 23  _file_noop ARG.#
c3e0: 20 43 6f 70 79 20 41 52 47 20 74 6f 20 66 75 6e   Copy ARG to fun
c3f0: 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72  c_to_host_file_r
c400: 65 73 75 6c 74 2e 0a 66 75 6e 63 5f 63 6f 6e 76  esult..func_conv
c410: 65 72 74 5f 66 69 6c 65 5f 6e 6f 6f 70 20 28 29  ert_file_noop ()
c420: 0a 7b 0a 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73  .{.  func_to_hos
c430: 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74 3d 22 24  t_file_result="$
c440: 31 22 0a 7d 0a 23 20 65 6e 64 20 66 75 6e 63 5f  1".}.# end func_
c450: 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 6e 6f 6f  convert_file_noo
c460: 70 0a 0a 0a 23 20 66 75 6e 63 5f 63 6f 6e 76 65  p...# func_conve
c470: 72 74 5f 66 69 6c 65 5f 6d 73 79 73 5f 74 6f 5f  rt_file_msys_to_
c480: 77 33 32 20 41 52 47 0a 23 20 43 6f 6e 76 65 72  w32 ARG.# Conver
c490: 74 20 66 69 6c 65 20 6e 61 6d 65 20 41 52 47 20  t file name ARG 
c4a0: 66 72 6f 6d 20 28 6d 69 6e 67 77 29 20 4d 53 59  from (mingw) MSY
c4b0: 53 20 74 6f 20 28 6d 69 6e 67 77 29 20 77 33 32  S to (mingw) w32
c4c0: 20 66 6f 72 6d 61 74 3b 20 61 75 74 6f 6d 61 74   format; automat
c4d0: 69 63 0a 23 20 63 6f 6e 76 65 72 73 69 6f 6e 20  ic.# conversion 
c4e0: 74 6f 20 77 33 32 20 69 73 20 6e 6f 74 20 61 76  to w32 is not av
c4f0: 61 69 6c 61 62 6c 65 20 69 6e 73 69 64 65 20 74  ailable inside t
c500: 68 65 20 63 77 72 61 70 70 65 72 2e 20 20 52 65  he cwrapper.  Re
c510: 74 75 72 6e 73 20 72 65 73 75 6c 74 20 69 6e 0a  turns result in.
c520: 23 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66  # func_to_host_f
c530: 69 6c 65 5f 72 65 73 75 6c 74 2e 0a 66 75 6e 63  ile_result..func
c540: 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 6d 73  _convert_file_ms
c550: 79 73 5f 74 6f 5f 77 33 32 20 28 29 0a 7b 0a 20  ys_to_w32 ().{. 
c560: 20 24 6f 70 74 5f 64 65 62 75 67 0a 20 20 66 75   $opt_debug.  fu
c570: 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f  nc_to_host_file_
c580: 72 65 73 75 6c 74 3d 22 24 31 22 0a 20 20 69 66  result="$1".  if
c590: 20 74 65 73 74 20 2d 6e 20 22 24 31 22 3b 20 74   test -n "$1"; t
c5a0: 68 65 6e 0a 20 20 20 20 66 75 6e 63 5f 63 6f 6e  hen.    func_con
c5b0: 76 65 72 74 5f 63 6f 72 65 5f 6d 73 79 73 5f 74  vert_core_msys_t
c5c0: 6f 5f 77 33 32 20 22 24 31 22 0a 20 20 20 20 66  o_w32 "$1".    f
c5d0: 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65  unc_to_host_file
c5e0: 5f 72 65 73 75 6c 74 3d 22 24 66 75 6e 63 5f 63  _result="$func_c
c5f0: 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 6d 73 79 73  onvert_core_msys
c600: 5f 74 6f 5f 77 33 32 5f 72 65 73 75 6c 74 22 0a  _to_w32_result".
c610: 20 20 66 69 0a 20 20 66 75 6e 63 5f 63 6f 6e 76    fi.  func_conv
c620: 65 72 74 5f 66 69 6c 65 5f 63 68 65 63 6b 20 22  ert_file_check "
c630: 24 31 22 20 22 24 66 75 6e 63 5f 74 6f 5f 68 6f  $1" "$func_to_ho
c640: 73 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74 22 0a  st_file_result".
c650: 7d 0a 23 20 65 6e 64 20 66 75 6e 63 5f 63 6f 6e  }.# end func_con
c660: 76 65 72 74 5f 66 69 6c 65 5f 6d 73 79 73 5f 74  vert_file_msys_t
c670: 6f 5f 77 33 32 0a 0a 0a 23 20 66 75 6e 63 5f 63  o_w32...# func_c
c680: 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 63 79 67 77  onvert_file_cygw
c690: 69 6e 5f 74 6f 5f 77 33 32 20 41 52 47 0a 23 20  in_to_w32 ARG.# 
c6a0: 43 6f 6e 76 65 72 74 20 66 69 6c 65 20 6e 61 6d  Convert file nam
c6b0: 65 20 41 52 47 20 66 72 6f 6d 20 43 79 67 77 69  e ARG from Cygwi
c6c0: 6e 20 74 6f 20 77 33 32 20 66 6f 72 6d 61 74 2e  n to w32 format.
c6d0: 20 20 52 65 74 75 72 6e 73 20 72 65 73 75 6c 74    Returns result
c6e0: 20 69 6e 0a 23 20 66 75 6e 63 5f 74 6f 5f 68 6f   in.# func_to_ho
c6f0: 73 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74 2e 0a  st_file_result..
c700: 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c  func_convert_fil
c710: 65 5f 63 79 67 77 69 6e 5f 74 6f 5f 77 33 32 20  e_cygwin_to_w32 
c720: 28 29 0a 7b 0a 20 20 24 6f 70 74 5f 64 65 62 75  ().{.  $opt_debu
c730: 67 0a 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  g.  func_to_host
c740: 5f 66 69 6c 65 5f 72 65 73 75 6c 74 3d 22 24 31  _file_result="$1
c750: 22 0a 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22  ".  if test -n "
c760: 24 31 22 3b 20 74 68 65 6e 0a 20 20 20 20 23 20  $1"; then.    # 
c770: 62 65 63 61 75 73 65 20 24 62 75 69 6c 64 20 69  because $build i
c780: 73 20 63 79 67 77 69 6e 2c 20 77 65 20 63 61 6c  s cygwin, we cal
c790: 6c 20 22 74 68 65 22 20 63 79 67 70 61 74 68 20  l "the" cygpath 
c7a0: 69 6e 20 24 50 41 54 48 3b 20 6e 6f 20 6e 65 65  in $PATH; no nee
c7b0: 64 20 74 6f 20 75 73 65 0a 20 20 20 20 23 20 4c  d to use.    # L
c7c0: 54 5f 43 59 47 50 41 54 48 20 69 6e 20 74 68 69  T_CYGPATH in thi
c7d0: 73 20 63 61 73 65 2e 0a 20 20 20 20 66 75 6e 63  s case..    func
c7e0: 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65  _to_host_file_re
c7f0: 73 75 6c 74 3d 60 63 79 67 70 61 74 68 20 2d 6d  sult=`cygpath -m
c800: 20 22 24 31 22 60 0a 20 20 66 69 0a 20 20 66 75   "$1"`.  fi.  fu
c810: 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f  nc_convert_file_
c820: 63 68 65 63 6b 20 22 24 31 22 20 22 24 66 75 6e  check "$1" "$fun
c830: 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72  c_to_host_file_r
c840: 65 73 75 6c 74 22 0a 7d 0a 23 20 65 6e 64 20 66  esult".}.# end f
c850: 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65  unc_convert_file
c860: 5f 63 79 67 77 69 6e 5f 74 6f 5f 77 33 32 0a 0a  _cygwin_to_w32..
c870: 0a 23 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f  .# func_convert_
c880: 66 69 6c 65 5f 6e 69 78 5f 74 6f 5f 77 33 32 20  file_nix_to_w32 
c890: 41 52 47 0a 23 20 43 6f 6e 76 65 72 74 20 66 69  ARG.# Convert fi
c8a0: 6c 65 20 6e 61 6d 65 20 41 52 47 20 66 72 6f 6d  le name ARG from
c8b0: 20 2a 6e 69 78 20 74 6f 20 77 33 32 20 66 6f 72   *nix to w32 for
c8c0: 6d 61 74 2e 20 20 52 65 71 75 69 72 65 73 20 61  mat.  Requires a
c8d0: 20 77 69 6e 65 20 65 6e 76 69 72 6f 6e 6d 65 6e   wine environmen
c8e0: 74 0a 23 20 61 6e 64 20 61 20 77 6f 72 6b 69 6e  t.# and a workin
c8f0: 67 20 77 69 6e 65 70 61 74 68 2e 20 52 65 74 75  g winepath. Retu
c900: 72 6e 73 20 72 65 73 75 6c 74 20 69 6e 20 66 75  rns result in fu
c910: 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f  nc_to_host_file_
c920: 72 65 73 75 6c 74 2e 0a 66 75 6e 63 5f 63 6f 6e  result..func_con
c930: 76 65 72 74 5f 66 69 6c 65 5f 6e 69 78 5f 74 6f  vert_file_nix_to
c940: 5f 77 33 32 20 28 29 0a 7b 0a 20 20 24 6f 70 74  _w32 ().{.  $opt
c950: 5f 64 65 62 75 67 0a 20 20 66 75 6e 63 5f 74 6f  _debug.  func_to
c960: 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65 73 75 6c  _host_file_resul
c970: 74 3d 22 24 31 22 0a 20 20 69 66 20 74 65 73 74  t="$1".  if test
c980: 20 2d 6e 20 22 24 31 22 3b 20 74 68 65 6e 0a 20   -n "$1"; then. 
c990: 20 20 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f     func_convert_
c9a0: 63 6f 72 65 5f 66 69 6c 65 5f 77 69 6e 65 5f 74  core_file_wine_t
c9b0: 6f 5f 77 33 32 20 22 24 31 22 0a 20 20 20 20 66  o_w32 "$1".    f
c9c0: 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c 65  unc_to_host_file
c9d0: 5f 72 65 73 75 6c 74 3d 22 24 66 75 6e 63 5f 63  _result="$func_c
c9e0: 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66 69 6c 65  onvert_core_file
c9f0: 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 5f 72 65 73  _wine_to_w32_res
ca00: 75 6c 74 22 0a 20 20 66 69 0a 20 20 66 75 6e 63  ult".  fi.  func
ca10: 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 63 68  _convert_file_ch
ca20: 65 63 6b 20 22 24 31 22 20 22 24 66 75 6e 63 5f  eck "$1" "$func_
ca30: 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65 73  to_host_file_res
ca40: 75 6c 74 22 0a 7d 0a 23 20 65 6e 64 20 66 75 6e  ult".}.# end fun
ca50: 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 6e  c_convert_file_n
ca60: 69 78 5f 74 6f 5f 77 33 32 0a 0a 0a 23 20 66 75  ix_to_w32...# fu
ca70: 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f  nc_convert_file_
ca80: 6d 73 79 73 5f 74 6f 5f 63 79 67 77 69 6e 20 41  msys_to_cygwin A
ca90: 52 47 0a 23 20 43 6f 6e 76 65 72 74 20 66 69 6c  RG.# Convert fil
caa0: 65 20 6e 61 6d 65 20 41 52 47 20 66 72 6f 6d 20  e name ARG from 
cab0: 4d 53 59 53 20 74 6f 20 43 79 67 77 69 6e 20 66  MSYS to Cygwin f
cac0: 6f 72 6d 61 74 2e 20 20 52 65 71 75 69 72 65 73  ormat.  Requires
cad0: 20 4c 54 5f 43 59 47 50 41 54 48 20 73 65 74 2e   LT_CYGPATH set.
cae0: 0a 23 20 52 65 74 75 72 6e 73 20 72 65 73 75 6c  .# Returns resul
caf0: 74 20 69 6e 20 66 75 6e 63 5f 74 6f 5f 68 6f 73  t in func_to_hos
cb00: 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74 2e 0a 66  t_file_result..f
cb10: 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65  unc_convert_file
cb20: 5f 6d 73 79 73 5f 74 6f 5f 63 79 67 77 69 6e 20  _msys_to_cygwin 
cb30: 28 29 0a 7b 0a 20 20 24 6f 70 74 5f 64 65 62 75  ().{.  $opt_debu
cb40: 67 0a 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  g.  func_to_host
cb50: 5f 66 69 6c 65 5f 72 65 73 75 6c 74 3d 22 24 31  _file_result="$1
cb60: 22 0a 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22  ".  if test -n "
cb70: 24 31 22 3b 20 74 68 65 6e 0a 20 20 20 20 66 75  $1"; then.    fu
cb80: 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f  nc_convert_core_
cb90: 6d 73 79 73 5f 74 6f 5f 77 33 32 20 22 24 31 22  msys_to_w32 "$1"
cba0: 0a 20 20 20 20 66 75 6e 63 5f 63 79 67 70 61 74  .    func_cygpat
cbb0: 68 20 2d 75 20 22 24 66 75 6e 63 5f 63 6f 6e 76  h -u "$func_conv
cbc0: 65 72 74 5f 63 6f 72 65 5f 6d 73 79 73 5f 74 6f  ert_core_msys_to
cbd0: 5f 77 33 32 5f 72 65 73 75 6c 74 22 0a 20 20 20  _w32_result".   
cbe0: 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69   func_to_host_fi
cbf0: 6c 65 5f 72 65 73 75 6c 74 3d 22 24 66 75 6e 63  le_result="$func
cc00: 5f 63 79 67 70 61 74 68 5f 72 65 73 75 6c 74 22  _cygpath_result"
cc10: 0a 20 20 66 69 0a 20 20 66 75 6e 63 5f 63 6f 6e  .  fi.  func_con
cc20: 76 65 72 74 5f 66 69 6c 65 5f 63 68 65 63 6b 20  vert_file_check 
cc30: 22 24 31 22 20 22 24 66 75 6e 63 5f 74 6f 5f 68  "$1" "$func_to_h
cc40: 6f 73 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74 22  ost_file_result"
cc50: 0a 7d 0a 23 20 65 6e 64 20 66 75 6e 63 5f 63 6f  .}.# end func_co
cc60: 6e 76 65 72 74 5f 66 69 6c 65 5f 6d 73 79 73 5f  nvert_file_msys_
cc70: 74 6f 5f 63 79 67 77 69 6e 0a 0a 0a 23 20 66 75  to_cygwin...# fu
cc80: 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f  nc_convert_file_
cc90: 6e 69 78 5f 74 6f 5f 63 79 67 77 69 6e 20 41 52  nix_to_cygwin AR
cca0: 47 0a 23 20 43 6f 6e 76 65 72 74 20 66 69 6c 65  G.# Convert file
ccb0: 20 6e 61 6d 65 20 41 52 47 20 66 72 6f 6d 20 2a   name ARG from *
ccc0: 6e 69 78 20 74 6f 20 43 79 67 77 69 6e 20 66 6f  nix to Cygwin fo
ccd0: 72 6d 61 74 2e 20 20 52 65 71 75 69 72 65 73 20  rmat.  Requires 
cce0: 43 79 67 77 69 6e 20 69 6e 73 74 61 6c 6c 65 64  Cygwin installed
ccf0: 0a 23 20 69 6e 20 61 20 77 69 6e 65 20 65 6e 76  .# in a wine env
cd00: 69 72 6f 6e 6d 65 6e 74 2c 20 77 6f 72 6b 69 6e  ironment, workin
cd10: 67 20 77 69 6e 65 70 61 74 68 2c 20 61 6e 64 20  g winepath, and 
cd20: 4c 54 5f 43 59 47 50 41 54 48 20 73 65 74 2e 20  LT_CYGPATH set. 
cd30: 20 52 65 74 75 72 6e 73 20 72 65 73 75 6c 74 0a   Returns result.
cd40: 23 20 69 6e 20 66 75 6e 63 5f 74 6f 5f 68 6f 73  # in func_to_hos
cd50: 74 5f 66 69 6c 65 5f 72 65 73 75 6c 74 2e 0a 66  t_file_result..f
cd60: 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65  unc_convert_file
cd70: 5f 6e 69 78 5f 74 6f 5f 63 79 67 77 69 6e 20 28  _nix_to_cygwin (
cd80: 29 0a 7b 0a 20 20 24 6f 70 74 5f 64 65 62 75 67  ).{.  $opt_debug
cd90: 0a 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f  .  func_to_host_
cda0: 66 69 6c 65 5f 72 65 73 75 6c 74 3d 22 24 31 22  file_result="$1"
cdb0: 0a 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24  .  if test -n "$
cdc0: 31 22 3b 20 74 68 65 6e 0a 20 20 20 20 23 20 63  1"; then.    # c
cdd0: 6f 6e 76 65 72 74 20 66 72 6f 6d 20 2a 6e 69 78  onvert from *nix
cde0: 20 74 6f 20 77 33 32 2c 20 74 68 65 6e 20 75 73   to w32, then us
cdf0: 65 20 63 79 67 70 61 74 68 20 74 6f 20 63 6f 6e  e cygpath to con
ce00: 76 65 72 74 20 66 72 6f 6d 20 77 33 32 20 74 6f  vert from w32 to
ce10: 20 63 79 67 77 69 6e 2e 0a 20 20 20 20 66 75 6e   cygwin..    fun
ce20: 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66  c_convert_core_f
ce30: 69 6c 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 20  ile_wine_to_w32 
ce40: 22 24 31 22 0a 20 20 20 20 66 75 6e 63 5f 63 79  "$1".    func_cy
ce50: 67 70 61 74 68 20 2d 75 20 22 24 66 75 6e 63 5f  gpath -u "$func_
ce60: 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 66 69 6c  convert_core_fil
ce70: 65 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 5f 72 65  e_wine_to_w32_re
ce80: 73 75 6c 74 22 0a 20 20 20 20 66 75 6e 63 5f 74  sult".    func_t
ce90: 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65 73 75  o_host_file_resu
cea0: 6c 74 3d 22 24 66 75 6e 63 5f 63 79 67 70 61 74  lt="$func_cygpat
ceb0: 68 5f 72 65 73 75 6c 74 22 0a 20 20 66 69 0a 20  h_result".  fi. 
cec0: 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66 69   func_convert_fi
ced0: 6c 65 5f 63 68 65 63 6b 20 22 24 31 22 20 22 24  le_check "$1" "$
cee0: 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c  func_to_host_fil
cef0: 65 5f 72 65 73 75 6c 74 22 0a 7d 0a 23 20 65 6e  e_result".}.# en
cf00: 64 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66  d func_convert_f
cf10: 69 6c 65 5f 6e 69 78 5f 74 6f 5f 63 79 67 77 69  ile_nix_to_cygwi
cf20: 6e 0a 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23  n...############
cf30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
cf40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
cf50: 23 0a 23 20 24 62 75 69 6c 64 20 74 6f 20 24 68  #.# $build to $h
cf60: 6f 73 74 20 50 41 54 48 20 43 4f 4e 56 45 52 53  ost PATH CONVERS
cf70: 49 4f 4e 20 46 55 4e 43 54 49 4f 4e 53 20 23 0a  ION FUNCTIONS #.
cf80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
cf90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
cfa0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 20  #############.# 
cfb0: 69 6e 76 6f 6b 65 64 20 76 69 61 20 60 24 74 6f  invoked via `$to
cfc0: 5f 68 6f 73 74 5f 70 61 74 68 5f 63 6d 64 20 41  _host_path_cmd A
cfd0: 52 47 27 0a 23 0a 23 20 49 6e 20 65 61 63 68 20  RG'.#.# In each 
cfe0: 63 61 73 65 2c 20 41 52 47 20 69 73 20 74 68 65  case, ARG is the
cff0: 20 70 61 74 68 20 74 6f 20 62 65 20 63 6f 6e 76   path to be conv
d000: 65 72 74 65 64 20 66 72 6f 6d 20 24 62 75 69 6c  erted from $buil
d010: 64 20 74 6f 20 24 68 6f 73 74 20 66 6f 72 6d 61  d to $host forma
d020: 74 2e 0a 23 20 54 68 65 20 72 65 73 75 6c 74 20  t..# The result 
d030: 77 69 6c 6c 20 62 65 20 61 76 61 69 6c 61 62 6c  will be availabl
d040: 65 20 69 6e 20 24 66 75 6e 63 5f 74 6f 5f 68 6f  e in $func_to_ho
d050: 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74 2e 0a  st_path_result..
d060: 23 0a 23 20 50 61 74 68 20 73 65 70 61 72 61 74  #.# Path separat
d070: 6f 72 73 20 61 72 65 20 61 6c 73 6f 20 63 6f 6e  ors are also con
d080: 76 65 72 74 65 64 20 66 72 6f 6d 20 24 62 75 69  verted from $bui
d090: 6c 64 20 66 6f 72 6d 61 74 20 74 6f 20 24 68 6f  ld format to $ho
d0a0: 73 74 20 66 6f 72 6d 61 74 2e 20 20 49 66 0a 23  st format.  If.#
d0b0: 20 41 52 47 20 62 65 67 69 6e 73 20 6f 72 20 65   ARG begins or e
d0c0: 6e 64 73 20 77 69 74 68 20 61 20 70 61 74 68 20  nds with a path 
d0d0: 73 65 70 61 72 61 74 6f 72 20 63 68 61 72 61 63  separator charac
d0e0: 74 65 72 2c 20 69 74 20 69 73 20 70 72 65 73 65  ter, it is prese
d0f0: 72 76 65 64 20 28 62 75 74 0a 23 20 63 6f 6e 76  rved (but.# conv
d100: 65 72 74 65 64 20 74 6f 20 24 68 6f 73 74 20 66  erted to $host f
d110: 6f 72 6d 61 74 29 20 6f 6e 20 6f 75 74 70 75 74  ormat) on output
d120: 2e 0a 23 0a 23 20 41 6c 6c 20 70 61 74 68 20 63  ..#.# All path c
d130: 6f 6e 76 65 72 73 69 6f 6e 20 66 75 6e 63 74 69  onversion functi
d140: 6f 6e 73 20 61 72 65 20 6e 61 6d 65 64 20 75 73  ons are named us
d150: 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e  ing the followin
d160: 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 3a 0a 23 20  g convention:.# 
d170: 20 20 66 69 6c 65 20 6e 61 6d 65 20 63 6f 6e 76    file name conv
d180: 65 72 73 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 20  ersion function 
d190: 20 20 20 3a 20 66 75 6e 63 5f 63 6f 6e 76 65 72     : func_conver
d1a0: 74 5f 66 69 6c 65 5f 58 5f 74 6f 5f 59 20 28 29  t_file_X_to_Y ()
d1b0: 0a 23 20 20 20 70 61 74 68 20 63 6f 6e 76 65 72  .#   path conver
d1c0: 73 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 20 20  sion function   
d1d0: 20 20 20 20 20 20 3a 20 66 75 6e 63 5f 63 6f 6e        : func_con
d1e0: 76 65 72 74 5f 70 61 74 68 5f 58 5f 74 6f 5f 59  vert_path_X_to_Y
d1f0: 20 28 29 0a 23 20 77 68 65 72 65 2c 20 66 6f 72   ().# where, for
d200: 20 61 6e 79 20 67 69 76 65 6e 20 24 62 75 69 6c   any given $buil
d210: 64 2f 24 68 6f 73 74 20 63 6f 6d 62 69 6e 61 74  d/$host combinat
d220: 69 6f 6e 20 74 68 65 20 27 58 5f 74 6f 5f 59 27  ion the 'X_to_Y'
d230: 20 76 61 6c 75 65 20 69 73 20 74 68 65 0a 23 20   value is the.# 
d240: 73 61 6d 65 2e 20 20 49 66 20 63 6f 6e 76 65 72  same.  If conver
d250: 73 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 20 61  sion functions a
d260: 72 65 20 61 64 64 65 64 20 66 6f 72 20 6e 65 77  re added for new
d270: 20 24 62 75 69 6c 64 2f 24 68 6f 73 74 20 63 6f   $build/$host co
d280: 6d 62 69 6e 61 74 69 6f 6e 73 2c 0a 23 20 74 68  mbinations,.# th
d290: 65 20 74 77 6f 20 6e 65 77 20 66 75 6e 63 74 69  e two new functi
d2a0: 6f 6e 73 20 6d 75 73 74 20 66 6f 6c 6c 6f 77 20  ons must follow 
d2b0: 74 68 69 73 20 70 61 74 74 65 72 6e 2c 20 6f 72  this pattern, or
d2c0: 20 66 75 6e 63 5f 69 6e 69 74 5f 74 6f 5f 68 6f   func_init_to_ho
d2d0: 73 74 5f 70 61 74 68 5f 63 6d 64 0a 23 20 77 69  st_path_cmd.# wi
d2e0: 6c 6c 20 62 72 65 61 6b 2e 0a 0a 0a 23 20 66 75  ll break....# fu
d2f0: 6e 63 5f 69 6e 69 74 5f 74 6f 5f 68 6f 73 74 5f  nc_init_to_host_
d300: 70 61 74 68 5f 63 6d 64 0a 23 20 45 6e 73 75 72  path_cmd.# Ensur
d310: 65 73 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e  es that function
d320: 20 22 70 6f 69 6e 74 65 72 22 20 76 61 72 69 61   "pointer" varia
d330: 62 6c 65 20 24 74 6f 5f 68 6f 73 74 5f 70 61 74  ble $to_host_pat
d340: 68 5f 63 6d 64 20 69 73 20 73 65 74 20 74 6f 20  h_cmd is set to 
d350: 74 68 65 0a 23 20 61 70 70 72 6f 70 72 69 61 74  the.# appropriat
d360: 65 20 76 61 6c 75 65 2c 20 62 61 73 65 64 20 6f  e value, based o
d370: 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 24  n the value of $
d380: 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 63 6d 64  to_host_file_cmd
d390: 2e 0a 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 63  ..to_host_path_c
d3a0: 6d 64 3d 0a 66 75 6e 63 5f 69 6e 69 74 5f 74 6f  md=.func_init_to
d3b0: 5f 68 6f 73 74 5f 70 61 74 68 5f 63 6d 64 20 28  _host_path_cmd (
d3c0: 29 0a 7b 0a 20 20 24 6f 70 74 5f 64 65 62 75 67  ).{.  $opt_debug
d3d0: 0a 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22 24  .  if test -z "$
d3e0: 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 63 6d 64  to_host_path_cmd
d3f0: 22 3b 20 74 68 65 6e 0a 20 20 20 20 66 75 6e 63  "; then.    func
d400: 5f 73 74 72 69 70 6e 61 6d 65 20 27 66 75 6e 63  _stripname 'func
d410: 5f 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 27 20  _convert_file_' 
d420: 27 27 20 22 24 74 6f 5f 68 6f 73 74 5f 66 69 6c  '' "$to_host_fil
d430: 65 5f 63 6d 64 22 0a 20 20 20 20 74 6f 5f 68 6f  e_cmd".    to_ho
d440: 73 74 5f 70 61 74 68 5f 63 6d 64 3d 22 66 75 6e  st_path_cmd="fun
d450: 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 24  c_convert_path_$
d460: 7b 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f  {func_stripname_
d470: 72 65 73 75 6c 74 7d 22 0a 20 20 66 69 0a 7d 0a  result}".  fi.}.
d480: 0a 0a 23 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  ..# func_to_host
d490: 5f 70 61 74 68 20 41 52 47 0a 23 20 43 6f 6e 76  _path ARG.# Conv
d4a0: 65 72 74 73 20 74 68 65 20 70 61 74 68 20 41 52  erts the path AR
d4b0: 47 20 66 72 6f 6d 20 24 62 75 69 6c 64 20 66 6f  G from $build fo
d4c0: 72 6d 61 74 20 74 6f 20 24 68 6f 73 74 20 66 6f  rmat to $host fo
d4d0: 72 6d 61 74 2e 20 52 65 74 75 72 6e 20 72 65 73  rmat. Return res
d4e0: 75 6c 74 0a 23 20 69 6e 20 66 75 6e 63 5f 74 6f  ult.# in func_to
d4f0: 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c  _host_path_resul
d500: 74 2e 0a 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f  t..func_to_host_
d510: 70 61 74 68 20 28 29 0a 7b 0a 20 20 24 6f 70 74  path ().{.  $opt
d520: 5f 64 65 62 75 67 0a 20 20 66 75 6e 63 5f 69 6e  _debug.  func_in
d530: 69 74 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f  it_to_host_path_
d540: 63 6d 64 0a 20 20 24 74 6f 5f 68 6f 73 74 5f 70  cmd.  $to_host_p
d550: 61 74 68 5f 63 6d 64 20 22 24 31 22 0a 7d 0a 23  ath_cmd "$1".}.#
d560: 20 65 6e 64 20 66 75 6e 63 5f 74 6f 5f 68 6f 73   end func_to_hos
d570: 74 5f 70 61 74 68 0a 0a 0a 23 20 66 75 6e 63 5f  t_path...# func_
d580: 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6e 6f 6f  convert_path_noo
d590: 70 20 41 52 47 0a 23 20 43 6f 70 79 20 41 52 47  p ARG.# Copy ARG
d5a0: 20 74 6f 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74   to func_to_host
d5b0: 5f 70 61 74 68 5f 72 65 73 75 6c 74 2e 0a 66 75  _path_result..fu
d5c0: 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f  nc_convert_path_
d5d0: 6e 6f 6f 70 20 28 29 0a 7b 0a 20 20 66 75 6e 63  noop ().{.  func
d5e0: 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65  _to_host_path_re
d5f0: 73 75 6c 74 3d 22 24 31 22 0a 7d 0a 23 20 65 6e  sult="$1".}.# en
d600: 64 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70  d func_convert_p
d610: 61 74 68 5f 6e 6f 6f 70 0a 0a 0a 23 20 66 75 6e  ath_noop...# fun
d620: 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6d  c_convert_path_m
d630: 73 79 73 5f 74 6f 5f 77 33 32 20 41 52 47 0a 23  sys_to_w32 ARG.#
d640: 20 43 6f 6e 76 65 72 74 20 70 61 74 68 20 41 52   Convert path AR
d650: 47 20 66 72 6f 6d 20 28 6d 69 6e 67 77 29 20 4d  G from (mingw) M
d660: 53 59 53 20 74 6f 20 28 6d 69 6e 67 77 29 20 77  SYS to (mingw) w
d670: 33 32 20 66 6f 72 6d 61 74 3b 20 61 75 74 6f 6d  32 format; autom
d680: 61 74 69 63 0a 23 20 63 6f 6e 76 65 72 73 69 6f  atic.# conversio
d690: 6e 20 74 6f 20 77 33 32 20 69 73 20 6e 6f 74 20  n to w32 is not 
d6a0: 61 76 61 69 6c 61 62 6c 65 20 69 6e 73 69 64 65  available inside
d6b0: 20 74 68 65 20 63 77 72 61 70 70 65 72 2e 20 20   the cwrapper.  
d6c0: 52 65 74 75 72 6e 73 20 72 65 73 75 6c 74 20 69  Returns result i
d6d0: 6e 0a 23 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  n.# func_to_host
d6e0: 5f 70 61 74 68 5f 72 65 73 75 6c 74 2e 0a 66 75  _path_result..fu
d6f0: 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f  nc_convert_path_
d700: 6d 73 79 73 5f 74 6f 5f 77 33 32 20 28 29 0a 7b  msys_to_w32 ().{
d710: 0a 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20 20  .  $opt_debug.  
d720: 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74  func_to_host_pat
d730: 68 5f 72 65 73 75 6c 74 3d 22 24 31 22 0a 20 20  h_result="$1".  
d740: 69 66 20 74 65 73 74 20 2d 6e 20 22 24 31 22 3b  if test -n "$1";
d750: 20 74 68 65 6e 0a 20 20 20 20 23 20 52 65 6d 6f   then.    # Remo
d760: 76 65 20 6c 65 61 64 69 6e 67 20 61 6e 64 20 74  ve leading and t
d770: 72 61 69 6c 69 6e 67 20 70 61 74 68 20 73 65 70  railing path sep
d780: 61 72 61 74 6f 72 20 63 68 61 72 61 63 74 65 72  arator character
d790: 73 20 66 72 6f 6d 20 41 52 47 2e 20 20 4d 53 59  s from ARG.  MSY
d7a0: 53 0a 20 20 20 20 23 20 62 65 68 61 76 69 6f 72  S.    # behavior
d7b0: 20 69 73 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74   is inconsistent
d7c0: 20 68 65 72 65 3b 20 63 79 67 70 61 74 68 20 74   here; cygpath t
d7d0: 75 72 6e 73 20 74 68 65 6d 20 69 6e 74 6f 20 27  urns them into '
d7e0: 2e 3b 27 20 61 6e 64 20 27 3b 2e 27 3b 0a 20 20  .;' and ';.';.  
d7f0: 20 20 23 20 61 6e 64 20 77 69 6e 65 70 61 74 68    # and winepath
d800: 20 69 67 6e 6f 72 65 73 20 74 68 65 6d 20 63 6f   ignores them co
d810: 6d 70 6c 65 74 65 6c 79 2e 0a 20 20 20 20 66 75  mpletely..    fu
d820: 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 3a 20 3a  nc_stripname : :
d830: 20 22 24 31 22 0a 20 20 20 20 66 75 6e 63 5f 74   "$1".    func_t
d840: 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 74 6d 70 31  o_host_path_tmp1
d850: 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  =$func_stripname
d860: 5f 72 65 73 75 6c 74 0a 20 20 20 20 66 75 6e 63  _result.    func
d870: 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 6d 73  _convert_core_ms
d880: 79 73 5f 74 6f 5f 77 33 32 20 22 24 66 75 6e 63  ys_to_w32 "$func
d890: 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 74 6d  _to_host_path_tm
d8a0: 70 31 22 0a 20 20 20 20 66 75 6e 63 5f 74 6f 5f  p1".    func_to_
d8b0: 68 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74  host_path_result
d8c0: 3d 22 24 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f  ="$func_convert_
d8d0: 63 6f 72 65 5f 6d 73 79 73 5f 74 6f 5f 77 33 32  core_msys_to_w32
d8e0: 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 66 75 6e  _result".    fun
d8f0: 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 63  c_convert_path_c
d900: 68 65 63 6b 20 3a 20 22 3b 22 20 5c 0a 20 20 20  heck : ";" \.   
d910: 20 20 20 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73     "$func_to_hos
d920: 74 5f 70 61 74 68 5f 74 6d 70 31 22 20 22 24 66  t_path_tmp1" "$f
d930: 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
d940: 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 66 75 6e  _result".    fun
d950: 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 66  c_convert_path_f
d960: 72 6f 6e 74 5f 62 61 63 6b 5f 70 61 74 68 73 65  ront_back_pathse
d970: 70 20 22 3a 2a 22 20 22 2a 3a 22 20 22 3b 22 20  p ":*" "*:" ";" 
d980: 22 24 31 22 0a 20 20 66 69 0a 7d 0a 23 20 65 6e  "$1".  fi.}.# en
d990: 64 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70  d func_convert_p
d9a0: 61 74 68 5f 6d 73 79 73 5f 74 6f 5f 77 33 32 0a  ath_msys_to_w32.
d9b0: 0a 0a 23 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74  ..# func_convert
d9c0: 5f 70 61 74 68 5f 63 79 67 77 69 6e 5f 74 6f 5f  _path_cygwin_to_
d9d0: 77 33 32 20 41 52 47 0a 23 20 43 6f 6e 76 65 72  w32 ARG.# Conver
d9e0: 74 20 70 61 74 68 20 41 52 47 20 66 72 6f 6d 20  t path ARG from 
d9f0: 43 79 67 77 69 6e 20 74 6f 20 77 33 32 20 66 6f  Cygwin to w32 fo
da00: 72 6d 61 74 2e 20 20 52 65 74 75 72 6e 73 20 72  rmat.  Returns r
da10: 65 73 75 6c 74 20 69 6e 0a 23 20 66 75 6e 63 5f  esult in.# func_
da20: 74 6f 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65 73  to_host_file_res
da30: 75 6c 74 2e 0a 66 75 6e 63 5f 63 6f 6e 76 65 72  ult..func_conver
da40: 74 5f 70 61 74 68 5f 63 79 67 77 69 6e 5f 74 6f  t_path_cygwin_to
da50: 5f 77 33 32 20 28 29 0a 7b 0a 20 20 24 6f 70 74  _w32 ().{.  $opt
da60: 5f 64 65 62 75 67 0a 20 20 66 75 6e 63 5f 74 6f  _debug.  func_to
da70: 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c  _host_path_resul
da80: 74 3d 22 24 31 22 0a 20 20 69 66 20 74 65 73 74  t="$1".  if test
da90: 20 2d 6e 20 22 24 31 22 3b 20 74 68 65 6e 0a 20   -n "$1"; then. 
daa0: 20 20 20 23 20 53 65 65 20 66 75 6e 63 5f 63 6f     # See func_co
dab0: 6e 76 65 72 74 5f 70 61 74 68 5f 6d 73 79 73 5f  nvert_path_msys_
dac0: 74 6f 5f 77 33 32 3a 0a 20 20 20 20 66 75 6e 63  to_w32:.    func
dad0: 5f 73 74 72 69 70 6e 61 6d 65 20 3a 20 3a 20 22  _stripname : : "
dae0: 24 31 22 0a 20 20 20 20 66 75 6e 63 5f 74 6f 5f  $1".    func_to_
daf0: 68 6f 73 74 5f 70 61 74 68 5f 74 6d 70 31 3d 24  host_path_tmp1=$
db00: 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72  func_stripname_r
db10: 65 73 75 6c 74 0a 20 20 20 20 66 75 6e 63 5f 74  esult.    func_t
db20: 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65 73 75  o_host_path_resu
db30: 6c 74 3d 60 63 79 67 70 61 74 68 20 2d 6d 20 2d  lt=`cygpath -m -
db40: 70 20 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74  p "$func_to_host
db50: 5f 70 61 74 68 5f 74 6d 70 31 22 60 0a 20 20 20  _path_tmp1"`.   
db60: 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61   func_convert_pa
db70: 74 68 5f 63 68 65 63 6b 20 3a 20 22 3b 22 20 5c  th_check : ";" \
db80: 0a 20 20 20 20 20 20 22 24 66 75 6e 63 5f 74 6f  .      "$func_to
db90: 5f 68 6f 73 74 5f 70 61 74 68 5f 74 6d 70 31 22  _host_path_tmp1"
dba0: 20 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f   "$func_to_host_
dbb0: 70 61 74 68 5f 72 65 73 75 6c 74 22 0a 20 20 20  path_result".   
dbc0: 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61   func_convert_pa
dbd0: 74 68 5f 66 72 6f 6e 74 5f 62 61 63 6b 5f 70 61  th_front_back_pa
dbe0: 74 68 73 65 70 20 22 3a 2a 22 20 22 2a 3a 22 20  thsep ":*" "*:" 
dbf0: 22 3b 22 20 22 24 31 22 0a 20 20 66 69 0a 7d 0a  ";" "$1".  fi.}.
dc00: 23 20 65 6e 64 20 66 75 6e 63 5f 63 6f 6e 76 65  # end func_conve
dc10: 72 74 5f 70 61 74 68 5f 63 79 67 77 69 6e 5f 74  rt_path_cygwin_t
dc20: 6f 5f 77 33 32 0a 0a 0a 23 20 66 75 6e 63 5f 63  o_w32...# func_c
dc30: 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6e 69 78 5f  onvert_path_nix_
dc40: 74 6f 5f 77 33 32 20 41 52 47 0a 23 20 43 6f 6e  to_w32 ARG.# Con
dc50: 76 65 72 74 20 70 61 74 68 20 41 52 47 20 66 72  vert path ARG fr
dc60: 6f 6d 20 2a 6e 69 78 20 74 6f 20 77 33 32 20 66  om *nix to w32 f
dc70: 6f 72 6d 61 74 2e 20 20 52 65 71 75 69 72 65 73  ormat.  Requires
dc80: 20 61 20 77 69 6e 65 20 65 6e 76 69 72 6f 6e 6d   a wine environm
dc90: 65 6e 74 20 61 6e 64 0a 23 20 61 20 77 6f 72 6b  ent and.# a work
dca0: 69 6e 67 20 77 69 6e 65 70 61 74 68 2e 20 20 52  ing winepath.  R
dcb0: 65 74 75 72 6e 73 20 72 65 73 75 6c 74 20 69 6e  eturns result in
dcc0: 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69   func_to_host_fi
dcd0: 6c 65 5f 72 65 73 75 6c 74 2e 0a 66 75 6e 63 5f  le_result..func_
dce0: 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6e 69 78  convert_path_nix
dcf0: 5f 74 6f 5f 77 33 32 20 28 29 0a 7b 0a 20 20 24  _to_w32 ().{.  $
dd00: 6f 70 74 5f 64 65 62 75 67 0a 20 20 66 75 6e 63  opt_debug.  func
dd10: 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65  _to_host_path_re
dd20: 73 75 6c 74 3d 22 24 31 22 0a 20 20 69 66 20 74  sult="$1".  if t
dd30: 65 73 74 20 2d 6e 20 22 24 31 22 3b 20 74 68 65  est -n "$1"; the
dd40: 6e 0a 20 20 20 20 23 20 53 65 65 20 66 75 6e 63  n.    # See func
dd50: 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6d 73  _convert_path_ms
dd60: 79 73 5f 74 6f 5f 77 33 32 3a 0a 20 20 20 20 66  ys_to_w32:.    f
dd70: 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 3a 20  unc_stripname : 
dd80: 3a 20 22 24 31 22 0a 20 20 20 20 66 75 6e 63 5f  : "$1".    func_
dd90: 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 74 6d 70  to_host_path_tmp
dda0: 31 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  1=$func_stripnam
ddb0: 65 5f 72 65 73 75 6c 74 0a 20 20 20 20 66 75 6e  e_result.    fun
ddc0: 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72 65 5f 70  c_convert_core_p
ddd0: 61 74 68 5f 77 69 6e 65 5f 74 6f 5f 77 33 32 20  ath_wine_to_w32 
dde0: 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70  "$func_to_host_p
ddf0: 61 74 68 5f 74 6d 70 31 22 0a 20 20 20 20 66 75  ath_tmp1".    fu
de00: 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f  nc_to_host_path_
de10: 72 65 73 75 6c 74 3d 22 24 66 75 6e 63 5f 63 6f  result="$func_co
de20: 6e 76 65 72 74 5f 63 6f 72 65 5f 70 61 74 68 5f  nvert_core_path_
de30: 77 69 6e 65 5f 74 6f 5f 77 33 32 5f 72 65 73 75  wine_to_w32_resu
de40: 6c 74 22 0a 20 20 20 20 66 75 6e 63 5f 63 6f 6e  lt".    func_con
de50: 76 65 72 74 5f 70 61 74 68 5f 63 68 65 63 6b 20  vert_path_check 
de60: 3a 20 22 3b 22 20 5c 0a 20 20 20 20 20 20 22 24  : ";" \.      "$
de70: 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74  func_to_host_pat
de80: 68 5f 74 6d 70 31 22 20 22 24 66 75 6e 63 5f 74  h_tmp1" "$func_t
de90: 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65 73 75  o_host_path_resu
dea0: 6c 74 22 0a 20 20 20 20 66 75 6e 63 5f 63 6f 6e  lt".    func_con
deb0: 76 65 72 74 5f 70 61 74 68 5f 66 72 6f 6e 74 5f  vert_path_front_
dec0: 62 61 63 6b 5f 70 61 74 68 73 65 70 20 22 3a 2a  back_pathsep ":*
ded0: 22 20 22 2a 3a 22 20 22 3b 22 20 22 24 31 22 0a  " "*:" ";" "$1".
dee0: 20 20 66 69 0a 7d 0a 23 20 65 6e 64 20 66 75 6e    fi.}.# end fun
def0: 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6e  c_convert_path_n
df00: 69 78 5f 74 6f 5f 77 33 32 0a 0a 0a 23 20 66 75  ix_to_w32...# fu
df10: 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f  nc_convert_path_
df20: 6d 73 79 73 5f 74 6f 5f 63 79 67 77 69 6e 20 41  msys_to_cygwin A
df30: 52 47 0a 23 20 43 6f 6e 76 65 72 74 20 70 61 74  RG.# Convert pat
df40: 68 20 41 52 47 20 66 72 6f 6d 20 4d 53 59 53 20  h ARG from MSYS 
df50: 74 6f 20 43 79 67 77 69 6e 20 66 6f 72 6d 61 74  to Cygwin format
df60: 2e 20 20 52 65 71 75 69 72 65 73 20 4c 54 5f 43  .  Requires LT_C
df70: 59 47 50 41 54 48 20 73 65 74 2e 0a 23 20 52 65  YGPATH set..# Re
df80: 74 75 72 6e 73 20 72 65 73 75 6c 74 20 69 6e 20  turns result in 
df90: 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 66 69 6c  func_to_host_fil
dfa0: 65 5f 72 65 73 75 6c 74 2e 0a 66 75 6e 63 5f 63  e_result..func_c
dfb0: 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6d 73 79 73  onvert_path_msys
dfc0: 5f 74 6f 5f 63 79 67 77 69 6e 20 28 29 0a 7b 0a  _to_cygwin ().{.
dfd0: 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20 20 66    $opt_debug.  f
dfe0: 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
dff0: 5f 72 65 73 75 6c 74 3d 22 24 31 22 0a 20 20 69  _result="$1".  i
e000: 66 20 74 65 73 74 20 2d 6e 20 22 24 31 22 3b 20  f test -n "$1"; 
e010: 74 68 65 6e 0a 20 20 20 20 23 20 53 65 65 20 66  then.    # See f
e020: 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68  unc_convert_path
e030: 5f 6d 73 79 73 5f 74 6f 5f 77 33 32 3a 0a 20 20  _msys_to_w32:.  
e040: 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65    func_stripname
e050: 20 3a 20 3a 20 22 24 31 22 0a 20 20 20 20 66 75   : : "$1".    fu
e060: 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f  nc_to_host_path_
e070: 74 6d 70 31 3d 24 66 75 6e 63 5f 73 74 72 69 70  tmp1=$func_strip
e080: 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 20 20 20 20  name_result.    
e090: 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f 72  func_convert_cor
e0a0: 65 5f 6d 73 79 73 5f 74 6f 5f 77 33 32 20 22 24  e_msys_to_w32 "$
e0b0: 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74  func_to_host_pat
e0c0: 68 5f 74 6d 70 31 22 0a 20 20 20 20 66 75 6e 63  h_tmp1".    func
e0d0: 5f 63 79 67 70 61 74 68 20 2d 75 20 2d 70 20 22  _cygpath -u -p "
e0e0: 24 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63 6f  $func_convert_co
e0f0: 72 65 5f 6d 73 79 73 5f 74 6f 5f 77 33 32 5f 72  re_msys_to_w32_r
e100: 65 73 75 6c 74 22 0a 20 20 20 20 66 75 6e 63 5f  esult".    func_
e110: 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65 73  to_host_path_res
e120: 75 6c 74 3d 22 24 66 75 6e 63 5f 63 79 67 70 61  ult="$func_cygpa
e130: 74 68 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 66  th_result".    f
e140: 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68  unc_convert_path
e150: 5f 63 68 65 63 6b 20 3a 20 3a 20 5c 0a 20 20 20  _check : : \.   
e160: 20 20 20 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73     "$func_to_hos
e170: 74 5f 70 61 74 68 5f 74 6d 70 31 22 20 22 24 66  t_path_tmp1" "$f
e180: 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68  unc_to_host_path
e190: 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 66 75 6e  _result".    fun
e1a0: 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 66  c_convert_path_f
e1b0: 72 6f 6e 74 5f 62 61 63 6b 5f 70 61 74 68 73 65  ront_back_pathse
e1c0: 70 20 22 3a 2a 22 20 22 2a 3a 22 20 3a 20 22 24  p ":*" "*:" : "$
e1d0: 31 22 0a 20 20 66 69 0a 7d 0a 23 20 65 6e 64 20  1".  fi.}.# end 
e1e0: 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 70 61 74  func_convert_pat
e1f0: 68 5f 6d 73 79 73 5f 74 6f 5f 63 79 67 77 69 6e  h_msys_to_cygwin
e200: 0a 0a 0a 23 20 66 75 6e 63 5f 63 6f 6e 76 65 72  ...# func_conver
e210: 74 5f 70 61 74 68 5f 6e 69 78 5f 74 6f 5f 63 79  t_path_nix_to_cy
e220: 67 77 69 6e 20 41 52 47 0a 23 20 43 6f 6e 76 65  gwin ARG.# Conve
e230: 72 74 20 70 61 74 68 20 41 52 47 20 66 72 6f 6d  rt path ARG from
e240: 20 2a 6e 69 78 20 74 6f 20 43 79 67 77 69 6e 20   *nix to Cygwin 
e250: 66 6f 72 6d 61 74 2e 20 20 52 65 71 75 69 72 65  format.  Require
e260: 73 20 43 79 67 77 69 6e 20 69 6e 73 74 61 6c 6c  s Cygwin install
e270: 65 64 20 69 6e 20 61 0a 23 20 61 20 77 69 6e 65  ed in a.# a wine
e280: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 77 6f   environment, wo
e290: 72 6b 69 6e 67 20 77 69 6e 65 70 61 74 68 2c 20  rking winepath, 
e2a0: 61 6e 64 20 4c 54 5f 43 59 47 50 41 54 48 20 73  and LT_CYGPATH s
e2b0: 65 74 2e 20 20 52 65 74 75 72 6e 73 20 72 65 73  et.  Returns res
e2c0: 75 6c 74 20 69 6e 0a 23 20 66 75 6e 63 5f 74 6f  ult in.# func_to
e2d0: 5f 68 6f 73 74 5f 66 69 6c 65 5f 72 65 73 75 6c  _host_file_resul
e2e0: 74 2e 0a 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f  t..func_convert_
e2f0: 70 61 74 68 5f 6e 69 78 5f 74 6f 5f 63 79 67 77  path_nix_to_cygw
e300: 69 6e 20 28 29 0a 7b 0a 20 20 24 6f 70 74 5f 64  in ().{.  $opt_d
e310: 65 62 75 67 0a 20 20 66 75 6e 63 5f 74 6f 5f 68  ebug.  func_to_h
e320: 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d  ost_path_result=
e330: 22 24 31 22 0a 20 20 69 66 20 74 65 73 74 20 2d  "$1".  if test -
e340: 6e 20 22 24 31 22 3b 20 74 68 65 6e 0a 20 20 20  n "$1"; then.   
e350: 20 23 20 52 65 6d 6f 76 65 20 6c 65 61 64 69 6e   # Remove leadin
e360: 67 20 61 6e 64 20 74 72 61 69 6c 69 6e 67 20 70  g and trailing p
e370: 61 74 68 20 73 65 70 61 72 61 74 6f 72 20 63 68  ath separator ch
e380: 61 72 61 63 74 65 72 73 20 66 72 6f 6d 0a 20 20  aracters from.  
e390: 20 20 23 20 41 52 47 2e 20 6d 73 79 73 20 62 65    # ARG. msys be
e3a0: 68 61 76 69 6f 72 20 69 73 20 69 6e 63 6f 6e 73  havior is incons
e3b0: 69 73 74 65 6e 74 20 68 65 72 65 2c 20 63 79 67  istent here, cyg
e3c0: 70 61 74 68 20 74 75 72 6e 73 20 74 68 65 6d 0a  path turns them.
e3d0: 20 20 20 20 23 20 69 6e 74 6f 20 27 2e 3b 27 20      # into '.;' 
e3e0: 61 6e 64 20 27 3b 2e 27 2c 20 61 6e 64 20 77 69  and ';.', and wi
e3f0: 6e 65 70 61 74 68 20 69 67 6e 6f 72 65 73 20 74  nepath ignores t
e400: 68 65 6d 20 63 6f 6d 70 6c 65 74 65 6c 79 2e 0a  hem completely..
e410: 20 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61      func_stripna
e420: 6d 65 20 3a 20 3a 20 22 24 31 22 0a 20 20 20 20  me : : "$1".    
e430: 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74  func_to_host_pat
e440: 68 5f 74 6d 70 31 3d 24 66 75 6e 63 5f 73 74 72  h_tmp1=$func_str
e450: 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 20 20  ipname_result.  
e460: 20 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 63    func_convert_c
e470: 6f 72 65 5f 70 61 74 68 5f 77 69 6e 65 5f 74 6f  ore_path_wine_to
e480: 5f 77 33 32 20 22 24 66 75 6e 63 5f 74 6f 5f 68  _w32 "$func_to_h
e490: 6f 73 74 5f 70 61 74 68 5f 74 6d 70 31 22 0a 20  ost_path_tmp1". 
e4a0: 20 20 20 66 75 6e 63 5f 63 79 67 70 61 74 68 20     func_cygpath 
e4b0: 2d 75 20 2d 70 20 22 24 66 75 6e 63 5f 63 6f 6e  -u -p "$func_con
e4c0: 76 65 72 74 5f 63 6f 72 65 5f 70 61 74 68 5f 77  vert_core_path_w
e4d0: 69 6e 65 5f 74 6f 5f 77 33 32 5f 72 65 73 75 6c  ine_to_w32_resul
e4e0: 74 22 0a 20 20 20 20 66 75 6e 63 5f 74 6f 5f 68  t".    func_to_h
e4f0: 6f 73 74 5f 70 61 74 68 5f 72 65 73 75 6c 74 3d  ost_path_result=
e500: 22 24 66 75 6e 63 5f 63 79 67 70 61 74 68 5f 72  "$func_cygpath_r
e510: 65 73 75 6c 74 22 0a 20 20 20 20 66 75 6e 63 5f  esult".    func_
e520: 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 63 68 65  convert_path_che
e530: 63 6b 20 3a 20 3a 20 5c 0a 20 20 20 20 20 20 22  ck : : \.      "
e540: 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61  $func_to_host_pa
e550: 74 68 5f 74 6d 70 31 22 20 22 24 66 75 6e 63 5f  th_tmp1" "$func_
e560: 74 6f 5f 68 6f 73 74 5f 70 61 74 68 5f 72 65 73  to_host_path_res
e570: 75 6c 74 22 0a 20 20 20 20 66 75 6e 63 5f 63 6f  ult".    func_co
e580: 6e 76 65 72 74 5f 70 61 74 68 5f 66 72 6f 6e 74  nvert_path_front
e590: 5f 62 61 63 6b 5f 70 61 74 68 73 65 70 20 22 3a  _back_pathsep ":
e5a0: 2a 22 20 22 2a 3a 22 20 3a 20 22 24 31 22 0a 20  *" "*:" : "$1". 
e5b0: 20 66 69 0a 7d 0a 23 20 65 6e 64 20 66 75 6e 63   fi.}.# end func
e5c0: 5f 63 6f 6e 76 65 72 74 5f 70 61 74 68 5f 6e 69  _convert_path_ni
e5d0: 78 5f 74 6f 5f 63 79 67 77 69 6e 0a 0a 0a 23 20  x_to_cygwin...# 
e5e0: 66 75 6e 63 5f 6d 6f 64 65 5f 63 6f 6d 70 69 6c  func_mode_compil
e5f0: 65 20 61 72 67 2e 2e 2e 0a 66 75 6e 63 5f 6d 6f  e arg....func_mo
e600: 64 65 5f 63 6f 6d 70 69 6c 65 20 28 29 0a 7b 0a  de_compile ().{.
e610: 20 20 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20      $opt_debug. 
e620: 20 20 20 23 20 47 65 74 20 74 68 65 20 63 6f 6d     # Get the com
e630: 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64  pilation command
e640: 20 61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20   and the source 
e650: 66 69 6c 65 2e 0a 20 20 20 20 62 61 73 65 5f 63  file..    base_c
e660: 6f 6d 70 69 6c 65 3d 0a 20 20 20 20 73 72 63 66  ompile=.    srcf
e670: 69 6c 65 3d 22 24 6e 6f 6e 6f 70 74 22 20 20 23  ile="$nonopt"  #
e680: 20 20 61 6c 77 61 79 73 20 6b 65 65 70 20 61 20    always keep a 
e690: 6e 6f 6e 2d 65 6d 70 74 79 20 76 61 6c 75 65 20  non-empty value 
e6a0: 69 6e 20 22 73 72 63 66 69 6c 65 22 0a 20 20 20  in "srcfile".   
e6b0: 20 73 75 70 70 72 65 73 73 5f 6f 70 74 3d 79 65   suppress_opt=ye
e6c0: 73 0a 20 20 20 20 73 75 70 70 72 65 73 73 5f 6f  s.    suppress_o
e6d0: 75 74 70 75 74 3d 0a 20 20 20 20 61 72 67 5f 6d  utput=.    arg_m
e6e0: 6f 64 65 3d 6e 6f 72 6d 61 6c 0a 20 20 20 20 6c  ode=normal.    l
e6f0: 69 62 6f 62 6a 3d 0a 20 20 20 20 6c 61 74 65 72  ibobj=.    later
e700: 3d 0a 20 20 20 20 70 69 65 5f 66 6c 61 67 3d 0a  =.    pie_flag=.
e710: 0a 20 20 20 20 66 6f 72 20 61 72 67 0a 20 20 20  .    for arg.   
e720: 20 64 6f 0a 20 20 20 20 20 20 63 61 73 65 20 24   do.      case $
e730: 61 72 67 5f 6d 6f 64 65 20 69 6e 0a 20 20 20 20  arg_mode in.    
e740: 20 20 61 72 67 20 20 29 0a 09 23 20 64 6f 20 6e    arg  )..# do n
e750: 6f 74 20 22 63 6f 6e 74 69 6e 75 65 22 2e 20 20  ot "continue".  
e760: 49 6e 73 74 65 61 64 2c 20 61 64 64 20 74 68 69  Instead, add thi
e770: 73 20 74 6f 20 62 61 73 65 5f 63 6f 6d 70 69 6c  s to base_compil
e780: 65 0a 09 6c 61 73 74 61 72 67 3d 22 24 61 72 67  e..lastarg="$arg
e790: 22 0a 09 61 72 67 5f 6d 6f 64 65 3d 6e 6f 72 6d  "..arg_mode=norm
e7a0: 61 6c 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 74 61  al..;;..      ta
e7b0: 72 67 65 74 20 29 0a 09 6c 69 62 6f 62 6a 3d 22  rget )..libobj="
e7c0: 24 61 72 67 22 0a 09 61 72 67 5f 6d 6f 64 65 3d  $arg"..arg_mode=
e7d0: 6e 6f 72 6d 61 6c 0a 09 63 6f 6e 74 69 6e 75 65  normal..continue
e7e0: 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 6e 6f 72 6d  ..;;..      norm
e7f0: 61 6c 20 29 0a 09 23 20 41 63 63 65 70 74 20 61  al )..# Accept a
e800: 6e 79 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20  ny command-line 
e810: 6f 70 74 69 6f 6e 73 2e 0a 09 63 61 73 65 20 24  options...case $
e820: 61 72 67 20 69 6e 0a 09 2d 6f 29 0a 09 20 20 74  arg in..-o)..  t
e830: 65 73 74 20 2d 6e 20 22 24 6c 69 62 6f 62 6a 22  est -n "$libobj"
e840: 20 26 26 20 5c 0a 09 20 20 20 20 66 75 6e 63 5f   && \..    func_
e850: 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 79 6f 75  fatal_error "you
e860: 20 63 61 6e 6e 6f 74 20 73 70 65 63 69 66 79 20   cannot specify 
e870: 5c 60 2d 6f 27 20 6d 6f 72 65 20 74 68 61 6e 20  \`-o' more than 
e880: 6f 6e 63 65 22 0a 09 20 20 61 72 67 5f 6d 6f 64  once"..  arg_mod
e890: 65 3d 74 61 72 67 65 74 0a 09 20 20 63 6f 6e 74  e=target..  cont
e8a0: 69 6e 75 65 0a 09 20 20 3b 3b 0a 0a 09 2d 70 69  inue..  ;;...-pi
e8b0: 65 20 7c 20 2d 66 70 69 65 20 7c 20 2d 66 50 49  e | -fpie | -fPI
e8c0: 45 29 0a 20 20 20 20 20 20 20 20 20 20 66 75 6e  E).          fun
e8d0: 63 5f 61 70 70 65 6e 64 20 70 69 65 5f 66 6c 61  c_append pie_fla
e8e0: 67 20 22 20 24 61 72 67 22 0a 09 20 20 63 6f 6e  g " $arg"..  con
e8f0: 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 0a 09 2d 73  tinue..  ;;...-s
e900: 68 61 72 65 64 20 7c 20 2d 73 74 61 74 69 63 20  hared | -static 
e910: 7c 20 2d 70 72 65 66 65 72 2d 70 69 63 20 7c 20  | -prefer-pic | 
e920: 2d 70 72 65 66 65 72 2d 6e 6f 6e 2d 70 69 63 29  -prefer-non-pic)
e930: 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20  ..  func_append 
e940: 6c 61 74 65 72 20 22 20 24 61 72 67 22 0a 09 20  later " $arg".. 
e950: 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a   continue..  ;;.
e960: 0a 09 2d 6e 6f 2d 73 75 70 70 72 65 73 73 29 0a  ..-no-suppress).
e970: 09 20 20 73 75 70 70 72 65 73 73 5f 6f 70 74 3d  .  suppress_opt=
e980: 6e 6f 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09  no..  continue..
e990: 20 20 3b 3b 0a 0a 09 2d 58 63 6f 6d 70 69 6c 65    ;;...-Xcompile
e9a0: 72 29 0a 09 20 20 61 72 67 5f 6d 6f 64 65 3d 61  r)..  arg_mode=a
e9b0: 72 67 20 20 23 20 20 74 68 65 20 6e 65 78 74 20  rg  #  the next 
e9c0: 6f 6e 65 20 67 6f 65 73 20 69 6e 74 6f 20 74 68  one goes into th
e9d0: 65 20 22 62 61 73 65 5f 63 6f 6d 70 69 6c 65 22  e "base_compile"
e9e0: 20 61 72 67 20 6c 69 73 74 0a 09 20 20 63 6f 6e   arg list..  con
e9f0: 74 69 6e 75 65 20 20 20 20 20 20 23 20 20 54 68  tinue      #  Th
ea00: 65 20 63 75 72 72 65 6e 74 20 22 73 72 63 66 69  e current "srcfi
ea10: 6c 65 22 20 77 69 6c 6c 20 65 69 74 68 65 72 20  le" will either 
ea20: 62 65 20 72 65 74 61 69 6e 65 64 20 6f 72 0a 09  be retained or..
ea30: 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20    ;;            
ea40: 23 20 20 72 65 70 6c 61 63 65 64 20 6c 61 74 65  #  replaced late
ea50: 72 2e 20 20 49 20 77 6f 75 6c 64 20 67 75 65 73  r.  I would gues
ea60: 73 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20  s that would be 
ea70: 61 20 62 75 67 2e 0a 0a 09 2d 57 63 2c 2a 29 0a  a bug....-Wc,*).
ea80: 09 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  .  func_stripnam
ea90: 65 20 27 2d 57 63 2c 27 20 27 27 20 22 24 61 72  e '-Wc,' '' "$ar
eaa0: 67 22 0a 09 20 20 61 72 67 73 3d 24 66 75 6e 63  g"..  args=$func
eab0: 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c  _stripname_resul
eac0: 74 0a 09 20 20 6c 61 73 74 61 72 67 3d 0a 09 20  t..  lastarg=.. 
ead0: 20 73 61 76 65 5f 69 66 73 3d 22 24 49 46 53 22   save_ifs="$IFS"
eae0: 3b 20 49 46 53 3d 27 2c 27 0a 09 20 20 66 6f 72  ; IFS=','..  for
eaf0: 20 61 72 67 20 69 6e 20 24 61 72 67 73 3b 20 64   arg in $args; d
eb00: 6f 0a 09 20 20 20 20 49 46 53 3d 22 24 73 61 76  o..    IFS="$sav
eb10: 65 5f 69 66 73 22 0a 09 20 20 20 20 66 75 6e 63  e_ifs"..    func
eb20: 5f 61 70 70 65 6e 64 5f 71 75 6f 74 65 64 20 6c  _append_quoted l
eb30: 61 73 74 61 72 67 20 22 24 61 72 67 22 0a 09 20  astarg "$arg".. 
eb40: 20 64 6f 6e 65 0a 09 20 20 49 46 53 3d 22 24 73   done..  IFS="$s
eb50: 61 76 65 5f 69 66 73 22 0a 09 20 20 66 75 6e 63  ave_ifs"..  func
eb60: 5f 73 74 72 69 70 6e 61 6d 65 20 27 20 27 20 27  _stripname ' ' '
eb70: 27 20 22 24 6c 61 73 74 61 72 67 22 0a 09 20 20  ' "$lastarg"..  
eb80: 6c 61 73 74 61 72 67 3d 24 66 75 6e 63 5f 73 74  lastarg=$func_st
eb90: 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 0a  ripname_result..
eba0: 09 20 20 23 20 41 64 64 20 74 68 65 20 61 72 67  .  # Add the arg
ebb0: 75 6d 65 6e 74 73 20 74 6f 20 62 61 73 65 5f 63  uments to base_c
ebc0: 6f 6d 70 69 6c 65 2e 0a 09 20 20 66 75 6e 63 5f  ompile...  func_
ebd0: 61 70 70 65 6e 64 20 62 61 73 65 5f 63 6f 6d 70  append base_comp
ebe0: 69 6c 65 20 22 20 24 6c 61 73 74 61 72 67 22 0a  ile " $lastarg".
ebf0: 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b  .  continue..  ;
ec00: 3b 0a 0a 09 2a 29 0a 09 20 20 23 20 41 63 63 65  ;...*)..  # Acce
ec10: 70 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 61  pt the current a
ec20: 72 67 75 6d 65 6e 74 20 61 73 20 74 68 65 20 73  rgument as the s
ec30: 6f 75 72 63 65 20 66 69 6c 65 2e 0a 09 20 20 23  ource file...  #
ec40: 20 54 68 65 20 70 72 65 76 69 6f 75 73 20 22 73   The previous "s
ec50: 72 63 66 69 6c 65 22 20 62 65 63 6f 6d 65 73 20  rcfile" becomes 
ec60: 74 68 65 20 63 75 72 72 65 6e 74 20 61 72 67 75  the current argu
ec70: 6d 65 6e 74 2e 0a 09 20 20 23 0a 09 20 20 6c 61  ment...  #..  la
ec80: 73 74 61 72 67 3d 22 24 73 72 63 66 69 6c 65 22  starg="$srcfile"
ec90: 0a 09 20 20 73 72 63 66 69 6c 65 3d 22 24 61 72  ..  srcfile="$ar
eca0: 67 22 0a 09 20 20 3b 3b 0a 09 65 73 61 63 20 20  g"..  ;;..esac  
ecb0: 23 20 20 63 61 73 65 20 24 61 72 67 0a 09 3b 3b  #  case $arg..;;
ecc0: 0a 20 20 20 20 20 20 65 73 61 63 20 20 20 20 23  .      esac    #
ecd0: 20 20 63 61 73 65 20 24 61 72 67 5f 6d 6f 64 65    case $arg_mode
ece0: 0a 0a 20 20 20 20 20 20 23 20 41 65 73 74 68 65  ..      # Aesthe
ecf0: 74 69 63 61 6c 6c 79 20 71 75 6f 74 65 20 74 68  tically quote th
ed00: 65 20 70 72 65 76 69 6f 75 73 20 61 72 67 75 6d  e previous argum
ed10: 65 6e 74 2e 0a 20 20 20 20 20 20 66 75 6e 63 5f  ent..      func_
ed20: 61 70 70 65 6e 64 5f 71 75 6f 74 65 64 20 62 61  append_quoted ba
ed30: 73 65 5f 63 6f 6d 70 69 6c 65 20 22 24 6c 61 73  se_compile "$las
ed40: 74 61 72 67 22 0a 20 20 20 20 64 6f 6e 65 20 23  targ".    done #
ed50: 20 66 6f 72 20 61 72 67 0a 0a 20 20 20 20 63 61   for arg..    ca
ed60: 73 65 20 24 61 72 67 5f 6d 6f 64 65 20 69 6e 0a  se $arg_mode in.
ed70: 20 20 20 20 61 72 67 29 0a 20 20 20 20 20 20 66      arg).      f
ed80: 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20  unc_fatal_error 
ed90: 22 79 6f 75 20 6d 75 73 74 20 73 70 65 63 69 66  "you must specif
eda0: 79 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 66 6f  y an argument fo
edb0: 72 20 2d 58 63 6f 6d 70 69 6c 65 22 0a 20 20 20  r -Xcompile".   
edc0: 20 20 20 3b 3b 0a 20 20 20 20 74 61 72 67 65 74     ;;.    target
edd0: 29 0a 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74  ).      func_fat
ede0: 61 6c 5f 65 72 72 6f 72 20 22 79 6f 75 20 6d 75  al_error "you mu
edf0: 73 74 20 73 70 65 63 69 66 79 20 61 20 74 61 72  st specify a tar
ee00: 67 65 74 20 77 69 74 68 20 5c 60 2d 6f 27 22 0a  get with \`-o'".
ee10: 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 2a 29 0a        ;;.    *).
ee20: 20 20 20 20 20 20 23 20 47 65 74 20 74 68 65 20        # Get the 
ee30: 6e 61 6d 65 20 6f 66 20 74 68 65 20 6c 69 62 72  name of the libr
ee40: 61 72 79 20 6f 62 6a 65 63 74 2e 0a 20 20 20 20  ary object..    
ee50: 20 20 74 65 73 74 20 2d 7a 20 22 24 6c 69 62 6f    test -z "$libo
ee60: 62 6a 22 20 26 26 20 7b 0a 09 66 75 6e 63 5f 62  bj" && {..func_b
ee70: 61 73 65 6e 61 6d 65 20 22 24 73 72 63 66 69 6c  asename "$srcfil
ee80: 65 22 0a 09 6c 69 62 6f 62 6a 3d 22 24 66 75 6e  e"..libobj="$fun
ee90: 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c  c_basename_resul
eea0: 74 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20  t".      }.     
eeb0: 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 0a 20 20   ;;.    esac..  
eec0: 20 20 23 20 52 65 63 6f 67 6e 69 7a 65 20 73 65    # Recognize se
eed0: 76 65 72 61 6c 20 64 69 66 66 65 72 65 6e 74 20  veral different 
eee0: 66 69 6c 65 20 73 75 66 66 69 78 65 73 2e 0a 20  file suffixes.. 
eef0: 20 20 20 23 20 49 66 20 74 68 65 20 75 73 65 72     # If the user
ef00: 20 73 70 65 63 69 66 69 65 73 20 2d 6f 20 66 69   specifies -o fi
ef10: 6c 65 2e 6f 2c 20 69 74 20 69 73 20 72 65 70 6c  le.o, it is repl
ef20: 61 63 65 64 20 77 69 74 68 20 66 69 6c 65 2e 6c  aced with file.l
ef30: 6f 0a 20 20 20 20 63 61 73 65 20 24 6c 69 62 6f  o.    case $libo
ef40: 62 6a 20 69 6e 0a 20 20 20 20 2a 2e 5b 63 43 46  bj in.    *.[cCF
ef50: 53 69 66 6d 73 6f 5d 20 7c 20 5c 0a 20 20 20 20  Sifmso] | \.    
ef60: 2a 2e 61 64 61 20 7c 20 2a 2e 61 64 62 20 7c 20  *.ada | *.adb | 
ef70: 2a 2e 61 64 73 20 7c 20 2a 2e 61 73 6d 20 7c 20  *.ads | *.asm | 
ef80: 5c 0a 20 20 20 20 2a 2e 63 2b 2b 20 7c 20 2a 2e  \.    *.c++ | *.
ef90: 63 63 20 7c 20 2a 2e 69 69 20 7c 20 2a 2e 63 6c  cc | *.ii | *.cl
efa0: 61 73 73 20 7c 20 2a 2e 63 70 70 20 7c 20 2a 2e  ass | *.cpp | *.
efb0: 63 78 78 20 7c 20 5c 0a 20 20 20 20 2a 2e 5b 66  cxx | \.    *.[f
efc0: 46 5d 5b 30 39 5d 3f 20 7c 20 2a 2e 66 6f 72 20  F][09]? | *.for 
efd0: 7c 20 2a 2e 6a 61 76 61 20 7c 20 2a 2e 67 6f 20  | *.java | *.go 
efe0: 7c 20 2a 2e 6f 62 6a 20 7c 20 2a 2e 73 78 20 7c  | *.obj | *.sx |
eff0: 20 2a 2e 63 75 20 7c 20 2a 2e 63 75 70 29 0a 20   *.cu | *.cup). 
f000: 20 20 20 20 20 66 75 6e 63 5f 78 66 6f 72 6d 20       func_xform 
f010: 22 24 6c 69 62 6f 62 6a 22 0a 20 20 20 20 20 20  "$libobj".      
f020: 6c 69 62 6f 62 6a 3d 24 66 75 6e 63 5f 78 66 6f  libobj=$func_xfo
f030: 72 6d 5f 72 65 73 75 6c 74 0a 20 20 20 20 20 20  rm_result.      
f040: 3b 3b 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20  ;;.    esac..   
f050: 20 63 61 73 65 20 24 6c 69 62 6f 62 6a 20 69 6e   case $libobj in
f060: 0a 20 20 20 20 2a 2e 6c 6f 29 20 66 75 6e 63 5f  .    *.lo) func_
f070: 6c 6f 32 6f 20 22 24 6c 69 62 6f 62 6a 22 3b 20  lo2o "$libobj"; 
f080: 6f 62 6a 3d 24 66 75 6e 63 5f 6c 6f 32 6f 5f 72  obj=$func_lo2o_r
f090: 65 73 75 6c 74 20 3b 3b 0a 20 20 20 20 2a 29 0a  esult ;;.    *).
f0a0: 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c        func_fatal
f0b0: 5f 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 64  _error "cannot d
f0c0: 65 74 65 72 6d 69 6e 65 20 6e 61 6d 65 20 6f 66  etermine name of
f0d0: 20 6c 69 62 72 61 72 79 20 6f 62 6a 65 63 74 20   library object 
f0e0: 66 72 6f 6d 20 5c 60 24 6c 69 62 6f 62 6a 27 22  from \`$libobj'"
f0f0: 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 65 73  .      ;;.    es
f100: 61 63 0a 0a 20 20 20 20 66 75 6e 63 5f 69 6e 66  ac..    func_inf
f110: 65 72 5f 74 61 67 20 24 62 61 73 65 5f 63 6f 6d  er_tag $base_com
f120: 70 69 6c 65 0a 0a 20 20 20 20 66 6f 72 20 61 72  pile..    for ar
f130: 67 20 69 6e 20 24 6c 61 74 65 72 3b 20 64 6f 0a  g in $later; do.
f140: 20 20 20 20 20 20 63 61 73 65 20 24 61 72 67 20        case $arg 
f150: 69 6e 0a 20 20 20 20 20 20 2d 73 68 61 72 65 64  in.      -shared
f160: 29 0a 09 74 65 73 74 20 22 24 62 75 69 6c 64 5f  )..test "$build_
f170: 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 21 3d  libtool_libs" !=
f180: 20 79 65 73 20 26 26 20 5c 0a 09 20 20 66 75 6e   yes && \..  fun
f190: 63 5f 66 61 74 61 6c 5f 63 6f 6e 66 69 67 75 72  c_fatal_configur
f1a0: 61 74 69 6f 6e 20 22 63 61 6e 20 6e 6f 74 20 62  ation "can not b
f1b0: 75 69 6c 64 20 61 20 73 68 61 72 65 64 20 6c 69  uild a shared li
f1c0: 62 72 61 72 79 22 0a 09 62 75 69 6c 64 5f 6f 6c  brary"..build_ol
f1d0: 64 5f 6c 69 62 73 3d 6e 6f 0a 09 63 6f 6e 74 69  d_libs=no..conti
f1e0: 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d  nue..;;..      -
f1f0: 73 74 61 74 69 63 29 0a 09 62 75 69 6c 64 5f 6c  static)..build_l
f200: 69 62 74 6f 6f 6c 5f 6c 69 62 73 3d 6e 6f 0a 09  ibtool_libs=no..
f210: 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 3d 79  build_old_libs=y
f220: 65 73 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b  es..continue..;;
f230: 0a 0a 20 20 20 20 20 20 2d 70 72 65 66 65 72 2d  ..      -prefer-
f240: 70 69 63 29 0a 09 70 69 63 5f 6d 6f 64 65 3d 79  pic)..pic_mode=y
f250: 65 73 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b  es..continue..;;
f260: 0a 0a 20 20 20 20 20 20 2d 70 72 65 66 65 72 2d  ..      -prefer-
f270: 6e 6f 6e 2d 70 69 63 29 0a 09 70 69 63 5f 6d 6f  non-pic)..pic_mo
f280: 64 65 3d 6e 6f 0a 09 63 6f 6e 74 69 6e 75 65 0a  de=no..continue.
f290: 09 3b 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 20  .;;.      esac. 
f2a0: 20 20 20 64 6f 6e 65 0a 0a 20 20 20 20 66 75 6e     done..    fun
f2b0: 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c  c_quote_for_eval
f2c0: 20 22 24 6c 69 62 6f 62 6a 22 0a 20 20 20 20 74   "$libobj".    t
f2d0: 65 73 74 20 22 58 24 6c 69 62 6f 62 6a 22 20 21  est "X$libobj" !
f2e0: 3d 20 22 58 24 66 75 6e 63 5f 71 75 6f 74 65 5f  = "X$func_quote_
f2f0: 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74 22  for_eval_result"
f300: 20 5c 0a 20 20 20 20 20 20 26 26 20 24 45 43 48   \.      && $ECH
f310: 4f 20 22 58 24 6c 69 62 6f 62 6a 22 20 7c 20 24  O "X$libobj" | $
f320: 47 52 45 50 20 27 5b 5d 7e 23 5e 2a 7b 7d 3b 3c  GREP '[]~#^*{};<
f330: 3e 3f 22 27 22 27 22 27 09 20 26 28 29 7c 60 24  >?"'"'"'. &()|`$
f340: 5b 5d 27 20 5c 0a 20 20 20 20 20 20 26 26 20 66  []' \.      && f
f350: 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 6c 69 62  unc_warning "lib
f360: 6f 62 6a 20 6e 61 6d 65 20 5c 60 24 6c 69 62 6f  obj name \`$libo
f370: 62 6a 27 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 74  bj' may not cont
f380: 61 69 6e 20 73 68 65 6c 6c 20 73 70 65 63 69 61  ain shell specia
f390: 6c 20 63 68 61 72 61 63 74 65 72 73 2e 22 0a 20  l characters.". 
f3a0: 20 20 20 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f     func_dirname_
f3b0: 61 6e 64 5f 62 61 73 65 6e 61 6d 65 20 22 24 6f  and_basename "$o
f3c0: 62 6a 22 20 22 2f 22 20 22 22 0a 20 20 20 20 6f  bj" "/" "".    o
f3d0: 62 6a 6e 61 6d 65 3d 22 24 66 75 6e 63 5f 62 61  bjname="$func_ba
f3e0: 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 20  sename_result". 
f3f0: 20 20 20 78 64 69 72 3d 22 24 66 75 6e 63 5f 64     xdir="$func_d
f400: 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 20  irname_result". 
f410: 20 20 20 6c 6f 62 6a 3d 24 7b 78 64 69 72 7d 24     lobj=${xdir}$
f420: 6f 62 6a 64 69 72 2f 24 6f 62 6a 6e 61 6d 65 0a  objdir/$objname.
f430: 0a 20 20 20 20 74 65 73 74 20 2d 7a 20 22 24 62  .    test -z "$b
f440: 61 73 65 5f 63 6f 6d 70 69 6c 65 22 20 26 26 20  ase_compile" && 
f450: 5c 0a 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74  \.      func_fat
f460: 61 6c 5f 68 65 6c 70 20 22 79 6f 75 20 6d 75 73  al_help "you mus
f470: 74 20 73 70 65 63 69 66 79 20 61 20 63 6f 6d 70  t specify a comp
f480: 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 22  ilation command"
f490: 0a 0a 20 20 20 20 23 20 44 65 6c 65 74 65 20 61  ..    # Delete a
f4a0: 6e 79 20 6c 65 66 74 6f 76 65 72 20 6c 69 62 72  ny leftover libr
f4b0: 61 72 79 20 6f 62 6a 65 63 74 73 2e 0a 20 20 20  ary objects..   
f4c0: 20 69 66 20 74 65 73 74 20 22 24 62 75 69 6c 64   if test "$build
f4d0: 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d 20 79 65 73  _old_libs" = yes
f4e0: 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 72 65 6d  ; then.      rem
f4f0: 6f 76 65 6c 69 73 74 3d 22 24 6f 62 6a 20 24 6c  ovelist="$obj $l
f500: 6f 62 6a 20 24 6c 69 62 6f 62 6a 20 24 7b 6c 69  obj $libobj ${li
f510: 62 6f 62 6a 7d 54 22 0a 20 20 20 20 65 6c 73 65  bobj}T".    else
f520: 0a 20 20 20 20 20 20 72 65 6d 6f 76 65 6c 69 73  .      removelis
f530: 74 3d 22 24 6c 6f 62 6a 20 24 6c 69 62 6f 62 6a  t="$lobj $libobj
f540: 20 24 7b 6c 69 62 6f 62 6a 7d 54 22 0a 20 20 20   ${libobj}T".   
f550: 20 66 69 0a 0a 20 20 20 20 23 20 4f 6e 20 43 79   fi..    # On Cy
f560: 67 77 69 6e 20 74 68 65 72 65 27 73 20 6e 6f 20  gwin there's no 
f570: 22 72 65 61 6c 22 20 50 49 43 20 66 6c 61 67 20  "real" PIC flag 
f580: 73 6f 20 77 65 20 6d 75 73 74 20 62 75 69 6c 64  so we must build
f590: 20 62 6f 74 68 20 6f 62 6a 65 63 74 20 74 79 70   both object typ
f5a0: 65 73 0a 20 20 20 20 63 61 73 65 20 24 68 6f 73  es.    case $hos
f5b0: 74 5f 6f 73 20 69 6e 0a 20 20 20 20 63 79 67 77  t_os in.    cygw
f5c0: 69 6e 2a 20 7c 20 6d 69 6e 67 77 2a 20 7c 20 70  in* | mingw* | p
f5d0: 77 33 32 2a 20 7c 20 6f 73 32 2a 20 7c 20 63 65  w32* | os2* | ce
f5e0: 67 63 63 2a 29 0a 20 20 20 20 20 20 70 69 63 5f  gcc*).      pic_
f5f0: 6d 6f 64 65 3d 64 65 66 61 75 6c 74 0a 20 20 20  mode=default.   
f600: 20 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20     ;;.    esac. 
f610: 20 20 20 69 66 20 74 65 73 74 20 22 24 70 69 63     if test "$pic
f620: 5f 6d 6f 64 65 22 20 3d 20 6e 6f 20 26 26 20 74  _mode" = no && t
f630: 65 73 74 20 22 24 64 65 70 6c 69 62 73 5f 63 68  est "$deplibs_ch
f640: 65 63 6b 5f 6d 65 74 68 6f 64 22 20 21 3d 20 70  eck_method" != p
f650: 61 73 73 5f 61 6c 6c 3b 20 74 68 65 6e 0a 20 20  ass_all; then.  
f660: 20 20 20 20 23 20 6e 6f 6e 2d 50 49 43 20 63 6f      # non-PIC co
f670: 64 65 20 69 6e 20 73 68 61 72 65 64 20 6c 69 62  de in shared lib
f680: 72 61 72 69 65 73 20 69 73 20 6e 6f 74 20 73 75  raries is not su
f690: 70 70 6f 72 74 65 64 0a 20 20 20 20 20 20 70 69  pported.      pi
f6a0: 63 5f 6d 6f 64 65 3d 64 65 66 61 75 6c 74 0a 20  c_mode=default. 
f6b0: 20 20 20 66 69 0a 0a 20 20 20 20 23 20 43 61 6c     fi..    # Cal
f6c0: 63 75 6c 61 74 65 20 74 68 65 20 66 69 6c 65 6e  culate the filen
f6d0: 61 6d 65 20 6f 66 20 74 68 65 20 6f 75 74 70 75  ame of the outpu
f6e0: 74 20 6f 62 6a 65 63 74 20 69 66 20 63 6f 6d 70  t object if comp
f6f0: 69 6c 65 72 20 64 6f 65 73 0a 20 20 20 20 23 20  iler does.    # 
f700: 6e 6f 74 20 73 75 70 70 6f 72 74 20 2d 6f 20 77  not support -o w
f710: 69 74 68 20 2d 63 0a 20 20 20 20 69 66 20 74 65  ith -c.    if te
f720: 73 74 20 22 24 63 6f 6d 70 69 6c 65 72 5f 63 5f  st "$compiler_c_
f730: 6f 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 20 20  o" = no; then.  
f740: 20 20 20 20 6f 75 74 70 75 74 5f 6f 62 6a 3d 60      output_obj=`
f750: 24 45 43 48 4f 20 22 24 73 72 63 66 69 6c 65 22  $ECHO "$srcfile"
f760: 20 7c 20 24 53 45 44 20 27 73 25 5e 2e 2a 2f 25   | $SED 's%^.*/%
f770: 25 3b 20 73 25 5c 2e 5b 5e 2e 5d 2a 24 25 25 27  %; s%\.[^.]*$%%'
f780: 60 2e 24 7b 6f 62 6a 65 78 74 7d 0a 20 20 20 20  `.${objext}.    
f790: 20 20 6c 6f 63 6b 66 69 6c 65 3d 22 24 6f 75 74    lockfile="$out
f7a0: 70 75 74 5f 6f 62 6a 2e 6c 6f 63 6b 22 0a 20 20  put_obj.lock".  
f7b0: 20 20 65 6c 73 65 0a 20 20 20 20 20 20 6f 75 74    else.      out
f7c0: 70 75 74 5f 6f 62 6a 3d 0a 20 20 20 20 20 20 6e  put_obj=.      n
f7d0: 65 65 64 5f 6c 6f 63 6b 73 3d 6e 6f 0a 20 20 20  eed_locks=no.   
f7e0: 20 20 20 6c 6f 63 6b 66 69 6c 65 3d 0a 20 20 20     lockfile=.   
f7f0: 20 66 69 0a 0a 20 20 20 20 23 20 4c 6f 63 6b 20   fi..    # Lock 
f800: 74 68 69 73 20 63 72 69 74 69 63 61 6c 20 73 65  this critical se
f810: 63 74 69 6f 6e 20 69 66 20 69 74 20 69 73 20 6e  ction if it is n
f820: 65 65 64 65 64 0a 20 20 20 20 23 20 57 65 20 75  eeded.    # We u
f830: 73 65 20 74 68 69 73 20 73 63 72 69 70 74 20 66  se this script f
f840: 69 6c 65 20 74 6f 20 6d 61 6b 65 20 74 68 65 20  ile to make the 
f850: 6c 69 6e 6b 2c 20 69 74 20 61 76 6f 69 64 73 20  link, it avoids 
f860: 63 72 65 61 74 69 6e 67 20 61 20 6e 65 77 20 66  creating a new f
f870: 69 6c 65 0a 20 20 20 20 69 66 20 74 65 73 74 20  ile.    if test 
f880: 22 24 6e 65 65 64 5f 6c 6f 63 6b 73 22 20 3d 20  "$need_locks" = 
f890: 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20 20 20  yes; then.      
f8a0: 75 6e 74 69 6c 20 24 6f 70 74 5f 64 72 79 5f 72  until $opt_dry_r
f8b0: 75 6e 20 7c 7c 20 6c 6e 20 22 24 70 72 6f 67 70  un || ln "$progp
f8c0: 61 74 68 22 20 22 24 6c 6f 63 6b 66 69 6c 65 22  ath" "$lockfile"
f8d0: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 64 6f   2>/dev/null; do
f8e0: 0a 09 66 75 6e 63 5f 65 63 68 6f 20 22 57 61 69  ..func_echo "Wai
f8f0: 74 69 6e 67 20 66 6f 72 20 24 6c 6f 63 6b 66 69  ting for $lockfi
f900: 6c 65 20 74 6f 20 62 65 20 72 65 6d 6f 76 65 64  le to be removed
f910: 22 0a 09 73 6c 65 65 70 20 32 0a 20 20 20 20 20  "..sleep 2.     
f920: 20 64 6f 6e 65 0a 20 20 20 20 65 6c 69 66 20 74   done.    elif t
f930: 65 73 74 20 22 24 6e 65 65 64 5f 6c 6f 63 6b 73  est "$need_locks
f940: 22 20 3d 20 77 61 72 6e 3b 20 74 68 65 6e 0a 20  " = warn; then. 
f950: 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 66 20       if test -f 
f960: 22 24 6c 6f 63 6b 66 69 6c 65 22 3b 20 74 68 65  "$lockfile"; the
f970: 6e 0a 09 24 45 43 48 4f 20 22 5c 0a 2a 2a 2a 20  n..$ECHO "\.*** 
f980: 45 52 52 4f 52 2c 20 24 6c 6f 63 6b 66 69 6c 65  ERROR, $lockfile
f990: 20 65 78 69 73 74 73 20 61 6e 64 20 63 6f 6e 74   exists and cont
f9a0: 61 69 6e 73 3a 0a 60 63 61 74 20 24 6c 6f 63 6b  ains:.`cat $lock
f9b0: 66 69 6c 65 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  file 2>/dev/null
f9c0: 60 0a 0a 54 68 69 73 20 69 6e 64 69 63 61 74 65  `..This indicate
f9d0: 73 20 74 68 61 74 20 61 6e 6f 74 68 65 72 20 70  s that another p
f9e0: 72 6f 63 65 73 73 20 69 73 20 74 72 79 69 6e 67  rocess is trying
f9f0: 20 74 6f 20 75 73 65 20 74 68 65 20 73 61 6d 65   to use the same
fa00: 0a 74 65 6d 70 6f 72 61 72 79 20 6f 62 6a 65 63  .temporary objec
fa10: 74 20 66 69 6c 65 2c 20 61 6e 64 20 6c 69 62 74  t file, and libt
fa20: 6f 6f 6c 20 63 6f 75 6c 64 20 6e 6f 74 20 77 6f  ool could not wo
fa30: 72 6b 20 61 72 6f 75 6e 64 20 69 74 20 62 65 63  rk around it bec
fa40: 61 75 73 65 0a 79 6f 75 72 20 63 6f 6d 70 69 6c  ause.your compil
fa50: 65 72 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70  er does not supp
fa60: 6f 72 74 20 5c 60 2d 63 27 20 61 6e 64 20 5c 60  ort \`-c' and \`
fa70: 2d 6f 27 20 74 6f 67 65 74 68 65 72 2e 20 20 49  -o' together.  I
fa80: 66 20 79 6f 75 0a 72 65 70 65 61 74 20 74 68 69  f you.repeat thi
fa90: 73 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2c 20 69  s compilation, i
faa0: 74 20 6d 61 79 20 73 75 63 63 65 65 64 2c 20 62  t may succeed, b
fab0: 79 20 63 68 61 6e 63 65 2c 20 62 75 74 20 79 6f  y chance, but yo
fac0: 75 20 68 61 64 20 62 65 74 74 65 72 0a 61 76 6f  u had better.avo
fad0: 69 64 20 70 61 72 61 6c 6c 65 6c 20 62 75 69 6c  id parallel buil
fae0: 64 73 20 28 6d 61 6b 65 20 2d 6a 29 20 69 6e 20  ds (make -j) in 
faf0: 74 68 69 73 20 70 6c 61 74 66 6f 72 6d 2c 20 6f  this platform, o
fb00: 72 20 67 65 74 20 61 20 62 65 74 74 65 72 0a 63  r get a better.c
fb10: 6f 6d 70 69 6c 65 72 2e 22 0a 0a 09 24 6f 70 74  ompiler."...$opt
fb20: 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 24 52 4d 20  _dry_run || $RM 
fb30: 24 72 65 6d 6f 76 65 6c 69 73 74 0a 09 65 78 69  $removelist..exi
fb40: 74 20 24 45 58 49 54 5f 46 41 49 4c 55 52 45 0a  t $EXIT_FAILURE.
fb50: 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 66        fi.      f
fb60: 75 6e 63 5f 61 70 70 65 6e 64 20 72 65 6d 6f 76  unc_append remov
fb70: 65 6c 69 73 74 20 22 20 24 6f 75 74 70 75 74 5f  elist " $output_
fb80: 6f 62 6a 22 0a 20 20 20 20 20 20 24 45 43 48 4f  obj".      $ECHO
fb90: 20 22 24 73 72 63 66 69 6c 65 22 20 3e 20 22 24   "$srcfile" > "$
fba0: 6c 6f 63 6b 66 69 6c 65 22 0a 20 20 20 20 66 69  lockfile".    fi
fbb0: 0a 0a 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72  ..    $opt_dry_r
fbc0: 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d 6f 76  un || $RM $remov
fbd0: 65 6c 69 73 74 0a 20 20 20 20 66 75 6e 63 5f 61  elist.    func_a
fbe0: 70 70 65 6e 64 20 72 65 6d 6f 76 65 6c 69 73 74  ppend removelist
fbf0: 20 22 20 24 6c 6f 63 6b 66 69 6c 65 22 0a 20 20   " $lockfile".  
fc00: 20 20 74 72 61 70 20 27 24 6f 70 74 5f 64 72 79    trap '$opt_dry
fc10: 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d  _run || $RM $rem
fc20: 6f 76 65 6c 69 73 74 3b 20 65 78 69 74 20 24 45  ovelist; exit $E
fc30: 58 49 54 5f 46 41 49 4c 55 52 45 27 20 31 20 32  XIT_FAILURE' 1 2
fc40: 20 31 35 0a 0a 20 20 20 20 66 75 6e 63 5f 74 6f   15..    func_to
fc50: 5f 74 6f 6f 6c 5f 66 69 6c 65 20 22 24 73 72 63  _tool_file "$src
fc60: 66 69 6c 65 22 20 66 75 6e 63 5f 63 6f 6e 76 65  file" func_conve
fc70: 72 74 5f 66 69 6c 65 5f 6d 73 79 73 5f 74 6f 5f  rt_file_msys_to_
fc80: 77 33 32 0a 20 20 20 20 73 72 63 66 69 6c 65 3d  w32.    srcfile=
fc90: 24 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69  $func_to_tool_fi
fca0: 6c 65 5f 72 65 73 75 6c 74 0a 20 20 20 20 66 75  le_result.    fu
fcb0: 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
fcc0: 6c 20 22 24 73 72 63 66 69 6c 65 22 0a 20 20 20  l "$srcfile".   
fcd0: 20 71 73 72 63 66 69 6c 65 3d 24 66 75 6e 63 5f   qsrcfile=$func_
fce0: 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72  quote_for_eval_r
fcf0: 65 73 75 6c 74 0a 0a 20 20 20 20 23 20 4f 6e 6c  esult..    # Onl
fd00: 79 20 62 75 69 6c 64 20 61 20 50 49 43 20 6f 62  y build a PIC ob
fd10: 6a 65 63 74 20 69 66 20 77 65 20 61 72 65 20 62  ject if we are b
fd20: 75 69 6c 64 69 6e 67 20 6c 69 62 74 6f 6f 6c 20  uilding libtool 
fd30: 6c 69 62 72 61 72 69 65 73 2e 0a 20 20 20 20 69  libraries..    i
fd40: 66 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6c  f test "$build_l
fd50: 69 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 3d 20 79  ibtool_libs" = y
fd60: 65 73 3b 20 74 68 65 6e 0a 20 20 20 20 20 20 23  es; then.      #
fd70: 20 57 69 74 68 6f 75 74 20 74 68 69 73 20 61 73   Without this as
fd80: 73 69 67 6e 6d 65 6e 74 2c 20 62 61 73 65 5f 63  signment, base_c
fd90: 6f 6d 70 69 6c 65 20 67 65 74 73 20 65 6d 70 74  ompile gets empt
fda0: 69 65 64 2e 0a 20 20 20 20 20 20 66 62 73 64 5f  ied..      fbsd_
fdb0: 68 69 64 65 6f 75 73 5f 73 68 5f 62 75 67 3d 24  hideous_sh_bug=$
fdc0: 62 61 73 65 5f 63 6f 6d 70 69 6c 65 0a 0a 20 20  base_compile..  
fdd0: 20 20 20 20 69 66 20 74 65 73 74 20 22 24 70 69      if test "$pi
fde0: 63 5f 6d 6f 64 65 22 20 21 3d 20 6e 6f 3b 20 74  c_mode" != no; t
fdf0: 68 65 6e 0a 09 63 6f 6d 6d 61 6e 64 3d 22 24 62  hen..command="$b
fe00: 61 73 65 5f 63 6f 6d 70 69 6c 65 20 24 71 73 72  ase_compile $qsr
fe10: 63 66 69 6c 65 20 24 70 69 63 5f 66 6c 61 67 22  cfile $pic_flag"
fe20: 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 23 20 44  .      else..# D
fe30: 6f 6e 27 74 20 62 75 69 6c 64 20 50 49 43 20 63  on't build PIC c
fe40: 6f 64 65 0a 09 63 6f 6d 6d 61 6e 64 3d 22 24 62  ode..command="$b
fe50: 61 73 65 5f 63 6f 6d 70 69 6c 65 20 24 71 73 72  ase_compile $qsr
fe60: 63 66 69 6c 65 22 0a 20 20 20 20 20 20 66 69 0a  cfile".      fi.
fe70: 0a 20 20 20 20 20 20 66 75 6e 63 5f 6d 6b 64 69  .      func_mkdi
fe80: 72 5f 70 20 22 24 78 64 69 72 24 6f 62 6a 64 69  r_p "$xdir$objdi
fe90: 72 22 0a 0a 20 20 20 20 20 20 69 66 20 74 65 73  r"..      if tes
fea0: 74 20 2d 7a 20 22 24 6f 75 74 70 75 74 5f 6f 62  t -z "$output_ob
feb0: 6a 22 3b 20 74 68 65 6e 0a 09 23 20 50 6c 61 63  j"; then..# Plac
fec0: 65 20 50 49 43 20 6f 62 6a 65 63 74 73 20 69 6e  e PIC objects in
fed0: 20 24 6f 62 6a 64 69 72 0a 09 66 75 6e 63 5f 61   $objdir..func_a
fee0: 70 70 65 6e 64 20 63 6f 6d 6d 61 6e 64 20 22 20  ppend command " 
fef0: 2d 6f 20 24 6c 6f 62 6a 22 0a 20 20 20 20 20 20  -o $lobj".      
ff00: 66 69 0a 0a 20 20 20 20 20 20 66 75 6e 63 5f 73  fi..      func_s
ff10: 68 6f 77 5f 65 76 61 6c 5f 6c 6f 63 61 6c 65 20  how_eval_locale 
ff20: 22 24 63 6f 6d 6d 61 6e 64 22 09 5c 0a 20 20 20  "$command".\.   
ff30: 20 20 20 20 20 20 20 27 74 65 73 74 20 2d 6e 20         'test -n 
ff40: 22 24 6f 75 74 70 75 74 5f 6f 62 6a 22 20 26 26  "$output_obj" &&
ff50: 20 24 52 4d 20 24 72 65 6d 6f 76 65 6c 69 73 74   $RM $removelist
ff60: 3b 20 65 78 69 74 20 24 45 58 49 54 5f 46 41 49  ; exit $EXIT_FAI
ff70: 4c 55 52 45 27 0a 0a 20 20 20 20 20 20 69 66 20  LURE'..      if 
ff80: 74 65 73 74 20 22 24 6e 65 65 64 5f 6c 6f 63 6b  test "$need_lock
ff90: 73 22 20 3d 20 77 61 72 6e 20 26 26 0a 09 20 74  s" = warn &&.. t
ffa0: 65 73 74 20 22 58 60 63 61 74 20 24 6c 6f 63 6b  est "X`cat $lock
ffb0: 66 69 6c 65 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  file 2>/dev/null
ffc0: 60 22 20 21 3d 20 22 58 24 73 72 63 66 69 6c 65  `" != "X$srcfile
ffd0: 22 3b 20 74 68 65 6e 0a 09 24 45 43 48 4f 20 22  "; then..$ECHO "
ffe0: 5c 0a 2a 2a 2a 20 45 52 52 4f 52 2c 20 24 6c 6f  \.*** ERROR, $lo
fff0: 63 6b 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 3a  ckfile contains:
10000 0a 60 63 61 74 20 24 6c 6f 63 6b 66 69 6c 65 20  .`cat $lockfile 
10010 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a 0a 62 75  2>/dev/null`..bu
10020 74 20 69 74 20 73 68 6f 75 6c 64 20 63 6f 6e 74  t it should cont
10030 61 69 6e 3a 0a 24 73 72 63 66 69 6c 65 0a 0a 54  ain:.$srcfile..T
10040 68 69 73 20 69 6e 64 69 63 61 74 65 73 20 74 68  his indicates th
10050 61 74 20 61 6e 6f 74 68 65 72 20 70 72 6f 63 65  at another proce
10060 73 73 20 69 73 20 74 72 79 69 6e 67 20 74 6f 20  ss is trying to 
10070 75 73 65 20 74 68 65 20 73 61 6d 65 0a 74 65 6d  use the same.tem
10080 70 6f 72 61 72 79 20 6f 62 6a 65 63 74 20 66 69  porary object fi
10090 6c 65 2c 20 61 6e 64 20 6c 69 62 74 6f 6f 6c 20  le, and libtool 
100a0 63 6f 75 6c 64 20 6e 6f 74 20 77 6f 72 6b 20 61  could not work a
100b0 72 6f 75 6e 64 20 69 74 20 62 65 63 61 75 73 65  round it because
100c0 0a 79 6f 75 72 20 63 6f 6d 70 69 6c 65 72 20 64  .your compiler d
100d0 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20  oes not support 
100e0 5c 60 2d 63 27 20 61 6e 64 20 5c 60 2d 6f 27 20  \`-c' and \`-o' 
100f0 74 6f 67 65 74 68 65 72 2e 20 20 49 66 20 79 6f  together.  If yo
10100 75 0a 72 65 70 65 61 74 20 74 68 69 73 20 63 6f  u.repeat this co
10110 6d 70 69 6c 61 74 69 6f 6e 2c 20 69 74 20 6d 61  mpilation, it ma
10120 79 20 73 75 63 63 65 65 64 2c 20 62 79 20 63 68  y succeed, by ch
10130 61 6e 63 65 2c 20 62 75 74 20 79 6f 75 20 68 61  ance, but you ha
10140 64 20 62 65 74 74 65 72 0a 61 76 6f 69 64 20 70  d better.avoid p
10150 61 72 61 6c 6c 65 6c 20 62 75 69 6c 64 73 20 28  arallel builds (
10160 6d 61 6b 65 20 2d 6a 29 20 69 6e 20 74 68 69 73  make -j) in this
10170 20 70 6c 61 74 66 6f 72 6d 2c 20 6f 72 20 67 65   platform, or ge
10180 74 20 61 20 62 65 74 74 65 72 0a 63 6f 6d 70 69  t a better.compi
10190 6c 65 72 2e 22 0a 0a 09 24 6f 70 74 5f 64 72 79  ler."...$opt_dry
101a0 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d  _run || $RM $rem
101b0 6f 76 65 6c 69 73 74 0a 09 65 78 69 74 20 24 45  ovelist..exit $E
101c0 58 49 54 5f 46 41 49 4c 55 52 45 0a 20 20 20 20  XIT_FAILURE.    
101d0 20 20 66 69 0a 0a 20 20 20 20 20 20 23 20 4a 75    fi..      # Ju
101e0 73 74 20 6d 6f 76 65 20 74 68 65 20 6f 62 6a 65  st move the obje
101f0 63 74 20 69 66 20 6e 65 65 64 65 64 2c 20 74 68  ct if needed, th
10200 65 6e 20 67 6f 20 6f 6e 20 74 6f 20 63 6f 6d 70  en go on to comp
10210 69 6c 65 20 74 68 65 20 6e 65 78 74 20 6f 6e 65  ile the next one
10220 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d  .      if test -
10230 6e 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 22 20  n "$output_obj" 
10240 26 26 20 74 65 73 74 20 22 58 24 6f 75 74 70 75  && test "X$outpu
10250 74 5f 6f 62 6a 22 20 21 3d 20 22 58 24 6c 6f 62  t_obj" != "X$lob
10260 6a 22 3b 20 74 68 65 6e 0a 09 66 75 6e 63 5f 73  j"; then..func_s
10270 68 6f 77 5f 65 76 61 6c 20 27 24 4d 56 20 22 24  how_eval '$MV "$
10280 6f 75 74 70 75 74 5f 6f 62 6a 22 20 22 24 6c 6f  output_obj" "$lo
10290 62 6a 22 27 20 5c 0a 09 20 20 27 65 72 72 6f 72  bj"' \..  'error
102a0 3d 24 3f 3b 20 24 6f 70 74 5f 64 72 79 5f 72 75  =$?; $opt_dry_ru
102b0 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d 6f 76 65  n || $RM $remove
102c0 6c 69 73 74 3b 20 65 78 69 74 20 24 65 72 72 6f  list; exit $erro
102d0 72 27 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20  r'.      fi..   
102e0 20 20 20 23 20 41 6c 6c 6f 77 20 65 72 72 6f 72     # Allow error
102f0 20 6d 65 73 73 61 67 65 73 20 6f 6e 6c 79 20 66   messages only f
10300 72 6f 6d 20 74 68 65 20 66 69 72 73 74 20 63 6f  rom the first co
10310 6d 70 69 6c 61 74 69 6f 6e 2e 0a 20 20 20 20 20  mpilation..     
10320 20 69 66 20 74 65 73 74 20 22 24 73 75 70 70 72   if test "$suppr
10330 65 73 73 5f 6f 70 74 22 20 3d 20 79 65 73 3b 20  ess_opt" = yes; 
10340 74 68 65 6e 0a 09 73 75 70 70 72 65 73 73 5f 6f  then..suppress_o
10350 75 74 70 75 74 3d 27 20 3e 2f 64 65 76 2f 6e 75  utput=' >/dev/nu
10360 6c 6c 20 32 3e 26 31 27 0a 20 20 20 20 20 20 66  ll 2>&1'.      f
10370 69 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 23 20  i.    fi..    # 
10380 4f 6e 6c 79 20 62 75 69 6c 64 20 61 20 70 6f 73  Only build a pos
10390 69 74 69 6f 6e 2d 64 65 70 65 6e 64 65 6e 74 20  ition-dependent 
103a0 6f 62 6a 65 63 74 20 69 66 20 77 65 20 62 75 69  object if we bui
103b0 6c 64 20 6f 6c 64 20 6c 69 62 72 61 72 69 65 73  ld old libraries
103c0 2e 0a 20 20 20 20 69 66 20 74 65 73 74 20 22 24  ..    if test "$
103d0 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20  build_old_libs" 
103e0 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20  = yes; then.    
103f0 20 20 69 66 20 74 65 73 74 20 22 24 70 69 63 5f    if test "$pic_
10400 6d 6f 64 65 22 20 21 3d 20 79 65 73 3b 20 74 68  mode" != yes; th
10410 65 6e 0a 09 23 20 44 6f 6e 27 74 20 62 75 69 6c  en..# Don't buil
10420 64 20 50 49 43 20 63 6f 64 65 0a 09 63 6f 6d 6d  d PIC code..comm
10430 61 6e 64 3d 22 24 62 61 73 65 5f 63 6f 6d 70 69  and="$base_compi
10440 6c 65 20 24 71 73 72 63 66 69 6c 65 24 70 69 65  le $qsrcfile$pie
10450 5f 66 6c 61 67 22 0a 20 20 20 20 20 20 65 6c 73  _flag".      els
10460 65 0a 09 63 6f 6d 6d 61 6e 64 3d 22 24 62 61 73  e..command="$bas
10470 65 5f 63 6f 6d 70 69 6c 65 20 24 71 73 72 63 66  e_compile $qsrcf
10480 69 6c 65 20 24 70 69 63 5f 66 6c 61 67 22 0a 20  ile $pic_flag". 
10490 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 69 66       fi.      if
104a0 20 74 65 73 74 20 22 24 63 6f 6d 70 69 6c 65 72   test "$compiler
104b0 5f 63 5f 6f 22 20 3d 20 79 65 73 3b 20 74 68 65  _c_o" = yes; the
104c0 6e 0a 09 66 75 6e 63 5f 61 70 70 65 6e 64 20 63  n..func_append c
104d0 6f 6d 6d 61 6e 64 20 22 20 2d 6f 20 24 6f 62 6a  ommand " -o $obj
104e0 22 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20 20  ".      fi..    
104f0 20 20 23 20 53 75 70 70 72 65 73 73 20 63 6f 6d    # Suppress com
10500 70 69 6c 65 72 20 6f 75 74 70 75 74 20 69 66 20  piler output if 
10510 77 65 20 61 6c 72 65 61 64 79 20 64 69 64 20 61  we already did a
10520 20 50 49 43 20 63 6f 6d 70 69 6c 61 74 69 6f 6e   PIC compilation
10530 2e 0a 20 20 20 20 20 20 66 75 6e 63 5f 61 70 70  ..      func_app
10540 65 6e 64 20 63 6f 6d 6d 61 6e 64 20 22 24 73 75  end command "$su
10550 70 70 72 65 73 73 5f 6f 75 74 70 75 74 22 0a 20  ppress_output". 
10560 20 20 20 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65       func_show_e
10570 76 61 6c 5f 6c 6f 63 61 6c 65 20 22 24 63 6f 6d  val_locale "$com
10580 6d 61 6e 64 22 20 5c 0a 20 20 20 20 20 20 20 20  mand" \.        
10590 27 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c  '$opt_dry_run ||
105a0 20 24 52 4d 20 24 72 65 6d 6f 76 65 6c 69 73 74   $RM $removelist
105b0 3b 20 65 78 69 74 20 24 45 58 49 54 5f 46 41 49  ; exit $EXIT_FAI
105c0 4c 55 52 45 27 0a 0a 20 20 20 20 20 20 69 66 20  LURE'..      if 
105d0 74 65 73 74 20 22 24 6e 65 65 64 5f 6c 6f 63 6b  test "$need_lock
105e0 73 22 20 3d 20 77 61 72 6e 20 26 26 0a 09 20 74  s" = warn &&.. t
105f0 65 73 74 20 22 58 60 63 61 74 20 24 6c 6f 63 6b  est "X`cat $lock
10600 66 69 6c 65 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  file 2>/dev/null
10610 60 22 20 21 3d 20 22 58 24 73 72 63 66 69 6c 65  `" != "X$srcfile
10620 22 3b 20 74 68 65 6e 0a 09 24 45 43 48 4f 20 22  "; then..$ECHO "
10630 5c 0a 2a 2a 2a 20 45 52 52 4f 52 2c 20 24 6c 6f  \.*** ERROR, $lo
10640 63 6b 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 3a  ckfile contains:
10650 0a 60 63 61 74 20 24 6c 6f 63 6b 66 69 6c 65 20  .`cat $lockfile 
10660 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a 0a 62 75  2>/dev/null`..bu
10670 74 20 69 74 20 73 68 6f 75 6c 64 20 63 6f 6e 74  t it should cont
10680 61 69 6e 3a 0a 24 73 72 63 66 69 6c 65 0a 0a 54  ain:.$srcfile..T
10690 68 69 73 20 69 6e 64 69 63 61 74 65 73 20 74 68  his indicates th
106a0 61 74 20 61 6e 6f 74 68 65 72 20 70 72 6f 63 65  at another proce
106b0 73 73 20 69 73 20 74 72 79 69 6e 67 20 74 6f 20  ss is trying to 
106c0 75 73 65 20 74 68 65 20 73 61 6d 65 0a 74 65 6d  use the same.tem
106d0 70 6f 72 61 72 79 20 6f 62 6a 65 63 74 20 66 69  porary object fi
106e0 6c 65 2c 20 61 6e 64 20 6c 69 62 74 6f 6f 6c 20  le, and libtool 
106f0 63 6f 75 6c 64 20 6e 6f 74 20 77 6f 72 6b 20 61  could not work a
10700 72 6f 75 6e 64 20 69 74 20 62 65 63 61 75 73 65  round it because
10710 0a 79 6f 75 72 20 63 6f 6d 70 69 6c 65 72 20 64  .your compiler d
10720 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20  oes not support 
10730 5c 60 2d 63 27 20 61 6e 64 20 5c 60 2d 6f 27 20  \`-c' and \`-o' 
10740 74 6f 67 65 74 68 65 72 2e 20 20 49 66 20 79 6f  together.  If yo
10750 75 0a 72 65 70 65 61 74 20 74 68 69 73 20 63 6f  u.repeat this co
10760 6d 70 69 6c 61 74 69 6f 6e 2c 20 69 74 20 6d 61  mpilation, it ma
10770 79 20 73 75 63 63 65 65 64 2c 20 62 79 20 63 68  y succeed, by ch
10780 61 6e 63 65 2c 20 62 75 74 20 79 6f 75 20 68 61  ance, but you ha
10790 64 20 62 65 74 74 65 72 0a 61 76 6f 69 64 20 70  d better.avoid p
107a0 61 72 61 6c 6c 65 6c 20 62 75 69 6c 64 73 20 28  arallel builds (
107b0 6d 61 6b 65 20 2d 6a 29 20 69 6e 20 74 68 69 73  make -j) in this
107c0 20 70 6c 61 74 66 6f 72 6d 2c 20 6f 72 20 67 65   platform, or ge
107d0 74 20 61 20 62 65 74 74 65 72 0a 63 6f 6d 70 69  t a better.compi
107e0 6c 65 72 2e 22 0a 0a 09 24 6f 70 74 5f 64 72 79  ler."...$opt_dry
107f0 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 24 72 65 6d  _run || $RM $rem
10800 6f 76 65 6c 69 73 74 0a 09 65 78 69 74 20 24 45  ovelist..exit $E
10810 58 49 54 5f 46 41 49 4c 55 52 45 0a 20 20 20 20  XIT_FAILURE.    
10820 20 20 66 69 0a 0a 20 20 20 20 20 20 23 20 4a 75    fi..      # Ju
10830 73 74 20 6d 6f 76 65 20 74 68 65 20 6f 62 6a 65  st move the obje
10840 63 74 20 69 66 20 6e 65 65 64 65 64 0a 20 20 20  ct if needed.   
10850 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
10860 6f 75 74 70 75 74 5f 6f 62 6a 22 20 26 26 20 74  output_obj" && t
10870 65 73 74 20 22 58 24 6f 75 74 70 75 74 5f 6f 62  est "X$output_ob
10880 6a 22 20 21 3d 20 22 58 24 6f 62 6a 22 3b 20 74  j" != "X$obj"; t
10890 68 65 6e 0a 09 66 75 6e 63 5f 73 68 6f 77 5f 65  hen..func_show_e
108a0 76 61 6c 20 27 24 4d 56 20 22 24 6f 75 74 70 75  val '$MV "$outpu
108b0 74 5f 6f 62 6a 22 20 22 24 6f 62 6a 22 27 20 5c  t_obj" "$obj"' \
108c0 0a 09 20 20 27 65 72 72 6f 72 3d 24 3f 3b 20 24  ..  'error=$?; $
108d0 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 24  opt_dry_run || $
108e0 52 4d 20 24 72 65 6d 6f 76 65 6c 69 73 74 3b 20  RM $removelist; 
108f0 65 78 69 74 20 24 65 72 72 6f 72 27 0a 20 20 20  exit $error'.   
10900 20 20 20 66 69 0a 20 20 20 20 66 69 0a 0a 20 20     fi.    fi..  
10910 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c    $opt_dry_run |
10920 7c 20 7b 0a 20 20 20 20 20 20 66 75 6e 63 5f 77  | {.      func_w
10930 72 69 74 65 5f 6c 69 62 74 6f 6f 6c 5f 6f 62 6a  rite_libtool_obj
10940 65 63 74 20 22 24 6c 69 62 6f 62 6a 22 20 22 24  ect "$libobj" "$
10950 6f 62 6a 64 69 72 2f 24 6f 62 6a 6e 61 6d 65 22  objdir/$objname"
10960 20 22 24 6f 62 6a 6e 61 6d 65 22 0a 0a 20 20 20   "$objname"..   
10970 20 20 20 23 20 55 6e 6c 6f 63 6b 20 74 68 65 20     # Unlock the 
10980 63 72 69 74 69 63 61 6c 20 73 65 63 74 69 6f 6e  critical section
10990 20 69 66 20 69 74 20 77 61 73 20 6c 6f 63 6b 65   if it was locke
109a0 64 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  d.      if test 
109b0 22 24 6e 65 65 64 5f 6c 6f 63 6b 73 22 20 21 3d  "$need_locks" !=
109c0 20 6e 6f 3b 20 74 68 65 6e 0a 09 72 65 6d 6f 76   no; then..remov
109d0 65 6c 69 73 74 3d 24 6c 6f 63 6b 66 69 6c 65 0a  elist=$lockfile.
109e0 20 20 20 20 20 20 20 20 24 52 4d 20 22 24 6c 6f          $RM "$lo
109f0 63 6b 66 69 6c 65 22 0a 20 20 20 20 20 20 66 69  ckfile".      fi
10a00 0a 20 20 20 20 7d 0a 0a 20 20 20 20 65 78 69 74  .    }..    exit
10a10 20 24 45 58 49 54 5f 53 55 43 43 45 53 53 0a 7d   $EXIT_SUCCESS.}
10a20 0a 0a 24 6f 70 74 5f 68 65 6c 70 20 7c 7c 20 7b  ..$opt_help || {
10a30 0a 20 20 74 65 73 74 20 22 24 6f 70 74 5f 6d 6f  .  test "$opt_mo
10a40 64 65 22 20 3d 20 63 6f 6d 70 69 6c 65 20 26 26  de" = compile &&
10a50 20 66 75 6e 63 5f 6d 6f 64 65 5f 63 6f 6d 70 69   func_mode_compi
10a60 6c 65 20 24 7b 31 2b 22 24 40 22 7d 0a 7d 0a 0a  le ${1+"$@"}.}..
10a70 66 75 6e 63 5f 6d 6f 64 65 5f 68 65 6c 70 20 28  func_mode_help (
10a80 29 0a 7b 0a 20 20 20 20 23 20 57 65 20 6e 65 65  ).{.    # We nee
10a90 64 20 74 6f 20 64 69 73 70 6c 61 79 20 68 65 6c  d to display hel
10aa0 70 20 66 6f 72 20 65 61 63 68 20 6f 66 20 74 68  p for each of th
10ab0 65 20 6d 6f 64 65 73 2e 0a 20 20 20 20 63 61 73  e modes..    cas
10ac0 65 20 24 6f 70 74 5f 6d 6f 64 65 20 69 6e 0a 20  e $opt_mode in. 
10ad0 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20       "").       
10ae0 20 23 20 47 65 6e 65 72 69 63 20 68 65 6c 70 20   # Generic help 
10af0 69 73 20 65 78 74 72 61 63 74 65 64 20 66 72 6f  is extracted fro
10b00 6d 20 74 68 65 20 75 73 61 67 65 20 63 6f 6d 6d  m the usage comm
10b10 65 6e 74 73 0a 20 20 20 20 20 20 20 20 23 20 61  ents.        # a
10b20 74 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74  t the start of t
10b30 68 69 73 20 66 69 6c 65 2e 0a 20 20 20 20 20 20  his file..      
10b40 20 20 66 75 6e 63 5f 68 65 6c 70 0a 20 20 20 20    func_help.    
10b50 20 20 20 20 3b 3b 0a 0a 20 20 20 20 20 20 63 6c      ;;..      cl
10b60 65 61 6e 29 0a 20 20 20 20 20 20 20 20 24 45 43  ean).        $EC
10b70 48 4f 20 5c 0a 22 55 73 61 67 65 3a 20 24 70 72  HO \."Usage: $pr
10b80 6f 67 6e 61 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e  ogname [OPTION].
10b90 2e 2e 20 2d 2d 6d 6f 64 65 3d 63 6c 65 61 6e 20  .. --mode=clean 
10ba0 52 4d 20 5b 52 4d 2d 4f 50 54 49 4f 4e 5d 2e 2e  RM [RM-OPTION]..
10bb0 2e 20 46 49 4c 45 2e 2e 2e 0a 0a 52 65 6d 6f 76  . FILE.....Remov
10bc0 65 20 66 69 6c 65 73 20 66 72 6f 6d 20 74 68 65  e files from the
10bd0 20 62 75 69 6c 64 20 64 69 72 65 63 74 6f 72 79   build directory
10be0 2e 0a 0a 52 4d 20 69 73 20 74 68 65 20 6e 61 6d  ...RM is the nam
10bf0 65 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d  e of the program
10c00 20 74 6f 20 75 73 65 20 74 6f 20 64 65 6c 65 74   to use to delet
10c10 65 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74  e files associat
10c20 65 64 20 77 69 74 68 20 65 61 63 68 20 46 49 4c  ed with each FIL
10c30 45 0a 28 74 79 70 69 63 61 6c 6c 79 20 5c 60 2f  E.(typically \`/
10c40 62 69 6e 2f 72 6d 27 29 2e 20 20 52 4d 2d 4f 50  bin/rm').  RM-OP
10c50 54 49 4f 4e 53 20 61 72 65 20 6f 70 74 69 6f 6e  TIONS are option
10c60 73 20 28 73 75 63 68 20 61 73 20 5c 60 2d 66 27  s (such as \`-f'
10c70 29 20 74 6f 20 62 65 20 70 61 73 73 65 64 0a 74  ) to be passed.t
10c80 6f 20 52 4d 2e 0a 0a 49 66 20 46 49 4c 45 20 69  o RM...If FILE i
10c90 73 20 61 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72  s a libtool libr
10ca0 61 72 79 2c 20 6f 62 6a 65 63 74 20 6f 72 20 70  ary, object or p
10cb0 72 6f 67 72 61 6d 2c 20 61 6c 6c 20 74 68 65 20  rogram, all the 
10cc0 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64  files associated
10cd0 0a 77 69 74 68 20 69 74 20 61 72 65 20 64 65 6c  .with it are del
10ce0 65 74 65 64 2e 20 4f 74 68 65 72 77 69 73 65 2c  eted. Otherwise,
10cf0 20 6f 6e 6c 79 20 46 49 4c 45 20 69 74 73 65 6c   only FILE itsel
10d00 66 20 69 73 20 64 65 6c 65 74 65 64 20 75 73 69  f is deleted usi
10d10 6e 67 20 52 4d 2e 22 0a 20 20 20 20 20 20 20 20  ng RM.".        
10d20 3b 3b 0a 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c  ;;..      compil
10d30 65 29 0a 20 20 20 20 20 20 24 45 43 48 4f 20 5c  e).      $ECHO \
10d40 0a 22 55 73 61 67 65 3a 20 24 70 72 6f 67 6e 61  ."Usage: $progna
10d50 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e 2e 2e 20 2d  me [OPTION]... -
10d60 2d 6d 6f 64 65 3d 63 6f 6d 70 69 6c 65 20 43 4f  -mode=compile CO
10d70 4d 50 49 4c 45 2d 43 4f 4d 4d 41 4e 44 2e 2e 2e  MPILE-COMMAND...
10d80 20 53 4f 55 52 43 45 46 49 4c 45 0a 0a 43 6f 6d   SOURCEFILE..Com
10d90 70 69 6c 65 20 61 20 73 6f 75 72 63 65 20 66 69  pile a source fi
10da0 6c 65 20 69 6e 74 6f 20 61 20 6c 69 62 74 6f 6f  le into a libtoo
10db0 6c 20 6c 69 62 72 61 72 79 20 6f 62 6a 65 63 74  l library object
10dc0 2e 0a 0a 54 68 69 73 20 6d 6f 64 65 20 61 63 63  ...This mode acc
10dd0 65 70 74 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69  epts the followi
10de0 6e 67 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 70  ng additional op
10df0 74 69 6f 6e 73 3a 0a 0a 20 20 2d 6f 20 4f 55 54  tions:..  -o OUT
10e00 50 55 54 2d 46 49 4c 45 20 20 20 20 73 65 74 20  PUT-FILE    set 
10e10 74 68 65 20 6f 75 74 70 75 74 20 66 69 6c 65 20  the output file 
10e20 6e 61 6d 65 20 74 6f 20 4f 55 54 50 55 54 2d 46  name to OUTPUT-F
10e30 49 4c 45 0a 20 20 2d 6e 6f 2d 73 75 70 70 72 65  ILE.  -no-suppre
10e40 73 73 20 20 20 20 20 20 64 6f 20 6e 6f 74 20 73  ss      do not s
10e50 75 70 70 72 65 73 73 20 63 6f 6d 70 69 6c 65 72  uppress compiler
10e60 20 6f 75 74 70 75 74 20 66 6f 72 20 6d 75 6c 74   output for mult
10e70 69 70 6c 65 20 70 61 73 73 65 73 0a 20 20 2d 70  iple passes.  -p
10e80 72 65 66 65 72 2d 70 69 63 20 20 20 20 20 20 20  refer-pic       
10e90 74 72 79 20 74 6f 20 62 75 69 6c 64 20 50 49 43  try to build PIC
10ea0 20 6f 62 6a 65 63 74 73 20 6f 6e 6c 79 0a 20 20   objects only.  
10eb0 2d 70 72 65 66 65 72 2d 6e 6f 6e 2d 70 69 63 20  -prefer-non-pic 
10ec0 20 20 74 72 79 20 74 6f 20 62 75 69 6c 64 20 6e    try to build n
10ed0 6f 6e 2d 50 49 43 20 6f 62 6a 65 63 74 73 20 6f  on-PIC objects o
10ee0 6e 6c 79 0a 20 20 2d 73 68 61 72 65 64 20 20 20  nly.  -shared   
10ef0 20 20 20 20 20 20 20 20 64 6f 20 6e 6f 74 20 62          do not b
10f00 75 69 6c 64 20 61 20 5c 60 2e 6f 27 20 66 69 6c  uild a \`.o' fil
10f10 65 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 73  e suitable for s
10f20 74 61 74 69 63 20 6c 69 6e 6b 69 6e 67 0a 20 20  tatic linking.  
10f30 2d 73 74 61 74 69 63 20 20 20 20 20 20 20 20 20  -static         
10f40 20 20 6f 6e 6c 79 20 62 75 69 6c 64 20 61 20 5c    only build a \
10f50 60 2e 6f 27 20 66 69 6c 65 20 73 75 69 74 61 62  `.o' file suitab
10f60 6c 65 20 66 6f 72 20 73 74 61 74 69 63 20 6c 69  le for static li
10f70 6e 6b 69 6e 67 0a 20 20 2d 57 63 2c 46 4c 41 47  nking.  -Wc,FLAG
10f80 20 20 20 20 20 20 20 20 20 20 70 61 73 73 20 46            pass F
10f90 4c 41 47 20 64 69 72 65 63 74 6c 79 20 74 6f 20  LAG directly to 
10fa0 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 0a 43 4f  the compiler..CO
10fb0 4d 50 49 4c 45 2d 43 4f 4d 4d 41 4e 44 20 69 73  MPILE-COMMAND is
10fc0 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 65   a command to be
10fd0 20 75 73 65 64 20 69 6e 20 63 72 65 61 74 69 6e   used in creatin
10fe0 67 20 61 20 5c 60 73 74 61 6e 64 61 72 64 27 20  g a \`standard' 
10ff0 6f 62 6a 65 63 74 20 66 69 6c 65 0a 66 72 6f 6d  object file.from
11000 20 74 68 65 20 67 69 76 65 6e 20 53 4f 55 52 43   the given SOURC
11010 45 46 49 4c 45 2e 0a 0a 54 68 65 20 6f 75 74 70  EFILE...The outp
11020 75 74 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20  ut file name is 
11030 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 72 65  determined by re
11040 6d 6f 76 69 6e 67 20 74 68 65 20 64 69 72 65 63  moving the direc
11050 74 6f 72 79 20 63 6f 6d 70 6f 6e 65 6e 74 20 66  tory component f
11060 72 6f 6d 0a 53 4f 55 52 43 45 46 49 4c 45 2c 20  rom.SOURCEFILE, 
11070 74 68 65 6e 20 73 75 62 73 74 69 74 75 74 69 6e  then substitutin
11080 67 20 74 68 65 20 43 20 73 6f 75 72 63 65 20 63  g the C source c
11090 6f 64 65 20 73 75 66 66 69 78 20 5c 60 2e 63 27  ode suffix \`.c'
110a0 20 77 69 74 68 20 74 68 65 0a 6c 69 62 72 61 72   with the.librar
110b0 79 20 6f 62 6a 65 63 74 20 73 75 66 66 69 78 2c  y object suffix,
110c0 20 5c 60 2e 6c 6f 27 2e 22 0a 20 20 20 20 20 20   \`.lo'.".      
110d0 20 20 3b 3b 0a 0a 20 20 20 20 20 20 65 78 65 63    ;;..      exec
110e0 75 74 65 29 0a 20 20 20 20 20 20 20 20 24 45 43  ute).        $EC
110f0 48 4f 20 5c 0a 22 55 73 61 67 65 3a 20 24 70 72  HO \."Usage: $pr
11100 6f 67 6e 61 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e  ogname [OPTION].
11110 2e 2e 20 2d 2d 6d 6f 64 65 3d 65 78 65 63 75 74  .. --mode=execut
11120 65 20 43 4f 4d 4d 41 4e 44 20 5b 41 52 47 53 5d  e COMMAND [ARGS]
11130 2e 2e 2e 0a 0a 41 75 74 6f 6d 61 74 69 63 61 6c  .....Automatical
11140 6c 79 20 73 65 74 20 6c 69 62 72 61 72 79 20 70  ly set library p
11150 61 74 68 2c 20 74 68 65 6e 20 72 75 6e 20 61 20  ath, then run a 
11160 70 72 6f 67 72 61 6d 2e 0a 0a 54 68 69 73 20 6d  program...This m
11170 6f 64 65 20 61 63 63 65 70 74 73 20 74 68 65 20  ode accepts the 
11180 66 6f 6c 6c 6f 77 69 6e 67 20 61 64 64 69 74 69  following additi
11190 6f 6e 61 6c 20 6f 70 74 69 6f 6e 73 3a 0a 0a 20  onal options:.. 
111a0 20 2d 64 6c 6f 70 65 6e 20 46 49 4c 45 20 20 20   -dlopen FILE   
111b0 20 20 20 61 64 64 20 74 68 65 20 64 69 72 65 63     add the direc
111c0 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20  tory containing 
111d0 46 49 4c 45 20 74 6f 20 74 68 65 20 6c 69 62 72  FILE to the libr
111e0 61 72 79 20 70 61 74 68 0a 0a 54 68 69 73 20 6d  ary path..This m
111f0 6f 64 65 20 73 65 74 73 20 74 68 65 20 6c 69 62  ode sets the lib
11200 72 61 72 79 20 70 61 74 68 20 65 6e 76 69 72 6f  rary path enviro
11210 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 61  nment variable a
11220 63 63 6f 72 64 69 6e 67 20 74 6f 20 5c 60 2d 64  ccording to \`-d
11230 6c 6f 70 65 6e 27 0a 66 6c 61 67 73 2e 0a 0a 49  lopen'.flags...I
11240 66 20 61 6e 79 20 6f 66 20 74 68 65 20 41 52 47  f any of the ARG
11250 53 20 61 72 65 20 6c 69 62 74 6f 6f 6c 20 65 78  S are libtool ex
11260 65 63 75 74 61 62 6c 65 20 77 72 61 70 70 65 72  ecutable wrapper
11270 73 2c 20 74 68 65 6e 20 74 68 65 79 20 61 72 65  s, then they are
11280 20 74 72 61 6e 73 6c 61 74 65 64 0a 69 6e 74 6f   translated.into
11290 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e   their correspon
112a0 64 69 6e 67 20 75 6e 69 6e 73 74 61 6c 6c 65 64  ding uninstalled
112b0 20 62 69 6e 61 72 79 2c 20 61 6e 64 20 61 6e 79   binary, and any
112c0 20 6f 66 20 74 68 65 69 72 20 72 65 71 75 69 72   of their requir
112d0 65 64 20 6c 69 62 72 61 72 79 0a 64 69 72 65 63  ed library.direc
112e0 74 6f 72 69 65 73 20 61 72 65 20 61 64 64 65 64  tories are added
112f0 20 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 20   to the library 
11300 70 61 74 68 2e 0a 0a 54 68 65 6e 2c 20 43 4f 4d  path...Then, COM
11310 4d 41 4e 44 20 69 73 20 65 78 65 63 75 74 65 64  MAND is executed
11320 2c 20 77 69 74 68 20 41 52 47 53 20 61 73 20 61  , with ARGS as a
11330 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 20 20 20  rguments.".     
11340 20 20 20 3b 3b 0a 0a 20 20 20 20 20 20 66 69 6e     ;;..      fin
11350 69 73 68 29 0a 20 20 20 20 20 20 20 20 24 45 43  ish).        $EC
11360 48 4f 20 5c 0a 22 55 73 61 67 65 3a 20 24 70 72  HO \."Usage: $pr
11370 6f 67 6e 61 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e  ogname [OPTION].
11380 2e 2e 20 2d 2d 6d 6f 64 65 3d 66 69 6e 69 73 68  .. --mode=finish
11390 20 5b 4c 49 42 44 49 52 5d 2e 2e 2e 0a 0a 43 6f   [LIBDIR].....Co
113a0 6d 70 6c 65 74 65 20 74 68 65 20 69 6e 73 74 61  mplete the insta
113b0 6c 6c 61 74 69 6f 6e 20 6f 66 20 6c 69 62 74 6f  llation of libto
113c0 6f 6c 20 6c 69 62 72 61 72 69 65 73 2e 0a 0a 45  ol libraries...E
113d0 61 63 68 20 4c 49 42 44 49 52 20 69 73 20 61 20  ach LIBDIR is a 
113e0 64 69 72 65 63 74 6f 72 79 20 74 68 61 74 20 63  directory that c
113f0 6f 6e 74 61 69 6e 73 20 6c 69 62 74 6f 6f 6c 20  ontains libtool 
11400 6c 69 62 72 61 72 69 65 73 2e 0a 0a 54 68 65 20  libraries...The 
11410 63 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 74 68  commands that th
11420 69 73 20 6d 6f 64 65 20 65 78 65 63 75 74 65 73  is mode executes
11430 20 6d 61 79 20 72 65 71 75 69 72 65 20 73 75 70   may require sup
11440 65 72 75 73 65 72 20 70 72 69 76 69 6c 65 67 65  eruser privilege
11450 73 2e 20 20 55 73 65 0a 74 68 65 20 5c 60 2d 2d  s.  Use.the \`--
11460 64 72 79 2d 72 75 6e 27 20 6f 70 74 69 6f 6e 20  dry-run' option 
11470 69 66 20 79 6f 75 20 6a 75 73 74 20 77 61 6e 74  if you just want
11480 20 74 6f 20 73 65 65 20 77 68 61 74 20 77 6f 75   to see what wou
11490 6c 64 20 62 65 20 65 78 65 63 75 74 65 64 2e 22  ld be executed."
114a0 0a 20 20 20 20 20 20 20 20 3b 3b 0a 0a 20 20 20  .        ;;..   
114b0 20 20 20 69 6e 73 74 61 6c 6c 29 0a 20 20 20 20     install).    
114c0 20 20 20 20 24 45 43 48 4f 20 5c 0a 22 55 73 61      $ECHO \."Usa
114d0 67 65 3a 20 24 70 72 6f 67 6e 61 6d 65 20 5b 4f  ge: $progname [O
114e0 50 54 49 4f 4e 5d 2e 2e 2e 20 2d 2d 6d 6f 64 65  PTION]... --mode
114f0 3d 69 6e 73 74 61 6c 6c 20 49 4e 53 54 41 4c 4c  =install INSTALL
11500 2d 43 4f 4d 4d 41 4e 44 2e 2e 2e 0a 0a 49 6e 73  -COMMAND.....Ins
11510 74 61 6c 6c 20 65 78 65 63 75 74 61 62 6c 65 73  tall executables
11520 20 6f 72 20 6c 69 62 72 61 72 69 65 73 2e 0a 0a   or libraries...
11530 49 4e 53 54 41 4c 4c 2d 43 4f 4d 4d 41 4e 44 20  INSTALL-COMMAND 
11540 69 73 20 74 68 65 20 69 6e 73 74 61 6c 6c 61 74  is the installat
11550 69 6f 6e 20 63 6f 6d 6d 61 6e 64 2e 20 20 54 68  ion command.  Th
11560 65 20 66 69 72 73 74 20 63 6f 6d 70 6f 6e 65 6e  e first componen
11570 74 20 73 68 6f 75 6c 64 20 62 65 0a 65 69 74 68  t should be.eith
11580 65 72 20 74 68 65 20 5c 60 69 6e 73 74 61 6c 6c  er the \`install
11590 27 20 6f 72 20 5c 60 63 70 27 20 70 72 6f 67 72  ' or \`cp' progr
115a0 61 6d 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69  am...The followi
115b0 6e 67 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66  ng components of
115c0 20 49 4e 53 54 41 4c 4c 2d 43 4f 4d 4d 41 4e 44   INSTALL-COMMAND
115d0 20 61 72 65 20 74 72 65 61 74 65 64 20 73 70 65   are treated spe
115e0 63 69 61 6c 6c 79 3a 0a 0a 20 20 2d 69 6e 73 74  cially:..  -inst
115f0 2d 70 72 65 66 69 78 2d 64 69 72 20 50 52 45 46  -prefix-dir PREF
11600 49 58 2d 44 49 52 20 20 55 73 65 20 50 52 45 46  IX-DIR  Use PREF
11610 49 58 2d 44 49 52 20 61 73 20 61 20 73 74 61 67  IX-DIR as a stag
11620 69 6e 67 20 61 72 65 61 20 66 6f 72 20 69 6e 73  ing area for ins
11630 74 61 6c 6c 61 74 69 6f 6e 0a 0a 54 68 65 20 72  tallation..The r
11640 65 73 74 20 6f 66 20 74 68 65 20 63 6f 6d 70 6f  est of the compo
11650 6e 65 6e 74 73 20 61 72 65 20 69 6e 74 65 72 70  nents are interp
11660 72 65 74 65 64 20 61 73 20 61 72 67 75 6d 65 6e  reted as argumen
11670 74 73 20 74 6f 20 74 68 61 74 20 63 6f 6d 6d 61  ts to that comma
11680 6e 64 20 28 6f 6e 6c 79 0a 42 53 44 2d 63 6f 6d  nd (only.BSD-com
11690 70 61 74 69 62 6c 65 20 69 6e 73 74 61 6c 6c 20  patible install 
116a0 6f 70 74 69 6f 6e 73 20 61 72 65 20 72 65 63 6f  options are reco
116b0 67 6e 69 7a 65 64 29 2e 22 0a 20 20 20 20 20 20  gnized).".      
116c0 20 20 3b 3b 0a 0a 20 20 20 20 20 20 6c 69 6e 6b    ;;..      link
116d0 29 0a 20 20 20 20 20 20 20 20 24 45 43 48 4f 20  ).        $ECHO 
116e0 5c 0a 22 55 73 61 67 65 3a 20 24 70 72 6f 67 6e  \."Usage: $progn
116f0 61 6d 65 20 5b 4f 50 54 49 4f 4e 5d 2e 2e 2e 20  ame [OPTION]... 
11700 2d 2d 6d 6f 64 65 3d 6c 69 6e 6b 20 4c 49 4e 4b  --mode=link LINK
11710 2d 43 4f 4d 4d 41 4e 44 2e 2e 2e 0a 0a 4c 69 6e  -COMMAND.....Lin
11720 6b 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 6f  k object files o
11730 72 20 6c 69 62 72 61 72 69 65 73 20 74 6f 67 65  r libraries toge
11740 74 68 65 72 20 74 6f 20 66 6f 72 6d 20 61 6e 6f  ther to form ano
11750 74 68 65 72 20 6c 69 62 72 61 72 79 2c 20 6f 72  ther library, or
11760 20 74 6f 0a 63 72 65 61 74 65 20 61 6e 20 65 78   to.create an ex
11770 65 63 75 74 61 62 6c 65 20 70 72 6f 67 72 61 6d  ecutable program
11780 2e 0a 0a 4c 49 4e 4b 2d 43 4f 4d 4d 41 4e 44 20  ...LINK-COMMAND 
11790 69 73 20 61 20 63 6f 6d 6d 61 6e 64 20 75 73 69  is a command usi
117a0 6e 67 20 74 68 65 20 43 20 63 6f 6d 70 69 6c 65  ng the C compile
117b0 72 20 74 68 61 74 20 79 6f 75 20 77 6f 75 6c 64  r that you would
117c0 20 75 73 65 20 74 6f 20 63 72 65 61 74 65 0a 61   use to create.a
117d0 20 70 72 6f 67 72 61 6d 20 66 72 6f 6d 20 73 65   program from se
117e0 76 65 72 61 6c 20 6f 62 6a 65 63 74 20 66 69 6c  veral object fil
117f0 65 73 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69  es...The followi
11800 6e 67 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66  ng components of
11810 20 4c 49 4e 4b 2d 43 4f 4d 4d 41 4e 44 20 61 72   LINK-COMMAND ar
11820 65 20 74 72 65 61 74 65 64 20 73 70 65 63 69 61  e treated specia
11830 6c 6c 79 3a 0a 0a 20 20 2d 61 6c 6c 2d 73 74 61  lly:..  -all-sta
11840 74 69 63 20 20 20 20 20 20 20 64 6f 20 6e 6f 74  tic       do not
11850 20 64 6f 20 61 6e 79 20 64 79 6e 61 6d 69 63 20   do any dynamic 
11860 6c 69 6e 6b 69 6e 67 20 61 74 20 61 6c 6c 0a 20  linking at all. 
11870 20 2d 61 76 6f 69 64 2d 76 65 72 73 69 6f 6e 20   -avoid-version 
11880 20 20 20 64 6f 20 6e 6f 74 20 61 64 64 20 61 20     do not add a 
11890 76 65 72 73 69 6f 6e 20 73 75 66 66 69 78 20 69  version suffix i
118a0 66 20 70 6f 73 73 69 62 6c 65 0a 20 20 2d 62 69  f possible.  -bi
118b0 6e 64 69 72 20 42 49 4e 44 49 52 20 20 20 20 73  ndir BINDIR    s
118c0 70 65 63 69 66 79 20 70 61 74 68 20 74 6f 20 62  pecify path to b
118d0 69 6e 61 72 69 65 73 20 64 69 72 65 63 74 6f 72  inaries director
118e0 79 20 28 66 6f 72 20 73 79 73 74 65 6d 73 20 77  y (for systems w
118f0 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 20  here.           
11900 20 20 20 20 20 20 20 20 20 6c 69 62 72 61 72 69           librari
11910 65 73 20 6d 75 73 74 20 62 65 20 66 6f 75 6e 64  es must be found
11920 20 69 6e 20 74 68 65 20 50 41 54 48 20 73 65 74   in the PATH set
11930 74 69 6e 67 20 61 74 20 72 75 6e 74 69 6d 65 29  ting at runtime)
11940 0a 20 20 2d 64 6c 6f 70 65 6e 20 46 49 4c 45 20  .  -dlopen FILE 
11950 20 20 20 20 20 5c 60 2d 64 6c 70 72 65 6f 70 65       \`-dlpreope
11960 6e 27 20 46 49 4c 45 20 69 66 20 69 74 20 63 61  n' FILE if it ca
11970 6e 6e 6f 74 20 62 65 20 64 6c 6f 70 65 6e 65 64  nnot be dlopened
11980 20 61 74 20 72 75 6e 74 69 6d 65 0a 20 20 2d 64   at runtime.  -d
11990 6c 70 72 65 6f 70 65 6e 20 46 49 4c 45 20 20 20  lpreopen FILE   
119a0 6c 69 6e 6b 20 69 6e 20 46 49 4c 45 20 61 6e 64  link in FILE and
119b0 20 61 64 64 20 69 74 73 20 73 79 6d 62 6f 6c 73   add its symbols
119c0 20 74 6f 20 6c 74 5f 70 72 65 6c 6f 61 64 65 64   to lt_preloaded
119d0 5f 73 79 6d 62 6f 6c 73 0a 20 20 2d 65 78 70 6f  _symbols.  -expo
119e0 72 74 2d 64 79 6e 61 6d 69 63 20 20 20 61 6c 6c  rt-dynamic   all
119f0 6f 77 20 73 79 6d 62 6f 6c 73 20 66 72 6f 6d 20  ow symbols from 
11a00 4f 55 54 50 55 54 2d 46 49 4c 45 20 74 6f 20 62  OUTPUT-FILE to b
11a10 65 20 72 65 73 6f 6c 76 65 64 20 77 69 74 68 20  e resolved with 
11a20 64 6c 73 79 6d 28 33 29 0a 20 20 2d 65 78 70 6f  dlsym(3).  -expo
11a30 72 74 2d 73 79 6d 62 6f 6c 73 20 53 59 4d 46 49  rt-symbols SYMFI
11a40 4c 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  LE.             
11a50 20 20 20 20 20 20 20 74 72 79 20 74 6f 20 65 78         try to ex
11a60 70 6f 72 74 20 6f 6e 6c 79 20 74 68 65 20 73 79  port only the sy
11a70 6d 62 6f 6c 73 20 6c 69 73 74 65 64 20 69 6e 20  mbols listed in 
11a80 53 59 4d 46 49 4c 45 0a 20 20 2d 65 78 70 6f 72  SYMFILE.  -expor
11a90 74 2d 73 79 6d 62 6f 6c 73 2d 72 65 67 65 78 20  t-symbols-regex 
11aa0 52 45 47 45 58 0a 20 20 20 20 20 20 20 20 20 20  REGEX.          
11ab0 20 20 20 20 20 20 20 20 20 20 74 72 79 20 74 6f            try to
11ac0 20 65 78 70 6f 72 74 20 6f 6e 6c 79 20 74 68 65   export only the
11ad0 20 73 79 6d 62 6f 6c 73 20 6d 61 74 63 68 69 6e   symbols matchin
11ae0 67 20 52 45 47 45 58 0a 20 20 2d 4c 4c 49 42 44  g REGEX.  -LLIBD
11af0 49 52 20 20 20 20 20 20 20 20 20 20 73 65 61 72  IR          sear
11b00 63 68 20 4c 49 42 44 49 52 20 66 6f 72 20 72 65  ch LIBDIR for re
11b10 71 75 69 72 65 64 20 69 6e 73 74 61 6c 6c 65 64  quired installed
11b20 20 6c 69 62 72 61 72 69 65 73 0a 20 20 2d 6c 4e   libraries.  -lN
11b30 41 4d 45 20 20 20 20 20 20 20 20 20 20 20 20 4f  AME            O
11b40 55 54 50 55 54 2d 46 49 4c 45 20 72 65 71 75 69  UTPUT-FILE requi
11b50 72 65 73 20 74 68 65 20 69 6e 73 74 61 6c 6c 65  res the installe
11b60 64 20 6c 69 62 72 61 72 79 20 6c 69 62 4e 41 4d  d library libNAM
11b70 45 0a 20 20 2d 6d 6f 64 75 6c 65 20 20 20 20 20  E.  -module     
11b80 20 20 20 20 20 20 62 75 69 6c 64 20 61 20 6c 69        build a li
11b90 62 72 61 72 79 20 74 68 61 74 20 63 61 6e 20 64  brary that can d
11ba0 6c 6f 70 65 6e 65 64 0a 20 20 2d 6e 6f 2d 66 61  lopened.  -no-fa
11bb0 73 74 2d 69 6e 73 74 61 6c 6c 20 20 64 69 73 61  st-install  disa
11bc0 62 6c 65 20 74 68 65 20 66 61 73 74 2d 69 6e 73  ble the fast-ins
11bd0 74 61 6c 6c 20 6d 6f 64 65 0a 20 20 2d 6e 6f 2d  tall mode.  -no-
11be0 69 6e 73 74 61 6c 6c 20 20 20 20 20 20 20 6c 69  install       li
11bf0 6e 6b 20 61 20 6e 6f 74 2d 69 6e 73 74 61 6c 6c  nk a not-install
11c00 61 62 6c 65 20 65 78 65 63 75 74 61 62 6c 65 0a  able executable.
11c10 20 20 2d 6e 6f 2d 75 6e 64 65 66 69 6e 65 64 20    -no-undefined 
11c20 20 20 20 20 64 65 63 6c 61 72 65 20 74 68 61 74      declare that
11c30 20 61 20 6c 69 62 72 61 72 79 20 64 6f 65 73 20   a library does 
11c40 6e 6f 74 20 72 65 66 65 72 20 74 6f 20 65 78 74  not refer to ext
11c50 65 72 6e 61 6c 20 73 79 6d 62 6f 6c 73 0a 20 20  ernal symbols.  
11c60 2d 6f 20 4f 55 54 50 55 54 2d 46 49 4c 45 20 20  -o OUTPUT-FILE  
11c70 20 20 63 72 65 61 74 65 20 4f 55 54 50 55 54 2d    create OUTPUT-
11c80 46 49 4c 45 20 66 72 6f 6d 20 74 68 65 20 73 70  FILE from the sp
11c90 65 63 69 66 69 65 64 20 6f 62 6a 65 63 74 73 0a  ecified objects.
11ca0 20 20 2d 6f 62 6a 65 63 74 6c 69 73 74 20 46 49    -objectlist FI
11cb0 4c 45 20 20 55 73 65 20 61 20 6c 69 73 74 20 6f  LE  Use a list o
11cc0 66 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 66  f object files f
11cd0 6f 75 6e 64 20 69 6e 20 46 49 4c 45 20 74 6f 20  ound in FILE to 
11ce0 73 70 65 63 69 66 79 20 6f 62 6a 65 63 74 73 0a  specify objects.
11cf0 20 20 2d 70 72 65 63 69 6f 75 73 2d 66 69 6c 65    -precious-file
11d00 73 2d 72 65 67 65 78 20 52 45 47 45 58 0a 20 20  s-regex REGEX.  
11d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11d20 20 20 64 6f 6e 27 74 20 72 65 6d 6f 76 65 20 6f    don't remove o
11d30 75 74 70 75 74 20 66 69 6c 65 73 20 6d 61 74 63  utput files matc
11d40 68 69 6e 67 20 52 45 47 45 58 0a 20 20 2d 72 65  hing REGEX.  -re
11d50 6c 65 61 73 65 20 52 45 4c 45 41 53 45 20 20 73  lease RELEASE  s
11d60 70 65 63 69 66 79 20 70 61 63 6b 61 67 65 20 72  pecify package r
11d70 65 6c 65 61 73 65 20 69 6e 66 6f 72 6d 61 74 69  elease informati
11d80 6f 6e 0a 20 20 2d 72 70 61 74 68 20 4c 49 42 44  on.  -rpath LIBD
11d90 49 52 20 20 20 20 20 74 68 65 20 63 72 65 61 74  IR     the creat
11da0 65 64 20 6c 69 62 72 61 72 79 20 77 69 6c 6c 20  ed library will 
11db0 65 76 65 6e 74 75 61 6c 6c 79 20 62 65 20 69 6e  eventually be in
11dc0 73 74 61 6c 6c 65 64 20 69 6e 20 4c 49 42 44 49  stalled in LIBDI
11dd0 52 0a 20 20 2d 52 5b 20 5d 4c 49 42 44 49 52 20  R.  -R[ ]LIBDIR 
11de0 20 20 20 20 20 20 61 64 64 20 4c 49 42 44 49 52        add LIBDIR
11df0 20 74 6f 20 74 68 65 20 72 75 6e 74 69 6d 65 20   to the runtime 
11e00 70 61 74 68 20 6f 66 20 70 72 6f 67 72 61 6d 73  path of programs
11e10 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 0a 20   and libraries. 
11e20 20 2d 73 68 61 72 65 64 20 20 20 20 20 20 20 20   -shared        
11e30 20 20 20 6f 6e 6c 79 20 64 6f 20 64 79 6e 61 6d     only do dynam
11e40 69 63 20 6c 69 6e 6b 69 6e 67 20 6f 66 20 6c 69  ic linking of li
11e50 62 74 6f 6f 6c 20 6c 69 62 72 61 72 69 65 73 0a  btool libraries.
11e60 20 20 2d 73 68 72 65 78 74 20 53 55 46 46 49 58    -shrext SUFFIX
11e70 20 20 20 20 6f 76 65 72 72 69 64 65 20 74 68 65      override the
11e80 20 73 74 61 6e 64 61 72 64 20 73 68 61 72 65 64   standard shared
11e90 20 6c 69 62 72 61 72 79 20 66 69 6c 65 20 65 78   library file ex
11ea0 74 65 6e 73 69 6f 6e 0a 20 20 2d 73 74 61 74 69  tension.  -stati
11eb0 63 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 6e  c           do n
11ec0 6f 74 20 64 6f 20 61 6e 79 20 64 79 6e 61 6d 69  ot do any dynami
11ed0 63 20 6c 69 6e 6b 69 6e 67 20 6f 66 20 75 6e 69  c linking of uni
11ee0 6e 73 74 61 6c 6c 65 64 20 6c 69 62 74 6f 6f 6c  nstalled libtool
11ef0 20 6c 69 62 72 61 72 69 65 73 0a 20 20 2d 73 74   libraries.  -st
11f00 61 74 69 63 2d 6c 69 62 74 6f 6f 6c 2d 6c 69 62  atic-libtool-lib
11f10 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  s.              
11f20 20 20 20 20 20 20 64 6f 20 6e 6f 74 20 64 6f 20        do not do 
11f30 61 6e 79 20 64 79 6e 61 6d 69 63 20 6c 69 6e 6b  any dynamic link
11f40 69 6e 67 20 6f 66 20 6c 69 62 74 6f 6f 6c 20 6c  ing of libtool l
11f50 69 62 72 61 72 69 65 73 0a 20 20 2d 76 65 72 73  ibraries.  -vers
11f60 69 6f 6e 2d 69 6e 66 6f 20 43 55 52 52 45 4e 54  ion-info CURRENT
11f70 5b 3a 52 45 56 49 53 49 4f 4e 5b 3a 41 47 45 5d  [:REVISION[:AGE]
11f80 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ].              
11f90 20 20 20 20 20 20 73 70 65 63 69 66 79 20 6c 69        specify li
11fa0 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20 69 6e  brary version in
11fb0 66 6f 20 5b 65 61 63 68 20 76 61 72 69 61 62 6c  fo [each variabl
11fc0 65 20 64 65 66 61 75 6c 74 73 20 74 6f 20 30 5d  e defaults to 0]
11fd0 0a 20 20 2d 77 65 61 6b 20 4c 49 42 4e 41 4d 45  .  -weak LIBNAME
11fe0 20 20 20 20 20 64 65 63 6c 61 72 65 20 74 68 61       declare tha
11ff0 74 20 74 68 65 20 74 61 72 67 65 74 20 70 72 6f  t the target pro
12000 76 69 64 65 73 20 74 68 65 20 4c 49 42 4e 41 4d  vides the LIBNAM
12010 45 20 69 6e 74 65 72 66 61 63 65 0a 20 20 2d 57  E interface.  -W
12020 63 2c 46 4c 41 47 0a 20 20 2d 58 63 6f 6d 70 69  c,FLAG.  -Xcompi
12030 6c 65 72 20 46 4c 41 47 20 20 20 70 61 73 73 20  ler FLAG   pass 
12040 6c 69 6e 6b 65 72 2d 73 70 65 63 69 66 69 63 20  linker-specific 
12050 46 4c 41 47 20 64 69 72 65 63 74 6c 79 20 74 6f  FLAG directly to
12060 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20   the compiler.  
12070 2d 57 6c 2c 46 4c 41 47 0a 20 20 2d 58 6c 69 6e  -Wl,FLAG.  -Xlin
12080 6b 65 72 20 46 4c 41 47 20 20 20 20 20 70 61 73  ker FLAG     pas
12090 73 20 6c 69 6e 6b 65 72 2d 73 70 65 63 69 66 69  s linker-specifi
120a0 63 20 46 4c 41 47 20 64 69 72 65 63 74 6c 79 20  c FLAG directly 
120b0 74 6f 20 74 68 65 20 6c 69 6e 6b 65 72 0a 20 20  to the linker.  
120c0 2d 58 43 43 6c 69 6e 6b 65 72 20 46 4c 41 47 20  -XCClinker FLAG 
120d0 20 20 70 61 73 73 20 6c 69 6e 6b 2d 73 70 65 63    pass link-spec
120e0 69 66 69 63 20 46 4c 41 47 20 74 6f 20 74 68 65  ific FLAG to the
120f0 20 63 6f 6d 70 69 6c 65 72 20 64 72 69 76 65 72   compiler driver
12100 20 28 43 43 29 0a 0a 41 6c 6c 20 6f 74 68 65 72   (CC)..All other
12110 20 6f 70 74 69 6f 6e 73 20 28 61 72 67 75 6d 65   options (argume
12120 6e 74 73 20 62 65 67 69 6e 6e 69 6e 67 20 77 69  nts beginning wi
12130 74 68 20 5c 60 2d 27 29 20 61 72 65 20 69 67 6e  th \`-') are ign
12140 6f 72 65 64 2e 0a 0a 45 76 65 72 79 20 6f 74 68  ored...Every oth
12150 65 72 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74  er argument is t
12160 72 65 61 74 65 64 20 61 73 20 61 20 66 69 6c 65  reated as a file
12170 6e 61 6d 65 2e 20 20 46 69 6c 65 73 20 65 6e 64  name.  Files end
12180 69 6e 67 20 69 6e 20 5c 60 2e 6c 61 27 20 61 72  ing in \`.la' ar
12190 65 0a 74 72 65 61 74 65 64 20 61 73 20 75 6e 69  e.treated as uni
121a0 6e 73 74 61 6c 6c 65 64 20 6c 69 62 74 6f 6f 6c  nstalled libtool
121b0 20 6c 69 62 72 61 72 69 65 73 2c 20 6f 74 68 65   libraries, othe
121c0 72 20 66 69 6c 65 73 20 61 72 65 20 73 74 61 6e  r files are stan
121d0 64 61 72 64 20 6f 72 20 6c 69 62 72 61 72 79 0a  dard or library.
121e0 6f 62 6a 65 63 74 20 66 69 6c 65 73 2e 0a 0a 49  object files...I
121f0 66 20 74 68 65 20 4f 55 54 50 55 54 2d 46 49 4c  f the OUTPUT-FIL
12200 45 20 65 6e 64 73 20 69 6e 20 5c 60 2e 6c 61 27  E ends in \`.la'
12210 2c 20 74 68 65 6e 20 61 20 6c 69 62 74 6f 6f 6c  , then a libtool
12220 20 6c 69 62 72 61 72 79 20 69 73 20 63 72 65 61   library is crea
12230 74 65 64 2c 0a 6f 6e 6c 79 20 6c 69 62 72 61 72  ted,.only librar
12240 79 20 6f 62 6a 65 63 74 73 20 28 5c 60 2e 6c 6f  y objects (\`.lo
12250 27 20 66 69 6c 65 73 29 20 6d 61 79 20 62 65 20  ' files) may be 
12260 73 70 65 63 69 66 69 65 64 2c 20 61 6e 64 20 5c  specified, and \
12270 60 2d 72 70 61 74 68 27 20 69 73 0a 72 65 71 75  `-rpath' is.requ
12280 69 72 65 64 2c 20 65 78 63 65 70 74 20 77 68 65  ired, except whe
12290 6e 20 63 72 65 61 74 69 6e 67 20 61 20 63 6f 6e  n creating a con
122a0 76 65 6e 69 65 6e 63 65 20 6c 69 62 72 61 72 79  venience library
122b0 2e 0a 0a 49 66 20 4f 55 54 50 55 54 2d 46 49 4c  ...If OUTPUT-FIL
122c0 45 20 65 6e 64 73 20 69 6e 20 5c 60 2e 61 27 20  E ends in \`.a' 
122d0 6f 72 20 5c 60 2e 6c 69 62 27 2c 20 74 68 65 6e  or \`.lib', then
122e0 20 61 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72   a standard libr
122f0 61 72 79 20 69 73 20 63 72 65 61 74 65 64 0a 75  ary is created.u
12300 73 69 6e 67 20 5c 60 61 72 27 20 61 6e 64 20 5c  sing \`ar' and \
12310 60 72 61 6e 6c 69 62 27 2c 20 6f 72 20 6f 6e 20  `ranlib', or on 
12320 57 69 6e 64 6f 77 73 20 75 73 69 6e 67 20 5c 60  Windows using \`
12330 6c 69 62 27 2e 0a 0a 49 66 20 4f 55 54 50 55 54  lib'...If OUTPUT
12340 2d 46 49 4c 45 20 65 6e 64 73 20 69 6e 20 5c 60  -FILE ends in \`
12350 2e 6c 6f 27 20 6f 72 20 5c 60 2e 24 7b 6f 62 6a  .lo' or \`.${obj
12360 65 78 74 7d 27 2c 20 74 68 65 6e 20 61 20 72 65  ext}', then a re
12370 6c 6f 61 64 61 62 6c 65 20 6f 62 6a 65 63 74 20  loadable object 
12380 66 69 6c 65 0a 69 73 20 63 72 65 61 74 65 64 2c  file.is created,
12390 20 6f 74 68 65 72 77 69 73 65 20 61 6e 20 65 78   otherwise an ex
123a0 65 63 75 74 61 62 6c 65 20 70 72 6f 67 72 61 6d  ecutable program
123b0 20 69 73 20 63 72 65 61 74 65 64 2e 22 0a 20 20   is created.".  
123c0 20 20 20 20 20 20 3b 3b 0a 0a 20 20 20 20 20 20        ;;..      
123d0 75 6e 69 6e 73 74 61 6c 6c 29 0a 20 20 20 20 20  uninstall).     
123e0 20 20 20 24 45 43 48 4f 20 5c 0a 22 55 73 61 67     $ECHO \."Usag
123f0 65 3a 20 24 70 72 6f 67 6e 61 6d 65 20 5b 4f 50  e: $progname [OP
12400 54 49 4f 4e 5d 2e 2e 2e 20 2d 2d 6d 6f 64 65 3d  TION]... --mode=
12410 75 6e 69 6e 73 74 61 6c 6c 20 52 4d 20 5b 52 4d  uninstall RM [RM
12420 2d 4f 50 54 49 4f 4e 5d 2e 2e 2e 20 46 49 4c 45  -OPTION]... FILE
12430 2e 2e 2e 0a 0a 52 65 6d 6f 76 65 20 6c 69 62 72  .....Remove libr
12440 61 72 69 65 73 20 66 72 6f 6d 20 61 6e 20 69 6e  aries from an in
12450 73 74 61 6c 6c 61 74 69 6f 6e 20 64 69 72 65 63  stallation direc
12460 74 6f 72 79 2e 0a 0a 52 4d 20 69 73 20 74 68 65  tory...RM is the
12470 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 72 6f   name of the pro
12480 67 72 61 6d 20 74 6f 20 75 73 65 20 74 6f 20 64  gram to use to d
12490 65 6c 65 74 65 20 66 69 6c 65 73 20 61 73 73 6f  elete files asso
124a0 63 69 61 74 65 64 20 77 69 74 68 20 65 61 63 68  ciated with each
124b0 20 46 49 4c 45 0a 28 74 79 70 69 63 61 6c 6c 79   FILE.(typically
124c0 20 5c 60 2f 62 69 6e 2f 72 6d 27 29 2e 20 20 52   \`/bin/rm').  R
124d0 4d 2d 4f 50 54 49 4f 4e 53 20 61 72 65 20 6f 70  M-OPTIONS are op
124e0 74 69 6f 6e 73 20 28 73 75 63 68 20 61 73 20 5c  tions (such as \
124f0 60 2d 66 27 29 20 74 6f 20 62 65 20 70 61 73 73  `-f') to be pass
12500 65 64 0a 74 6f 20 52 4d 2e 0a 0a 49 66 20 46 49  ed.to RM...If FI
12510 4c 45 20 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20  LE is a libtool 
12520 6c 69 62 72 61 72 79 2c 20 61 6c 6c 20 74 68 65  library, all the
12530 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65   files associate
12540 64 20 77 69 74 68 20 69 74 20 61 72 65 20 64 65  d with it are de
12550 6c 65 74 65 64 2e 0a 4f 74 68 65 72 77 69 73 65  leted..Otherwise
12560 2c 20 6f 6e 6c 79 20 46 49 4c 45 20 69 74 73 65  , only FILE itse
12570 6c 66 20 69 73 20 64 65 6c 65 74 65 64 20 75 73  lf is deleted us
12580 69 6e 67 20 52 4d 2e 22 0a 20 20 20 20 20 20 20  ing RM.".       
12590 20 3b 3b 0a 0a 20 20 20 20 20 20 2a 29 0a 20 20   ;;..      *).  
125a0 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c        func_fatal
125b0 5f 68 65 6c 70 20 22 69 6e 76 61 6c 69 64 20 6f  _help "invalid o
125c0 70 65 72 61 74 69 6f 6e 20 6d 6f 64 65 20 5c 60  peration mode \`
125d0 24 6f 70 74 5f 6d 6f 64 65 27 22 0a 20 20 20 20  $opt_mode'".    
125e0 20 20 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a      ;;.    esac.
125f0 0a 20 20 20 20 65 63 68 6f 0a 20 20 20 20 24 45  .    echo.    $E
12600 43 48 4f 20 22 54 72 79 20 5c 60 24 70 72 6f 67  CHO "Try \`$prog
12610 6e 61 6d 65 20 2d 2d 68 65 6c 70 27 20 66 6f 72  name --help' for
12620 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f   more informatio
12630 6e 20 61 62 6f 75 74 20 6f 74 68 65 72 20 6d 6f  n about other mo
12640 64 65 73 2e 22 0a 7d 0a 0a 23 20 4e 6f 77 20 74  des.".}..# Now t
12650 68 61 74 20 77 65 27 76 65 20 63 6f 6c 6c 65 63  hat we've collec
12660 74 65 64 20 61 20 70 6f 73 73 69 62 6c 65 20 2d  ted a possible -
12670 2d 6d 6f 64 65 20 61 72 67 2c 20 73 68 6f 77 20  -mode arg, show 
12680 68 65 6c 70 20 69 66 20 6e 65 63 65 73 73 61 72  help if necessar
12690 79 0a 69 66 20 24 6f 70 74 5f 68 65 6c 70 3b 20  y.if $opt_help; 
126a0 74 68 65 6e 0a 20 20 69 66 20 74 65 73 74 20 22  then.  if test "
126b0 24 6f 70 74 5f 68 65 6c 70 22 20 3d 20 3a 3b 20  $opt_help" = :; 
126c0 74 68 65 6e 0a 20 20 20 20 66 75 6e 63 5f 6d 6f  then.    func_mo
126d0 64 65 5f 68 65 6c 70 0a 20 20 65 6c 73 65 0a 20  de_help.  else. 
126e0 20 20 20 7b 0a 20 20 20 20 20 20 66 75 6e 63 5f     {.      func_
126f0 68 65 6c 70 20 6e 6f 65 78 69 74 0a 20 20 20 20  help noexit.    
12700 20 20 66 6f 72 20 6f 70 74 5f 6d 6f 64 65 20 69    for opt_mode i
12710 6e 20 63 6f 6d 70 69 6c 65 20 6c 69 6e 6b 20 65  n compile link e
12720 78 65 63 75 74 65 20 69 6e 73 74 61 6c 6c 20 66  xecute install f
12730 69 6e 69 73 68 20 75 6e 69 6e 73 74 61 6c 6c 20  inish uninstall 
12740 63 6c 65 61 6e 3b 20 64 6f 0a 09 66 75 6e 63 5f  clean; do..func_
12750 6d 6f 64 65 5f 68 65 6c 70 0a 20 20 20 20 20 20  mode_help.      
12760 64 6f 6e 65 0a 20 20 20 20 7d 20 7c 20 73 65 64  done.    } | sed
12770 20 2d 6e 20 27 31 70 3b 20 32 2c 24 73 2f 5e 55   -n '1p; 2,$s/^U
12780 73 61 67 65 3a 2f 20 20 6f 72 3a 20 2f 70 27 0a  sage:/  or: /p'.
12790 20 20 20 20 7b 0a 20 20 20 20 20 20 66 75 6e 63      {.      func
127a0 5f 68 65 6c 70 20 6e 6f 65 78 69 74 0a 20 20 20  _help noexit.   
127b0 20 20 20 66 6f 72 20 6f 70 74 5f 6d 6f 64 65 20     for opt_mode 
127c0 69 6e 20 63 6f 6d 70 69 6c 65 20 6c 69 6e 6b 20  in compile link 
127d0 65 78 65 63 75 74 65 20 69 6e 73 74 61 6c 6c 20  execute install 
127e0 66 69 6e 69 73 68 20 75 6e 69 6e 73 74 61 6c 6c  finish uninstall
127f0 20 63 6c 65 61 6e 3b 20 64 6f 0a 09 65 63 68 6f   clean; do..echo
12800 0a 09 66 75 6e 63 5f 6d 6f 64 65 5f 68 65 6c 70  ..func_mode_help
12810 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20 20 20 20  .      done.    
12820 7d 20 7c 0a 20 20 20 20 73 65 64 20 27 31 64 0a  } |.    sed '1d.
12830 20 20 20 20 20 20 2f 5e 57 68 65 6e 20 72 65 70        /^When rep
12840 6f 72 74 69 6e 67 2f 2c 2f 5e 52 65 70 6f 72 74  orting/,/^Report
12850 2f 7b 0a 09 48 0a 09 64 0a 20 20 20 20 20 20 7d  /{..H..d.      }
12860 0a 20 20 20 20 20 20 24 78 0a 20 20 20 20 20 20  .      $x.      
12870 2f 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f  /information abo
12880 75 74 20 6f 74 68 65 72 20 6d 6f 64 65 73 2f 64  ut other modes/d
12890 0a 20 20 20 20 20 20 2f 6d 6f 72 65 20 64 65 74  .      /more det
128a0 61 69 6c 65 64 20 2e 2a 4d 4f 44 45 2f 64 0a 20  ailed .*MODE/d. 
128b0 20 20 20 20 20 73 2f 5e 55 73 61 67 65 3a 2e 2a       s/^Usage:.*
128c0 2d 2d 6d 6f 64 65 3d 5c 28 5b 5e 20 5d 2a 5c 29  --mode=\([^ ]*\)
128d0 20 2e 2a 2f 44 65 73 63 72 69 70 74 69 6f 6e 20   .*/Description 
128e0 6f 66 20 5c 31 20 6d 6f 64 65 3a 2f 27 0a 20 20  of \1 mode:/'.  
128f0 66 69 0a 20 20 65 78 69 74 20 24 3f 0a 66 69 0a  fi.  exit $?.fi.
12900 0a 0a 23 20 66 75 6e 63 5f 6d 6f 64 65 5f 65 78  ..# func_mode_ex
12910 65 63 75 74 65 20 61 72 67 2e 2e 2e 0a 66 75 6e  ecute arg....fun
12920 63 5f 6d 6f 64 65 5f 65 78 65 63 75 74 65 20 28  c_mode_execute (
12930 29 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65 62  ).{.    $opt_deb
12940 75 67 0a 20 20 20 20 23 20 54 68 65 20 66 69 72  ug.    # The fir
12950 73 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74  st argument is t
12960 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 2e  he command name.
12970 0a 20 20 20 20 63 6d 64 3d 22 24 6e 6f 6e 6f 70  .    cmd="$nonop
12980 74 22 0a 20 20 20 20 74 65 73 74 20 2d 7a 20 22  t".    test -z "
12990 24 63 6d 64 22 20 26 26 20 5c 0a 20 20 20 20 20  $cmd" && \.     
129a0 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70   func_fatal_help
129b0 20 22 79 6f 75 20 6d 75 73 74 20 73 70 65 63 69   "you must speci
129c0 66 79 20 61 20 43 4f 4d 4d 41 4e 44 22 0a 0a 20  fy a COMMAND".. 
129d0 20 20 20 23 20 48 61 6e 64 6c 65 20 2d 64 6c 6f     # Handle -dlo
129e0 70 65 6e 20 66 6c 61 67 73 20 69 6d 6d 65 64 69  pen flags immedi
129f0 61 74 65 6c 79 2e 0a 20 20 20 20 66 6f 72 20 66  ately..    for f
12a00 69 6c 65 20 69 6e 20 24 6f 70 74 5f 64 6c 6f 70  ile in $opt_dlop
12a10 65 6e 3b 20 64 6f 0a 20 20 20 20 20 20 74 65 73  en; do.      tes
12a20 74 20 2d 66 20 22 24 66 69 6c 65 22 20 5c 0a 09  t -f "$file" \..
12a30 7c 7c 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65  || func_fatal_he
12a40 6c 70 20 22 5c 60 24 66 69 6c 65 27 20 69 73 20  lp "\`$file' is 
12a50 6e 6f 74 20 61 20 66 69 6c 65 22 0a 0a 20 20 20  not a file"..   
12a60 20 20 20 64 69 72 3d 0a 20 20 20 20 20 20 63 61     dir=.      ca
12a70 73 65 20 24 66 69 6c 65 20 69 6e 0a 20 20 20 20  se $file in.    
12a80 20 20 2a 2e 6c 61 29 0a 09 66 75 6e 63 5f 72 65    *.la)..func_re
12a90 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 20 22 24  solve_sysroot "$
12aa0 66 69 6c 65 22 0a 09 66 69 6c 65 3d 24 66 75 6e  file"..file=$fun
12ab0 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f  c_resolve_sysroo
12ac0 74 5f 72 65 73 75 6c 74 0a 0a 09 23 20 43 68 65  t_result...# Che
12ad0 63 6b 20 74 6f 20 73 65 65 20 74 68 61 74 20 74  ck to see that t
12ae0 68 69 73 20 72 65 61 6c 6c 79 20 69 73 20 61 20  his really is a 
12af0 6c 69 62 74 6f 6f 6c 20 61 72 63 68 69 76 65 2e  libtool archive.
12b00 0a 09 66 75 6e 63 5f 6c 61 6c 69 62 5f 75 6e 73  ..func_lalib_uns
12b10 61 66 65 5f 70 20 22 24 66 69 6c 65 22 20 5c 0a  afe_p "$file" \.
12b20 09 20 20 7c 7c 20 66 75 6e 63 5f 66 61 74 61 6c  .  || func_fatal
12b30 5f 68 65 6c 70 20 22 5c 60 24 6c 69 62 27 20 69  _help "\`$lib' i
12b40 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 6c 69  s not a valid li
12b50 62 74 6f 6f 6c 20 61 72 63 68 69 76 65 22 0a 0a  btool archive"..
12b60 09 23 20 52 65 61 64 20 74 68 65 20 6c 69 62 74  .# Read the libt
12b70 6f 6f 6c 20 6c 69 62 72 61 72 79 2e 0a 09 64 6c  ool library...dl
12b80 6e 61 6d 65 3d 0a 09 6c 69 62 72 61 72 79 5f 6e  name=..library_n
12b90 61 6d 65 73 3d 0a 09 66 75 6e 63 5f 73 6f 75 72  ames=..func_sour
12ba0 63 65 20 22 24 66 69 6c 65 22 0a 0a 09 23 20 53  ce "$file"...# S
12bb0 6b 69 70 20 74 68 69 73 20 6c 69 62 72 61 72 79  kip this library
12bc0 20 69 66 20 69 74 20 63 61 6e 6e 6f 74 20 62 65   if it cannot be
12bd0 20 64 6c 6f 70 65 6e 65 64 2e 0a 09 69 66 20 74   dlopened...if t
12be0 65 73 74 20 2d 7a 20 22 24 64 6c 6e 61 6d 65 22  est -z "$dlname"
12bf0 3b 20 74 68 65 6e 0a 09 20 20 23 20 57 61 72 6e  ; then..  # Warn
12c00 20 69 66 20 69 74 20 77 61 73 20 61 20 73 68 61   if it was a sha
12c10 72 65 64 20 6c 69 62 72 61 72 79 2e 0a 09 20 20  red library...  
12c20 74 65 73 74 20 2d 6e 20 22 24 6c 69 62 72 61 72  test -n "$librar
12c30 79 5f 6e 61 6d 65 73 22 20 26 26 20 5c 0a 09 20  y_names" && \.. 
12c40 20 20 20 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20     func_warning 
12c50 22 5c 60 24 66 69 6c 65 27 20 77 61 73 20 6e 6f  "\`$file' was no
12c60 74 20 6c 69 6e 6b 65 64 20 77 69 74 68 20 5c 60  t linked with \`
12c70 2d 65 78 70 6f 72 74 2d 64 79 6e 61 6d 69 63 27  -export-dynamic'
12c80 22 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 66  "..  continue..f
12c90 69 0a 0a 09 66 75 6e 63 5f 64 69 72 6e 61 6d 65  i...func_dirname
12ca0 20 22 24 66 69 6c 65 22 20 22 22 20 22 2e 22 0a   "$file" "" ".".
12cb0 09 64 69 72 3d 22 24 66 75 6e 63 5f 64 69 72 6e  .dir="$func_dirn
12cc0 61 6d 65 5f 72 65 73 75 6c 74 22 0a 0a 09 69 66  ame_result"...if
12cd0 20 74 65 73 74 20 2d 66 20 22 24 64 69 72 2f 24   test -f "$dir/$
12ce0 6f 62 6a 64 69 72 2f 24 64 6c 6e 61 6d 65 22 3b  objdir/$dlname";
12cf0 20 74 68 65 6e 0a 09 20 20 66 75 6e 63 5f 61 70   then..  func_ap
12d00 70 65 6e 64 20 64 69 72 20 22 2f 24 6f 62 6a 64  pend dir "/$objd
12d10 69 72 22 0a 09 65 6c 73 65 0a 09 20 20 69 66 20  ir"..else..  if 
12d20 74 65 73 74 20 21 20 2d 66 20 22 24 64 69 72 2f  test ! -f "$dir/
12d30 24 64 6c 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09  $dlname"; then..
12d40 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65      func_fatal_e
12d50 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e  rror "cannot fin
12d60 64 20 5c 60 24 64 6c 6e 61 6d 65 27 20 69 6e 20  d \`$dlname' in 
12d70 5c 60 24 64 69 72 27 20 6f 72 20 5c 60 24 64 69  \`$dir' or \`$di
12d80 72 2f 24 6f 62 6a 64 69 72 27 22 0a 09 20 20 66  r/$objdir'"..  f
12d90 69 0a 09 66 69 0a 09 3b 3b 0a 0a 20 20 20 20 20  i..fi..;;..     
12da0 20 2a 2e 6c 6f 29 0a 09 23 20 4a 75 73 74 20 61   *.lo)..# Just a
12db0 64 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 79  dd the directory
12dc0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20   containing the 
12dd0 2e 6c 6f 20 66 69 6c 65 2e 0a 09 66 75 6e 63 5f  .lo file...func_
12de0 64 69 72 6e 61 6d 65 20 22 24 66 69 6c 65 22 20  dirname "$file" 
12df0 22 22 20 22 2e 22 0a 09 64 69 72 3d 22 24 66 75  "" "."..dir="$fu
12e00 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c  nc_dirname_resul
12e10 74 22 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2a 29  t"..;;..      *)
12e20 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22  ..func_warning "
12e30 5c 60 2d 64 6c 6f 70 65 6e 27 20 69 73 20 69 67  \`-dlopen' is ig
12e40 6e 6f 72 65 64 20 66 6f 72 20 6e 6f 6e 2d 6c 69  nored for non-li
12e50 62 74 6f 6f 6c 20 6c 69 62 72 61 72 69 65 73 20  btool libraries 
12e60 61 6e 64 20 6f 62 6a 65 63 74 73 22 0a 09 63 6f  and objects"..co
12e70 6e 74 69 6e 75 65 0a 09 3b 3b 0a 20 20 20 20 20  ntinue..;;.     
12e80 20 65 73 61 63 0a 0a 20 20 20 20 20 20 23 20 47   esac..      # G
12e90 65 74 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20  et the absolute 
12ea0 70 61 74 68 6e 61 6d 65 2e 0a 20 20 20 20 20 20  pathname..      
12eb0 61 62 73 64 69 72 3d 60 63 64 20 22 24 64 69 72  absdir=`cd "$dir
12ec0 22 20 26 26 20 70 77 64 60 0a 20 20 20 20 20 20  " && pwd`.      
12ed0 74 65 73 74 20 2d 6e 20 22 24 61 62 73 64 69 72  test -n "$absdir
12ee0 22 20 26 26 20 64 69 72 3d 22 24 61 62 73 64 69  " && dir="$absdi
12ef0 72 22 0a 0a 20 20 20 20 20 20 23 20 4e 6f 77 20  r"..      # Now 
12f00 61 64 64 20 74 68 65 20 64 69 72 65 63 74 6f 72  add the director
12f10 79 20 74 6f 20 73 68 6c 69 62 70 61 74 68 5f 76  y to shlibpath_v
12f20 61 72 2e 0a 20 20 20 20 20 20 69 66 20 65 76 61  ar..      if eva
12f30 6c 20 22 74 65 73 74 20 2d 7a 20 5c 22 5c 24 24  l "test -z \"\$$
12f40 73 68 6c 69 62 70 61 74 68 5f 76 61 72 5c 22 22  shlibpath_var\""
12f50 3b 20 74 68 65 6e 0a 09 65 76 61 6c 20 22 24 73  ; then..eval "$s
12f60 68 6c 69 62 70 61 74 68 5f 76 61 72 3d 5c 22 5c  hlibpath_var=\"\
12f70 24 64 69 72 5c 22 22 0a 20 20 20 20 20 20 65 6c  $dir\"".      el
12f80 73 65 0a 09 65 76 61 6c 20 22 24 73 68 6c 69 62  se..eval "$shlib
12f90 70 61 74 68 5f 76 61 72 3d 5c 22 5c 24 64 69 72  path_var=\"\$dir
12fa0 3a 5c 24 24 73 68 6c 69 62 70 61 74 68 5f 76 61  :\$$shlibpath_va
12fb0 72 5c 22 22 0a 20 20 20 20 20 20 66 69 0a 20 20  r\"".      fi.  
12fc0 20 20 64 6f 6e 65 0a 0a 20 20 20 20 23 20 54 68    done..    # Th
12fd0 69 73 20 76 61 72 69 61 62 6c 65 20 74 65 6c 6c  is variable tell
12fe0 73 20 77 72 61 70 70 65 72 20 73 63 72 69 70 74  s wrapper script
12ff0 73 20 6a 75 73 74 20 74 6f 20 73 65 74 20 73 68  s just to set sh
13000 6c 69 62 70 61 74 68 5f 76 61 72 0a 20 20 20 20  libpath_var.    
13010 23 20 72 61 74 68 65 72 20 74 68 61 6e 20 72 75  # rather than ru
13020 6e 6e 69 6e 67 20 74 68 65 69 72 20 70 72 6f 67  nning their prog
13030 72 61 6d 73 2e 0a 20 20 20 20 6c 69 62 74 6f 6f  rams..    libtoo
13040 6c 5f 65 78 65 63 75 74 65 5f 6d 61 67 69 63 3d  l_execute_magic=
13050 22 24 6d 61 67 69 63 22 0a 0a 20 20 20 20 23 20  "$magic"..    # 
13060 43 68 65 63 6b 20 69 66 20 61 6e 79 20 6f 66 20  Check if any of 
13070 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 69 73  the arguments is
13080 20 61 20 77 72 61 70 70 65 72 20 73 63 72 69 70   a wrapper scrip
13090 74 2e 0a 20 20 20 20 61 72 67 73 3d 0a 20 20 20  t..    args=.   
130a0 20 66 6f 72 20 66 69 6c 65 0a 20 20 20 20 64 6f   for file.    do
130b0 0a 20 20 20 20 20 20 63 61 73 65 20 24 66 69 6c  .      case $fil
130c0 65 20 69 6e 0a 20 20 20 20 20 20 2d 2a 20 7c 20  e in.      -* | 
130d0 2a 2e 6c 61 20 7c 20 2a 2e 6c 6f 20 29 20 3b 3b  *.la | *.lo ) ;;
130e0 0a 20 20 20 20 20 20 2a 29 0a 09 23 20 44 6f 20  .      *)..# Do 
130f0 61 20 74 65 73 74 20 74 6f 20 73 65 65 20 69 66  a test to see if
13100 20 74 68 69 73 20 69 73 20 72 65 61 6c 6c 79 20   this is really 
13110 61 20 6c 69 62 74 6f 6f 6c 20 70 72 6f 67 72 61  a libtool progra
13120 6d 2e 0a 09 69 66 20 66 75 6e 63 5f 6c 74 77 72  m...if func_ltwr
13130 61 70 70 65 72 5f 73 63 72 69 70 74 5f 70 20 22  apper_script_p "
13140 24 66 69 6c 65 22 3b 20 74 68 65 6e 0a 09 20 20  $file"; then..  
13150 66 75 6e 63 5f 73 6f 75 72 63 65 20 22 24 66 69  func_source "$fi
13160 6c 65 22 0a 09 20 20 23 20 54 72 61 6e 73 66 6f  le"..  # Transfo
13170 72 6d 20 61 72 67 20 74 6f 20 77 72 61 70 70 65  rm arg to wrappe
13180 64 20 6e 61 6d 65 2e 0a 09 20 20 66 69 6c 65 3d  d name...  file=
13190 22 24 70 72 6f 67 64 69 72 2f 24 70 72 6f 67 72  "$progdir/$progr
131a0 61 6d 22 0a 09 65 6c 69 66 20 66 75 6e 63 5f 6c  am"..elif func_l
131b0 74 77 72 61 70 70 65 72 5f 65 78 65 63 75 74 61  twrapper_executa
131c0 62 6c 65 5f 70 20 22 24 66 69 6c 65 22 3b 20 74  ble_p "$file"; t
131d0 68 65 6e 0a 09 20 20 66 75 6e 63 5f 6c 74 77 72  hen..  func_ltwr
131e0 61 70 70 65 72 5f 73 63 72 69 70 74 6e 61 6d 65  apper_scriptname
131f0 20 22 24 66 69 6c 65 22 0a 09 20 20 66 75 6e 63   "$file"..  func
13200 5f 73 6f 75 72 63 65 20 22 24 66 75 6e 63 5f 6c  _source "$func_l
13210 74 77 72 61 70 70 65 72 5f 73 63 72 69 70 74 6e  twrapper_scriptn
13220 61 6d 65 5f 72 65 73 75 6c 74 22 0a 09 20 20 23  ame_result"..  #
13230 20 54 72 61 6e 73 66 6f 72 6d 20 61 72 67 20 74   Transform arg t
13240 6f 20 77 72 61 70 70 65 64 20 6e 61 6d 65 2e 0a  o wrapped name..
13250 09 20 20 66 69 6c 65 3d 22 24 70 72 6f 67 64 69  .  file="$progdi
13260 72 2f 24 70 72 6f 67 72 61 6d 22 0a 09 66 69 0a  r/$program"..fi.
13270 09 3b 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 20  .;;.      esac. 
13280 20 20 20 20 20 23 20 51 75 6f 74 65 20 61 72 67       # Quote arg
13290 75 6d 65 6e 74 73 20 28 74 6f 20 70 72 65 73 65  uments (to prese
132a0 72 76 65 20 73 68 65 6c 6c 20 6d 65 74 61 63 68  rve shell metach
132b0 61 72 61 63 74 65 72 73 29 2e 0a 20 20 20 20 20  aracters)..     
132c0 20 66 75 6e 63 5f 61 70 70 65 6e 64 5f 71 75 6f   func_append_quo
132d0 74 65 64 20 61 72 67 73 20 22 24 66 69 6c 65 22  ted args "$file"
132e0 0a 20 20 20 20 64 6f 6e 65 0a 0a 20 20 20 20 69  .    done..    i
132f0 66 20 74 65 73 74 20 22 58 24 6f 70 74 5f 64 72  f test "X$opt_dr
13300 79 5f 72 75 6e 22 20 3d 20 58 66 61 6c 73 65 3b  y_run" = Xfalse;
13310 20 74 68 65 6e 0a 20 20 20 20 20 20 69 66 20 74   then.      if t
13320 65 73 74 20 2d 6e 20 22 24 73 68 6c 69 62 70 61  est -n "$shlibpa
13330 74 68 5f 76 61 72 22 3b 20 74 68 65 6e 0a 09 23  th_var"; then..#
13340 20 45 78 70 6f 72 74 20 74 68 65 20 73 68 6c 69   Export the shli
13350 62 70 61 74 68 5f 76 61 72 2e 0a 09 65 76 61 6c  bpath_var...eval
13360 20 22 65 78 70 6f 72 74 20 24 73 68 6c 69 62 70   "export $shlibp
13370 61 74 68 5f 76 61 72 22 0a 20 20 20 20 20 20 66  ath_var".      f
13380 69 0a 0a 20 20 20 20 20 20 23 20 52 65 73 74 6f  i..      # Resto
13390 72 65 20 73 61 76 65 64 20 65 6e 76 69 72 6f 6e  re saved environ
133a0 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 0a 20  ment variables. 
133b0 20 20 20 20 20 66 6f 72 20 6c 74 5f 76 61 72 20       for lt_var 
133c0 69 6e 20 4c 41 4e 47 20 4c 41 4e 47 55 41 47 45  in LANG LANGUAGE
133d0 20 4c 43 5f 41 4c 4c 20 4c 43 5f 43 54 59 50 45   LC_ALL LC_CTYPE
133e0 20 4c 43 5f 43 4f 4c 4c 41 54 45 20 4c 43 5f 4d   LC_COLLATE LC_M
133f0 45 53 53 41 47 45 53 0a 20 20 20 20 20 20 64 6f  ESSAGES.      do
13400 0a 09 65 76 61 6c 20 22 69 66 20 74 65 73 74 20  ..eval "if test 
13410 5c 22 5c 24 7b 73 61 76 65 5f 24 6c 74 5f 76 61  \"\${save_$lt_va
13420 72 2b 73 65 74 7d 5c 22 20 3d 20 73 65 74 3b 20  r+set}\" = set; 
13430 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20  then.           
13440 20 20 20 20 20 24 6c 74 5f 76 61 72 3d 5c 24 73       $lt_var=\$s
13450 61 76 65 5f 24 6c 74 5f 76 61 72 3b 20 65 78 70  ave_$lt_var; exp
13460 6f 72 74 20 24 6c 74 5f 76 61 72 0a 09 20 20 20  ort $lt_var..   
13470 20 20 20 65 6c 73 65 0a 09 09 24 6c 74 5f 75 6e     else...$lt_un
13480 73 65 74 20 24 6c 74 5f 76 61 72 0a 09 20 20 20  set $lt_var..   
13490 20 20 20 66 69 22 0a 20 20 20 20 20 20 64 6f 6e     fi".      don
134a0 65 0a 0a 20 20 20 20 20 20 23 20 4e 6f 77 20 70  e..      # Now p
134b0 72 65 70 61 72 65 20 74 6f 20 61 63 74 75 61 6c  repare to actual
134c0 6c 79 20 65 78 65 63 20 74 68 65 20 63 6f 6d 6d  ly exec the comm
134d0 61 6e 64 2e 0a 20 20 20 20 20 20 65 78 65 63 5f  and..      exec_
134e0 63 6d 64 3d 22 5c 24 63 6d 64 24 61 72 67 73 22  cmd="\$cmd$args"
134f0 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20  .    else.      
13500 23 20 44 69 73 70 6c 61 79 20 77 68 61 74 20 77  # Display what w
13510 6f 75 6c 64 20 62 65 20 64 6f 6e 65 2e 0a 20 20  ould be done..  
13520 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
13530 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72 22 3b  $shlibpath_var";
13540 20 74 68 65 6e 0a 09 65 76 61 6c 20 22 5c 24 45   then..eval "\$E
13550 43 48 4f 20 5c 22 5c 24 73 68 6c 69 62 70 61 74  CHO \"\$shlibpat
13560 68 5f 76 61 72 3d 5c 24 24 73 68 6c 69 62 70 61  h_var=\$$shlibpa
13570 74 68 5f 76 61 72 5c 22 22 0a 09 65 63 68 6f 20  th_var\""..echo 
13580 22 65 78 70 6f 72 74 20 24 73 68 6c 69 62 70 61  "export $shlibpa
13590 74 68 5f 76 61 72 22 0a 20 20 20 20 20 20 66 69  th_var".      fi
135a0 0a 20 20 20 20 20 20 24 45 43 48 4f 20 22 24 63  .      $ECHO "$c
135b0 6d 64 24 61 72 67 73 22 0a 20 20 20 20 20 20 65  md$args".      e
135c0 78 69 74 20 24 45 58 49 54 5f 53 55 43 43 45 53  xit $EXIT_SUCCES
135d0 53 0a 20 20 20 20 66 69 0a 7d 0a 0a 74 65 73 74  S.    fi.}..test
135e0 20 22 24 6f 70 74 5f 6d 6f 64 65 22 20 3d 20 65   "$opt_mode" = e
135f0 78 65 63 75 74 65 20 26 26 20 66 75 6e 63 5f 6d  xecute && func_m
13600 6f 64 65 5f 65 78 65 63 75 74 65 20 24 7b 31 2b  ode_execute ${1+
13610 22 24 40 22 7d 0a 0a 0a 23 20 66 75 6e 63 5f 6d  "$@"}...# func_m
13620 6f 64 65 5f 66 69 6e 69 73 68 20 61 72 67 2e 2e  ode_finish arg..
13630 2e 0a 66 75 6e 63 5f 6d 6f 64 65 5f 66 69 6e 69  ..func_mode_fini
13640 73 68 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  sh ().{.    $opt
13650 5f 64 65 62 75 67 0a 20 20 20 20 6c 69 62 73 3d  _debug.    libs=
13660 0a 20 20 20 20 6c 69 62 64 69 72 73 3d 0a 20 20  .    libdirs=.  
13670 20 20 61 64 6d 69 6e 63 6d 64 73 3d 0a 0a 20 20    admincmds=..  
13680 20 20 66 6f 72 20 6f 70 74 20 69 6e 20 22 24 6e    for opt in "$n
13690 6f 6e 6f 70 74 22 20 24 7b 31 2b 22 24 40 22 7d  onopt" ${1+"$@"}
136a0 0a 20 20 20 20 64 6f 0a 20 20 20 20 20 20 69 66  .    do.      if
136b0 20 74 65 73 74 20 2d 64 20 22 24 6f 70 74 22 3b   test -d "$opt";
136c0 20 74 68 65 6e 0a 09 66 75 6e 63 5f 61 70 70 65   then..func_appe
136d0 6e 64 20 6c 69 62 64 69 72 73 20 22 20 24 6f 70  nd libdirs " $op
136e0 74 22 0a 0a 20 20 20 20 20 20 65 6c 69 66 20 74  t"..      elif t
136f0 65 73 74 20 2d 66 20 22 24 6f 70 74 22 3b 20 74  est -f "$opt"; t
13700 68 65 6e 0a 09 69 66 20 66 75 6e 63 5f 6c 61 6c  hen..if func_lal
13710 69 62 5f 75 6e 73 61 66 65 5f 70 20 22 24 6f 70  ib_unsafe_p "$op
13720 74 22 3b 20 74 68 65 6e 0a 09 20 20 66 75 6e 63  t"; then..  func
13730 5f 61 70 70 65 6e 64 20 6c 69 62 73 20 22 20 24  _append libs " $
13740 6f 70 74 22 0a 09 65 6c 73 65 0a 09 20 20 66 75  opt"..else..  fu
13750 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 24 6f  nc_warning "\`$o
13760 70 74 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c  pt' is not a val
13770 69 64 20 6c 69 62 74 6f 6f 6c 20 61 72 63 68 69  id libtool archi
13780 76 65 22 0a 09 66 69 0a 0a 20 20 20 20 20 20 65  ve"..fi..      e
13790 6c 73 65 0a 09 66 75 6e 63 5f 66 61 74 61 6c 5f  lse..func_fatal_
137a0 65 72 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 61  error "invalid a
137b0 72 67 75 6d 65 6e 74 20 5c 60 24 6f 70 74 27 22  rgument \`$opt'"
137c0 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 64 6f  .      fi.    do
137d0 6e 65 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20  ne..    if test 
137e0 2d 6e 20 22 24 6c 69 62 73 22 3b 20 74 68 65 6e  -n "$libs"; then
137f0 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d  .      if test -
13800 6e 20 22 24 6c 74 5f 73 79 73 72 6f 6f 74 22 3b  n "$lt_sysroot";
13810 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 73 79   then.        sy
13820 73 72 6f 6f 74 5f 72 65 67 65 78 3d 60 24 45 43  sroot_regex=`$EC
13830 48 4f 20 22 24 6c 74 5f 73 79 73 72 6f 6f 74 22  HO "$lt_sysroot"
13840 20 7c 20 24 53 45 44 20 22 24 73 65 64 5f 6d 61   | $SED "$sed_ma
13850 6b 65 5f 6c 69 74 65 72 61 6c 5f 72 65 67 65 78  ke_literal_regex
13860 22 60 0a 20 20 20 20 20 20 20 20 73 79 73 72 6f  "`.        sysro
13870 6f 74 5f 63 6d 64 3d 22 73 2f 5c 28 5b 20 27 5d  ot_cmd="s/\([ ']
13880 5c 29 24 73 79 73 72 6f 6f 74 5f 72 65 67 65 78  \)$sysroot_regex
13890 2f 5c 31 2f 67 3b 22 0a 20 20 20 20 20 20 65 6c  /\1/g;".      el
138a0 73 65 0a 20 20 20 20 20 20 20 20 73 79 73 72 6f  se.        sysro
138b0 6f 74 5f 63 6d 64 3d 0a 20 20 20 20 20 20 66 69  ot_cmd=.      fi
138c0 0a 0a 20 20 20 20 20 20 23 20 52 65 6d 6f 76 65  ..      # Remove
138d0 20 73 79 73 72 6f 6f 74 20 72 65 66 65 72 65 6e   sysroot referen
138e0 63 65 73 0a 20 20 20 20 20 20 69 66 20 24 6f 70  ces.      if $op
138f0 74 5f 64 72 79 5f 72 75 6e 3b 20 74 68 65 6e 0a  t_dry_run; then.
13900 20 20 20 20 20 20 20 20 66 6f 72 20 6c 69 62 20          for lib 
13910 69 6e 20 24 6c 69 62 73 3b 20 64 6f 0a 20 20 20  in $libs; do.   
13920 20 20 20 20 20 20 20 65 63 68 6f 20 22 72 65 6d         echo "rem
13930 6f 76 69 6e 67 20 72 65 66 65 72 65 6e 63 65 73  oving references
13940 20 74 6f 20 24 6c 74 5f 73 79 73 72 6f 6f 74 20   to $lt_sysroot 
13950 61 6e 64 20 5c 60 3d 27 20 70 72 65 66 69 78 65  and \`=' prefixe
13960 73 20 66 72 6f 6d 20 24 6c 69 62 22 0a 20 20 20  s from $lib".   
13970 20 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 20 20       done.      
13980 65 6c 73 65 0a 20 20 20 20 20 20 20 20 74 6d 70  else.        tmp
13990 64 69 72 3d 60 66 75 6e 63 5f 6d 6b 74 65 6d 70  dir=`func_mktemp
139a0 64 69 72 60 0a 20 20 20 20 20 20 20 20 66 6f 72  dir`.        for
139b0 20 6c 69 62 20 69 6e 20 24 6c 69 62 73 3b 20 64   lib in $libs; d
139c0 6f 0a 09 20 20 73 65 64 20 2d 65 20 22 24 7b 73  o..  sed -e "${s
139d0 79 73 72 6f 6f 74 5f 63 6d 64 7d 20 73 2f 5c 28  ysroot_cmd} s/\(
139e0 5b 20 27 5d 2d 5b 4c 52 5d 5c 29 3d 2f 5c 31 2f  [ ']-[LR]\)=/\1/
139f0 67 3b 20 73 2f 5c 28 5b 20 27 5d 5c 29 3d 2f 5c  g; s/\([ ']\)=/\
13a00 31 2f 67 22 20 24 6c 69 62 20 5c 0a 09 20 20 20  1/g" $lib \..   
13a10 20 3e 20 24 74 6d 70 64 69 72 2f 74 6d 70 2d 6c   > $tmpdir/tmp-l
13a20 61 0a 09 20 20 6d 76 20 2d 66 20 24 74 6d 70 64  a..  mv -f $tmpd
13a30 69 72 2f 74 6d 70 2d 6c 61 20 24 6c 69 62 0a 09  ir/tmp-la $lib..
13a40 64 6f 6e 65 0a 20 20 20 20 20 20 20 20 24 7b 52  done.        ${R
13a50 4d 7d 72 20 22 24 74 6d 70 64 69 72 22 0a 20 20  M}r "$tmpdir".  
13a60 20 20 20 20 66 69 0a 20 20 20 20 66 69 0a 0a 20      fi.    fi.. 
13a70 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
13a80 66 69 6e 69 73 68 5f 63 6d 64 73 24 66 69 6e 69  finish_cmds$fini
13a90 73 68 5f 65 76 61 6c 22 20 26 26 20 74 65 73 74  sh_eval" && test
13aa0 20 2d 6e 20 22 24 6c 69 62 64 69 72 73 22 3b 20   -n "$libdirs"; 
13ab0 74 68 65 6e 0a 20 20 20 20 20 20 66 6f 72 20 6c  then.      for l
13ac0 69 62 64 69 72 20 69 6e 20 24 6c 69 62 64 69 72  ibdir in $libdir
13ad0 73 3b 20 64 6f 0a 09 69 66 20 74 65 73 74 20 2d  s; do..if test -
13ae0 6e 20 22 24 66 69 6e 69 73 68 5f 63 6d 64 73 22  n "$finish_cmds"
13af0 3b 20 74 68 65 6e 0a 09 20 20 23 20 44 6f 20 65  ; then..  # Do e
13b00 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74  ach command in t
13b10 68 65 20 66 69 6e 69 73 68 20 63 6f 6d 6d 61 6e  he finish comman
13b20 64 73 2e 0a 09 20 20 66 75 6e 63 5f 65 78 65 63  ds...  func_exec
13b30 75 74 65 5f 63 6d 64 73 20 22 24 66 69 6e 69 73  ute_cmds "$finis
13b40 68 5f 63 6d 64 73 22 20 27 61 64 6d 69 6e 63 6d  h_cmds" 'admincm
13b50 64 73 3d 22 24 61 64 6d 69 6e 63 6d 64 73 0a 27  ds="$admincmds.'
13b60 22 24 63 6d 64 22 27 22 27 0a 09 66 69 0a 09 69  "$cmd"'"'..fi..i
13b70 66 20 74 65 73 74 20 2d 6e 20 22 24 66 69 6e 69  f test -n "$fini
13b80 73 68 5f 65 76 61 6c 22 3b 20 74 68 65 6e 0a 09  sh_eval"; then..
13b90 20 20 23 20 44 6f 20 74 68 65 20 73 69 6e 67 6c    # Do the singl
13ba0 65 20 66 69 6e 69 73 68 5f 65 76 61 6c 2e 0a 09  e finish_eval...
13bb0 20 20 65 76 61 6c 20 63 6d 64 73 3d 5c 22 24 66    eval cmds=\"$f
13bc0 69 6e 69 73 68 5f 65 76 61 6c 5c 22 0a 09 20 20  inish_eval\"..  
13bd0 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20  $opt_dry_run || 
13be0 65 76 61 6c 20 22 24 63 6d 64 73 22 20 7c 7c 20  eval "$cmds" || 
13bf0 66 75 6e 63 5f 61 70 70 65 6e 64 20 61 64 6d 69  func_append admi
13c00 6e 63 6d 64 73 20 22 0a 20 20 20 20 20 20 20 24  ncmds ".       $
13c10 63 6d 64 73 22 0a 09 66 69 0a 20 20 20 20 20 20  cmds"..fi.      
13c20 64 6f 6e 65 0a 20 20 20 20 66 69 0a 0a 20 20 20  done.    fi..   
13c30 20 23 20 45 78 69 74 20 68 65 72 65 20 69 66 20   # Exit here if 
13c40 74 68 65 79 20 77 61 6e 74 65 64 20 73 69 6c 65  they wanted sile
13c50 6e 74 20 6d 6f 64 65 2e 0a 20 20 20 20 24 6f 70  nt mode..    $op
13c60 74 5f 73 69 6c 65 6e 74 20 26 26 20 65 78 69 74  t_silent && exit
13c70 20 24 45 58 49 54 5f 53 55 43 43 45 53 53 0a 0a   $EXIT_SUCCESS..
13c80 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
13c90 24 66 69 6e 69 73 68 5f 63 6d 64 73 24 66 69 6e  $finish_cmds$fin
13ca0 69 73 68 5f 65 76 61 6c 22 20 26 26 20 74 65 73  ish_eval" && tes
13cb0 74 20 2d 6e 20 22 24 6c 69 62 64 69 72 73 22 3b  t -n "$libdirs";
13cc0 20 74 68 65 6e 0a 20 20 20 20 20 20 65 63 68 6f   then.      echo
13cd0 20 22 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   "--------------
13ce0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13cf0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13d00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
13d10 2d 2d 2d 2d 2d 2d 2d 2d 22 0a 20 20 20 20 20 20  --------".      
13d20 65 63 68 6f 20 22 4c 69 62 72 61 72 69 65 73 20  echo "Libraries 
13d30 68 61 76 65 20 62 65 65 6e 20 69 6e 73 74 61 6c  have been instal
13d40 6c 65 64 20 69 6e 3a 22 0a 20 20 20 20 20 20 66  led in:".      f
13d50 6f 72 20 6c 69 62 64 69 72 20 69 6e 20 24 6c 69  or libdir in $li
13d60 62 64 69 72 73 3b 20 64 6f 0a 09 24 45 43 48 4f  bdirs; do..$ECHO
13d70 20 22 20 20 20 24 6c 69 62 64 69 72 22 0a 20 20   "   $libdir".  
13d80 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 20 20 65      done.      e
13d90 63 68 6f 0a 20 20 20 20 20 20 65 63 68 6f 20 22  cho.      echo "
13da0 49 66 20 79 6f 75 20 65 76 65 72 20 68 61 70 70  If you ever happ
13db0 65 6e 20 74 6f 20 77 61 6e 74 20 74 6f 20 6c 69  en to want to li
13dc0 6e 6b 20 61 67 61 69 6e 73 74 20 69 6e 73 74 61  nk against insta
13dd0 6c 6c 65 64 20 6c 69 62 72 61 72 69 65 73 22 0a  lled libraries".
13de0 20 20 20 20 20 20 65 63 68 6f 20 22 69 6e 20 61        echo "in a
13df0 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79   given directory
13e00 2c 20 4c 49 42 44 49 52 2c 20 79 6f 75 20 6d 75  , LIBDIR, you mu
13e10 73 74 20 65 69 74 68 65 72 20 75 73 65 20 6c 69  st either use li
13e20 62 74 6f 6f 6c 2c 20 61 6e 64 22 0a 20 20 20 20  btool, and".    
13e30 20 20 65 63 68 6f 20 22 73 70 65 63 69 66 79 20    echo "specify 
13e40 74 68 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d  the full pathnam
13e50 65 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79  e of the library
13e60 2c 20 6f 72 20 75 73 65 20 74 68 65 20 5c 60 2d  , or use the \`-
13e70 4c 4c 49 42 44 49 52 27 22 0a 20 20 20 20 20 20  LLIBDIR'".      
13e80 65 63 68 6f 20 22 66 6c 61 67 20 64 75 72 69 6e  echo "flag durin
13e90 67 20 6c 69 6e 6b 69 6e 67 20 61 6e 64 20 64 6f  g linking and do
13ea0 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 6f 66   at least one of
13eb0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 22   the following:"
13ec0 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d  .      if test -
13ed0 6e 20 22 24 73 68 6c 69 62 70 61 74 68 5f 76 61  n "$shlibpath_va
13ee0 72 22 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20 22  r"; then..echo "
13ef0 20 20 20 2d 20 61 64 64 20 4c 49 42 44 49 52 20     - add LIBDIR 
13f00 74 6f 20 74 68 65 20 5c 60 24 73 68 6c 69 62 70  to the \`$shlibp
13f10 61 74 68 5f 76 61 72 27 20 65 6e 76 69 72 6f 6e  ath_var' environ
13f20 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 22 0a 09  ment variable"..
13f30 65 63 68 6f 20 22 20 20 20 20 20 64 75 72 69 6e  echo "     durin
13f40 67 20 65 78 65 63 75 74 69 6f 6e 22 0a 20 20 20  g execution".   
13f50 20 20 20 66 69 0a 20 20 20 20 20 20 69 66 20 74     fi.      if t
13f60 65 73 74 20 2d 6e 20 22 24 72 75 6e 70 61 74 68  est -n "$runpath
13f70 5f 76 61 72 22 3b 20 74 68 65 6e 0a 09 65 63 68  _var"; then..ech
13f80 6f 20 22 20 20 20 2d 20 61 64 64 20 4c 49 42 44  o "   - add LIBD
13f90 49 52 20 74 6f 20 74 68 65 20 5c 60 24 72 75 6e  IR to the \`$run
13fa0 70 61 74 68 5f 76 61 72 27 20 65 6e 76 69 72 6f  path_var' enviro
13fb0 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 22 0a  nment variable".
13fc0 09 65 63 68 6f 20 22 20 20 20 20 20 64 75 72 69  .echo "     duri
13fd0 6e 67 20 6c 69 6e 6b 69 6e 67 22 0a 20 20 20 20  ng linking".    
13fe0 20 20 66 69 0a 20 20 20 20 20 20 69 66 20 74 65    fi.      if te
13ff0 73 74 20 2d 6e 20 22 24 68 61 72 64 63 6f 64 65  st -n "$hardcode
14000 5f 6c 69 62 64 69 72 5f 66 6c 61 67 5f 73 70 65  _libdir_flag_spe
14010 63 22 3b 20 74 68 65 6e 0a 09 6c 69 62 64 69 72  c"; then..libdir
14020 3d 4c 49 42 44 49 52 0a 09 65 76 61 6c 20 66 6c  =LIBDIR..eval fl
14030 61 67 3d 5c 22 24 68 61 72 64 63 6f 64 65 5f 6c  ag=\"$hardcode_l
14040 69 62 64 69 72 5f 66 6c 61 67 5f 73 70 65 63 5c  ibdir_flag_spec\
14050 22 0a 0a 09 24 45 43 48 4f 20 22 20 20 20 2d 20  "...$ECHO "   - 
14060 75 73 65 20 74 68 65 20 5c 60 24 66 6c 61 67 27  use the \`$flag'
14070 20 6c 69 6e 6b 65 72 20 66 6c 61 67 22 0a 20 20   linker flag".  
14080 20 20 20 20 66 69 0a 20 20 20 20 20 20 69 66 20      fi.      if 
14090 74 65 73 74 20 2d 6e 20 22 24 61 64 6d 69 6e 63  test -n "$adminc
140a0 6d 64 73 22 3b 20 74 68 65 6e 0a 09 24 45 43 48  mds"; then..$ECH
140b0 4f 20 22 20 20 20 2d 20 68 61 76 65 20 79 6f 75  O "   - have you
140c0 72 20 73 79 73 74 65 6d 20 61 64 6d 69 6e 69 73  r system adminis
140d0 74 72 61 74 6f 72 20 72 75 6e 20 74 68 65 73 65  trator run these
140e0 20 63 6f 6d 6d 61 6e 64 73 3a 24 61 64 6d 69 6e   commands:$admin
140f0 63 6d 64 73 22 0a 20 20 20 20 20 20 66 69 0a 20  cmds".      fi. 
14100 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 66 20       if test -f 
14110 2f 65 74 63 2f 6c 64 2e 73 6f 2e 63 6f 6e 66 3b  /etc/ld.so.conf;
14120 20 74 68 65 6e 0a 09 65 63 68 6f 20 22 20 20 20   then..echo "   
14130 2d 20 68 61 76 65 20 79 6f 75 72 20 73 79 73 74  - have your syst
14140 65 6d 20 61 64 6d 69 6e 69 73 74 72 61 74 6f 72  em administrator
14150 20 61 64 64 20 4c 49 42 44 49 52 20 74 6f 20 5c   add LIBDIR to \
14160 60 2f 65 74 63 2f 6c 64 2e 73 6f 2e 63 6f 6e 66  `/etc/ld.so.conf
14170 27 22 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20  '".      fi.    
14180 20 20 65 63 68 6f 0a 0a 20 20 20 20 20 20 65 63    echo..      ec
14190 68 6f 20 22 53 65 65 20 61 6e 79 20 6f 70 65 72  ho "See any oper
141a0 61 74 69 6e 67 20 73 79 73 74 65 6d 20 64 6f 63  ating system doc
141b0 75 6d 65 6e 74 61 74 69 6f 6e 20 61 62 6f 75 74  umentation about
141c0 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 69 65   shared librarie
141d0 73 20 66 6f 72 22 0a 20 20 20 20 20 20 63 61 73  s for".      cas
141e0 65 20 24 68 6f 73 74 20 69 6e 0a 09 73 6f 6c 61  e $host in..sola
141f0 72 69 73 32 2e 5b 36 37 38 39 5d 7c 73 6f 6c 61  ris2.[6789]|sola
14200 72 69 73 32 2e 31 5b 30 2d 39 5d 29 0a 09 20 20  ris2.1[0-9])..  
14210 65 63 68 6f 20 22 6d 6f 72 65 20 69 6e 66 6f 72  echo "more infor
14220 6d 61 74 69 6f 6e 2c 20 73 75 63 68 20 61 73 20  mation, such as 
14230 74 68 65 20 6c 64 28 31 29 2c 20 63 72 6c 65 28  the ld(1), crle(
14240 31 29 20 61 6e 64 20 6c 64 2e 73 6f 28 38 29 20  1) and ld.so(8) 
14250 6d 61 6e 75 61 6c 22 0a 09 20 20 65 63 68 6f 20  manual"..  echo 
14260 22 70 61 67 65 73 2e 22 0a 09 20 20 3b 3b 0a 09  "pages."..  ;;..
14270 2a 29 0a 09 20 20 65 63 68 6f 20 22 6d 6f 72 65  *)..  echo "more
14280 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 73 75   information, su
14290 63 68 20 61 73 20 74 68 65 20 6c 64 28 31 29 20  ch as the ld(1) 
142a0 61 6e 64 20 6c 64 2e 73 6f 28 38 29 20 6d 61 6e  and ld.so(8) man
142b0 75 61 6c 20 70 61 67 65 73 2e 22 0a 09 20 20 3b  ual pages."..  ;
142c0 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 20 20 20  ;.      esac.   
142d0 20 20 20 65 63 68 6f 20 22 2d 2d 2d 2d 2d 2d 2d     echo "-------
142e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
142f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14310 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 22  ---------------"
14320 0a 20 20 20 20 66 69 0a 20 20 20 20 65 78 69 74  .    fi.    exit
14330 20 24 45 58 49 54 5f 53 55 43 43 45 53 53 0a 7d   $EXIT_SUCCESS.}
14340 0a 0a 74 65 73 74 20 22 24 6f 70 74 5f 6d 6f 64  ..test "$opt_mod
14350 65 22 20 3d 20 66 69 6e 69 73 68 20 26 26 20 66  e" = finish && f
14360 75 6e 63 5f 6d 6f 64 65 5f 66 69 6e 69 73 68 20  unc_mode_finish 
14370 24 7b 31 2b 22 24 40 22 7d 0a 0a 0a 23 20 66 75  ${1+"$@"}...# fu
14380 6e 63 5f 6d 6f 64 65 5f 69 6e 73 74 61 6c 6c 20  nc_mode_install 
14390 61 72 67 2e 2e 2e 0a 66 75 6e 63 5f 6d 6f 64 65  arg....func_mode
143a0 5f 69 6e 73 74 61 6c 6c 20 28 29 0a 7b 0a 20 20  _install ().{.  
143b0 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20 20 20    $opt_debug.   
143c0 20 23 20 54 68 65 72 65 20 6d 61 79 20 62 65 20   # There may be 
143d0 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 73 68 28 31  an optional sh(1
143e0 29 20 61 72 67 75 6d 65 6e 74 20 61 74 20 74 68  ) argument at th
143f0 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 0a 20  e beginning of. 
14400 20 20 20 23 20 69 6e 73 74 61 6c 6c 5f 70 72 6f     # install_pro
14410 67 20 28 65 73 70 65 63 69 61 6c 6c 79 20 6f 6e  g (especially on
14420 20 57 69 6e 64 6f 77 73 20 4e 54 29 2e 0a 20 20   Windows NT)..  
14430 20 20 69 66 20 74 65 73 74 20 22 24 6e 6f 6e 6f    if test "$nono
14440 70 74 22 20 3d 20 22 24 53 48 45 4c 4c 22 20 7c  pt" = "$SHELL" |
14450 7c 20 74 65 73 74 20 22 24 6e 6f 6e 6f 70 74 22  | test "$nonopt"
14460 20 3d 20 2f 62 69 6e 2f 73 68 20 7c 7c 0a 20 20   = /bin/sh ||.  
14470 20 20 20 20 20 23 20 41 6c 6c 6f 77 20 74 68 65       # Allow the
14480 20 75 73 65 20 6f 66 20 47 4e 55 20 73 68 74 6f   use of GNU shto
14490 6f 6c 27 73 20 69 6e 73 74 61 6c 6c 20 63 6f 6d  ol's install com
144a0 6d 61 6e 64 2e 0a 20 20 20 20 20 20 20 63 61 73  mand..       cas
144b0 65 20 24 6e 6f 6e 6f 70 74 20 69 6e 20 2a 73 68  e $nonopt in *sh
144c0 74 6f 6f 6c 2a 29 20 3a 3b 3b 20 2a 29 20 66 61  tool*) :;; *) fa
144d0 6c 73 65 3b 3b 20 65 73 61 63 3b 20 74 68 65 6e  lse;; esac; then
144e0 0a 20 20 20 20 20 20 23 20 41 65 73 74 68 65 74  .      # Aesthet
144f0 69 63 61 6c 6c 79 20 71 75 6f 74 65 20 69 74 2e  ically quote it.
14500 0a 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f 74  .      func_quot
14510 65 5f 66 6f 72 5f 65 76 61 6c 20 22 24 6e 6f 6e  e_for_eval "$non
14520 6f 70 74 22 0a 20 20 20 20 20 20 69 6e 73 74 61  opt".      insta
14530 6c 6c 5f 70 72 6f 67 3d 22 24 66 75 6e 63 5f 71  ll_prog="$func_q
14540 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65  uote_for_eval_re
14550 73 75 6c 74 20 22 0a 20 20 20 20 20 20 61 72 67  sult ".      arg
14560 3d 24 31 0a 20 20 20 20 20 20 73 68 69 66 74 0a  =$1.      shift.
14570 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69      else.      i
14580 6e 73 74 61 6c 6c 5f 70 72 6f 67 3d 0a 20 20 20  nstall_prog=.   
14590 20 20 20 61 72 67 3d 24 6e 6f 6e 6f 70 74 0a 20     arg=$nonopt. 
145a0 20 20 20 66 69 0a 0a 20 20 20 20 23 20 54 68 65     fi..    # The
145b0 20 72 65 61 6c 20 66 69 72 73 74 20 61 72 67 75   real first argu
145c0 6d 65 6e 74 20 73 68 6f 75 6c 64 20 62 65 20 74  ment should be t
145d0 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 69  he name of the i
145e0 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 70 72 6f 67  nstallation prog
145f0 72 61 6d 2e 0a 20 20 20 20 23 20 41 65 73 74 68  ram..    # Aesth
14600 65 74 69 63 61 6c 6c 79 20 71 75 6f 74 65 20 69  etically quote i
14610 74 2e 0a 20 20 20 20 66 75 6e 63 5f 71 75 6f 74  t..    func_quot
14620 65 5f 66 6f 72 5f 65 76 61 6c 20 22 24 61 72 67  e_for_eval "$arg
14630 22 0a 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e  ".    func_appen
14640 64 20 69 6e 73 74 61 6c 6c 5f 70 72 6f 67 20 22  d install_prog "
14650 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f  $func_quote_for_
14660 65 76 61 6c 5f 72 65 73 75 6c 74 22 0a 20 20 20  eval_result".   
14670 20 69 6e 73 74 61 6c 6c 5f 73 68 61 72 65 64 5f   install_shared_
14680 70 72 6f 67 3d 24 69 6e 73 74 61 6c 6c 5f 70 72  prog=$install_pr
14690 6f 67 0a 20 20 20 20 63 61 73 65 20 22 20 24 69  og.    case " $i
146a0 6e 73 74 61 6c 6c 5f 70 72 6f 67 20 22 20 69 6e  nstall_prog " in
146b0 0a 20 20 20 20 20 20 2a 5b 5c 5c 5c 20 2f 5d 63  .      *[\\\ /]c
146c0 70 5c 20 2a 29 20 69 6e 73 74 61 6c 6c 5f 63 70  p\ *) install_cp
146d0 3d 3a 20 3b 3b 0a 20 20 20 20 20 20 2a 29 20 69  =: ;;.      *) i
146e0 6e 73 74 61 6c 6c 5f 63 70 3d 66 61 6c 73 65 20  nstall_cp=false 
146f0 3b 3b 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20  ;;.    esac..   
14700 20 23 20 57 65 20 6e 65 65 64 20 74 6f 20 61 63   # We need to ac
14710 63 65 70 74 20 61 74 20 6c 65 61 73 74 20 61 6c  cept at least al
14720 6c 20 74 68 65 20 42 53 44 20 69 6e 73 74 61 6c  l the BSD instal
14730 6c 20 66 6c 61 67 73 2e 0a 20 20 20 20 64 65 73  l flags..    des
14740 74 3d 0a 20 20 20 20 66 69 6c 65 73 3d 0a 20 20  t=.    files=.  
14750 20 20 6f 70 74 73 3d 0a 20 20 20 20 70 72 65 76    opts=.    prev
14760 3d 0a 20 20 20 20 69 6e 73 74 61 6c 6c 5f 74 79  =.    install_ty
14770 70 65 3d 0a 20 20 20 20 69 73 64 69 72 3d 6e 6f  pe=.    isdir=no
14780 0a 20 20 20 20 73 74 72 69 70 6d 65 3d 0a 20 20  .    stripme=.  
14790 20 20 6e 6f 5f 6d 6f 64 65 3d 3a 0a 20 20 20 20    no_mode=:.    
147a0 66 6f 72 20 61 72 67 0a 20 20 20 20 64 6f 0a 20  for arg.    do. 
147b0 20 20 20 20 20 61 72 67 32 3d 0a 20 20 20 20 20       arg2=.     
147c0 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64 65   if test -n "$de
147d0 73 74 22 3b 20 74 68 65 6e 0a 09 66 75 6e 63 5f  st"; then..func_
147e0 61 70 70 65 6e 64 20 66 69 6c 65 73 20 22 20 24  append files " $
147f0 64 65 73 74 22 0a 09 64 65 73 74 3d 24 61 72 67  dest"..dest=$arg
14800 0a 09 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20  ..continue.     
14810 20 66 69 0a 0a 20 20 20 20 20 20 63 61 73 65 20   fi..      case 
14820 24 61 72 67 20 69 6e 0a 20 20 20 20 20 20 2d 64  $arg in.      -d
14830 29 20 69 73 64 69 72 3d 79 65 73 20 3b 3b 0a 20  ) isdir=yes ;;. 
14840 20 20 20 20 20 2d 66 29 0a 09 69 66 20 24 69 6e       -f)..if $in
14850 73 74 61 6c 6c 5f 63 70 3b 20 74 68 65 6e 20 3a  stall_cp; then :
14860 3b 20 65 6c 73 65 0a 09 20 20 70 72 65 76 3d 24  ; else..  prev=$
14870 61 72 67 0a 09 66 69 0a 09 3b 3b 0a 20 20 20 20  arg..fi..;;.    
14880 20 20 2d 67 20 7c 20 2d 6d 20 7c 20 2d 6f 29 0a    -g | -m | -o).
14890 09 70 72 65 76 3d 24 61 72 67 0a 09 3b 3b 0a 20  .prev=$arg..;;. 
148a0 20 20 20 20 20 2d 73 29 0a 09 73 74 72 69 70 6d       -s)..stripm
148b0 65 3d 22 20 2d 73 22 0a 09 63 6f 6e 74 69 6e 75  e=" -s"..continu
148c0 65 0a 09 3b 3b 0a 20 20 20 20 20 20 2d 2a 29 0a  e..;;.      -*).
148d0 09 3b 3b 0a 20 20 20 20 20 20 2a 29 0a 09 23 20  .;;.      *)..# 
148e0 49 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  If the previous 
148f0 6f 70 74 69 6f 6e 20 6e 65 65 64 65 64 20 61 6e  option needed an
14900 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 6e 20   argument, then 
14910 73 6b 69 70 20 69 74 2e 0a 09 69 66 20 74 65 73  skip it...if tes
14920 74 20 2d 6e 20 22 24 70 72 65 76 22 3b 20 74 68  t -n "$prev"; th
14930 65 6e 0a 09 20 20 69 66 20 74 65 73 74 20 22 78  en..  if test "x
14940 24 70 72 65 76 22 20 3d 20 78 2d 6d 20 26 26 20  $prev" = x-m && 
14950 74 65 73 74 20 2d 6e 20 22 24 69 6e 73 74 61 6c  test -n "$instal
14960 6c 5f 6f 76 65 72 72 69 64 65 5f 6d 6f 64 65 22  l_override_mode"
14970 3b 20 74 68 65 6e 0a 09 20 20 20 20 61 72 67 32  ; then..    arg2
14980 3d 24 69 6e 73 74 61 6c 6c 5f 6f 76 65 72 72 69  =$install_overri
14990 64 65 5f 6d 6f 64 65 0a 09 20 20 20 20 6e 6f 5f  de_mode..    no_
149a0 6d 6f 64 65 3d 66 61 6c 73 65 0a 09 20 20 66 69  mode=false..  fi
149b0 0a 09 20 20 70 72 65 76 3d 0a 09 65 6c 73 65 0a  ..  prev=..else.
149c0 09 20 20 64 65 73 74 3d 24 61 72 67 0a 09 20 20  .  dest=$arg..  
149d0 63 6f 6e 74 69 6e 75 65 0a 09 66 69 0a 09 3b 3b  continue..fi..;;
149e0 0a 20 20 20 20 20 20 65 73 61 63 0a 0a 20 20 20  .      esac..   
149f0 20 20 20 23 20 41 65 73 74 68 65 74 69 63 61 6c     # Aesthetical
14a00 6c 79 20 71 75 6f 74 65 20 74 68 65 20 61 72 67  ly quote the arg
14a10 75 6d 65 6e 74 2e 0a 20 20 20 20 20 20 66 75 6e  ument..      fun
14a20 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c  c_quote_for_eval
14a30 20 22 24 61 72 67 22 0a 20 20 20 20 20 20 66 75   "$arg".      fu
14a40 6e 63 5f 61 70 70 65 6e 64 20 69 6e 73 74 61 6c  nc_append instal
14a50 6c 5f 70 72 6f 67 20 22 20 24 66 75 6e 63 5f 71  l_prog " $func_q
14a60 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65  uote_for_eval_re
14a70 73 75 6c 74 22 0a 20 20 20 20 20 20 69 66 20 74  sult".      if t
14a80 65 73 74 20 2d 6e 20 22 24 61 72 67 32 22 3b 20  est -n "$arg2"; 
14a90 74 68 65 6e 0a 09 66 75 6e 63 5f 71 75 6f 74 65  then..func_quote
14aa0 5f 66 6f 72 5f 65 76 61 6c 20 22 24 61 72 67 32  _for_eval "$arg2
14ab0 22 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20  ".      fi.     
14ac0 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 69 6e 73   func_append ins
14ad0 74 61 6c 6c 5f 73 68 61 72 65 64 5f 70 72 6f 67  tall_shared_prog
14ae0 20 22 20 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66   " $func_quote_f
14af0 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74 22 0a  or_eval_result".
14b00 20 20 20 20 64 6f 6e 65 0a 0a 20 20 20 20 74 65      done..    te
14b10 73 74 20 2d 7a 20 22 24 69 6e 73 74 61 6c 6c 5f  st -z "$install_
14b20 70 72 6f 67 22 20 26 26 20 5c 0a 20 20 20 20 20  prog" && \.     
14b30 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70   func_fatal_help
14b40 20 22 79 6f 75 20 6d 75 73 74 20 73 70 65 63 69   "you must speci
14b50 66 79 20 61 6e 20 69 6e 73 74 61 6c 6c 20 70 72  fy an install pr
14b60 6f 67 72 61 6d 22 0a 0a 20 20 20 20 74 65 73 74  ogram"..    test
14b70 20 2d 6e 20 22 24 70 72 65 76 22 20 26 26 20 5c   -n "$prev" && \
14b80 0a 20 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61  .      func_fata
14b90 6c 5f 68 65 6c 70 20 22 74 68 65 20 5c 60 24 70  l_help "the \`$p
14ba0 72 65 76 27 20 6f 70 74 69 6f 6e 20 72 65 71 75  rev' option requ
14bb0 69 72 65 73 20 61 6e 20 61 72 67 75 6d 65 6e 74  ires an argument
14bc0 22 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d  "..    if test -
14bd0 6e 20 22 24 69 6e 73 74 61 6c 6c 5f 6f 76 65 72  n "$install_over
14be0 72 69 64 65 5f 6d 6f 64 65 22 20 26 26 20 24 6e  ride_mode" && $n
14bf0 6f 5f 6d 6f 64 65 3b 20 74 68 65 6e 0a 20 20 20  o_mode; then.   
14c00 20 20 20 69 66 20 24 69 6e 73 74 61 6c 6c 5f 63     if $install_c
14c10 70 3b 20 74 68 65 6e 20 3a 3b 20 65 6c 73 65 0a  p; then :; else.
14c20 09 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f  .func_quote_for_
14c30 65 76 61 6c 20 22 24 69 6e 73 74 61 6c 6c 5f 6f  eval "$install_o
14c40 76 65 72 72 69 64 65 5f 6d 6f 64 65 22 0a 09 66  verride_mode"..f
14c50 75 6e 63 5f 61 70 70 65 6e 64 20 69 6e 73 74 61  unc_append insta
14c60 6c 6c 5f 73 68 61 72 65 64 5f 70 72 6f 67 20 22  ll_shared_prog "
14c70 20 2d 6d 20 24 66 75 6e 63 5f 71 75 6f 74 65 5f   -m $func_quote_
14c80 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74 22  for_eval_result"
14c90 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 66 69  .      fi.    fi
14ca0 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d 7a  ..    if test -z
14cb0 20 22 24 66 69 6c 65 73 22 3b 20 74 68 65 6e 0a   "$files"; then.
14cc0 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 7a        if test -z
14cd0 20 22 24 64 65 73 74 22 3b 20 74 68 65 6e 0a 09   "$dest"; then..
14ce0 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20  func_fatal_help 
14cf0 22 6e 6f 20 66 69 6c 65 20 6f 72 20 64 65 73 74  "no file or dest
14d00 69 6e 61 74 69 6f 6e 20 73 70 65 63 69 66 69 65  ination specifie
14d10 64 22 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 66  d".      else..f
14d20 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22  unc_fatal_help "
14d30 79 6f 75 20 6d 75 73 74 20 73 70 65 63 69 66 79  you must specify
14d40 20 61 20 64 65 73 74 69 6e 61 74 69 6f 6e 22 0a   a destination".
14d50 20 20 20 20 20 20 66 69 0a 20 20 20 20 66 69 0a        fi.    fi.
14d60 0a 20 20 20 20 23 20 53 74 72 69 70 20 61 6e 79  .    # Strip any
14d70 20 74 72 61 69 6c 69 6e 67 20 73 6c 61 73 68 20   trailing slash 
14d80 66 72 6f 6d 20 74 68 65 20 64 65 73 74 69 6e 61  from the destina
14d90 74 69 6f 6e 2e 0a 20 20 20 20 66 75 6e 63 5f 73  tion..    func_s
14da0 74 72 69 70 6e 61 6d 65 20 27 27 20 27 2f 27 20  tripname '' '/' 
14db0 22 24 64 65 73 74 22 0a 20 20 20 20 64 65 73 74  "$dest".    dest
14dc0 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  =$func_stripname
14dd0 5f 72 65 73 75 6c 74 0a 0a 20 20 20 20 23 20 43  _result..    # C
14de0 68 65 63 6b 20 74 6f 20 73 65 65 20 74 68 61 74  heck to see that
14df0 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e   the destination
14e00 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 2e   is a directory.
14e10 0a 20 20 20 20 74 65 73 74 20 2d 64 20 22 24 64  .    test -d "$d
14e20 65 73 74 22 20 26 26 20 69 73 64 69 72 3d 79 65  est" && isdir=ye
14e30 73 0a 20 20 20 20 69 66 20 74 65 73 74 20 22 24  s.    if test "$
14e40 69 73 64 69 72 22 20 3d 20 79 65 73 3b 20 74 68  isdir" = yes; th
14e50 65 6e 0a 20 20 20 20 20 20 64 65 73 74 64 69 72  en.      destdir
14e60 3d 22 24 64 65 73 74 22 0a 20 20 20 20 20 20 64  ="$dest".      d
14e70 65 73 74 6e 61 6d 65 3d 0a 20 20 20 20 65 6c 73  estname=.    els
14e80 65 0a 20 20 20 20 20 20 66 75 6e 63 5f 64 69 72  e.      func_dir
14e90 6e 61 6d 65 5f 61 6e 64 5f 62 61 73 65 6e 61 6d  name_and_basenam
14ea0 65 20 22 24 64 65 73 74 22 20 22 22 20 22 2e 22  e "$dest" "" "."
14eb0 0a 20 20 20 20 20 20 64 65 73 74 64 69 72 3d 22  .      destdir="
14ec0 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65  $func_dirname_re
14ed0 73 75 6c 74 22 0a 20 20 20 20 20 20 64 65 73 74  sult".      dest
14ee0 6e 61 6d 65 3d 22 24 66 75 6e 63 5f 62 61 73 65  name="$func_base
14ef0 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 0a 20 20  name_result"..  
14f00 20 20 20 20 23 20 4e 6f 74 20 61 20 64 69 72 65      # Not a dire
14f10 63 74 6f 72 79 2c 20 73 6f 20 63 68 65 63 6b 20  ctory, so check 
14f20 74 6f 20 73 65 65 20 74 68 61 74 20 74 68 65 72  to see that ther
14f30 65 20 69 73 20 6f 6e 6c 79 20 6f 6e 65 20 66 69  e is only one fi
14f40 6c 65 20 73 70 65 63 69 66 69 65 64 2e 0a 20 20  le specified..  
14f50 20 20 20 20 73 65 74 20 64 75 6d 6d 79 20 24 66      set dummy $f
14f60 69 6c 65 73 3b 20 73 68 69 66 74 0a 20 20 20 20  iles; shift.    
14f70 20 20 74 65 73 74 20 22 24 23 22 20 2d 67 74 20    test "$#" -gt 
14f80 31 20 26 26 20 5c 0a 09 66 75 6e 63 5f 66 61 74  1 && \..func_fat
14f90 61 6c 5f 68 65 6c 70 20 22 5c 60 24 64 65 73 74  al_help "\`$dest
14fa0 27 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63  ' is not a direc
14fb0 74 6f 72 79 22 0a 20 20 20 20 66 69 0a 20 20 20  tory".    fi.   
14fc0 20 63 61 73 65 20 24 64 65 73 74 64 69 72 20 69   case $destdir i
14fd0 6e 0a 20 20 20 20 5b 5c 5c 2f 5d 2a 20 7c 20 5b  n.    [\\/]* | [
14fe0 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29 20  A-Za-z]:[\\/]*) 
14ff0 3b 3b 0a 20 20 20 20 2a 29 0a 20 20 20 20 20 20  ;;.    *).      
15000 66 6f 72 20 66 69 6c 65 20 69 6e 20 24 66 69 6c  for file in $fil
15010 65 73 3b 20 64 6f 0a 09 63 61 73 65 20 24 66 69  es; do..case $fi
15020 6c 65 20 69 6e 0a 09 2a 2e 6c 6f 29 20 3b 3b 0a  le in..*.lo) ;;.
15030 09 2a 29 0a 09 20 20 66 75 6e 63 5f 66 61 74 61  .*)..  func_fata
15040 6c 5f 68 65 6c 70 20 22 5c 60 24 64 65 73 74 64  l_help "\`$destd
15050 69 72 27 20 6d 75 73 74 20 62 65 20 61 6e 20 61  ir' must be an a
15060 62 73 6f 6c 75 74 65 20 64 69 72 65 63 74 6f 72  bsolute director
15070 79 20 6e 61 6d 65 22 0a 09 20 20 3b 3b 0a 09 65  y name"..  ;;..e
15080 73 61 63 0a 20 20 20 20 20 20 64 6f 6e 65 0a 20  sac.      done. 
15090 20 20 20 20 20 3b 3b 0a 20 20 20 20 65 73 61 63       ;;.    esac
150a0 0a 0a 20 20 20 20 23 20 54 68 69 73 20 76 61 72  ..    # This var
150b0 69 61 62 6c 65 20 74 65 6c 6c 73 20 77 72 61 70  iable tells wrap
150c0 70 65 72 20 73 63 72 69 70 74 73 20 6a 75 73 74  per scripts just
150d0 20 74 6f 20 73 65 74 20 76 61 72 69 61 62 6c 65   to set variable
150e0 73 20 72 61 74 68 65 72 0a 20 20 20 20 23 20 74  s rather.    # t
150f0 68 61 6e 20 72 75 6e 6e 69 6e 67 20 74 68 65 69  han running thei
15100 72 20 70 72 6f 67 72 61 6d 73 2e 0a 20 20 20 20  r programs..    
15110 6c 69 62 74 6f 6f 6c 5f 69 6e 73 74 61 6c 6c 5f  libtool_install_
15120 6d 61 67 69 63 3d 22 24 6d 61 67 69 63 22 0a 0a  magic="$magic"..
15130 20 20 20 20 73 74 61 74 69 63 6c 69 62 73 3d 0a      staticlibs=.
15140 20 20 20 20 66 75 74 75 72 65 5f 6c 69 62 64 69      future_libdi
15150 72 73 3d 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  rs=.    current_
15160 6c 69 62 64 69 72 73 3d 0a 20 20 20 20 66 6f 72  libdirs=.    for
15170 20 66 69 6c 65 20 69 6e 20 24 66 69 6c 65 73 3b   file in $files;
15180 20 64 6f 0a 0a 20 20 20 20 20 20 23 20 44 6f 20   do..      # Do 
15190 65 61 63 68 20 69 6e 73 74 61 6c 6c 61 74 69 6f  each installatio
151a0 6e 2e 0a 20 20 20 20 20 20 63 61 73 65 20 24 66  n..      case $f
151b0 69 6c 65 20 69 6e 0a 20 20 20 20 20 20 2a 2e 24  ile in.      *.$
151c0 6c 69 62 65 78 74 29 0a 09 23 20 44 6f 20 74 68  libext)..# Do th
151d0 65 20 73 74 61 74 69 63 20 6c 69 62 72 61 72 69  e static librari
151e0 65 73 20 6c 61 74 65 72 2e 0a 09 66 75 6e 63 5f  es later...func_
151f0 61 70 70 65 6e 64 20 73 74 61 74 69 63 6c 69 62  append staticlib
15200 73 20 22 20 24 66 69 6c 65 22 0a 09 3b 3b 0a 0a  s " $file"..;;..
15210 20 20 20 20 20 20 2a 2e 6c 61 29 0a 09 66 75 6e        *.la)..fun
15220 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f  c_resolve_sysroo
15230 74 20 22 24 66 69 6c 65 22 0a 09 66 69 6c 65 3d  t "$file"..file=
15240 24 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79  $func_resolve_sy
15250 73 72 6f 6f 74 5f 72 65 73 75 6c 74 0a 0a 09 23  sroot_result...#
15260 20 43 68 65 63 6b 20 74 6f 20 73 65 65 20 74 68   Check to see th
15270 61 74 20 74 68 69 73 20 72 65 61 6c 6c 79 20 69  at this really i
15280 73 20 61 20 6c 69 62 74 6f 6f 6c 20 61 72 63 68  s a libtool arch
15290 69 76 65 2e 0a 09 66 75 6e 63 5f 6c 61 6c 69 62  ive...func_lalib
152a0 5f 75 6e 73 61 66 65 5f 70 20 22 24 66 69 6c 65  _unsafe_p "$file
152b0 22 20 5c 0a 09 20 20 7c 7c 20 66 75 6e 63 5f 66  " \..  || func_f
152c0 61 74 61 6c 5f 68 65 6c 70 20 22 5c 60 24 66 69  atal_help "\`$fi
152d0 6c 65 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c  le' is not a val
152e0 69 64 20 6c 69 62 74 6f 6f 6c 20 61 72 63 68 69  id libtool archi
152f0 76 65 22 0a 0a 09 6c 69 62 72 61 72 79 5f 6e 61  ve"...library_na
15300 6d 65 73 3d 0a 09 6f 6c 64 5f 6c 69 62 72 61 72  mes=..old_librar
15310 79 3d 0a 09 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61  y=..relink_comma
15320 6e 64 3d 0a 09 66 75 6e 63 5f 73 6f 75 72 63 65  nd=..func_source
15330 20 22 24 66 69 6c 65 22 0a 0a 09 23 20 41 64 64   "$file"...# Add
15340 20 74 68 65 20 6c 69 62 64 69 72 20 74 6f 20 63   the libdir to c
15350 75 72 72 65 6e 74 5f 6c 69 62 64 69 72 73 20 69  urrent_libdirs i
15360 66 20 69 74 20 69 73 20 74 68 65 20 64 65 73 74  f it is the dest
15370 69 6e 61 74 69 6f 6e 2e 0a 09 69 66 20 74 65 73  ination...if tes
15380 74 20 22 58 24 64 65 73 74 64 69 72 22 20 3d 20  t "X$destdir" = 
15390 22 58 24 6c 69 62 64 69 72 22 3b 20 74 68 65 6e  "X$libdir"; then
153a0 0a 09 20 20 63 61 73 65 20 22 24 63 75 72 72 65  ..  case "$curre
153b0 6e 74 5f 6c 69 62 64 69 72 73 20 22 20 69 6e 0a  nt_libdirs " in.
153c0 09 20 20 2a 22 20 24 6c 69 62 64 69 72 20 22 2a  .  *" $libdir "*
153d0 29 20 3b 3b 0a 09 20 20 2a 29 20 66 75 6e 63 5f  ) ;;..  *) func_
153e0 61 70 70 65 6e 64 20 63 75 72 72 65 6e 74 5f 6c  append current_l
153f0 69 62 64 69 72 73 20 22 20 24 6c 69 62 64 69 72  ibdirs " $libdir
15400 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 65 6c  " ;;..  esac..el
15410 73 65 0a 09 20 20 23 20 4e 6f 74 65 20 74 68 65  se..  # Note the
15420 20 6c 69 62 64 69 72 20 61 73 20 61 20 66 75 74   libdir as a fut
15430 75 72 65 20 6c 69 62 64 69 72 2e 0a 09 20 20 63  ure libdir...  c
15440 61 73 65 20 22 24 66 75 74 75 72 65 5f 6c 69 62  ase "$future_lib
15450 64 69 72 73 20 22 20 69 6e 0a 09 20 20 2a 22 20  dirs " in..  *" 
15460 24 6c 69 62 64 69 72 20 22 2a 29 20 3b 3b 0a 09  $libdir "*) ;;..
15470 20 20 2a 29 20 66 75 6e 63 5f 61 70 70 65 6e 64    *) func_append
15480 20 66 75 74 75 72 65 5f 6c 69 62 64 69 72 73 20   future_libdirs 
15490 22 20 24 6c 69 62 64 69 72 22 20 3b 3b 0a 09 20  " $libdir" ;;.. 
154a0 20 65 73 61 63 0a 09 66 69 0a 0a 09 66 75 6e 63   esac..fi...func
154b0 5f 64 69 72 6e 61 6d 65 20 22 24 66 69 6c 65 22  _dirname "$file"
154c0 20 22 2f 22 20 22 22 0a 09 64 69 72 3d 22 24 66   "/" ""..dir="$f
154d0 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75  unc_dirname_resu
154e0 6c 74 22 0a 09 66 75 6e 63 5f 61 70 70 65 6e 64  lt"..func_append
154f0 20 64 69 72 20 22 24 6f 62 6a 64 69 72 22 0a 0a   dir "$objdir"..
15500 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 72 65  .if test -n "$re
15510 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 3b 20 74  link_command"; t
15520 68 65 6e 0a 09 20 20 23 20 44 65 74 65 72 6d 69  hen..  # Determi
15530 6e 65 20 74 68 65 20 70 72 65 66 69 78 20 74 68  ne the prefix th
15540 65 20 75 73 65 72 20 68 61 73 20 61 70 70 6c 69  e user has appli
15550 65 64 20 74 6f 20 6f 75 72 20 66 75 74 75 72 65  ed to our future
15560 20 64 69 72 2e 0a 09 20 20 69 6e 73 74 5f 70 72   dir...  inst_pr
15570 65 66 69 78 5f 64 69 72 3d 60 24 45 43 48 4f 20  efix_dir=`$ECHO 
15580 22 24 64 65 73 74 64 69 72 22 20 7c 20 24 53 45  "$destdir" | $SE
15590 44 20 2d 65 20 22 73 25 24 6c 69 62 64 69 72 5c  D -e "s%$libdir\
155a0 24 25 25 22 60 0a 0a 09 20 20 23 20 44 6f 6e 27  $%%"`...  # Don'
155b0 74 20 61 6c 6c 6f 77 20 74 68 65 20 75 73 65 72  t allow the user
155c0 20 74 6f 20 70 6c 61 63 65 20 75 73 20 6f 75 74   to place us out
155d0 73 69 64 65 20 6f 66 20 6f 75 72 20 65 78 70 65  side of our expe
155e0 63 74 65 64 0a 09 20 20 23 20 6c 6f 63 61 74 69  cted..  # locati
155f0 6f 6e 20 62 2f 63 20 74 68 69 73 20 70 72 65 76  on b/c this prev
15600 65 6e 74 73 20 66 69 6e 64 69 6e 67 20 64 65 70  ents finding dep
15610 65 6e 64 65 6e 74 20 6c 69 62 72 61 72 69 65 73  endent libraries
15620 20 74 68 61 74 0a 09 20 20 23 20 61 72 65 20 69   that..  # are i
15630 6e 73 74 61 6c 6c 65 64 20 74 6f 20 74 68 65 20  nstalled to the 
15640 73 61 6d 65 20 70 72 65 66 69 78 2e 0a 09 20 20  same prefix...  
15650 23 20 41 74 20 70 72 65 73 65 6e 74 2c 20 74 68  # At present, th
15660 69 73 20 63 68 65 63 6b 20 64 6f 65 73 6e 27 74  is check doesn't
15670 20 61 66 66 65 63 74 20 77 69 6e 64 6f 77 73 20   affect windows 
15680 2e 64 6c 6c 27 73 20 74 68 61 74 0a 09 20 20 23  .dll's that..  #
15690 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 20 69   are installed i
156a0 6e 74 6f 20 24 6c 69 62 64 69 72 2f 2e 2e 2f 62  nto $libdir/../b
156b0 69 6e 20 28 63 75 72 72 65 6e 74 6c 79 2c 20 74  in (currently, t
156c0 68 61 74 20 77 6f 72 6b 73 20 66 69 6e 65 29 0a  hat works fine).
156d0 09 20 20 23 20 62 75 74 20 69 74 27 73 20 73 6f  .  # but it's so
156e0 6d 65 74 68 69 6e 67 20 74 6f 20 6b 65 65 70 20  mething to keep 
156f0 61 6e 20 65 79 65 20 6f 6e 2e 0a 09 20 20 74 65  an eye on...  te
15700 73 74 20 22 24 69 6e 73 74 5f 70 72 65 66 69 78  st "$inst_prefix
15710 5f 64 69 72 22 20 3d 20 22 24 64 65 73 74 64 69  _dir" = "$destdi
15720 72 22 20 26 26 20 5c 0a 09 20 20 20 20 66 75 6e  r" && \..    fun
15730 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 65  c_fatal_error "e
15740 72 72 6f 72 3a 20 63 61 6e 6e 6f 74 20 69 6e 73  rror: cannot ins
15750 74 61 6c 6c 20 5c 60 24 66 69 6c 65 27 20 74 6f  tall \`$file' to
15760 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 6f 74   a directory not
15770 20 65 6e 64 69 6e 67 20 69 6e 20 24 6c 69 62 64   ending in $libd
15780 69 72 22 0a 0a 09 20 20 69 66 20 74 65 73 74 20  ir"...  if test 
15790 2d 6e 20 22 24 69 6e 73 74 5f 70 72 65 66 69 78  -n "$inst_prefix
157a0 5f 64 69 72 22 3b 20 74 68 65 6e 0a 09 20 20 20  _dir"; then..   
157b0 20 23 20 53 74 69 63 6b 20 74 68 65 20 69 6e 73   # Stick the ins
157c0 74 5f 70 72 65 66 69 78 5f 64 69 72 20 64 61 74  t_prefix_dir dat
157d0 61 20 69 6e 74 6f 20 74 68 65 20 6c 69 6e 6b 20  a into the link 
157e0 63 6f 6d 6d 61 6e 64 2e 0a 09 20 20 20 20 72 65  command...    re
157f0 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45  link_command=`$E
15800 43 48 4f 20 22 24 72 65 6c 69 6e 6b 5f 63 6f 6d  CHO "$relink_com
15810 6d 61 6e 64 22 20 7c 20 24 53 45 44 20 22 73 25  mand" | $SED "s%
15820 40 69 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72  @inst_prefix_dir
15830 40 25 2d 69 6e 73 74 2d 70 72 65 66 69 78 2d 64  @%-inst-prefix-d
15840 69 72 20 24 69 6e 73 74 5f 70 72 65 66 69 78 5f  ir $inst_prefix_
15850 64 69 72 25 22 60 0a 09 20 20 65 6c 73 65 0a 09  dir%"`..  else..
15860 20 20 20 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61      relink_comma
15870 6e 64 3d 60 24 45 43 48 4f 20 22 24 72 65 6c 69  nd=`$ECHO "$reli
15880 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 53  nk_command" | $S
15890 45 44 20 22 73 25 40 69 6e 73 74 5f 70 72 65 66  ED "s%@inst_pref
158a0 69 78 5f 64 69 72 40 25 25 22 60 0a 09 20 20 66  ix_dir@%%"`..  f
158b0 69 0a 0a 09 20 20 66 75 6e 63 5f 77 61 72 6e 69  i...  func_warni
158c0 6e 67 20 22 72 65 6c 69 6e 6b 69 6e 67 20 5c 60  ng "relinking \`
158d0 24 66 69 6c 65 27 22 0a 09 20 20 66 75 6e 63 5f  $file'"..  func_
158e0 73 68 6f 77 5f 65 76 61 6c 20 22 24 72 65 6c 69  show_eval "$reli
158f0 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 20 5c 0a 09 20  nk_command" \.. 
15900 20 20 20 27 66 75 6e 63 5f 66 61 74 61 6c 5f 65     'func_fatal_e
15910 72 72 6f 72 20 22 65 72 72 6f 72 3a 20 72 65 6c  rror "error: rel
15920 69 6e 6b 20 5c 60 24 66 69 6c 65 27 5c 27 27 20  ink \`$file'\'' 
15930 77 69 74 68 20 74 68 65 20 61 62 6f 76 65 20 63  with the above c
15940 6f 6d 6d 61 6e 64 20 62 65 66 6f 72 65 20 69 6e  ommand before in
15950 73 74 61 6c 6c 69 6e 67 20 69 74 22 27 0a 09 66  stalling it"'..f
15960 69 0a 0a 09 23 20 53 65 65 20 74 68 65 20 6e 61  i...# See the na
15970 6d 65 73 20 6f 66 20 74 68 65 20 73 68 61 72 65  mes of the share
15980 64 20 6c 69 62 72 61 72 79 2e 0a 09 73 65 74 20  d library...set 
15990 64 75 6d 6d 79 20 24 6c 69 62 72 61 72 79 5f 6e  dummy $library_n
159a0 61 6d 65 73 3b 20 73 68 69 66 74 0a 09 69 66 20  ames; shift..if 
159b0 74 65 73 74 20 2d 6e 20 22 24 31 22 3b 20 74 68  test -n "$1"; th
159c0 65 6e 0a 09 20 20 72 65 61 6c 6e 61 6d 65 3d 22  en..  realname="
159d0 24 31 22 0a 09 20 20 73 68 69 66 74 0a 0a 09 20  $1"..  shift... 
159e0 20 73 72 63 6e 61 6d 65 3d 22 24 72 65 61 6c 6e   srcname="$realn
159f0 61 6d 65 22 0a 09 20 20 74 65 73 74 20 2d 6e 20  ame"..  test -n 
15a00 22 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64  "$relink_command
15a10 22 20 26 26 20 73 72 63 6e 61 6d 65 3d 22 24 72  " && srcname="$r
15a20 65 61 6c 6e 61 6d 65 22 54 0a 0a 09 20 20 23 20  ealname"T...  # 
15a30 49 6e 73 74 61 6c 6c 20 74 68 65 20 73 68 61 72  Install the shar
15a40 65 64 20 6c 69 62 72 61 72 79 20 61 6e 64 20 62  ed library and b
15a50 75 69 6c 64 20 74 68 65 20 73 79 6d 6c 69 6e 6b  uild the symlink
15a60 73 2e 0a 09 20 20 66 75 6e 63 5f 73 68 6f 77 5f  s...  func_show_
15a70 65 76 61 6c 20 22 24 69 6e 73 74 61 6c 6c 5f 73  eval "$install_s
15a80 68 61 72 65 64 5f 70 72 6f 67 20 24 64 69 72 2f  hared_prog $dir/
15a90 24 73 72 63 6e 61 6d 65 20 24 64 65 73 74 64 69  $srcname $destdi
15aa0 72 2f 24 72 65 61 6c 6e 61 6d 65 22 20 5c 0a 09  r/$realname" \..
15ab0 20 20 20 20 20 20 27 65 78 69 74 20 24 3f 27 0a        'exit $?'.
15ac0 09 20 20 74 73 74 72 69 70 6d 65 3d 22 24 73 74  .  tstripme="$st
15ad0 72 69 70 6d 65 22 0a 09 20 20 63 61 73 65 20 24  ripme"..  case $
15ae0 68 6f 73 74 5f 6f 73 20 69 6e 0a 09 20 20 63 79  host_os in..  cy
15af0 67 77 69 6e 2a 20 7c 20 6d 69 6e 67 77 2a 20 7c  gwin* | mingw* |
15b00 20 70 77 33 32 2a 20 7c 20 63 65 67 63 63 2a 29   pw32* | cegcc*)
15b10 0a 09 20 20 20 20 63 61 73 65 20 24 72 65 61 6c  ..    case $real
15b20 6e 61 6d 65 20 69 6e 0a 09 20 20 20 20 2a 2e 64  name in..    *.d
15b30 6c 6c 2e 61 29 0a 09 20 20 20 20 20 20 74 73 74  ll.a)..      tst
15b40 72 69 70 6d 65 3d 22 22 0a 09 20 20 20 20 20 20  ripme=""..      
15b50 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09 20 20  ;;..    esac..  
15b60 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20    ;;..  esac..  
15b70 69 66 20 74 65 73 74 20 2d 6e 20 22 24 74 73 74  if test -n "$tst
15b80 72 69 70 6d 65 22 20 26 26 20 74 65 73 74 20 2d  ripme" && test -
15b90 6e 20 22 24 73 74 72 69 70 6c 69 62 22 3b 20 74  n "$striplib"; t
15ba0 68 65 6e 0a 09 20 20 20 20 66 75 6e 63 5f 73 68  hen..    func_sh
15bb0 6f 77 5f 65 76 61 6c 20 22 24 73 74 72 69 70 6c  ow_eval "$stripl
15bc0 69 62 20 24 64 65 73 74 64 69 72 2f 24 72 65 61  ib $destdir/$rea
15bd0 6c 6e 61 6d 65 22 20 27 65 78 69 74 20 24 3f 27  lname" 'exit $?'
15be0 0a 09 20 20 66 69 0a 0a 09 20 20 69 66 20 74 65  ..  fi...  if te
15bf0 73 74 20 22 24 23 22 20 2d 67 74 20 30 3b 20 74  st "$#" -gt 0; t
15c00 68 65 6e 0a 09 20 20 20 20 23 20 44 65 6c 65 74  hen..    # Delet
15c10 65 20 74 68 65 20 6f 6c 64 20 73 79 6d 6c 69 6e  e the old symlin
15c20 6b 73 2c 20 61 6e 64 20 63 72 65 61 74 65 20 6e  ks, and create n
15c30 65 77 20 6f 6e 65 73 2e 0a 09 20 20 20 20 23 20  ew ones...    # 
15c40 54 72 79 20 60 6c 6e 20 2d 73 66 27 20 66 69 72  Try `ln -sf' fir
15c50 73 74 2c 20 62 65 63 61 75 73 65 20 74 68 65 20  st, because the 
15c60 60 6c 6e 27 20 62 69 6e 61 72 79 20 6d 69 67 68  `ln' binary migh
15c70 74 20 64 65 70 65 6e 64 20 6f 6e 0a 09 20 20 20  t depend on..   
15c80 20 23 20 74 68 65 20 73 79 6d 6c 69 6e 6b 20 77   # the symlink w
15c90 65 20 72 65 70 6c 61 63 65 21 20 20 53 6f 6c 61  e replace!  Sola
15ca0 72 69 73 20 2f 62 69 6e 2f 6c 6e 20 64 6f 65 73  ris /bin/ln does
15cb0 20 6e 6f 74 20 75 6e 64 65 72 73 74 61 6e 64 20   not understand 
15cc0 2d 66 2c 0a 09 20 20 20 20 23 20 73 6f 20 77 65  -f,..    # so we
15cd0 20 61 6c 73 6f 20 6e 65 65 64 20 74 6f 20 74 72   also need to tr
15ce0 79 20 72 6d 20 26 26 20 6c 6e 20 2d 73 2e 0a 09  y rm && ln -s...
15cf0 20 20 20 20 66 6f 72 20 6c 69 6e 6b 6e 61 6d 65      for linkname
15d00 0a 09 20 20 20 20 64 6f 0a 09 20 20 20 20 20 20  ..    do..      
15d10 74 65 73 74 20 22 24 6c 69 6e 6b 6e 61 6d 65 22  test "$linkname"
15d20 20 21 3d 20 22 24 72 65 61 6c 6e 61 6d 65 22 20   != "$realname" 
15d30 5c 0a 09 09 26 26 20 66 75 6e 63 5f 73 68 6f 77  \...&& func_show
15d40 5f 65 76 61 6c 20 22 28 63 64 20 24 64 65 73 74  _eval "(cd $dest
15d50 64 69 72 20 26 26 20 7b 20 24 4c 4e 5f 53 20 2d  dir && { $LN_S -
15d60 66 20 24 72 65 61 6c 6e 61 6d 65 20 24 6c 69 6e  f $realname $lin
15d70 6b 6e 61 6d 65 20 7c 7c 20 7b 20 24 52 4d 20 24  kname || { $RM $
15d80 6c 69 6e 6b 6e 61 6d 65 20 26 26 20 24 4c 4e 5f  linkname && $LN_
15d90 53 20 24 72 65 61 6c 6e 61 6d 65 20 24 6c 69 6e  S $realname $lin
15da0 6b 6e 61 6d 65 3b 20 7d 3b 20 7d 29 22 0a 09 20  kname; }; })".. 
15db0 20 20 20 64 6f 6e 65 0a 09 20 20 66 69 0a 0a 09     done..  fi...
15dc0 20 20 23 20 44 6f 20 65 61 63 68 20 63 6f 6d 6d    # Do each comm
15dd0 61 6e 64 20 69 6e 20 74 68 65 20 70 6f 73 74 69  and in the posti
15de0 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e  nstall commands.
15df0 0a 09 20 20 6c 69 62 3d 22 24 64 65 73 74 64 69  ..  lib="$destdi
15e00 72 2f 24 72 65 61 6c 6e 61 6d 65 22 0a 09 20 20  r/$realname"..  
15e10 66 75 6e 63 5f 65 78 65 63 75 74 65 5f 63 6d 64  func_execute_cmd
15e20 73 20 22 24 70 6f 73 74 69 6e 73 74 61 6c 6c 5f  s "$postinstall_
15e30 63 6d 64 73 22 20 27 65 78 69 74 20 24 3f 27 0a  cmds" 'exit $?'.
15e40 09 66 69 0a 0a 09 23 20 49 6e 73 74 61 6c 6c 20  .fi...# Install 
15e50 74 68 65 20 70 73 65 75 64 6f 2d 6c 69 62 72 61  the pseudo-libra
15e60 72 79 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69  ry for informati
15e70 6f 6e 20 70 75 72 70 6f 73 65 73 2e 0a 09 66 75  on purposes...fu
15e80 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22 24 66 69  nc_basename "$fi
15e90 6c 65 22 0a 09 6e 61 6d 65 3d 22 24 66 75 6e 63  le"..name="$func
15ea0 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74  _basename_result
15eb0 22 0a 09 69 6e 73 74 6e 61 6d 65 3d 22 24 64 69  "..instname="$di
15ec0 72 2f 24 6e 61 6d 65 22 69 0a 09 66 75 6e 63 5f  r/$name"i..func_
15ed0 73 68 6f 77 5f 65 76 61 6c 20 22 24 69 6e 73 74  show_eval "$inst
15ee0 61 6c 6c 5f 70 72 6f 67 20 24 69 6e 73 74 6e 61  all_prog $instna
15ef0 6d 65 20 24 64 65 73 74 64 69 72 2f 24 6e 61 6d  me $destdir/$nam
15f00 65 22 20 27 65 78 69 74 20 24 3f 27 0a 0a 09 23  e" 'exit $?'...#
15f10 20 4d 61 79 62 65 20 69 6e 73 74 61 6c 6c 20 74   Maybe install t
15f20 68 65 20 73 74 61 74 69 63 20 6c 69 62 72 61 72  he static librar
15f30 79 2c 20 74 6f 6f 2e 0a 09 74 65 73 74 20 2d 6e  y, too...test -n
15f40 20 22 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 20   "$old_library" 
15f50 26 26 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 73  && func_append s
15f60 74 61 74 69 63 6c 69 62 73 20 22 20 24 64 69 72  taticlibs " $dir
15f70 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 0a 09  /$old_library"..
15f80 3b 3b 0a 0a 20 20 20 20 20 20 2a 2e 6c 6f 29 0a  ;;..      *.lo).
15f90 09 23 20 49 6e 73 74 61 6c 6c 20 28 69 2e 65 2e  .# Install (i.e.
15fa0 20 63 6f 70 79 29 20 61 20 6c 69 62 74 6f 6f 6c   copy) a libtool
15fb0 20 6f 62 6a 65 63 74 2e 0a 0a 09 23 20 46 69 67   object....# Fig
15fc0 75 72 65 20 6f 75 74 20 64 65 73 74 69 6e 61 74  ure out destinat
15fd0 69 6f 6e 20 66 69 6c 65 20 6e 61 6d 65 2c 20 69  ion file name, i
15fe0 66 20 69 74 20 77 61 73 6e 27 74 20 61 6c 72 65  f it wasn't alre
15ff0 61 64 79 20 73 70 65 63 69 66 69 65 64 2e 0a 09  ady specified...
16000 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64 65 73  if test -n "$des
16010 74 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20 20  tname"; then..  
16020 64 65 73 74 66 69 6c 65 3d 22 24 64 65 73 74 64  destfile="$destd
16030 69 72 2f 24 64 65 73 74 6e 61 6d 65 22 0a 09 65  ir/$destname"..e
16040 6c 73 65 0a 09 20 20 66 75 6e 63 5f 62 61 73 65  lse..  func_base
16050 6e 61 6d 65 20 22 24 66 69 6c 65 22 0a 09 20 20  name "$file"..  
16060 64 65 73 74 66 69 6c 65 3d 22 24 66 75 6e 63 5f  destfile="$func_
16070 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 22  basename_result"
16080 0a 09 20 20 64 65 73 74 66 69 6c 65 3d 22 24 64  ..  destfile="$d
16090 65 73 74 64 69 72 2f 24 64 65 73 74 66 69 6c 65  estdir/$destfile
160a0 22 0a 09 66 69 0a 0a 09 23 20 44 65 64 75 63 65  "..fi...# Deduce
160b0 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65   the name of the
160c0 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 6f 6c 64   destination old
160d0 2d 73 74 79 6c 65 20 6f 62 6a 65 63 74 20 66 69  -style object fi
160e0 6c 65 2e 0a 09 63 61 73 65 20 24 64 65 73 74 66  le...case $destf
160f0 69 6c 65 20 69 6e 0a 09 2a 2e 6c 6f 29 0a 09 20  ile in..*.lo).. 
16100 20 66 75 6e 63 5f 6c 6f 32 6f 20 22 24 64 65 73   func_lo2o "$des
16110 74 66 69 6c 65 22 0a 09 20 20 73 74 61 74 69 63  tfile"..  static
16120 64 65 73 74 3d 24 66 75 6e 63 5f 6c 6f 32 6f 5f  dest=$func_lo2o_
16130 72 65 73 75 6c 74 0a 09 20 20 3b 3b 0a 09 2a 2e  result..  ;;..*.
16140 24 6f 62 6a 65 78 74 29 0a 09 20 20 73 74 61 74  $objext)..  stat
16150 69 63 64 65 73 74 3d 22 24 64 65 73 74 66 69 6c  icdest="$destfil
16160 65 22 0a 09 20 20 64 65 73 74 66 69 6c 65 3d 0a  e"..  destfile=.
16170 09 20 20 3b 3b 0a 09 2a 29 0a 09 20 20 66 75 6e  .  ;;..*)..  fun
16180 63 5f 66 61 74 61 6c 5f 68 65 6c 70 20 22 63 61  c_fatal_help "ca
16190 6e 6e 6f 74 20 63 6f 70 79 20 61 20 6c 69 62 74  nnot copy a libt
161a0 6f 6f 6c 20 6f 62 6a 65 63 74 20 74 6f 20 5c 60  ool object to \`
161b0 24 64 65 73 74 66 69 6c 65 27 22 0a 09 20 20 3b  $destfile'"..  ;
161c0 3b 0a 09 65 73 61 63 0a 0a 09 23 20 49 6e 73 74  ;..esac...# Inst
161d0 61 6c 6c 20 74 68 65 20 6c 69 62 74 6f 6f 6c 20  all the libtool 
161e0 6f 62 6a 65 63 74 20 69 66 20 72 65 71 75 65 73  object if reques
161f0 74 65 64 2e 0a 09 74 65 73 74 20 2d 6e 20 22 24  ted...test -n "$
16200 64 65 73 74 66 69 6c 65 22 20 26 26 20 5c 0a 09  destfile" && \..
16210 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61 6c    func_show_eval
16220 20 22 24 69 6e 73 74 61 6c 6c 5f 70 72 6f 67 20   "$install_prog 
16230 24 66 69 6c 65 20 24 64 65 73 74 66 69 6c 65 22  $file $destfile"
16240 20 27 65 78 69 74 20 24 3f 27 0a 0a 09 23 20 49   'exit $?'...# I
16250 6e 73 74 61 6c 6c 20 74 68 65 20 6f 6c 64 20 6f  nstall the old o
16260 62 6a 65 63 74 20 69 66 20 65 6e 61 62 6c 65 64  bject if enabled
16270 2e 0a 09 69 66 20 74 65 73 74 20 22 24 62 75 69  ...if test "$bui
16280 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d 20 79  ld_old_libs" = y
16290 65 73 3b 20 74 68 65 6e 0a 09 20 20 23 20 44 65  es; then..  # De
162a0 64 75 63 65 20 74 68 65 20 6e 61 6d 65 20 6f 66  duce the name of
162b0 20 74 68 65 20 6f 6c 64 2d 73 74 79 6c 65 20 6f   the old-style o
162c0 62 6a 65 63 74 20 66 69 6c 65 2e 0a 09 20 20 66  bject file...  f
162d0 75 6e 63 5f 6c 6f 32 6f 20 22 24 66 69 6c 65 22  unc_lo2o "$file"
162e0 0a 09 20 20 73 74 61 74 69 63 6f 62 6a 3d 24 66  ..  staticobj=$f
162f0 75 6e 63 5f 6c 6f 32 6f 5f 72 65 73 75 6c 74 0a  unc_lo2o_result.
16300 09 20 20 66 75 6e 63 5f 73 68 6f 77 5f 65 76 61  .  func_show_eva
16310 6c 20 22 24 69 6e 73 74 61 6c 6c 5f 70 72 6f 67  l "$install_prog
16320 20 5c 24 73 74 61 74 69 63 6f 62 6a 20 5c 24 73   \$staticobj \$s
16330 74 61 74 69 63 64 65 73 74 22 20 27 65 78 69 74  taticdest" 'exit
16340 20 24 3f 27 0a 09 66 69 0a 09 65 78 69 74 20 24   $?'..fi..exit $
16350 45 58 49 54 5f 53 55 43 43 45 53 53 0a 09 3b 3b  EXIT_SUCCESS..;;
16360 0a 0a 20 20 20 20 20 20 2a 29 0a 09 23 20 46 69  ..      *)..# Fi
16370 67 75 72 65 20 6f 75 74 20 64 65 73 74 69 6e 61  gure out destina
16380 74 69 6f 6e 20 66 69 6c 65 20 6e 61 6d 65 2c 20  tion file name, 
16390 69 66 20 69 74 20 77 61 73 6e 27 74 20 61 6c 72  if it wasn't alr
163a0 65 61 64 79 20 73 70 65 63 69 66 69 65 64 2e 0a  eady specified..
163b0 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64 65  .if test -n "$de
163c0 73 74 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20  stname"; then.. 
163d0 20 64 65 73 74 66 69 6c 65 3d 22 24 64 65 73 74   destfile="$dest
163e0 64 69 72 2f 24 64 65 73 74 6e 61 6d 65 22 0a 09  dir/$destname"..
163f0 65 6c 73 65 0a 09 20 20 66 75 6e 63 5f 62 61 73  else..  func_bas
16400 65 6e 61 6d 65 20 22 24 66 69 6c 65 22 0a 09 20  ename "$file".. 
16410 20 64 65 73 74 66 69 6c 65 3d 22 24 66 75 6e 63   destfile="$func
16420 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74  _basename_result
16430 22 0a 09 20 20 64 65 73 74 66 69 6c 65 3d 22 24  "..  destfile="$
16440 64 65 73 74 64 69 72 2f 24 64 65 73 74 66 69 6c  destdir/$destfil
16450 65 22 0a 09 66 69 0a 0a 09 23 20 49 66 20 74 68  e"..fi...# If th
16460 65 20 66 69 6c 65 20 69 73 20 6d 69 73 73 69 6e  e file is missin
16470 67 2c 20 61 6e 64 20 74 68 65 72 65 20 69 73 20  g, and there is 
16480 61 20 2e 65 78 65 20 6f 6e 20 74 68 65 20 65 6e  a .exe on the en
16490 64 2c 20 73 74 72 69 70 20 69 74 0a 09 23 20 62  d, strip it..# b
164a0 65 63 61 75 73 65 20 69 74 20 69 73 20 6d 6f 73  ecause it is mos
164b0 74 20 6c 69 6b 65 6c 79 20 61 20 6c 69 62 74 6f  t likely a libto
164c0 6f 6c 20 73 63 72 69 70 74 20 77 65 20 61 63 74  ol script we act
164d0 75 61 6c 6c 79 20 77 61 6e 74 20 74 6f 0a 09 23  ually want to..#
164e0 20 69 6e 73 74 61 6c 6c 0a 09 73 74 72 69 70 70   install..stripp
164f0 65 64 5f 65 78 74 3d 22 22 0a 09 63 61 73 65 20  ed_ext=""..case 
16500 24 66 69 6c 65 20 69 6e 0a 09 20 20 2a 2e 65 78  $file in..  *.ex
16510 65 29 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  e)..    if test 
16520 21 20 2d 66 20 22 24 66 69 6c 65 22 3b 20 74 68  ! -f "$file"; th
16530 65 6e 0a 09 20 20 20 20 20 20 66 75 6e 63 5f 73  en..      func_s
16540 74 72 69 70 6e 61 6d 65 20 27 27 20 27 2e 65 78  tripname '' '.ex
16550 65 27 20 22 24 66 69 6c 65 22 0a 09 20 20 20 20  e' "$file"..    
16560 20 20 66 69 6c 65 3d 24 66 75 6e 63 5f 73 74 72    file=$func_str
16570 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 09 20  ipname_result.. 
16580 20 20 20 20 20 73 74 72 69 70 70 65 64 5f 65 78       stripped_ex
16590 74 3d 22 2e 65 78 65 22 0a 09 20 20 20 20 66 69  t=".exe"..    fi
165a0 0a 09 20 20 20 20 3b 3b 0a 09 65 73 61 63 0a 0a  ..    ;;..esac..
165b0 09 23 20 44 6f 20 61 20 74 65 73 74 20 74 6f 20  .# Do a test to 
165c0 73 65 65 20 69 66 20 74 68 69 73 20 69 73 20 72  see if this is r
165d0 65 61 6c 6c 79 20 61 20 6c 69 62 74 6f 6f 6c 20  eally a libtool 
165e0 70 72 6f 67 72 61 6d 2e 0a 09 63 61 73 65 20 24  program...case $
165f0 68 6f 73 74 20 69 6e 0a 09 2a 63 79 67 77 69 6e  host in..*cygwin
16600 2a 20 7c 20 2a 6d 69 6e 67 77 2a 29 0a 09 20 20  * | *mingw*)..  
16610 20 20 69 66 20 66 75 6e 63 5f 6c 74 77 72 61 70    if func_ltwrap
16620 70 65 72 5f 65 78 65 63 75 74 61 62 6c 65 5f 70  per_executable_p
16630 20 22 24 66 69 6c 65 22 3b 20 74 68 65 6e 0a 09   "$file"; then..
16640 20 20 20 20 20 20 66 75 6e 63 5f 6c 74 77 72 61        func_ltwra
16650 70 70 65 72 5f 73 63 72 69 70 74 6e 61 6d 65 20  pper_scriptname 
16660 22 24 66 69 6c 65 22 0a 09 20 20 20 20 20 20 77  "$file"..      w
16670 72 61 70 70 65 72 3d 24 66 75 6e 63 5f 6c 74 77  rapper=$func_ltw
16680 72 61 70 70 65 72 5f 73 63 72 69 70 74 6e 61 6d  rapper_scriptnam
16690 65 5f 72 65 73 75 6c 74 0a 09 20 20 20 20 65 6c  e_result..    el
166a0 73 65 0a 09 20 20 20 20 20 20 66 75 6e 63 5f 73  se..      func_s
166b0 74 72 69 70 6e 61 6d 65 20 27 27 20 27 2e 65 78  tripname '' '.ex
166c0 65 27 20 22 24 66 69 6c 65 22 0a 09 20 20 20 20  e' "$file"..    
166d0 20 20 77 72 61 70 70 65 72 3d 24 66 75 6e 63 5f    wrapper=$func_
166e0 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
166f0 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 3b 3b  ..    fi..    ;;
16700 0a 09 2a 29 0a 09 20 20 20 20 77 72 61 70 70 65  ..*)..    wrappe
16710 72 3d 24 66 69 6c 65 0a 09 20 20 20 20 3b 3b 0a  r=$file..    ;;.
16720 09 65 73 61 63 0a 09 69 66 20 66 75 6e 63 5f 6c  .esac..if func_l
16730 74 77 72 61 70 70 65 72 5f 73 63 72 69 70 74 5f  twrapper_script_
16740 70 20 22 24 77 72 61 70 70 65 72 22 3b 20 74 68  p "$wrapper"; th
16750 65 6e 0a 09 20 20 6e 6f 74 69 6e 73 74 5f 64 65  en..  notinst_de
16760 70 6c 69 62 73 3d 0a 09 20 20 72 65 6c 69 6e 6b  plibs=..  relink
16770 5f 63 6f 6d 6d 61 6e 64 3d 0a 0a 09 20 20 66 75  _command=...  fu
16780 6e 63 5f 73 6f 75 72 63 65 20 22 24 77 72 61 70  nc_source "$wrap
16790 70 65 72 22 0a 0a 09 20 20 23 20 43 68 65 63 6b  per"...  # Check
167a0 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 74   the variables t
167b0 68 61 74 20 73 68 6f 75 6c 64 20 68 61 76 65 20  hat should have 
167c0 62 65 65 6e 20 73 65 74 2e 0a 09 20 20 74 65 73  been set...  tes
167d0 74 20 2d 7a 20 22 24 67 65 6e 65 72 61 74 65 64  t -z "$generated
167e0 5f 62 79 5f 6c 69 62 74 6f 6f 6c 5f 76 65 72 73  _by_libtool_vers
167f0 69 6f 6e 22 20 26 26 20 5c 0a 09 20 20 20 20 66  ion" && \..    f
16800 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20  unc_fatal_error 
16810 22 69 6e 76 61 6c 69 64 20 6c 69 62 74 6f 6f 6c  "invalid libtool
16820 20 77 72 61 70 70 65 72 20 73 63 72 69 70 74 20   wrapper script 
16830 5c 60 24 77 72 61 70 70 65 72 27 22 0a 0a 09 20  \`$wrapper'"... 
16840 20 66 69 6e 61 6c 69 7a 65 3d 79 65 73 0a 09 20   finalize=yes.. 
16850 20 66 6f 72 20 6c 69 62 20 69 6e 20 24 6e 6f 74   for lib in $not
16860 69 6e 73 74 5f 64 65 70 6c 69 62 73 3b 20 64 6f  inst_deplibs; do
16870 0a 09 20 20 20 20 23 20 43 68 65 63 6b 20 74 6f  ..    # Check to
16880 20 73 65 65 20 74 68 61 74 20 65 61 63 68 20 6c   see that each l
16890 69 62 72 61 72 79 20 69 73 20 69 6e 73 74 61 6c  ibrary is instal
168a0 6c 65 64 2e 0a 09 20 20 20 20 6c 69 62 64 69 72  led...    libdir
168b0 3d 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 2d  =..    if test -
168c0 66 20 22 24 6c 69 62 22 3b 20 74 68 65 6e 0a 09  f "$lib"; then..
168d0 20 20 20 20 20 20 66 75 6e 63 5f 73 6f 75 72 63        func_sourc
168e0 65 20 22 24 6c 69 62 22 0a 09 20 20 20 20 66 69  e "$lib"..    fi
168f0 0a 09 20 20 20 20 6c 69 62 66 69 6c 65 3d 22 24  ..    libfile="$
16900 6c 69 62 64 69 72 2f 22 60 24 45 43 48 4f 20 22  libdir/"`$ECHO "
16910 24 6c 69 62 22 20 7c 20 24 53 45 44 20 27 73 25  $lib" | $SED 's%
16920 5e 2e 2a 2f 25 25 67 27 60 20 23 23 23 20 74 65  ^.*/%%g'` ### te
16930 73 74 73 75 69 74 65 3a 20 73 6b 69 70 20 6e 65  stsuite: skip ne
16940 73 74 65 64 20 71 75 6f 74 69 6e 67 20 74 65 73  sted quoting tes
16950 74 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 2d  t..    if test -
16960 6e 20 22 24 6c 69 62 64 69 72 22 20 26 26 20 74  n "$libdir" && t
16970 65 73 74 20 21 20 2d 66 20 22 24 6c 69 62 66 69  est ! -f "$libfi
16980 6c 65 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  le"; then..     
16990 20 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c   func_warning "\
169a0 60 24 6c 69 62 27 20 68 61 73 20 6e 6f 74 20 62  `$lib' has not b
169b0 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e  een installed in
169c0 20 5c 60 24 6c 69 62 64 69 72 27 22 0a 09 20 20   \`$libdir'"..  
169d0 20 20 20 20 66 69 6e 61 6c 69 7a 65 3d 6e 6f 0a      finalize=no.
169e0 09 20 20 20 20 66 69 0a 09 20 20 64 6f 6e 65 0a  .    fi..  done.
169f0 0a 09 20 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61  ..  relink_comma
16a00 6e 64 3d 0a 09 20 20 66 75 6e 63 5f 73 6f 75 72  nd=..  func_sour
16a10 63 65 20 22 24 77 72 61 70 70 65 72 22 0a 0a 09  ce "$wrapper"...
16a20 20 20 6f 75 74 70 75 74 6e 61 6d 65 3d 0a 09 20    outputname=.. 
16a30 20 69 66 20 74 65 73 74 20 22 24 66 61 73 74 5f   if test "$fast_
16a40 69 6e 73 74 61 6c 6c 22 20 3d 20 6e 6f 20 26 26  install" = no &&
16a50 20 74 65 73 74 20 2d 6e 20 22 24 72 65 6c 69 6e   test -n "$relin
16a60 6b 5f 63 6f 6d 6d 61 6e 64 22 3b 20 74 68 65 6e  k_command"; then
16a70 0a 09 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72  ..    $opt_dry_r
16a80 75 6e 20 7c 7c 20 7b 0a 09 20 20 20 20 20 20 69  un || {..      i
16a90 66 20 74 65 73 74 20 22 24 66 69 6e 61 6c 69 7a  f test "$finaliz
16aa0 65 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09  e" = yes; then..
16ab0 20 20 20 20 20 20 20 20 74 6d 70 64 69 72 3d 60          tmpdir=`
16ac0 66 75 6e 63 5f 6d 6b 74 65 6d 70 64 69 72 60 0a  func_mktempdir`.
16ad0 09 09 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20  ..func_basename 
16ae0 22 24 66 69 6c 65 24 73 74 72 69 70 70 65 64 5f  "$file$stripped_
16af0 65 78 74 22 0a 09 09 66 69 6c 65 3d 22 24 66 75  ext"...file="$fu
16b00 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75  nc_basename_resu
16b10 6c 74 22 0a 09 20 20 20 20 20 20 20 20 6f 75 74  lt"..        out
16b20 70 75 74 6e 61 6d 65 3d 22 24 74 6d 70 64 69 72  putname="$tmpdir
16b30 2f 24 66 69 6c 65 22 0a 09 20 20 20 20 20 20 20  /$file"..       
16b40 20 23 20 52 65 70 6c 61 63 65 20 74 68 65 20 6f   # Replace the o
16b50 75 74 70 75 74 20 66 69 6c 65 20 73 70 65 63 69  utput file speci
16b60 66 69 63 61 74 69 6f 6e 2e 0a 09 20 20 20 20 20  fication...     
16b70 20 20 20 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e     relink_comman
16b80 64 3d 60 24 45 43 48 4f 20 22 24 72 65 6c 69 6e  d=`$ECHO "$relin
16b90 6b 5f 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 53 45  k_command" | $SE
16ba0 44 20 27 73 25 40 4f 55 54 50 55 54 40 25 27 22  D 's%@OUTPUT@%'"
16bb0 24 6f 75 74 70 75 74 6e 61 6d 65 22 27 25 67 27  $outputname"'%g'
16bc0 60 0a 0a 09 20 20 20 20 20 20 20 20 24 6f 70 74  `...        $opt
16bd0 5f 73 69 6c 65 6e 74 20 7c 7c 20 7b 0a 09 20 20  _silent || {..  
16be0 20 20 20 20 20 20 20 20 66 75 6e 63 5f 71 75 6f          func_quo
16bf0 74 65 5f 66 6f 72 5f 65 78 70 61 6e 64 20 22 24  te_for_expand "$
16c00 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 22 0a  relink_command".
16c10 09 09 20 20 65 76 61 6c 20 22 66 75 6e 63 5f 65  ..  eval "func_e
16c20 63 68 6f 20 24 66 75 6e 63 5f 71 75 6f 74 65 5f  cho $func_quote_
16c30 66 6f 72 5f 65 78 70 61 6e 64 5f 72 65 73 75 6c  for_expand_resul
16c40 74 22 0a 09 20 20 20 20 20 20 20 20 7d 0a 09 20  t"..        }.. 
16c50 20 20 20 20 20 20 20 69 66 20 65 76 61 6c 20 22         if eval "
16c60 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d 61 6e 64 22  $relink_command"
16c70 3b 20 74 68 65 6e 20 3a 0a 09 20 20 20 20 20 20  ; then :..      
16c80 20 20 20 20 65 6c 73 65 0a 09 09 20 20 66 75 6e      else...  fun
16c90 63 5f 65 72 72 6f 72 20 22 65 72 72 6f 72 3a 20  c_error "error: 
16ca0 72 65 6c 69 6e 6b 20 5c 60 24 66 69 6c 65 27 20  relink \`$file' 
16cb0 77 69 74 68 20 74 68 65 20 61 62 6f 76 65 20 63  with the above c
16cc0 6f 6d 6d 61 6e 64 20 62 65 66 6f 72 65 20 69 6e  ommand before in
16cd0 73 74 61 6c 6c 69 6e 67 20 69 74 22 0a 09 09 20  stalling it"... 
16ce0 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c   $opt_dry_run ||
16cf0 20 24 7b 52 4d 7d 72 20 22 24 74 6d 70 64 69 72   ${RM}r "$tmpdir
16d00 22 0a 09 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09  "...  continue..
16d10 20 20 20 20 20 20 20 20 66 69 0a 09 20 20 20 20          fi..    
16d20 20 20 20 20 66 69 6c 65 3d 22 24 6f 75 74 70 75      file="$outpu
16d30 74 6e 61 6d 65 22 0a 09 20 20 20 20 20 20 65 6c  tname"..      el
16d40 73 65 0a 09 20 20 20 20 20 20 20 20 66 75 6e 63  se..        func
16d50 5f 77 61 72 6e 69 6e 67 20 22 63 61 6e 6e 6f 74  _warning "cannot
16d60 20 72 65 6c 69 6e 6b 20 5c 60 24 66 69 6c 65 27   relink \`$file'
16d70 22 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20 20  "..      fi..   
16d80 20 7d 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20   }..  else..    
16d90 23 20 49 6e 73 74 61 6c 6c 20 74 68 65 20 62 69  # Install the bi
16da0 6e 61 72 79 20 74 68 61 74 20 77 65 20 63 6f 6d  nary that we com
16db0 70 69 6c 65 64 20 65 61 72 6c 69 65 72 2e 0a 09  piled earlier...
16dc0 20 20 20 20 66 69 6c 65 3d 60 24 45 43 48 4f 20      file=`$ECHO 
16dd0 22 24 66 69 6c 65 24 73 74 72 69 70 70 65 64 5f  "$file$stripped_
16de0 65 78 74 22 20 7c 20 24 53 45 44 20 22 73 25 5c  ext" | $SED "s%\
16df0 28 5b 5e 2f 5d 2a 5c 29 24 25 24 6f 62 6a 64 69  ([^/]*\)$%$objdi
16e00 72 2f 5c 31 25 22 60 0a 09 20 20 66 69 0a 09 66  r/\1%"`..  fi..f
16e10 69 0a 0a 09 23 20 72 65 6d 6f 76 65 20 2e 65 78  i...# remove .ex
16e20 65 20 73 69 6e 63 65 20 63 79 67 77 69 6e 20 2f  e since cygwin /
16e30 75 73 72 2f 62 69 6e 2f 69 6e 73 74 61 6c 6c 20  usr/bin/install 
16e40 77 69 6c 6c 20 61 70 70 65 6e 64 20 61 6e 6f 74  will append anot
16e50 68 65 72 0a 09 23 20 6f 6e 65 20 61 6e 79 77 61  her..# one anywa
16e60 79 0a 09 63 61 73 65 20 24 69 6e 73 74 61 6c 6c  y..case $install
16e70 5f 70 72 6f 67 2c 24 68 6f 73 74 20 69 6e 0a 09  _prog,$host in..
16e80 2a 2f 75 73 72 2f 62 69 6e 2f 69 6e 73 74 61 6c  */usr/bin/instal
16e90 6c 2a 2c 2a 63 79 67 77 69 6e 2a 29 0a 09 20 20  l*,*cygwin*)..  
16ea0 63 61 73 65 20 24 66 69 6c 65 3a 24 64 65 73 74  case $file:$dest
16eb0 66 69 6c 65 20 69 6e 0a 09 20 20 2a 2e 65 78 65  file in..  *.exe
16ec0 3a 2a 2e 65 78 65 29 0a 09 20 20 20 20 23 20 74  :*.exe)..    # t
16ed0 68 69 73 20 69 73 20 6f 6b 0a 09 20 20 20 20 3b  his is ok..    ;
16ee0 3b 0a 09 20 20 2a 2e 65 78 65 3a 2a 29 0a 09 20  ;..  *.exe:*).. 
16ef0 20 20 20 64 65 73 74 66 69 6c 65 3d 24 64 65 73     destfile=$des
16f00 74 66 69 6c 65 2e 65 78 65 0a 09 20 20 20 20 3b  tfile.exe..    ;
16f10 3b 0a 09 20 20 2a 3a 2a 2e 65 78 65 29 0a 09 20  ;..  *:*.exe).. 
16f20 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d     func_stripnam
16f30 65 20 27 27 20 27 2e 65 78 65 27 20 22 24 64 65  e '' '.exe' "$de
16f40 73 74 66 69 6c 65 22 0a 09 20 20 20 20 64 65 73  stfile"..    des
16f50 74 66 69 6c 65 3d 24 66 75 6e 63 5f 73 74 72 69  tfile=$func_stri
16f60 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 09 20 20  pname_result..  
16f70 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20    ;;..  esac..  
16f80 3b 3b 0a 09 65 73 61 63 0a 09 66 75 6e 63 5f 73  ;;..esac..func_s
16f90 68 6f 77 5f 65 76 61 6c 20 22 24 69 6e 73 74 61  how_eval "$insta
16fa0 6c 6c 5f 70 72 6f 67 5c 24 73 74 72 69 70 6d 65  ll_prog\$stripme
16fb0 20 5c 24 66 69 6c 65 20 5c 24 64 65 73 74 66 69   \$file \$destfi
16fc0 6c 65 22 20 27 65 78 69 74 20 24 3f 27 0a 09 24  le" 'exit $?'..$
16fd0 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 69  opt_dry_run || i
16fe0 66 20 74 65 73 74 20 2d 6e 20 22 24 6f 75 74 70  f test -n "$outp
16ff0 75 74 6e 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20  utname"; then.. 
17000 20 24 7b 52 4d 7d 72 20 22 24 74 6d 70 64 69 72   ${RM}r "$tmpdir
17010 22 0a 09 66 69 0a 09 3b 3b 0a 20 20 20 20 20 20  "..fi..;;.      
17020 65 73 61 63 0a 20 20 20 20 64 6f 6e 65 0a 0a 20  esac.    done.. 
17030 20 20 20 66 6f 72 20 66 69 6c 65 20 69 6e 20 24     for file in $
17040 73 74 61 74 69 63 6c 69 62 73 3b 20 64 6f 0a 20  staticlibs; do. 
17050 20 20 20 20 20 66 75 6e 63 5f 62 61 73 65 6e 61       func_basena
17060 6d 65 20 22 24 66 69 6c 65 22 0a 20 20 20 20 20  me "$file".     
17070 20 6e 61 6d 65 3d 22 24 66 75 6e 63 5f 62 61 73   name="$func_bas
17080 65 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 0a 20  ename_result".. 
17090 20 20 20 20 20 23 20 53 65 74 20 75 70 20 74 68       # Set up th
170a0 65 20 72 61 6e 6c 69 62 20 70 61 72 61 6d 65 74  e ranlib paramet
170b0 65 72 73 2e 0a 20 20 20 20 20 20 6f 6c 64 6c 69  ers..      oldli
170c0 62 3d 22 24 64 65 73 74 64 69 72 2f 24 6e 61 6d  b="$destdir/$nam
170d0 65 22 0a 20 20 20 20 20 20 66 75 6e 63 5f 74 6f  e".      func_to
170e0 5f 74 6f 6f 6c 5f 66 69 6c 65 20 22 24 6f 6c 64  _tool_file "$old
170f0 6c 69 62 22 20 66 75 6e 63 5f 63 6f 6e 76 65 72  lib" func_conver
17100 74 5f 66 69 6c 65 5f 6d 73 79 73 5f 74 6f 5f 77  t_file_msys_to_w
17110 33 32 0a 20 20 20 20 20 20 74 6f 6f 6c 5f 6f 6c  32.      tool_ol
17120 64 6c 69 62 3d 24 66 75 6e 63 5f 74 6f 5f 74 6f  dlib=$func_to_to
17130 6f 6c 5f 66 69 6c 65 5f 72 65 73 75 6c 74 0a 0a  ol_file_result..
17140 20 20 20 20 20 20 66 75 6e 63 5f 73 68 6f 77 5f        func_show_
17150 65 76 61 6c 20 22 24 69 6e 73 74 61 6c 6c 5f 70  eval "$install_p
17160 72 6f 67 20 5c 24 66 69 6c 65 20 5c 24 6f 6c 64  rog \$file \$old
17170 6c 69 62 22 20 27 65 78 69 74 20 24 3f 27 0a 0a  lib" 'exit $?'..
17180 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e        if test -n
17190 20 22 24 73 74 72 69 70 6d 65 22 20 26 26 20 74   "$stripme" && t
171a0 65 73 74 20 2d 6e 20 22 24 6f 6c 64 5f 73 74 72  est -n "$old_str
171b0 69 70 6c 69 62 22 3b 20 74 68 65 6e 0a 09 66 75  iplib"; then..fu
171c0 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20 22 24 6f  nc_show_eval "$o
171d0 6c 64 5f 73 74 72 69 70 6c 69 62 20 24 74 6f 6f  ld_striplib $too
171e0 6c 5f 6f 6c 64 6c 69 62 22 20 27 65 78 69 74 20  l_oldlib" 'exit 
171f0 24 3f 27 0a 20 20 20 20 20 20 66 69 0a 0a 20 20  $?'.      fi..  
17200 20 20 20 20 23 20 44 6f 20 65 61 63 68 20 63 6f      # Do each co
17210 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 70 6f 73  mmand in the pos
17220 74 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64  tinstall command
17230 73 2e 0a 20 20 20 20 20 20 66 75 6e 63 5f 65 78  s..      func_ex
17240 65 63 75 74 65 5f 63 6d 64 73 20 22 24 6f 6c 64  ecute_cmds "$old
17250 5f 70 6f 73 74 69 6e 73 74 61 6c 6c 5f 63 6d 64  _postinstall_cmd
17260 73 22 20 27 65 78 69 74 20 24 3f 27 0a 20 20 20  s" 'exit $?'.   
17270 20 64 6f 6e 65 0a 0a 20 20 20 20 74 65 73 74 20   done..    test 
17280 2d 6e 20 22 24 66 75 74 75 72 65 5f 6c 69 62 64  -n "$future_libd
17290 69 72 73 22 20 26 26 20 5c 0a 20 20 20 20 20 20  irs" && \.      
172a0 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 72 65  func_warning "re
172b0 6d 65 6d 62 65 72 20 74 6f 20 72 75 6e 20 5c 60  member to run \`
172c0 24 70 72 6f 67 6e 61 6d 65 20 2d 2d 66 69 6e 69  $progname --fini
172d0 73 68 24 66 75 74 75 72 65 5f 6c 69 62 64 69 72  sh$future_libdir
172e0 73 27 22 0a 0a 20 20 20 20 69 66 20 74 65 73 74  s'"..    if test
172f0 20 2d 6e 20 22 24 63 75 72 72 65 6e 74 5f 6c 69   -n "$current_li
17300 62 64 69 72 73 22 3b 20 74 68 65 6e 0a 20 20 20  bdirs"; then.   
17310 20 20 20 23 20 4d 61 79 62 65 20 6a 75 73 74 20     # Maybe just 
17320 64 6f 20 61 20 64 72 79 20 72 75 6e 2e 0a 20 20  do a dry run..  
17330 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e      $opt_dry_run
17340 20 26 26 20 63 75 72 72 65 6e 74 5f 6c 69 62 64   && current_libd
17350 69 72 73 3d 22 20 2d 6e 24 63 75 72 72 65 6e 74  irs=" -n$current
17360 5f 6c 69 62 64 69 72 73 22 0a 20 20 20 20 20 20  _libdirs".      
17370 65 78 65 63 5f 63 6d 64 3d 27 24 53 48 45 4c 4c  exec_cmd='$SHELL
17380 20 24 70 72 6f 67 70 61 74 68 20 24 70 72 65 73   $progpath $pres
17390 65 72 76 65 5f 61 72 67 73 20 2d 2d 66 69 6e 69  erve_args --fini
173a0 73 68 24 63 75 72 72 65 6e 74 5f 6c 69 62 64 69  sh$current_libdi
173b0 72 73 27 0a 20 20 20 20 65 6c 73 65 0a 20 20 20  rs'.    else.   
173c0 20 20 20 65 78 69 74 20 24 45 58 49 54 5f 53 55     exit $EXIT_SU
173d0 43 43 45 53 53 0a 20 20 20 20 66 69 0a 7d 0a 0a  CCESS.    fi.}..
173e0 74 65 73 74 20 22 24 6f 70 74 5f 6d 6f 64 65 22  test "$opt_mode"
173f0 20 3d 20 69 6e 73 74 61 6c 6c 20 26 26 20 66 75   = install && fu
17400 6e 63 5f 6d 6f 64 65 5f 69 6e 73 74 61 6c 6c 20  nc_mode_install 
17410 24 7b 31 2b 22 24 40 22 7d 0a 0a 0a 23 20 66 75  ${1+"$@"}...# fu
17420 6e 63 5f 67 65 6e 65 72 61 74 65 5f 64 6c 73 79  nc_generate_dlsy
17430 6d 73 20 6f 75 74 70 75 74 6e 61 6d 65 20 6f 72  ms outputname or
17440 69 67 69 6e 61 74 6f 72 20 70 69 63 5f 70 0a 23  iginator pic_p.#
17450 20 45 78 74 72 61 63 74 20 73 79 6d 62 6f 6c 73   Extract symbols
17460 20 66 72 6f 6d 20 64 6c 70 72 65 66 69 6c 65 73   from dlprefiles
17470 20 61 6e 64 20 63 72 65 61 74 65 20 24 7b 6f 75   and create ${ou
17480 74 70 75 74 6e 61 6d 65 7d 53 2e 6f 20 77 69 74  tputname}S.o wit
17490 68 0a 23 20 61 20 64 6c 70 72 65 6f 70 65 6e 20  h.# a dlpreopen 
174a0 73 79 6d 62 6f 6c 20 74 61 62 6c 65 2e 0a 66 75  symbol table..fu
174b0 6e 63 5f 67 65 6e 65 72 61 74 65 5f 64 6c 73 79  nc_generate_dlsy
174c0 6d 73 20 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74  ms ().{.    $opt
174d0 5f 64 65 62 75 67 0a 20 20 20 20 6d 79 5f 6f 75  _debug.    my_ou
174e0 74 70 75 74 6e 61 6d 65 3d 22 24 31 22 0a 20 20  tputname="$1".  
174f0 20 20 6d 79 5f 6f 72 69 67 69 6e 61 74 6f 72 3d    my_originator=
17500 22 24 32 22 0a 20 20 20 20 6d 79 5f 70 69 63 5f  "$2".    my_pic_
17510 70 3d 22 24 7b 33 2d 6e 6f 7d 22 0a 20 20 20 20  p="${3-no}".    
17520 6d 79 5f 70 72 65 66 69 78 3d 60 24 45 43 48 4f  my_prefix=`$ECHO
17530 20 22 24 6d 79 5f 6f 72 69 67 69 6e 61 74 6f 72   "$my_originator
17540 22 20 7c 20 73 65 64 20 27 73 25 5b 5e 61 2d 7a  " | sed 's%[^a-z
17550 41 2d 5a 30 2d 39 5d 25 5f 25 67 27 60 0a 20 20  A-Z0-9]%_%g'`.  
17560 20 20 6d 79 5f 64 6c 73 79 6d 73 3d 0a 0a 20 20    my_dlsyms=..  
17570 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64    if test -n "$d
17580 6c 66 69 6c 65 73 24 64 6c 70 72 65 66 69 6c 65  lfiles$dlprefile
17590 73 22 20 7c 7c 20 74 65 73 74 20 22 24 64 6c 73  s" || test "$dls
175a0 65 6c 66 22 20 21 3d 20 6e 6f 3b 20 74 68 65 6e  elf" != no; then
175b0 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d  .      if test -
175c0 6e 20 22 24 4e 4d 22 20 26 26 20 74 65 73 74 20  n "$NM" && test 
175d0 2d 6e 20 22 24 67 6c 6f 62 61 6c 5f 73 79 6d 62  -n "$global_symb
175e0 6f 6c 5f 70 69 70 65 22 3b 20 74 68 65 6e 0a 09  ol_pipe"; then..
175f0 6d 79 5f 64 6c 73 79 6d 73 3d 22 24 7b 6d 79 5f  my_dlsyms="${my_
17600 6f 75 74 70 75 74 6e 61 6d 65 7d 53 2e 63 22 0a  outputname}S.c".
17610 20 20 20 20 20 20 65 6c 73 65 0a 09 66 75 6e 63        else..func
17620 5f 65 72 72 6f 72 20 22 6e 6f 74 20 63 6f 6e 66  _error "not conf
17630 69 67 75 72 65 64 20 74 6f 20 65 78 74 72 61 63  igured to extrac
17640 74 20 67 6c 6f 62 61 6c 20 73 79 6d 62 6f 6c 73  t global symbols
17650 20 66 72 6f 6d 20 64 6c 70 72 65 6f 70 65 6e 65   from dlpreopene
17660 64 20 66 69 6c 65 73 22 0a 20 20 20 20 20 20 66  d files".      f
17670 69 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 69 66  i.    fi..    if
17680 20 74 65 73 74 20 2d 6e 20 22 24 6d 79 5f 64 6c   test -n "$my_dl
17690 73 79 6d 73 22 3b 20 74 68 65 6e 0a 20 20 20 20  syms"; then.    
176a0 20 20 63 61 73 65 20 24 6d 79 5f 64 6c 73 79 6d    case $my_dlsym
176b0 73 20 69 6e 0a 20 20 20 20 20 20 22 22 29 20 3b  s in.      "") ;
176c0 3b 0a 20 20 20 20 20 20 2a 2e 63 29 0a 09 23 20  ;.      *.c)..# 
176d0 44 69 73 63 6f 76 65 72 20 74 68 65 20 6e 6c 69  Discover the nli
176e0 73 74 20 6f 66 20 65 61 63 68 20 6f 66 20 74 68  st of each of th
176f0 65 20 64 6c 66 69 6c 65 73 2e 0a 09 6e 6c 69 73  e dlfiles...nlis
17700 74 3d 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69  t="$output_objdi
17710 72 2f 24 7b 6d 79 5f 6f 75 74 70 75 74 6e 61 6d  r/${my_outputnam
17720 65 7d 2e 6e 6d 22 0a 0a 09 66 75 6e 63 5f 73 68  e}.nm"...func_sh
17730 6f 77 5f 65 76 61 6c 20 22 24 52 4d 20 24 6e 6c  ow_eval "$RM $nl
17740 69 73 74 20 24 7b 6e 6c 69 73 74 7d 53 20 24 7b  ist ${nlist}S ${
17750 6e 6c 69 73 74 7d 54 22 0a 0a 09 23 20 50 61 72  nlist}T"...# Par
17760 73 65 20 74 68 65 20 6e 61 6d 65 20 6c 69 73 74  se the name list
17770 20 69 6e 74 6f 20 61 20 73 6f 75 72 63 65 20 66   into a source f
17780 69 6c 65 2e 0a 09 66 75 6e 63 5f 76 65 72 62 6f  ile...func_verbo
17790 73 65 20 22 63 72 65 61 74 69 6e 67 20 24 6f 75  se "creating $ou
177a0 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f  tput_objdir/$my_
177b0 64 6c 73 79 6d 73 22 0a 0a 09 24 6f 70 74 5f 64  dlsyms"...$opt_d
177c0 72 79 5f 72 75 6e 20 7c 7c 20 24 45 43 48 4f 20  ry_run || $ECHO 
177d0 3e 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69  > "$output_objdi
177e0 72 2f 24 6d 79 5f 64 6c 73 79 6d 73 22 20 22 5c  r/$my_dlsyms" "\
177f0 0a 2f 2a 20 24 6d 79 5f 64 6c 73 79 6d 73 20 2d  ./* $my_dlsyms -
17800 20 73 79 6d 62 6f 6c 20 72 65 73 6f 6c 75 74 69   symbol resoluti
17810 6f 6e 20 74 61 62 6c 65 20 66 6f 72 20 5c 60 24  on table for \`$
17820 6d 79 5f 6f 75 74 70 75 74 6e 61 6d 65 27 20 64  my_outputname' d
17830 6c 73 79 6d 20 65 6d 75 6c 61 74 69 6f 6e 2e 20  lsym emulation. 
17840 2a 2f 0a 2f 2a 20 47 65 6e 65 72 61 74 65 64 20  */./* Generated 
17850 62 79 20 24 50 52 4f 47 52 41 4d 20 28 47 4e 55  by $PROGRAM (GNU
17860 20 24 50 41 43 4b 41 47 45 24 54 49 4d 45 53 54   $PACKAGE$TIMEST
17870 41 4d 50 29 20 24 56 45 52 53 49 4f 4e 20 2a 2f  AMP) $VERSION */
17880 0a 0a 23 69 66 64 65 66 20 5f 5f 63 70 6c 75 73  ..#ifdef __cplus
17890 70 6c 75 73 0a 65 78 74 65 72 6e 20 5c 22 43 5c  plus.extern \"C\
178a0 22 20 7b 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20  " {.#endif..#if 
178b0 64 65 66 69 6e 65 64 28 5f 5f 47 4e 55 43 5f 5f  defined(__GNUC__
178c0 29 20 26 26 20 28 28 28 5f 5f 47 4e 55 43 5f 5f  ) && (((__GNUC__
178d0 20 3d 3d 20 34 29 20 26 26 20 28 5f 5f 47 4e 55   == 4) && (__GNU
178e0 43 5f 4d 49 4e 4f 52 5f 5f 20 3e 3d 20 34 29 29  C_MINOR__ >= 4))
178f0 20 7c 7c 20 28 5f 5f 47 4e 55 43 5f 5f 20 3e 20   || (__GNUC__ > 
17900 34 29 29 0a 23 70 72 61 67 6d 61 20 47 43 43 20  4)).#pragma GCC 
17910 64 69 61 67 6e 6f 73 74 69 63 20 69 67 6e 6f 72  diagnostic ignor
17920 65 64 20 5c 22 2d 57 73 74 72 69 63 74 2d 70 72  ed \"-Wstrict-pr
17930 6f 74 6f 74 79 70 65 73 5c 22 0a 23 65 6e 64 69  ototypes\".#endi
17940 66 0a 0a 2f 2a 20 4b 65 65 70 20 74 68 69 73 20  f../* Keep this 
17950 63 6f 64 65 20 69 6e 20 73 79 6e 63 20 62 65 74  code in sync bet
17960 77 65 65 6e 20 6c 69 62 74 6f 6f 6c 2e 6d 34 2c  ween libtool.m4,
17970 20 6c 74 6d 61 69 6e 2c 20 6c 74 5f 73 79 73 74   ltmain, lt_syst
17980 65 6d 2e 68 2c 20 61 6e 64 20 74 65 73 74 73 2e  em.h, and tests.
17990 20 20 2a 2f 0a 23 69 66 20 64 65 66 69 6e 65 64    */.#if defined
179a0 28 5f 57 49 4e 33 32 29 20 7c 7c 20 64 65 66 69  (_WIN32) || defi
179b0 6e 65 64 28 5f 5f 43 59 47 57 49 4e 5f 5f 29 20  ned(__CYGWIN__) 
179c0 7c 7c 20 64 65 66 69 6e 65 64 28 5f 57 49 4e 33  || defined(_WIN3
179d0 32 5f 57 43 45 29 0a 2f 2a 20 44 41 54 41 20 69  2_WCE)./* DATA i
179e0 6d 70 6f 72 74 73 20 66 72 6f 6d 20 44 4c 4c 73  mports from DLLs
179f0 20 6f 6e 20 57 49 4e 33 32 20 63 6f 6e 27 74 20   on WIN32 con't 
17a00 62 65 20 63 6f 6e 73 74 2c 20 62 65 63 61 75 73  be const, becaus
17a10 65 20 72 75 6e 74 69 6d 65 0a 20 20 20 72 65 6c  e runtime.   rel
17a20 6f 63 61 74 69 6f 6e 73 20 61 72 65 20 70 65 72  ocations are per
17a30 66 6f 72 6d 65 64 20 2d 2d 20 73 65 65 20 6c 64  formed -- see ld
17a40 27 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  's documentation
17a50 20 6f 6e 20 70 73 65 75 64 6f 2d 72 65 6c 6f 63   on pseudo-reloc
17a60 73 2e 20 20 2a 2f 0a 23 20 64 65 66 69 6e 65 20  s.  */.# define 
17a70 4c 54 5f 44 4c 53 59 4d 5f 43 4f 4e 53 54 0a 23  LT_DLSYM_CONST.#
17a80 65 6c 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 6f  elif defined(__o
17a90 73 66 5f 5f 29 0a 2f 2a 20 54 68 69 73 20 73 79  sf__)./* This sy
17aa0 73 74 65 6d 20 64 6f 65 73 20 6e 6f 74 20 63 6f  stem does not co
17ab0 70 65 20 77 65 6c 6c 20 77 69 74 68 20 72 65 6c  pe well with rel
17ac0 6f 63 61 74 69 6f 6e 73 20 69 6e 20 63 6f 6e 73  ocations in cons
17ad0 74 20 64 61 74 61 2e 20 20 2a 2f 0a 23 20 64 65  t data.  */.# de
17ae0 66 69 6e 65 20 4c 54 5f 44 4c 53 59 4d 5f 43 4f  fine LT_DLSYM_CO
17af0 4e 53 54 0a 23 65 6c 73 65 0a 23 20 64 65 66 69  NST.#else.# defi
17b00 6e 65 20 4c 54 5f 44 4c 53 59 4d 5f 43 4f 4e 53  ne LT_DLSYM_CONS
17b10 54 20 63 6f 6e 73 74 0a 23 65 6e 64 69 66 0a 0a  T const.#endif..
17b20 2f 2a 20 45 78 74 65 72 6e 61 6c 20 73 79 6d 62  /* External symb
17b30 6f 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20  ol declarations 
17b40 66 6f 72 20 74 68 65 20 63 6f 6d 70 69 6c 65 72  for the compiler
17b50 2e 20 2a 2f 5c 0a 22 0a 0a 09 69 66 20 74 65 73  . */\."...if tes
17b60 74 20 22 24 64 6c 73 65 6c 66 22 20 3d 20 79 65  t "$dlself" = ye
17b70 73 3b 20 74 68 65 6e 0a 09 20 20 66 75 6e 63 5f  s; then..  func_
17b80 76 65 72 62 6f 73 65 20 22 67 65 6e 65 72 61 74  verbose "generat
17b90 69 6e 67 20 73 79 6d 62 6f 6c 20 6c 69 73 74 20  ing symbol list 
17ba0 66 6f 72 20 5c 60 24 6f 75 74 70 75 74 27 22 0a  for \`$output'".
17bb0 0a 09 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e  ..  $opt_dry_run
17bc0 20 7c 7c 20 65 63 68 6f 20 27 3a 20 40 50 52 4f   || echo ': @PRO
17bd0 47 52 41 4d 40 20 27 20 3e 20 22 24 6e 6c 69 73  GRAM@ ' > "$nlis
17be0 74 22 0a 0a 09 20 20 23 20 41 64 64 20 6f 75 72  t"...  # Add our
17bf0 20 6f 77 6e 20 70 72 6f 67 72 61 6d 20 6f 62 6a   own program obj
17c00 65 63 74 73 20 74 6f 20 74 68 65 20 73 79 6d 62  ects to the symb
17c10 6f 6c 20 6c 69 73 74 2e 0a 09 20 20 70 72 6f 67  ol list...  prog
17c20 66 69 6c 65 73 3d 60 24 45 43 48 4f 20 22 24 6f  files=`$ECHO "$o
17c30 62 6a 73 24 6f 6c 64 5f 64 65 70 6c 69 62 73 22  bjs$old_deplibs"
17c40 20 7c 20 24 53 50 32 4e 4c 20 7c 20 24 53 45 44   | $SP2NL | $SED
17c50 20 22 24 6c 6f 32 6f 22 20 7c 20 24 4e 4c 32 53   "$lo2o" | $NL2S
17c60 50 60 0a 09 20 20 66 6f 72 20 70 72 6f 67 66 69  P`..  for progfi
17c70 6c 65 20 69 6e 20 24 70 72 6f 67 66 69 6c 65 73  le in $progfiles
17c80 3b 20 64 6f 0a 09 20 20 20 20 66 75 6e 63 5f 74  ; do..    func_t
17c90 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 20 22 24 70 72  o_tool_file "$pr
17ca0 6f 67 66 69 6c 65 22 20 66 75 6e 63 5f 63 6f 6e  ogfile" func_con
17cb0 76 65 72 74 5f 66 69 6c 65 5f 6d 73 79 73 5f 74  vert_file_msys_t
17cc0 6f 5f 77 33 32 0a 09 20 20 20 20 66 75 6e 63 5f  o_w32..    func_
17cd0 76 65 72 62 6f 73 65 20 22 65 78 74 72 61 63 74  verbose "extract
17ce0 69 6e 67 20 67 6c 6f 62 61 6c 20 43 20 73 79 6d  ing global C sym
17cf0 62 6f 6c 73 20 66 72 6f 6d 20 5c 60 24 66 75 6e  bols from \`$fun
17d00 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 5f 72  c_to_tool_file_r
17d10 65 73 75 6c 74 27 22 0a 09 20 20 20 20 24 6f 70  esult'"..    $op
17d20 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 65 76 61  t_dry_run || eva
17d30 6c 20 22 24 4e 4d 20 24 66 75 6e 63 5f 74 6f 5f  l "$NM $func_to_
17d40 74 6f 6f 6c 5f 66 69 6c 65 5f 72 65 73 75 6c 74  tool_file_result
17d50 20 7c 20 24 67 6c 6f 62 61 6c 5f 73 79 6d 62 6f   | $global_symbo
17d60 6c 5f 70 69 70 65 20 3e 3e 20 27 24 6e 6c 69 73  l_pipe >> '$nlis
17d70 74 27 22 0a 09 20 20 64 6f 6e 65 0a 0a 09 20 20  t'"..  done...  
17d80 69 66 20 74 65 73 74 20 2d 6e 20 22 24 65 78 63  if test -n "$exc
17d90 6c 75 64 65 5f 65 78 70 73 79 6d 73 22 3b 20 74  lude_expsyms"; t
17da0 68 65 6e 0a 09 20 20 20 20 24 6f 70 74 5f 64 72  hen..    $opt_dr
17db0 79 5f 72 75 6e 20 7c 7c 20 7b 0a 09 20 20 20 20  y_run || {..    
17dc0 20 20 65 76 61 6c 20 27 24 45 47 52 45 50 20 2d    eval '$EGREP -
17dd0 76 20 22 20 28 24 65 78 63 6c 75 64 65 5f 65 78  v " ($exclude_ex
17de0 70 73 79 6d 73 29 24 22 20 22 24 6e 6c 69 73 74  psyms)$" "$nlist
17df0 22 20 3e 20 22 24 6e 6c 69 73 74 22 54 27 0a 09  " > "$nlist"T'..
17e00 20 20 20 20 20 20 65 76 61 6c 20 27 24 4d 56 20        eval '$MV 
17e10 22 24 6e 6c 69 73 74 22 54 20 22 24 6e 6c 69 73  "$nlist"T "$nlis
17e20 74 22 27 0a 09 20 20 20 20 7d 0a 09 20 20 66 69  t"'..    }..  fi
17e30 0a 0a 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20  ...  if test -n 
17e40 22 24 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73  "$export_symbols
17e50 5f 72 65 67 65 78 22 3b 20 74 68 65 6e 0a 09 20  _regex"; then.. 
17e60 20 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20     $opt_dry_run 
17e70 7c 7c 20 7b 0a 09 20 20 20 20 20 20 65 76 61 6c  || {..      eval
17e80 20 27 24 45 47 52 45 50 20 2d 65 20 22 24 65 78   '$EGREP -e "$ex
17e90 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 5f 72 65 67  port_symbols_reg
17ea0 65 78 22 20 22 24 6e 6c 69 73 74 22 20 3e 20 22  ex" "$nlist" > "
17eb0 24 6e 6c 69 73 74 22 54 27 0a 09 20 20 20 20 20  $nlist"T'..     
17ec0 20 65 76 61 6c 20 27 24 4d 56 20 22 24 6e 6c 69   eval '$MV "$nli
17ed0 73 74 22 54 20 22 24 6e 6c 69 73 74 22 27 0a 09  st"T "$nlist"'..
17ee0 20 20 20 20 7d 0a 09 20 20 66 69 0a 0a 09 20 20      }..  fi...  
17ef0 23 20 50 72 65 70 61 72 65 20 74 68 65 20 6c 69  # Prepare the li
17f00 73 74 20 6f 66 20 65 78 70 6f 72 74 65 64 20 73  st of exported s
17f10 79 6d 62 6f 6c 73 0a 09 20 20 69 66 20 74 65 73  ymbols..  if tes
17f20 74 20 2d 7a 20 22 24 65 78 70 6f 72 74 5f 73 79  t -z "$export_sy
17f30 6d 62 6f 6c 73 22 3b 20 74 68 65 6e 0a 09 20 20  mbols"; then..  
17f40 20 20 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73    export_symbols
17f50 3d 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72  ="$output_objdir
17f60 2f 24 6f 75 74 70 75 74 6e 61 6d 65 2e 65 78 70  /$outputname.exp
17f70 22 0a 09 20 20 20 20 24 6f 70 74 5f 64 72 79 5f  "..    $opt_dry_
17f80 72 75 6e 20 7c 7c 20 7b 0a 09 20 20 20 20 20 20  run || {..      
17f90 24 52 4d 20 24 65 78 70 6f 72 74 5f 73 79 6d 62  $RM $export_symb
17fa0 6f 6c 73 0a 09 20 20 20 20 20 20 65 76 61 6c 20  ols..      eval 
17fb0 22 24 7b 53 45 44 7d 20 2d 6e 20 2d 65 20 27 2f  "${SED} -n -e '/
17fc0 5e 3a 20 40 50 52 4f 47 52 41 4d 40 20 24 2f 64  ^: @PROGRAM@ $/d
17fd0 27 20 2d 65 20 27 73 2f 5e 2e 2a 20 5c 28 2e 2a  ' -e 's/^.* \(.*
17fe0 5c 29 24 2f 5c 31 2f 70 27 20 22 27 3c 20 22 24  \)$/\1/p' "'< "$
17ff0 6e 6c 69 73 74 22 20 3e 20 22 24 65 78 70 6f 72  nlist" > "$expor
18000 74 5f 73 79 6d 62 6f 6c 73 22 27 0a 09 20 20 20  t_symbols"'..   
18010 20 20 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e     case $host in
18020 0a 09 20 20 20 20 20 20 2a 63 79 67 77 69 6e 2a  ..      *cygwin*
18030 20 7c 20 2a 6d 69 6e 67 77 2a 20 7c 20 2a 63 65   | *mingw* | *ce
18040 67 63 63 2a 20 29 0a 20 20 20 20 20 20 20 20 20  gcc* ).         
18050 20 20 20 20 20 20 20 65 76 61 6c 20 22 65 63 68         eval "ech
18060 6f 20 45 58 50 4f 52 54 53 20 22 27 3e 20 22 24  o EXPORTS "'> "$
18070 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6f  output_objdir/$o
18080 75 74 70 75 74 6e 61 6d 65 2e 64 65 66 22 27 0a  utputname.def"'.
18090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180a0 65 76 61 6c 20 27 63 61 74 20 22 24 65 78 70 6f  eval 'cat "$expo
180b0 72 74 5f 73 79 6d 62 6f 6c 73 22 20 3e 3e 20 22  rt_symbols" >> "
180c0 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24  $output_objdir/$
180d0 6f 75 74 70 75 74 6e 61 6d 65 2e 64 65 66 22 27  outputname.def"'
180e0 0a 09 20 20 20 20 20 20 20 20 3b 3b 0a 09 20 20  ..        ;;..  
180f0 20 20 20 20 65 73 61 63 0a 09 20 20 20 20 7d 0a      esac..    }.
18100 09 20 20 65 6c 73 65 0a 09 20 20 20 20 24 6f 70  .  else..    $op
18110 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 7b 0a 09  t_dry_run || {..
18120 20 20 20 20 20 20 65 76 61 6c 20 22 24 7b 53 45        eval "${SE
18130 44 7d 20 2d 65 20 27 73 2f 5c 28 5b 5d 2e 5b 2a  D} -e 's/\([].[*
18140 5e 24 5d 5c 29 2f 5c 5c 5c 5c 5c 31 2f 67 27 20  ^$]\)/\\\\\1/g' 
18150 2d 65 20 27 73 2f 5e 2f 20 2f 27 20 2d 65 20 27  -e 's/^/ /' -e '
18160 73 2f 24 2f 24 2f 27 22 27 20 3c 20 22 24 65 78  s/$/$/'"' < "$ex
18170 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 20 3e 20  port_symbols" > 
18180 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f  "$output_objdir/
18190 24 6f 75 74 70 75 74 6e 61 6d 65 2e 65 78 70 22  $outputname.exp"
181a0 27 0a 09 20 20 20 20 20 20 65 76 61 6c 20 27 24  '..      eval '$
181b0 47 52 45 50 20 2d 66 20 22 24 6f 75 74 70 75 74  GREP -f "$output
181c0 5f 6f 62 6a 64 69 72 2f 24 6f 75 74 70 75 74 6e  _objdir/$outputn
181d0 61 6d 65 2e 65 78 70 22 20 3c 20 22 24 6e 6c 69  ame.exp" < "$nli
181e0 73 74 22 20 3e 20 22 24 6e 6c 69 73 74 22 54 27  st" > "$nlist"T'
181f0 0a 09 20 20 20 20 20 20 65 76 61 6c 20 27 24 4d  ..      eval '$M
18200 56 20 22 24 6e 6c 69 73 74 22 54 20 22 24 6e 6c  V "$nlist"T "$nl
18210 69 73 74 22 27 0a 09 20 20 20 20 20 20 63 61 73  ist"'..      cas
18220 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 20 20 20  e $host in..    
18230 20 20 20 20 2a 63 79 67 77 69 6e 2a 20 7c 20 2a      *cygwin* | *
18240 6d 69 6e 67 77 2a 20 7c 20 2a 63 65 67 63 63 2a  mingw* | *cegcc*
18250 20 29 0a 09 20 20 20 20 20 20 20 20 20 20 65 76   )..          ev
18260 61 6c 20 22 65 63 68 6f 20 45 58 50 4f 52 54 53  al "echo EXPORTS
18270 20 22 27 3e 20 22 24 6f 75 74 70 75 74 5f 6f 62   "'> "$output_ob
18280 6a 64 69 72 2f 24 6f 75 74 70 75 74 6e 61 6d 65  jdir/$outputname
18290 2e 64 65 66 22 27 0a 09 20 20 20 20 20 20 20 20  .def"'..        
182a0 20 20 65 76 61 6c 20 27 63 61 74 20 22 24 6e 6c    eval 'cat "$nl
182b0 69 73 74 22 20 3e 3e 20 22 24 6f 75 74 70 75 74  ist" >> "$output
182c0 5f 6f 62 6a 64 69 72 2f 24 6f 75 74 70 75 74 6e  _objdir/$outputn
182d0 61 6d 65 2e 64 65 66 22 27 0a 09 20 20 20 20 20  ame.def"'..     
182e0 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 20 20 65       ;;..      e
182f0 73 61 63 0a 09 20 20 20 20 7d 0a 09 20 20 66 69  sac..    }..  fi
18300 0a 09 66 69 0a 0a 09 66 6f 72 20 64 6c 70 72 65  ..fi...for dlpre
18310 66 69 6c 65 20 69 6e 20 24 64 6c 70 72 65 66 69  file in $dlprefi
18320 6c 65 73 3b 20 64 6f 0a 09 20 20 66 75 6e 63 5f  les; do..  func_
18330 76 65 72 62 6f 73 65 20 22 65 78 74 72 61 63 74  verbose "extract
18340 69 6e 67 20 67 6c 6f 62 61 6c 20 43 20 73 79 6d  ing global C sym
18350 62 6f 6c 73 20 66 72 6f 6d 20 5c 60 24 64 6c 70  bols from \`$dlp
18360 72 65 66 69 6c 65 27 22 0a 09 20 20 66 75 6e 63  refile'"..  func
18370 5f 62 61 73 65 6e 61 6d 65 20 22 24 64 6c 70 72  _basename "$dlpr
18380 65 66 69 6c 65 22 0a 09 20 20 6e 61 6d 65 3d 22  efile"..  name="
18390 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f 72  $func_basename_r
183a0 65 73 75 6c 74 22 0a 20 20 20 20 20 20 20 20 20  esult".         
183b0 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09   case $host in..
183c0 20 20 20 20 2a 63 79 67 77 69 6e 2a 20 7c 20 2a      *cygwin* | *
183d0 6d 69 6e 67 77 2a 20 7c 20 2a 63 65 67 63 63 2a  mingw* | *cegcc*
183e0 20 29 0a 09 20 20 20 20 20 20 23 20 69 66 20 61   )..      # if a
183f0 6e 20 69 6d 70 6f 72 74 20 6c 69 62 72 61 72 79  n import library
18400 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 6f 62 74  , we need to obt
18410 61 69 6e 20 64 6c 6e 61 6d 65 0a 09 20 20 20 20  ain dlname..    
18420 20 20 69 66 20 66 75 6e 63 5f 77 69 6e 33 32 5f    if func_win32_
18430 69 6d 70 6f 72 74 5f 6c 69 62 5f 70 20 22 24 64  import_lib_p "$d
18440 6c 70 72 65 66 69 6c 65 22 3b 20 74 68 65 6e 0a  lprefile"; then.
18450 09 20 20 20 20 20 20 20 20 66 75 6e 63 5f 74 72  .        func_tr
18460 5f 73 68 20 22 24 64 6c 70 72 65 66 69 6c 65 22  _sh "$dlprefile"
18470 0a 09 20 20 20 20 20 20 20 20 65 76 61 6c 20 22  ..        eval "
18480 63 75 72 72 5f 6c 61 66 69 6c 65 3d 5c 24 6c 69  curr_lafile=\$li
18490 62 66 69 6c 65 5f 24 66 75 6e 63 5f 74 72 5f 73  bfile_$func_tr_s
184a0 68 5f 72 65 73 75 6c 74 22 0a 09 20 20 20 20 20  h_result"..     
184b0 20 20 20 64 6c 70 72 65 66 69 6c 65 5f 64 6c 62     dlprefile_dlb
184c0 61 73 65 6e 61 6d 65 3d 22 22 0a 09 20 20 20 20  asename=""..    
184d0 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
184e0 24 63 75 72 72 5f 6c 61 66 69 6c 65 22 20 26 26  $curr_lafile" &&
184f0 20 66 75 6e 63 5f 6c 61 6c 69 62 5f 70 20 22 24   func_lalib_p "$
18500 63 75 72 72 5f 6c 61 66 69 6c 65 22 3b 20 74 68  curr_lafile"; th
18510 65 6e 0a 09 20 20 20 20 20 20 20 20 20 20 23 20  en..          # 
18520 55 73 65 20 73 75 62 73 68 65 6c 6c 2c 20 74 6f  Use subshell, to
18530 20 61 76 6f 69 64 20 63 6c 6f 62 62 65 72 69 6e   avoid clobberin
18540 67 20 63 75 72 72 65 6e 74 20 76 61 72 69 61 62  g current variab
18550 6c 65 20 76 61 6c 75 65 73 0a 09 20 20 20 20 20  le values..     
18560 20 20 20 20 20 64 6c 70 72 65 66 69 6c 65 5f 64       dlprefile_d
18570 6c 6e 61 6d 65 3d 60 73 6f 75 72 63 65 20 22 24  lname=`source "$
18580 63 75 72 72 5f 6c 61 66 69 6c 65 22 20 26 26 20  curr_lafile" && 
18590 65 63 68 6f 20 22 24 64 6c 6e 61 6d 65 22 60 0a  echo "$dlname"`.
185a0 09 20 20 20 20 20 20 20 20 20 20 69 66 20 74 65  .          if te
185b0 73 74 20 2d 6e 20 22 24 64 6c 70 72 65 66 69 6c  st -n "$dlprefil
185c0 65 5f 64 6c 6e 61 6d 65 22 20 3b 20 74 68 65 6e  e_dlname" ; then
185d0 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 66 75  ..            fu
185e0 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22 24 64 6c  nc_basename "$dl
185f0 70 72 65 66 69 6c 65 5f 64 6c 6e 61 6d 65 22 0a  prefile_dlname".
18600 09 20 20 20 20 20 20 20 20 20 20 20 20 64 6c 70  .            dlp
18610 72 65 66 69 6c 65 5f 64 6c 62 61 73 65 6e 61 6d  refile_dlbasenam
18620 65 3d 22 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d  e="$func_basenam
18630 65 5f 72 65 73 75 6c 74 22 0a 09 20 20 20 20 20  e_result"..     
18640 20 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20       else..     
18650 20 20 20 20 20 20 20 23 20 6e 6f 20 6c 61 66 69         # no lafi
18660 6c 65 2e 20 75 73 65 72 20 65 78 70 6c 69 63 69  le. user explici
18670 74 6c 79 20 72 65 71 75 65 73 74 65 64 20 2d 64  tly requested -d
18680 6c 70 72 65 6f 70 65 6e 20 3c 69 6d 70 6f 72 74  lpreopen <import
18690 20 6c 69 62 72 61 72 79 3e 2e 0a 09 20 20 20 20   library>...    
186a0 20 20 20 20 20 20 20 20 24 73 68 61 72 65 64 6c          $sharedl
186b0 69 62 5f 66 72 6f 6d 5f 6c 69 6e 6b 6c 69 62 5f  ib_from_linklib_
186c0 63 6d 64 20 22 24 64 6c 70 72 65 66 69 6c 65 22  cmd "$dlprefile"
186d0 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 64 6c  ..            dl
186e0 70 72 65 66 69 6c 65 5f 64 6c 62 61 73 65 6e 61  prefile_dlbasena
186f0 6d 65 3d 24 73 68 61 72 65 64 6c 69 62 5f 66 72  me=$sharedlib_fr
18700 6f 6d 5f 6c 69 6e 6b 6c 69 62 5f 72 65 73 75 6c  om_linklib_resul
18710 74 0a 09 20 20 20 20 20 20 20 20 20 20 66 69 0a  t..          fi.
18720 09 20 20 20 20 20 20 20 20 66 69 0a 09 20 20 20  .        fi..   
18730 20 20 20 20 20 24 6f 70 74 5f 64 72 79 5f 72 75       $opt_dry_ru
18740 6e 20 7c 7c 20 7b 0a 09 20 20 20 20 20 20 20 20  n || {..        
18750 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64    if test -n "$d
18760 6c 70 72 65 66 69 6c 65 5f 64 6c 62 61 73 65 6e  lprefile_dlbasen
18770 61 6d 65 22 20 3b 20 74 68 65 6e 0a 09 20 20 20  ame" ; then..   
18780 20 20 20 20 20 20 20 20 20 65 76 61 6c 20 27 24           eval '$
18790 45 43 48 4f 20 22 3a 20 24 64 6c 70 72 65 66 69  ECHO ": $dlprefi
187a0 6c 65 5f 64 6c 62 61 73 65 6e 61 6d 65 22 20 3e  le_dlbasename" >
187b0 3e 20 22 24 6e 6c 69 73 74 22 27 0a 09 20 20 20  > "$nlist"'..   
187c0 20 20 20 20 20 20 20 65 6c 73 65 0a 09 20 20 20         else..   
187d0 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f 77 61           func_wa
187e0 72 6e 69 6e 67 20 22 43 6f 75 6c 64 20 6e 6f 74  rning "Could not
187f0 20 63 6f 6d 70 75 74 65 20 44 4c 4c 20 6e 61 6d   compute DLL nam
18800 65 20 66 72 6f 6d 20 24 6e 61 6d 65 22 0a 09 20  e from $name".. 
18810 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 20             eval 
18820 27 24 45 43 48 4f 20 22 3a 20 24 6e 61 6d 65 20  '$ECHO ": $name 
18830 22 20 3e 3e 20 22 24 6e 6c 69 73 74 22 27 0a 09  " >> "$nlist"'..
18840 20 20 20 20 20 20 20 20 20 20 66 69 0a 09 20 20            fi..  
18850 20 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f          func_to_
18860 74 6f 6f 6c 5f 66 69 6c 65 20 22 24 64 6c 70 72  tool_file "$dlpr
18870 65 66 69 6c 65 22 20 66 75 6e 63 5f 63 6f 6e 76  efile" func_conv
18880 65 72 74 5f 66 69 6c 65 5f 6d 73 79 73 5f 74 6f  ert_file_msys_to
18890 5f 77 33 32 0a 09 20 20 20 20 20 20 20 20 20 20  _w32..          
188a0 65 76 61 6c 20 22 24 4e 4d 20 5c 22 24 66 75 6e  eval "$NM \"$fun
188b0 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 5f 72  c_to_tool_file_r
188c0 65 73 75 6c 74 5c 22 20 32 3e 2f 64 65 76 2f 6e  esult\" 2>/dev/n
188d0 75 6c 6c 20 7c 20 24 67 6c 6f 62 61 6c 5f 73 79  ull | $global_sy
188e0 6d 62 6f 6c 5f 70 69 70 65 20 7c 0a 09 20 20 20  mbol_pipe |..   
188f0 20 20 20 20 20 20 20 20 20 24 53 45 44 20 2d 65           $SED -e
18900 20 27 2f 49 20 5f 5f 69 6d 70 2f 64 27 20 2d 65   '/I __imp/d' -e
18910 20 27 73 2f 49 20 5f 5f 6e 6d 5f 2f 44 20 2f 3b   's/I __nm_/D /;
18920 73 2f 5f 6e 6d 5f 5f 2f 2f 27 20 3e 3e 20 27 24  s/_nm__//' >> '$
18930 6e 6c 69 73 74 27 22 0a 09 20 20 20 20 20 20 20  nlist'"..       
18940 20 7d 0a 09 20 20 20 20 20 20 65 6c 73 65 20 23   }..      else #
18950 20 6e 6f 74 20 61 6e 20 69 6d 70 6f 72 74 20 6c   not an import l
18960 69 62 0a 09 20 20 20 20 20 20 20 20 24 6f 70 74  ib..        $opt
18970 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 7b 0a 09 20  _dry_run || {.. 
18980 20 20 20 20 20 20 20 20 20 65 76 61 6c 20 27 24           eval '$
18990 45 43 48 4f 20 22 3a 20 24 6e 61 6d 65 20 22 20  ECHO ": $name " 
189a0 3e 3e 20 22 24 6e 6c 69 73 74 22 27 0a 09 20 20  >> "$nlist"'..  
189b0 20 20 20 20 20 20 20 20 66 75 6e 63 5f 74 6f 5f          func_to_
189c0 74 6f 6f 6c 5f 66 69 6c 65 20 22 24 64 6c 70 72  tool_file "$dlpr
189d0 65 66 69 6c 65 22 20 66 75 6e 63 5f 63 6f 6e 76  efile" func_conv
189e0 65 72 74 5f 66 69 6c 65 5f 6d 73 79 73 5f 74 6f  ert_file_msys_to
189f0 5f 77 33 32 0a 09 20 20 20 20 20 20 20 20 20 20  _w32..          
18a00 65 76 61 6c 20 22 24 4e 4d 20 5c 22 24 66 75 6e  eval "$NM \"$fun
18a10 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 5f 72  c_to_tool_file_r
18a20 65 73 75 6c 74 5c 22 20 32 3e 2f 64 65 76 2f 6e  esult\" 2>/dev/n
18a30 75 6c 6c 20 7c 20 24 67 6c 6f 62 61 6c 5f 73 79  ull | $global_sy
18a40 6d 62 6f 6c 5f 70 69 70 65 20 3e 3e 20 27 24 6e  mbol_pipe >> '$n
18a50 6c 69 73 74 27 22 0a 09 20 20 20 20 20 20 20 20  list'"..        
18a60 7d 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20 20  }..      fi..   
18a70 20 3b 3b 0a 09 20 20 20 20 2a 29 0a 09 20 20 20   ;;..    *)..   
18a80 20 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20     $opt_dry_run 
18a90 7c 7c 20 7b 0a 09 20 20 20 20 20 20 20 20 65 76  || {..        ev
18aa0 61 6c 20 27 24 45 43 48 4f 20 22 3a 20 24 6e 61  al '$ECHO ": $na
18ab0 6d 65 20 22 20 3e 3e 20 22 24 6e 6c 69 73 74 22  me " >> "$nlist"
18ac0 27 0a 09 20 20 20 20 20 20 20 20 66 75 6e 63 5f  '..        func_
18ad0 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 20 22 24 64  to_tool_file "$d
18ae0 6c 70 72 65 66 69 6c 65 22 20 66 75 6e 63 5f 63  lprefile" func_c
18af0 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 6d 73 79 73  onvert_file_msys
18b00 5f 74 6f 5f 77 33 32 0a 09 20 20 20 20 20 20 20  _to_w32..       
18b10 20 65 76 61 6c 20 22 24 4e 4d 20 5c 22 24 66 75   eval "$NM \"$fu
18b20 6e 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 5f  nc_to_tool_file_
18b30 72 65 73 75 6c 74 5c 22 20 32 3e 2f 64 65 76 2f  result\" 2>/dev/
18b40 6e 75 6c 6c 20 7c 20 24 67 6c 6f 62 61 6c 5f 73  null | $global_s
18b50 79 6d 62 6f 6c 5f 70 69 70 65 20 3e 3e 20 27 24  ymbol_pipe >> '$
18b60 6e 6c 69 73 74 27 22 0a 09 20 20 20 20 20 20 7d  nlist'"..      }
18b70 0a 09 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 20  ..    ;;.       
18b80 20 20 20 65 73 61 63 0a 09 64 6f 6e 65 0a 0a 09     esac..done...
18b90 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c 7c 20  $opt_dry_run || 
18ba0 7b 0a 09 20 20 23 20 4d 61 6b 65 20 73 75 72 65  {..  # Make sure
18bb0 20 77 65 20 68 61 76 65 20 61 74 20 6c 65 61 73   we have at leas
18bc0 74 20 61 6e 20 65 6d 70 74 79 20 66 69 6c 65 2e  t an empty file.
18bd0 0a 09 20 20 74 65 73 74 20 2d 66 20 22 24 6e 6c  ..  test -f "$nl
18be0 69 73 74 22 20 7c 7c 20 3a 20 3e 20 22 24 6e 6c  ist" || : > "$nl
18bf0 69 73 74 22 0a 0a 09 20 20 69 66 20 74 65 73 74  ist"...  if test
18c00 20 2d 6e 20 22 24 65 78 63 6c 75 64 65 5f 65 78   -n "$exclude_ex
18c10 70 73 79 6d 73 22 3b 20 74 68 65 6e 0a 09 20 20  psyms"; then..  
18c20 20 20 24 45 47 52 45 50 20 2d 76 20 22 20 28 24    $EGREP -v " ($
18c30 65 78 63 6c 75 64 65 5f 65 78 70 73 79 6d 73 29  exclude_expsyms)
18c40 24 22 20 22 24 6e 6c 69 73 74 22 20 3e 20 22 24  $" "$nlist" > "$
18c50 6e 6c 69 73 74 22 54 0a 09 20 20 20 20 24 4d 56  nlist"T..    $MV
18c60 20 22 24 6e 6c 69 73 74 22 54 20 22 24 6e 6c 69   "$nlist"T "$nli
18c70 73 74 22 0a 09 20 20 66 69 0a 0a 09 20 20 23 20  st"..  fi...  # 
18c80 54 72 79 20 73 6f 72 74 69 6e 67 20 61 6e 64 20  Try sorting and 
18c90 75 6e 69 71 75 69 66 79 69 6e 67 20 74 68 65 20  uniquifying the 
18ca0 6f 75 74 70 75 74 2e 0a 09 20 20 69 66 20 24 47  output...  if $G
18cb0 52 45 50 20 2d 76 20 22 5e 3a 20 22 20 3c 20 22  REP -v "^: " < "
18cc0 24 6e 6c 69 73 74 22 20 7c 0a 09 20 20 20 20 20  $nlist" |..     
18cd0 20 69 66 20 73 6f 72 74 20 2d 6b 20 33 20 3c 2f   if sort -k 3 </
18ce0 64 65 76 2f 6e 75 6c 6c 20 3e 2f 64 65 76 2f 6e  dev/null >/dev/n
18cf0 75 6c 6c 20 32 3e 26 31 3b 20 74 68 65 6e 0a 09  ull 2>&1; then..
18d00 09 73 6f 72 74 20 2d 6b 20 33 0a 09 20 20 20 20  .sort -k 3..    
18d10 20 20 65 6c 73 65 0a 09 09 73 6f 72 74 20 2b 32    else...sort +2
18d20 0a 09 20 20 20 20 20 20 66 69 20 7c 0a 09 20 20  ..      fi |..  
18d30 20 20 20 20 75 6e 69 71 20 3e 20 22 24 6e 6c 69      uniq > "$nli
18d40 73 74 22 53 3b 20 74 68 65 6e 0a 09 20 20 20 20  st"S; then..    
18d50 3a 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20 24  :..  else..    $
18d60 47 52 45 50 20 2d 76 20 22 5e 3a 20 22 20 3c 20  GREP -v "^: " < 
18d70 22 24 6e 6c 69 73 74 22 20 3e 20 22 24 6e 6c 69  "$nlist" > "$nli
18d80 73 74 22 53 0a 09 20 20 66 69 0a 0a 09 20 20 69  st"S..  fi...  i
18d90 66 20 74 65 73 74 20 2d 66 20 22 24 6e 6c 69 73  f test -f "$nlis
18da0 74 22 53 3b 20 74 68 65 6e 0a 09 20 20 20 20 65  t"S; then..    e
18db0 76 61 6c 20 22 24 67 6c 6f 62 61 6c 5f 73 79 6d  val "$global_sym
18dc0 62 6f 6c 5f 74 6f 5f 63 64 65 63 6c 22 27 20 3c  bol_to_cdecl"' <
18dd0 20 22 24 6e 6c 69 73 74 22 53 20 3e 3e 20 22 24   "$nlist"S >> "$
18de0 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d  output_objdir/$m
18df0 79 5f 64 6c 73 79 6d 73 22 27 0a 09 20 20 65 6c  y_dlsyms"'..  el
18e00 73 65 0a 09 20 20 20 20 65 63 68 6f 20 27 2f 2a  se..    echo '/*
18e10 20 4e 4f 4e 45 20 2a 2f 27 20 3e 3e 20 22 24 6f   NONE */' >> "$o
18e20 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79  utput_objdir/$my
18e30 5f 64 6c 73 79 6d 73 22 0a 09 20 20 66 69 0a 0a  _dlsyms"..  fi..
18e40 09 20 20 65 63 68 6f 20 3e 3e 20 22 24 6f 75 74  .  echo >> "$out
18e50 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64  put_objdir/$my_d
18e60 6c 73 79 6d 73 22 20 22 5c 0a 0a 2f 2a 20 54 68  lsyms" "\../* Th
18e70 65 20 6d 61 70 70 69 6e 67 20 62 65 74 77 65 65  e mapping betwee
18e80 6e 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 73 20 61  n symbol names a
18e90 6e 64 20 73 79 6d 62 6f 6c 73 2e 20 20 2a 2f 0a  nd symbols.  */.
18ea0 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b  typedef struct {
18eb0 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e  .  const char *n
18ec0 61 6d 65 3b 0a 20 20 76 6f 69 64 20 2a 61 64 64  ame;.  void *add
18ed0 72 65 73 73 3b 0a 7d 20 6c 74 5f 64 6c 73 79 6d  ress;.} lt_dlsym
18ee0 6c 69 73 74 3b 0a 65 78 74 65 72 6e 20 4c 54 5f  list;.extern LT_
18ef0 44 4c 53 59 4d 5f 43 4f 4e 53 54 20 6c 74 5f 64  DLSYM_CONST lt_d
18f00 6c 73 79 6d 6c 69 73 74 0a 6c 74 5f 24 7b 6d 79  lsymlist.lt_${my
18f10 5f 70 72 65 66 69 78 7d 5f 4c 54 58 5f 70 72 65  _prefix}_LTX_pre
18f20 6c 6f 61 64 65 64 5f 73 79 6d 62 6f 6c 73 5b 5d  loaded_symbols[]
18f30 3b 0a 4c 54 5f 44 4c 53 59 4d 5f 43 4f 4e 53 54  ;.LT_DLSYM_CONST
18f40 20 6c 74 5f 64 6c 73 79 6d 6c 69 73 74 0a 6c 74   lt_dlsymlist.lt
18f50 5f 24 7b 6d 79 5f 70 72 65 66 69 78 7d 5f 4c 54  _${my_prefix}_LT
18f60 58 5f 70 72 65 6c 6f 61 64 65 64 5f 73 79 6d 62  X_preloaded_symb
18f70 6f 6c 73 5b 5d 20 3d 0a 7b 5c 0a 20 20 7b 20 5c  ols[] =.{\.  { \
18f80 22 24 6d 79 5f 6f 72 69 67 69 6e 61 74 6f 72 5c  "$my_originator\
18f90 22 2c 20 28 76 6f 69 64 20 2a 29 20 30 20 7d 2c  ", (void *) 0 },
18fa0 22 0a 0a 09 20 20 63 61 73 65 20 24 6e 65 65 64  "...  case $need
18fb0 5f 6c 69 62 5f 70 72 65 66 69 78 20 69 6e 0a 09  _lib_prefix in..
18fc0 20 20 6e 6f 29 0a 09 20 20 20 20 65 76 61 6c 20    no)..    eval 
18fd0 22 24 67 6c 6f 62 61 6c 5f 73 79 6d 62 6f 6c 5f  "$global_symbol_
18fe0 74 6f 5f 63 5f 6e 61 6d 65 5f 61 64 64 72 65 73  to_c_name_addres
18ff0 73 22 20 3c 20 22 24 6e 6c 69 73 74 22 20 3e 3e  s" < "$nlist" >>
19000 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72   "$output_objdir
19010 2f 24 6d 79 5f 64 6c 73 79 6d 73 22 0a 09 20 20  /$my_dlsyms"..  
19020 20 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20    ;;..  *)..    
19030 65 76 61 6c 20 22 24 67 6c 6f 62 61 6c 5f 73 79  eval "$global_sy
19040 6d 62 6f 6c 5f 74 6f 5f 63 5f 6e 61 6d 65 5f 61  mbol_to_c_name_a
19050 64 64 72 65 73 73 5f 6c 69 62 5f 70 72 65 66 69  ddress_lib_prefi
19060 78 22 20 3c 20 22 24 6e 6c 69 73 74 22 20 3e 3e  x" < "$nlist" >>
19070 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72   "$output_objdir
19080 2f 24 6d 79 5f 64 6c 73 79 6d 73 22 0a 09 20 20  /$my_dlsyms"..  
19090 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20    ;;..  esac..  
190a0 65 63 68 6f 20 3e 3e 20 22 24 6f 75 74 70 75 74  echo >> "$output
190b0 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 64 6c 73 79  _objdir/$my_dlsy
190c0 6d 73 22 20 22 5c 0a 20 20 7b 30 2c 20 28 76 6f  ms" "\.  {0, (vo
190d0 69 64 20 2a 29 20 30 7d 0a 7d 3b 0a 0a 2f 2a 20  id *) 0}.};../* 
190e0 54 68 69 73 20 77 6f 72 6b 73 20 61 72 6f 75 6e  This works aroun
190f0 64 20 61 20 70 72 6f 62 6c 65 6d 20 69 6e 20 46  d a problem in F
19100 72 65 65 42 53 44 20 6c 69 6e 6b 65 72 20 2a 2f  reeBSD linker */
19110 0a 23 69 66 64 65 66 20 46 52 45 45 42 53 44 5f  .#ifdef FREEBSD_
19120 57 4f 52 4b 41 52 4f 55 4e 44 0a 73 74 61 74 69  WORKAROUND.stati
19130 63 20 63 6f 6e 73 74 20 76 6f 69 64 20 2a 6c 74  c const void *lt
19140 5f 70 72 65 6c 6f 61 64 65 64 5f 73 65 74 75 70  _preloaded_setup
19150 28 29 20 7b 0a 20 20 72 65 74 75 72 6e 20 6c 74  () {.  return lt
19160 5f 24 7b 6d 79 5f 70 72 65 66 69 78 7d 5f 4c 54  _${my_prefix}_LT
19170 58 5f 70 72 65 6c 6f 61 64 65 64 5f 73 79 6d 62  X_preloaded_symb
19180 6f 6c 73 3b 0a 7d 0a 23 65 6e 64 69 66 0a 0a 23  ols;.}.#endif..#
19190 69 66 64 65 66 20 5f 5f 63 70 6c 75 73 70 6c 75  ifdef __cplusplu
191a0 73 0a 7d 0a 23 65 6e 64 69 66 5c 0a 22 0a 09 7d  s.}.#endif\."..}
191b0 20 23 20 21 24 6f 70 74 5f 64 72 79 5f 72 75 6e   # !$opt_dry_run
191c0 0a 0a 09 70 69 63 5f 66 6c 61 67 5f 66 6f 72 5f  ...pic_flag_for_
191d0 73 79 6d 74 61 62 6c 65 3d 0a 09 63 61 73 65 20  symtable=..case 
191e0 22 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e  "$compile_comman
191f0 64 20 22 20 69 6e 0a 09 2a 22 20 2d 73 74 61 74  d " in..*" -stat
19200 69 63 20 22 2a 29 20 3b 3b 0a 09 2a 29 0a 09 20  ic "*) ;;..*).. 
19210 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09   case $host in..
19220 20 20 23 20 63 6f 6d 70 69 6c 69 6e 67 20 74 68    # compiling th
19230 65 20 73 79 6d 62 6f 6c 20 74 61 62 6c 65 20 66  e symbol table f
19240 69 6c 65 20 77 69 74 68 20 70 69 63 5f 66 6c 61  ile with pic_fla
19250 67 20 77 6f 72 6b 73 20 61 72 6f 75 6e 64 0a 09  g works around..
19260 20 20 23 20 61 20 46 72 65 65 42 53 44 20 62 75    # a FreeBSD bu
19270 67 20 74 68 61 74 20 63 61 75 73 65 73 20 70 72  g that causes pr
19280 6f 67 72 61 6d 73 20 74 6f 20 63 72 61 73 68 20  ograms to crash 
19290 77 68 65 6e 20 2d 6c 6d 20 69 73 0a 09 20 20 23  when -lm is..  #
192a0 20 6c 69 6e 6b 65 64 20 62 65 66 6f 72 65 20 61   linked before a
192b0 6e 79 20 6f 74 68 65 72 20 50 49 43 20 6f 62 6a  ny other PIC obj
192c0 65 63 74 2e 20 20 42 75 74 20 77 65 20 6d 75 73  ect.  But we mus
192d0 74 20 6e 6f 74 20 75 73 65 0a 09 20 20 23 20 70  t not use..  # p
192e0 69 63 5f 66 6c 61 67 20 77 68 65 6e 20 6c 69 6e  ic_flag when lin
192f0 6b 69 6e 67 20 77 69 74 68 20 2d 73 74 61 74 69  king with -stati
19300 63 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20  c.  The problem 
19310 65 78 69 73 74 73 20 69 6e 0a 09 20 20 23 20 46  exists in..  # F
19320 72 65 65 42 53 44 20 32 2e 32 2e 36 20 61 6e 64  reeBSD 2.2.6 and
19330 20 69 73 20 66 69 78 65 64 20 69 6e 20 46 72 65   is fixed in Fre
19340 65 42 53 44 20 33 2e 31 2e 0a 09 20 20 2a 2d 2a  eBSD 3.1...  *-*
19350 2d 66 72 65 65 62 73 64 32 2e 2a 7c 2a 2d 2a 2d  -freebsd2.*|*-*-
19360 66 72 65 65 62 73 64 33 2e 30 2a 7c 2a 2d 2a 2d  freebsd3.0*|*-*-
19370 66 72 65 65 62 73 64 65 6c 66 33 2e 30 2a 29 0a  freebsdelf3.0*).
19380 09 20 20 20 20 70 69 63 5f 66 6c 61 67 5f 66 6f  .    pic_flag_fo
19390 72 5f 73 79 6d 74 61 62 6c 65 3d 22 20 24 70 69  r_symtable=" $pi
193a0 63 5f 66 6c 61 67 20 2d 44 46 52 45 45 42 53 44  c_flag -DFREEBSD
193b0 5f 57 4f 52 4b 41 52 4f 55 4e 44 22 20 3b 3b 0a  _WORKAROUND" ;;.
193c0 09 20 20 2a 2d 2a 2d 68 70 75 78 2a 29 0a 09 20  .  *-*-hpux*).. 
193d0 20 20 20 70 69 63 5f 66 6c 61 67 5f 66 6f 72 5f     pic_flag_for_
193e0 73 79 6d 74 61 62 6c 65 3d 22 20 24 70 69 63 5f  symtable=" $pic_
193f0 66 6c 61 67 22 20 20 3b 3b 0a 09 20 20 2a 29 0a  flag"  ;;..  *).
19400 09 20 20 20 20 69 66 20 74 65 73 74 20 22 58 24  .    if test "X$
19410 6d 79 5f 70 69 63 5f 70 22 20 21 3d 20 58 6e 6f  my_pic_p" != Xno
19420 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 70 69  ; then..      pi
19430 63 5f 66 6c 61 67 5f 66 6f 72 5f 73 79 6d 74 61  c_flag_for_symta
19440 62 6c 65 3d 22 20 24 70 69 63 5f 66 6c 61 67 22  ble=" $pic_flag"
19450 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 3b 3b  ..    fi..    ;;
19460 0a 09 20 20 65 73 61 63 0a 09 20 20 3b 3b 0a 09  ..  esac..  ;;..
19470 65 73 61 63 0a 09 73 79 6d 74 61 62 5f 63 66 6c  esac..symtab_cfl
19480 61 67 73 3d 0a 09 66 6f 72 20 61 72 67 20 69 6e  ags=..for arg in
19490 20 24 4c 54 43 46 4c 41 47 53 3b 20 64 6f 0a 09   $LTCFLAGS; do..
194a0 20 20 63 61 73 65 20 24 61 72 67 20 69 6e 0a 09    case $arg in..
194b0 20 20 2d 70 69 65 20 7c 20 2d 66 70 69 65 20 7c    -pie | -fpie |
194c0 20 2d 66 50 49 45 29 20 3b 3b 0a 09 20 20 2a 29   -fPIE) ;;..  *)
194d0 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 73 79 6d   func_append sym
194e0 74 61 62 5f 63 66 6c 61 67 73 20 22 20 24 61 72  tab_cflags " $ar
194f0 67 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 64  g" ;;..  esac..d
19500 6f 6e 65 0a 0a 09 23 20 4e 6f 77 20 63 6f 6d 70  one...# Now comp
19510 69 6c 65 20 74 68 65 20 64 79 6e 61 6d 69 63 20  ile the dynamic 
19520 73 79 6d 62 6f 6c 20 66 69 6c 65 2e 0a 09 66 75  symbol file...fu
19530 6e 63 5f 73 68 6f 77 5f 65 76 61 6c 20 27 28 63  nc_show_eval '(c
19540 64 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72  d $output_objdir
19550 20 26 26 20 24 4c 54 43 43 24 73 79 6d 74 61 62   && $LTCC$symtab
19560 5f 63 66 6c 61 67 73 20 2d 63 24 6e 6f 5f 62 75  _cflags -c$no_bu
19570 69 6c 74 69 6e 5f 66 6c 61 67 24 70 69 63 5f 66  iltin_flag$pic_f
19580 6c 61 67 5f 66 6f 72 5f 73 79 6d 74 61 62 6c 65  lag_for_symtable
19590 20 22 24 6d 79 5f 64 6c 73 79 6d 73 22 29 27 20   "$my_dlsyms")' 
195a0 27 65 78 69 74 20 24 3f 27 0a 0a 09 23 20 43 6c  'exit $?'...# Cl
195b0 65 61 6e 20 75 70 20 74 68 65 20 67 65 6e 65 72  ean up the gener
195c0 61 74 65 64 20 66 69 6c 65 73 2e 0a 09 66 75 6e  ated files...fun
195d0 63 5f 73 68 6f 77 5f 65 76 61 6c 20 27 24 52 4d  c_show_eval '$RM
195e0 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72   "$output_objdir
195f0 2f 24 6d 79 5f 64 6c 73 79 6d 73 22 20 22 24 6e  /$my_dlsyms" "$n
19600 6c 69 73 74 22 20 22 24 7b 6e 6c 69 73 74 7d 53  list" "${nlist}S
19610 22 20 22 24 7b 6e 6c 69 73 74 7d 54 22 27 0a 0a  " "${nlist}T"'..
19620 09 23 20 54 72 61 6e 73 66 6f 72 6d 20 74 68 65  .# Transform the
19630 20 73 79 6d 62 6f 6c 20 66 69 6c 65 20 69 6e 74   symbol file int
19640 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 6e 61  o the correct na
19650 6d 65 2e 0a 09 73 79 6d 66 69 6c 65 6f 62 6a 3d  me...symfileobj=
19660 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f  "$output_objdir/
19670 24 7b 6d 79 5f 6f 75 74 70 75 74 6e 61 6d 65 7d  ${my_outputname}
19680 53 2e 24 6f 62 6a 65 78 74 22 0a 09 63 61 73 65  S.$objext"..case
19690 20 24 68 6f 73 74 20 69 6e 0a 09 2a 63 79 67 77   $host in..*cygw
196a0 69 6e 2a 20 7c 20 2a 6d 69 6e 67 77 2a 20 7c 20  in* | *mingw* | 
196b0 2a 63 65 67 63 63 2a 20 29 0a 09 20 20 69 66 20  *cegcc* )..  if 
196c0 74 65 73 74 20 2d 66 20 22 24 6f 75 74 70 75 74  test -f "$output
196d0 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 6f 75 74 70  _objdir/$my_outp
196e0 75 74 6e 61 6d 65 2e 64 65 66 22 3b 20 74 68 65  utname.def"; the
196f0 6e 0a 09 20 20 20 20 63 6f 6d 70 69 6c 65 5f 63  n..    compile_c
19700 6f 6d 6d 61 6e 64 3d 60 24 45 43 48 4f 20 22 24  ommand=`$ECHO "$
19710 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 22  compile_command"
19720 20 7c 20 24 53 45 44 20 22 73 25 40 53 59 4d 46   | $SED "s%@SYMF
19730 49 4c 45 40 25 24 6f 75 74 70 75 74 5f 6f 62 6a  ILE@%$output_obj
19740 64 69 72 2f 24 6d 79 5f 6f 75 74 70 75 74 6e 61  dir/$my_outputna
19750 6d 65 2e 64 65 66 20 24 73 79 6d 66 69 6c 65 6f  me.def $symfileo
19760 62 6a 25 22 60 0a 09 20 20 20 20 66 69 6e 61 6c  bj%"`..    final
19770 69 7a 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45 43  ize_command=`$EC
19780 48 4f 20 22 24 66 69 6e 61 6c 69 7a 65 5f 63 6f  HO "$finalize_co
19790 6d 6d 61 6e 64 22 20 7c 20 24 53 45 44 20 22 73  mmand" | $SED "s
197a0 25 40 53 59 4d 46 49 4c 45 40 25 24 6f 75 74 70  %@SYMFILE@%$outp
197b0 75 74 5f 6f 62 6a 64 69 72 2f 24 6d 79 5f 6f 75  ut_objdir/$my_ou
197c0 74 70 75 74 6e 61 6d 65 2e 64 65 66 20 24 73 79  tputname.def $sy
197d0 6d 66 69 6c 65 6f 62 6a 25 22 60 0a 09 20 20 65  mfileobj%"`..  e
197e0 6c 73 65 0a 09 20 20 20 20 63 6f 6d 70 69 6c 65  lse..    compile
197f0 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45 43 48 4f 20  _command=`$ECHO 
19800 22 24 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e  "$compile_comman
19810 64 22 20 7c 20 24 53 45 44 20 22 73 25 40 53 59  d" | $SED "s%@SY
19820 4d 46 49 4c 45 40 25 24 73 79 6d 66 69 6c 65 6f  MFILE@%$symfileo
19830 62 6a 25 22 60 0a 09 20 20 20 20 66 69 6e 61 6c  bj%"`..    final
19840 69 7a 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45 43  ize_command=`$EC
19850 48 4f 20 22 24 66 69 6e 61 6c 69 7a 65 5f 63 6f  HO "$finalize_co
19860 6d 6d 61 6e 64 22 20 7c 20 24 53 45 44 20 22 73  mmand" | $SED "s
19870 25 40 53 59 4d 46 49 4c 45 40 25 24 73 79 6d 66  %@SYMFILE@%$symf
19880 69 6c 65 6f 62 6a 25 22 60 0a 09 20 20 66 69 0a  ileobj%"`..  fi.
19890 09 20 20 3b 3b 0a 09 2a 29 0a 09 20 20 63 6f 6d  .  ;;..*)..  com
198a0 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45  pile_command=`$E
198b0 43 48 4f 20 22 24 63 6f 6d 70 69 6c 65 5f 63 6f  CHO "$compile_co
198c0 6d 6d 61 6e 64 22 20 7c 20 24 53 45 44 20 22 73  mmand" | $SED "s
198d0 25 40 53 59 4d 46 49 4c 45 40 25 24 73 79 6d 66  %@SYMFILE@%$symf
198e0 69 6c 65 6f 62 6a 25 22 60 0a 09 20 20 66 69 6e  ileobj%"`..  fin
198f0 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24  alize_command=`$
19900 45 43 48 4f 20 22 24 66 69 6e 61 6c 69 7a 65 5f  ECHO "$finalize_
19910 63 6f 6d 6d 61 6e 64 22 20 7c 20 24 53 45 44 20  command" | $SED 
19920 22 73 25 40 53 59 4d 46 49 4c 45 40 25 24 73 79  "s%@SYMFILE@%$sy
19930 6d 66 69 6c 65 6f 62 6a 25 22 60 0a 09 20 20 3b  mfileobj%"`..  ;
19940 3b 0a 09 65 73 61 63 0a 09 3b 3b 0a 20 20 20 20  ;..esac..;;.    
19950 20 20 2a 29 0a 09 66 75 6e 63 5f 66 61 74 61 6c    *)..func_fatal
19960 5f 65 72 72 6f 72 20 22 75 6e 6b 6e 6f 77 6e 20  _error "unknown 
19970 73 75 66 66 69 78 20 66 6f 72 20 5c 60 24 6d 79  suffix for \`$my
19980 5f 64 6c 73 79 6d 73 27 22 0a 09 3b 3b 0a 20 20  _dlsyms'"..;;.  
19990 20 20 20 20 65 73 61 63 0a 20 20 20 20 65 6c 73      esac.    els
199a0 65 0a 20 20 20 20 20 20 23 20 57 65 20 6b 65 65  e.      # We kee
199b0 70 20 67 6f 69 6e 67 20 6a 75 73 74 20 69 6e 20  p going just in 
199c0 63 61 73 65 20 74 68 65 20 75 73 65 72 20 64 69  case the user di
199d0 64 6e 27 74 20 72 65 66 65 72 20 74 6f 0a 20 20  dn't refer to.  
199e0 20 20 20 20 23 20 6c 74 5f 70 72 65 6c 6f 61 64      # lt_preload
199f0 65 64 5f 73 79 6d 62 6f 6c 73 2e 20 20 54 68 65  ed_symbols.  The
19a00 20 6c 69 6e 6b 65 72 20 77 69 6c 6c 20 66 61 69   linker will fai
19a10 6c 20 69 66 20 67 6c 6f 62 61 6c 5f 73 79 6d 62  l if global_symb
19a20 6f 6c 5f 70 69 70 65 0a 20 20 20 20 20 20 23 20  ol_pipe.      # 
19a30 72 65 61 6c 6c 79 20 77 61 73 20 72 65 71 75 69  really was requi
19a40 72 65 64 2e 0a 0a 20 20 20 20 20 20 23 20 4e 75  red...      # Nu
19a50 6c 6c 69 66 79 20 74 68 65 20 73 79 6d 62 6f 6c  llify the symbol
19a60 20 66 69 6c 65 2e 0a 20 20 20 20 20 20 63 6f 6d   file..      com
19a70 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 3d 60 24 45  pile_command=`$E
19a80 43 48 4f 20 22 24 63 6f 6d 70 69 6c 65 5f 63 6f  CHO "$compile_co
19a90 6d 6d 61 6e 64 22 20 7c 20 24 53 45 44 20 22 73  mmand" | $SED "s
19aa0 25 20 40 53 59 4d 46 49 4c 45 40 25 25 22 60 0a  % @SYMFILE@%%"`.
19ab0 20 20 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 63        finalize_c
19ac0 6f 6d 6d 61 6e 64 3d 60 24 45 43 48 4f 20 22 24  ommand=`$ECHO "$
19ad0 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64  finalize_command
19ae0 22 20 7c 20 24 53 45 44 20 22 73 25 20 40 53 59  " | $SED "s% @SY
19af0 4d 46 49 4c 45 40 25 25 22 60 0a 20 20 20 20 66  MFILE@%%"`.    f
19b00 69 0a 7d 0a 0a 23 20 66 75 6e 63 5f 77 69 6e 33  i.}..# func_win3
19b10 32 5f 6c 69 62 69 64 20 61 72 67 0a 23 20 72 65  2_libid arg.# re
19b20 74 75 72 6e 20 74 68 65 20 6c 69 62 72 61 72 79  turn the library
19b30 20 74 79 70 65 20 6f 66 20 66 69 6c 65 20 27 61   type of file 'a
19b40 72 67 27 0a 23 0a 23 20 4e 65 65 64 20 61 20 6c  rg'.#.# Need a l
19b50 6f 74 20 6f 66 20 67 6f 6f 20 74 6f 20 68 61 6e  ot of goo to han
19b60 64 6c 65 20 2a 62 6f 74 68 2a 20 44 4c 4c 73 20  dle *both* DLLs 
19b70 61 6e 64 20 69 6d 70 6f 72 74 20 6c 69 62 73 0a  and import libs.
19b80 23 20 48 61 73 20 74 6f 20 62 65 20 61 20 73 68  # Has to be a sh
19b90 65 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20  ell function in 
19ba0 6f 72 64 65 72 20 74 6f 20 27 65 61 74 27 20 74  order to 'eat' t
19bb0 68 65 20 61 72 67 75 6d 65 6e 74 0a 23 20 74 68  he argument.# th
19bc0 61 74 20 69 73 20 73 75 70 70 6c 69 65 64 20 77  at is supplied w
19bd0 68 65 6e 20 24 66 69 6c 65 5f 6d 61 67 69 63 5f  hen $file_magic_
19be0 63 6f 6d 6d 61 6e 64 20 69 73 20 63 61 6c 6c 65  command is calle
19bf0 64 2e 0a 23 20 44 65 73 70 69 74 65 20 74 68 65  d..# Despite the
19c00 20 6e 61 6d 65 2c 20 61 6c 73 6f 20 64 65 61 6c   name, also deal
19c10 20 77 69 74 68 20 36 34 20 62 69 74 20 62 69 6e   with 64 bit bin
19c20 61 72 69 65 73 2e 0a 66 75 6e 63 5f 77 69 6e 33  aries..func_win3
19c30 32 5f 6c 69 62 69 64 20 28 29 0a 7b 0a 20 20 24  2_libid ().{.  $
19c40 6f 70 74 5f 64 65 62 75 67 0a 20 20 77 69 6e 33  opt_debug.  win3
19c50 32 5f 6c 69 62 69 64 5f 74 79 70 65 3d 22 75 6e  2_libid_type="un
19c60 6b 6e 6f 77 6e 22 0a 20 20 77 69 6e 33 32 5f 66  known".  win32_f
19c70 69 6c 65 72 65 73 3d 60 66 69 6c 65 20 2d 4c 20  ileres=`file -L 
19c80 24 31 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a  $1 2>/dev/null`.
19c90 20 20 63 61 73 65 20 24 77 69 6e 33 32 5f 66 69    case $win32_fi
19ca0 6c 65 72 65 73 20 69 6e 0a 20 20 2a 61 72 5c 20  leres in.  *ar\ 
19cb0 61 72 63 68 69 76 65 5c 20 69 6d 70 6f 72 74 5c  archive\ import\
19cc0 20 6c 69 62 72 61 72 79 2a 29 20 23 20 64 65 66   library*) # def
19cd0 69 6e 69 74 65 6c 79 20 69 6d 70 6f 72 74 0a 20  initely import. 
19ce0 20 20 20 77 69 6e 33 32 5f 6c 69 62 69 64 5f 74     win32_libid_t
19cf0 79 70 65 3d 22 78 38 36 20 61 72 63 68 69 76 65  ype="x86 archive
19d00 20 69 6d 70 6f 72 74 22 0a 20 20 20 20 3b 3b 0a   import".    ;;.
19d10 20 20 2a 61 72 5c 20 61 72 63 68 69 76 65 2a 29    *ar\ archive*)
19d20 20 23 20 63 6f 75 6c 64 20 62 65 20 61 6e 20 69   # could be an i
19d30 6d 70 6f 72 74 2c 20 6f 72 20 73 74 61 74 69 63  mport, or static
19d40 0a 20 20 20 20 23 20 4b 65 65 70 20 74 68 65 20  .    # Keep the 
19d50 65 67 72 65 70 20 70 61 74 74 65 72 6e 20 69 6e  egrep pattern in
19d60 20 73 79 6e 63 20 77 69 74 68 20 74 68 65 20 6f   sync with the o
19d70 6e 65 20 69 6e 20 5f 4c 54 5f 43 48 45 43 4b 5f  ne in _LT_CHECK_
19d80 4d 41 47 49 43 5f 4d 45 54 48 4f 44 2e 0a 20 20  MAGIC_METHOD..  
19d90 20 20 69 66 20 65 76 61 6c 20 24 4f 42 4a 44 55    if eval $OBJDU
19da0 4d 50 20 2d 66 20 24 31 20 7c 20 24 53 45 44 20  MP -f $1 | $SED 
19db0 2d 65 20 27 31 30 71 27 20 32 3e 2f 64 65 76 2f  -e '10q' 2>/dev/
19dc0 6e 75 6c 6c 20 7c 0a 20 20 20 20 20 20 20 24 45  null |.       $E
19dd0 47 52 45 50 20 27 66 69 6c 65 20 66 6f 72 6d 61  GREP 'file forma
19de0 74 20 28 70 65 69 2a 2d 69 33 38 36 28 2e 2a 61  t (pei*-i386(.*a
19df0 72 63 68 69 74 65 63 74 75 72 65 3a 20 69 33 38  rchitecture: i38
19e00 36 29 3f 7c 70 65 2d 61 72 6d 2d 77 69 6e 63 65  6)?|pe-arm-wince
19e10 7c 70 65 2d 78 38 36 2d 36 34 29 27 20 3e 2f 64  |pe-x86-64)' >/d
19e20 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 20 20  ev/null; then.  
19e30 20 20 20 20 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c      func_to_tool
19e40 5f 66 69 6c 65 20 22 24 31 22 20 66 75 6e 63 5f  _file "$1" func_
19e50 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 6d 73 79  convert_file_msy
19e60 73 5f 74 6f 5f 77 33 32 0a 20 20 20 20 20 20 77  s_to_w32.      w
19e70 69 6e 33 32 5f 6e 6d 72 65 73 3d 60 65 76 61 6c  in32_nmres=`eval
19e80 20 24 4e 4d 20 2d 66 20 70 6f 73 69 78 20 2d 41   $NM -f posix -A
19e90 20 5c 22 24 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c   \"$func_to_tool
19ea0 5f 66 69 6c 65 5f 72 65 73 75 6c 74 5c 22 20 7c  _file_result\" |
19eb0 0a 09 24 53 45 44 20 2d 6e 20 2d 65 20 27 0a 09  ..$SED -n -e '..
19ec0 20 20 20 20 31 2c 31 30 30 7b 0a 09 09 2f 20 49      1,100{.../ I
19ed0 20 2f 7b 0a 09 09 20 20 20 20 73 2c 2e 2a 2c 69   /{...    s,.*,i
19ee0 6d 70 6f 72 74 2c 0a 09 09 20 20 20 20 70 0a 09  mport,...    p..
19ef0 09 20 20 20 20 71 0a 09 09 7d 0a 09 20 20 20 20  .    q...}..    
19f00 7d 27 60 0a 20 20 20 20 20 20 63 61 73 65 20 24  }'`.      case $
19f10 77 69 6e 33 32 5f 6e 6d 72 65 73 20 69 6e 0a 20  win32_nmres in. 
19f20 20 20 20 20 20 69 6d 70 6f 72 74 2a 29 20 20 77       import*)  w
19f30 69 6e 33 32 5f 6c 69 62 69 64 5f 74 79 70 65 3d  in32_libid_type=
19f40 22 78 38 36 20 61 72 63 68 69 76 65 20 69 6d 70  "x86 archive imp
19f50 6f 72 74 22 3b 3b 0a 20 20 20 20 20 20 2a 29 20  ort";;.      *) 
19f60 20 20 20 20 20 20 20 77 69 6e 33 32 5f 6c 69 62         win32_lib
19f70 69 64 5f 74 79 70 65 3d 22 78 38 36 20 61 72 63  id_type="x86 arc
19f80 68 69 76 65 20 73 74 61 74 69 63 22 3b 3b 0a 20  hive static";;. 
19f90 20 20 20 20 20 65 73 61 63 0a 20 20 20 20 66 69       esac.    fi
19fa0 0a 20 20 20 20 3b 3b 0a 20 20 2a 44 4c 4c 2a 29  .    ;;.  *DLL*)
19fb0 0a 20 20 20 20 77 69 6e 33 32 5f 6c 69 62 69 64  .    win32_libid
19fc0 5f 74 79 70 65 3d 22 78 38 36 20 44 4c 4c 22 0a  _type="x86 DLL".
19fd0 20 20 20 20 3b 3b 0a 20 20 2a 65 78 65 63 75 74      ;;.  *execut
19fe0 61 62 6c 65 2a 29 20 23 20 62 75 74 20 73 68 65  able*) # but she
19ff0 6c 6c 20 73 63 72 69 70 74 73 20 61 72 65 20 22  ll scripts are "
1a000 65 78 65 63 75 74 61 62 6c 65 22 20 74 6f 6f 2e  executable" too.
1a010 2e 2e 0a 20 20 20 20 63 61 73 65 20 24 77 69 6e  ...    case $win
1a020 33 32 5f 66 69 6c 65 72 65 73 20 69 6e 0a 20 20  32_fileres in.  
1a030 20 20 2a 4d 53 5c 20 57 69 6e 64 6f 77 73 5c 20    *MS\ Windows\ 
1a040 50 45 5c 20 49 6e 74 65 6c 2a 29 0a 20 20 20 20  PE\ Intel*).    
1a050 20 20 77 69 6e 33 32 5f 6c 69 62 69 64 5f 74 79    win32_libid_ty
1a060 70 65 3d 22 78 38 36 20 44 4c 4c 22 0a 20 20 20  pe="x86 DLL".   
1a070 20 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20     ;;.    esac. 
1a080 20 20 20 3b 3b 0a 20 20 65 73 61 63 0a 20 20 24     ;;.  esac.  $
1a090 45 43 48 4f 20 22 24 77 69 6e 33 32 5f 6c 69 62  ECHO "$win32_lib
1a0a0 69 64 5f 74 79 70 65 22 0a 7d 0a 0a 23 20 66 75  id_type".}..# fu
1a0b0 6e 63 5f 63 79 67 6d 69 6e 67 5f 64 6c 6c 5f 66  nc_cygming_dll_f
1a0c0 6f 72 5f 69 6d 70 6c 69 62 20 41 52 47 0a 23 0a  or_implib ARG.#.
1a0d0 23 20 50 6c 61 74 66 6f 72 6d 2d 73 70 65 63 69  # Platform-speci
1a0e0 66 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20  fic function to 
1a0f0 65 78 74 72 61 63 74 20 74 68 65 0a 23 20 6e 61  extract the.# na
1a100 6d 65 20 6f 66 20 74 68 65 20 44 4c 4c 20 61 73  me of the DLL as
1a110 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68  sociated with th
1a120 65 20 73 70 65 63 69 66 69 65 64 0a 23 20 69 6d  e specified.# im
1a130 70 6f 72 74 20 6c 69 62 72 61 72 79 20 41 52 47  port library ARG
1a140 2e 0a 23 20 49 6e 76 6f 6b 65 64 20 62 79 20 65  ..# Invoked by e
1a150 76 61 6c 27 69 6e 67 20 74 68 65 20 6c 69 62 74  val'ing the libt
1a160 6f 6f 6c 20 76 61 72 69 61 62 6c 65 0a 23 20 20  ool variable.#  
1a170 20 20 24 73 68 61 72 65 64 6c 69 62 5f 66 72 6f    $sharedlib_fro
1a180 6d 5f 6c 69 6e 6b 6c 69 62 5f 63 6d 64 0a 23 20  m_linklib_cmd.# 
1a190 52 65 73 75 6c 74 20 69 73 20 61 76 61 69 6c 61  Result is availa
1a1a0 62 6c 65 20 69 6e 20 74 68 65 20 76 61 72 69 61  ble in the varia
1a1b0 62 6c 65 0a 23 20 20 20 20 24 73 68 61 72 65 64  ble.#    $shared
1a1c0 6c 69 62 5f 66 72 6f 6d 5f 6c 69 6e 6b 6c 69 62  lib_from_linklib
1a1d0 5f 72 65 73 75 6c 74 0a 66 75 6e 63 5f 63 79 67  _result.func_cyg
1a1e0 6d 69 6e 67 5f 64 6c 6c 5f 66 6f 72 5f 69 6d 70  ming_dll_for_imp
1a1f0 6c 69 62 20 28 29 0a 7b 0a 20 20 24 6f 70 74 5f  lib ().{.  $opt_
1a200 64 65 62 75 67 0a 20 20 73 68 61 72 65 64 6c 69  debug.  sharedli
1a210 62 5f 66 72 6f 6d 5f 6c 69 6e 6b 6c 69 62 5f 72  b_from_linklib_r
1a220 65 73 75 6c 74 3d 60 24 44 4c 4c 54 4f 4f 4c 20  esult=`$DLLTOOL 
1a230 2d 2d 69 64 65 6e 74 69 66 79 2d 73 74 72 69 63  --identify-stric
1a240 74 20 2d 2d 69 64 65 6e 74 69 66 79 20 22 24 31  t --identify "$1
1a250 22 60 0a 7d 0a 0a 23 20 66 75 6e 63 5f 63 79 67  "`.}..# func_cyg
1a260 6d 69 6e 67 5f 64 6c 6c 5f 66 6f 72 5f 69 6d 70  ming_dll_for_imp
1a270 6c 69 62 5f 66 61 6c 6c 62 61 63 6b 5f 63 6f 72  lib_fallback_cor
1a280 65 20 53 45 43 54 49 4f 4e 5f 4e 41 4d 45 20 4c  e SECTION_NAME L
1a290 49 42 4e 41 4d 45 73 0a 23 0a 23 20 54 68 65 20  IBNAMEs.#.# The 
1a2a0 69 73 20 74 68 65 20 63 6f 72 65 20 6f 66 20 61  is the core of a
1a2b0 20 66 61 6c 6c 62 61 63 6b 20 69 6d 70 6c 65 6d   fallback implem
1a2c0 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 0a 23 20  entation of a.# 
1a2d0 70 6c 61 74 66 6f 72 6d 2d 73 70 65 63 69 66 69  platform-specifi
1a2e0 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 65 78  c function to ex
1a2f0 74 72 61 63 74 20 74 68 65 20 6e 61 6d 65 20 6f  tract the name o
1a300 66 20 74 68 65 0a 23 20 44 4c 4c 20 61 73 73 6f  f the.# DLL asso
1a310 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20  ciated with the 
1a320 73 70 65 63 69 66 69 65 64 20 69 6d 70 6f 72 74  specified import
1a330 20 6c 69 62 72 61 72 79 20 4c 49 42 4e 41 4d 45   library LIBNAME
1a340 2e 0a 23 0a 23 20 53 45 43 54 49 4f 4e 5f 4e 41  ..#.# SECTION_NA
1a350 4d 45 20 69 73 20 65 69 74 68 65 72 20 2e 69 64  ME is either .id
1a360 61 74 61 24 36 20 6f 72 20 2e 69 64 61 74 61 24  ata$6 or .idata$
1a370 37 2c 20 64 65 70 65 6e 64 69 6e 67 0a 23 20 6f  7, depending.# o
1a380 6e 20 74 68 65 20 70 6c 61 74 66 6f 72 6d 20 61  n the platform a
1a390 6e 64 20 63 6f 6d 70 69 6c 65 72 20 74 68 61 74  nd compiler that
1a3a0 20 63 72 65 61 74 65 64 20 74 68 65 20 69 6d 70   created the imp
1a3b0 6c 69 62 2e 0a 23 0a 23 20 45 63 68 6f 73 20 74  lib..#.# Echos t
1a3c0 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 44  he name of the D
1a3d0 4c 4c 20 61 73 73 6f 63 69 61 74 65 64 20 77 69  LL associated wi
1a3e0 74 68 20 74 68 65 0a 23 20 73 70 65 63 69 66 69  th the.# specifi
1a3f0 65 64 20 69 6d 70 6f 72 74 20 6c 69 62 72 61 72  ed import librar
1a400 79 2e 0a 66 75 6e 63 5f 63 79 67 6d 69 6e 67 5f  y..func_cygming_
1a410 64 6c 6c 5f 66 6f 72 5f 69 6d 70 6c 69 62 5f 66  dll_for_implib_f
1a420 61 6c 6c 62 61 63 6b 5f 63 6f 72 65 20 28 29 0a  allback_core ().
1a430 7b 0a 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20  {.  $opt_debug. 
1a440 20 6d 61 74 63 68 5f 6c 69 74 65 72 61 6c 3d 60   match_literal=`
1a450 24 45 43 48 4f 20 22 24 31 22 20 7c 20 24 53 45  $ECHO "$1" | $SE
1a460 44 20 22 24 73 65 64 5f 6d 61 6b 65 5f 6c 69 74  D "$sed_make_lit
1a470 65 72 61 6c 5f 72 65 67 65 78 22 60 0a 20 20 24  eral_regex"`.  $
1a480 4f 42 4a 44 55 4d 50 20 2d 73 20 2d 2d 73 65 63  OBJDUMP -s --sec
1a490 74 69 6f 6e 20 22 24 31 22 20 22 24 32 22 20 32  tion "$1" "$2" 2
1a4a0 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 0a 20 20 20  >/dev/null |.   
1a4b0 20 24 53 45 44 20 27 2f 5e 43 6f 6e 74 65 6e 74   $SED '/^Content
1a4c0 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 27 22 24  s of section '"$
1a4d0 6d 61 74 63 68 5f 6c 69 74 65 72 61 6c 22 27 3a  match_literal"':
1a4e0 2f 7b 0a 20 20 20 20 20 20 23 20 50 6c 61 63 65  /{.      # Place
1a4f0 20 6d 61 72 6b 65 72 20 61 74 20 62 65 67 69 6e   marker at begin
1a500 6e 69 6e 67 20 6f 66 20 61 72 63 68 69 76 65 20  ning of archive 
1a510 6d 65 6d 62 65 72 20 64 6c 6c 6e 61 6d 65 20 73  member dllname s
1a520 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 73 2f 2e  ection.      s/.
1a530 2a 2f 3d 3d 3d 3d 4d 41 52 4b 3d 3d 3d 3d 2f 0a  */====MARK====/.
1a540 20 20 20 20 20 20 70 0a 20 20 20 20 20 20 64 0a        p.      d.
1a550 20 20 20 20 7d 0a 20 20 20 20 23 20 54 68 65 73      }.    # Thes
1a560 65 20 6c 69 6e 65 73 20 63 61 6e 20 73 6f 6d 65  e lines can some
1a570 74 69 6d 65 73 20 62 65 20 6c 6f 6e 67 65 72 20  times be longer 
1a580 74 68 61 6e 20 34 33 20 63 68 61 72 61 63 74 65  than 43 characte
1a590 72 73 2c 20 62 75 74 0a 20 20 20 20 23 20 61 72  rs, but.    # ar
1a5a0 65 20 61 6c 77 61 79 73 20 75 6e 69 6e 74 65 72  e always uninter
1a5b0 65 73 74 69 6e 67 0a 20 20 20 20 2f 3a 5b 09 20  esting.    /:[. 
1a5c0 5d 2a 66 69 6c 65 20 66 6f 72 6d 61 74 20 70 65  ]*file format pe
1a5d0 5b 69 5d 5c 7b 2c 31 5c 7d 2d 2f 64 0a 20 20 20  [i]\{,1\}-/d.   
1a5e0 20 2f 5e 49 6e 20 61 72 63 68 69 76 65 20 5b 5e   /^In archive [^
1a5f0 3a 5d 2a 3a 2f 64 0a 20 20 20 20 23 20 45 6e 73  :]*:/d.    # Ens
1a600 75 72 65 20 6d 61 72 6b 65 72 20 69 73 20 70 72  ure marker is pr
1a610 69 6e 74 65 64 0a 20 20 20 20 2f 5e 3d 3d 3d 3d  inted.    /^====
1a620 4d 41 52 4b 3d 3d 3d 3d 2f 70 0a 20 20 20 20 23  MARK====/p.    #
1a630 20 52 65 6d 6f 76 65 20 61 6c 6c 20 6c 69 6e 65   Remove all line
1a640 73 20 77 69 74 68 20 6c 65 73 73 20 74 68 61 6e  s with less than
1a650 20 34 33 20 63 68 61 72 61 63 74 65 72 73 0a 20   43 characters. 
1a660 20 20 20 2f 5e 2e 5c 7b 34 33 5c 7d 2f 21 64 0a     /^.\{43\}/!d.
1a670 20 20 20 20 23 20 46 72 6f 6d 20 72 65 6d 61 69      # From remai
1a680 6e 69 6e 67 20 6c 69 6e 65 73 2c 20 72 65 6d 6f  ning lines, remo
1a690 76 65 20 66 69 72 73 74 20 34 33 20 63 68 61 72  ve first 43 char
1a6a0 61 63 74 65 72 73 0a 20 20 20 20 73 2f 5e 2e 5c  acters.    s/^.\
1a6b0 7b 34 33 5c 7d 2f 2f 27 20 7c 0a 20 20 20 20 24  {43\}//' |.    $
1a6c0 53 45 44 20 2d 6e 20 27 0a 20 20 20 20 20 20 23  SED -n '.      #
1a6d0 20 4a 6f 69 6e 20 6d 61 72 6b 65 72 20 61 6e 64   Join marker and
1a6e0 20 61 6c 6c 20 6c 69 6e 65 73 20 75 6e 74 69 6c   all lines until
1a6f0 20 6e 65 78 74 20 6d 61 72 6b 65 72 20 69 6e 74   next marker int
1a700 6f 20 61 20 73 69 6e 67 6c 65 20 6c 69 6e 65 0a  o a single line.
1a710 20 20 20 20 20 20 2f 5e 3d 3d 3d 3d 4d 41 52 4b        /^====MARK
1a720 3d 3d 3d 3d 2f 20 62 20 70 61 72 61 0a 20 20 20  ====/ b para.   
1a730 20 20 20 48 0a 20 20 20 20 20 20 24 20 62 20 70     H.      $ b p
1a740 61 72 61 0a 20 20 20 20 20 20 62 0a 20 20 20 20  ara.      b.    
1a750 20 20 3a 70 61 72 61 0a 20 20 20 20 20 20 78 0a    :para.      x.
1a760 20 20 20 20 20 20 73 2f 5c 6e 2f 2f 67 0a 20 20        s/\n//g.  
1a770 20 20 20 20 23 20 52 65 6d 6f 76 65 20 74 68 65      # Remove the
1a780 20 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 73 2f   marker.      s/
1a790 5e 3d 3d 3d 3d 4d 41 52 4b 3d 3d 3d 3d 2f 2f 0a  ^====MARK====//.
1a7a0 20 20 20 20 20 20 23 20 52 65 6d 6f 76 65 20 74        # Remove t
1a7b0 72 61 69 6c 69 6e 67 20 64 6f 74 73 20 61 6e 64  railing dots and
1a7c0 20 77 68 69 74 65 73 70 61 63 65 0a 20 20 20 20   whitespace.    
1a7d0 20 20 73 2f 5b 5c 2e 20 5c 74 5d 2a 24 2f 2f 0a    s/[\. \t]*$//.
1a7e0 20 20 20 20 20 20 23 20 50 72 69 6e 74 0a 20 20        # Print.  
1a7f0 20 20 20 20 2f 2e 2f 70 27 20 7c 0a 20 20 20 20      /./p' |.    
1a800 23 20 77 65 20 6e 6f 77 20 68 61 76 65 20 61 20  # we now have a 
1a810 6c 69 73 74 2c 20 6f 6e 65 20 65 6e 74 72 79 20  list, one entry 
1a820 70 65 72 20 6c 69 6e 65 2c 20 6f 66 20 74 68 65  per line, of the
1a830 20 73 74 72 69 6e 67 69 66 69 65 64 0a 20 20 20   stringified.   
1a840 20 23 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74   # contents of t
1a850 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 73  he appropriate s
1a860 65 63 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 6d 65  ection of all me
1a870 6d 62 65 72 73 20 6f 66 20 74 68 65 0a 20 20 20  mbers of the.   
1a880 20 23 20 61 72 63 68 69 76 65 20 77 68 69 63 68   # archive which
1a890 20 70 6f 73 73 65 73 73 20 74 68 61 74 20 73 65   possess that se
1a8a0 63 74 69 6f 6e 2e 20 48 65 75 72 69 73 74 69 63  ction. Heuristic
1a8b0 3a 20 65 6c 69 6d 69 6e 61 74 65 0a 20 20 20 20  : eliminate.    
1a8c0 23 20 61 6c 6c 20 74 68 6f 73 65 20 77 68 69 63  # all those whic
1a8d0 68 20 68 61 76 65 20 61 20 66 69 72 73 74 20 6f  h have a first o
1a8e0 72 20 73 65 63 6f 6e 64 20 63 68 61 72 61 63 74  r second charact
1a8f0 65 72 20 74 68 61 74 20 69 73 0a 20 20 20 20 23  er that is.    #
1a900 20 61 20 27 2e 27 20 28 74 68 61 74 20 69 73 2c   a '.' (that is,
1a910 20 6f 62 6a 64 75 6d 70 27 73 20 72 65 70 72 65   objdump's repre
1a920 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20  sentation of an 
1a930 75 6e 70 72 69 6e 74 61 62 6c 65 0a 20 20 20 20  unprintable.    
1a940 23 20 63 68 61 72 61 63 74 65 72 2e 29 20 54 68  # character.) Th
1a950 69 73 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20 66  is should work f
1a960 6f 72 20 61 6c 6c 20 61 72 63 68 69 76 65 73 20  or all archives 
1a970 77 69 74 68 20 6c 65 73 73 20 74 68 61 6e 0a 20  with less than. 
1a980 20 20 20 23 20 30 78 33 30 32 66 20 65 78 70 6f     # 0x302f expo
1a990 72 74 73 20 2d 2d 20 62 75 74 20 77 69 6c 6c 20  rts -- but will 
1a9a0 66 61 69 6c 20 66 6f 72 20 44 4c 4c 73 20 77 68  fail for DLLs wh
1a9b0 6f 73 65 20 6e 61 6d 65 20 61 63 74 75 61 6c 6c  ose name actuall
1a9c0 79 0a 20 20 20 20 23 20 62 65 67 69 6e 73 20 77  y.    # begins w
1a9d0 69 74 68 20 61 20 6c 69 74 65 72 61 6c 20 27 2e  ith a literal '.
1a9e0 27 20 6f 72 20 61 20 73 69 6e 67 6c 65 20 63 68  ' or a single ch
1a9f0 61 72 61 63 74 65 72 20 66 6f 6c 6c 6f 77 65 64  aracter followed
1aa00 20 62 79 0a 20 20 20 20 23 20 61 20 27 2e 27 2e   by.    # a '.'.
1aa10 0a 20 20 20 20 23 0a 20 20 20 20 23 20 4f 66 20  .    #.    # Of 
1aa20 74 68 6f 73 65 20 74 68 61 74 20 72 65 6d 61 69  those that remai
1aa30 6e 2c 20 70 72 69 6e 74 20 74 68 65 20 66 69 72  n, print the fir
1aa40 73 74 20 6f 6e 65 2e 0a 20 20 20 20 24 53 45 44  st one..    $SED
1aa50 20 2d 65 20 27 2f 5e 5c 2e 2f 64 3b 2f 5e 2e 5c   -e '/^\./d;/^.\
1aa60 2e 2f 64 3b 71 27 0a 7d 0a 0a 23 20 66 75 6e 63  ./d;q'.}..# func
1aa70 5f 63 79 67 6d 69 6e 67 5f 67 6e 75 5f 69 6d 70  _cygming_gnu_imp
1aa80 6c 69 62 5f 70 20 41 52 47 0a 23 20 54 68 69 73  lib_p ARG.# This
1aa90 20 70 72 65 64 69 63 61 74 65 20 72 65 74 75 72   predicate retur
1aaa0 6e 73 20 77 69 74 68 20 7a 65 72 6f 20 73 74 61  ns with zero sta
1aab0 74 75 73 20 28 54 52 55 45 29 20 69 66 0a 23 20  tus (TRUE) if.# 
1aac0 41 52 47 20 69 73 20 61 20 47 4e 55 2f 62 69 6e  ARG is a GNU/bin
1aad0 75 74 69 6c 73 2d 73 74 79 6c 65 20 69 6d 70 6f  utils-style impo
1aae0 72 74 20 6c 69 62 72 61 72 79 2e 20 52 65 74 75  rt library. Retu
1aaf0 72 6e 73 0a 23 20 77 69 74 68 20 6e 6f 6e 7a 65  rns.# with nonze
1ab00 72 6f 20 73 74 61 74 75 73 20 28 46 41 4c 53 45  ro status (FALSE
1ab10 29 20 6f 74 68 65 72 77 69 73 65 2e 0a 66 75 6e  ) otherwise..fun
1ab20 63 5f 63 79 67 6d 69 6e 67 5f 67 6e 75 5f 69 6d  c_cygming_gnu_im
1ab30 70 6c 69 62 5f 70 20 28 29 0a 7b 0a 20 20 24 6f  plib_p ().{.  $o
1ab40 70 74 5f 64 65 62 75 67 0a 20 20 66 75 6e 63 5f  pt_debug.  func_
1ab50 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 20 22 24 31  to_tool_file "$1
1ab60 22 20 66 75 6e 63 5f 63 6f 6e 76 65 72 74 5f 66  " func_convert_f
1ab70 69 6c 65 5f 6d 73 79 73 5f 74 6f 5f 77 33 32 0a  ile_msys_to_w32.
1ab80 20 20 66 75 6e 63 5f 63 79 67 6d 69 6e 67 5f 67    func_cygming_g
1ab90 6e 75 5f 69 6d 70 6c 69 62 5f 74 6d 70 3d 60 24  nu_implib_tmp=`$
1aba0 4e 4d 20 22 24 66 75 6e 63 5f 74 6f 5f 74 6f 6f  NM "$func_to_too
1abb0 6c 5f 66 69 6c 65 5f 72 65 73 75 6c 74 22 20 7c  l_file_result" |
1abc0 20 65 76 61 6c 20 22 24 67 6c 6f 62 61 6c 5f 73   eval "$global_s
1abd0 79 6d 62 6f 6c 5f 70 69 70 65 22 20 7c 20 24 45  ymbol_pipe" | $E
1abe0 47 52 45 50 20 27 20 28 5f 68 65 61 64 5f 5b 41  GREP ' (_head_[A
1abf0 2d 5a 61 2d 7a 30 2d 39 5f 5d 2b 5f 5b 61 64 5d  -Za-z0-9_]+_[ad]
1ac00 6c 2a 7c 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 5d 2b  l*|[A-Za-z0-9_]+
1ac10 5f 5b 61 64 5d 6c 2a 5f 69 6e 61 6d 65 29 24 27  _[ad]l*_iname)$'
1ac20 60 0a 20 20 74 65 73 74 20 2d 6e 20 22 24 66 75  `.  test -n "$fu
1ac30 6e 63 5f 63 79 67 6d 69 6e 67 5f 67 6e 75 5f 69  nc_cygming_gnu_i
1ac40 6d 70 6c 69 62 5f 74 6d 70 22 0a 7d 0a 0a 23 20  mplib_tmp".}..# 
1ac50 66 75 6e 63 5f 63 79 67 6d 69 6e 67 5f 6d 73 5f  func_cygming_ms_
1ac60 69 6d 70 6c 69 62 5f 70 20 41 52 47 0a 23 20 54  implib_p ARG.# T
1ac70 68 69 73 20 70 72 65 64 69 63 61 74 65 20 72 65  his predicate re
1ac80 74 75 72 6e 73 20 77 69 74 68 20 7a 65 72 6f 20  turns with zero 
1ac90 73 74 61 74 75 73 20 28 54 52 55 45 29 20 69 66  status (TRUE) if
1aca0 0a 23 20 41 52 47 20 69 73 20 61 6e 20 4d 53 2d  .# ARG is an MS-
1acb0 73 74 79 6c 65 20 69 6d 70 6f 72 74 20 6c 69 62  style import lib
1acc0 72 61 72 79 2e 20 52 65 74 75 72 6e 73 0a 23 20  rary. Returns.# 
1acd0 77 69 74 68 20 6e 6f 6e 7a 65 72 6f 20 73 74 61  with nonzero sta
1ace0 74 75 73 20 28 46 41 4c 53 45 29 20 6f 74 68 65  tus (FALSE) othe
1acf0 72 77 69 73 65 2e 0a 66 75 6e 63 5f 63 79 67 6d  rwise..func_cygm
1ad00 69 6e 67 5f 6d 73 5f 69 6d 70 6c 69 62 5f 70 20  ing_ms_implib_p 
1ad10 28 29 0a 7b 0a 20 20 24 6f 70 74 5f 64 65 62 75  ().{.  $opt_debu
1ad20 67 0a 20 20 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c  g.  func_to_tool
1ad30 5f 66 69 6c 65 20 22 24 31 22 20 66 75 6e 63 5f  _file "$1" func_
1ad40 63 6f 6e 76 65 72 74 5f 66 69 6c 65 5f 6d 73 79  convert_file_msy
1ad50 73 5f 74 6f 5f 77 33 32 0a 20 20 66 75 6e 63 5f  s_to_w32.  func_
1ad60 63 79 67 6d 69 6e 67 5f 6d 73 5f 69 6d 70 6c 69  cygming_ms_impli
1ad70 62 5f 74 6d 70 3d 60 24 4e 4d 20 22 24 66 75 6e  b_tmp=`$NM "$fun
1ad80 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 5f 72  c_to_tool_file_r
1ad90 65 73 75 6c 74 22 20 7c 20 65 76 61 6c 20 22 24  esult" | eval "$
1ada0 67 6c 6f 62 61 6c 5f 73 79 6d 62 6f 6c 5f 70 69  global_symbol_pi
1adb0 70 65 22 20 7c 20 24 47 52 45 50 20 27 5f 4e 55  pe" | $GREP '_NU
1adc0 4c 4c 5f 49 4d 50 4f 52 54 5f 44 45 53 43 52 49  LL_IMPORT_DESCRI
1add0 50 54 4f 52 27 60 0a 20 20 74 65 73 74 20 2d 6e  PTOR'`.  test -n
1ade0 20 22 24 66 75 6e 63 5f 63 79 67 6d 69 6e 67 5f   "$func_cygming_
1adf0 6d 73 5f 69 6d 70 6c 69 62 5f 74 6d 70 22 0a 7d  ms_implib_tmp".}
1ae00 0a 0a 23 20 66 75 6e 63 5f 63 79 67 6d 69 6e 67  ..# func_cygming
1ae10 5f 64 6c 6c 5f 66 6f 72 5f 69 6d 70 6c 69 62 5f  _dll_for_implib_
1ae20 66 61 6c 6c 62 61 63 6b 20 41 52 47 0a 23 20 50  fallback ARG.# P
1ae30 6c 61 74 66 6f 72 6d 2d 73 70 65 63 69 66 69 63  latform-specific
1ae40 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 65 78 74   function to ext
1ae50 72 61 63 74 20 74 68 65 0a 23 20 6e 61 6d 65 20  ract the.# name 
1ae60 6f 66 20 74 68 65 20 44 4c 4c 20 61 73 73 6f 63  of the DLL assoc
1ae70 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 73  iated with the s
1ae80 70 65 63 69 66 69 65 64 0a 23 20 69 6d 70 6f 72  pecified.# impor
1ae90 74 20 6c 69 62 72 61 72 79 20 41 52 47 2e 0a 23  t library ARG..#
1aea0 0a 23 20 54 68 69 73 20 66 61 6c 6c 62 61 63 6b  .# This fallback
1aeb0 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20   implementation 
1aec0 69 73 20 66 6f 72 20 75 73 65 20 77 68 65 6e 20  is for use when 
1aed0 24 44 4c 4c 54 4f 4f 4c 0a 23 20 64 6f 65 73 20  $DLLTOOL.# does 
1aee0 6e 6f 74 20 73 75 70 70 6f 72 74 20 74 68 65 20  not support the 
1aef0 2d 2d 69 64 65 6e 74 69 66 79 2d 73 74 72 69 63  --identify-stric
1af00 74 20 6f 70 74 69 6f 6e 2e 0a 23 20 49 6e 76 6f  t option..# Invo
1af10 6b 65 64 20 62 79 20 65 76 61 6c 27 69 6e 67 20  ked by eval'ing 
1af20 74 68 65 20 6c 69 62 74 6f 6f 6c 20 76 61 72 69  the libtool vari
1af30 61 62 6c 65 0a 23 20 20 20 20 24 73 68 61 72 65  able.#    $share
1af40 64 6c 69 62 5f 66 72 6f 6d 5f 6c 69 6e 6b 6c 69  dlib_from_linkli
1af50 62 5f 63 6d 64 0a 23 20 52 65 73 75 6c 74 20 69  b_cmd.# Result i
1af60 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74  s available in t
1af70 68 65 20 76 61 72 69 61 62 6c 65 0a 23 20 20 20  he variable.#   
1af80 20 24 73 68 61 72 65 64 6c 69 62 5f 66 72 6f 6d   $sharedlib_from
1af90 5f 6c 69 6e 6b 6c 69 62 5f 72 65 73 75 6c 74 0a  _linklib_result.
1afa0 66 75 6e 63 5f 63 79 67 6d 69 6e 67 5f 64 6c 6c  func_cygming_dll
1afb0 5f 66 6f 72 5f 69 6d 70 6c 69 62 5f 66 61 6c 6c  _for_implib_fall
1afc0 62 61 63 6b 20 28 29 0a 7b 0a 20 20 24 6f 70 74  back ().{.  $opt
1afd0 5f 64 65 62 75 67 0a 20 20 69 66 20 66 75 6e 63  _debug.  if func
1afe0 5f 63 79 67 6d 69 6e 67 5f 67 6e 75 5f 69 6d 70  _cygming_gnu_imp
1aff0 6c 69 62 5f 70 20 22 24 31 22 20 3b 20 74 68 65  lib_p "$1" ; the
1b000 6e 0a 20 20 20 20 23 20 62 69 6e 75 74 69 6c 73  n.    # binutils
1b010 20 69 6d 70 6f 72 74 20 6c 69 62 72 61 72 79 0a   import library.
1b020 20 20 20 20 73 68 61 72 65 64 6c 69 62 5f 66 72      sharedlib_fr
1b030 6f 6d 5f 6c 69 6e 6b 6c 69 62 5f 72 65 73 75 6c  om_linklib_resul
1b040 74 3d 60 66 75 6e 63 5f 63 79 67 6d 69 6e 67 5f  t=`func_cygming_
1b050 64 6c 6c 5f 66 6f 72 5f 69 6d 70 6c 69 62 5f 66  dll_for_implib_f
1b060 61 6c 6c 62 61 63 6b 5f 63 6f 72 65 20 27 2e 69  allback_core '.i
1b070 64 61 74 61 24 37 27 20 22 24 31 22 60 0a 20 20  data$7' "$1"`.  
1b080 65 6c 69 66 20 66 75 6e 63 5f 63 79 67 6d 69 6e  elif func_cygmin
1b090 67 5f 6d 73 5f 69 6d 70 6c 69 62 5f 70 20 22 24  g_ms_implib_p "$
1b0a0 31 22 20 3b 20 74 68 65 6e 0a 20 20 20 20 23 20  1" ; then.    # 
1b0b0 6d 73 2d 67 65 6e 65 72 61 74 65 64 20 69 6d 70  ms-generated imp
1b0c0 6f 72 74 20 6c 69 62 72 61 72 79 0a 20 20 20 20  ort library.    
1b0d0 73 68 61 72 65 64 6c 69 62 5f 66 72 6f 6d 5f 6c  sharedlib_from_l
1b0e0 69 6e 6b 6c 69 62 5f 72 65 73 75 6c 74 3d 60 66  inklib_result=`f
1b0f0 75 6e 63 5f 63 79 67 6d 69 6e 67 5f 64 6c 6c 5f  unc_cygming_dll_
1b100 66 6f 72 5f 69 6d 70 6c 69 62 5f 66 61 6c 6c 62  for_implib_fallb
1b110 61 63 6b 5f 63 6f 72 65 20 27 2e 69 64 61 74 61  ack_core '.idata
1b120 24 36 27 20 22 24 31 22 60 0a 20 20 65 6c 73 65  $6' "$1"`.  else
1b130 0a 20 20 20 20 23 20 75 6e 6b 6e 6f 77 6e 0a 20  .    # unknown. 
1b140 20 20 20 73 68 61 72 65 64 6c 69 62 5f 66 72 6f     sharedlib_fro
1b150 6d 5f 6c 69 6e 6b 6c 69 62 5f 72 65 73 75 6c 74  m_linklib_result
1b160 3d 22 22 0a 20 20 66 69 0a 7d 0a 0a 0a 23 20 66  ="".  fi.}...# f
1b170 75 6e 63 5f 65 78 74 72 61 63 74 5f 61 6e 5f 61  unc_extract_an_a
1b180 72 63 68 69 76 65 20 64 69 72 20 6f 6c 64 6c 69  rchive dir oldli
1b190 62 0a 66 75 6e 63 5f 65 78 74 72 61 63 74 5f 61  b.func_extract_a
1b1a0 6e 5f 61 72 63 68 69 76 65 20 28 29 0a 7b 0a 20  n_archive ().{. 
1b1b0 20 20 20 24 6f 70 74 5f 64 65 62 75 67 0a 20 20     $opt_debug.  
1b1c0 20 20 66 5f 65 78 5f 61 6e 5f 61 72 5f 64 69 72    f_ex_an_ar_dir
1b1d0 3d 22 24 31 22 3b 20 73 68 69 66 74 0a 20 20 20  ="$1"; shift.   
1b1e0 20 66 5f 65 78 5f 61 6e 5f 61 72 5f 6f 6c 64 6c   f_ex_an_ar_oldl
1b1f0 69 62 3d 22 24 31 22 0a 20 20 20 20 69 66 20 74  ib="$1".    if t
1b200 65 73 74 20 22 24 6c 6f 63 6b 5f 6f 6c 64 5f 61  est "$lock_old_a
1b210 72 63 68 69 76 65 5f 65 78 74 72 61 63 74 69 6f  rchive_extractio
1b220 6e 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20  n" = yes; then. 
1b230 20 20 20 20 20 6c 6f 63 6b 66 69 6c 65 3d 24 66       lockfile=$f
1b240 5f 65 78 5f 61 6e 5f 61 72 5f 6f 6c 64 6c 69 62  _ex_an_ar_oldlib
1b250 2e 6c 6f 63 6b 0a 20 20 20 20 20 20 75 6e 74 69  .lock.      unti
1b260 6c 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c  l $opt_dry_run |
1b270 7c 20 6c 6e 20 22 24 70 72 6f 67 70 61 74 68 22  | ln "$progpath"
1b280 20 22 24 6c 6f 63 6b 66 69 6c 65 22 20 32 3e 2f   "$lockfile" 2>/
1b290 64 65 76 2f 6e 75 6c 6c 3b 20 64 6f 0a 09 66 75  dev/null; do..fu
1b2a0 6e 63 5f 65 63 68 6f 20 22 57 61 69 74 69 6e 67  nc_echo "Waiting
1b2b0 20 66 6f 72 20 24 6c 6f 63 6b 66 69 6c 65 20 74   for $lockfile t
1b2c0 6f 20 62 65 20 72 65 6d 6f 76 65 64 22 0a 09 73  o be removed"..s
1b2d0 6c 65 65 70 20 32 0a 20 20 20 20 20 20 64 6f 6e  leep 2.      don
1b2e0 65 0a 20 20 20 20 66 69 0a 20 20 20 20 66 75 6e  e.    fi.    fun
1b2f0 63 5f 73 68 6f 77 5f 65 76 61 6c 20 22 28 63 64  c_show_eval "(cd
1b300 20 5c 24 66 5f 65 78 5f 61 6e 5f 61 72 5f 64 69   \$f_ex_an_ar_di
1b310 72 20 26 26 20 24 41 52 20 78 20 5c 22 5c 24 66  r && $AR x \"\$f
1b320 5f 65 78 5f 61 6e 5f 61 72 5f 6f 6c 64 6c 69 62  _ex_an_ar_oldlib
1b330 5c 22 29 22 20 5c 0a 09 09 20 20 20 27 73 74 61  \")" \...   'sta
1b340 74 3d 24 3f 3b 20 72 6d 20 2d 66 20 22 24 6c 6f  t=$?; rm -f "$lo
1b350 63 6b 66 69 6c 65 22 3b 20 65 78 69 74 20 24 73  ckfile"; exit $s
1b360 74 61 74 27 0a 20 20 20 20 69 66 20 74 65 73 74  tat'.    if test
1b370 20 22 24 6c 6f 63 6b 5f 6f 6c 64 5f 61 72 63 68   "$lock_old_arch
1b380 69 76 65 5f 65 78 74 72 61 63 74 69 6f 6e 22 20  ive_extraction" 
1b390 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20  = yes; then.    
1b3a0 20 20 24 6f 70 74 5f 64 72 79 5f 72 75 6e 20 7c    $opt_dry_run |
1b3b0 7c 20 72 6d 20 2d 66 20 22 24 6c 6f 63 6b 66 69  | rm -f "$lockfi
1b3c0 6c 65 22 0a 20 20 20 20 66 69 0a 20 20 20 20 69  le".    fi.    i
1b3d0 66 20 28 24 41 52 20 74 20 22 24 66 5f 65 78 5f  f ($AR t "$f_ex_
1b3e0 61 6e 5f 61 72 5f 6f 6c 64 6c 69 62 22 20 7c 20  an_ar_oldlib" | 
1b3f0 73 6f 72 74 20 7c 20 73 6f 72 74 20 2d 75 63 20  sort | sort -uc 
1b400 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 29  >/dev/null 2>&1)
1b410 3b 20 74 68 65 6e 0a 20 20 20 20 20 3a 0a 20 20  ; then.     :.  
1b420 20 20 65 6c 73 65 0a 20 20 20 20 20 20 66 75 6e    else.      fun
1b430 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 6f  c_fatal_error "o
1b440 62 6a 65 63 74 20 6e 61 6d 65 20 63 6f 6e 66 6c  bject name confl
1b450 69 63 74 73 20 69 6e 20 61 72 63 68 69 76 65 3a  icts in archive:
1b460 20 24 66 5f 65 78 5f 61 6e 5f 61 72 5f 64 69 72   $f_ex_an_ar_dir
1b470 2f 24 66 5f 65 78 5f 61 6e 5f 61 72 5f 6f 6c 64  /$f_ex_an_ar_old
1b480 6c 69 62 22 0a 20 20 20 20 66 69 0a 7d 0a 0a 0a  lib".    fi.}...
1b490 23 20 66 75 6e 63 5f 65 78 74 72 61 63 74 5f 61  # func_extract_a
1b4a0 72 63 68 69 76 65 73 20 67 65 6e 74 6f 70 20 6f  rchives gentop o
1b4b0 6c 64 6c 69 62 20 2e 2e 2e 0a 66 75 6e 63 5f 65  ldlib ....func_e
1b4c0 78 74 72 61 63 74 5f 61 72 63 68 69 76 65 73 20  xtract_archives 
1b4d0 28 29 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65  ().{.    $opt_de
1b4e0 62 75 67 0a 20 20 20 20 6d 79 5f 67 65 6e 74 6f  bug.    my_gento
1b4f0 70 3d 22 24 31 22 3b 20 73 68 69 66 74 0a 20 20  p="$1"; shift.  
1b500 20 20 6d 79 5f 6f 6c 64 6c 69 62 73 3d 24 7b 31    my_oldlibs=${1
1b510 2b 22 24 40 22 7d 0a 20 20 20 20 6d 79 5f 6f 6c  +"$@"}.    my_ol
1b520 64 6f 62 6a 73 3d 22 22 0a 20 20 20 20 6d 79 5f  dobjs="".    my_
1b530 78 6c 69 62 3d 22 22 0a 20 20 20 20 6d 79 5f 78  xlib="".    my_x
1b540 61 62 73 3d 22 22 0a 20 20 20 20 6d 79 5f 78 64  abs="".    my_xd
1b550 69 72 3d 22 22 0a 0a 20 20 20 20 66 6f 72 20 6d  ir=""..    for m
1b560 79 5f 78 6c 69 62 20 69 6e 20 24 6d 79 5f 6f 6c  y_xlib in $my_ol
1b570 64 6c 69 62 73 3b 20 64 6f 0a 20 20 20 20 20 20  dlibs; do.      
1b580 23 20 45 78 74 72 61 63 74 20 74 68 65 20 6f 62  # Extract the ob
1b590 6a 65 63 74 73 2e 0a 20 20 20 20 20 20 63 61 73  jects..      cas
1b5a0 65 20 24 6d 79 5f 78 6c 69 62 20 69 6e 0a 09 5b  e $my_xlib in..[
1b5b0 5c 5c 2f 5d 2a 20 7c 20 5b 41 2d 5a 61 2d 7a 5d  \\/]* | [A-Za-z]
1b5c0 3a 5b 5c 5c 2f 5d 2a 29 20 6d 79 5f 78 61 62 73  :[\\/]*) my_xabs
1b5d0 3d 22 24 6d 79 5f 78 6c 69 62 22 20 3b 3b 0a 09  ="$my_xlib" ;;..
1b5e0 2a 29 20 6d 79 5f 78 61 62 73 3d 60 70 77 64 60  *) my_xabs=`pwd`
1b5f0 22 2f 24 6d 79 5f 78 6c 69 62 22 20 3b 3b 0a 20  "/$my_xlib" ;;. 
1b600 20 20 20 20 20 65 73 61 63 0a 20 20 20 20 20 20       esac.      
1b610 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22 24  func_basename "$
1b620 6d 79 5f 78 6c 69 62 22 0a 20 20 20 20 20 20 6d  my_xlib".      m
1b630 79 5f 78 6c 69 62 3d 22 24 66 75 6e 63 5f 62 61  y_xlib="$func_ba
1b640 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 20  sename_result". 
1b650 20 20 20 20 20 6d 79 5f 78 6c 69 62 5f 75 3d 24       my_xlib_u=$
1b660 6d 79 5f 78 6c 69 62 0a 20 20 20 20 20 20 77 68  my_xlib.      wh
1b670 69 6c 65 20 3a 3b 20 64 6f 0a 20 20 20 20 20 20  ile :; do.      
1b680 20 20 63 61 73 65 20 22 20 24 65 78 74 72 61 63    case " $extrac
1b690 74 65 64 5f 61 72 63 68 69 76 65 73 20 22 20 69  ted_archives " i
1b6a0 6e 0a 09 2a 22 20 24 6d 79 5f 78 6c 69 62 5f 75  n..*" $my_xlib_u
1b6b0 20 22 2a 29 0a 09 20 20 66 75 6e 63 5f 61 72 69   "*)..  func_ari
1b6c0 74 68 20 24 65 78 74 72 61 63 74 65 64 5f 73 65  th $extracted_se
1b6d0 72 69 61 6c 20 2b 20 31 0a 09 20 20 65 78 74 72  rial + 1..  extr
1b6e0 61 63 74 65 64 5f 73 65 72 69 61 6c 3d 24 66 75  acted_serial=$fu
1b6f0 6e 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a  nc_arith_result.
1b700 09 20 20 6d 79 5f 78 6c 69 62 5f 75 3d 6c 74 24  .  my_xlib_u=lt$
1b710 65 78 74 72 61 63 74 65 64 5f 73 65 72 69 61 6c  extracted_serial
1b720 2d 24 6d 79 5f 78 6c 69 62 20 3b 3b 0a 09 2a 29  -$my_xlib ;;..*)
1b730 20 62 72 65 61 6b 20 3b 3b 0a 09 65 73 61 63 0a   break ;;..esac.
1b740 20 20 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 20        done.     
1b750 20 65 78 74 72 61 63 74 65 64 5f 61 72 63 68 69   extracted_archi
1b760 76 65 73 3d 22 24 65 78 74 72 61 63 74 65 64 5f  ves="$extracted_
1b770 61 72 63 68 69 76 65 73 20 24 6d 79 5f 78 6c 69  archives $my_xli
1b780 62 5f 75 22 0a 20 20 20 20 20 20 6d 79 5f 78 64  b_u".      my_xd
1b790 69 72 3d 22 24 6d 79 5f 67 65 6e 74 6f 70 2f 24  ir="$my_gentop/$
1b7a0 6d 79 5f 78 6c 69 62 5f 75 22 0a 0a 20 20 20 20  my_xlib_u"..    
1b7b0 20 20 66 75 6e 63 5f 6d 6b 64 69 72 5f 70 20 22    func_mkdir_p "
1b7c0 24 6d 79 5f 78 64 69 72 22 0a 0a 20 20 20 20 20  $my_xdir"..     
1b7d0 20 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 20   case $host in. 
1b7e0 20 20 20 20 20 2a 2d 64 61 72 77 69 6e 2a 29 0a       *-darwin*).
1b7f0 09 66 75 6e 63 5f 76 65 72 62 6f 73 65 20 22 45  .func_verbose "E
1b800 78 74 72 61 63 74 69 6e 67 20 24 6d 79 5f 78 61  xtracting $my_xa
1b810 62 73 22 0a 09 23 20 44 6f 20 6e 6f 74 20 62 6f  bs"..# Do not bo
1b820 74 68 65 72 20 64 6f 69 6e 67 20 61 6e 79 74 68  ther doing anyth
1b830 69 6e 67 20 69 66 20 6a 75 73 74 20 61 20 64 72  ing if just a dr
1b840 79 20 72 75 6e 0a 09 24 6f 70 74 5f 64 72 79 5f  y run..$opt_dry_
1b850 72 75 6e 20 7c 7c 20 7b 0a 09 20 20 64 61 72 77  run || {..  darw
1b860 69 6e 5f 6f 72 69 67 5f 64 69 72 3d 60 70 77 64  in_orig_dir=`pwd
1b870 60 0a 09 20 20 63 64 20 24 6d 79 5f 78 64 69 72  `..  cd $my_xdir
1b880 20 7c 7c 20 65 78 69 74 20 24 3f 0a 09 20 20 64   || exit $?..  d
1b890 61 72 77 69 6e 5f 61 72 63 68 69 76 65 3d 24 6d  arwin_archive=$m
1b8a0 79 5f 78 61 62 73 0a 09 20 20 64 61 72 77 69 6e  y_xabs..  darwin
1b8b0 5f 63 75 72 64 69 72 3d 60 70 77 64 60 0a 09 20  _curdir=`pwd`.. 
1b8c0 20 64 61 72 77 69 6e 5f 62 61 73 65 5f 61 72 63   darwin_base_arc
1b8d0 68 69 76 65 3d 60 62 61 73 65 6e 61 6d 65 20 22  hive=`basename "
1b8e0 24 64 61 72 77 69 6e 5f 61 72 63 68 69 76 65 22  $darwin_archive"
1b8f0 60 0a 09 20 20 64 61 72 77 69 6e 5f 61 72 63 68  `..  darwin_arch
1b900 65 73 3d 60 24 4c 49 50 4f 20 2d 69 6e 66 6f 20  es=`$LIPO -info 
1b910 22 24 64 61 72 77 69 6e 5f 61 72 63 68 69 76 65  "$darwin_archive
1b920 22 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 20  " 2>/dev/null | 
1b930 24 47 52 45 50 20 41 72 63 68 69 74 65 63 74 75  $GREP Architectu
1b940 72 65 73 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20  res 2>/dev/null 
1b950 7c 7c 20 74 72 75 65 60 0a 09 20 20 69 66 20 74  || true`..  if t
1b960 65 73 74 20 2d 6e 20 22 24 64 61 72 77 69 6e 5f  est -n "$darwin_
1b970 61 72 63 68 65 73 22 3b 20 74 68 65 6e 0a 09 20  arches"; then.. 
1b980 20 20 20 64 61 72 77 69 6e 5f 61 72 63 68 65 73     darwin_arches
1b990 3d 60 24 45 43 48 4f 20 22 24 64 61 72 77 69 6e  =`$ECHO "$darwin
1b9a0 5f 61 72 63 68 65 73 22 20 7c 20 24 53 45 44 20  _arches" | $SED 
1b9b0 2d 65 20 27 73 2f 2e 2a 61 72 65 3a 2f 2f 27 60  -e 's/.*are://'`
1b9c0 0a 09 20 20 20 20 64 61 72 77 69 6e 5f 61 72 63  ..    darwin_arc
1b9d0 68 3d 0a 09 20 20 20 20 66 75 6e 63 5f 76 65 72  h=..    func_ver
1b9e0 62 6f 73 65 20 22 24 64 61 72 77 69 6e 5f 62 61  bose "$darwin_ba
1b9f0 73 65 5f 61 72 63 68 69 76 65 20 68 61 73 20 6d  se_archive has m
1ba00 75 6c 74 69 70 6c 65 20 61 72 63 68 69 74 65 63  ultiple architec
1ba10 74 75 72 65 73 20 24 64 61 72 77 69 6e 5f 61 72  tures $darwin_ar
1ba20 63 68 65 73 22 0a 09 20 20 20 20 66 6f 72 20 64  ches"..    for d
1ba30 61 72 77 69 6e 5f 61 72 63 68 20 69 6e 20 20 24  arwin_arch in  $
1ba40 64 61 72 77 69 6e 5f 61 72 63 68 65 73 20 3b 20  darwin_arches ; 
1ba50 64 6f 0a 09 20 20 20 20 20 20 66 75 6e 63 5f 6d  do..      func_m
1ba60 6b 64 69 72 5f 70 20 22 75 6e 66 61 74 2d 24 24  kdir_p "unfat-$$
1ba70 2f 24 7b 64 61 72 77 69 6e 5f 62 61 73 65 5f 61  /${darwin_base_a
1ba80 72 63 68 69 76 65 7d 2d 24 7b 64 61 72 77 69 6e  rchive}-${darwin
1ba90 5f 61 72 63 68 7d 22 0a 09 20 20 20 20 20 20 24  _arch}"..      $
1baa0 4c 49 50 4f 20 2d 74 68 69 6e 20 24 64 61 72 77  LIPO -thin $darw
1bab0 69 6e 5f 61 72 63 68 20 2d 6f 75 74 70 75 74 20  in_arch -output 
1bac0 22 75 6e 66 61 74 2d 24 24 2f 24 7b 64 61 72 77  "unfat-$$/${darw
1bad0 69 6e 5f 62 61 73 65 5f 61 72 63 68 69 76 65 7d  in_base_archive}
1bae0 2d 24 7b 64 61 72 77 69 6e 5f 61 72 63 68 7d 2f  -${darwin_arch}/
1baf0 24 7b 64 61 72 77 69 6e 5f 62 61 73 65 5f 61 72  ${darwin_base_ar
1bb00 63 68 69 76 65 7d 22 20 22 24 7b 64 61 72 77 69  chive}" "${darwi
1bb10 6e 5f 61 72 63 68 69 76 65 7d 22 0a 09 20 20 20  n_archive}"..   
1bb20 20 20 20 63 64 20 22 75 6e 66 61 74 2d 24 24 2f     cd "unfat-$$/
1bb30 24 7b 64 61 72 77 69 6e 5f 62 61 73 65 5f 61 72  ${darwin_base_ar
1bb40 63 68 69 76 65 7d 2d 24 7b 64 61 72 77 69 6e 5f  chive}-${darwin_
1bb50 61 72 63 68 7d 22 0a 09 20 20 20 20 20 20 66 75  arch}"..      fu
1bb60 6e 63 5f 65 78 74 72 61 63 74 5f 61 6e 5f 61 72  nc_extract_an_ar
1bb70 63 68 69 76 65 20 22 60 70 77 64 60 22 20 22 24  chive "`pwd`" "$
1bb80 7b 64 61 72 77 69 6e 5f 62 61 73 65 5f 61 72 63  {darwin_base_arc
1bb90 68 69 76 65 7d 22 0a 09 20 20 20 20 20 20 63 64  hive}"..      cd
1bba0 20 22 24 64 61 72 77 69 6e 5f 63 75 72 64 69 72   "$darwin_curdir
1bbb0 22 0a 09 20 20 20 20 20 20 24 52 4d 20 22 75 6e  "..      $RM "un
1bbc0 66 61 74 2d 24 24 2f 24 7b 64 61 72 77 69 6e 5f  fat-$$/${darwin_
1bbd0 62 61 73 65 5f 61 72 63 68 69 76 65 7d 2d 24 7b  base_archive}-${
1bbe0 64 61 72 77 69 6e 5f 61 72 63 68 7d 2f 24 7b 64  darwin_arch}/${d
1bbf0 61 72 77 69 6e 5f 62 61 73 65 5f 61 72 63 68 69  arwin_base_archi
1bc00 76 65 7d 22 0a 09 20 20 20 20 64 6f 6e 65 20 23  ve}"..    done #
1bc10 20 24 64 61 72 77 69 6e 5f 61 72 63 68 65 73 0a   $darwin_arches.
1bc20 20 20 20 20 20 20 20 20 20 20 20 20 23 23 20 4f              ## O
1bc30 6b 61 79 20 6e 6f 77 20 77 65 27 76 65 20 61 20  kay now we've a 
1bc40 62 75 6e 63 68 20 6f 66 20 74 68 69 6e 20 6f 62  bunch of thin ob
1bc50 6a 65 63 74 73 2c 20 67 6f 74 74 61 20 66 61 74  jects, gotta fat
1bc60 74 65 6e 20 74 68 65 6d 20 75 70 20 3a 29 0a 09  ten them up :)..
1bc70 20 20 20 20 64 61 72 77 69 6e 5f 66 69 6c 65 6c      darwin_filel
1bc80 69 73 74 3d 60 66 69 6e 64 20 75 6e 66 61 74 2d  ist=`find unfat-
1bc90 24 24 20 2d 74 79 70 65 20 66 20 2d 6e 61 6d 65  $$ -type f -name
1bca0 20 5c 2a 2e 6f 20 2d 70 72 69 6e 74 20 2d 6f 20   \*.o -print -o 
1bcb0 2d 6e 61 6d 65 20 5c 2a 2e 6c 6f 20 2d 70 72 69  -name \*.lo -pri
1bcc0 6e 74 20 7c 20 24 53 45 44 20 2d 65 20 22 24 62  nt | $SED -e "$b
1bcd0 61 73 65 6e 61 6d 65 22 20 7c 20 73 6f 72 74 20  asename" | sort 
1bce0 2d 75 60 0a 09 20 20 20 20 64 61 72 77 69 6e 5f  -u`..    darwin_
1bcf0 66 69 6c 65 3d 0a 09 20 20 20 20 64 61 72 77 69  file=..    darwi
1bd00 6e 5f 66 69 6c 65 73 3d 0a 09 20 20 20 20 66 6f  n_files=..    fo
1bd10 72 20 64 61 72 77 69 6e 5f 66 69 6c 65 20 69 6e  r darwin_file in
1bd20 20 24 64 61 72 77 69 6e 5f 66 69 6c 65 6c 69 73   $darwin_filelis
1bd30 74 3b 20 64 6f 0a 09 20 20 20 20 20 20 64 61 72  t; do..      dar
1bd40 77 69 6e 5f 66 69 6c 65 73 3d 60 66 69 6e 64 20  win_files=`find 
1bd50 75 6e 66 61 74 2d 24 24 20 2d 6e 61 6d 65 20 24  unfat-$$ -name $
1bd60 64 61 72 77 69 6e 5f 66 69 6c 65 20 2d 70 72 69  darwin_file -pri
1bd70 6e 74 20 7c 20 73 6f 72 74 20 7c 20 24 4e 4c 32  nt | sort | $NL2
1bd80 53 50 60 0a 09 20 20 20 20 20 20 24 4c 49 50 4f  SP`..      $LIPO
1bd90 20 2d 63 72 65 61 74 65 20 2d 6f 75 74 70 75 74   -create -output
1bda0 20 22 24 64 61 72 77 69 6e 5f 66 69 6c 65 22 20   "$darwin_file" 
1bdb0 24 64 61 72 77 69 6e 5f 66 69 6c 65 73 0a 09 20  $darwin_files.. 
1bdc0 20 20 20 64 6f 6e 65 20 23 20 24 64 61 72 77 69     done # $darwi
1bdd0 6e 5f 66 69 6c 65 6c 69 73 74 0a 09 20 20 20 20  n_filelist..    
1bde0 24 52 4d 20 2d 72 66 20 75 6e 66 61 74 2d 24 24  $RM -rf unfat-$$
1bdf0 0a 09 20 20 20 20 63 64 20 22 24 64 61 72 77 69  ..    cd "$darwi
1be00 6e 5f 6f 72 69 67 5f 64 69 72 22 0a 09 20 20 65  n_orig_dir"..  e
1be10 6c 73 65 0a 09 20 20 20 20 63 64 20 24 64 61 72  lse..    cd $dar
1be20 77 69 6e 5f 6f 72 69 67 5f 64 69 72 0a 09 20 20  win_orig_dir..  
1be30 20 20 66 75 6e 63 5f 65 78 74 72 61 63 74 5f 61    func_extract_a
1be40 6e 5f 61 72 63 68 69 76 65 20 22 24 6d 79 5f 78  n_archive "$my_x
1be50 64 69 72 22 20 22 24 6d 79 5f 78 61 62 73 22 0a  dir" "$my_xabs".
1be60 09 20 20 66 69 20 23 20 24 64 61 72 77 69 6e 5f  .  fi # $darwin_
1be70 61 72 63 68 65 73 0a 09 7d 20 23 20 21 24 6f 70  arches..} # !$op
1be80 74 5f 64 72 79 5f 72 75 6e 0a 09 3b 3b 0a 20 20  t_dry_run..;;.  
1be90 20 20 20 20 2a 29 0a 20 20 20 20 20 20 20 20 66      *).        f
1bea0 75 6e 63 5f 65 78 74 72 61 63 74 5f 61 6e 5f 61  unc_extract_an_a
1beb0 72 63 68 69 76 65 20 22 24 6d 79 5f 78 64 69 72  rchive "$my_xdir
1bec0 22 20 22 24 6d 79 5f 78 61 62 73 22 0a 09 3b 3b  " "$my_xabs"..;;
1bed0 0a 20 20 20 20 20 20 65 73 61 63 0a 20 20 20 20  .      esac.    
1bee0 20 20 6d 79 5f 6f 6c 64 6f 62 6a 73 3d 22 24 6d    my_oldobjs="$m
1bef0 79 5f 6f 6c 64 6f 62 6a 73 20 22 60 66 69 6e 64  y_oldobjs "`find
1bf00 20 24 6d 79 5f 78 64 69 72 20 2d 6e 61 6d 65 20   $my_xdir -name 
1bf10 5c 2a 2e 24 6f 62 6a 65 78 74 20 2d 70 72 69 6e  \*.$objext -prin
1bf20 74 20 2d 6f 20 2d 6e 61 6d 65 20 5c 2a 2e 6c 6f  t -o -name \*.lo
1bf30 20 2d 70 72 69 6e 74 20 7c 20 73 6f 72 74 20 7c   -print | sort |
1bf40 20 24 4e 4c 32 53 50 60 0a 20 20 20 20 64 6f 6e   $NL2SP`.    don
1bf50 65 0a 0a 20 20 20 20 66 75 6e 63 5f 65 78 74 72  e..    func_extr
1bf60 61 63 74 5f 61 72 63 68 69 76 65 73 5f 72 65 73  act_archives_res
1bf70 75 6c 74 3d 22 24 6d 79 5f 6f 6c 64 6f 62 6a 73  ult="$my_oldobjs
1bf80 22 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f 65 6d 69  ".}...# func_emi
1bf90 74 5f 77 72 61 70 70 65 72 20 5b 61 72 67 3d 6e  t_wrapper [arg=n
1bfa0 6f 5d 0a 23 0a 23 20 45 6d 69 74 20 61 20 6c 69  o].#.# Emit a li
1bfb0 62 74 6f 6f 6c 20 77 72 61 70 70 65 72 20 73 63  btool wrapper sc
1bfc0 72 69 70 74 20 6f 6e 20 73 74 64 6f 75 74 2e 0a  ript on stdout..
1bfd0 23 20 44 6f 6e 27 74 20 64 69 72 65 63 74 6c 79  # Don't directly
1bfe0 20 6f 70 65 6e 20 61 20 66 69 6c 65 20 62 65 63   open a file bec
1bff0 61 75 73 65 20 77 65 20 6d 61 79 20 77 61 6e 74  ause we may want
1c000 20 74 6f 0a 23 20 69 6e 63 6f 72 70 6f 72 61 74   to.# incorporat
1c010 65 20 74 68 65 20 73 63 72 69 70 74 20 63 6f 6e  e the script con
1c020 74 65 6e 74 73 20 77 69 74 68 69 6e 20 61 20 63  tents within a c
1c030 79 67 77 69 6e 2f 6d 69 6e 67 77 0a 23 20 77 72  ygwin/mingw.# wr
1c040 61 70 70 65 72 20 65 78 65 63 75 74 61 62 6c 65  apper executable
1c050 2e 20 20 4d 75 73 74 20 4f 4e 4c 59 20 62 65 20  .  Must ONLY be 
1c060 63 61 6c 6c 65 64 20 66 72 6f 6d 20 77 69 74 68  called from with
1c070 69 6e 0a 23 20 66 75 6e 63 5f 6d 6f 64 65 5f 6c  in.# func_mode_l
1c080 69 6e 6b 20 62 65 63 61 75 73 65 20 69 74 20 64  ink because it d
1c090 65 70 65 6e 64 73 20 6f 6e 20 61 20 6e 75 6d 62  epends on a numb
1c0a0 65 72 20 6f 66 20 76 61 72 69 61 62 6c 65 73 0a  er of variables.
1c0b0 23 20 73 65 74 20 74 68 65 72 65 69 6e 2e 0a 23  # set therein..#
1c0c0 0a 23 20 41 52 47 20 69 73 20 74 68 65 20 76 61  .# ARG is the va
1c0d0 6c 75 65 20 74 68 61 74 20 74 68 65 20 57 52 41  lue that the WRA
1c0e0 50 50 45 52 5f 53 43 52 49 50 54 5f 42 45 4c 4f  PPER_SCRIPT_BELO
1c0f0 4e 47 53 5f 49 4e 5f 4f 42 4a 44 49 52 0a 23 20  NGS_IN_OBJDIR.# 
1c100 76 61 72 69 61 62 6c 65 20 77 69 6c 6c 20 74 61  variable will ta
1c110 6b 65 2e 20 20 49 66 20 27 79 65 73 27 2c 20 74  ke.  If 'yes', t
1c120 68 65 6e 20 74 68 65 20 65 6d 69 74 74 65 64 20  hen the emitted 
1c130 73 63 72 69 70 74 0a 23 20 77 69 6c 6c 20 61 73  script.# will as
1c140 73 75 6d 65 20 74 68 61 74 20 74 68 65 20 64 69  sume that the di
1c150 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68  rectory in which
1c160 20 69 74 20 69 73 20 73 74 6f 72 65 64 20 69 73   it is stored is
1c170 0a 23 20 74 68 65 20 24 6f 62 6a 64 69 72 20 64  .# the $objdir d
1c180 69 72 65 63 74 6f 72 79 2e 20 20 54 68 69 73 20  irectory.  This 
1c190 69 73 20 61 20 63 79 67 77 69 6e 2f 6d 69 6e 67  is a cygwin/ming
1c1a0 77 2d 73 70 65 63 69 66 69 63 0a 23 20 62 65 68  w-specific.# beh
1c1b0 61 76 69 6f 72 2e 0a 66 75 6e 63 5f 65 6d 69 74  avior..func_emit
1c1c0 5f 77 72 61 70 70 65 72 20 28 29 0a 7b 0a 09 66  _wrapper ().{..f
1c1d0 75 6e 63 5f 65 6d 69 74 5f 77 72 61 70 70 65 72  unc_emit_wrapper
1c1e0 5f 61 72 67 31 3d 24 7b 31 2d 6e 6f 7d 0a 0a 09  _arg1=${1-no}...
1c1f0 24 45 43 48 4f 20 22 5c 0a 23 21 20 24 53 48 45  $ECHO "\.#! $SHE
1c200 4c 4c 0a 0a 23 20 24 6f 75 74 70 75 74 20 2d 20  LL..# $output - 
1c210 74 65 6d 70 6f 72 61 72 79 20 77 72 61 70 70 65  temporary wrappe
1c220 72 20 73 63 72 69 70 74 20 66 6f 72 20 24 6f 62  r script for $ob
1c230 6a 64 69 72 2f 24 6f 75 74 70 75 74 6e 61 6d 65  jdir/$outputname
1c240 0a 23 20 47 65 6e 65 72 61 74 65 64 20 62 79 20  .# Generated by 
1c250 24 50 52 4f 47 52 41 4d 20 28 47 4e 55 20 24 50  $PROGRAM (GNU $P
1c260 41 43 4b 41 47 45 24 54 49 4d 45 53 54 41 4d 50  ACKAGE$TIMESTAMP
1c270 29 20 24 56 45 52 53 49 4f 4e 0a 23 0a 23 20 54  ) $VERSION.#.# T
1c280 68 65 20 24 6f 75 74 70 75 74 20 70 72 6f 67 72  he $output progr
1c290 61 6d 20 63 61 6e 6e 6f 74 20 62 65 20 64 69 72  am cannot be dir
1c2a0 65 63 74 6c 79 20 65 78 65 63 75 74 65 64 20 75  ectly executed u
1c2b0 6e 74 69 6c 20 61 6c 6c 20 74 68 65 20 6c 69 62  ntil all the lib
1c2c0 74 6f 6f 6c 0a 23 20 6c 69 62 72 61 72 69 65 73  tool.# libraries
1c2d0 20 74 68 61 74 20 69 74 20 64 65 70 65 6e 64 73   that it depends
1c2e0 20 6f 6e 20 61 72 65 20 69 6e 73 74 61 6c 6c 65   on are installe
1c2f0 64 2e 0a 23 0a 23 20 54 68 69 73 20 77 72 61 70  d..#.# This wrap
1c300 70 65 72 20 73 63 72 69 70 74 20 73 68 6f 75 6c  per script shoul
1c310 64 20 6e 65 76 65 72 20 62 65 20 6d 6f 76 65 64  d never be moved
1c320 20 6f 75 74 20 6f 66 20 74 68 65 20 62 75 69 6c   out of the buil
1c330 64 20 64 69 72 65 63 74 6f 72 79 2e 0a 23 20 49  d directory..# I
1c340 66 20 69 74 20 69 73 2c 20 69 74 20 77 69 6c 6c  f it is, it will
1c350 20 6e 6f 74 20 6f 70 65 72 61 74 65 20 63 6f 72   not operate cor
1c360 72 65 63 74 6c 79 2e 0a 0a 23 20 53 65 64 20 73  rectly...# Sed s
1c370 75 62 73 74 69 74 75 74 69 6f 6e 20 74 68 61 74  ubstitution that
1c380 20 68 65 6c 70 73 20 75 73 20 64 6f 20 72 6f 62   helps us do rob
1c390 75 73 74 20 71 75 6f 74 69 6e 67 2e 20 20 49 74  ust quoting.  It
1c3a0 20 62 61 63 6b 73 6c 61 73 68 69 66 69 65 73 0a   backslashifies.
1c3b0 23 20 6d 65 74 61 63 68 61 72 61 63 74 65 72 73  # metacharacters
1c3c0 20 74 68 61 74 20 61 72 65 20 73 74 69 6c 6c 20   that are still 
1c3d0 61 63 74 69 76 65 20 77 69 74 68 69 6e 20 64 6f  active within do
1c3e0 75 62 6c 65 2d 71 75 6f 74 65 64 20 73 74 72 69  uble-quoted stri
1c3f0 6e 67 73 2e 0a 73 65 64 5f 71 75 6f 74 65 5f 73  ngs..sed_quote_s
1c400 75 62 73 74 3d 27 24 73 65 64 5f 71 75 6f 74 65  ubst='$sed_quote
1c410 5f 73 75 62 73 74 27 0a 0a 23 20 42 65 20 42 6f  _subst'..# Be Bo
1c420 75 72 6e 65 20 63 6f 6d 70 61 74 69 62 6c 65 0a  urne compatible.
1c430 69 66 20 74 65 73 74 20 2d 6e 20 5c 22 5c 24 7b  if test -n \"\${
1c440 5a 53 48 5f 56 45 52 53 49 4f 4e 2b 73 65 74 7d  ZSH_VERSION+set}
1c450 5c 22 20 26 26 20 28 65 6d 75 6c 61 74 65 20 73  \" && (emulate s
1c460 68 29 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e  h) >/dev/null 2>
1c470 26 31 3b 20 74 68 65 6e 0a 20 20 65 6d 75 6c 61  &1; then.  emula
1c480 74 65 20 73 68 0a 20 20 4e 55 4c 4c 43 4d 44 3d  te sh.  NULLCMD=
1c490 3a 0a 20 20 23 20 5a 73 68 20 33 2e 78 20 61 6e  :.  # Zsh 3.x an
1c4a0 64 20 34 2e 78 20 70 65 72 66 6f 72 6d 73 20 77  d 4.x performs w
1c4b0 6f 72 64 20 73 70 6c 69 74 74 69 6e 67 20 6f 6e  ord splitting on
1c4c0 20 5c 24 7b 31 2b 5c 22 5c 24 40 5c 22 7d 2c 20   \${1+\"\$@\"}, 
1c4d0 77 68 69 63 68 0a 20 20 23 20 69 73 20 63 6f 6e  which.  # is con
1c4e0 74 72 61 72 79 20 74 6f 20 6f 75 72 20 75 73 61  trary to our usa
1c4f0 67 65 2e 20 20 44 69 73 61 62 6c 65 20 74 68 69  ge.  Disable thi
1c500 73 20 66 65 61 74 75 72 65 2e 0a 20 20 61 6c 69  s feature..  ali
1c510 61 73 20 2d 67 20 27 5c 24 7b 31 2b 5c 22 5c 24  as -g '\${1+\"\$
1c520 40 5c 22 7d 27 3d 27 5c 22 5c 24 40 5c 22 27 0a  @\"}'='\"\$@\"'.
1c530 20 20 73 65 74 6f 70 74 20 4e 4f 5f 47 4c 4f 42    setopt NO_GLOB
1c540 5f 53 55 42 53 54 0a 65 6c 73 65 0a 20 20 63 61  _SUBST.else.  ca
1c550 73 65 20 5c 60 28 73 65 74 20 2d 6f 29 20 32 3e  se \`(set -o) 2>
1c560 2f 64 65 76 2f 6e 75 6c 6c 5c 60 20 69 6e 20 2a  /dev/null\` in *
1c570 70 6f 73 69 78 2a 29 20 73 65 74 20 2d 6f 20 70  posix*) set -o p
1c580 6f 73 69 78 3b 3b 20 65 73 61 63 0a 66 69 0a 42  osix;; esac.fi.B
1c590 49 4e 5f 53 48 3d 78 70 67 34 3b 20 65 78 70 6f  IN_SH=xpg4; expo
1c5a0 72 74 20 42 49 4e 5f 53 48 20 23 20 66 6f 72 20  rt BIN_SH # for 
1c5b0 54 72 75 36 34 0a 44 55 41 4c 43 41 53 45 3d 31  Tru64.DUALCASE=1
1c5c0 3b 20 65 78 70 6f 72 74 20 44 55 41 4c 43 41 53  ; export DUALCAS
1c5d0 45 20 23 20 66 6f 72 20 4d 4b 53 20 73 68 0a 0a  E # for MKS sh..
1c5e0 23 20 54 68 65 20 48 50 2d 55 58 20 6b 73 68 20  # The HP-UX ksh 
1c5f0 61 6e 64 20 50 4f 53 49 58 20 73 68 65 6c 6c 20  and POSIX shell 
1c600 70 72 69 6e 74 20 74 68 65 20 74 61 72 67 65 74  print the target
1c610 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 73 74   directory to st
1c620 64 6f 75 74 0a 23 20 69 66 20 43 44 50 41 54 48  dout.# if CDPATH
1c630 20 69 73 20 73 65 74 2e 0a 28 75 6e 73 65 74 20   is set..(unset 
1c640 43 44 50 41 54 48 29 20 3e 2f 64 65 76 2f 6e 75  CDPATH) >/dev/nu
1c650 6c 6c 20 32 3e 26 31 20 26 26 20 75 6e 73 65 74  ll 2>&1 && unset
1c660 20 43 44 50 41 54 48 0a 0a 72 65 6c 69 6e 6b 5f   CDPATH..relink_
1c670 63 6f 6d 6d 61 6e 64 3d 5c 22 24 72 65 6c 69 6e  command=\"$relin
1c680 6b 5f 63 6f 6d 6d 61 6e 64 5c 22 0a 0a 23 20 54  k_command\"..# T
1c690 68 69 73 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20  his environment 
1c6a0 76 61 72 69 61 62 6c 65 20 64 65 74 65 72 6d 69  variable determi
1c6b0 6e 65 73 20 6f 75 72 20 6f 70 65 72 61 74 69 6f  nes our operatio
1c6c0 6e 20 6d 6f 64 65 2e 0a 69 66 20 74 65 73 74 20  n mode..if test 
1c6d0 5c 22 5c 24 6c 69 62 74 6f 6f 6c 5f 69 6e 73 74  \"\$libtool_inst
1c6e0 61 6c 6c 5f 6d 61 67 69 63 5c 22 20 3d 20 5c 22  all_magic\" = \"
1c6f0 24 6d 61 67 69 63 5c 22 3b 20 74 68 65 6e 0a 20  $magic\"; then. 
1c700 20 23 20 69 6e 73 74 61 6c 6c 20 6d 6f 64 65 20   # install mode 
1c710 6e 65 65 64 73 20 74 68 65 20 66 6f 6c 6c 6f 77  needs the follow
1c720 69 6e 67 20 76 61 72 69 61 62 6c 65 73 3a 0a 20  ing variables:. 
1c730 20 67 65 6e 65 72 61 74 65 64 5f 62 79 5f 6c 69   generated_by_li
1c740 62 74 6f 6f 6c 5f 76 65 72 73 69 6f 6e 3d 27 24  btool_version='$
1c750 6d 61 63 72 6f 5f 76 65 72 73 69 6f 6e 27 0a 20  macro_version'. 
1c760 20 6e 6f 74 69 6e 73 74 5f 64 65 70 6c 69 62 73   notinst_deplibs
1c770 3d 27 24 6e 6f 74 69 6e 73 74 5f 64 65 70 6c 69  ='$notinst_depli
1c780 62 73 27 0a 65 6c 73 65 0a 20 20 23 20 57 68 65  bs'.else.  # Whe
1c790 6e 20 77 65 20 61 72 65 20 73 6f 75 72 63 65 64  n we are sourced
1c7a0 20 69 6e 20 65 78 65 63 75 74 65 20 6d 6f 64 65   in execute mode
1c7b0 2c 20 5c 24 66 69 6c 65 20 61 6e 64 20 5c 24 45  , \$file and \$E
1c7c0 43 48 4f 20 61 72 65 20 61 6c 72 65 61 64 79 20  CHO are already 
1c7d0 73 65 74 2e 0a 20 20 69 66 20 74 65 73 74 20 5c  set..  if test \
1c7e0 22 5c 24 6c 69 62 74 6f 6f 6c 5f 65 78 65 63 75  "\$libtool_execu
1c7f0 74 65 5f 6d 61 67 69 63 5c 22 20 21 3d 20 5c 22  te_magic\" != \"
1c800 24 6d 61 67 69 63 5c 22 3b 20 74 68 65 6e 0a 20  $magic\"; then. 
1c810 20 20 20 66 69 6c 65 3d 5c 22 5c 24 30 5c 22 22     file=\"\$0\""
1c820 0a 0a 20 20 20 20 71 45 43 48 4f 3d 60 24 45 43  ..    qECHO=`$EC
1c830 48 4f 20 22 24 45 43 48 4f 22 20 7c 20 24 53 45  HO "$ECHO" | $SE
1c840 44 20 22 24 73 65 64 5f 71 75 6f 74 65 5f 73 75  D "$sed_quote_su
1c850 62 73 74 22 60 0a 20 20 20 20 24 45 43 48 4f 20  bst"`.    $ECHO 
1c860 22 5c 0a 0a 23 20 41 20 66 75 6e 63 74 69 6f 6e  "\..# A function
1c870 20 74 68 61 74 20 69 73 20 75 73 65 64 20 77 68   that is used wh
1c880 65 6e 20 74 68 65 72 65 20 69 73 20 6e 6f 20 70  en there is no p
1c890 72 69 6e 74 20 62 75 69 6c 74 69 6e 20 6f 72 20  rint builtin or 
1c8a0 70 72 69 6e 74 66 2e 0a 66 75 6e 63 5f 66 61 6c  printf..func_fal
1c8b0 6c 62 61 63 6b 5f 65 63 68 6f 20 28 29 0a 7b 0a  lback_echo ().{.
1c8c0 20 20 65 76 61 6c 20 27 63 61 74 20 3c 3c 5f 4c    eval 'cat <<_L
1c8d0 54 45 43 48 4f 5f 45 4f 46 0a 5c 24 31 0a 5f 4c  TECHO_EOF.\$1._L
1c8e0 54 45 43 48 4f 5f 45 4f 46 27 0a 7d 0a 20 20 20  TECHO_EOF'.}.   
1c8f0 20 45 43 48 4f 3d 5c 22 24 71 45 43 48 4f 5c 22   ECHO=\"$qECHO\"
1c900 0a 20 20 66 69 0a 0a 23 20 56 65 72 79 20 62 61  .  fi..# Very ba
1c910 73 69 63 20 6f 70 74 69 6f 6e 20 70 61 72 73 69  sic option parsi
1c920 6e 67 2e 20 54 68 65 73 65 20 6f 70 74 69 6f 6e  ng. These option
1c930 73 20 61 72 65 20 28 61 29 20 73 70 65 63 69 66  s are (a) specif
1c940 69 63 20 74 6f 0a 23 20 74 68 65 20 6c 69 62 74  ic to.# the libt
1c950 6f 6f 6c 20 77 72 61 70 70 65 72 2c 20 28 62 29  ool wrapper, (b)
1c960 20 61 72 65 20 69 64 65 6e 74 69 63 61 6c 20 62   are identical b
1c970 65 74 77 65 65 6e 20 74 68 65 20 77 72 61 70 70  etween the wrapp
1c980 65 72 0a 23 20 2f 73 63 72 69 70 74 2f 20 61 6e  er.# /script/ an
1c990 64 20 74 68 65 20 77 72 61 70 70 65 72 20 2f 65  d the wrapper /e
1c9a0 78 65 63 75 74 61 62 6c 65 2f 20 77 68 69 63 68  xecutable/ which
1c9b0 20 69 73 20 75 73 65 64 20 6f 6e 6c 79 20 6f 6e   is used only on
1c9c0 0a 23 20 77 69 6e 64 6f 77 73 20 70 6c 61 74 66  .# windows platf
1c9d0 6f 72 6d 73 2c 20 61 6e 64 20 28 63 29 20 61 6c  orms, and (c) al
1c9e0 6c 20 62 65 67 69 6e 20 77 69 74 68 20 74 68 65  l begin with the
1c9f0 20 73 74 72 69 6e 67 20 22 2d 2d 6c 74 2d 22 0a   string "--lt-".
1ca00 23 20 28 61 70 70 6c 69 63 61 74 69 6f 6e 20 70  # (application p
1ca10 72 6f 67 72 61 6d 73 20 61 72 65 20 75 6e 6c 69  rograms are unli
1ca20 6b 65 6c 79 20 74 6f 20 68 61 76 65 20 6f 70 74  kely to have opt
1ca30 69 6f 6e 73 20 77 68 69 63 68 20 6d 61 74 63 68  ions which match
1ca40 0a 23 20 74 68 69 73 20 70 61 74 74 65 72 6e 29  .# this pattern)
1ca50 2e 0a 23 0a 23 20 54 68 65 72 65 20 61 72 65 20  ..#.# There are 
1ca60 6f 6e 6c 79 20 74 77 6f 20 73 75 70 70 6f 72 74  only two support
1ca70 65 64 20 6f 70 74 69 6f 6e 73 3a 20 2d 2d 6c 74  ed options: --lt
1ca80 2d 64 65 62 75 67 20 61 6e 64 0a 23 20 2d 2d 6c  -debug and.# --l
1ca90 74 2d 64 75 6d 70 2d 73 63 72 69 70 74 2e 20 54  t-dump-script. T
1caa0 68 65 72 65 20 69 73 2c 20 64 65 6c 69 62 65 72  here is, deliber
1cab0 61 74 65 6c 79 2c 20 6e 6f 20 2d 2d 6c 74 2d 68  ately, no --lt-h
1cac0 65 6c 70 2e 0a 23 0a 23 20 54 68 65 20 66 69 72  elp..#.# The fir
1cad0 73 74 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74  st argument to t
1cae0 68 69 73 20 70 61 72 73 69 6e 67 20 66 75 6e 63  his parsing func
1caf0 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 74  tion should be t
1cb00 68 65 0a 23 20 73 63 72 69 70 74 27 73 20 24 30  he.# script's $0
1cb10 20 76 61 6c 75 65 2c 20 66 6f 6c 6c 6f 77 65 64   value, followed
1cb20 20 62 79 20 22 24 40 22 2e 0a 6c 74 5f 6f 70 74   by "$@"..lt_opt
1cb30 69 6f 6e 5f 64 65 62 75 67 3d 0a 66 75 6e 63 5f  ion_debug=.func_
1cb40 70 61 72 73 65 5f 6c 74 5f 6f 70 74 69 6f 6e 73  parse_lt_options
1cb50 20 28 29 0a 7b 0a 20 20 6c 74 5f 73 63 72 69 70   ().{.  lt_scrip
1cb60 74 5f 61 72 67 30 3d 5c 24 30 0a 20 20 73 68 69  t_arg0=\$0.  shi
1cb70 66 74 0a 20 20 66 6f 72 20 6c 74 5f 6f 70 74 0a  ft.  for lt_opt.
1cb80 20 20 64 6f 0a 20 20 20 20 63 61 73 65 20 5c 22    do.    case \"
1cb90 5c 24 6c 74 5f 6f 70 74 5c 22 20 69 6e 0a 20 20  \$lt_opt\" in.  
1cba0 20 20 2d 2d 6c 74 2d 64 65 62 75 67 29 20 6c 74    --lt-debug) lt
1cbb0 5f 6f 70 74 69 6f 6e 5f 64 65 62 75 67 3d 31 20  _option_debug=1 
1cbc0 3b 3b 0a 20 20 20 20 2d 2d 6c 74 2d 64 75 6d 70  ;;.    --lt-dump
1cbd0 2d 73 63 72 69 70 74 29 0a 20 20 20 20 20 20 20  -script).       
1cbe0 20 6c 74 5f 64 75 6d 70 5f 44 3d 5c 60 5c 24 45   lt_dump_D=\`\$E
1cbf0 43 48 4f 20 5c 22 58 5c 24 6c 74 5f 73 63 72 69  CHO \"X\$lt_scri
1cc00 70 74 5f 61 72 67 30 5c 22 20 7c 20 24 53 45 44  pt_arg0\" | $SED
1cc10 20 2d 65 20 27 73 2f 5e 58 2f 2f 27 20 2d 65 20   -e 's/^X//' -e 
1cc20 27 73 25 2f 5b 5e 2f 5d 2a 24 25 25 27 5c 60 0a  's%/[^/]*$%%'\`.
1cc30 20 20 20 20 20 20 20 20 74 65 73 74 20 5c 22 58          test \"X
1cc40 5c 24 6c 74 5f 64 75 6d 70 5f 44 5c 22 20 3d 20  \$lt_dump_D\" = 
1cc50 5c 22 58 5c 24 6c 74 5f 73 63 72 69 70 74 5f 61  \"X\$lt_script_a
1cc60 72 67 30 5c 22 20 26 26 20 6c 74 5f 64 75 6d 70  rg0\" && lt_dump
1cc70 5f 44 3d 2e 0a 20 20 20 20 20 20 20 20 6c 74 5f  _D=..        lt_
1cc80 64 75 6d 70 5f 46 3d 5c 60 5c 24 45 43 48 4f 20  dump_F=\`\$ECHO 
1cc90 5c 22 58 5c 24 6c 74 5f 73 63 72 69 70 74 5f 61  \"X\$lt_script_a
1cca0 72 67 30 5c 22 20 7c 20 24 53 45 44 20 2d 65 20  rg0\" | $SED -e 
1ccb0 27 73 2f 5e 58 2f 2f 27 20 2d 65 20 27 73 25 5e  's/^X//' -e 's%^
1ccc0 2e 2a 2f 25 25 27 5c 60 0a 20 20 20 20 20 20 20  .*/%%'\`.       
1ccd0 20 63 61 74 20 5c 22 5c 24 6c 74 5f 64 75 6d 70   cat \"\$lt_dump
1cce0 5f 44 2f 5c 24 6c 74 5f 64 75 6d 70 5f 46 5c 22  _D/\$lt_dump_F\"
1ccf0 0a 20 20 20 20 20 20 20 20 65 78 69 74 20 30 0a  .        exit 0.
1cd00 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 2d 2d 6c        ;;.    --l
1cd10 74 2d 2a 29 0a 20 20 20 20 20 20 20 20 5c 24 45  t-*).        \$E
1cd20 43 48 4f 20 5c 22 55 6e 72 65 63 6f 67 6e 69 7a  CHO \"Unrecogniz
1cd30 65 64 20 2d 2d 6c 74 2d 20 6f 70 74 69 6f 6e 3a  ed --lt- option:
1cd40 20 27 5c 24 6c 74 5f 6f 70 74 27 5c 22 20 31 3e   '\$lt_opt'\" 1>
1cd50 26 32 0a 20 20 20 20 20 20 20 20 65 78 69 74 20  &2.        exit 
1cd60 31 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 65  1.      ;;.    e
1cd70 73 61 63 0a 20 20 64 6f 6e 65 0a 0a 20 20 23 20  sac.  done..  # 
1cd80 50 72 69 6e 74 20 74 68 65 20 64 65 62 75 67 20  Print the debug 
1cd90 62 61 6e 6e 65 72 20 69 6d 6d 65 64 69 61 74 65  banner immediate
1cda0 6c 79 3a 0a 20 20 69 66 20 74 65 73 74 20 2d 6e  ly:.  if test -n
1cdb0 20 5c 22 5c 24 6c 74 5f 6f 70 74 69 6f 6e 5f 64   \"\$lt_option_d
1cdc0 65 62 75 67 5c 22 3b 20 74 68 65 6e 0a 20 20 20  ebug\"; then.   
1cdd0 20 65 63 68 6f 20 5c 22 24 7b 6f 75 74 70 75 74   echo \"${output
1cde0 6e 61 6d 65 7d 3a 24 7b 6f 75 74 70 75 74 7d 3a  name}:${output}:
1cdf0 5c 24 7b 4c 49 4e 45 4e 4f 7d 3a 20 6c 69 62 74  \${LINENO}: libt
1ce00 6f 6f 6c 20 77 72 61 70 70 65 72 20 28 47 4e 55  ool wrapper (GNU
1ce10 20 24 50 41 43 4b 41 47 45 24 54 49 4d 45 53 54   $PACKAGE$TIMEST
1ce20 41 4d 50 29 20 24 56 45 52 53 49 4f 4e 5c 22 20  AMP) $VERSION\" 
1ce30 31 3e 26 32 0a 20 20 66 69 0a 7d 0a 0a 23 20 55  1>&2.  fi.}..# U
1ce40 73 65 64 20 77 68 65 6e 20 2d 2d 6c 74 2d 64 65  sed when --lt-de
1ce50 62 75 67 2e 20 50 72 69 6e 74 73 20 69 74 73 20  bug. Prints its 
1ce60 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 73 74 64  arguments to std
1ce70 6f 75 74 0a 23 20 28 72 65 64 69 72 65 63 74 69  out.# (redirecti
1ce80 6f 6e 20 69 73 20 74 68 65 20 72 65 73 70 6f 6e  on is the respon
1ce90 73 69 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20  sibility of the 
1cea0 63 61 6c 6c 65 72 29 0a 66 75 6e 63 5f 6c 74 5f  caller).func_lt_
1ceb0 64 75 6d 70 5f 61 72 67 73 20 28 29 0a 7b 0a 20  dump_args ().{. 
1cec0 20 6c 74 5f 64 75 6d 70 5f 61 72 67 73 5f 4e 3d   lt_dump_args_N=
1ced0 31 3b 0a 20 20 66 6f 72 20 6c 74 5f 61 72 67 0a  1;.  for lt_arg.
1cee0 20 20 64 6f 0a 20 20 20 20 5c 24 45 43 48 4f 20    do.    \$ECHO 
1cef0 5c 22 24 7b 6f 75 74 70 75 74 6e 61 6d 65 7d 3a  \"${outputname}:
1cf00 24 7b 6f 75 74 70 75 74 7d 3a 5c 24 7b 4c 49 4e  ${output}:\${LIN
1cf10 45 4e 4f 7d 3a 20 6e 65 77 61 72 67 76 5b 5c 24  ENO}: newargv[\$
1cf20 6c 74 5f 64 75 6d 70 5f 61 72 67 73 5f 4e 5d 3a  lt_dump_args_N]:
1cf30 20 5c 24 6c 74 5f 61 72 67 5c 22 0a 20 20 20 20   \$lt_arg\".    
1cf40 6c 74 5f 64 75 6d 70 5f 61 72 67 73 5f 4e 3d 5c  lt_dump_args_N=\
1cf50 60 65 78 70 72 20 5c 24 6c 74 5f 64 75 6d 70 5f  `expr \$lt_dump_
1cf60 61 72 67 73 5f 4e 20 2b 20 31 5c 60 0a 20 20 64  args_N + 1\`.  d
1cf70 6f 6e 65 0a 7d 0a 0a 23 20 43 6f 72 65 20 66 75  one.}..# Core fu
1cf80 6e 63 74 69 6f 6e 20 66 6f 72 20 6c 61 75 6e 63  nction for launc
1cf90 68 69 6e 67 20 74 68 65 20 74 61 72 67 65 74 20  hing the target 
1cfa0 61 70 70 6c 69 63 61 74 69 6f 6e 0a 66 75 6e 63  application.func
1cfb0 5f 65 78 65 63 5f 70 72 6f 67 72 61 6d 5f 63 6f  _exec_program_co
1cfc0 72 65 20 28 29 0a 7b 0a 22 0a 20 20 63 61 73 65  re ().{.".  case
1cfd0 20 24 68 6f 73 74 20 69 6e 0a 20 20 23 20 42 61   $host in.  # Ba
1cfe0 63 6b 73 6c 61 73 68 65 73 20 73 65 70 61 72 61  ckslashes separa
1cff0 74 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f  te directories o
1d000 6e 20 70 6c 61 69 6e 20 77 69 6e 64 6f 77 73 0a  n plain windows.
1d010 20 20 2a 2d 2a 2d 6d 69 6e 67 77 20 7c 20 2a 2d    *-*-mingw | *-
1d020 2a 2d 6f 73 32 2a 20 7c 20 2a 2d 63 65 67 63 63  *-os2* | *-cegcc
1d030 2a 29 0a 20 20 20 20 24 45 43 48 4f 20 22 5c 0a  *).    $ECHO "\.
1d040 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e        if test -n
1d050 20 5c 22 5c 24 6c 74 5f 6f 70 74 69 6f 6e 5f 64   \"\$lt_option_d
1d060 65 62 75 67 5c 22 3b 20 74 68 65 6e 0a 20 20 20  ebug\"; then.   
1d070 20 20 20 20 20 5c 24 45 43 48 4f 20 5c 22 24 7b       \$ECHO \"${
1d080 6f 75 74 70 75 74 6e 61 6d 65 7d 3a 24 7b 6f 75  outputname}:${ou
1d090 74 70 75 74 7d 3a 5c 24 7b 4c 49 4e 45 4e 4f 7d  tput}:\${LINENO}
1d0a0 3a 20 6e 65 77 61 72 67 76 5b 30 5d 3a 20 5c 24  : newargv[0]: \$
1d0b0 70 72 6f 67 64 69 72 5c 5c 5c 5c 5c 24 70 72 6f  progdir\\\\\$pro
1d0c0 67 72 61 6d 5c 22 20 31 3e 26 32 0a 20 20 20 20  gram\" 1>&2.    
1d0d0 20 20 20 20 66 75 6e 63 5f 6c 74 5f 64 75 6d 70      func_lt_dump
1d0e0 5f 61 72 67 73 20 5c 24 7b 31 2b 5c 22 5c 24 40  _args \${1+\"\$@
1d0f0 5c 22 7d 20 31 3e 26 32 0a 20 20 20 20 20 20 66  \"} 1>&2.      f
1d100 69 0a 20 20 20 20 20 20 65 78 65 63 20 5c 22 5c  i.      exec \"\
1d110 24 70 72 6f 67 64 69 72 5c 5c 5c 5c 5c 24 70 72  $progdir\\\\\$pr
1d120 6f 67 72 61 6d 5c 22 20 5c 24 7b 31 2b 5c 22 5c  ogram\" \${1+\"\
1d130 24 40 5c 22 7d 0a 22 0a 20 20 20 20 3b 3b 0a 0a  $@\"}.".    ;;..
1d140 20 20 2a 29 0a 20 20 20 20 24 45 43 48 4f 20 22    *).    $ECHO "
1d150 5c 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  \.      if test 
1d160 2d 6e 20 5c 22 5c 24 6c 74 5f 6f 70 74 69 6f 6e  -n \"\$lt_option
1d170 5f 64 65 62 75 67 5c 22 3b 20 74 68 65 6e 0a 20  _debug\"; then. 
1d180 20 20 20 20 20 20 20 5c 24 45 43 48 4f 20 5c 22         \$ECHO \"
1d190 24 7b 6f 75 74 70 75 74 6e 61 6d 65 7d 3a 24 7b  ${outputname}:${
1d1a0 6f 75 74 70 75 74 7d 3a 5c 24 7b 4c 49 4e 45 4e  output}:\${LINEN
1d1b0 4f 7d 3a 20 6e 65 77 61 72 67 76 5b 30 5d 3a 20  O}: newargv[0]: 
1d1c0 5c 24 70 72 6f 67 64 69 72 2f 5c 24 70 72 6f 67  \$progdir/\$prog
1d1d0 72 61 6d 5c 22 20 31 3e 26 32 0a 20 20 20 20 20  ram\" 1>&2.     
1d1e0 20 20 20 66 75 6e 63 5f 6c 74 5f 64 75 6d 70 5f     func_lt_dump_
1d1f0 61 72 67 73 20 5c 24 7b 31 2b 5c 22 5c 24 40 5c  args \${1+\"\$@\
1d200 22 7d 20 31 3e 26 32 0a 20 20 20 20 20 20 66 69  "} 1>&2.      fi
1d210 0a 20 20 20 20 20 20 65 78 65 63 20 5c 22 5c 24  .      exec \"\$
1d220 70 72 6f 67 64 69 72 2f 5c 24 70 72 6f 67 72 61  progdir/\$progra
1d230 6d 5c 22 20 5c 24 7b 31 2b 5c 22 5c 24 40 5c 22  m\" \${1+\"\$@\"
1d240 7d 0a 22 0a 20 20 20 20 3b 3b 0a 20 20 65 73 61  }.".    ;;.  esa
1d250 63 0a 20 20 24 45 43 48 4f 20 22 5c 0a 20 20 20  c.  $ECHO "\.   
1d260 20 20 20 5c 24 45 43 48 4f 20 5c 22 5c 24 30 3a     \$ECHO \"\$0:
1d270 20 63 61 6e 6e 6f 74 20 65 78 65 63 20 5c 24 70   cannot exec \$p
1d280 72 6f 67 72 61 6d 20 5c 24 2a 5c 22 20 31 3e 26  rogram \$*\" 1>&
1d290 32 0a 20 20 20 20 20 20 65 78 69 74 20 31 0a 7d  2.      exit 1.}
1d2a0 0a 0a 23 20 41 20 66 75 6e 63 74 69 6f 6e 20 74  ..# A function t
1d2b0 6f 20 65 6e 63 61 70 73 75 6c 61 74 65 20 6c 61  o encapsulate la
1d2c0 75 6e 63 68 69 6e 67 20 74 68 65 20 74 61 72 67  unching the targ
1d2d0 65 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 23  et application.#
1d2e0 20 53 74 72 69 70 73 20 6f 70 74 69 6f 6e 73 20   Strips options 
1d2f0 69 6e 20 74 68 65 20 2d 2d 6c 74 2d 2a 20 6e 61  in the --lt-* na
1d300 6d 65 73 70 61 63 65 20 66 72 6f 6d 20 5c 24 40  mespace from \$@
1d310 20 61 6e 64 0a 23 20 6c 61 75 6e 63 68 65 73 20   and.# launches 
1d320 74 61 72 67 65 74 20 61 70 70 6c 69 63 61 74 69  target applicati
1d330 6f 6e 20 77 69 74 68 20 74 68 65 20 72 65 6d 61  on with the rema
1d340 69 6e 69 6e 67 20 61 72 67 75 6d 65 6e 74 73 2e  ining arguments.
1d350 0a 66 75 6e 63 5f 65 78 65 63 5f 70 72 6f 67 72  .func_exec_progr
1d360 61 6d 20 28 29 0a 7b 0a 20 20 63 61 73 65 20 5c  am ().{.  case \
1d370 22 20 5c 24 2a 20 5c 22 20 69 6e 0a 20 20 2a 5c  " \$* \" in.  *\
1d380 5c 20 2d 2d 6c 74 2d 2a 29 0a 20 20 20 20 66 6f  \ --lt-*).    fo
1d390 72 20 6c 74 5f 77 72 5f 61 72 67 0a 20 20 20 20  r lt_wr_arg.    
1d3a0 64 6f 0a 20 20 20 20 20 20 63 61 73 65 20 5c 24  do.      case \$
1d3b0 6c 74 5f 77 72 5f 61 72 67 20 69 6e 0a 20 20 20  lt_wr_arg in.   
1d3c0 20 20 20 2d 2d 6c 74 2d 2a 29 20 3b 3b 0a 20 20     --lt-*) ;;.  
1d3d0 20 20 20 20 2a 29 20 73 65 74 20 78 20 5c 22 5c      *) set x \"\
1d3e0 24 40 5c 22 20 5c 22 5c 24 6c 74 5f 77 72 5f 61  $@\" \"\$lt_wr_a
1d3f0 72 67 5c 22 3b 20 73 68 69 66 74 3b 3b 0a 20 20  rg\"; shift;;.  
1d400 20 20 20 20 65 73 61 63 0a 20 20 20 20 20 20 73      esac.      s
1d410 68 69 66 74 0a 20 20 20 20 64 6f 6e 65 20 3b 3b  hift.    done ;;
1d420 0a 20 20 65 73 61 63 0a 20 20 66 75 6e 63 5f 65  .  esac.  func_e
1d430 78 65 63 5f 70 72 6f 67 72 61 6d 5f 63 6f 72 65  xec_program_core
1d440 20 5c 24 7b 31 2b 5c 22 5c 24 40 5c 22 7d 0a 7d   \${1+\"\$@\"}.}
1d450 0a 0a 20 20 23 20 50 61 72 73 65 20 6f 70 74 69  ..  # Parse opti
1d460 6f 6e 73 0a 20 20 66 75 6e 63 5f 70 61 72 73 65  ons.  func_parse
1d470 5f 6c 74 5f 6f 70 74 69 6f 6e 73 20 5c 22 5c 24  _lt_options \"\$
1d480 30 5c 22 20 5c 24 7b 31 2b 5c 22 5c 24 40 5c 22  0\" \${1+\"\$@\"
1d490 7d 0a 0a 20 20 23 20 46 69 6e 64 20 74 68 65 20  }..  # Find the 
1d4a0 64 69 72 65 63 74 6f 72 79 20 74 68 61 74 20 74  directory that t
1d4b0 68 69 73 20 73 63 72 69 70 74 20 6c 69 76 65 73  his script lives
1d4c0 20 69 6e 2e 0a 20 20 74 68 69 73 64 69 72 3d 5c   in..  thisdir=\
1d4d0 60 5c 24 45 43 48 4f 20 5c 22 5c 24 66 69 6c 65  `\$ECHO \"\$file
1d4e0 5c 22 20 7c 20 24 53 45 44 20 27 73 25 2f 5b 5e  \" | $SED 's%/[^
1d4f0 2f 5d 2a 24 25 25 27 5c 60 0a 20 20 74 65 73 74  /]*$%%'\`.  test
1d500 20 5c 22 78 5c 24 74 68 69 73 64 69 72 5c 22 20   \"x\$thisdir\" 
1d510 3d 20 5c 22 78 5c 24 66 69 6c 65 5c 22 20 26 26  = \"x\$file\" &&
1d520 20 74 68 69 73 64 69 72 3d 2e 0a 0a 20 20 23 20   thisdir=...  # 
1d530 46 6f 6c 6c 6f 77 20 73 79 6d 62 6f 6c 69 63 20  Follow symbolic 
1d540 6c 69 6e 6b 73 20 75 6e 74 69 6c 20 77 65 20 67  links until we g
1d550 65 74 20 74 6f 20 74 68 65 20 72 65 61 6c 20 74  et to the real t
1d560 68 69 73 64 69 72 2e 0a 20 20 66 69 6c 65 3d 5c  hisdir..  file=\
1d570 60 6c 73 20 2d 6c 64 20 5c 22 5c 24 66 69 6c 65  `ls -ld \"\$file
1d580 5c 22 20 7c 20 24 53 45 44 20 2d 6e 20 27 73 2f  \" | $SED -n 's/
1d590 2e 2a 2d 3e 20 2f 2f 70 27 5c 60 0a 20 20 77 68  .*-> //p'\`.  wh
1d5a0 69 6c 65 20 74 65 73 74 20 2d 6e 20 5c 22 5c 24  ile test -n \"\$
1d5b0 66 69 6c 65 5c 22 3b 20 64 6f 0a 20 20 20 20 64  file\"; do.    d
1d5c0 65 73 74 64 69 72 3d 5c 60 5c 24 45 43 48 4f 20  estdir=\`\$ECHO 
1d5d0 5c 22 5c 24 66 69 6c 65 5c 22 20 7c 20 24 53 45  \"\$file\" | $SE
1d5e0 44 20 27 73 25 2f 5b 5e 2f 5d 2a 5c 24 25 25 27  D 's%/[^/]*\$%%'
1d5f0 5c 60 0a 0a 20 20 20 20 23 20 49 66 20 74 68 65  \`..    # If the
1d600 72 65 20 77 61 73 20 61 20 64 69 72 65 63 74 6f  re was a directo
1d610 72 79 20 63 6f 6d 70 6f 6e 65 6e 74 2c 20 74 68  ry component, th
1d620 65 6e 20 63 68 61 6e 67 65 20 74 68 69 73 64 69  en change thisdi
1d630 72 2e 0a 20 20 20 20 69 66 20 74 65 73 74 20 5c  r..    if test \
1d640 22 78 5c 24 64 65 73 74 64 69 72 5c 22 20 21 3d  "x\$destdir\" !=
1d650 20 5c 22 78 5c 24 66 69 6c 65 5c 22 3b 20 74 68   \"x\$file\"; th
1d660 65 6e 0a 20 20 20 20 20 20 63 61 73 65 20 5c 22  en.      case \"
1d670 5c 24 64 65 73 74 64 69 72 5c 22 20 69 6e 0a 20  \$destdir\" in. 
1d680 20 20 20 20 20 5b 5c 5c 5c 5c 2f 5d 2a 20 7c 20       [\\\\/]* | 
1d690 5b 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 5c 5c 2f 5d  [A-Za-z]:[\\\\/]
1d6a0 2a 29 20 74 68 69 73 64 69 72 3d 5c 22 5c 24 64  *) thisdir=\"\$d
1d6b0 65 73 74 64 69 72 5c 22 20 3b 3b 0a 20 20 20 20  estdir\" ;;.    
1d6c0 20 20 2a 29 20 74 68 69 73 64 69 72 3d 5c 22 5c    *) thisdir=\"\
1d6d0 24 74 68 69 73 64 69 72 2f 5c 24 64 65 73 74 64  $thisdir/\$destd
1d6e0 69 72 5c 22 20 3b 3b 0a 20 20 20 20 20 20 65 73  ir\" ;;.      es
1d6f0 61 63 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 66  ac.    fi..    f
1d700 69 6c 65 3d 5c 60 5c 24 45 43 48 4f 20 5c 22 5c  ile=\`\$ECHO \"\
1d710 24 66 69 6c 65 5c 22 20 7c 20 24 53 45 44 20 27  $file\" | $SED '
1d720 73 25 5e 2e 2a 2f 25 25 27 5c 60 0a 20 20 20 20  s%^.*/%%'\`.    
1d730 66 69 6c 65 3d 5c 60 6c 73 20 2d 6c 64 20 5c 22  file=\`ls -ld \"
1d740 5c 24 74 68 69 73 64 69 72 2f 5c 24 66 69 6c 65  \$thisdir/\$file
1d750 5c 22 20 7c 20 24 53 45 44 20 2d 6e 20 27 73 2f  \" | $SED -n 's/
1d760 2e 2a 2d 3e 20 2f 2f 70 27 5c 60 0a 20 20 64 6f  .*-> //p'\`.  do
1d770 6e 65 0a 0a 20 20 23 20 55 73 75 61 6c 6c 79 20  ne..  # Usually 
1d780 27 6e 6f 27 2c 20 65 78 63 65 70 74 20 6f 6e 20  'no', except on 
1d790 63 79 67 77 69 6e 2f 6d 69 6e 67 77 20 77 68 65  cygwin/mingw whe
1d7a0 6e 20 65 6d 62 65 64 64 65 64 20 69 6e 74 6f 0a  n embedded into.
1d7b0 20 20 23 20 74 68 65 20 63 77 72 61 70 70 65 72    # the cwrapper
1d7c0 2e 0a 20 20 57 52 41 50 50 45 52 5f 53 43 52 49  ..  WRAPPER_SCRI
1d7d0 50 54 5f 42 45 4c 4f 4e 47 53 5f 49 4e 5f 4f 42  PT_BELONGS_IN_OB
1d7e0 4a 44 49 52 3d 24 66 75 6e 63 5f 65 6d 69 74 5f  JDIR=$func_emit_
1d7f0 77 72 61 70 70 65 72 5f 61 72 67 31 0a 20 20 69  wrapper_arg1.  i
1d800 66 20 74 65 73 74 20 5c 22 5c 24 57 52 41 50 50  f test \"\$WRAPP
1d810 45 52 5f 53 43 52 49 50 54 5f 42 45 4c 4f 4e 47  ER_SCRIPT_BELONG
1d820 53 5f 49 4e 5f 4f 42 4a 44 49 52 5c 22 20 3d 20  S_IN_OBJDIR\" = 
1d830 5c 22 79 65 73 5c 22 3b 20 74 68 65 6e 0a 20 20  \"yes\"; then.  
1d840 20 20 23 20 73 70 65 63 69 61 6c 20 63 61 73 65    # special case
1d850 20 66 6f 72 20 27 2e 27 0a 20 20 20 20 69 66 20   for '.'.    if 
1d860 74 65 73 74 20 5c 22 5c 24 74 68 69 73 64 69 72  test \"\$thisdir
1d870 5c 22 20 3d 20 5c 22 2e 5c 22 3b 20 74 68 65 6e  \" = \".\"; then
1d880 0a 20 20 20 20 20 20 74 68 69 73 64 69 72 3d 5c  .      thisdir=\
1d890 60 70 77 64 5c 60 0a 20 20 20 20 66 69 0a 20 20  `pwd\`.    fi.  
1d8a0 20 20 23 20 72 65 6d 6f 76 65 20 2e 6c 69 62 73    # remove .libs
1d8b0 20 66 72 6f 6d 20 74 68 69 73 64 69 72 0a 20 20   from thisdir.  
1d8c0 20 20 63 61 73 65 20 5c 22 5c 24 74 68 69 73 64    case \"\$thisd
1d8d0 69 72 5c 22 20 69 6e 0a 20 20 20 20 2a 5b 5c 5c  ir\" in.    *[\\
1d8e0 5c 5c 2f 5d 24 6f 62 6a 64 69 72 20 29 20 74 68  \\/]$objdir ) th
1d8f0 69 73 64 69 72 3d 5c 60 5c 24 45 43 48 4f 20 5c  isdir=\`\$ECHO \
1d900 22 5c 24 74 68 69 73 64 69 72 5c 22 20 7c 20 24  "\$thisdir\" | $
1d910 53 45 44 20 27 73 25 5b 5c 5c 5c 5c 2f 5d 5b 5e  SED 's%[\\\\/][^
1d920 5c 5c 5c 5c 2f 5d 2a 24 25 25 27 5c 60 20 3b 3b  \\\\/]*$%%'\` ;;
1d930 0a 20 20 20 20 24 6f 62 6a 64 69 72 20 29 20 20  .    $objdir )  
1d940 20 74 68 69 73 64 69 72 3d 2e 20 3b 3b 0a 20 20   thisdir=. ;;.  
1d950 20 20 65 73 61 63 0a 20 20 66 69 0a 0a 20 20 23    esac.  fi..  #
1d960 20 54 72 79 20 74 6f 20 67 65 74 20 74 68 65 20   Try to get the 
1d970 61 62 73 6f 6c 75 74 65 20 64 69 72 65 63 74 6f  absolute directo
1d980 72 79 20 6e 61 6d 65 2e 0a 20 20 61 62 73 64 69  ry name..  absdi
1d990 72 3d 5c 60 63 64 20 5c 22 5c 24 74 68 69 73 64  r=\`cd \"\$thisd
1d9a0 69 72 5c 22 20 26 26 20 70 77 64 5c 60 0a 20 20  ir\" && pwd\`.  
1d9b0 74 65 73 74 20 2d 6e 20 5c 22 5c 24 61 62 73 64  test -n \"\$absd
1d9c0 69 72 5c 22 20 26 26 20 74 68 69 73 64 69 72 3d  ir\" && thisdir=
1d9d0 5c 22 5c 24 61 62 73 64 69 72 5c 22 0a 22 0a 0a  \"\$absdir\"."..
1d9e0 09 69 66 20 74 65 73 74 20 22 24 66 61 73 74 5f  .if test "$fast_
1d9f0 69 6e 73 74 61 6c 6c 22 20 3d 20 79 65 73 3b 20  install" = yes; 
1da00 74 68 65 6e 0a 09 20 20 24 45 43 48 4f 20 22 5c  then..  $ECHO "\
1da10 0a 20 20 70 72 6f 67 72 61 6d 3d 6c 74 2d 27 24  .  program=lt-'$
1da20 6f 75 74 70 75 74 6e 61 6d 65 27 24 65 78 65 65  outputname'$exee
1da30 78 74 0a 20 20 70 72 6f 67 64 69 72 3d 5c 22 5c  xt.  progdir=\"\
1da40 24 74 68 69 73 64 69 72 2f 24 6f 62 6a 64 69 72  $thisdir/$objdir
1da50 5c 22 0a 0a 20 20 69 66 20 74 65 73 74 20 21 20  \"..  if test ! 
1da60 2d 66 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c  -f \"\$progdir/\
1da70 24 70 72 6f 67 72 61 6d 5c 22 20 7c 7c 0a 20 20  $program\" ||.  
1da80 20 20 20 7b 20 66 69 6c 65 3d 5c 60 6c 73 20 2d     { file=\`ls -
1da90 31 64 74 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f  1dt \"\$progdir/
1daa0 5c 24 70 72 6f 67 72 61 6d 5c 22 20 5c 22 5c 24  \$program\" \"\$
1dab0 70 72 6f 67 64 69 72 2f 2e 2e 2f 5c 24 70 72 6f  progdir/../\$pro
1dac0 67 72 61 6d 5c 22 20 32 3e 2f 64 65 76 2f 6e 75  gram\" 2>/dev/nu
1dad0 6c 6c 20 7c 20 24 7b 53 45 44 7d 20 31 71 5c 60  ll | ${SED} 1q\`
1dae0 3b 20 5c 5c 0a 20 20 20 20 20 20 20 74 65 73 74  ; \\.       test
1daf0 20 5c 22 58 5c 24 66 69 6c 65 5c 22 20 21 3d 20   \"X\$file\" != 
1db00 5c 22 58 5c 24 70 72 6f 67 64 69 72 2f 5c 24 70  \"X\$progdir/\$p
1db10 72 6f 67 72 61 6d 5c 22 3b 20 7d 3b 20 74 68 65  rogram\"; }; the
1db20 6e 0a 0a 20 20 20 20 66 69 6c 65 3d 5c 22 5c 24  n..    file=\"\$
1db30 5c 24 2d 5c 24 70 72 6f 67 72 61 6d 5c 22 0a 0a  \$-\$program\"..
1db40 20 20 20 20 69 66 20 74 65 73 74 20 21 20 2d 64      if test ! -d
1db50 20 5c 22 5c 24 70 72 6f 67 64 69 72 5c 22 3b 20   \"\$progdir\"; 
1db60 74 68 65 6e 0a 20 20 20 20 20 20 24 4d 4b 44 49  then.      $MKDI
1db70 52 20 5c 22 5c 24 70 72 6f 67 64 69 72 5c 22 0a  R \"\$progdir\".
1db80 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 24      else.      $
1db90 52 4d 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c  RM \"\$progdir/\
1dba0 24 66 69 6c 65 5c 22 0a 20 20 20 20 66 69 22 0a  $file\".    fi".
1dbb0 0a 09 20 20 24 45 43 48 4f 20 22 5c 0a 0a 20 20  ..  $ECHO "\..  
1dbc0 20 20 23 20 72 65 6c 69 6e 6b 20 65 78 65 63 75    # relink execu
1dbd0 74 61 62 6c 65 20 69 66 20 6e 65 63 65 73 73 61  table if necessa
1dbe0 72 79 0a 20 20 20 20 69 66 20 74 65 73 74 20 2d  ry.    if test -
1dbf0 6e 20 5c 22 5c 24 72 65 6c 69 6e 6b 5f 63 6f 6d  n \"\$relink_com
1dc00 6d 61 6e 64 5c 22 3b 20 74 68 65 6e 0a 20 20 20  mand\"; then.   
1dc10 20 20 20 69 66 20 72 65 6c 69 6e 6b 5f 63 6f 6d     if relink_com
1dc20 6d 61 6e 64 5f 6f 75 74 70 75 74 3d 5c 60 65 76  mand_output=\`ev
1dc30 61 6c 20 5c 24 72 65 6c 69 6e 6b 5f 63 6f 6d 6d  al \$relink_comm
1dc40 61 6e 64 20 32 3e 26 31 5c 60 3b 20 74 68 65 6e  and 2>&1\`; then
1dc50 20 3a 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 24   :.      else..$
1dc60 45 43 48 4f 20 5c 22 5c 24 72 65 6c 69 6e 6b 5f  ECHO \"\$relink_
1dc70 63 6f 6d 6d 61 6e 64 5f 6f 75 74 70 75 74 5c 22  command_output\"
1dc80 20 3e 26 32 0a 09 24 52 4d 20 5c 22 5c 24 70 72   >&2..$RM \"\$pr
1dc90 6f 67 64 69 72 2f 5c 24 66 69 6c 65 5c 22 0a 09  ogdir/\$file\"..
1dca0 65 78 69 74 20 31 0a 20 20 20 20 20 20 66 69 0a  exit 1.      fi.
1dcb0 20 20 20 20 66 69 0a 0a 20 20 20 20 24 4d 56 20      fi..    $MV 
1dcc0 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c 24 66 69  \"\$progdir/\$fi
1dcd0 6c 65 5c 22 20 5c 22 5c 24 70 72 6f 67 64 69 72  le\" \"\$progdir
1dce0 2f 5c 24 70 72 6f 67 72 61 6d 5c 22 20 32 3e 2f  /\$program\" 2>/
1dcf0 64 65 76 2f 6e 75 6c 6c 20 7c 7c 0a 20 20 20 20  dev/null ||.    
1dd00 7b 20 24 52 4d 20 5c 22 5c 24 70 72 6f 67 64 69  { $RM \"\$progdi
1dd10 72 2f 5c 24 70 72 6f 67 72 61 6d 5c 22 3b 0a 20  r/\$program\";. 
1dd20 20 20 20 20 20 24 4d 56 20 5c 22 5c 24 70 72 6f       $MV \"\$pro
1dd30 67 64 69 72 2f 5c 24 66 69 6c 65 5c 22 20 5c 22  gdir/\$file\" \"
1dd40 5c 24 70 72 6f 67 64 69 72 2f 5c 24 70 72 6f 67  \$progdir/\$prog
1dd50 72 61 6d 5c 22 3b 20 7d 0a 20 20 20 20 24 52 4d  ram\"; }.    $RM
1dd60 20 5c 22 5c 24 70 72 6f 67 64 69 72 2f 5c 24 66   \"\$progdir/\$f
1dd70 69 6c 65 5c 22 0a 20 20 66 69 22 0a 09 65 6c 73  ile\".  fi"..els
1dd80 65 0a 09 20 20 24 45 43 48 4f 20 22 5c 0a 20 20  e..  $ECHO "\.  
1dd90 70 72 6f 67 72 61 6d 3d 27 24 6f 75 74 70 75 74  program='$output
1dda0 6e 61 6d 65 27 0a 20 20 70 72 6f 67 64 69 72 3d  name'.  progdir=
1ddb0 5c 22 5c 24 74 68 69 73 64 69 72 2f 24 6f 62 6a  \"\$thisdir/$obj
1ddc0 64 69 72 5c 22 0a 22 0a 09 66 69 0a 0a 09 24 45  dir\"."..fi...$E
1ddd0 43 48 4f 20 22 5c 0a 0a 20 20 69 66 20 74 65 73  CHO "\..  if tes
1dde0 74 20 2d 66 20 5c 22 5c 24 70 72 6f 67 64 69 72  t -f \"\$progdir
1ddf0 2f 5c 24 70 72 6f 67 72 61 6d 5c 22 3b 20 74 68  /\$program\"; th
1de00 65 6e 22 0a 0a 09 23 20 66 69 78 75 70 20 74 68  en"...# fixup th
1de10 65 20 64 6c 6c 20 73 65 61 72 63 68 70 61 74 68  e dll searchpath
1de20 20 69 66 20 77 65 20 6e 65 65 64 20 74 6f 2e 0a   if we need to..
1de30 09 23 0a 09 23 20 46 69 78 20 74 68 65 20 44 4c  .#..# Fix the DL
1de40 4c 20 73 65 61 72 63 68 70 61 74 68 20 69 66 20  L searchpath if 
1de50 77 65 20 6e 65 65 64 20 74 6f 2e 20 20 44 6f 20  we need to.  Do 
1de60 74 68 69 73 20 62 65 66 6f 72 65 20 70 72 65 70  this before prep
1de70 65 6e 64 69 6e 67 0a 09 23 20 74 6f 20 73 68 6c  ending..# to shl
1de80 69 62 70 61 74 68 2c 20 62 65 63 61 75 73 65 20  ibpath, because 
1de90 6f 6e 20 57 69 6e 64 6f 77 73 2c 20 62 6f 74 68  on Windows, both
1dea0 20 61 72 65 20 50 41 54 48 20 61 6e 64 20 75 6e   are PATH and un
1deb0 69 6e 73 74 61 6c 6c 65 64 0a 09 23 20 6c 69 62  installed..# lib
1dec0 72 61 72 69 65 73 20 6d 75 73 74 20 63 6f 6d 65  raries must come
1ded0 20 66 69 72 73 74 2e 0a 09 69 66 20 74 65 73 74   first...if test
1dee0 20 2d 6e 20 22 24 64 6c 6c 73 65 61 72 63 68 70   -n "$dllsearchp
1def0 61 74 68 22 3b 20 74 68 65 6e 0a 09 20 20 24 45  ath"; then..  $E
1df00 43 48 4f 20 22 5c 0a 20 20 20 20 23 20 41 64 64  CHO "\.    # Add
1df10 20 74 68 65 20 64 6c 6c 20 73 65 61 72 63 68 20   the dll search 
1df20 70 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 73 20  path components 
1df30 74 6f 20 74 68 65 20 65 78 65 63 75 74 61 62 6c  to the executabl
1df40 65 20 50 41 54 48 0a 20 20 20 20 50 41 54 48 3d  e PATH.    PATH=
1df50 24 64 6c 6c 73 65 61 72 63 68 70 61 74 68 3a 5c  $dllsearchpath:\
1df60 24 50 41 54 48 0a 22 0a 09 66 69 0a 0a 09 23 20  $PATH."..fi...# 
1df70 45 78 70 6f 72 74 20 6f 75 72 20 73 68 6c 69 62  Export our shlib
1df80 70 61 74 68 5f 76 61 72 20 69 66 20 77 65 20 68  path_var if we h
1df90 61 76 65 20 6f 6e 65 2e 0a 09 69 66 20 74 65 73  ave one...if tes
1dfa0 74 20 22 24 73 68 6c 69 62 70 61 74 68 5f 6f 76  t "$shlibpath_ov
1dfb0 65 72 72 69 64 65 73 5f 72 75 6e 70 61 74 68 22  errides_runpath"
1dfc0 20 3d 20 79 65 73 20 26 26 20 74 65 73 74 20 2d   = yes && test -
1dfd0 6e 20 22 24 73 68 6c 69 62 70 61 74 68 5f 76 61  n "$shlibpath_va
1dfe0 72 22 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24  r" && test -n "$
1dff0 74 65 6d 70 5f 72 70 61 74 68 22 3b 20 74 68 65  temp_rpath"; the
1e000 6e 0a 09 20 20 24 45 43 48 4f 20 22 5c 0a 20 20  n..  $ECHO "\.  
1e010 20 20 23 20 41 64 64 20 6f 75 72 20 6f 77 6e 20    # Add our own 
1e020 6c 69 62 72 61 72 79 20 70 61 74 68 20 74 6f 20  library path to 
1e030 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72 0a 20  $shlibpath_var. 
1e040 20 20 20 24 73 68 6c 69 62 70 61 74 68 5f 76 61     $shlibpath_va
1e050 72 3d 5c 22 24 74 65 6d 70 5f 72 70 61 74 68 5c  r=\"$temp_rpath\
1e060 24 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72 5c  $$shlibpath_var\
1e070 22 0a 0a 20 20 20 20 23 20 53 6f 6d 65 20 73 79  "..    # Some sy
1e080 73 74 65 6d 73 20 63 61 6e 6e 6f 74 20 63 6f 70  stems cannot cop
1e090 65 20 77 69 74 68 20 63 6f 6c 6f 6e 2d 74 65 72  e with colon-ter
1e0a0 6d 69 6e 61 74 65 64 20 24 73 68 6c 69 62 70 61  minated $shlibpa
1e0b0 74 68 5f 76 61 72 0a 20 20 20 20 23 20 54 68 65  th_var.    # The
1e0c0 20 73 65 63 6f 6e 64 20 63 6f 6c 6f 6e 20 69 73   second colon is
1e0d0 20 61 20 77 6f 72 6b 61 72 6f 75 6e 64 20 66 6f   a workaround fo
1e0e0 72 20 61 20 62 75 67 20 69 6e 20 42 65 4f 53 20  r a bug in BeOS 
1e0f0 52 34 20 73 65 64 0a 20 20 20 20 24 73 68 6c 69  R4 sed.    $shli
1e100 62 70 61 74 68 5f 76 61 72 3d 5c 60 5c 24 45 43  bpath_var=\`\$EC
1e110 48 4f 20 5c 22 5c 24 24 73 68 6c 69 62 70 61 74  HO \"\$$shlibpat
1e120 68 5f 76 61 72 5c 22 20 7c 20 24 53 45 44 20 27  h_var\" | $SED '
1e130 73 2f 3a 3a 2a 5c 24 2f 2f 27 5c 60 0a 0a 20 20  s/::*\$//'\`..  
1e140 20 20 65 78 70 6f 72 74 20 24 73 68 6c 69 62 70    export $shlibp
1e150 61 74 68 5f 76 61 72 0a 22 0a 09 66 69 0a 0a 09  ath_var."..fi...
1e160 24 45 43 48 4f 20 22 5c 0a 20 20 20 20 69 66 20  $ECHO "\.    if 
1e170 74 65 73 74 20 5c 22 5c 24 6c 69 62 74 6f 6f 6c  test \"\$libtool
1e180 5f 65 78 65 63 75 74 65 5f 6d 61 67 69 63 5c 22  _execute_magic\"
1e190 20 21 3d 20 5c 22 24 6d 61 67 69 63 5c 22 3b 20   != \"$magic\"; 
1e1a0 74 68 65 6e 0a 20 20 20 20 20 20 23 20 52 75 6e  then.      # Run
1e1b0 20 74 68 65 20 61 63 74 75 61 6c 20 70 72 6f 67   the actual prog
1e1c0 72 61 6d 20 77 69 74 68 20 6f 75 72 20 61 72 67  ram with our arg
1e1d0 75 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 66 75  uments..      fu
1e1e0 6e 63 5f 65 78 65 63 5f 70 72 6f 67 72 61 6d 20  nc_exec_program 
1e1f0 5c 24 7b 31 2b 5c 22 5c 24 40 5c 22 7d 0a 20 20  \${1+\"\$@\"}.  
1e200 20 20 66 69 0a 20 20 65 6c 73 65 0a 20 20 20 20    fi.  else.    
1e210 23 20 54 68 65 20 70 72 6f 67 72 61 6d 20 64 6f  # The program do
1e220 65 73 6e 27 74 20 65 78 69 73 74 2e 0a 20 20 20  esn't exist..   
1e230 20 5c 24 45 43 48 4f 20 5c 22 5c 24 30 3a 20 65   \$ECHO \"\$0: e
1e240 72 72 6f 72 3a 20 5c 5c 5c 60 5c 24 70 72 6f 67  rror: \\\`\$prog
1e250 64 69 72 2f 5c 24 70 72 6f 67 72 61 6d 27 20 64  dir/\$program' d
1e260 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 5c 22 20  oes not exist\" 
1e270 31 3e 26 32 0a 20 20 20 20 5c 24 45 43 48 4f 20  1>&2.    \$ECHO 
1e280 5c 22 54 68 69 73 20 73 63 72 69 70 74 20 69 73  \"This script is
1e290 20 6a 75 73 74 20 61 20 77 72 61 70 70 65 72 20   just a wrapper 
1e2a0 66 6f 72 20 5c 24 70 72 6f 67 72 61 6d 2e 5c 22  for \$program.\"
1e2b0 20 31 3e 26 32 0a 20 20 20 20 5c 24 45 43 48 4f   1>&2.    \$ECHO
1e2c0 20 5c 22 53 65 65 20 74 68 65 20 24 50 41 43 4b   \"See the $PACK
1e2d0 41 47 45 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  AGE documentatio
1e2e0 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72  n for more infor
1e2f0 6d 61 74 69 6f 6e 2e 5c 22 20 31 3e 26 32 0a 20  mation.\" 1>&2. 
1e300 20 20 20 65 78 69 74 20 31 0a 20 20 66 69 0a 66     exit 1.  fi.f
1e310 69 5c 0a 22 0a 7d 0a 0a 0a 23 20 66 75 6e 63 5f  i\.".}...# func_
1e320 65 6d 69 74 5f 63 77 72 61 70 70 65 72 65 78 65  emit_cwrapperexe
1e330 5f 73 72 63 0a 23 20 65 6d 69 74 20 74 68 65 20  _src.# emit the 
1e340 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20  source code for 
1e350 61 20 77 72 61 70 70 65 72 20 65 78 65 63 75 74  a wrapper execut
1e360 61 62 6c 65 20 6f 6e 20 73 74 64 6f 75 74 0a 23  able on stdout.#
1e370 20 4d 75 73 74 20 4f 4e 4c 59 20 62 65 20 63 61   Must ONLY be ca
1e380 6c 6c 65 64 20 66 72 6f 6d 20 77 69 74 68 69 6e  lled from within
1e390 20 66 75 6e 63 5f 6d 6f 64 65 5f 6c 69 6e 6b 20   func_mode_link 
1e3a0 62 65 63 61 75 73 65 0a 23 20 69 74 20 64 65 70  because.# it dep
1e3b0 65 6e 64 73 20 6f 6e 20 61 20 6e 75 6d 62 65 72  ends on a number
1e3c0 20 6f 66 20 76 61 72 69 61 62 6c 65 20 73 65 74   of variable set
1e3d0 20 74 68 65 72 65 69 6e 2e 0a 66 75 6e 63 5f 65   therein..func_e
1e3e0 6d 69 74 5f 63 77 72 61 70 70 65 72 65 78 65 5f  mit_cwrapperexe_
1e3f0 73 72 63 20 28 29 0a 7b 0a 09 63 61 74 20 3c 3c  src ().{..cat <<
1e400 45 4f 46 0a 0a 2f 2a 20 24 63 77 72 61 70 70 65  EOF../* $cwrappe
1e410 72 73 6f 75 72 63 65 20 2d 20 74 65 6d 70 6f 72  rsource - tempor
1e420 61 72 79 20 77 72 61 70 70 65 72 20 65 78 65 63  ary wrapper exec
1e430 75 74 61 62 6c 65 20 66 6f 72 20 24 6f 62 6a 64  utable for $objd
1e440 69 72 2f 24 6f 75 74 70 75 74 6e 61 6d 65 0a 20  ir/$outputname. 
1e450 20 20 47 65 6e 65 72 61 74 65 64 20 62 79 20 24    Generated by $
1e460 50 52 4f 47 52 41 4d 20 28 47 4e 55 20 24 50 41  PROGRAM (GNU $PA
1e470 43 4b 41 47 45 24 54 49 4d 45 53 54 41 4d 50 29  CKAGE$TIMESTAMP)
1e480 20 24 56 45 52 53 49 4f 4e 0a 0a 20 20 20 54 68   $VERSION..   Th
1e490 65 20 24 6f 75 74 70 75 74 20 70 72 6f 67 72 61  e $output progra
1e4a0 6d 20 63 61 6e 6e 6f 74 20 62 65 20 64 69 72 65  m cannot be dire
1e4b0 63 74 6c 79 20 65 78 65 63 75 74 65 64 20 75 6e  ctly executed un
1e4c0 74 69 6c 20 61 6c 6c 20 74 68 65 20 6c 69 62 74  til all the libt
1e4d0 6f 6f 6c 0a 20 20 20 6c 69 62 72 61 72 69 65 73  ool.   libraries
1e4e0 20 74 68 61 74 20 69 74 20 64 65 70 65 6e 64 73   that it depends
1e4f0 20 6f 6e 20 61 72 65 20 69 6e 73 74 61 6c 6c 65   on are installe
1e500 64 2e 0a 0a 20 20 20 54 68 69 73 20 77 72 61 70  d...   This wrap
1e510 70 65 72 20 65 78 65 63 75 74 61 62 6c 65 20 73  per executable s
1e520 68 6f 75 6c 64 20 6e 65 76 65 72 20 62 65 20 6d  hould never be m
1e530 6f 76 65 64 20 6f 75 74 20 6f 66 20 74 68 65 20  oved out of the 
1e540 62 75 69 6c 64 20 64 69 72 65 63 74 6f 72 79 2e  build directory.
1e550 0a 20 20 20 49 66 20 69 74 20 69 73 2c 20 69 74  .   If it is, it
1e560 20 77 69 6c 6c 20 6e 6f 74 20 6f 70 65 72 61 74   will not operat
1e570 65 20 63 6f 72 72 65 63 74 6c 79 2e 0a 2a 2f 0a  e correctly..*/.
1e580 45 4f 46 0a 09 20 20 20 20 63 61 74 20 3c 3c 22  EOF..    cat <<"
1e590 45 4f 46 22 0a 23 69 66 64 65 66 20 5f 4d 53 43  EOF".#ifdef _MSC
1e5a0 5f 56 45 52 0a 23 20 64 65 66 69 6e 65 20 5f 43  _VER.# define _C
1e5b0 52 54 5f 53 45 43 55 52 45 5f 4e 4f 5f 44 45 50  RT_SECURE_NO_DEP
1e5c0 52 45 43 41 54 45 20 31 0a 23 65 6e 64 69 66 0a  RECATE 1.#endif.
1e5d0 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e  #include <stdio.
1e5e0 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64  h>.#include <std
1e5f0 6c 69 62 2e 68 3e 0a 23 69 66 64 65 66 20 5f 4d  lib.h>.#ifdef _M
1e600 53 43 5f 56 45 52 0a 23 20 69 6e 63 6c 75 64 65  SC_VER.# include
1e610 20 3c 64 69 72 65 63 74 2e 68 3e 0a 23 20 69 6e   <direct.h>.# in
1e620 63 6c 75 64 65 20 3c 70 72 6f 63 65 73 73 2e 68  clude <process.h
1e630 3e 0a 23 20 69 6e 63 6c 75 64 65 20 3c 69 6f 2e  >.# include <io.
1e640 68 3e 0a 23 65 6c 73 65 0a 23 20 69 6e 63 6c 75  h>.#else.# inclu
1e650 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 20  de <unistd.h>.# 
1e660 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e  include <stdint.
1e670 68 3e 0a 23 20 69 66 64 65 66 20 5f 5f 43 59 47  h>.# ifdef __CYG
1e680 57 49 4e 5f 5f 0a 23 20 20 69 6e 63 6c 75 64 65  WIN__.#  include
1e690 20 3c 69 6f 2e 68 3e 0a 23 20 65 6e 64 69 66 0a   <io.h>.# endif.
1e6a0 23 65 6e 64 69 66 0a 23 69 6e 63 6c 75 64 65 20  #endif.#include 
1e6b0 3c 6d 61 6c 6c 6f 63 2e 68 3e 0a 23 69 6e 63 6c  <malloc.h>.#incl
1e6c0 75 64 65 20 3c 73 74 64 61 72 67 2e 68 3e 0a 23  ude <stdarg.h>.#
1e6d0 69 6e 63 6c 75 64 65 20 3c 61 73 73 65 72 74 2e  include <assert.
1e6e0 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 72  h>.#include <str
1e6f0 69 6e 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20  ing.h>.#include 
1e700 3c 63 74 79 70 65 2e 68 3e 0a 23 69 6e 63 6c 75  <ctype.h>.#inclu
1e710 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 0a 23 69 6e  de <errno.h>.#in
1e720 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 0a  clude <fcntl.h>.
1e730 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 73 74  #include <sys/st
1e740 61 74 2e 68 3e 0a 0a 2f 2a 20 64 65 63 6c 61 72  at.h>../* declar
1e750 61 74 69 6f 6e 73 20 6f 66 20 6e 6f 6e 2d 41 4e  ations of non-AN
1e760 53 49 20 66 75 6e 63 74 69 6f 6e 73 20 2a 2f 0a  SI functions */.
1e770 23 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 4d 49  #if defined(__MI
1e780 4e 47 57 33 32 5f 5f 29 0a 23 20 69 66 64 65 66  NGW32__).# ifdef
1e790 20 5f 5f 53 54 52 49 43 54 5f 41 4e 53 49 5f 5f   __STRICT_ANSI__
1e7a0 0a 69 6e 74 20 5f 70 75 74 65 6e 76 20 28 63 6f  .int _putenv (co
1e7b0 6e 73 74 20 63 68 61 72 20 2a 29 3b 0a 23 20 65  nst char *);.# e
1e7c0 6e 64 69 66 0a 23 65 6c 69 66 20 64 65 66 69 6e  ndif.#elif defin
1e7d0 65 64 28 5f 5f 43 59 47 57 49 4e 5f 5f 29 0a 23  ed(__CYGWIN__).#
1e7e0 20 69 66 64 65 66 20 5f 5f 53 54 52 49 43 54 5f   ifdef __STRICT_
1e7f0 41 4e 53 49 5f 5f 0a 63 68 61 72 20 2a 72 65 61  ANSI__.char *rea
1e800 6c 70 61 74 68 20 28 63 6f 6e 73 74 20 63 68 61  lpath (const cha
1e810 72 20 2a 2c 20 63 68 61 72 20 2a 29 3b 0a 69 6e  r *, char *);.in
1e820 74 20 70 75 74 65 6e 76 20 28 63 68 61 72 20 2a  t putenv (char *
1e830 29 3b 0a 69 6e 74 20 73 65 74 65 6e 76 20 28 63  );.int setenv (c
1e840 6f 6e 73 74 20 63 68 61 72 20 2a 2c 20 63 6f 6e  onst char *, con
1e850 73 74 20 63 68 61 72 20 2a 2c 20 69 6e 74 29 3b  st char *, int);
1e860 0a 23 20 65 6e 64 69 66 0a 2f 2a 20 23 65 6c 69  .# endif./* #eli
1e870 66 20 64 65 66 69 6e 65 64 20 28 6f 74 68 65 72  f defined (other
1e880 20 70 6c 61 74 66 6f 72 6d 73 29 20 2e 2e 2e 20   platforms) ... 
1e890 2a 2f 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 70 6f  */.#endif../* po
1e8a0 72 74 61 62 69 6c 69 74 79 20 64 65 66 69 6e 65  rtability define
1e8b0 73 2c 20 65 78 63 6c 75 64 69 6e 67 20 70 61 74  s, excluding pat
1e8c0 68 20 68 61 6e 64 6c 69 6e 67 20 6d 61 63 72 6f  h handling macro
1e8d0 73 20 2a 2f 0a 23 69 66 20 64 65 66 69 6e 65 64  s */.#if defined
1e8e0 28 5f 4d 53 43 5f 56 45 52 29 0a 23 20 64 65 66  (_MSC_VER).# def
1e8f0 69 6e 65 20 73 65 74 6d 6f 64 65 20 5f 73 65 74  ine setmode _set
1e900 6d 6f 64 65 0a 23 20 64 65 66 69 6e 65 20 73 74  mode.# define st
1e910 61 74 20 20 20 20 5f 73 74 61 74 0a 23 20 64 65  at    _stat.# de
1e920 66 69 6e 65 20 63 68 6d 6f 64 20 20 20 5f 63 68  fine chmod   _ch
1e930 6d 6f 64 0a 23 20 64 65 66 69 6e 65 20 67 65 74  mod.# define get
1e940 63 77 64 20 20 5f 67 65 74 63 77 64 0a 23 20 64  cwd  _getcwd.# d
1e950 65 66 69 6e 65 20 70 75 74 65 6e 76 20 20 5f 70  efine putenv  _p
1e960 75 74 65 6e 76 0a 23 20 64 65 66 69 6e 65 20 53  utenv.# define S
1e970 5f 49 58 55 53 52 20 5f 53 5f 49 45 58 45 43 0a  _IXUSR _S_IEXEC.
1e980 23 20 69 66 6e 64 65 66 20 5f 49 4e 54 50 54 52  # ifndef _INTPTR
1e990 5f 54 5f 44 45 46 49 4e 45 44 0a 23 20 20 64 65  _T_DEFINED.#  de
1e9a0 66 69 6e 65 20 5f 49 4e 54 50 54 52 5f 54 5f 44  fine _INTPTR_T_D
1e9b0 45 46 49 4e 45 44 0a 23 20 20 64 65 66 69 6e 65  EFINED.#  define
1e9c0 20 69 6e 74 70 74 72 5f 74 20 69 6e 74 0a 23 20   intptr_t int.# 
1e9d0 65 6e 64 69 66 0a 23 65 6c 69 66 20 64 65 66 69  endif.#elif defi
1e9e0 6e 65 64 28 5f 5f 4d 49 4e 47 57 33 32 5f 5f 29  ned(__MINGW32__)
1e9f0 0a 23 20 64 65 66 69 6e 65 20 73 65 74 6d 6f 64  .# define setmod
1ea00 65 20 5f 73 65 74 6d 6f 64 65 0a 23 20 64 65 66  e _setmode.# def
1ea10 69 6e 65 20 73 74 61 74 20 20 20 20 5f 73 74 61  ine stat    _sta
1ea20 74 0a 23 20 64 65 66 69 6e 65 20 63 68 6d 6f 64  t.# define chmod
1ea30 20 20 20 5f 63 68 6d 6f 64 0a 23 20 64 65 66 69     _chmod.# defi
1ea40 6e 65 20 67 65 74 63 77 64 20 20 5f 67 65 74 63  ne getcwd  _getc
1ea50 77 64 0a 23 20 64 65 66 69 6e 65 20 70 75 74 65  wd.# define pute
1ea60 6e 76 20 20 5f 70 75 74 65 6e 76 0a 23 65 6c 69  nv  _putenv.#eli
1ea70 66 20 64 65 66 69 6e 65 64 28 5f 5f 43 59 47 57  f defined(__CYGW
1ea80 49 4e 5f 5f 29 0a 23 20 64 65 66 69 6e 65 20 48  IN__).# define H
1ea90 41 56 45 5f 53 45 54 45 4e 56 0a 23 20 64 65 66  AVE_SETENV.# def
1eaa0 69 6e 65 20 46 4f 50 45 4e 5f 57 42 20 22 77 62  ine FOPEN_WB "wb
1eab0 22 0a 2f 2a 20 23 65 6c 69 66 20 64 65 66 69 6e  "./* #elif defin
1eac0 65 64 20 28 6f 74 68 65 72 20 70 6c 61 74 66 6f  ed (other platfo
1ead0 72 6d 73 29 20 2e 2e 2e 20 2a 2f 0a 23 65 6e 64  rms) ... */.#end
1eae0 69 66 0a 0a 23 69 66 20 64 65 66 69 6e 65 64 28  if..#if defined(
1eaf0 50 41 54 48 5f 4d 41 58 29 0a 23 20 64 65 66 69  PATH_MAX).# defi
1eb00 6e 65 20 4c 54 5f 50 41 54 48 4d 41 58 20 50 41  ne LT_PATHMAX PA
1eb10 54 48 5f 4d 41 58 0a 23 65 6c 69 66 20 64 65 66  TH_MAX.#elif def
1eb20 69 6e 65 64 28 4d 41 58 50 41 54 48 4c 45 4e 29  ined(MAXPATHLEN)
1eb30 0a 23 20 64 65 66 69 6e 65 20 4c 54 5f 50 41 54  .# define LT_PAT
1eb40 48 4d 41 58 20 4d 41 58 50 41 54 48 4c 45 4e 0a  HMAX MAXPATHLEN.
1eb50 23 65 6c 73 65 0a 23 20 64 65 66 69 6e 65 20 4c  #else.# define L
1eb60 54 5f 50 41 54 48 4d 41 58 20 31 30 32 34 0a 23  T_PATHMAX 1024.#
1eb70 65 6e 64 69 66 0a 0a 23 69 66 6e 64 65 66 20 53  endif..#ifndef S
1eb80 5f 49 58 4f 54 48 0a 23 20 64 65 66 69 6e 65 20  _IXOTH.# define 
1eb90 53 5f 49 58 4f 54 48 20 30 0a 23 65 6e 64 69 66  S_IXOTH 0.#endif
1eba0 0a 23 69 66 6e 64 65 66 20 53 5f 49 58 47 52 50  .#ifndef S_IXGRP
1ebb0 0a 23 20 64 65 66 69 6e 65 20 53 5f 49 58 47 52  .# define S_IXGR
1ebc0 50 20 30 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 70  P 0.#endif../* p
1ebd0 61 74 68 20 68 61 6e 64 6c 69 6e 67 20 70 6f 72  ath handling por
1ebe0 74 61 62 69 6c 69 74 79 20 6d 61 63 72 6f 73 20  tability macros 
1ebf0 2a 2f 0a 23 69 66 6e 64 65 66 20 44 49 52 5f 53  */.#ifndef DIR_S
1ec00 45 50 41 52 41 54 4f 52 0a 23 20 64 65 66 69 6e  EPARATOR.# defin
1ec10 65 20 44 49 52 5f 53 45 50 41 52 41 54 4f 52 20  e DIR_SEPARATOR 
1ec20 27 2f 27 0a 23 20 64 65 66 69 6e 65 20 50 41 54  '/'.# define PAT
1ec30 48 5f 53 45 50 41 52 41 54 4f 52 20 27 3a 27 0a  H_SEPARATOR ':'.
1ec40 23 65 6e 64 69 66 0a 0a 23 69 66 20 64 65 66 69  #endif..#if defi
1ec50 6e 65 64 20 28 5f 57 49 4e 33 32 29 20 7c 7c 20  ned (_WIN32) || 
1ec60 64 65 66 69 6e 65 64 20 28 5f 5f 4d 53 44 4f 53  defined (__MSDOS
1ec70 5f 5f 29 20 7c 7c 20 64 65 66 69 6e 65 64 20 28  __) || defined (
1ec80 5f 5f 44 4a 47 50 50 5f 5f 29 20 7c 7c 20 5c 0a  __DJGPP__) || \.
1ec90 20 20 64 65 66 69 6e 65 64 20 28 5f 5f 4f 53 32    defined (__OS2
1eca0 5f 5f 29 0a 23 20 64 65 66 69 6e 65 20 48 41 56  __).# define HAV
1ecb0 45 5f 44 4f 53 5f 42 41 53 45 44 5f 46 49 4c 45  E_DOS_BASED_FILE
1ecc0 5f 53 59 53 54 45 4d 0a 23 20 64 65 66 69 6e 65  _SYSTEM.# define
1ecd0 20 46 4f 50 45 4e 5f 57 42 20 22 77 62 22 0a 23   FOPEN_WB "wb".#
1ece0 20 69 66 6e 64 65 66 20 44 49 52 5f 53 45 50 41   ifndef DIR_SEPA
1ecf0 52 41 54 4f 52 5f 32 0a 23 20 20 64 65 66 69 6e  RATOR_2.#  defin
1ed00 65 20 44 49 52 5f 53 45 50 41 52 41 54 4f 52 5f  e DIR_SEPARATOR_
1ed10 32 20 27 5c 5c 27 0a 23 20 65 6e 64 69 66 0a 23  2 '\\'.# endif.#
1ed20 20 69 66 6e 64 65 66 20 50 41 54 48 5f 53 45 50   ifndef PATH_SEP
1ed30 41 52 41 54 4f 52 5f 32 0a 23 20 20 64 65 66 69  ARATOR_2.#  defi
1ed40 6e 65 20 50 41 54 48 5f 53 45 50 41 52 41 54 4f  ne PATH_SEPARATO
1ed50 52 5f 32 20 27 3b 27 0a 23 20 65 6e 64 69 66 0a  R_2 ';'.# endif.
1ed60 23 65 6e 64 69 66 0a 0a 23 69 66 6e 64 65 66 20  #endif..#ifndef 
1ed70 44 49 52 5f 53 45 50 41 52 41 54 4f 52 5f 32 0a  DIR_SEPARATOR_2.
1ed80 23 20 64 65 66 69 6e 65 20 49 53 5f 44 49 52 5f  # define IS_DIR_
1ed90 53 45 50 41 52 41 54 4f 52 28 63 68 29 20 28 28  SEPARATOR(ch) ((
1eda0 63 68 29 20 3d 3d 20 44 49 52 5f 53 45 50 41 52  ch) == DIR_SEPAR
1edb0 41 54 4f 52 29 0a 23 65 6c 73 65 20 2f 2a 20 44  ATOR).#else /* D
1edc0 49 52 5f 53 45 50 41 52 41 54 4f 52 5f 32 20 2a  IR_SEPARATOR_2 *
1edd0 2f 0a 23 20 64 65 66 69 6e 65 20 49 53 5f 44 49  /.# define IS_DI
1ede0 52 5f 53 45 50 41 52 41 54 4f 52 28 63 68 29 20  R_SEPARATOR(ch) 
1edf0 5c 0a 09 28 28 28 63 68 29 20 3d 3d 20 44 49 52  \..(((ch) == DIR
1ee00 5f 53 45 50 41 52 41 54 4f 52 29 20 7c 7c 20 28  _SEPARATOR) || (
1ee10 28 63 68 29 20 3d 3d 20 44 49 52 5f 53 45 50 41  (ch) == DIR_SEPA
1ee20 52 41 54 4f 52 5f 32 29 29 0a 23 65 6e 64 69 66  RATOR_2)).#endif
1ee30 20 2f 2a 20 44 49 52 5f 53 45 50 41 52 41 54 4f   /* DIR_SEPARATO
1ee40 52 5f 32 20 2a 2f 0a 0a 23 69 66 6e 64 65 66 20  R_2 */..#ifndef 
1ee50 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 5f 32  PATH_SEPARATOR_2
1ee60 0a 23 20 64 65 66 69 6e 65 20 49 53 5f 50 41 54  .# define IS_PAT
1ee70 48 5f 53 45 50 41 52 41 54 4f 52 28 63 68 29 20  H_SEPARATOR(ch) 
1ee80 28 28 63 68 29 20 3d 3d 20 50 41 54 48 5f 53 45  ((ch) == PATH_SE
1ee90 50 41 52 41 54 4f 52 29 0a 23 65 6c 73 65 20 2f  PARATOR).#else /
1eea0 2a 20 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52  * PATH_SEPARATOR
1eeb0 5f 32 20 2a 2f 0a 23 20 64 65 66 69 6e 65 20 49  _2 */.# define I
1eec0 53 5f 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52  S_PATH_SEPARATOR
1eed0 28 63 68 29 20 28 28 63 68 29 20 3d 3d 20 50 41  (ch) ((ch) == PA
1eee0 54 48 5f 53 45 50 41 52 41 54 4f 52 5f 32 29 0a  TH_SEPARATOR_2).
1eef0 23 65 6e 64 69 66 20 2f 2a 20 50 41 54 48 5f 53  #endif /* PATH_S
1ef00 45 50 41 52 41 54 4f 52 5f 32 20 2a 2f 0a 0a 23  EPARATOR_2 */..#
1ef10 69 66 6e 64 65 66 20 46 4f 50 45 4e 5f 57 42 0a  ifndef FOPEN_WB.
1ef20 23 20 64 65 66 69 6e 65 20 46 4f 50 45 4e 5f 57  # define FOPEN_W
1ef30 42 20 22 77 22 0a 23 65 6e 64 69 66 0a 23 69 66  B "w".#endif.#if
1ef40 6e 64 65 66 20 5f 4f 5f 42 49 4e 41 52 59 0a 23  ndef _O_BINARY.#
1ef50 20 64 65 66 69 6e 65 20 5f 4f 5f 42 49 4e 41 52   define _O_BINAR
1ef60 59 20 30 0a 23 65 6e 64 69 66 0a 0a 23 64 65 66  Y 0.#endif..#def
1ef70 69 6e 65 20 58 4d 41 4c 4c 4f 43 28 74 79 70 65  ine XMALLOC(type
1ef80 2c 20 6e 75 6d 29 20 20 20 20 20 20 28 28 74 79  , num)      ((ty
1ef90 70 65 20 2a 29 20 78 6d 61 6c 6c 6f 63 20 28 28  pe *) xmalloc ((
1efa0 6e 75 6d 29 20 2a 20 73 69 7a 65 6f 66 28 74 79  num) * sizeof(ty
1efb0 70 65 29 29 29 0a 23 64 65 66 69 6e 65 20 58 46  pe))).#define XF
1efc0 52 45 45 28 73 74 61 6c 65 29 20 64 6f 20 7b 20  REE(stale) do { 
1efd0 5c 0a 20 20 69 66 20 28 73 74 61 6c 65 29 20 7b  \.  if (stale) {
1efe0 20 66 72 65 65 20 28 28 76 6f 69 64 20 2a 29 20   free ((void *) 
1eff0 73 74 61 6c 65 29 3b 20 73 74 61 6c 65 20 3d 20  stale); stale = 
1f000 30 3b 20 7d 20 5c 0a 7d 20 77 68 69 6c 65 20 28  0; } \.} while (
1f010 30 29 0a 0a 23 69 66 20 64 65 66 69 6e 65 64 28  0)..#if defined(
1f020 4c 54 5f 44 45 42 55 47 57 52 41 50 50 45 52 29  LT_DEBUGWRAPPER)
1f030 0a 73 74 61 74 69 63 20 69 6e 74 20 6c 74 5f 64  .static int lt_d
1f040 65 62 75 67 20 3d 20 31 3b 0a 23 65 6c 73 65 0a  ebug = 1;.#else.
1f050 73 74 61 74 69 63 20 69 6e 74 20 6c 74 5f 64 65  static int lt_de
1f060 62 75 67 20 3d 20 30 3b 0a 23 65 6e 64 69 66 0a  bug = 0;.#endif.
1f070 0a 63 6f 6e 73 74 20 63 68 61 72 20 2a 70 72 6f  .const char *pro
1f080 67 72 61 6d 5f 6e 61 6d 65 20 3d 20 22 6c 69 62  gram_name = "lib
1f090 74 6f 6f 6c 2d 77 72 61 70 70 65 72 22 3b 20 2f  tool-wrapper"; /
1f0a0 2a 20 69 6e 20 63 61 73 65 20 78 73 74 72 64 75  * in case xstrdu
1f0b0 70 20 66 61 69 6c 73 20 2a 2f 0a 0a 76 6f 69 64  p fails */..void
1f0c0 20 2a 78 6d 61 6c 6c 6f 63 20 28 73 69 7a 65 5f   *xmalloc (size_
1f0d0 74 20 6e 75 6d 29 3b 0a 63 68 61 72 20 2a 78 73  t num);.char *xs
1f0e0 74 72 64 75 70 20 28 63 6f 6e 73 74 20 63 68 61  trdup (const cha
1f0f0 72 20 2a 73 74 72 69 6e 67 29 3b 0a 63 6f 6e 73  r *string);.cons
1f100 74 20 63 68 61 72 20 2a 62 61 73 65 5f 6e 61 6d  t char *base_nam
1f110 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e  e (const char *n
1f120 61 6d 65 29 3b 0a 63 68 61 72 20 2a 66 69 6e 64  ame);.char *find
1f130 5f 65 78 65 63 75 74 61 62 6c 65 20 28 63 6f 6e  _executable (con
1f140 73 74 20 63 68 61 72 20 2a 77 72 61 70 70 65 72  st char *wrapper
1f150 29 3b 0a 63 68 61 72 20 2a 63 68 61 73 65 5f 73  );.char *chase_s
1f160 79 6d 6c 69 6e 6b 73 20 28 63 6f 6e 73 74 20 63  ymlinks (const c
1f170 68 61 72 20 2a 70 61 74 68 73 70 65 63 29 3b 0a  har *pathspec);.
1f180 69 6e 74 20 6d 61 6b 65 5f 65 78 65 63 75 74 61  int make_executa
1f190 62 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20  ble (const char 
1f1a0 2a 70 61 74 68 29 3b 0a 69 6e 74 20 63 68 65 63  *path);.int chec
1f1b0 6b 5f 65 78 65 63 75 74 61 62 6c 65 20 28 63 6f  k_executable (co
1f1c0 6e 73 74 20 63 68 61 72 20 2a 70 61 74 68 29 3b  nst char *path);
1f1d0 0a 63 68 61 72 20 2a 73 74 72 65 6e 64 7a 61 70  .char *strendzap
1f1e0 20 28 63 68 61 72 20 2a 73 74 72 2c 20 63 6f 6e   (char *str, con
1f1f0 73 74 20 63 68 61 72 20 2a 70 61 74 29 3b 0a 76  st char *pat);.v
1f200 6f 69 64 20 6c 74 5f 64 65 62 75 67 70 72 69 6e  oid lt_debugprin
1f210 74 66 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a  tf (const char *
1f220 66 69 6c 65 2c 20 69 6e 74 20 6c 69 6e 65 2c 20  file, int line, 
1f230 63 6f 6e 73 74 20 63 68 61 72 20 2a 66 6d 74 2c  const char *fmt,
1f240 20 2e 2e 2e 29 3b 0a 76 6f 69 64 20 6c 74 5f 66   ...);.void lt_f
1f250 61 74 61 6c 20 28 63 6f 6e 73 74 20 63 68 61 72  atal (const char
1f260 20 2a 66 69 6c 65 2c 20 69 6e 74 20 6c 69 6e 65   *file, int line
1f270 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 65  , const char *me
1f280 73 73 61 67 65 2c 20 2e 2e 2e 29 3b 0a 73 74 61  ssage, ...);.sta
1f290 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a  tic const char *
1f2a0 6e 6f 6e 6e 75 6c 6c 20 28 63 6f 6e 73 74 20 63  nonnull (const c
1f2b0 68 61 72 20 2a 73 29 3b 0a 73 74 61 74 69 63 20  har *s);.static 
1f2c0 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 6f 6e 65  const char *none
1f2d0 6d 70 74 79 20 28 63 6f 6e 73 74 20 63 68 61 72  mpty (const char
1f2e0 20 2a 73 29 3b 0a 76 6f 69 64 20 6c 74 5f 73 65   *s);.void lt_se
1f2f0 74 65 6e 76 20 28 63 6f 6e 73 74 20 63 68 61 72  tenv (const char
1f300 20 2a 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 63 68   *name, const ch
1f310 61 72 20 2a 76 61 6c 75 65 29 3b 0a 63 68 61 72  ar *value);.char
1f320 20 2a 6c 74 5f 65 78 74 65 6e 64 5f 73 74 72 20   *lt_extend_str 
1f330 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6f 72 69  (const char *ori
1f340 67 5f 76 61 6c 75 65 2c 20 63 6f 6e 73 74 20 63  g_value, const c
1f350 68 61 72 20 2a 61 64 64 2c 20 69 6e 74 20 74 6f  har *add, int to
1f360 5f 65 6e 64 29 3b 0a 76 6f 69 64 20 6c 74 5f 75  _end);.void lt_u
1f370 70 64 61 74 65 5f 65 78 65 5f 70 61 74 68 20 28  pdate_exe_path (
1f380 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65  const char *name
1f390 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 76 61  , const char *va
1f3a0 6c 75 65 29 3b 0a 76 6f 69 64 20 6c 74 5f 75 70  lue);.void lt_up
1f3b0 64 61 74 65 5f 6c 69 62 5f 70 61 74 68 20 28 63  date_lib_path (c
1f3c0 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65 2c  onst char *name,
1f3d0 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 76 61 6c   const char *val
1f3e0 75 65 29 3b 0a 63 68 61 72 20 2a 2a 70 72 65 70  ue);.char **prep
1f3f0 61 72 65 5f 73 70 61 77 6e 20 28 63 68 61 72 20  are_spawn (char 
1f400 2a 2a 61 72 67 76 29 3b 0a 76 6f 69 64 20 6c 74  **argv);.void lt
1f410 5f 64 75 6d 70 5f 73 63 72 69 70 74 20 28 46 49  _dump_script (FI
1f420 4c 45 20 2a 66 29 3b 0a 45 4f 46 0a 0a 09 20 20  LE *f);.EOF...  
1f430 20 20 63 61 74 20 3c 3c 45 4f 46 0a 76 6f 6c 61    cat <<EOF.vola
1f440 74 69 6c 65 20 63 6f 6e 73 74 20 63 68 61 72 20  tile const char 
1f450 2a 20 4d 41 47 49 43 5f 45 58 45 20 3d 20 22 24  * MAGIC_EXE = "$
1f460 6d 61 67 69 63 5f 65 78 65 22 3b 0a 63 6f 6e 73  magic_exe";.cons
1f470 74 20 63 68 61 72 20 2a 20 4c 49 42 5f 50 41 54  t char * LIB_PAT
1f480 48 5f 56 41 52 4e 41 4d 45 20 3d 20 22 24 73 68  H_VARNAME = "$sh
1f490 6c 69 62 70 61 74 68 5f 76 61 72 22 3b 0a 45 4f  libpath_var";.EO
1f4a0 46 0a 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  F...    if test 
1f4b0 22 24 73 68 6c 69 62 70 61 74 68 5f 6f 76 65 72  "$shlibpath_over
1f4c0 72 69 64 65 73 5f 72 75 6e 70 61 74 68 22 20 3d  rides_runpath" =
1f4d0 20 79 65 73 20 26 26 20 74 65 73 74 20 2d 6e 20   yes && test -n 
1f4e0 22 24 73 68 6c 69 62 70 61 74 68 5f 76 61 72 22  "$shlibpath_var"
1f4f0 20 26 26 20 74 65 73 74 20 2d 6e 20 22 24 74 65   && test -n "$te
1f500 6d 70 5f 72 70 61 74 68 22 3b 20 74 68 65 6e 0a  mp_rpath"; then.
1f510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75                fu
1f520 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61 74 68 20  nc_to_host_path 
1f530 22 24 74 65 6d 70 5f 72 70 61 74 68 22 0a 09 20  "$temp_rpath".. 
1f540 20 20 20 20 20 63 61 74 20 3c 3c 45 4f 46 0a 63       cat <<EOF.c
1f550 6f 6e 73 74 20 63 68 61 72 20 2a 20 4c 49 42 5f  onst char * LIB_
1f560 50 41 54 48 5f 56 41 4c 55 45 20 20 20 3d 20 22  PATH_VALUE   = "
1f570 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70 61  $func_to_host_pa
1f580 74 68 5f 72 65 73 75 6c 74 22 3b 0a 45 4f 46 0a  th_result";.EOF.
1f590 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20  .    else..     
1f5a0 20 63 61 74 20 3c 3c 22 45 4f 46 22 0a 63 6f 6e   cat <<"EOF".con
1f5b0 73 74 20 63 68 61 72 20 2a 20 4c 49 42 5f 50 41  st char * LIB_PA
1f5c0 54 48 5f 56 41 4c 55 45 20 20 20 3d 20 22 22 3b  TH_VALUE   = "";
1f5d0 0a 45 4f 46 0a 09 20 20 20 20 66 69 0a 0a 09 20  .EOF..    fi... 
1f5e0 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
1f5f0 64 6c 6c 73 65 61 72 63 68 70 61 74 68 22 3b 20  dllsearchpath"; 
1f600 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20  then.           
1f610 20 20 20 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f     func_to_host_
1f620 70 61 74 68 20 22 24 64 6c 6c 73 65 61 72 63 68  path "$dllsearch
1f630 70 61 74 68 3a 22 0a 09 20 20 20 20 20 20 63 61  path:"..      ca
1f640 74 20 3c 3c 45 4f 46 0a 63 6f 6e 73 74 20 63 68  t <<EOF.const ch
1f650 61 72 20 2a 20 45 58 45 5f 50 41 54 48 5f 56 41  ar * EXE_PATH_VA
1f660 52 4e 41 4d 45 20 3d 20 22 50 41 54 48 22 3b 0a  RNAME = "PATH";.
1f670 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 45 58 45  const char * EXE
1f680 5f 50 41 54 48 5f 56 41 4c 55 45 20 20 20 3d 20  _PATH_VALUE   = 
1f690 22 24 66 75 6e 63 5f 74 6f 5f 68 6f 73 74 5f 70  "$func_to_host_p
1f6a0 61 74 68 5f 72 65 73 75 6c 74 22 3b 0a 45 4f 46  ath_result";.EOF
1f6b0 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20  ..    else..    
1f6c0 20 20 63 61 74 20 3c 3c 22 45 4f 46 22 0a 63 6f    cat <<"EOF".co
1f6d0 6e 73 74 20 63 68 61 72 20 2a 20 45 58 45 5f 50  nst char * EXE_P
1f6e0 41 54 48 5f 56 41 52 4e 41 4d 45 20 3d 20 22 22  ATH_VARNAME = ""
1f6f0 3b 0a 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 45  ;.const char * E
1f700 58 45 5f 50 41 54 48 5f 56 41 4c 55 45 20 20 20  XE_PATH_VALUE   
1f710 3d 20 22 22 3b 0a 45 4f 46 0a 09 20 20 20 20 66  = "";.EOF..    f
1f720 69 0a 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  i...    if test 
1f730 22 24 66 61 73 74 5f 69 6e 73 74 61 6c 6c 22 20  "$fast_install" 
1f740 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20 20  = yes; then..   
1f750 20 20 20 63 61 74 20 3c 3c 45 4f 46 0a 63 6f 6e     cat <<EOF.con
1f760 73 74 20 63 68 61 72 20 2a 20 54 41 52 47 45 54  st char * TARGET
1f770 5f 50 52 4f 47 52 41 4d 5f 4e 41 4d 45 20 3d 20  _PROGRAM_NAME = 
1f780 22 6c 74 2d 24 6f 75 74 70 75 74 6e 61 6d 65 22  "lt-$outputname"
1f790 3b 20 2f 2a 20 68 6f 70 65 66 75 6c 6c 79 2c 20  ; /* hopefully, 
1f7a0 6e 6f 20 2e 65 78 65 20 2a 2f 0a 45 4f 46 0a 09  no .exe */.EOF..
1f7b0 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20      else..      
1f7c0 63 61 74 20 3c 3c 45 4f 46 0a 63 6f 6e 73 74 20  cat <<EOF.const 
1f7d0 63 68 61 72 20 2a 20 54 41 52 47 45 54 5f 50 52  char * TARGET_PR
1f7e0 4f 47 52 41 4d 5f 4e 41 4d 45 20 3d 20 22 24 6f  OGRAM_NAME = "$o
1f7f0 75 74 70 75 74 6e 61 6d 65 22 3b 20 2f 2a 20 68  utputname"; /* h
1f800 6f 70 65 66 75 6c 6c 79 2c 20 6e 6f 20 2e 65 78  opefully, no .ex
1f810 65 20 2a 2f 0a 45 4f 46 0a 09 20 20 20 20 66 69  e */.EOF..    fi
1f820 0a 0a 0a 09 20 20 20 20 63 61 74 20 3c 3c 22 45  ....    cat <<"E
1f830 4f 46 22 0a 0a 23 64 65 66 69 6e 65 20 4c 54 57  OF"..#define LTW
1f840 52 41 50 50 45 52 5f 4f 50 54 49 4f 4e 5f 50 52  RAPPER_OPTION_PR
1f850 45 46 49 58 20 20 20 20 20 20 20 20 20 22 2d 2d  EFIX         "--
1f860 6c 74 2d 22 0a 0a 73 74 61 74 69 63 20 63 6f 6e  lt-"..static con
1f870 73 74 20 63 68 61 72 20 2a 6c 74 77 72 61 70 70  st char *ltwrapp
1f880 65 72 5f 6f 70 74 69 6f 6e 5f 70 72 65 66 69 78  er_option_prefix
1f890 20 3d 20 4c 54 57 52 41 50 50 45 52 5f 4f 50 54   = LTWRAPPER_OPT
1f8a0 49 4f 4e 5f 50 52 45 46 49 58 3b 0a 73 74 61 74  ION_PREFIX;.stat
1f8b0 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 64  ic const char *d
1f8c0 75 6d 70 73 63 72 69 70 74 5f 6f 70 74 20 20 20  umpscript_opt   
1f8d0 20 20 20 20 3d 20 4c 54 57 52 41 50 50 45 52 5f      = LTWRAPPER_
1f8e0 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58 20 22 64  OPTION_PREFIX "d
1f8f0 75 6d 70 2d 73 63 72 69 70 74 22 3b 0a 73 74 61  ump-script";.sta
1f900 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a  tic const char *
1f910 64 65 62 75 67 5f 6f 70 74 20 20 20 20 20 20 20  debug_opt       
1f920 20 20 20 20 20 3d 20 4c 54 57 52 41 50 50 45 52       = LTWRAPPER
1f930 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58 20 22  _OPTION_PREFIX "
1f940 64 65 62 75 67 22 3b 0a 0a 69 6e 74 0a 6d 61 69  debug";..int.mai
1f950 6e 20 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61  n (int argc, cha
1f960 72 20 2a 61 72 67 76 5b 5d 29 0a 7b 0a 20 20 63  r *argv[]).{.  c
1f970 68 61 72 20 2a 2a 6e 65 77 61 72 67 7a 3b 0a 20  har **newargz;. 
1f980 20 69 6e 74 20 20 6e 65 77 61 72 67 63 3b 0a 20   int  newargc;. 
1f990 20 63 68 61 72 20 2a 74 6d 70 5f 70 61 74 68 73   char *tmp_paths
1f9a0 70 65 63 3b 0a 20 20 63 68 61 72 20 2a 61 63 74  pec;.  char *act
1f9b0 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 70 61 74  ual_cwrapper_pat
1f9c0 68 3b 0a 20 20 63 68 61 72 20 2a 61 63 74 75 61  h;.  char *actua
1f9d0 6c 5f 63 77 72 61 70 70 65 72 5f 6e 61 6d 65 3b  l_cwrapper_name;
1f9e0 0a 20 20 63 68 61 72 20 2a 74 61 72 67 65 74 5f  .  char *target_
1f9f0 6e 61 6d 65 3b 0a 20 20 63 68 61 72 20 2a 6c 74  name;.  char *lt
1fa00 5f 61 72 67 76 5f 7a 65 72 6f 3b 0a 20 20 69 6e  _argv_zero;.  in
1fa10 74 70 74 72 5f 74 20 72 76 61 6c 20 3d 20 31 32  tptr_t rval = 12
1fa20 37 3b 0a 0a 20 20 69 6e 74 20 69 3b 0a 0a 20 20  7;..  int i;..  
1fa30 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 20 3d 20 28  program_name = (
1fa40 63 68 61 72 20 2a 29 20 78 73 74 72 64 75 70 20  char *) xstrdup 
1fa50 28 62 61 73 65 5f 6e 61 6d 65 20 28 61 72 67 76  (base_name (argv
1fa60 5b 30 5d 29 29 3b 0a 20 20 6e 65 77 61 72 67 7a  [0]));.  newargz
1fa70 20 3d 20 58 4d 41 4c 4c 4f 43 20 28 63 68 61 72   = XMALLOC (char
1fa80 20 2a 2c 20 61 72 67 63 20 2b 20 31 29 3b 0a 0a   *, argc + 1);..
1fa90 20 20 2f 2a 20 76 65 72 79 20 73 69 6d 70 6c 65    /* very simple
1faa0 20 61 72 67 20 70 61 72 73 69 6e 67 3b 20 64 6f   arg parsing; do
1fab0 6e 27 74 20 77 61 6e 74 20 74 6f 20 72 65 6c 79  n't want to rely
1fac0 20 6f 6e 20 67 65 74 6f 70 74 0a 20 20 20 2a 20   on getopt.   * 
1fad0 61 6c 73 6f 2c 20 63 6f 70 79 20 61 6c 6c 20 6e  also, copy all n
1fae0 6f 6e 20 63 77 72 61 70 70 65 72 20 6f 70 74 69  on cwrapper opti
1faf0 6f 6e 73 20 74 6f 20 6e 65 77 61 72 67 7a 2c 20  ons to newargz, 
1fb00 65 78 63 65 70 74 0a 20 20 20 2a 20 61 72 67 7a  except.   * argz
1fb10 5b 30 5d 2c 20 77 68 69 63 68 20 69 73 20 68 61  [0], which is ha
1fb20 6e 64 6c 65 64 20 64 69 66 66 65 72 65 6e 74 6c  ndled differentl
1fb30 79 0a 20 20 20 2a 2f 0a 20 20 6e 65 77 61 72 67  y.   */.  newarg
1fb40 63 3d 30 3b 0a 20 20 66 6f 72 20 28 69 20 3d 20  c=0;.  for (i = 
1fb50 31 3b 20 69 20 3c 20 61 72 67 63 3b 20 69 2b 2b  1; i < argc; i++
1fb60 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 69 66  ).    {.      if
1fb70 20 28 73 74 72 63 6d 70 20 28 61 72 67 76 5b 69   (strcmp (argv[i
1fb80 5d 2c 20 64 75 6d 70 73 63 72 69 70 74 5f 6f 70  ], dumpscript_op
1fb90 74 29 20 3d 3d 20 30 29 0a 09 7b 0a 45 4f 46 0a  t) == 0)..{.EOF.
1fba0 09 20 20 20 20 63 61 73 65 20 22 24 68 6f 73 74  .    case "$host
1fbb0 22 20 69 6e 0a 09 20 20 20 20 20 20 2a 6d 69 6e  " in..      *min
1fbc0 67 77 2a 20 7c 20 2a 63 79 67 77 69 6e 2a 20 29  gw* | *cygwin* )
1fbd0 0a 09 09 23 20 6d 61 6b 65 20 73 74 64 6f 75 74  ...# make stdout
1fbe0 20 75 73 65 20 22 75 6e 69 78 22 20 6c 69 6e 65   use "unix" line
1fbf0 20 65 6e 64 69 6e 67 73 0a 09 09 65 63 68 6f 20   endings...echo 
1fc00 22 20 20 20 20 20 20 20 20 20 20 73 65 74 6d 6f  "          setmo
1fc10 64 65 28 31 2c 5f 4f 5f 42 49 4e 41 52 59 29 3b  de(1,_O_BINARY);
1fc20 22 0a 09 09 3b 3b 0a 09 20 20 20 20 20 20 65 73  "...;;..      es
1fc30 61 63 0a 0a 09 20 20 20 20 63 61 74 20 3c 3c 22  ac...    cat <<"
1fc40 45 4f 46 22 0a 09 20 20 6c 74 5f 64 75 6d 70 5f  EOF"..  lt_dump_
1fc50 73 63 72 69 70 74 20 28 73 74 64 6f 75 74 29 3b  script (stdout);
1fc60 0a 09 20 20 72 65 74 75 72 6e 20 30 3b 0a 09 7d  ..  return 0;..}
1fc70 0a 20 20 20 20 20 20 69 66 20 28 73 74 72 63 6d  .      if (strcm
1fc80 70 20 28 61 72 67 76 5b 69 5d 2c 20 64 65 62 75  p (argv[i], debu
1fc90 67 5f 6f 70 74 29 20 3d 3d 20 30 29 0a 09 7b 0a  g_opt) == 0)..{.
1fca0 20 20 20 20 20 20 20 20 20 20 6c 74 5f 64 65 62            lt_deb
1fcb0 75 67 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20  ug = 1;.        
1fcc0 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 20    continue;..}. 
1fcd0 20 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 20       if (strcmp 
1fce0 28 61 72 67 76 5b 69 5d 2c 20 6c 74 77 72 61 70  (argv[i], ltwrap
1fcf0 70 65 72 5f 6f 70 74 69 6f 6e 5f 70 72 65 66 69  per_option_prefi
1fd00 78 29 20 3d 3d 20 30 29 0a 20 20 20 20 20 20 20  x) == 0).       
1fd10 20 7b 0a 20 20 20 20 20 20 20 20 20 20 2f 2a 20   {.          /* 
1fd20 68 6f 77 65 76 65 72 2c 20 69 66 20 74 68 65 72  however, if ther
1fd30 65 20 69 73 20 61 6e 20 6f 70 74 69 6f 6e 20 69  e is an option i
1fd40 6e 20 74 68 65 20 4c 54 57 52 41 50 50 45 52 5f  n the LTWRAPPER_
1fd50 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58 0a 20 20  OPTION_PREFIX.  
1fd60 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 73             names
1fd70 70 61 63 65 2c 20 62 75 74 20 69 74 20 69 73 20  pace, but it is 
1fd80 6e 6f 74 20 6f 6e 65 20 6f 66 20 74 68 65 20 6f  not one of the o
1fd90 6e 65 73 20 77 65 20 6b 6e 6f 77 20 61 62 6f 75  nes we know abou
1fda0 74 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20  t and.          
1fdb0 20 20 20 68 61 76 65 20 61 6c 72 65 61 64 79 20     have already 
1fdc0 64 65 61 6c 74 20 77 69 74 68 2c 20 61 62 6f 76  dealt with, abov
1fdd0 65 20 28 69 6e 6c 75 64 69 6e 67 20 64 75 6d 70  e (inluding dump
1fde0 2d 73 63 72 69 70 74 29 2c 20 74 68 65 6e 0a 20  -script), then. 
1fdf0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 70 6f              repo
1fe00 72 74 20 61 6e 20 65 72 72 6f 72 2e 20 4f 74 68  rt an error. Oth
1fe10 65 72 77 69 73 65 2c 20 74 61 72 67 65 74 73 20  erwise, targets 
1fe20 6d 69 67 68 74 20 62 65 67 69 6e 20 74 6f 20 62  might begin to b
1fe30 65 6c 69 65 76 65 0a 20 20 20 20 20 20 20 20 20  elieve.         
1fe40 20 20 20 20 74 68 65 79 20 61 72 65 20 61 6c 6c      they are all
1fe50 6f 77 65 64 20 74 6f 20 75 73 65 20 6f 70 74 69  owed to use opti
1fe60 6f 6e 73 20 69 6e 20 74 68 65 20 4c 54 57 52 41  ons in the LTWRA
1fe70 50 50 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46  PPER_OPTION_PREF
1fe80 49 58 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  IX.             
1fe90 6e 61 6d 65 73 70 61 63 65 2e 20 54 68 65 20 66  namespace. The f
1fea0 69 72 73 74 20 74 69 6d 65 20 61 6e 79 20 75 73  irst time any us
1feb0 65 72 20 63 6f 6d 70 6c 61 69 6e 73 20 61 62 6f  er complains abo
1fec0 75 74 20 74 68 69 73 2c 20 77 65 27 6c 6c 0a 20  ut this, we'll. 
1fed0 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 65 64              need
1fee0 20 74 6f 20 6d 61 6b 65 20 4c 54 57 52 41 50 50   to make LTWRAPP
1fef0 45 52 5f 4f 50 54 49 4f 4e 5f 50 52 45 46 49 58  ER_OPTION_PREFIX
1ff00 20 61 20 63 6f 6e 66 69 67 75 72 65 2d 74 69 6d   a configure-tim
1ff10 65 20 6f 70 74 69 6f 6e 0a 20 20 20 20 20 20 20  e option.       
1ff20 20 20 20 20 20 20 6f 72 20 61 20 63 6f 6e 66 69        or a confi
1ff30 67 75 72 65 2e 61 63 2d 73 65 74 74 61 62 6c 65  gure.ac-settable
1ff40 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 20 20   value..        
1ff50 20 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20     */.          
1ff60 6c 74 5f 66 61 74 61 6c 20 28 5f 5f 46 49 4c 45  lt_fatal (__FILE
1ff70 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 0a 09 09  __, __LINE__,...
1ff80 20 20 20 20 22 75 6e 72 65 63 6f 67 6e 69 7a 65      "unrecognize
1ff90 64 20 25 73 20 6f 70 74 69 6f 6e 3a 20 27 25 73  d %s option: '%s
1ffa0 27 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20  '",.            
1ffb0 20 20 20 20 20 20 20 20 6c 74 77 72 61 70 70 65          ltwrappe
1ffc0 72 5f 6f 70 74 69 6f 6e 5f 70 72 65 66 69 78 2c  r_option_prefix,
1ffd0 20 61 72 67 76 5b 69 5d 29 3b 0a 20 20 20 20 20   argv[i]);.     
1ffe0 20 20 20 7d 0a 20 20 20 20 20 20 2f 2a 20 6f 74     }.      /* ot
1fff0 68 65 72 77 69 73 65 20 2e 2e 2e 20 2a 2f 0a 20  herwise ... */. 
20000 20 20 20 20 20 6e 65 77 61 72 67 7a 5b 2b 2b 6e       newargz[++n
20010 65 77 61 72 67 63 5d 20 3d 20 78 73 74 72 64 75  ewargc] = xstrdu
20020 70 20 28 61 72 67 76 5b 69 5d 29 3b 0a 20 20 20  p (argv[i]);.   
20030 20 7d 0a 20 20 6e 65 77 61 72 67 7a 5b 2b 2b 6e   }.  newargz[++n
20040 65 77 61 72 67 63 5d 20 3d 20 4e 55 4c 4c 3b 0a  ewargc] = NULL;.
20050 0a 45 4f 46 0a 09 20 20 20 20 63 61 74 20 3c 3c  .EOF..    cat <<
20060 45 4f 46 0a 20 20 2f 2a 20 54 68 65 20 47 4e 55  EOF.  /* The GNU
20070 20 62 61 6e 6e 65 72 20 6d 75 73 74 20 62 65 20   banner must be 
20080 74 68 65 20 66 69 72 73 74 20 6e 6f 6e 2d 65 72  the first non-er
20090 72 6f 72 20 64 65 62 75 67 20 6d 65 73 73 61 67  ror debug messag
200a0 65 20 2a 2f 0a 20 20 6c 74 5f 64 65 62 75 67 70  e */.  lt_debugp
200b0 72 69 6e 74 66 20 28 5f 5f 46 49 4c 45 5f 5f 2c  rintf (__FILE__,
200c0 20 5f 5f 4c 49 4e 45 5f 5f 2c 20 22 6c 69 62 74   __LINE__, "libt
200d0 6f 6f 6c 20 77 72 61 70 70 65 72 20 28 47 4e 55  ool wrapper (GNU
200e0 20 24 50 41 43 4b 41 47 45 24 54 49 4d 45 53 54   $PACKAGE$TIMEST
200f0 41 4d 50 29 20 24 56 45 52 53 49 4f 4e 5c 6e 22  AMP) $VERSION\n"
20100 29 3b 0a 45 4f 46 0a 09 20 20 20 20 63 61 74 20  );.EOF..    cat 
20110 3c 3c 22 45 4f 46 22 0a 20 20 6c 74 5f 64 65 62  <<"EOF".  lt_deb
20120 75 67 70 72 69 6e 74 66 20 28 5f 5f 46 49 4c 45  ugprintf (__FILE
20130 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 20 22 28  __, __LINE__, "(
20140 6d 61 69 6e 29 20 61 72 67 76 5b 30 5d 3a 20 25  main) argv[0]: %
20150 73 5c 6e 22 2c 20 61 72 67 76 5b 30 5d 29 3b 0a  s\n", argv[0]);.
20160 20 20 6c 74 5f 64 65 62 75 67 70 72 69 6e 74 66    lt_debugprintf
20170 20 28 5f 5f 46 49 4c 45 5f 5f 2c 20 5f 5f 4c 49   (__FILE__, __LI
20180 4e 45 5f 5f 2c 20 22 28 6d 61 69 6e 29 20 70 72  NE__, "(main) pr
20190 6f 67 72 61 6d 5f 6e 61 6d 65 3a 20 25 73 5c 6e  ogram_name: %s\n
201a0 22 2c 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 29  ", program_name)
201b0 3b 0a 0a 20 20 74 6d 70 5f 70 61 74 68 73 70 65  ;..  tmp_pathspe
201c0 63 20 3d 20 66 69 6e 64 5f 65 78 65 63 75 74 61  c = find_executa
201d0 62 6c 65 20 28 61 72 67 76 5b 30 5d 29 3b 0a 20  ble (argv[0]);. 
201e0 20 69 66 20 28 74 6d 70 5f 70 61 74 68 73 70 65   if (tmp_pathspe
201f0 63 20 3d 3d 20 4e 55 4c 4c 29 0a 20 20 20 20 6c  c == NULL).    l
20200 74 5f 66 61 74 61 6c 20 28 5f 5f 46 49 4c 45 5f  t_fatal (__FILE_
20210 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 20 22 63 6f  _, __LINE__, "co
20220 75 6c 64 6e 27 74 20 66 69 6e 64 20 25 73 22 2c  uldn't find %s",
20230 20 61 72 67 76 5b 30 5d 29 3b 0a 20 20 6c 74 5f   argv[0]);.  lt_
20240 64 65 62 75 67 70 72 69 6e 74 66 20 28 5f 5f 46  debugprintf (__F
20250 49 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c  ILE__, __LINE__,
20260 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
20270 20 20 20 22 28 6d 61 69 6e 29 20 66 6f 75 6e 64     "(main) found
20280 20 65 78 65 20 28 62 65 66 6f 72 65 20 73 79 6d   exe (before sym
20290 6c 69 6e 6b 20 63 68 61 73 65 29 20 61 74 3a 20  link chase) at: 
202a0 25 73 5c 6e 22 2c 0a 09 09 20 20 74 6d 70 5f 70  %s\n",...  tmp_p
202b0 61 74 68 73 70 65 63 29 3b 0a 0a 20 20 61 63 74  athspec);..  act
202c0 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 70 61 74  ual_cwrapper_pat
202d0 68 20 3d 20 63 68 61 73 65 5f 73 79 6d 6c 69 6e  h = chase_symlin
202e0 6b 73 20 28 74 6d 70 5f 70 61 74 68 73 70 65 63  ks (tmp_pathspec
202f0 29 3b 0a 20 20 6c 74 5f 64 65 62 75 67 70 72 69  );.  lt_debugpri
20300 6e 74 66 20 28 5f 5f 46 49 4c 45 5f 5f 2c 20 5f  ntf (__FILE__, _
20310 5f 4c 49 4e 45 5f 5f 2c 0a 20 20 20 20 20 20 20  _LINE__,.       
20320 20 20 20 20 20 20 20 20 20 20 20 22 28 6d 61 69             "(mai
20330 6e 29 20 66 6f 75 6e 64 20 65 78 65 20 28 61 66  n) found exe (af
20340 74 65 72 20 73 79 6d 6c 69 6e 6b 20 63 68 61 73  ter symlink chas
20350 65 29 20 61 74 3a 20 25 73 5c 6e 22 2c 0a 09 09  e) at: %s\n",...
20360 20 20 61 63 74 75 61 6c 5f 63 77 72 61 70 70 65    actual_cwrappe
20370 72 5f 70 61 74 68 29 3b 0a 20 20 58 46 52 45 45  r_path);.  XFREE
20380 20 28 74 6d 70 5f 70 61 74 68 73 70 65 63 29 3b   (tmp_pathspec);
20390 0a 0a 20 20 61 63 74 75 61 6c 5f 63 77 72 61 70  ..  actual_cwrap
203a0 70 65 72 5f 6e 61 6d 65 20 3d 20 78 73 74 72 64  per_name = xstrd
203b0 75 70 20 28 62 61 73 65 5f 6e 61 6d 65 20 28 61  up (base_name (a
203c0 63 74 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 70  ctual_cwrapper_p
203d0 61 74 68 29 29 3b 0a 20 20 73 74 72 65 6e 64 7a  ath));.  strendz
203e0 61 70 20 28 61 63 74 75 61 6c 5f 63 77 72 61 70  ap (actual_cwrap
203f0 70 65 72 5f 70 61 74 68 2c 20 61 63 74 75 61 6c  per_path, actual
20400 5f 63 77 72 61 70 70 65 72 5f 6e 61 6d 65 29 3b  _cwrapper_name);
20410 0a 0a 20 20 2f 2a 20 77 72 61 70 70 65 72 20 6e  ..  /* wrapper n
20420 61 6d 65 20 74 72 61 6e 73 66 6f 72 6d 73 20 2a  ame transforms *
20430 2f 0a 20 20 73 74 72 65 6e 64 7a 61 70 20 28 61  /.  strendzap (a
20440 63 74 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 6e  ctual_cwrapper_n
20450 61 6d 65 2c 20 22 2e 65 78 65 22 29 3b 0a 20 20  ame, ".exe");.  
20460 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d 20 6c  tmp_pathspec = l
20470 74 5f 65 78 74 65 6e 64 5f 73 74 72 20 28 61 63  t_extend_str (ac
20480 74 75 61 6c 5f 63 77 72 61 70 70 65 72 5f 6e 61  tual_cwrapper_na
20490 6d 65 2c 20 22 2e 65 78 65 22 2c 20 31 29 3b 0a  me, ".exe", 1);.
204a0 20 20 58 46 52 45 45 20 28 61 63 74 75 61 6c 5f    XFREE (actual_
204b0 63 77 72 61 70 70 65 72 5f 6e 61 6d 65 29 3b 0a  cwrapper_name);.
204c0 20 20 61 63 74 75 61 6c 5f 63 77 72 61 70 70 65    actual_cwrappe
204d0 72 5f 6e 61 6d 65 20 3d 20 74 6d 70 5f 70 61 74  r_name = tmp_pat
204e0 68 73 70 65 63 3b 0a 20 20 74 6d 70 5f 70 61 74  hspec;.  tmp_pat
204f0 68 73 70 65 63 20 3d 20 30 3b 0a 0a 20 20 2f 2a  hspec = 0;..  /*
20500 20 74 61 72 67 65 74 5f 6e 61 6d 65 20 74 72 61   target_name tra
20510 6e 73 66 6f 72 6d 73 20 2d 2d 20 75 73 65 20 61  nsforms -- use a
20520 63 74 75 61 6c 20 74 61 72 67 65 74 20 70 72 6f  ctual target pro
20530 67 72 61 6d 20 6e 61 6d 65 3b 20 6d 69 67 68 74  gram name; might
20540 20 68 61 76 65 20 6c 74 2d 20 70 72 65 66 69 78   have lt- prefix
20550 20 2a 2f 0a 20 20 74 61 72 67 65 74 5f 6e 61 6d   */.  target_nam
20560 65 20 3d 20 78 73 74 72 64 75 70 20 28 62 61 73  e = xstrdup (bas
20570 65 5f 6e 61 6d 65 20 28 54 41 52 47 45 54 5f 50  e_name (TARGET_P
20580 52 4f 47 52 41 4d 5f 4e 41 4d 45 29 29 3b 0a 20  ROGRAM_NAME));. 
20590 20 73 74 72 65 6e 64 7a 61 70 20 28 74 61 72 67   strendzap (targ
205a0 65 74 5f 6e 61 6d 65 2c 20 22 2e 65 78 65 22 29  et_name, ".exe")
205b0 3b 0a 20 20 74 6d 70 5f 70 61 74 68 73 70 65 63  ;.  tmp_pathspec
205c0 20 3d 20 6c 74 5f 65 78 74 65 6e 64 5f 73 74 72   = lt_extend_str
205d0 20 28 74 61 72 67 65 74 5f 6e 61 6d 65 2c 20 22   (target_name, "
205e0 2e 65 78 65 22 2c 20 31 29 3b 0a 20 20 58 46 52  .exe", 1);.  XFR
205f0 45 45 20 28 74 61 72 67 65 74 5f 6e 61 6d 65 29  EE (target_name)
20600 3b 0a 20 20 74 61 72 67 65 74 5f 6e 61 6d 65 20  ;.  target_name 
20610 3d 20 74 6d 70 5f 70 61 74 68 73 70 65 63 3b 0a  = tmp_pathspec;.
20620 20 20 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d    tmp_pathspec =
20630 20 30 3b 0a 0a 20 20 6c 74 5f 64 65 62 75 67 70   0;..  lt_debugp
20640 72 69 6e 74 66 20 28 5f 5f 46 49 4c 45 5f 5f 2c  rintf (__FILE__,
20650 20 5f 5f 4c 49 4e 45 5f 5f 2c 0a 09 09 20 20 22   __LINE__,...  "
20660 28 6d 61 69 6e 29 20 6c 69 62 74 6f 6f 6c 20 74  (main) libtool t
20670 61 72 67 65 74 20 6e 61 6d 65 3a 20 25 73 5c 6e  arget name: %s\n
20680 22 2c 0a 09 09 20 20 74 61 72 67 65 74 5f 6e 61  ",...  target_na
20690 6d 65 29 3b 0a 45 4f 46 0a 0a 09 20 20 20 20 63  me);.EOF...    c
206a0 61 74 20 3c 3c 45 4f 46 0a 20 20 6e 65 77 61 72  at <<EOF.  newar
206b0 67 7a 5b 30 5d 20 3d 0a 20 20 20 20 58 4d 41 4c  gz[0] =.    XMAL
206c0 4c 4f 43 20 28 63 68 61 72 2c 20 28 73 74 72 6c  LOC (char, (strl
206d0 65 6e 20 28 61 63 74 75 61 6c 5f 63 77 72 61 70  en (actual_cwrap
206e0 70 65 72 5f 70 61 74 68 29 20 2b 0a 09 09 20 20  per_path) +...  
206f0 20 20 73 74 72 6c 65 6e 20 28 22 24 6f 62 6a 64    strlen ("$objd
20700 69 72 22 29 20 2b 20 31 20 2b 20 73 74 72 6c 65  ir") + 1 + strle
20710 6e 20 28 61 63 74 75 61 6c 5f 63 77 72 61 70 70  n (actual_cwrapp
20720 65 72 5f 6e 61 6d 65 29 20 2b 20 31 29 29 3b 0a  er_name) + 1));.
20730 20 20 73 74 72 63 70 79 20 28 6e 65 77 61 72 67    strcpy (newarg
20740 7a 5b 30 5d 2c 20 61 63 74 75 61 6c 5f 63 77 72  z[0], actual_cwr
20750 61 70 70 65 72 5f 70 61 74 68 29 3b 0a 20 20 73  apper_path);.  s
20760 74 72 63 61 74 20 28 6e 65 77 61 72 67 7a 5b 30  trcat (newargz[0
20770 5d 2c 20 22 24 6f 62 6a 64 69 72 22 29 3b 0a 20  ], "$objdir");. 
20780 20 73 74 72 63 61 74 20 28 6e 65 77 61 72 67 7a   strcat (newargz
20790 5b 30 5d 2c 20 22 2f 22 29 3b 0a 45 4f 46 0a 0a  [0], "/");.EOF..
207a0 09 20 20 20 20 63 61 74 20 3c 3c 22 45 4f 46 22  .    cat <<"EOF"
207b0 0a 20 20 2f 2a 20 73 74 6f 70 20 68 65 72 65 2c  .  /* stop here,
207c0 20 61 6e 64 20 63 6f 70 79 20 73 6f 20 77 65 20   and copy so we 
207d0 64 6f 6e 27 74 20 68 61 76 65 20 74 6f 20 64 6f  don't have to do
207e0 20 74 68 69 73 20 74 77 69 63 65 20 2a 2f 0a 20   this twice */. 
207f0 20 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d 20   tmp_pathspec = 
20800 78 73 74 72 64 75 70 20 28 6e 65 77 61 72 67 7a  xstrdup (newargz
20810 5b 30 5d 29 3b 0a 0a 20 20 2f 2a 20 64 6f 20 4e  [0]);..  /* do N
20820 4f 54 20 77 61 6e 74 20 74 68 65 20 6c 74 2d 20  OT want the lt- 
20830 70 72 65 66 69 78 20 68 65 72 65 2c 20 73 6f 20  prefix here, so 
20840 75 73 65 20 61 63 74 75 61 6c 5f 63 77 72 61 70  use actual_cwrap
20850 70 65 72 5f 6e 61 6d 65 20 2a 2f 0a 20 20 73 74  per_name */.  st
20860 72 63 61 74 20 28 6e 65 77 61 72 67 7a 5b 30 5d  rcat (newargz[0]
20870 2c 20 61 63 74 75 61 6c 5f 63 77 72 61 70 70 65  , actual_cwrappe
20880 72 5f 6e 61 6d 65 29 3b 0a 0a 20 20 2f 2a 20 44  r_name);..  /* D
20890 4f 20 77 61 6e 74 20 74 68 65 20 6c 74 2d 20 70  O want the lt- p
208a0 72 65 66 69 78 20 68 65 72 65 20 69 66 20 69 74  refix here if it
208b0 20 65 78 69 73 74 73 2c 20 73 6f 20 75 73 65 20   exists, so use 
208c0 74 61 72 67 65 74 5f 6e 61 6d 65 20 2a 2f 0a 20  target_name */. 
208d0 20 6c 74 5f 61 72 67 76 5f 7a 65 72 6f 20 3d 20   lt_argv_zero = 
208e0 6c 74 5f 65 78 74 65 6e 64 5f 73 74 72 20 28 74  lt_extend_str (t
208f0 6d 70 5f 70 61 74 68 73 70 65 63 2c 20 74 61 72  mp_pathspec, tar
20900 67 65 74 5f 6e 61 6d 65 2c 20 31 29 3b 0a 20 20  get_name, 1);.  
20910 58 46 52 45 45 20 28 74 6d 70 5f 70 61 74 68 73  XFREE (tmp_paths
20920 70 65 63 29 3b 0a 20 20 74 6d 70 5f 70 61 74 68  pec);.  tmp_path
20930 73 70 65 63 20 3d 20 4e 55 4c 4c 3b 0a 45 4f 46  spec = NULL;.EOF
20940 0a 0a 09 20 20 20 20 63 61 73 65 20 24 68 6f 73  ...    case $hos
20950 74 5f 6f 73 20 69 6e 0a 09 20 20 20 20 20 20 6d  t_os in..      m
20960 69 6e 67 77 2a 29 0a 09 20 20 20 20 63 61 74 20  ingw*)..    cat 
20970 3c 3c 22 45 4f 46 22 0a 20 20 7b 0a 20 20 20 20  <<"EOF".  {.    
20980 63 68 61 72 2a 20 70 3b 0a 20 20 20 20 77 68 69  char* p;.    whi
20990 6c 65 20 28 28 70 20 3d 20 73 74 72 63 68 72 20  le ((p = strchr 
209a0 28 6e 65 77 61 72 67 7a 5b 30 5d 2c 20 27 5c 5c  (newargz[0], '\\
209b0 27 29 29 20 21 3d 20 4e 55 4c 4c 29 0a 20 20 20  ')) != NULL).   
209c0 20 20 20 7b 0a 09 2a 70 20 3d 20 27 2f 27 3b 0a     {..*p = '/';.
209d0 20 20 20 20 20 20 7d 0a 20 20 20 20 77 68 69 6c        }.    whil
209e0 65 20 28 28 70 20 3d 20 73 74 72 63 68 72 20 28  e ((p = strchr (
209f0 6c 74 5f 61 72 67 76 5f 7a 65 72 6f 2c 20 27 5c  lt_argv_zero, '\
20a00 5c 27 29 29 20 21 3d 20 4e 55 4c 4c 29 0a 20 20  \')) != NULL).  
20a10 20 20 20 20 7b 0a 09 2a 70 20 3d 20 27 2f 27 3b      {..*p = '/';
20a20 0a 20 20 20 20 20 20 7d 0a 20 20 7d 0a 45 4f 46  .      }.  }.EOF
20a30 0a 09 20 20 20 20 3b 3b 0a 09 20 20 20 20 65 73  ..    ;;..    es
20a40 61 63 0a 0a 09 20 20 20 20 63 61 74 20 3c 3c 22  ac...    cat <<"
20a50 45 4f 46 22 0a 20 20 58 46 52 45 45 20 28 74 61  EOF".  XFREE (ta
20a60 72 67 65 74 5f 6e 61 6d 65 29 3b 0a 20 20 58 46  rget_name);.  XF
20a70 52 45 45 20 28 61 63 74 75 61 6c 5f 63 77 72 61  REE (actual_cwra
20a80 70 70 65 72 5f 70 61 74 68 29 3b 0a 20 20 58 46  pper_path);.  XF
20a90 52 45 45 20 28 61 63 74 75 61 6c 5f 63 77 72 61  REE (actual_cwra
20aa0 70 70 65 72 5f 6e 61 6d 65 29 3b 0a 0a 20 20 6c  pper_name);..  l
20ab0 74 5f 73 65 74 65 6e 76 20 28 22 42 49 4e 5f 53  t_setenv ("BIN_S
20ac0 48 22 2c 20 22 78 70 67 34 22 29 3b 20 2f 2a 20  H", "xpg4"); /* 
20ad0 66 6f 72 20 54 72 75 36 34 20 2a 2f 0a 20 20 6c  for Tru64 */.  l
20ae0 74 5f 73 65 74 65 6e 76 20 28 22 44 55 41 4c 43  t_setenv ("DUALC
20af0 41 53 45 22 2c 20 22 31 22 29 3b 20 20 2f 2a 20  ASE", "1");  /* 
20b00 66 6f 72 20 4d 53 4b 20 73 68 20 2a 2f 0a 20 20  for MSK sh */.  
20b10 2f 2a 20 55 70 64 61 74 65 20 74 68 65 20 44 4c  /* Update the DL
20b20 4c 20 73 65 61 72 63 68 70 61 74 68 2e 20 20 45  L searchpath.  E
20b30 58 45 5f 50 41 54 48 5f 56 41 4c 55 45 20 28 24  XE_PATH_VALUE ($
20b40 64 6c 6c 73 65 61 72 63 68 70 61 74 68 29 20 6d  dllsearchpath) m
20b50 75 73 74 0a 20 20 20 20 20 62 65 20 70 72 65 70  ust.     be prep
20b60 65 6e 64 65 64 20 62 65 66 6f 72 65 20 28 74 68  ended before (th
20b70 61 74 20 69 73 2c 20 61 70 70 65 61 72 20 61 66  at is, appear af
20b80 74 65 72 29 20 4c 49 42 5f 50 41 54 48 5f 56 41  ter) LIB_PATH_VA
20b90 4c 55 45 20 28 24 74 65 6d 70 5f 72 70 61 74 68  LUE ($temp_rpath
20ba0 29 0a 20 20 20 20 20 62 65 63 61 75 73 65 20 6f  ).     because o
20bb0 6e 20 57 69 6e 64 6f 77 73 2c 20 62 6f 74 68 20  n Windows, both 
20bc0 2a 5f 56 41 52 4e 41 4d 45 73 20 61 72 65 20 50  *_VARNAMEs are P
20bd0 41 54 48 20 62 75 74 20 75 6e 69 6e 73 74 61 6c  ATH but uninstal
20be0 6c 65 64 0a 20 20 20 20 20 6c 69 62 72 61 72 69  led.     librari
20bf0 65 73 20 6d 75 73 74 20 63 6f 6d 65 20 66 69 72  es must come fir
20c00 73 74 2e 20 2a 2f 0a 20 20 6c 74 5f 75 70 64 61  st. */.  lt_upda
20c10 74 65 5f 65 78 65 5f 70 61 74 68 20 28 45 58 45  te_exe_path (EXE
20c20 5f 50 41 54 48 5f 56 41 52 4e 41 4d 45 2c 20 45  _PATH_VARNAME, E
20c30 58 45 5f 50 41 54 48 5f 56 41 4c 55 45 29 3b 0a  XE_PATH_VALUE);.
20c40 20 20 6c 74 5f 75 70 64 61 74 65 5f 6c 69 62 5f    lt_update_lib_
20c50 70 61 74 68 20 28 4c 49 42 5f 50 41 54 48 5f 56  path (LIB_PATH_V
20c60 41 52 4e 41 4d 45 2c 20 4c 49 42 5f 50 41 54 48  ARNAME, LIB_PATH
20c70 5f 56 41 4c 55 45 29 3b 0a 0a 20 20 6c 74 5f 64  _VALUE);..  lt_d
20c80 65 62 75 67 70 72 69 6e 74 66 20 28 5f 5f 46 49  ebugprintf (__FI
20c90 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 20  LE__, __LINE__, 
20ca0 22 28 6d 61 69 6e 29 20 6c 74 5f 61 72 67 76 5f  "(main) lt_argv_
20cb0 7a 65 72 6f 3a 20 25 73 5c 6e 22 2c 0a 09 09 20  zero: %s\n",... 
20cc0 20 6e 6f 6e 6e 75 6c 6c 20 28 6c 74 5f 61 72 67   nonnull (lt_arg
20cd0 76 5f 7a 65 72 6f 29 29 3b 0a 20 20 66 6f 72 20  v_zero));.  for 
20ce0 28 69 20 3d 20 30 3b 20 69 20 3c 20 6e 65 77 61  (i = 0; i < newa
20cf0 72 67 63 3b 20 69 2b 2b 29 0a 20 20 20 20 7b 0a  rgc; i++).    {.
20d00 20 20 20 20 20 20 6c 74 5f 64 65 62 75 67 70 72        lt_debugpr
20d10 69 6e 74 66 20 28 5f 5f 46 49 4c 45 5f 5f 2c 20  intf (__FILE__, 
20d20 5f 5f 4c 49 4e 45 5f 5f 2c 20 22 28 6d 61 69 6e  __LINE__, "(main
20d30 29 20 6e 65 77 61 72 67 7a 5b 25 64 5d 3a 20 25  ) newargz[%d]: %
20d40 73 5c 6e 22 2c 0a 09 09 20 20 20 20 20 20 69 2c  s\n",...      i,
20d50 20 6e 6f 6e 6e 75 6c 6c 20 28 6e 65 77 61 72 67   nonnull (newarg
20d60 7a 5b 69 5d 29 29 3b 0a 20 20 20 20 7d 0a 0a 45  z[i]));.    }..E
20d70 4f 46 0a 0a 09 20 20 20 20 63 61 73 65 20 24 68  OF...    case $h
20d80 6f 73 74 5f 6f 73 20 69 6e 0a 09 20 20 20 20 20  ost_os in..     
20d90 20 6d 69 6e 67 77 2a 29 0a 09 09 63 61 74 20 3c   mingw*)...cat <
20da0 3c 22 45 4f 46 22 0a 20 20 2f 2a 20 65 78 65 63  <"EOF".  /* exec
20db0 76 20 64 6f 65 73 6e 27 74 20 61 63 74 75 61 6c  v doesn't actual
20dc0 6c 79 20 77 6f 72 6b 20 6f 6e 20 6d 69 6e 67 77  ly work on mingw
20dd0 20 61 73 20 65 78 70 65 63 74 65 64 20 6f 6e 20   as expected on 
20de0 75 6e 69 78 20 2a 2f 0a 20 20 6e 65 77 61 72 67  unix */.  newarg
20df0 7a 20 3d 20 70 72 65 70 61 72 65 5f 73 70 61 77  z = prepare_spaw
20e00 6e 20 28 6e 65 77 61 72 67 7a 29 3b 0a 20 20 72  n (newargz);.  r
20e10 76 61 6c 20 3d 20 5f 73 70 61 77 6e 76 20 28 5f  val = _spawnv (_
20e20 50 5f 57 41 49 54 2c 20 6c 74 5f 61 72 67 76 5f  P_WAIT, lt_argv_
20e30 7a 65 72 6f 2c 20 28 63 6f 6e 73 74 20 63 68 61  zero, (const cha
20e40 72 20 2a 20 63 6f 6e 73 74 20 2a 29 20 6e 65 77  r * const *) new
20e50 61 72 67 7a 29 3b 0a 20 20 69 66 20 28 72 76 61  argz);.  if (rva
20e60 6c 20 3d 3d 20 2d 31 29 0a 20 20 20 20 7b 0a 20  l == -1).    {. 
20e70 20 20 20 20 20 2f 2a 20 66 61 69 6c 65 64 20 74       /* failed t
20e80 6f 20 73 74 61 72 74 20 70 72 6f 63 65 73 73 20  o start process 
20e90 2a 2f 0a 20 20 20 20 20 20 6c 74 5f 64 65 62 75  */.      lt_debu
20ea0 67 70 72 69 6e 74 66 20 28 5f 5f 46 49 4c 45 5f  gprintf (__FILE_
20eb0 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 0a 09 09 20  _, __LINE__,... 
20ec0 20 20 20 20 20 22 28 6d 61 69 6e 29 20 66 61 69       "(main) fai
20ed0 6c 65 64 20 74 6f 20 6c 61 75 6e 63 68 20 74 61  led to launch ta
20ee0 72 67 65 74 20 5c 22 25 73 5c 22 3a 20 25 73 5c  rget \"%s\": %s\
20ef0 6e 22 2c 0a 09 09 20 20 20 20 20 20 6c 74 5f 61  n",...      lt_a
20f00 72 67 76 5f 7a 65 72 6f 2c 20 6e 6f 6e 6e 75 6c  rgv_zero, nonnul
20f10 6c 20 28 73 74 72 65 72 72 6f 72 20 28 65 72 72  l (strerror (err
20f20 6e 6f 29 29 29 3b 0a 20 20 20 20 20 20 72 65 74  no)));.      ret
20f30 75 72 6e 20 31 32 37 3b 0a 20 20 20 20 7d 0a 20  urn 127;.    }. 
20f40 20 72 65 74 75 72 6e 20 72 76 61 6c 3b 0a 45 4f   return rval;.EO
20f50 46 0a 09 09 3b 3b 0a 09 20 20 20 20 20 20 2a 29  F...;;..      *)
20f60 0a 09 09 63 61 74 20 3c 3c 22 45 4f 46 22 0a 20  ...cat <<"EOF". 
20f70 20 65 78 65 63 76 20 28 6c 74 5f 61 72 67 76 5f   execv (lt_argv_
20f80 7a 65 72 6f 2c 20 6e 65 77 61 72 67 7a 29 3b 0a  zero, newargz);.
20f90 20 20 72 65 74 75 72 6e 20 72 76 61 6c 3b 20 2f    return rval; /
20fa0 2a 20 3d 31 32 37 2c 20 62 75 74 20 61 76 6f 69  * =127, but avoi
20fb0 64 73 20 75 6e 75 73 65 64 20 76 61 72 69 61 62  ds unused variab
20fc0 6c 65 20 77 61 72 6e 69 6e 67 20 2a 2f 0a 45 4f  le warning */.EO
20fd0 46 0a 09 09 3b 3b 0a 09 20 20 20 20 65 73 61 63  F...;;..    esac
20fe0 0a 0a 09 20 20 20 20 63 61 74 20 3c 3c 22 45 4f  ...    cat <<"EO
20ff0 46 22 0a 7d 0a 0a 76 6f 69 64 20 2a 0a 78 6d 61  F".}..void *.xma
21000 6c 6c 6f 63 20 28 73 69 7a 65 5f 74 20 6e 75 6d  lloc (size_t num
21010 29 0a 7b 0a 20 20 76 6f 69 64 20 2a 70 20 3d 20  ).{.  void *p = 
21020 28 76 6f 69 64 20 2a 29 20 6d 61 6c 6c 6f 63 20  (void *) malloc 
21030 28 6e 75 6d 29 3b 0a 20 20 69 66 20 28 21 70 29  (num);.  if (!p)
21040 0a 20 20 20 20 6c 74 5f 66 61 74 61 6c 20 28 5f  .    lt_fatal (_
21050 5f 46 49 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f  _FILE__, __LINE_
21060 5f 2c 20 22 6d 65 6d 6f 72 79 20 65 78 68 61 75  _, "memory exhau
21070 73 74 65 64 22 29 3b 0a 0a 20 20 72 65 74 75 72  sted");..  retur
21080 6e 20 70 3b 0a 7d 0a 0a 63 68 61 72 20 2a 0a 78  n p;.}..char *.x
21090 73 74 72 64 75 70 20 28 63 6f 6e 73 74 20 63 68  strdup (const ch
210a0 61 72 20 2a 73 74 72 69 6e 67 29 0a 7b 0a 20 20  ar *string).{.  
210b0 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 3f 20  return string ? 
210c0 73 74 72 63 70 79 20 28 28 63 68 61 72 20 2a 29  strcpy ((char *)
210d0 20 78 6d 61 6c 6c 6f 63 20 28 73 74 72 6c 65 6e   xmalloc (strlen
210e0 20 28 73 74 72 69 6e 67 29 20 2b 20 31 29 2c 0a   (string) + 1),.
210f0 09 09 09 20 20 73 74 72 69 6e 67 29 20 3a 20 4e  ...  string) : N
21100 55 4c 4c 3b 0a 7d 0a 0a 63 6f 6e 73 74 20 63 68  ULL;.}..const ch
21110 61 72 20 2a 0a 62 61 73 65 5f 6e 61 6d 65 20 28  ar *.base_name (
21120 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e 61 6d 65  const char *name
21130 29 0a 7b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72  ).{.  const char
21140 20 2a 62 61 73 65 3b 0a 0a 23 69 66 20 64 65 66   *base;..#if def
21150 69 6e 65 64 20 28 48 41 56 45 5f 44 4f 53 5f 42  ined (HAVE_DOS_B
21160 41 53 45 44 5f 46 49 4c 45 5f 53 59 53 54 45 4d  ASED_FILE_SYSTEM
21170 29 0a 20 20 2f 2a 20 53 6b 69 70 20 6f 76 65 72  ).  /* Skip over
21180 20 74 68 65 20 64 69 73 6b 20 6e 61 6d 65 20 69   the disk name i
21190 6e 20 4d 53 44 4f 53 20 70 61 74 68 6e 61 6d 65  n MSDOS pathname
211a0 73 2e 20 2a 2f 0a 20 20 69 66 20 28 69 73 61 6c  s. */.  if (isal
211b0 70 68 61 20 28 28 75 6e 73 69 67 6e 65 64 20 63  pha ((unsigned c
211c0 68 61 72 29 20 6e 61 6d 65 5b 30 5d 29 20 26 26  har) name[0]) &&
211d0 20 6e 61 6d 65 5b 31 5d 20 3d 3d 20 27 3a 27 29   name[1] == ':')
211e0 0a 20 20 20 20 6e 61 6d 65 20 2b 3d 20 32 3b 0a  .    name += 2;.
211f0 23 65 6e 64 69 66 0a 0a 20 20 66 6f 72 20 28 62  #endif..  for (b
21200 61 73 65 20 3d 20 6e 61 6d 65 3b 20 2a 6e 61 6d  ase = name; *nam
21210 65 3b 20 6e 61 6d 65 2b 2b 29 0a 20 20 20 20 69  e; name++).    i
21220 66 20 28 49 53 5f 44 49 52 5f 53 45 50 41 52 41  f (IS_DIR_SEPARA
21230 54 4f 52 20 28 2a 6e 61 6d 65 29 29 0a 20 20 20  TOR (*name)).   
21240 20 20 20 62 61 73 65 20 3d 20 6e 61 6d 65 20 2b     base = name +
21250 20 31 3b 0a 20 20 72 65 74 75 72 6e 20 62 61 73   1;.  return bas
21260 65 3b 0a 7d 0a 0a 69 6e 74 0a 63 68 65 63 6b 5f  e;.}..int.check_
21270 65 78 65 63 75 74 61 62 6c 65 20 28 63 6f 6e 73  executable (cons
21280 74 20 63 68 61 72 20 2a 70 61 74 68 29 0a 7b 0a  t char *path).{.
21290 20 20 73 74 72 75 63 74 20 73 74 61 74 20 73 74    struct stat st
212a0 3b 0a 0a 20 20 6c 74 5f 64 65 62 75 67 70 72 69  ;..  lt_debugpri
212b0 6e 74 66 20 28 5f 5f 46 49 4c 45 5f 5f 2c 20 5f  ntf (__FILE__, _
212c0 5f 4c 49 4e 45 5f 5f 2c 20 22 28 63 68 65 63 6b  _LINE__, "(check
212d0 5f 65 78 65 63 75 74 61 62 6c 65 29 3a 20 25 73  _executable): %s
212e0 5c 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20  \n",.           
212f0 20 20 20 20 20 20 20 6e 6f 6e 65 6d 70 74 79 20         nonempty 
21300 28 70 61 74 68 29 29 3b 0a 20 20 69 66 20 28 28  (path));.  if ((
21310 21 70 61 74 68 29 20 7c 7c 20 28 21 2a 70 61 74  !path) || (!*pat
21320 68 29 29 0a 20 20 20 20 72 65 74 75 72 6e 20 30  h)).    return 0
21330 3b 0a 0a 20 20 69 66 20 28 28 73 74 61 74 20 28  ;..  if ((stat (
21340 70 61 74 68 2c 20 26 73 74 29 20 3e 3d 20 30 29  path, &st) >= 0)
21350 0a 20 20 20 20 20 20 26 26 20 28 73 74 2e 73 74  .      && (st.st
21360 5f 6d 6f 64 65 20 26 20 28 53 5f 49 58 55 53 52  _mode & (S_IXUSR
21370 20 7c 20 53 5f 49 58 47 52 50 20 7c 20 53 5f 49   | S_IXGRP | S_I
21380 58 4f 54 48 29 29 29 0a 20 20 20 20 72 65 74 75  XOTH))).    retu
21390 72 6e 20 31 3b 0a 20 20 65 6c 73 65 0a 20 20 20  rn 1;.  else.   
213a0 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 6e   return 0;.}..in
213b0 74 0a 6d 61 6b 65 5f 65 78 65 63 75 74 61 62 6c  t.make_executabl
213c0 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 70  e (const char *p
213d0 61 74 68 29 0a 7b 0a 20 20 69 6e 74 20 72 76 61  ath).{.  int rva
213e0 6c 20 3d 20 30 3b 0a 20 20 73 74 72 75 63 74 20  l = 0;.  struct 
213f0 73 74 61 74 20 73 74 3b 0a 0a 20 20 6c 74 5f 64  stat st;..  lt_d
21400 65 62 75 67 70 72 69 6e 74 66 20 28 5f 5f 46 49  ebugprintf (__FI
21410 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 20  LE__, __LINE__, 
21420 22 28 6d 61 6b 65 5f 65 78 65 63 75 74 61 62 6c  "(make_executabl
21430 65 29 3a 20 25 73 5c 6e 22 2c 0a 20 20 20 20 20  e): %s\n",.     
21440 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 6e               non
21450 65 6d 70 74 79 20 28 70 61 74 68 29 29 3b 0a 20  empty (path));. 
21460 20 69 66 20 28 28 21 70 61 74 68 29 20 7c 7c 20   if ((!path) || 
21470 28 21 2a 70 61 74 68 29 29 0a 20 20 20 20 72 65  (!*path)).    re
21480 74 75 72 6e 20 30 3b 0a 0a 20 20 69 66 20 28 73  turn 0;..  if (s
21490 74 61 74 20 28 70 61 74 68 2c 20 26 73 74 29 20  tat (path, &st) 
214a0 3e 3d 20 30 29 0a 20 20 20 20 7b 0a 20 20 20 20  >= 0).    {.    
214b0 20 20 72 76 61 6c 20 3d 20 63 68 6d 6f 64 20 28    rval = chmod (
214c0 70 61 74 68 2c 20 73 74 2e 73 74 5f 6d 6f 64 65  path, st.st_mode
214d0 20 7c 20 53 5f 49 58 4f 54 48 20 7c 20 53 5f 49   | S_IXOTH | S_I
214e0 58 47 52 50 20 7c 20 53 5f 49 58 55 53 52 29 3b  XGRP | S_IXUSR);
214f0 0a 20 20 20 20 7d 0a 20 20 72 65 74 75 72 6e 20  .    }.  return 
21500 72 76 61 6c 3b 0a 7d 0a 0a 2f 2a 20 53 65 61 72  rval;.}../* Sear
21510 63 68 65 73 20 66 6f 72 20 74 68 65 20 66 75 6c  ches for the ful
21520 6c 20 70 61 74 68 20 6f 66 20 74 68 65 20 77 72  l path of the wr
21530 61 70 70 65 72 2e 20 20 52 65 74 75 72 6e 73 0a  apper.  Returns.
21540 20 20 20 6e 65 77 6c 79 20 61 6c 6c 6f 63 61 74     newly allocat
21550 65 64 20 66 75 6c 6c 20 70 61 74 68 20 6e 61 6d  ed full path nam
21560 65 20 69 66 20 66 6f 75 6e 64 2c 20 4e 55 4c 4c  e if found, NULL
21570 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 44 6f   otherwise.   Do
21580 65 73 20 6e 6f 74 20 63 68 61 73 65 20 73 79 6d  es not chase sym
21590 6c 69 6e 6b 73 2c 20 65 76 65 6e 20 6f 6e 20 70  links, even on p
215a0 6c 61 74 66 6f 72 6d 73 20 74 68 61 74 20 73 75  latforms that su
215b0 70 70 6f 72 74 20 74 68 65 6d 2e 0a 2a 2f 0a 63  pport them..*/.c
215c0 68 61 72 20 2a 0a 66 69 6e 64 5f 65 78 65 63 75  har *.find_execu
215d0 74 61 62 6c 65 20 28 63 6f 6e 73 74 20 63 68 61  table (const cha
215e0 72 20 2a 77 72 61 70 70 65 72 29 0a 7b 0a 20 20  r *wrapper).{.  
215f0 69 6e 74 20 68 61 73 5f 73 6c 61 73 68 20 3d 20  int has_slash = 
21600 30 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20  0;.  const char 
21610 2a 70 3b 0a 20 20 63 6f 6e 73 74 20 63 68 61 72  *p;.  const char
21620 20 2a 70 5f 6e 65 78 74 3b 0a 20 20 2f 2a 20 73   *p_next;.  /* s
21630 74 61 74 69 63 20 62 75 66 66 65 72 20 66 6f 72  tatic buffer for
21640 20 67 65 74 63 77 64 20 2a 2f 0a 20 20 63 68 61   getcwd */.  cha
21650 72 20 74 6d 70 5b 4c 54 5f 50 41 54 48 4d 41 58  r tmp[LT_PATHMAX
21660 20 2b 20 31 5d 3b 0a 20 20 69 6e 74 20 74 6d 70   + 1];.  int tmp
21670 5f 6c 65 6e 3b 0a 20 20 63 68 61 72 20 2a 63 6f  _len;.  char *co
21680 6e 63 61 74 5f 6e 61 6d 65 3b 0a 0a 20 20 6c 74  ncat_name;..  lt
21690 5f 64 65 62 75 67 70 72 69 6e 74 66 20 28 5f 5f  _debugprintf (__
216a0 46 49 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f  FILE__, __LINE__
216b0 2c 20 22 28 66 69 6e 64 5f 65 78 65 63 75 74 61  , "(find_executa
216c0 62 6c 65 29 3a 20 25 73 5c 6e 22 2c 0a 20 20 20  ble): %s\n",.   
216d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e                 n
216e0 6f 6e 65 6d 70 74 79 20 28 77 72 61 70 70 65 72  onempty (wrapper
216f0 29 29 3b 0a 0a 20 20 69 66 20 28 28 77 72 61 70  ));..  if ((wrap
21700 70 65 72 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 20  per == NULL) || 
21710 28 2a 77 72 61 70 70 65 72 20 3d 3d 20 27 5c 30  (*wrapper == '\0
21720 27 29 29 0a 20 20 20 20 72 65 74 75 72 6e 20 4e  ')).    return N
21730 55 4c 4c 3b 0a 0a 20 20 2f 2a 20 41 62 73 6f 6c  ULL;..  /* Absol
21740 75 74 65 20 70 61 74 68 3f 20 2a 2f 0a 23 69 66  ute path? */.#if
21750 20 64 65 66 69 6e 65 64 20 28 48 41 56 45 5f 44   defined (HAVE_D
21760 4f 53 5f 42 41 53 45 44 5f 46 49 4c 45 5f 53 59  OS_BASED_FILE_SY
21770 53 54 45 4d 29 0a 20 20 69 66 20 28 69 73 61 6c  STEM).  if (isal
21780 70 68 61 20 28 28 75 6e 73 69 67 6e 65 64 20 63  pha ((unsigned c
21790 68 61 72 29 20 77 72 61 70 70 65 72 5b 30 5d 29  har) wrapper[0])
217a0 20 26 26 20 77 72 61 70 70 65 72 5b 31 5d 20 3d   && wrapper[1] =
217b0 3d 20 27 3a 27 29 0a 20 20 20 20 7b 0a 20 20 20  = ':').    {.   
217c0 20 20 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 20 3d     concat_name =
217d0 20 78 73 74 72 64 75 70 20 28 77 72 61 70 70 65   xstrdup (wrappe
217e0 72 29 3b 0a 20 20 20 20 20 20 69 66 20 28 63 68  r);.      if (ch
217f0 65 63 6b 5f 65 78 65 63 75 74 61 62 6c 65 20 28  eck_executable (
21800 63 6f 6e 63 61 74 5f 6e 61 6d 65 29 29 0a 09 72  concat_name))..r
21810 65 74 75 72 6e 20 63 6f 6e 63 61 74 5f 6e 61 6d  eturn concat_nam
21820 65 3b 0a 20 20 20 20 20 20 58 46 52 45 45 20 28  e;.      XFREE (
21830 63 6f 6e 63 61 74 5f 6e 61 6d 65 29 3b 0a 20 20  concat_name);.  
21840 20 20 7d 0a 20 20 65 6c 73 65 0a 20 20 20 20 7b    }.  else.    {
21850 0a 23 65 6e 64 69 66 0a 20 20 20 20 20 20 69 66  .#endif.      if
21860 20 28 49 53 5f 44 49 52 5f 53 45 50 41 52 41 54   (IS_DIR_SEPARAT
21870 4f 52 20 28 77 72 61 70 70 65 72 5b 30 5d 29 29  OR (wrapper[0]))
21880 0a 09 7b 0a 09 20 20 63 6f 6e 63 61 74 5f 6e 61  ..{..  concat_na
21890 6d 65 20 3d 20 78 73 74 72 64 75 70 20 28 77 72  me = xstrdup (wr
218a0 61 70 70 65 72 29 3b 0a 09 20 20 69 66 20 28 63  apper);..  if (c
218b0 68 65 63 6b 5f 65 78 65 63 75 74 61 62 6c 65 20  heck_executable 
218c0 28 63 6f 6e 63 61 74 5f 6e 61 6d 65 29 29 0a 09  (concat_name))..
218d0 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6e 63 61      return conca
218e0 74 5f 6e 61 6d 65 3b 0a 09 20 20 58 46 52 45 45  t_name;..  XFREE
218f0 20 28 63 6f 6e 63 61 74 5f 6e 61 6d 65 29 3b 0a   (concat_name);.
21900 09 7d 0a 23 69 66 20 64 65 66 69 6e 65 64 20 28  .}.#if defined (
21910 48 41 56 45 5f 44 4f 53 5f 42 41 53 45 44 5f 46  HAVE_DOS_BASED_F
21920 49 4c 45 5f 53 59 53 54 45 4d 29 0a 20 20 20 20  ILE_SYSTEM).    
21930 7d 0a 23 65 6e 64 69 66 0a 0a 20 20 66 6f 72 20  }.#endif..  for 
21940 28 70 20 3d 20 77 72 61 70 70 65 72 3b 20 2a 70  (p = wrapper; *p
21950 3b 20 70 2b 2b 29 0a 20 20 20 20 69 66 20 28 2a  ; p++).    if (*
21960 70 20 3d 3d 20 27 2f 27 29 0a 20 20 20 20 20 20  p == '/').      
21970 7b 0a 09 68 61 73 5f 73 6c 61 73 68 20 3d 20 31  {..has_slash = 1
21980 3b 0a 09 62 72 65 61 6b 3b 0a 20 20 20 20 20 20  ;..break;.      
21990 7d 0a 20 20 69 66 20 28 21 68 61 73 5f 73 6c 61  }.  if (!has_sla
219a0 73 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20  sh).    {.      
219b0 2f 2a 20 6e 6f 20 73 6c 61 73 68 65 73 3b 20 73  /* no slashes; s
219c0 65 61 72 63 68 20 50 41 54 48 20 2a 2f 0a 20 20  earch PATH */.  
219d0 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a      const char *
219e0 70 61 74 68 20 3d 20 67 65 74 65 6e 76 20 28 22  path = getenv ("
219f0 50 41 54 48 22 29 3b 0a 20 20 20 20 20 20 69 66  PATH");.      if
21a00 20 28 70 61 74 68 20 21 3d 20 4e 55 4c 4c 29 0a   (path != NULL).
21a10 09 7b 0a 09 20 20 66 6f 72 20 28 70 20 3d 20 70  .{..  for (p = p
21a20 61 74 68 3b 20 2a 70 3b 20 70 20 3d 20 70 5f 6e  ath; *p; p = p_n
21a30 65 78 74 29 0a 09 20 20 20 20 7b 0a 09 20 20 20  ext)..    {..   
21a40 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 71     const char *q
21a50 3b 0a 09 20 20 20 20 20 20 73 69 7a 65 5f 74 20  ;..      size_t 
21a60 70 5f 6c 65 6e 3b 0a 09 20 20 20 20 20 20 66 6f  p_len;..      fo
21a70 72 20 28 71 20 3d 20 70 3b 20 2a 71 3b 20 71 2b  r (q = p; *q; q+
21a80 2b 29 0a 09 09 69 66 20 28 49 53 5f 50 41 54 48  +)...if (IS_PATH
21a90 5f 53 45 50 41 52 41 54 4f 52 20 28 2a 71 29 29  _SEPARATOR (*q))
21aa0 0a 09 09 20 20 62 72 65 61 6b 3b 0a 09 20 20 20  ...  break;..   
21ab0 20 20 20 70 5f 6c 65 6e 20 3d 20 71 20 2d 20 70     p_len = q - p
21ac0 3b 0a 09 20 20 20 20 20 20 70 5f 6e 65 78 74 20  ;..      p_next 
21ad0 3d 20 28 2a 71 20 3d 3d 20 27 5c 30 27 20 3f 20  = (*q == '\0' ? 
21ae0 71 20 3a 20 71 20 2b 20 31 29 3b 0a 09 20 20 20  q : q + 1);..   
21af0 20 20 20 69 66 20 28 70 5f 6c 65 6e 20 3d 3d 20     if (p_len == 
21b00 30 29 0a 09 09 7b 0a 09 09 20 20 2f 2a 20 65 6d  0)...{...  /* em
21b10 70 74 79 20 70 61 74 68 3a 20 63 75 72 72 65 6e  pty path: curren
21b20 74 20 64 69 72 65 63 74 6f 72 79 20 2a 2f 0a 09  t directory */..
21b30 09 20 20 69 66 20 28 67 65 74 63 77 64 20 28 74  .  if (getcwd (t
21b40 6d 70 2c 20 4c 54 5f 50 41 54 48 4d 41 58 29 20  mp, LT_PATHMAX) 
21b50 3d 3d 20 4e 55 4c 4c 29 0a 09 09 20 20 20 20 6c  == NULL)...    l
21b60 74 5f 66 61 74 61 6c 20 28 5f 5f 46 49 4c 45 5f  t_fatal (__FILE_
21b70 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 20 22 67 65  _, __LINE__, "ge
21b80 74 63 77 64 20 66 61 69 6c 65 64 3a 20 25 73 22  tcwd failed: %s"
21b90 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ,.              
21ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
21bb0 6e 6f 6e 6e 75 6c 6c 20 28 73 74 72 65 72 72 6f  nonnull (strerro
21bc0 72 20 28 65 72 72 6e 6f 29 29 29 3b 0a 09 09 20  r (errno)));... 
21bd0 20 74 6d 70 5f 6c 65 6e 20 3d 20 73 74 72 6c 65   tmp_len = strle
21be0 6e 20 28 74 6d 70 29 3b 0a 09 09 20 20 63 6f 6e  n (tmp);...  con
21bf0 63 61 74 5f 6e 61 6d 65 20 3d 0a 09 09 20 20 20  cat_name =...   
21c00 20 58 4d 41 4c 4c 4f 43 20 28 63 68 61 72 2c 20   XMALLOC (char, 
21c10 74 6d 70 5f 6c 65 6e 20 2b 20 31 20 2b 20 73 74  tmp_len + 1 + st
21c20 72 6c 65 6e 20 28 77 72 61 70 70 65 72 29 20 2b  rlen (wrapper) +
21c30 20 31 29 3b 0a 09 09 20 20 6d 65 6d 63 70 79 20   1);...  memcpy 
21c40 28 63 6f 6e 63 61 74 5f 6e 61 6d 65 2c 20 74 6d  (concat_name, tm
21c50 70 2c 20 74 6d 70 5f 6c 65 6e 29 3b 0a 09 09 20  p, tmp_len);... 
21c60 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 5b 74 6d 70   concat_name[tmp
21c70 5f 6c 65 6e 5d 20 3d 20 27 2f 27 3b 0a 09 09 20  _len] = '/';... 
21c80 20 73 74 72 63 70 79 20 28 63 6f 6e 63 61 74 5f   strcpy (concat_
21c90 6e 61 6d 65 20 2b 20 74 6d 70 5f 6c 65 6e 20 2b  name + tmp_len +
21ca0 20 31 2c 20 77 72 61 70 70 65 72 29 3b 0a 09 09   1, wrapper);...
21cb0 7d 0a 09 20 20 20 20 20 20 65 6c 73 65 0a 09 09  }..      else...
21cc0 7b 0a 09 09 20 20 63 6f 6e 63 61 74 5f 6e 61 6d  {...  concat_nam
21cd0 65 20 3d 0a 09 09 20 20 20 20 58 4d 41 4c 4c 4f  e =...    XMALLO
21ce0 43 20 28 63 68 61 72 2c 20 70 5f 6c 65 6e 20 2b  C (char, p_len +
21cf0 20 31 20 2b 20 73 74 72 6c 65 6e 20 28 77 72 61   1 + strlen (wra
21d00 70 70 65 72 29 20 2b 20 31 29 3b 0a 09 09 20 20  pper) + 1);...  
21d10 6d 65 6d 63 70 79 20 28 63 6f 6e 63 61 74 5f 6e  memcpy (concat_n
21d20 61 6d 65 2c 20 70 2c 20 70 5f 6c 65 6e 29 3b 0a  ame, p, p_len);.
21d30 09 09 20 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 5b  ..  concat_name[
21d40 70 5f 6c 65 6e 5d 20 3d 20 27 2f 27 3b 0a 09 09  p_len] = '/';...
21d50 20 20 73 74 72 63 70 79 20 28 63 6f 6e 63 61 74    strcpy (concat
21d60 5f 6e 61 6d 65 20 2b 20 70 5f 6c 65 6e 20 2b 20  _name + p_len + 
21d70 31 2c 20 77 72 61 70 70 65 72 29 3b 0a 09 09 7d  1, wrapper);...}
21d80 0a 09 20 20 20 20 20 20 69 66 20 28 63 68 65 63  ..      if (chec
21d90 6b 5f 65 78 65 63 75 74 61 62 6c 65 20 28 63 6f  k_executable (co
21da0 6e 63 61 74 5f 6e 61 6d 65 29 29 0a 09 09 72 65  ncat_name))...re
21db0 74 75 72 6e 20 63 6f 6e 63 61 74 5f 6e 61 6d 65  turn concat_name
21dc0 3b 0a 09 20 20 20 20 20 20 58 46 52 45 45 20 28  ;..      XFREE (
21dd0 63 6f 6e 63 61 74 5f 6e 61 6d 65 29 3b 0a 09 20  concat_name);.. 
21de0 20 20 20 7d 0a 09 7d 0a 20 20 20 20 20 20 2f 2a     }..}.      /*
21df0 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 50 41   not found in PA
21e00 54 48 3b 20 61 73 73 75 6d 65 20 63 75 72 64 69  TH; assume curdi
21e10 72 20 2a 2f 0a 20 20 20 20 7d 0a 20 20 2f 2a 20  r */.    }.  /* 
21e20 52 65 6c 61 74 69 76 65 20 70 61 74 68 20 7c 20  Relative path | 
21e30 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 70 61 74  not found in pat
21e40 68 3a 20 70 72 65 70 65 6e 64 20 63 77 64 20 2a  h: prepend cwd *
21e50 2f 0a 20 20 69 66 20 28 67 65 74 63 77 64 20 28  /.  if (getcwd (
21e60 74 6d 70 2c 20 4c 54 5f 50 41 54 48 4d 41 58 29  tmp, LT_PATHMAX)
21e70 20 3d 3d 20 4e 55 4c 4c 29 0a 20 20 20 20 6c 74   == NULL).    lt
21e80 5f 66 61 74 61 6c 20 28 5f 5f 46 49 4c 45 5f 5f  _fatal (__FILE__
21e90 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 20 22 67 65 74  , __LINE__, "get
21ea0 63 77 64 20 66 61 69 6c 65 64 3a 20 25 73 22 2c  cwd failed: %s",
21eb0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e  .              n
21ec0 6f 6e 6e 75 6c 6c 20 28 73 74 72 65 72 72 6f 72  onnull (strerror
21ed0 20 28 65 72 72 6e 6f 29 29 29 3b 0a 20 20 74 6d   (errno)));.  tm
21ee0 70 5f 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 20 28  p_len = strlen (
21ef0 74 6d 70 29 3b 0a 20 20 63 6f 6e 63 61 74 5f 6e  tmp);.  concat_n
21f00 61 6d 65 20 3d 20 58 4d 41 4c 4c 4f 43 20 28 63  ame = XMALLOC (c
21f10 68 61 72 2c 20 74 6d 70 5f 6c 65 6e 20 2b 20 31  har, tmp_len + 1
21f20 20 2b 20 73 74 72 6c 65 6e 20 28 77 72 61 70 70   + strlen (wrapp
21f30 65 72 29 20 2b 20 31 29 3b 0a 20 20 6d 65 6d 63  er) + 1);.  memc
21f40 70 79 20 28 63 6f 6e 63 61 74 5f 6e 61 6d 65 2c  py (concat_name,
21f50 20 74 6d 70 2c 20 74 6d 70 5f 6c 65 6e 29 3b 0a   tmp, tmp_len);.
21f60 20 20 63 6f 6e 63 61 74 5f 6e 61 6d 65 5b 74 6d    concat_name[tm
21f70 70 5f 6c 65 6e 5d 20 3d 20 27 2f 27 3b 0a 20 20  p_len] = '/';.  
21f80 73 74 72 63 70 79 20 28 63 6f 6e 63 61 74 5f 6e  strcpy (concat_n
21f90 61 6d 65 20 2b 20 74 6d 70 5f 6c 65 6e 20 2b 20  ame + tmp_len + 
21fa0 31 2c 20 77 72 61 70 70 65 72 29 3b 0a 0a 20 20  1, wrapper);..  
21fb0 69 66 20 28 63 68 65 63 6b 5f 65 78 65 63 75 74  if (check_execut
21fc0 61 62 6c 65 20 28 63 6f 6e 63 61 74 5f 6e 61 6d  able (concat_nam
21fd0 65 29 29 0a 20 20 20 20 72 65 74 75 72 6e 20 63  e)).    return c
21fe0 6f 6e 63 61 74 5f 6e 61 6d 65 3b 0a 20 20 58 46  oncat_name;.  XF
21ff0 52 45 45 20 28 63 6f 6e 63 61 74 5f 6e 61 6d 65  REE (concat_name
22000 29 3b 0a 20 20 72 65 74 75 72 6e 20 4e 55 4c 4c  );.  return NULL
22010 3b 0a 7d 0a 0a 63 68 61 72 20 2a 0a 63 68 61 73  ;.}..char *.chas
22020 65 5f 73 79 6d 6c 69 6e 6b 73 20 28 63 6f 6e 73  e_symlinks (cons
22030 74 20 63 68 61 72 20 2a 70 61 74 68 73 70 65 63  t char *pathspec
22040 29 0a 7b 0a 23 69 66 6e 64 65 66 20 53 5f 49 53  ).{.#ifndef S_IS
22050 4c 4e 4b 0a 20 20 72 65 74 75 72 6e 20 78 73 74  LNK.  return xst
22060 72 64 75 70 20 28 70 61 74 68 73 70 65 63 29 3b  rdup (pathspec);
22070 0a 23 65 6c 73 65 0a 20 20 63 68 61 72 20 62 75  .#else.  char bu
22080 66 5b 4c 54 5f 50 41 54 48 4d 41 58 5d 3b 0a 20  f[LT_PATHMAX];. 
22090 20 73 74 72 75 63 74 20 73 74 61 74 20 73 3b 0a   struct stat s;.
220a0 20 20 63 68 61 72 20 2a 74 6d 70 5f 70 61 74 68    char *tmp_path
220b0 73 70 65 63 20 3d 20 78 73 74 72 64 75 70 20 28  spec = xstrdup (
220c0 70 61 74 68 73 70 65 63 29 3b 0a 20 20 63 68 61  pathspec);.  cha
220d0 72 20 2a 70 3b 0a 20 20 69 6e 74 20 68 61 73 5f  r *p;.  int has_
220e0 73 79 6d 6c 69 6e 6b 73 20 3d 20 30 3b 0a 20 20  symlinks = 0;.  
220f0 77 68 69 6c 65 20 28 73 74 72 6c 65 6e 20 28 74  while (strlen (t
22100 6d 70 5f 70 61 74 68 73 70 65 63 29 20 26 26 20  mp_pathspec) && 
22110 21 68 61 73 5f 73 79 6d 6c 69 6e 6b 73 29 0a 20  !has_symlinks). 
22120 20 20 20 7b 0a 20 20 20 20 20 20 6c 74 5f 64 65     {.      lt_de
22130 62 75 67 70 72 69 6e 74 66 20 28 5f 5f 46 49 4c  bugprintf (__FIL
22140 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 0a 09  E__, __LINE__,..
22150 09 20 20 20 20 20 20 22 63 68 65 63 6b 69 6e 67  .      "checking
22160 20 70 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 20   path component 
22170 66 6f 72 20 73 79 6d 6c 69 6e 6b 73 3a 20 25 73  for symlinks: %s
22180 5c 6e 22 2c 0a 09 09 20 20 20 20 20 20 74 6d 70  \n",...      tmp
22190 5f 70 61 74 68 73 70 65 63 29 3b 0a 20 20 20 20  _pathspec);.    
221a0 20 20 69 66 20 28 6c 73 74 61 74 20 28 74 6d 70    if (lstat (tmp
221b0 5f 70 61 74 68 73 70 65 63 2c 20 26 73 29 20 3d  _pathspec, &s) =
221c0 3d 20 30 29 0a 09 7b 0a 09 20 20 69 66 20 28 53  = 0)..{..  if (S
221d0 5f 49 53 4c 4e 4b 20 28 73 2e 73 74 5f 6d 6f 64  _ISLNK (s.st_mod
221e0 65 29 20 21 3d 20 30 29 0a 09 20 20 20 20 7b 0a  e) != 0)..    {.
221f0 09 20 20 20 20 20 20 68 61 73 5f 73 79 6d 6c 69  .      has_symli
22200 6e 6b 73 20 3d 20 31 3b 0a 09 20 20 20 20 20 20  nks = 1;..      
22210 62 72 65 61 6b 3b 0a 09 20 20 20 20 7d 0a 0a 09  break;..    }...
22220 20 20 2f 2a 20 73 65 61 72 63 68 20 62 61 63 6b    /* search back
22230 77 61 72 64 73 20 66 6f 72 20 6c 61 73 74 20 44  wards for last D
22240 49 52 5f 53 45 50 41 52 41 54 4f 52 20 2a 2f 0a  IR_SEPARATOR */.
22250 09 20 20 70 20 3d 20 74 6d 70 5f 70 61 74 68 73  .  p = tmp_paths
22260 70 65 63 20 2b 20 73 74 72 6c 65 6e 20 28 74 6d  pec + strlen (tm
22270 70 5f 70 61 74 68 73 70 65 63 29 20 2d 20 31 3b  p_pathspec) - 1;
22280 0a 09 20 20 77 68 69 6c 65 20 28 28 70 20 3e 20  ..  while ((p > 
22290 74 6d 70 5f 70 61 74 68 73 70 65 63 29 20 26 26  tmp_pathspec) &&
222a0 20 28 21 49 53 5f 44 49 52 5f 53 45 50 41 52 41   (!IS_DIR_SEPARA
222b0 54 4f 52 20 28 2a 70 29 29 29 0a 09 20 20 20 20  TOR (*p)))..    
222c0 70 2d 2d 3b 0a 09 20 20 69 66 20 28 28 70 20 3d  p--;..  if ((p =
222d0 3d 20 74 6d 70 5f 70 61 74 68 73 70 65 63 29 20  = tmp_pathspec) 
222e0 26 26 20 28 21 49 53 5f 44 49 52 5f 53 45 50 41  && (!IS_DIR_SEPA
222f0 52 41 54 4f 52 20 28 2a 70 29 29 29 0a 09 20 20  RATOR (*p)))..  
22300 20 20 7b 0a 09 20 20 20 20 20 20 2f 2a 20 6e 6f    {..      /* no
22310 20 6d 6f 72 65 20 44 49 52 5f 53 45 50 41 52 41   more DIR_SEPARA
22320 54 4f 52 53 20 6c 65 66 74 20 2a 2f 0a 09 20 20  TORS left */..  
22330 20 20 20 20 62 72 65 61 6b 3b 0a 09 20 20 20 20      break;..    
22340 7d 0a 09 20 20 2a 70 20 3d 20 27 5c 30 27 3b 0a  }..  *p = '\0';.
22350 09 7d 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 7b  .}.      else..{
22360 0a 09 20 20 6c 74 5f 66 61 74 61 6c 20 28 5f 5f  ..  lt_fatal (__
22370 46 49 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f  FILE__, __LINE__
22380 2c 0a 09 09 20 20 20 20 22 65 72 72 6f 72 20 61  ,...    "error a
22390 63 63 65 73 73 69 6e 67 20 66 69 6c 65 20 5c 22  ccessing file \"
223a0 25 73 5c 22 3a 20 25 73 22 2c 0a 09 09 20 20 20  %s\": %s",...   
223b0 20 74 6d 70 5f 70 61 74 68 73 70 65 63 2c 20 6e   tmp_pathspec, n
223c0 6f 6e 6e 75 6c 6c 20 28 73 74 72 65 72 72 6f 72  onnull (strerror
223d0 20 28 65 72 72 6e 6f 29 29 29 3b 0a 09 7d 0a 20   (errno)));..}. 
223e0 20 20 20 7d 0a 20 20 58 46 52 45 45 20 28 74 6d     }.  XFREE (tm
223f0 70 5f 70 61 74 68 73 70 65 63 29 3b 0a 0a 20 20  p_pathspec);..  
22400 69 66 20 28 21 68 61 73 5f 73 79 6d 6c 69 6e 6b  if (!has_symlink
22410 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 72  s).    {.      r
22420 65 74 75 72 6e 20 78 73 74 72 64 75 70 20 28 70  eturn xstrdup (p
22430 61 74 68 73 70 65 63 29 3b 0a 20 20 20 20 7d 0a  athspec);.    }.
22440 0a 20 20 74 6d 70 5f 70 61 74 68 73 70 65 63 20  .  tmp_pathspec 
22450 3d 20 72 65 61 6c 70 61 74 68 20 28 70 61 74 68  = realpath (path
22460 73 70 65 63 2c 20 62 75 66 29 3b 0a 20 20 69 66  spec, buf);.  if
22470 20 28 74 6d 70 5f 70 61 74 68 73 70 65 63 20 3d   (tmp_pathspec =
22480 3d 20 30 29 0a 20 20 20 20 7b 0a 20 20 20 20 20  = 0).    {.     
22490 20 6c 74 5f 66 61 74 61 6c 20 28 5f 5f 46 49 4c   lt_fatal (__FIL
224a0 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 0a 09  E__, __LINE__,..
224b0 09 22 63 6f 75 6c 64 20 6e 6f 74 20 66 6f 6c 6c  ."could not foll
224c0 6f 77 20 73 79 6d 6c 69 6e 6b 73 20 66 6f 72 20  ow symlinks for 
224d0 25 73 22 2c 20 70 61 74 68 73 70 65 63 29 3b 0a  %s", pathspec);.
224e0 20 20 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 78      }.  return x
224f0 73 74 72 64 75 70 20 28 74 6d 70 5f 70 61 74 68  strdup (tmp_path
22500 73 70 65 63 29 3b 0a 23 65 6e 64 69 66 0a 7d 0a  spec);.#endif.}.
22510 0a 63 68 61 72 20 2a 0a 73 74 72 65 6e 64 7a 61  .char *.strendza
22520 70 20 28 63 68 61 72 20 2a 73 74 72 2c 20 63 6f  p (char *str, co
22530 6e 73 74 20 63 68 61 72 20 2a 70 61 74 29 0a 7b  nst char *pat).{
22540 0a 20 20 73 69 7a 65 5f 74 20 6c 65 6e 2c 20 70  .  size_t len, p
22550 61 74 6c 65 6e 3b 0a 0a 20 20 61 73 73 65 72 74  atlen;..  assert
22560 20 28 73 74 72 20 21 3d 20 4e 55 4c 4c 29 3b 0a   (str != NULL);.
22570 20 20 61 73 73 65 72 74 20 28 70 61 74 20 21 3d    assert (pat !=
22580 20 4e 55 4c 4c 29 3b 0a 0a 20 20 6c 65 6e 20 3d   NULL);..  len =
22590 20 73 74 72 6c 65 6e 20 28 73 74 72 29 3b 0a 20   strlen (str);. 
225a0 20 70 61 74 6c 65 6e 20 3d 20 73 74 72 6c 65 6e   patlen = strlen
225b0 20 28 70 61 74 29 3b 0a 0a 20 20 69 66 20 28 70   (pat);..  if (p
225c0 61 74 6c 65 6e 20 3c 3d 20 6c 65 6e 29 0a 20 20  atlen <= len).  
225d0 20 20 7b 0a 20 20 20 20 20 20 73 74 72 20 2b 3d    {.      str +=
225e0 20 6c 65 6e 20 2d 20 70 61 74 6c 65 6e 3b 0a 20   len - patlen;. 
225f0 20 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 20       if (strcmp 
22600 28 73 74 72 2c 20 70 61 74 29 20 3d 3d 20 30 29  (str, pat) == 0)
22610 0a 09 2a 73 74 72 20 3d 20 27 5c 30 27 3b 0a 20  ..*str = '\0';. 
22620 20 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 73 74     }.  return st
22630 72 3b 0a 7d 0a 0a 76 6f 69 64 0a 6c 74 5f 64 65  r;.}..void.lt_de
22640 62 75 67 70 72 69 6e 74 66 20 28 63 6f 6e 73 74  bugprintf (const
22650 20 63 68 61 72 20 2a 66 69 6c 65 2c 20 69 6e 74   char *file, int
22660 20 6c 69 6e 65 2c 20 63 6f 6e 73 74 20 63 68 61   line, const cha
22670 72 20 2a 66 6d 74 2c 20 2e 2e 2e 29 0a 7b 0a 20  r *fmt, ...).{. 
22680 20 76 61 5f 6c 69 73 74 20 61 72 67 73 3b 0a 20   va_list args;. 
22690 20 69 66 20 28 6c 74 5f 64 65 62 75 67 29 0a 20   if (lt_debug). 
226a0 20 20 20 7b 0a 20 20 20 20 20 20 28 76 6f 69 64     {.      (void
226b0 29 20 66 70 72 69 6e 74 66 20 28 73 74 64 65 72  ) fprintf (stder
226c0 72 2c 20 22 25 73 3a 25 73 3a 25 64 3a 20 22 2c  r, "%s:%s:%d: ",
226d0 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 2c 20 66   program_name, f
226e0 69 6c 65 2c 20 6c 69 6e 65 29 3b 0a 20 20 20 20  ile, line);.    
226f0 20 20 76 61 5f 73 74 61 72 74 20 28 61 72 67 73    va_start (args
22700 2c 20 66 6d 74 29 3b 0a 20 20 20 20 20 20 28 76  , fmt);.      (v
22710 6f 69 64 29 20 76 66 70 72 69 6e 74 66 20 28 73  oid) vfprintf (s
22720 74 64 65 72 72 2c 20 66 6d 74 2c 20 61 72 67 73  tderr, fmt, args
22730 29 3b 0a 20 20 20 20 20 20 76 61 5f 65 6e 64 20  );.      va_end 
22740 28 61 72 67 73 29 3b 0a 20 20 20 20 7d 0a 7d 0a  (args);.    }.}.
22750 0a 73 74 61 74 69 63 20 76 6f 69 64 0a 6c 74 5f  .static void.lt_
22760 65 72 72 6f 72 5f 63 6f 72 65 20 28 69 6e 74 20  error_core (int 
22770 65 78 69 74 5f 73 74 61 74 75 73 2c 20 63 6f 6e  exit_status, con
22780 73 74 20 63 68 61 72 20 2a 66 69 6c 65 2c 0a 09  st char *file,..
22790 20 20 20 20 20 20 20 69 6e 74 20 6c 69 6e 65 2c         int line,
227a0 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 6f 64   const char *mod
227b0 65 2c 0a 09 20 20 20 20 20 20 20 63 6f 6e 73 74  e,..       const
227c0 20 63 68 61 72 20 2a 6d 65 73 73 61 67 65 2c 20   char *message, 
227d0 76 61 5f 6c 69 73 74 20 61 70 29 0a 7b 0a 20 20  va_list ap).{.  
227e0 66 70 72 69 6e 74 66 20 28 73 74 64 65 72 72 2c  fprintf (stderr,
227f0 20 22 25 73 3a 25 73 3a 25 64 3a 20 25 73 3a 20   "%s:%s:%d: %s: 
22800 22 2c 20 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 2c  ", program_name,
22810 20 66 69 6c 65 2c 20 6c 69 6e 65 2c 20 6d 6f 64   file, line, mod
22820 65 29 3b 0a 20 20 76 66 70 72 69 6e 74 66 20 28  e);.  vfprintf (
22830 73 74 64 65 72 72 2c 20 6d 65 73 73 61 67 65 2c  stderr, message,
22840 20 61 70 29 3b 0a 20 20 66 70 72 69 6e 74 66 20   ap);.  fprintf 
22850 28 73 74 64 65 72 72 2c 20 22 2e 5c 6e 22 29 3b  (stderr, ".\n");
22860 0a 0a 20 20 69 66 20 28 65 78 69 74 5f 73 74 61  ..  if (exit_sta
22870 74 75 73 20 3e 3d 20 30 29 0a 20 20 20 20 65 78  tus >= 0).    ex
22880 69 74 20 28 65 78 69 74 5f 73 74 61 74 75 73 29  it (exit_status)
22890 3b 0a 7d 0a 0a 76 6f 69 64 0a 6c 74 5f 66 61 74  ;.}..void.lt_fat
228a0 61 6c 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a  al (const char *
228b0 66 69 6c 65 2c 20 69 6e 74 20 6c 69 6e 65 2c 20  file, int line, 
228c0 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 65 73 73  const char *mess
228d0 61 67 65 2c 20 2e 2e 2e 29 0a 7b 0a 20 20 76 61  age, ...).{.  va
228e0 5f 6c 69 73 74 20 61 70 3b 0a 20 20 76 61 5f 73  _list ap;.  va_s
228f0 74 61 72 74 20 28 61 70 2c 20 6d 65 73 73 61 67  tart (ap, messag
22900 65 29 3b 0a 20 20 6c 74 5f 65 72 72 6f 72 5f 63  e);.  lt_error_c
22910 6f 72 65 20 28 45 58 49 54 5f 46 41 49 4c 55 52  ore (EXIT_FAILUR
22920 45 2c 20 66 69 6c 65 2c 20 6c 69 6e 65 2c 20 22  E, file, line, "
22930 46 41 54 41 4c 22 2c 20 6d 65 73 73 61 67 65 2c  FATAL", message,
22940 20 61 70 29 3b 0a 20 20 76 61 5f 65 6e 64 20 28   ap);.  va_end (
22950 61 70 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 63  ap);.}..static c
22960 6f 6e 73 74 20 63 68 61 72 20 2a 0a 6e 6f 6e 6e  onst char *.nonn
22970 75 6c 6c 20 28 63 6f 6e 73 74 20 63 68 61 72 20  ull (const char 
22980 2a 73 29 0a 7b 0a 20 20 72 65 74 75 72 6e 20 73  *s).{.  return s
22990 20 3f 20 73 20 3a 20 22 28 6e 75 6c 6c 29 22 3b   ? s : "(null)";
229a0 0a 7d 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74  .}..static const
229b0 20 63 68 61 72 20 2a 0a 6e 6f 6e 65 6d 70 74 79   char *.nonempty
229c0 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 29   (const char *s)
229d0 0a 7b 0a 20 20 72 65 74 75 72 6e 20 28 73 20 26  .{.  return (s &
229e0 26 20 21 2a 73 29 20 3f 20 22 28 65 6d 70 74 79  & !*s) ? "(empty
229f0 29 22 20 3a 20 6e 6f 6e 6e 75 6c 6c 20 28 73 29  )" : nonnull (s)
22a00 3b 0a 7d 0a 0a 76 6f 69 64 0a 6c 74 5f 73 65 74  ;.}..void.lt_set
22a10 65 6e 76 20 28 63 6f 6e 73 74 20 63 68 61 72 20  env (const char 
22a20 2a 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 63 68 61  *name, const cha
22a30 72 20 2a 76 61 6c 75 65 29 0a 7b 0a 20 20 6c 74  r *value).{.  lt
22a40 5f 64 65 62 75 67 70 72 69 6e 74 66 20 28 5f 5f  _debugprintf (__
22a50 46 49 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f  FILE__, __LINE__
22a60 2c 0a 09 09 20 20 22 28 6c 74 5f 73 65 74 65 6e  ,...  "(lt_seten
22a70 76 29 20 73 65 74 74 69 6e 67 20 27 25 73 27 20  v) setting '%s' 
22a80 74 6f 20 27 25 73 27 5c 6e 22 2c 0a 20 20 20 20  to '%s'\n",.    
22a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f                no
22aa0 6e 6e 75 6c 6c 20 28 6e 61 6d 65 29 2c 20 6e 6f  nnull (name), no
22ab0 6e 6e 75 6c 6c 20 28 76 61 6c 75 65 29 29 3b 0a  nnull (value));.
22ac0 20 20 7b 0a 23 69 66 64 65 66 20 48 41 56 45 5f    {.#ifdef HAVE_
22ad0 53 45 54 45 4e 56 0a 20 20 20 20 2f 2a 20 61 6c  SETENV.    /* al
22ae0 77 61 79 73 20 6d 61 6b 65 20 61 20 63 6f 70 79  ways make a copy
22af0 2c 20 66 6f 72 20 63 6f 6e 73 69 73 74 65 6e 63  , for consistenc
22b00 79 20 77 69 74 68 20 21 48 41 56 45 5f 53 45 54  y with !HAVE_SET
22b10 45 4e 56 20 2a 2f 0a 20 20 20 20 63 68 61 72 20  ENV */.    char 
22b20 2a 73 74 72 20 3d 20 78 73 74 72 64 75 70 20 28  *str = xstrdup (
22b30 76 61 6c 75 65 29 3b 0a 20 20 20 20 73 65 74 65  value);.    sete
22b40 6e 76 20 28 6e 61 6d 65 2c 20 73 74 72 2c 20 31  nv (name, str, 1
22b50 29 3b 0a 23 65 6c 73 65 0a 20 20 20 20 69 6e 74  );.#else.    int
22b60 20 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 20 28 6e   len = strlen (n
22b70 61 6d 65 29 20 2b 20 31 20 2b 20 73 74 72 6c 65  ame) + 1 + strle
22b80 6e 20 28 76 61 6c 75 65 29 20 2b 20 31 3b 0a 20  n (value) + 1;. 
22b90 20 20 20 63 68 61 72 20 2a 73 74 72 20 3d 20 58     char *str = X
22ba0 4d 41 4c 4c 4f 43 20 28 63 68 61 72 2c 20 6c 65  MALLOC (char, le
22bb0 6e 29 3b 0a 20 20 20 20 73 70 72 69 6e 74 66 20  n);.    sprintf 
22bc0 28 73 74 72 2c 20 22 25 73 3d 25 73 22 2c 20 6e  (str, "%s=%s", n
22bd0 61 6d 65 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20  ame, value);.   
22be0 20 69 66 20 28 70 75 74 65 6e 76 20 28 73 74 72   if (putenv (str
22bf0 29 20 21 3d 20 45 58 49 54 5f 53 55 43 43 45 53  ) != EXIT_SUCCES
22c00 53 29 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20  S).      {.     
22c10 20 20 20 58 46 52 45 45 20 28 73 74 72 29 3b 0a     XFREE (str);.
22c20 20 20 20 20 20 20 7d 0a 23 65 6e 64 69 66 0a 20        }.#endif. 
22c30 20 7d 0a 7d 0a 0a 63 68 61 72 20 2a 0a 6c 74 5f   }.}..char *.lt_
22c40 65 78 74 65 6e 64 5f 73 74 72 20 28 63 6f 6e 73  extend_str (cons
22c50 74 20 63 68 61 72 20 2a 6f 72 69 67 5f 76 61 6c  t char *orig_val
22c60 75 65 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a  ue, const char *
22c70 61 64 64 2c 20 69 6e 74 20 74 6f 5f 65 6e 64 29  add, int to_end)
22c80 0a 7b 0a 20 20 63 68 61 72 20 2a 6e 65 77 5f 76  .{.  char *new_v
22c90 61 6c 75 65 3b 0a 20 20 69 66 20 28 6f 72 69 67  alue;.  if (orig
22ca0 5f 76 61 6c 75 65 20 26 26 20 2a 6f 72 69 67 5f  _value && *orig_
22cb0 76 61 6c 75 65 29 0a 20 20 20 20 7b 0a 20 20 20  value).    {.   
22cc0 20 20 20 69 6e 74 20 6f 72 69 67 5f 76 61 6c 75     int orig_valu
22cd0 65 5f 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 20 28  e_len = strlen (
22ce0 6f 72 69 67 5f 76 61 6c 75 65 29 3b 0a 20 20 20  orig_value);.   
22cf0 20 20 20 69 6e 74 20 61 64 64 5f 6c 65 6e 20 3d     int add_len =
22d00 20 73 74 72 6c 65 6e 20 28 61 64 64 29 3b 0a 20   strlen (add);. 
22d10 20 20 20 20 20 6e 65 77 5f 76 61 6c 75 65 20 3d       new_value =
22d20 20 58 4d 41 4c 4c 4f 43 20 28 63 68 61 72 2c 20   XMALLOC (char, 
22d30 61 64 64 5f 6c 65 6e 20 2b 20 6f 72 69 67 5f 76  add_len + orig_v
22d40 61 6c 75 65 5f 6c 65 6e 20 2b 20 31 29 3b 0a 20  alue_len + 1);. 
22d50 20 20 20 20 20 69 66 20 28 74 6f 5f 65 6e 64 29       if (to_end)
22d60 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20  .        {.     
22d70 20 20 20 20 20 73 74 72 63 70 79 20 28 6e 65 77       strcpy (new
22d80 5f 76 61 6c 75 65 2c 20 6f 72 69 67 5f 76 61 6c  _value, orig_val
22d90 75 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 73  ue);.          s
22da0 74 72 63 70 79 20 28 6e 65 77 5f 76 61 6c 75 65  trcpy (new_value
22db0 20 2b 20 6f 72 69 67 5f 76 61 6c 75 65 5f 6c 65   + orig_value_le
22dc0 6e 2c 20 61 64 64 29 3b 0a 20 20 20 20 20 20 20  n, add);.       
22dd0 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20   }.      else.  
22de0 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
22df0 20 20 73 74 72 63 70 79 20 28 6e 65 77 5f 76 61    strcpy (new_va
22e00 6c 75 65 2c 20 61 64 64 29 3b 0a 20 20 20 20 20  lue, add);.     
22e10 20 20 20 20 20 73 74 72 63 70 79 20 28 6e 65 77       strcpy (new
22e20 5f 76 61 6c 75 65 20 2b 20 61 64 64 5f 6c 65 6e  _value + add_len
22e30 2c 20 6f 72 69 67 5f 76 61 6c 75 65 29 3b 0a 20  , orig_value);. 
22e40 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20         }.    }. 
22e50 20 65 6c 73 65 0a 20 20 20 20 7b 0a 20 20 20 20   else.    {.    
22e60 20 20 6e 65 77 5f 76 61 6c 75 65 20 3d 20 78 73    new_value = xs
22e70 74 72 64 75 70 20 28 61 64 64 29 3b 0a 20 20 20  trdup (add);.   
22e80 20 7d 0a 20 20 72 65 74 75 72 6e 20 6e 65 77 5f   }.  return new_
22e90 76 61 6c 75 65 3b 0a 7d 0a 0a 76 6f 69 64 0a 6c  value;.}..void.l
22ea0 74 5f 75 70 64 61 74 65 5f 65 78 65 5f 70 61 74  t_update_exe_pat
22eb0 68 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6e  h (const char *n
22ec0 61 6d 65 2c 20 63 6f 6e 73 74 20 63 68 61 72 20  ame, const char 
22ed0 2a 76 61 6c 75 65 29 0a 7b 0a 20 20 6c 74 5f 64  *value).{.  lt_d
22ee0 65 62 75 67 70 72 69 6e 74 66 20 28 5f 5f 46 49  ebugprintf (__FI
22ef0 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f 5f 2c 0a  LE__, __LINE__,.
22f00 09 09 20 20 22 28 6c 74 5f 75 70 64 61 74 65 5f  ..  "(lt_update_
22f10 65 78 65 5f 70 61 74 68 29 20 6d 6f 64 69 66 79  exe_path) modify
22f20 69 6e 67 20 27 25 73 27 20 62 79 20 70 72 65 70  ing '%s' by prep
22f30 65 6e 64 69 6e 67 20 27 25 73 27 5c 6e 22 2c 0a  ending '%s'\n",.
22f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
22f50 20 20 6e 6f 6e 6e 75 6c 6c 20 28 6e 61 6d 65 29    nonnull (name)
22f60 2c 20 6e 6f 6e 6e 75 6c 6c 20 28 76 61 6c 75 65  , nonnull (value
22f70 29 29 3b 0a 0a 20 20 69 66 20 28 6e 61 6d 65 20  ));..  if (name 
22f80 26 26 20 2a 6e 61 6d 65 20 26 26 20 76 61 6c 75  && *name && valu
22f90 65 20 26 26 20 2a 76 61 6c 75 65 29 0a 20 20 20  e && *value).   
22fa0 20 7b 0a 20 20 20 20 20 20 63 68 61 72 20 2a 6e   {.      char *n
22fb0 65 77 5f 76 61 6c 75 65 20 3d 20 6c 74 5f 65 78  ew_value = lt_ex
22fc0 74 65 6e 64 5f 73 74 72 20 28 67 65 74 65 6e 76  tend_str (getenv
22fd0 20 28 6e 61 6d 65 29 2c 20 76 61 6c 75 65 2c 20   (name), value, 
22fe0 30 29 3b 0a 20 20 20 20 20 20 2f 2a 20 73 6f 6d  0);.      /* som
22ff0 65 20 73 79 73 74 65 6d 73 20 63 61 6e 27 74 20  e systems can't 
23000 63 6f 70 65 20 77 69 74 68 20 61 20 27 3a 27 2d  cope with a ':'-
23010 74 65 72 6d 69 6e 61 74 65 64 20 70 61 74 68 20  terminated path 
23020 23 27 20 2a 2f 0a 20 20 20 20 20 20 69 6e 74 20  #' */.      int 
23030 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 20 28 6e 65  len = strlen (ne
23040 77 5f 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20  w_value);.      
23050 77 68 69 6c 65 20 28 28 28 6c 65 6e 20 3d 20 73  while (((len = s
23060 74 72 6c 65 6e 20 28 6e 65 77 5f 76 61 6c 75 65  trlen (new_value
23070 29 29 20 3e 20 30 29 20 26 26 20 49 53 5f 50 41  )) > 0) && IS_PA
23080 54 48 5f 53 45 50 41 52 41 54 4f 52 20 28 6e 65  TH_SEPARATOR (ne
23090 77 5f 76 61 6c 75 65 5b 6c 65 6e 2d 31 5d 29 29  w_value[len-1]))
230a0 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20  .        {.     
230b0 20 20 20 20 20 6e 65 77 5f 76 61 6c 75 65 5b 6c       new_value[l
230c0 65 6e 2d 31 5d 20 3d 20 27 5c 30 27 3b 0a 20 20  en-1] = '\0';.  
230d0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 6c 74        }.      lt
230e0 5f 73 65 74 65 6e 76 20 28 6e 61 6d 65 2c 20 6e  _setenv (name, n
230f0 65 77 5f 76 61 6c 75 65 29 3b 0a 20 20 20 20 20  ew_value);.     
23100 20 58 46 52 45 45 20 28 6e 65 77 5f 76 61 6c 75   XFREE (new_valu
23110 65 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 76 6f 69  e);.    }.}..voi
23120 64 0a 6c 74 5f 75 70 64 61 74 65 5f 6c 69 62 5f  d.lt_update_lib_
23130 70 61 74 68 20 28 63 6f 6e 73 74 20 63 68 61 72  path (const char
23140 20 2a 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 63 68   *name, const ch
23150 61 72 20 2a 76 61 6c 75 65 29 0a 7b 0a 20 20 6c  ar *value).{.  l
23160 74 5f 64 65 62 75 67 70 72 69 6e 74 66 20 28 5f  t_debugprintf (_
23170 5f 46 49 4c 45 5f 5f 2c 20 5f 5f 4c 49 4e 45 5f  _FILE__, __LINE_
23180 5f 2c 0a 09 09 20 20 22 28 6c 74 5f 75 70 64 61  _,...  "(lt_upda
23190 74 65 5f 6c 69 62 5f 70 61 74 68 29 20 6d 6f 64  te_lib_path) mod
231a0 69 66 79 69 6e 67 20 27 25 73 27 20 62 79 20 70  ifying '%s' by p
231b0 72 65 70 65 6e 64 69 6e 67 20 27 25 73 27 5c 6e  repending '%s'\n
231c0 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ",.             
231d0 20 20 20 20 20 6e 6f 6e 6e 75 6c 6c 20 28 6e 61       nonnull (na
231e0 6d 65 29 2c 20 6e 6f 6e 6e 75 6c 6c 20 28 76 61  me), nonnull (va
231f0 6c 75 65 29 29 3b 0a 0a 20 20 69 66 20 28 6e 61  lue));..  if (na
23200 6d 65 20 26 26 20 2a 6e 61 6d 65 20 26 26 20 76  me && *name && v
23210 61 6c 75 65 20 26 26 20 2a 76 61 6c 75 65 29 0a  alue && *value).
23220 20 20 20 20 7b 0a 20 20 20 20 20 20 63 68 61 72      {.      char
23230 20 2a 6e 65 77 5f 76 61 6c 75 65 20 3d 20 6c 74   *new_value = lt
23240 5f 65 78 74 65 6e 64 5f 73 74 72 20 28 67 65 74  _extend_str (get
23250 65 6e 76 20 28 6e 61 6d 65 29 2c 20 76 61 6c 75  env (name), valu
23260 65 2c 20 30 29 3b 0a 20 20 20 20 20 20 6c 74 5f  e, 0);.      lt_
23270 73 65 74 65 6e 76 20 28 6e 61 6d 65 2c 20 6e 65  setenv (name, ne
23280 77 5f 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20  w_value);.      
23290 58 46 52 45 45 20 28 6e 65 77 5f 76 61 6c 75 65  XFREE (new_value
232a0 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 45 4f 46 0a  );.    }.}..EOF.
232b0 09 20 20 20 20 63 61 73 65 20 24 68 6f 73 74 5f  .    case $host_
232c0 6f 73 20 69 6e 0a 09 20 20 20 20 20 20 6d 69 6e  os in..      min
232d0 67 77 2a 29 0a 09 09 63 61 74 20 3c 3c 22 45 4f  gw*)...cat <<"EO
232e0 46 22 0a 0a 2f 2a 20 50 72 65 70 61 72 65 73 20  F"../* Prepares 
232f0 61 6e 20 61 72 67 75 6d 65 6e 74 20 76 65 63 74  an argument vect
23300 6f 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e  or before callin
23310 67 20 73 70 61 77 6e 28 29 2e 0a 20 20 20 4e 6f  g spawn()..   No
23320 74 65 20 74 68 61 74 20 73 70 61 77 6e 28 29 20  te that spawn() 
23330 64 6f 65 73 20 6e 6f 74 20 62 79 20 69 74 73 65  does not by itse
23340 6c 66 20 63 61 6c 6c 20 74 68 65 20 63 6f 6d 6d  lf call the comm
23350 61 6e 64 20 69 6e 74 65 72 70 72 65 74 65 72 0a  and interpreter.
23360 20 20 20 20 20 28 67 65 74 65 6e 76 20 28 22 43       (getenv ("C
23370 4f 4d 53 50 45 43 22 29 20 21 3d 20 4e 55 4c 4c  OMSPEC") != NULL
23380 20 3f 20 67 65 74 65 6e 76 20 28 22 43 4f 4d 53   ? getenv ("COMS
23390 50 45 43 22 29 20 3a 0a 20 20 20 20 20 20 28 7b  PEC") :.      ({
233a0 20 4f 53 56 45 52 53 49 4f 4e 49 4e 46 4f 20 76   OSVERSIONINFO v
233b0 3b 20 76 2e 64 77 4f 53 56 65 72 73 69 6f 6e 49  ; v.dwOSVersionI
233c0 6e 66 6f 53 69 7a 65 20 3d 20 73 69 7a 65 6f 66  nfoSize = sizeof
233d0 28 4f 53 56 45 52 53 49 4f 4e 49 4e 46 4f 29 3b  (OSVERSIONINFO);
233e0 0a 20 20 20 20 20 20 20 20 20 47 65 74 56 65 72  .         GetVer
233f0 73 69 6f 6e 45 78 28 26 76 29 3b 0a 20 20 20 20  sionEx(&v);.    
23400 20 20 20 20 20 76 2e 64 77 50 6c 61 74 66 6f 72       v.dwPlatfor
23410 6d 49 64 20 3d 3d 20 56 45 52 5f 50 4c 41 54 46  mId == VER_PLATF
23420 4f 52 4d 5f 57 49 4e 33 32 5f 4e 54 3b 0a 20 20  ORM_WIN32_NT;.  
23430 20 20 20 20 7d 29 20 3f 20 22 63 6d 64 2e 65 78      }) ? "cmd.ex
23440 65 22 20 3a 20 22 63 6f 6d 6d 61 6e 64 2e 63 6f  e" : "command.co
23450 6d 22 29 2e 0a 20 20 20 49 6e 73 74 65 61 64 20  m")..   Instead 
23460 69 74 20 73 69 6d 70 6c 79 20 63 6f 6e 63 61 74  it simply concat
23470 65 6e 61 74 65 73 20 74 68 65 20 61 72 67 75 6d  enates the argum
23480 65 6e 74 73 2c 20 73 65 70 61 72 61 74 65 64 20  ents, separated 
23490 62 79 20 27 20 27 2c 20 61 6e 64 20 63 61 6c 6c  by ' ', and call
234a0 73 0a 20 20 20 43 72 65 61 74 65 50 72 6f 63 65  s.   CreateProce
234b0 73 73 28 29 2e 20 20 57 65 20 6d 75 73 74 20 71  ss().  We must q
234c0 75 6f 74 65 20 74 68 65 20 61 72 67 75 6d 65 6e  uote the argumen
234d0 74 73 20 73 69 6e 63 65 20 57 69 6e 33 32 20 43  ts since Win32 C
234e0 72 65 61 74 65 50 72 6f 63 65 73 73 28 29 0a 20  reateProcess(). 
234f0 20 20 69 6e 74 65 72 70 72 65 74 73 20 63 68 61    interprets cha
23500 72 61 63 74 65 72 73 20 6c 69 6b 65 20 27 20 27  racters like ' '
23510 2c 20 27 5c 74 27 2c 20 27 5c 5c 27 2c 20 27 22  , '\t', '\\', '"
23520 27 20 28 62 75 74 20 6e 6f 74 20 27 3c 27 20 61  ' (but not '<' a
23530 6e 64 20 27 3e 27 29 20 69 6e 20 61 0a 20 20 20  nd '>') in a.   
23540 73 70 65 63 69 61 6c 20 77 61 79 3a 0a 20 20 20  special way:.   
23550 2d 20 53 70 61 63 65 20 61 6e 64 20 74 61 62 20  - Space and tab 
23560 61 72 65 20 69 6e 74 65 72 70 72 65 74 65 64 20  are interpreted 
23570 61 73 20 64 65 6c 69 6d 69 74 65 72 73 2e 20 54  as delimiters. T
23580 68 65 79 20 61 72 65 20 6e 6f 74 20 74 72 65 61  hey are not trea
23590 74 65 64 20 61 73 0a 20 20 20 20 20 64 65 6c 69  ted as.     deli
235a0 6d 69 74 65 72 73 20 69 66 20 74 68 65 79 20 61  miters if they a
235b0 72 65 20 73 75 72 72 6f 75 6e 64 65 64 20 62 79  re surrounded by
235c0 20 64 6f 75 62 6c 65 20 71 75 6f 74 65 73 3a 20   double quotes: 
235d0 22 2e 2e 2e 22 2e 0a 20 20 20 2d 20 55 6e 65 73  "..."..   - Unes
235e0 63 61 70 65 64 20 64 6f 75 62 6c 65 20 71 75 6f  caped double quo
235f0 74 65 73 20 61 72 65 20 72 65 6d 6f 76 65 64 20  tes are removed 
23600 66 72 6f 6d 20 74 68 65 20 69 6e 70 75 74 2e 20  from the input. 
23610 54 68 65 69 72 20 6f 6e 6c 79 20 65 66 66 65 63  Their only effec
23620 74 20 69 73 0a 20 20 20 20 20 74 68 61 74 20 77  t is.     that w
23630 69 74 68 69 6e 20 64 6f 75 62 6c 65 20 71 75 6f  ithin double quo
23640 74 65 73 2c 20 73 70 61 63 65 20 61 6e 64 20 74  tes, space and t
23650 61 62 20 61 72 65 20 74 72 65 61 74 65 64 20 6c  ab are treated l
23660 69 6b 65 20 6e 6f 72 6d 61 6c 0a 20 20 20 20 20  ike normal.     
23670 63 68 61 72 61 63 74 65 72 73 2e 0a 20 20 20 2d  characters..   -
23680 20 42 61 63 6b 73 6c 61 73 68 65 73 20 6e 6f 74   Backslashes not
23690 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 64 6f 75   followed by dou
236a0 62 6c 65 20 71 75 6f 74 65 73 20 61 72 65 20 6e  ble quotes are n
236b0 6f 74 20 73 70 65 63 69 61 6c 2e 0a 20 20 20 2d  ot special..   -
236c0 20 42 75 74 20 32 2a 6e 2b 31 20 62 61 63 6b 73   But 2*n+1 backs
236d0 6c 61 73 68 65 73 20 66 6f 6c 6c 6f 77 65 64 20  lashes followed 
236e0 62 79 20 61 20 64 6f 75 62 6c 65 20 71 75 6f 74  by a double quot
236f0 65 20 62 65 63 6f 6d 65 0a 20 20 20 20 20 6e 20  e become.     n 
23700 62 61 63 6b 73 6c 61 73 68 65 73 20 66 6f 6c 6c  backslashes foll
23710 6f 77 65 64 20 62 79 20 61 20 64 6f 75 62 6c 65  owed by a double
23720 20 71 75 6f 74 65 20 28 6e 20 3e 3d 20 30 29 3a   quote (n >= 0):
23730 0a 20 20 20 20 20 20 20 5c 22 20 2d 3e 20 22 0a  .       \" -> ".
23740 20 20 20 20 20 20 20 5c 5c 5c 22 20 2d 3e 20 5c         \\\" -> \
23750 22 0a 20 20 20 20 20 20 20 5c 5c 5c 5c 5c 22 20  ".       \\\\\" 
23760 2d 3e 20 5c 5c 22 0a 20 2a 2f 0a 23 64 65 66 69  -> \\". */.#defi
23770 6e 65 20 53 48 45 4c 4c 5f 53 50 45 43 49 41 4c  ne SHELL_SPECIAL
23780 5f 43 48 41 52 53 20 22 5c 22 5c 5c 20 5c 30 30  _CHARS "\"\\ \00
23790 31 5c 30 30 32 5c 30 30 33 5c 30 30 34 5c 30 30  1\002\003\004\00
237a0 35 5c 30 30 36 5c 30 30 37 5c 30 31 30 5c 30 31  5\006\007\010\01
237b0 31 5c 30 31 32 5c 30 31 33 5c 30 31 34 5c 30 31  1\012\013\014\01
237c0 35 5c 30 31 36 5c 30 31 37 5c 30 32 30 5c 30 32  5\016\017\020\02
237d0 31 5c 30 32 32 5c 30 32 33 5c 30 32 34 5c 30 32  1\022\023\024\02
237e0 35 5c 30 32 36 5c 30 32 37 5c 30 33 30 5c 30 33  5\026\027\030\03
237f0 31 5c 30 33 32 5c 30 33 33 5c 30 33 34 5c 30 33  1\032\033\034\03
23800 35 5c 30 33 36 5c 30 33 37 22 0a 23 64 65 66 69  5\036\037".#defi
23810 6e 65 20 53 48 45 4c 4c 5f 53 50 41 43 45 5f 43  ne SHELL_SPACE_C
23820 48 41 52 53 20 22 20 5c 30 30 31 5c 30 30 32 5c  HARS " \001\002\
23830 30 30 33 5c 30 30 34 5c 30 30 35 5c 30 30 36 5c  003\004\005\006\
23840 30 30 37 5c 30 31 30 5c 30 31 31 5c 30 31 32 5c  007\010\011\012\
23850 30 31 33 5c 30 31 34 5c 30 31 35 5c 30 31 36 5c  013\014\015\016\
23860 30 31 37 5c 30 32 30 5c 30 32 31 5c 30 32 32 5c  017\020\021\022\
23870 30 32 33 5c 30 32 34 5c 30 32 35 5c 30 32 36 5c  023\024\025\026\
23880 30 32 37 5c 30 33 30 5c 30 33 31 5c 30 33 32 5c  027\030\031\032\
23890 30 33 33 5c 30 33 34 5c 30 33 35 5c 30 33 36 5c  033\034\035\036\
238a0 30 33 37 22 0a 63 68 61 72 20 2a 2a 0a 70 72 65  037".char **.pre
238b0 70 61 72 65 5f 73 70 61 77 6e 20 28 63 68 61 72  pare_spawn (char
238c0 20 2a 2a 61 72 67 76 29 0a 7b 0a 20 20 73 69 7a   **argv).{.  siz
238d0 65 5f 74 20 61 72 67 63 3b 0a 20 20 63 68 61 72  e_t argc;.  char
238e0 20 2a 2a 6e 65 77 5f 61 72 67 76 3b 0a 20 20 73   **new_argv;.  s
238f0 69 7a 65 5f 74 20 69 3b 0a 0a 20 20 2f 2a 20 43  ize_t i;..  /* C
23900 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 61  ount number of a
23910 72 67 75 6d 65 6e 74 73 2e 20 20 2a 2f 0a 20 20  rguments.  */.  
23920 66 6f 72 20 28 61 72 67 63 20 3d 20 30 3b 20 61  for (argc = 0; a
23930 72 67 76 5b 61 72 67 63 5d 20 21 3d 20 4e 55 4c  rgv[argc] != NUL
23940 4c 3b 20 61 72 67 63 2b 2b 29 0a 20 20 20 20 3b  L; argc++).    ;
23950 0a 0a 20 20 2f 2a 20 41 6c 6c 6f 63 61 74 65 20  ..  /* Allocate 
23960 6e 65 77 20 61 72 67 75 6d 65 6e 74 20 76 65 63  new argument vec
23970 74 6f 72 2e 20 20 2a 2f 0a 20 20 6e 65 77 5f 61  tor.  */.  new_a
23980 72 67 76 20 3d 20 58 4d 41 4c 4c 4f 43 20 28 63  rgv = XMALLOC (c
23990 68 61 72 20 2a 2c 20 61 72 67 63 20 2b 20 31 29  har *, argc + 1)
239a0 3b 0a 0a 20 20 2f 2a 20 50 75 74 20 71 75 6f 74  ;..  /* Put quot
239b0 65 64 20 61 72 67 75 6d 65 6e 74 73 20 69 6e 74  ed arguments int
239c0 6f 20 74 68 65 20 6e 65 77 20 61 72 67 75 6d 65  o the new argume
239d0 6e 74 20 76 65 63 74 6f 72 2e 20 20 2a 2f 0a 20  nt vector.  */. 
239e0 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 69 20 3c   for (i = 0; i <
239f0 20 61 72 67 63 3b 20 69 2b 2b 29 0a 20 20 20 20   argc; i++).    
23a00 7b 0a 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68  {.      const ch
23a10 61 72 20 2a 73 74 72 69 6e 67 20 3d 20 61 72 67  ar *string = arg
23a20 76 5b 69 5d 3b 0a 0a 20 20 20 20 20 20 69 66 20  v[i];..      if 
23a30 28 73 74 72 69 6e 67 5b 30 5d 20 3d 3d 20 27 5c  (string[0] == '\
23a40 30 27 29 0a 09 6e 65 77 5f 61 72 67 76 5b 69 5d  0')..new_argv[i]
23a50 20 3d 20 78 73 74 72 64 75 70 20 28 22 5c 22 5c   = xstrdup ("\"\
23a60 22 22 29 3b 0a 20 20 20 20 20 20 65 6c 73 65 20  "");.      else 
23a70 69 66 20 28 73 74 72 70 62 72 6b 20 28 73 74 72  if (strpbrk (str
23a80 69 6e 67 2c 20 53 48 45 4c 4c 5f 53 50 45 43 49  ing, SHELL_SPECI
23a90 41 4c 5f 43 48 41 52 53 29 20 21 3d 20 4e 55 4c  AL_CHARS) != NUL
23aa0 4c 29 0a 09 7b 0a 09 20 20 69 6e 74 20 71 75 6f  L)..{..  int quo
23ab0 74 65 5f 61 72 6f 75 6e 64 20 3d 20 28 73 74 72  te_around = (str
23ac0 70 62 72 6b 20 28 73 74 72 69 6e 67 2c 20 53 48  pbrk (string, SH
23ad0 45 4c 4c 5f 53 50 41 43 45 5f 43 48 41 52 53 29  ELL_SPACE_CHARS)
23ae0 20 21 3d 20 4e 55 4c 4c 29 3b 0a 09 20 20 73 69   != NULL);..  si
23af0 7a 65 5f 74 20 6c 65 6e 67 74 68 3b 0a 09 20 20  ze_t length;..  
23b00 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 61 63  unsigned int bac
23b10 6b 73 6c 61 73 68 65 73 3b 0a 09 20 20 63 6f 6e  kslashes;..  con
23b20 73 74 20 63 68 61 72 20 2a 73 3b 0a 09 20 20 63  st char *s;..  c
23b30 68 61 72 20 2a 71 75 6f 74 65 64 5f 73 74 72 69  har *quoted_stri
23b40 6e 67 3b 0a 09 20 20 63 68 61 72 20 2a 70 3b 0a  ng;..  char *p;.
23b50 0a 09 20 20 6c 65 6e 67 74 68 20 3d 20 30 3b 0a  ..  length = 0;.
23b60 09 20 20 62 61 63 6b 73 6c 61 73 68 65 73 20 3d  .  backslashes =
23b70 20 30 3b 0a 09 20 20 69 66 20 28 71 75 6f 74 65   0;..  if (quote
23b80 5f 61 72 6f 75 6e 64 29 0a 09 20 20 20 20 6c 65  _around)..    le
23b90 6e 67 74 68 2b 2b 3b 0a 09 20 20 66 6f 72 20 28  ngth++;..  for (
23ba0 73 20 3d 20 73 74 72 69 6e 67 3b 20 2a 73 20 21  s = string; *s !
23bb0 3d 20 27 5c 30 27 3b 20 73 2b 2b 29 0a 09 20 20  = '\0'; s++)..  
23bc0 20 20 7b 0a 09 20 20 20 20 20 20 63 68 61 72 20    {..      char 
23bd0 63 20 3d 20 2a 73 3b 0a 09 20 20 20 20 20 20 69  c = *s;..      i
23be0 66 20 28 63 20 3d 3d 20 27 22 27 29 0a 09 09 6c  f (c == '"')...l
23bf0 65 6e 67 74 68 20 2b 3d 20 62 61 63 6b 73 6c 61  ength += backsla
23c00 73 68 65 73 20 2b 20 31 3b 0a 09 20 20 20 20 20  shes + 1;..     
23c10 20 6c 65 6e 67 74 68 2b 2b 3b 0a 09 20 20 20 20   length++;..    
23c20 20 20 69 66 20 28 63 20 3d 3d 20 27 5c 5c 27 29    if (c == '\\')
23c30 0a 09 09 62 61 63 6b 73 6c 61 73 68 65 73 2b 2b  ...backslashes++
23c40 3b 0a 09 20 20 20 20 20 20 65 6c 73 65 0a 09 09  ;..      else...
23c50 62 61 63 6b 73 6c 61 73 68 65 73 20 3d 20 30 3b  backslashes = 0;
23c60 0a 09 20 20 20 20 7d 0a 09 20 20 69 66 20 28 71  ..    }..  if (q
23c70 75 6f 74 65 5f 61 72 6f 75 6e 64 29 0a 09 20 20  uote_around)..  
23c80 20 20 6c 65 6e 67 74 68 20 2b 3d 20 62 61 63 6b    length += back
23c90 73 6c 61 73 68 65 73 20 2b 20 31 3b 0a 0a 09 20  slashes + 1;... 
23ca0 20 71 75 6f 74 65 64 5f 73 74 72 69 6e 67 20 3d   quoted_string =
23cb0 20 58 4d 41 4c 4c 4f 43 20 28 63 68 61 72 2c 20   XMALLOC (char, 
23cc0 6c 65 6e 67 74 68 20 2b 20 31 29 3b 0a 0a 09 20  length + 1);... 
23cd0 20 70 20 3d 20 71 75 6f 74 65 64 5f 73 74 72 69   p = quoted_stri
23ce0 6e 67 3b 0a 09 20 20 62 61 63 6b 73 6c 61 73 68  ng;..  backslash
23cf0 65 73 20 3d 20 30 3b 0a 09 20 20 69 66 20 28 71  es = 0;..  if (q
23d00 75 6f 74 65 5f 61 72 6f 75 6e 64 29 0a 09 20 20  uote_around)..  
23d10 20 20 2a 70 2b 2b 20 3d 20 27 22 27 3b 0a 09 20    *p++ = '"';.. 
23d20 20 66 6f 72 20 28 73 20 3d 20 73 74 72 69 6e 67   for (s = string
23d30 3b 20 2a 73 20 21 3d 20 27 5c 30 27 3b 20 73 2b  ; *s != '\0'; s+
23d40 2b 29 0a 09 20 20 20 20 7b 0a 09 20 20 20 20 20  +)..    {..     
23d50 20 63 68 61 72 20 63 20 3d 20 2a 73 3b 0a 09 20   char c = *s;.. 
23d60 20 20 20 20 20 69 66 20 28 63 20 3d 3d 20 27 22       if (c == '"
23d70 27 29 0a 09 09 7b 0a 09 09 20 20 75 6e 73 69 67  ')...{...  unsig
23d80 6e 65 64 20 69 6e 74 20 6a 3b 0a 09 09 20 20 66  ned int j;...  f
23d90 6f 72 20 28 6a 20 3d 20 62 61 63 6b 73 6c 61 73  or (j = backslas
23da0 68 65 73 20 2b 20 31 3b 20 6a 20 3e 20 30 3b 20  hes + 1; j > 0; 
23db0 6a 2d 2d 29 0a 09 09 20 20 20 20 2a 70 2b 2b 20  j--)...    *p++ 
23dc0 3d 20 27 5c 5c 27 3b 0a 09 09 7d 0a 09 20 20 20  = '\\';...}..   
23dd0 20 20 20 2a 70 2b 2b 20 3d 20 63 3b 0a 09 20 20     *p++ = c;..  
23de0 20 20 20 20 69 66 20 28 63 20 3d 3d 20 27 5c 5c      if (c == '\\
23df0 27 29 0a 09 09 62 61 63 6b 73 6c 61 73 68 65 73  ')...backslashes
23e00 2b 2b 3b 0a 09 20 20 20 20 20 20 65 6c 73 65 0a  ++;..      else.
23e10 09 09 62 61 63 6b 73 6c 61 73 68 65 73 20 3d 20  ..backslashes = 
23e20 30 3b 0a 09 20 20 20 20 7d 0a 09 20 20 69 66 20  0;..    }..  if 
23e30 28 71 75 6f 74 65 5f 61 72 6f 75 6e 64 29 0a 09  (quote_around)..
23e40 20 20 20 20 7b 0a 09 20 20 20 20 20 20 75 6e 73      {..      uns
23e50 69 67 6e 65 64 20 69 6e 74 20 6a 3b 0a 09 20 20  igned int j;..  
23e60 20 20 20 20 66 6f 72 20 28 6a 20 3d 20 62 61 63      for (j = bac
23e70 6b 73 6c 61 73 68 65 73 3b 20 6a 20 3e 20 30 3b  kslashes; j > 0;
23e80 20 6a 2d 2d 29 0a 09 09 2a 70 2b 2b 20 3d 20 27   j--)...*p++ = '
23e90 5c 5c 27 3b 0a 09 20 20 20 20 20 20 2a 70 2b 2b  \\';..      *p++
23ea0 20 3d 20 27 22 27 3b 0a 09 20 20 20 20 7d 0a 09   = '"';..    }..
23eb0 20 20 2a 70 20 3d 20 27 5c 30 27 3b 0a 0a 09 20    *p = '\0';... 
23ec0 20 6e 65 77 5f 61 72 67 76 5b 69 5d 20 3d 20 71   new_argv[i] = q
23ed0 75 6f 74 65 64 5f 73 74 72 69 6e 67 3b 0a 09 7d  uoted_string;..}
23ee0 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 6e 65 77  .      else..new
23ef0 5f 61 72 67 76 5b 69 5d 20 3d 20 28 63 68 61 72  _argv[i] = (char
23f00 20 2a 29 20 73 74 72 69 6e 67 3b 0a 20 20 20 20   *) string;.    
23f10 7d 0a 20 20 6e 65 77 5f 61 72 67 76 5b 61 72 67  }.  new_argv[arg
23f20 63 5d 20 3d 20 4e 55 4c 4c 3b 0a 0a 20 20 72 65  c] = NULL;..  re
23f30 74 75 72 6e 20 6e 65 77 5f 61 72 67 76 3b 0a 7d  turn new_argv;.}
23f40 0a 45 4f 46 0a 09 09 3b 3b 0a 09 20 20 20 20 65  .EOF...;;..    e
23f50 73 61 63 0a 0a 20 20 20 20 20 20 20 20 20 20 20  sac..           
23f60 20 63 61 74 20 3c 3c 22 45 4f 46 22 0a 76 6f 69   cat <<"EOF".voi
23f70 64 20 6c 74 5f 64 75 6d 70 5f 73 63 72 69 70 74  d lt_dump_script
23f80 20 28 46 49 4c 45 2a 20 66 29 0a 7b 0a 45 4f 46   (FILE* f).{.EOF
23f90 0a 09 20 20 20 20 66 75 6e 63 5f 65 6d 69 74 5f  ..    func_emit_
23fa0 77 72 61 70 70 65 72 20 79 65 73 20 7c 0a 09 20  wrapper yes |.. 
23fb0 20 20 20 20 20 24 53 45 44 20 2d 6e 20 2d 65 20       $SED -n -e 
23fc0 27 0a 73 2f 5e 5c 28 2e 5c 7b 37 39 5c 7d 5c 29  '.s/^\(.\{79\}\)
23fd0 5c 28 2e 2e 2a 5c 29 2f 5c 31 5c 0a 5c 32 2f 0a  \(..*\)/\1\.\2/.
23fe0 68 0a 73 2f 5c 28 5b 5c 5c 22 5d 5c 29 2f 5c 5c  h.s/\([\\"]\)/\\
23ff0 5c 31 2f 67 0a 73 2f 24 2f 5c 5c 6e 2f 0a 73 2f  \1/g.s/$/\\n/.s/
24000 5c 28 5b 5e 5c 6e 5d 2a 5c 29 2e 2a 2f 20 20 66  \([^\n]*\).*/  f
24010 70 75 74 73 20 28 22 5c 31 22 2c 20 66 29 3b 2f  puts ("\1", f);/
24020 70 0a 67 0a 44 27 0a 20 20 20 20 20 20 20 20 20  p.g.D'.         
24030 20 20 20 63 61 74 20 3c 3c 22 45 4f 46 22 0a 7d     cat <<"EOF".}
24040 0a 45 4f 46 0a 7d 0a 23 20 65 6e 64 3a 20 66 75  .EOF.}.# end: fu
24050 6e 63 5f 65 6d 69 74 5f 63 77 72 61 70 70 65 72  nc_emit_cwrapper
24060 65 78 65 5f 73 72 63 0a 0a 23 20 66 75 6e 63 5f  exe_src..# func_
24070 77 69 6e 33 32 5f 69 6d 70 6f 72 74 5f 6c 69 62  win32_import_lib
24080 5f 70 20 41 52 47 0a 23 20 54 72 75 65 20 69 66  _p ARG.# True if
24090 20 41 52 47 20 69 73 20 61 6e 20 69 6d 70 6f 72   ARG is an impor
240a0 74 20 6c 69 62 2c 20 61 73 20 69 6e 64 69 63 61  t lib, as indica
240b0 74 65 64 20 62 79 20 24 66 69 6c 65 5f 6d 61 67  ted by $file_mag
240c0 69 63 5f 63 6d 64 0a 66 75 6e 63 5f 77 69 6e 33  ic_cmd.func_win3
240d0 32 5f 69 6d 70 6f 72 74 5f 6c 69 62 5f 70 20 28  2_import_lib_p (
240e0 29 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65 62  ).{.    $opt_deb
240f0 75 67 0a 20 20 20 20 63 61 73 65 20 60 65 76 61  ug.    case `eva
24100 6c 20 24 66 69 6c 65 5f 6d 61 67 69 63 5f 63 6d  l $file_magic_cm
24110 64 20 5c 22 5c 24 31 5c 22 20 32 3e 2f 64 65 76  d \"\$1\" 2>/dev
24120 2f 6e 75 6c 6c 20 7c 20 24 53 45 44 20 2d 65 20  /null | $SED -e 
24130 31 30 71 60 20 69 6e 0a 20 20 20 20 2a 69 6d 70  10q` in.    *imp
24140 6f 72 74 2a 29 20 3a 20 3b 3b 0a 20 20 20 20 2a  ort*) : ;;.    *
24150 29 20 66 61 6c 73 65 20 3b 3b 0a 20 20 20 20 65  ) false ;;.    e
24160 73 61 63 0a 7d 0a 0a 23 20 66 75 6e 63 5f 6d 6f  sac.}..# func_mo
24170 64 65 5f 6c 69 6e 6b 20 61 72 67 2e 2e 2e 0a 66  de_link arg....f
24180 75 6e 63 5f 6d 6f 64 65 5f 6c 69 6e 6b 20 28 29  unc_mode_link ()
24190 0a 7b 0a 20 20 20 20 24 6f 70 74 5f 64 65 62 75  .{.    $opt_debu
241a0 67 0a 20 20 20 20 63 61 73 65 20 24 68 6f 73 74  g.    case $host
241b0 20 69 6e 0a 20 20 20 20 2a 2d 2a 2d 63 79 67 77   in.    *-*-cygw
241c0 69 6e 2a 20 7c 20 2a 2d 2a 2d 6d 69 6e 67 77 2a  in* | *-*-mingw*
241d0 20 7c 20 2a 2d 2a 2d 70 77 33 32 2a 20 7c 20 2a   | *-*-pw32* | *
241e0 2d 2a 2d 6f 73 32 2a 20 7c 20 2a 2d 63 65 67 63  -*-os2* | *-cegc
241f0 63 2a 29 0a 20 20 20 20 20 20 23 20 49 74 20 69  c*).      # It i
24200 73 20 69 6d 70 6f 73 73 69 62 6c 65 20 74 6f 20  s impossible to 
24210 6c 69 6e 6b 20 61 20 64 6c 6c 20 77 69 74 68 6f  link a dll witho
24220 75 74 20 74 68 69 73 20 73 65 74 74 69 6e 67 2c  ut this setting,
24230 20 61 6e 64 0a 20 20 20 20 20 20 23 20 77 65 20   and.      # we 
24240 73 68 6f 75 6c 64 6e 27 74 20 66 6f 72 63 65 20  shouldn't force 
24250 74 68 65 20 6d 61 6b 65 66 69 6c 65 20 6d 61 69  the makefile mai
24260 6e 74 61 69 6e 65 72 20 74 6f 20 66 69 67 75 72  ntainer to figur
24270 65 20 6f 75 74 0a 20 20 20 20 20 20 23 20 77 68  e out.      # wh
24280 69 63 68 20 73 79 73 74 65 6d 20 77 65 20 61 72  ich system we ar
24290 65 20 63 6f 6d 70 69 6c 69 6e 67 20 66 6f 72 20  e compiling for 
242a0 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 61 73 73  in order to pass
242b0 20 61 6e 20 65 78 74 72 61 0a 20 20 20 20 20 20   an extra.      
242c0 23 20 66 6c 61 67 20 66 6f 72 20 65 76 65 72 79  # flag for every
242d0 20 6c 69 62 74 6f 6f 6c 20 69 6e 76 6f 63 61 74   libtool invocat
242e0 69 6f 6e 2e 0a 20 20 20 20 20 20 23 20 61 6c 6c  ion..      # all
242f0 6f 77 5f 75 6e 64 65 66 69 6e 65 64 3d 6e 6f 0a  ow_undefined=no.
24300 0a 20 20 20 20 20 20 23 20 46 49 58 4d 45 3a 20  .      # FIXME: 
24310 55 6e 66 6f 72 74 75 6e 61 74 65 6c 79 2c 20 74  Unfortunately, t
24320 68 65 72 65 20 61 72 65 20 70 72 6f 62 6c 65 6d  here are problem
24330 73 20 77 69 74 68 20 74 68 65 20 61 62 6f 76 65  s with the above
24340 20 77 68 65 6e 20 74 72 79 69 6e 67 0a 20 20 20   when trying.   
24350 20 20 20 23 20 74 6f 20 6d 61 6b 65 20 61 20 64     # to make a d
24360 6c 6c 20 77 68 69 63 68 20 68 61 73 20 75 6e 64  ll which has und
24370 65 66 69 6e 65 64 20 73 79 6d 62 6f 6c 73 2c 20  efined symbols, 
24380 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 6e 6f  in which case no
24390 74 0a 20 20 20 20 20 20 23 20 65 76 65 6e 20 61  t.      # even a
243a0 20 73 74 61 74 69 63 20 6c 69 62 72 61 72 79 20   static library 
243b0 69 73 20 62 75 69 6c 74 2e 20 20 46 6f 72 20 6e  is built.  For n
243c0 6f 77 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 73  ow, we need to s
243d0 70 65 63 69 66 79 0a 20 20 20 20 20 20 23 20 2d  pecify.      # -
243e0 6e 6f 2d 75 6e 64 65 66 69 6e 65 64 20 6f 6e 20  no-undefined on 
243f0 74 68 65 20 6c 69 62 74 6f 6f 6c 20 6c 69 6e 6b  the libtool link
24400 20 6c 69 6e 65 20 77 68 65 6e 20 77 65 20 63 61   line when we ca
24410 6e 20 62 65 20 63 65 72 74 61 69 6e 0a 20 20 20  n be certain.   
24420 20 20 20 23 20 74 68 61 74 20 61 6c 6c 20 73 79     # that all sy
24430 6d 62 6f 6c 73 20 61 72 65 20 73 61 74 69 73 66  mbols are satisf
24440 69 65 64 2c 20 6f 74 68 65 72 77 69 73 65 20 77  ied, otherwise w
24450 65 20 67 65 74 20 61 20 73 74 61 74 69 63 20 6c  e get a static l
24460 69 62 72 61 72 79 2e 0a 20 20 20 20 20 20 61 6c  ibrary..      al
24470 6c 6f 77 5f 75 6e 64 65 66 69 6e 65 64 3d 79 65  low_undefined=ye
24480 73 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 2a  s.      ;;.    *
24490 29 0a 20 20 20 20 20 20 61 6c 6c 6f 77 5f 75 6e  ).      allow_un
244a0 64 65 66 69 6e 65 64 3d 79 65 73 0a 20 20 20 20  defined=yes.    
244b0 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20 20    ;;.    esac.  
244c0 20 20 6c 69 62 74 6f 6f 6c 5f 61 72 67 73 3d 24    libtool_args=$
244d0 6e 6f 6e 6f 70 74 0a 20 20 20 20 62 61 73 65 5f  nonopt.    base_
244e0 63 6f 6d 70 69 6c 65 3d 22 24 6e 6f 6e 6f 70 74  compile="$nonopt
244f0 20 24 40 22 0a 20 20 20 20 63 6f 6d 70 69 6c 65   $@".    compile
24500 5f 63 6f 6d 6d 61 6e 64 3d 24 6e 6f 6e 6f 70 74  _command=$nonopt
24510 0a 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 63 6f  .    finalize_co
24520 6d 6d 61 6e 64 3d 24 6e 6f 6e 6f 70 74 0a 0a 20  mmand=$nonopt.. 
24530 20 20 20 63 6f 6d 70 69 6c 65 5f 72 70 61 74 68     compile_rpath
24540 3d 0a 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f 72  =.    finalize_r
24550 70 61 74 68 3d 0a 20 20 20 20 63 6f 6d 70 69 6c  path=.    compil
24560 65 5f 73 68 6c 69 62 70 61 74 68 3d 0a 20 20 20  e_shlibpath=.   
24570 20 66 69 6e 61 6c 69 7a 65 5f 73 68 6c 69 62 70   finalize_shlibp
24580 61 74 68 3d 0a 20 20 20 20 63 6f 6e 76 65 6e 69  ath=.    conveni
24590 65 6e 63 65 3d 0a 20 20 20 20 6f 6c 64 5f 63 6f  ence=.    old_co
245a0 6e 76 65 6e 69 65 6e 63 65 3d 0a 20 20 20 20 64  nvenience=.    d
245b0 65 70 6c 69 62 73 3d 0a 20 20 20 20 6f 6c 64 5f  eplibs=.    old_
245c0 64 65 70 6c 69 62 73 3d 0a 20 20 20 20 63 6f 6d  deplibs=.    com
245d0 70 69 6c 65 72 5f 66 6c 61 67 73 3d 0a 20 20 20  piler_flags=.   
245e0 20 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 0a 20   linker_flags=. 
245f0 20 20 20 64 6c 6c 73 65 61 72 63 68 70 61 74 68     dllsearchpath
24600 3d 0a 20 20 20 20 6c 69 62 5f 73 65 61 72 63 68  =.    lib_search
24610 5f 70 61 74 68 3d 60 70 77 64 60 0a 20 20 20 20  _path=`pwd`.    
24620 69 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 3d  inst_prefix_dir=
24630 0a 20 20 20 20 6e 65 77 5f 69 6e 68 65 72 69 74  .    new_inherit
24640 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 3d  ed_linker_flags=
24650 0a 0a 20 20 20 20 61 76 6f 69 64 5f 76 65 72 73  ..    avoid_vers
24660 69 6f 6e 3d 6e 6f 0a 20 20 20 20 62 69 6e 64 69  ion=no.    bindi
24670 72 3d 0a 20 20 20 20 64 6c 66 69 6c 65 73 3d 0a  r=.    dlfiles=.
24680 20 20 20 20 64 6c 70 72 65 66 69 6c 65 73 3d 0a      dlprefiles=.
24690 20 20 20 20 64 6c 73 65 6c 66 3d 6e 6f 0a 20 20      dlself=no.  
246a0 20 20 65 78 70 6f 72 74 5f 64 79 6e 61 6d 69 63    export_dynamic
246b0 3d 6e 6f 0a 20 20 20 20 65 78 70 6f 72 74 5f 73  =no.    export_s
246c0 79 6d 62 6f 6c 73 3d 0a 20 20 20 20 65 78 70 6f  ymbols=.    expo
246d0 72 74 5f 73 79 6d 62 6f 6c 73 5f 72 65 67 65 78  rt_symbols_regex
246e0 3d 0a 20 20 20 20 67 65 6e 65 72 61 74 65 64 3d  =.    generated=
246f0 0a 20 20 20 20 6c 69 62 6f 62 6a 73 3d 0a 20 20  .    libobjs=.  
24700 20 20 6c 74 6c 69 62 73 3d 0a 20 20 20 20 6d 6f    ltlibs=.    mo
24710 64 75 6c 65 3d 6e 6f 0a 20 20 20 20 6e 6f 5f 69  dule=no.    no_i
24720 6e 73 74 61 6c 6c 3d 6e 6f 0a 20 20 20 20 6f 62  nstall=no.    ob
24730 6a 73 3d 0a 20 20 20 20 6e 6f 6e 5f 70 69 63 5f  js=.    non_pic_
24740 6f 62 6a 65 63 74 73 3d 0a 20 20 20 20 70 72 65  objects=.    pre
24750 63 69 6f 75 73 5f 66 69 6c 65 73 5f 72 65 67 65  cious_files_rege
24760 78 3d 0a 20 20 20 20 70 72 65 66 65 72 5f 73 74  x=.    prefer_st
24770 61 74 69 63 5f 6c 69 62 73 3d 6e 6f 0a 20 20 20  atic_libs=no.   
24780 20 70 72 65 6c 6f 61 64 3d 6e 6f 0a 20 20 20 20   preload=no.    
24790 70 72 65 76 3d 0a 20 20 20 20 70 72 65 76 61 72  prev=.    prevar
247a0 67 3d 0a 20 20 20 20 72 65 6c 65 61 73 65 3d 0a  g=.    release=.
247b0 20 20 20 20 72 70 61 74 68 3d 0a 20 20 20 20 78      rpath=.    x
247c0 72 70 61 74 68 3d 0a 20 20 20 20 70 65 72 6d 5f  rpath=.    perm_
247d0 72 70 61 74 68 3d 0a 20 20 20 20 74 65 6d 70 5f  rpath=.    temp_
247e0 72 70 61 74 68 3d 0a 20 20 20 20 74 68 72 65 61  rpath=.    threa
247f0 64 5f 73 61 66 65 3d 6e 6f 0a 20 20 20 20 76 69  d_safe=no.    vi
24800 6e 66 6f 3d 0a 20 20 20 20 76 69 6e 66 6f 5f 6e  nfo=.    vinfo_n
24810 75 6d 62 65 72 3d 6e 6f 0a 20 20 20 20 77 65 61  umber=no.    wea
24820 6b 5f 6c 69 62 73 3d 0a 20 20 20 20 73 69 6e 67  k_libs=.    sing
24830 6c 65 5f 6d 6f 64 75 6c 65 3d 22 24 7b 77 6c 7d  le_module="${wl}
24840 2d 73 69 6e 67 6c 65 5f 6d 6f 64 75 6c 65 22 0a  -single_module".
24850 20 20 20 20 66 75 6e 63 5f 69 6e 66 65 72 5f 74      func_infer_t
24860 61 67 20 24 62 61 73 65 5f 63 6f 6d 70 69 6c 65  ag $base_compile
24870 0a 0a 20 20 20 20 23 20 57 65 20 6e 65 65 64 20  ..    # We need 
24880 74 6f 20 6b 6e 6f 77 20 2d 73 74 61 74 69 63 2c  to know -static,
24890 20 74 6f 20 67 65 74 20 74 68 65 20 72 69 67 68   to get the righ
248a0 74 20 6f 75 74 70 75 74 20 66 69 6c 65 6e 61 6d  t output filenam
248b0 65 73 2e 0a 20 20 20 20 66 6f 72 20 61 72 67 0a  es..    for arg.
248c0 20 20 20 20 64 6f 0a 20 20 20 20 20 20 63 61 73      do.      cas
248d0 65 20 24 61 72 67 20 69 6e 0a 20 20 20 20 20 20  e $arg in.      
248e0 2d 73 68 61 72 65 64 29 0a 09 74 65 73 74 20 22  -shared)..test "
248f0 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c  $build_libtool_l
24900 69 62 73 22 20 21 3d 20 79 65 73 20 26 26 20 5c  ibs" != yes && \
24910 0a 09 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 63  ..  func_fatal_c
24920 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 22 63 61  onfiguration "ca
24930 6e 20 6e 6f 74 20 62 75 69 6c 64 20 61 20 73 68  n not build a sh
24940 61 72 65 64 20 6c 69 62 72 61 72 79 22 0a 09 62  ared library"..b
24950 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 3d 6e 6f  uild_old_libs=no
24960 0a 09 62 72 65 61 6b 0a 09 3b 3b 0a 20 20 20 20  ..break..;;.    
24970 20 20 2d 61 6c 6c 2d 73 74 61 74 69 63 20 7c 20    -all-static | 
24980 2d 73 74 61 74 69 63 20 7c 20 2d 73 74 61 74 69  -static | -stati
24990 63 2d 6c 69 62 74 6f 6f 6c 2d 6c 69 62 73 29 0a  c-libtool-libs).
249a0 09 63 61 73 65 20 24 61 72 67 20 69 6e 0a 09 2d  .case $arg in..-
249b0 61 6c 6c 2d 73 74 61 74 69 63 29 0a 09 20 20 69  all-static)..  i
249c0 66 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6c  f test "$build_l
249d0 69 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 3d 20 79  ibtool_libs" = y
249e0 65 73 20 26 26 20 74 65 73 74 20 2d 7a 20 22 24  es && test -z "$
249f0 6c 69 6e 6b 5f 73 74 61 74 69 63 5f 66 6c 61 67  link_static_flag
24a00 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 66 75 6e  "; then..    fun
24a10 63 5f 77 61 72 6e 69 6e 67 20 22 63 6f 6d 70 6c  c_warning "compl
24a20 65 74 65 20 73 74 61 74 69 63 20 6c 69 6e 6b 69  ete static linki
24a30 6e 67 20 69 73 20 69 6d 70 6f 73 73 69 62 6c 65  ng is impossible
24a40 20 69 6e 20 74 68 69 73 20 63 6f 6e 66 69 67 75   in this configu
24a50 72 61 74 69 6f 6e 22 0a 09 20 20 66 69 0a 09 20  ration"..  fi.. 
24a60 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 6c 69   if test -n "$li
24a70 6e 6b 5f 73 74 61 74 69 63 5f 66 6c 61 67 22 3b  nk_static_flag";
24a80 20 74 68 65 6e 0a 09 20 20 20 20 64 6c 6f 70 65   then..    dlope
24a90 6e 5f 73 65 6c 66 3d 24 64 6c 6f 70 65 6e 5f 73  n_self=$dlopen_s
24aa0 65 6c 66 5f 73 74 61 74 69 63 0a 09 20 20 66 69  elf_static..  fi
24ab0 0a 09 20 20 70 72 65 66 65 72 5f 73 74 61 74 69  ..  prefer_stati
24ac0 63 5f 6c 69 62 73 3d 79 65 73 0a 09 20 20 3b 3b  c_libs=yes..  ;;
24ad0 0a 09 2d 73 74 61 74 69 63 29 0a 09 20 20 69 66  ..-static)..  if
24ae0 20 74 65 73 74 20 2d 7a 20 22 24 70 69 63 5f 66   test -z "$pic_f
24af0 6c 61 67 22 20 26 26 20 74 65 73 74 20 2d 6e 20  lag" && test -n 
24b00 22 24 6c 69 6e 6b 5f 73 74 61 74 69 63 5f 66 6c  "$link_static_fl
24b10 61 67 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 64  ag"; then..    d
24b20 6c 6f 70 65 6e 5f 73 65 6c 66 3d 24 64 6c 6f 70  lopen_self=$dlop
24b30 65 6e 5f 73 65 6c 66 5f 73 74 61 74 69 63 0a 09  en_self_static..
24b40 20 20 66 69 0a 09 20 20 70 72 65 66 65 72 5f 73    fi..  prefer_s
24b50 74 61 74 69 63 5f 6c 69 62 73 3d 62 75 69 6c 74  tatic_libs=built
24b60 0a 09 20 20 3b 3b 0a 09 2d 73 74 61 74 69 63 2d  ..  ;;..-static-
24b70 6c 69 62 74 6f 6f 6c 2d 6c 69 62 73 29 0a 09 20  libtool-libs).. 
24b80 20 69 66 20 74 65 73 74 20 2d 7a 20 22 24 70 69   if test -z "$pi
24b90 63 5f 66 6c 61 67 22 20 26 26 20 74 65 73 74 20  c_flag" && test 
24ba0 2d 6e 20 22 24 6c 69 6e 6b 5f 73 74 61 74 69 63  -n "$link_static
24bb0 5f 66 6c 61 67 22 3b 20 74 68 65 6e 0a 09 20 20  _flag"; then..  
24bc0 20 20 64 6c 6f 70 65 6e 5f 73 65 6c 66 3d 24 64    dlopen_self=$d
24bd0 6c 6f 70 65 6e 5f 73 65 6c 66 5f 73 74 61 74 69  lopen_self_stati
24be0 63 0a 09 20 20 66 69 0a 09 20 20 70 72 65 66 65  c..  fi..  prefe
24bf0 72 5f 73 74 61 74 69 63 5f 6c 69 62 73 3d 79 65  r_static_libs=ye
24c00 73 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a 09 62  s..  ;;..esac..b
24c10 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
24c20 73 3d 6e 6f 0a 09 62 75 69 6c 64 5f 6f 6c 64 5f  s=no..build_old_
24c30 6c 69 62 73 3d 79 65 73 0a 09 62 72 65 61 6b 0a  libs=yes..break.
24c40 09 3b 3b 0a 20 20 20 20 20 20 65 73 61 63 0a 20  .;;.      esac. 
24c50 20 20 20 64 6f 6e 65 0a 0a 20 20 20 20 23 20 53     done..    # S
24c60 65 65 20 69 66 20 6f 75 72 20 73 68 61 72 65 64  ee if our shared
24c70 20 61 72 63 68 69 76 65 73 20 64 65 70 65 6e 64   archives depend
24c80 20 6f 6e 20 73 74 61 74 69 63 20 61 72 63 68 69   on static archi
24c90 76 65 73 2e 0a 20 20 20 20 74 65 73 74 20 2d 6e  ves..    test -n
24ca0 20 22 24 6f 6c 64 5f 61 72 63 68 69 76 65 5f 66   "$old_archive_f
24cb0 72 6f 6d 5f 6e 65 77 5f 63 6d 64 73 22 20 26 26  rom_new_cmds" &&
24cc0 20 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 3d   build_old_libs=
24cd0 79 65 73 0a 0a 20 20 20 20 23 20 47 6f 20 74 68  yes..    # Go th
24ce0 72 6f 75 67 68 20 74 68 65 20 61 72 67 75 6d 65  rough the argume
24cf0 6e 74 73 2c 20 74 72 61 6e 73 66 6f 72 6d 69 6e  nts, transformin
24d00 67 20 74 68 65 6d 20 6f 6e 20 74 68 65 20 77 61  g them on the wa
24d10 79 2e 0a 20 20 20 20 77 68 69 6c 65 20 74 65 73  y..    while tes
24d20 74 20 22 24 23 22 20 2d 67 74 20 30 3b 20 64 6f  t "$#" -gt 0; do
24d30 0a 20 20 20 20 20 20 61 72 67 3d 22 24 31 22 0a  .      arg="$1".
24d40 20 20 20 20 20 20 73 68 69 66 74 0a 20 20 20 20        shift.    
24d50 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72    func_quote_for
24d60 5f 65 76 61 6c 20 22 24 61 72 67 22 0a 20 20 20  _eval "$arg".   
24d70 20 20 20 71 61 72 67 3d 24 66 75 6e 63 5f 71 75     qarg=$func_qu
24d80 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 75 6e 71  ote_for_eval_unq
24d90 75 6f 74 65 64 5f 72 65 73 75 6c 74 0a 20 20 20  uoted_result.   
24da0 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6c     func_append l
24db0 69 62 74 6f 6f 6c 5f 61 72 67 73 20 22 20 24 66  ibtool_args " $f
24dc0 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76  unc_quote_for_ev
24dd0 61 6c 5f 72 65 73 75 6c 74 22 0a 0a 20 20 20 20  al_result"..    
24de0 20 20 23 20 49 66 20 74 68 65 20 70 72 65 76 69    # If the previ
24df0 6f 75 73 20 6f 70 74 69 6f 6e 20 6e 65 65 64 73  ous option needs
24e00 20 61 6e 20 61 72 67 75 6d 65 6e 74 2c 20 61 73   an argument, as
24e10 73 69 67 6e 20 69 74 2e 0a 20 20 20 20 20 20 69  sign it..      i
24e20 66 20 74 65 73 74 20 2d 6e 20 22 24 70 72 65 76  f test -n "$prev
24e30 22 3b 20 74 68 65 6e 0a 09 63 61 73 65 20 24 70  "; then..case $p
24e40 72 65 76 20 69 6e 0a 09 6f 75 74 70 75 74 29 0a  rev in..output).
24e50 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63  .  func_append c
24e60 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22  ompile_command "
24e70 20 40 4f 55 54 50 55 54 40 22 0a 09 20 20 66 75   @OUTPUT@"..  fu
24e80 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69  nc_append finali
24e90 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 40 4f 55  ze_command " @OU
24ea0 54 50 55 54 40 22 0a 09 20 20 3b 3b 0a 09 65 73  TPUT@"..  ;;..es
24eb0 61 63 0a 0a 09 63 61 73 65 20 24 70 72 65 76 20  ac...case $prev 
24ec0 69 6e 0a 09 62 69 6e 64 69 72 29 0a 09 20 20 62  in..bindir)..  b
24ed0 69 6e 64 69 72 3d 22 24 61 72 67 22 0a 09 20 20  indir="$arg"..  
24ee0 70 72 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e 75  prev=..  continu
24ef0 65 0a 09 20 20 3b 3b 0a 09 64 6c 66 69 6c 65 73  e..  ;;..dlfiles
24f00 7c 64 6c 70 72 65 66 69 6c 65 73 29 0a 09 20 20  |dlprefiles)..  
24f10 69 66 20 74 65 73 74 20 22 24 70 72 65 6c 6f 61  if test "$preloa
24f20 64 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09 20  d" = no; then.. 
24f30 20 20 20 23 20 41 64 64 20 74 68 65 20 73 79 6d     # Add the sym
24f40 62 6f 6c 20 6f 62 6a 65 63 74 20 69 6e 74 6f 20  bol object into 
24f50 74 68 65 20 6c 69 6e 6b 69 6e 67 20 63 6f 6d 6d  the linking comm
24f60 61 6e 64 73 2e 0a 09 20 20 20 20 66 75 6e 63 5f  ands...    func_
24f70 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 63  append compile_c
24f80 6f 6d 6d 61 6e 64 20 22 20 40 53 59 4d 46 49 4c  ommand " @SYMFIL
24f90 45 40 22 0a 09 20 20 20 20 66 75 6e 63 5f 61 70  E@"..    func_ap
24fa0 70 65 6e 64 20 66 69 6e 61 6c 69 7a 65 5f 63 6f  pend finalize_co
24fb0 6d 6d 61 6e 64 20 22 20 40 53 59 4d 46 49 4c 45  mmand " @SYMFILE
24fc0 40 22 0a 09 20 20 20 20 70 72 65 6c 6f 61 64 3d  @"..    preload=
24fd0 79 65 73 0a 09 20 20 66 69 0a 09 20 20 63 61 73  yes..  fi..  cas
24fe0 65 20 24 61 72 67 20 69 6e 0a 09 20 20 2a 2e 6c  e $arg in..  *.l
24ff0 61 20 7c 20 2a 2e 6c 6f 29 20 3b 3b 20 20 23 20  a | *.lo) ;;  # 
25000 57 65 20 68 61 6e 64 6c 65 20 74 68 65 73 65 20  We handle these 
25010 63 61 73 65 73 20 62 65 6c 6f 77 2e 0a 09 20 20  cases below...  
25020 66 6f 72 63 65 29 0a 09 20 20 20 20 69 66 20 74  force)..    if t
25030 65 73 74 20 22 24 64 6c 73 65 6c 66 22 20 3d 20  est "$dlself" = 
25040 6e 6f 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  no; then..      
25050 64 6c 73 65 6c 66 3d 6e 65 65 64 6c 65 73 73 0a  dlself=needless.
25060 09 20 20 20 20 20 20 65 78 70 6f 72 74 5f 64 79  .      export_dy
25070 6e 61 6d 69 63 3d 79 65 73 0a 09 20 20 20 20 66  namic=yes..    f
25080 69 0a 09 20 20 20 20 70 72 65 76 3d 0a 09 20 20  i..    prev=..  
25090 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20 20    continue..    
250a0 3b 3b 0a 09 20 20 73 65 6c 66 29 0a 09 20 20 20  ;;..  self)..   
250b0 20 69 66 20 74 65 73 74 20 22 24 70 72 65 76 22   if test "$prev"
250c0 20 3d 20 64 6c 70 72 65 66 69 6c 65 73 3b 20 74   = dlprefiles; t
250d0 68 65 6e 0a 09 20 20 20 20 20 20 64 6c 73 65 6c  hen..      dlsel
250e0 66 3d 79 65 73 0a 09 20 20 20 20 65 6c 69 66 20  f=yes..    elif 
250f0 74 65 73 74 20 22 24 70 72 65 76 22 20 3d 20 64  test "$prev" = d
25100 6c 66 69 6c 65 73 20 26 26 20 74 65 73 74 20 22  lfiles && test "
25110 24 64 6c 6f 70 65 6e 5f 73 65 6c 66 22 20 21 3d  $dlopen_self" !=
25120 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20   yes; then..    
25130 20 20 64 6c 73 65 6c 66 3d 79 65 73 0a 09 20 20    dlself=yes..  
25140 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 64 6c    else..      dl
25150 73 65 6c 66 3d 6e 65 65 64 6c 65 73 73 0a 09 20  self=needless.. 
25160 20 20 20 20 20 65 78 70 6f 72 74 5f 64 79 6e 61       export_dyna
25170 6d 69 63 3d 79 65 73 0a 09 20 20 20 20 66 69 0a  mic=yes..    fi.
25180 09 20 20 20 20 70 72 65 76 3d 0a 09 20 20 20 20  .    prev=..    
25190 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20 20 3b 3b  continue..    ;;
251a0 0a 09 20 20 2a 29 0a 09 20 20 20 20 69 66 20 74  ..  *)..    if t
251b0 65 73 74 20 22 24 70 72 65 76 22 20 3d 20 64 6c  est "$prev" = dl
251c0 66 69 6c 65 73 3b 20 74 68 65 6e 0a 09 20 20 20  files; then..   
251d0 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 64     func_append d
251e0 6c 66 69 6c 65 73 20 22 20 24 61 72 67 22 0a 09  lfiles " $arg"..
251f0 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20      else..      
25200 66 75 6e 63 5f 61 70 70 65 6e 64 20 64 6c 70 72  func_append dlpr
25210 65 66 69 6c 65 73 20 22 20 24 61 72 67 22 0a 09  efiles " $arg"..
25220 20 20 20 20 66 69 0a 09 20 20 20 20 70 72 65 76      fi..    prev
25230 3d 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a  =..    continue.
25240 09 20 20 20 20 3b 3b 0a 09 20 20 65 73 61 63 0a  .    ;;..  esac.
25250 09 20 20 3b 3b 0a 09 65 78 70 73 79 6d 73 29 0a  .  ;;..expsyms).
25260 09 20 20 65 78 70 6f 72 74 5f 73 79 6d 62 6f 6c  .  export_symbol
25270 73 3d 22 24 61 72 67 22 0a 09 20 20 74 65 73 74  s="$arg"..  test
25280 20 2d 66 20 22 24 61 72 67 22 20 5c 0a 09 20 20   -f "$arg" \..  
25290 20 20 7c 7c 20 66 75 6e 63 5f 66 61 74 61 6c 5f    || func_fatal_
252a0 65 72 72 6f 72 20 22 73 79 6d 62 6f 6c 20 66 69  error "symbol fi
252b0 6c 65 20 5c 60 24 61 72 67 27 20 64 6f 65 73 20  le \`$arg' does 
252c0 6e 6f 74 20 65 78 69 73 74 22 0a 09 20 20 70 72  not exist"..  pr
252d0 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a  ev=..  continue.
252e0 09 20 20 3b 3b 0a 09 65 78 70 73 79 6d 73 5f 72  .  ;;..expsyms_r
252f0 65 67 65 78 29 0a 09 20 20 65 78 70 6f 72 74 5f  egex)..  export_
25300 73 79 6d 62 6f 6c 73 5f 72 65 67 65 78 3d 22 24  symbols_regex="$
25310 61 72 67 22 0a 09 20 20 70 72 65 76 3d 0a 09 20  arg"..  prev=.. 
25320 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a   continue..  ;;.
25330 09 66 72 61 6d 65 77 6f 72 6b 29 0a 09 20 20 63  .framework)..  c
25340 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 20  ase $host in..  
25350 20 20 2a 2d 2a 2d 64 61 72 77 69 6e 2a 29 0a 09    *-*-darwin*)..
25360 20 20 20 20 20 20 63 61 73 65 20 22 24 64 65 70        case "$dep
25370 6c 69 62 73 20 22 20 69 6e 0a 09 09 2a 22 20 24  libs " in...*" $
25380 71 61 72 67 2e 6c 74 66 72 61 6d 65 77 6f 72 6b  qarg.ltframework
25390 20 22 2a 29 20 3b 3b 0a 09 09 2a 29 20 66 75 6e   "*) ;;...*) fun
253a0 63 5f 61 70 70 65 6e 64 20 64 65 70 6c 69 62 73  c_append deplibs
253b0 20 22 20 24 71 61 72 67 2e 6c 74 66 72 61 6d 65   " $qarg.ltframe
253c0 77 6f 72 6b 22 20 23 20 74 68 69 73 20 69 73 20  work" # this is 
253d0 66 69 78 65 64 20 6c 61 74 65 72 0a 09 09 20 20  fixed later...  
253e0 20 3b 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a   ;;..      esac.
253f0 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 65 73 61  .      ;;..  esa
25400 63 0a 09 20 20 70 72 65 76 3d 0a 09 20 20 63 6f  c..  prev=..  co
25410 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 09 69 6e  ntinue..  ;;..in
25420 73 74 5f 70 72 65 66 69 78 29 0a 09 20 20 69 6e  st_prefix)..  in
25430 73 74 5f 70 72 65 66 69 78 5f 64 69 72 3d 22 24  st_prefix_dir="$
25440 61 72 67 22 0a 09 20 20 70 72 65 76 3d 0a 09 20  arg"..  prev=.. 
25450 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a   continue..  ;;.
25460 09 6f 62 6a 65 63 74 6c 69 73 74 29 0a 09 20 20  .objectlist)..  
25470 69 66 20 74 65 73 74 20 2d 66 20 22 24 61 72 67  if test -f "$arg
25480 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 73 61 76  "; then..    sav
25490 65 5f 61 72 67 3d 24 61 72 67 0a 09 20 20 20 20  e_arg=$arg..    
254a0 6d 6f 72 65 61 72 67 73 3d 0a 09 20 20 20 20 66  moreargs=..    f
254b0 6f 72 20 66 69 6c 20 69 6e 20 60 63 61 74 20 22  or fil in `cat "
254c0 24 73 61 76 65 5f 61 72 67 22 60 0a 09 20 20 20  $save_arg"`..   
254d0 20 64 6f 0a 23 09 20 20 20 20 20 20 66 75 6e 63   do.#.      func
254e0 5f 61 70 70 65 6e 64 20 6d 6f 72 65 61 72 67 73  _append moreargs
254f0 20 22 20 24 66 69 6c 22 0a 09 20 20 20 20 20 20   " $fil"..      
25500 61 72 67 3d 24 66 69 6c 0a 09 20 20 20 20 20 20  arg=$fil..      
25510 23 20 41 20 6c 69 62 74 6f 6f 6c 2d 63 6f 6e 74  # A libtool-cont
25520 72 6f 6c 6c 65 64 20 6f 62 6a 65 63 74 2e 0a 0a  rolled object...
25530 09 20 20 20 20 20 20 23 20 43 68 65 63 6b 20 74  .      # Check t
25540 6f 20 73 65 65 20 74 68 61 74 20 74 68 69 73 20  o see that this 
25550 72 65 61 6c 6c 79 20 69 73 20 61 20 6c 69 62 74  really is a libt
25560 6f 6f 6c 20 6f 62 6a 65 63 74 2e 0a 09 20 20 20  ool object...   
25570 20 20 20 69 66 20 66 75 6e 63 5f 6c 61 6c 69 62     if func_lalib
25580 5f 75 6e 73 61 66 65 5f 70 20 22 24 61 72 67 22  _unsafe_p "$arg"
25590 3b 20 74 68 65 6e 0a 09 09 70 69 63 5f 6f 62 6a  ; then...pic_obj
255a0 65 63 74 3d 0a 09 09 6e 6f 6e 5f 70 69 63 5f 6f  ect=...non_pic_o
255b0 62 6a 65 63 74 3d 0a 0a 09 09 23 20 52 65 61 64  bject=....# Read
255c0 20 74 68 65 20 2e 6c 6f 20 66 69 6c 65 0a 09 09   the .lo file...
255d0 66 75 6e 63 5f 73 6f 75 72 63 65 20 22 24 61 72  func_source "$ar
255e0 67 22 0a 0a 09 09 69 66 20 74 65 73 74 20 2d 7a  g"....if test -z
255f0 20 22 24 70 69 63 5f 6f 62 6a 65 63 74 22 20 7c   "$pic_object" |
25600 7c 0a 09 09 20 20 20 74 65 73 74 20 2d 7a 20 22  |...   test -z "
25610 24 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 22  $non_pic_object"
25620 20 7c 7c 0a 09 09 20 20 20 74 65 73 74 20 22 24   ||...   test "$
25630 70 69 63 5f 6f 62 6a 65 63 74 22 20 3d 20 6e 6f  pic_object" = no
25640 6e 65 20 26 26 0a 09 09 20 20 20 74 65 73 74 20  ne &&...   test 
25650 22 24 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74  "$non_pic_object
25660 22 20 3d 20 6e 6f 6e 65 3b 20 74 68 65 6e 0a 09  " = none; then..
25670 09 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72  .  func_fatal_er
25680 72 6f 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e 64  ror "cannot find
25690 20 6e 61 6d 65 20 6f 66 20 6f 62 6a 65 63 74 20   name of object 
256a0 66 6f 72 20 5c 60 24 61 72 67 27 22 0a 09 09 66  for \`$arg'"...f
256b0 69 0a 0a 09 09 23 20 45 78 74 72 61 63 74 20 73  i....# Extract s
256c0 75 62 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d  ubdirectory from
256d0 20 74 68 65 20 61 72 67 75 6d 65 6e 74 2e 0a 09   the argument...
256e0 09 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20 22 24  .func_dirname "$
256f0 61 72 67 22 20 22 2f 22 20 22 22 0a 09 09 78 64  arg" "/" ""...xd
25700 69 72 3d 22 24 66 75 6e 63 5f 64 69 72 6e 61 6d  ir="$func_dirnam
25710 65 5f 72 65 73 75 6c 74 22 0a 0a 09 09 69 66 20  e_result"....if 
25720 74 65 73 74 20 22 24 70 69 63 5f 6f 62 6a 65 63  test "$pic_objec
25730 74 22 20 21 3d 20 6e 6f 6e 65 3b 20 74 68 65 6e  t" != none; then
25740 0a 09 09 20 20 23 20 50 72 65 70 65 6e 64 20 74  ...  # Prepend t
25750 68 65 20 73 75 62 64 69 72 65 63 74 6f 72 79 20  he subdirectory 
25760 74 68 65 20 6f 62 6a 65 63 74 20 69 73 20 66 6f  the object is fo
25770 75 6e 64 20 69 6e 2e 0a 09 09 20 20 70 69 63 5f  und in....  pic_
25780 6f 62 6a 65 63 74 3d 22 24 78 64 69 72 24 70 69  object="$xdir$pi
25790 63 5f 6f 62 6a 65 63 74 22 0a 0a 09 09 20 20 69  c_object"....  i
257a0 66 20 74 65 73 74 20 22 24 70 72 65 76 22 20 3d  f test "$prev" =
257b0 20 64 6c 66 69 6c 65 73 3b 20 74 68 65 6e 0a 09   dlfiles; then..
257c0 09 20 20 20 20 69 66 20 74 65 73 74 20 22 24 62  .    if test "$b
257d0 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
257e0 73 22 20 3d 20 79 65 73 20 26 26 20 74 65 73 74  s" = yes && test
257f0 20 22 24 64 6c 6f 70 65 6e 5f 73 75 70 70 6f 72   "$dlopen_suppor
25800 74 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09  t" = yes; then..
25810 09 20 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65  .      func_appe
25820 6e 64 20 64 6c 66 69 6c 65 73 20 22 20 24 70 69  nd dlfiles " $pi
25830 63 5f 6f 62 6a 65 63 74 22 0a 09 09 20 20 20 20  c_object"...    
25840 20 20 70 72 65 76 3d 0a 09 09 20 20 20 20 20 20    prev=...      
25850 63 6f 6e 74 69 6e 75 65 0a 09 09 20 20 20 20 65  continue...    e
25860 6c 73 65 0a 09 09 20 20 20 20 20 20 23 20 49 66  lse...      # If
25870 20 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65 63 74 73   libtool objects
25880 20 61 72 65 20 75 6e 73 75 70 70 6f 72 74 65 64   are unsupported
25890 2c 20 74 68 65 6e 20 77 65 20 6e 65 65 64 20 74  , then we need t
258a0 6f 20 70 72 65 6c 6f 61 64 2e 0a 09 09 20 20 20  o preload....   
258b0 20 20 20 70 72 65 76 3d 64 6c 70 72 65 66 69 6c     prev=dlprefil
258c0 65 73 0a 09 09 20 20 20 20 66 69 0a 09 09 20 20  es...    fi...  
258d0 66 69 0a 0a 09 09 20 20 23 20 43 48 45 43 4b 20  fi....  # CHECK 
258e0 4d 45 3a 20 20 49 20 74 68 69 6e 6b 20 49 20 62  ME:  I think I b
258f0 75 73 74 65 64 20 74 68 69 73 2e 20 20 2d 4f 73  usted this.  -Os
25900 73 61 6d 61 0a 09 09 20 20 69 66 20 74 65 73 74  sama...  if test
25910 20 22 24 70 72 65 76 22 20 3d 20 64 6c 70 72 65   "$prev" = dlpre
25920 66 69 6c 65 73 3b 20 74 68 65 6e 0a 09 09 20 20  files; then...  
25930 20 20 23 20 50 72 65 6c 6f 61 64 20 74 68 65 20    # Preload the 
25940 6f 6c 64 2d 73 74 79 6c 65 20 6f 62 6a 65 63 74  old-style object
25950 2e 0a 09 09 20 20 20 20 66 75 6e 63 5f 61 70 70  ....    func_app
25960 65 6e 64 20 64 6c 70 72 65 66 69 6c 65 73 20 22  end dlprefiles "
25970 20 24 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09 09   $pic_object"...
25980 20 20 20 20 70 72 65 76 3d 0a 09 09 20 20 66 69      prev=...  fi
25990 0a 0a 09 09 20 20 23 20 41 20 50 49 43 20 6f 62  ....  # A PIC ob
259a0 6a 65 63 74 2e 0a 09 09 20 20 66 75 6e 63 5f 61  ject....  func_a
259b0 70 70 65 6e 64 20 6c 69 62 6f 62 6a 73 20 22 20  ppend libobjs " 
259c0 24 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09 09 20  $pic_object"... 
259d0 20 61 72 67 3d 22 24 70 69 63 5f 6f 62 6a 65 63   arg="$pic_objec
259e0 74 22 0a 09 09 66 69 0a 0a 09 09 23 20 4e 6f 6e  t"...fi....# Non
259f0 2d 50 49 43 20 6f 62 6a 65 63 74 2e 0a 09 09 69  -PIC object....i
25a00 66 20 74 65 73 74 20 22 24 6e 6f 6e 5f 70 69 63  f test "$non_pic
25a10 5f 6f 62 6a 65 63 74 22 20 21 3d 20 6e 6f 6e 65  _object" != none
25a20 3b 20 74 68 65 6e 0a 09 09 20 20 23 20 50 72 65  ; then...  # Pre
25a30 70 65 6e 64 20 74 68 65 20 73 75 62 64 69 72 65  pend the subdire
25a40 63 74 6f 72 79 20 74 68 65 20 6f 62 6a 65 63 74  ctory the object
25a50 20 69 73 20 66 6f 75 6e 64 20 69 6e 2e 0a 09 09   is found in....
25a60 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74    non_pic_object
25a70 3d 22 24 78 64 69 72 24 6e 6f 6e 5f 70 69 63 5f  ="$xdir$non_pic_
25a80 6f 62 6a 65 63 74 22 0a 0a 09 09 20 20 23 20 41  object"....  # A
25a90 20 73 74 61 6e 64 61 72 64 20 6e 6f 6e 2d 50 49   standard non-PI
25aa0 43 20 6f 62 6a 65 63 74 0a 09 09 20 20 66 75 6e  C object...  fun
25ab0 63 5f 61 70 70 65 6e 64 20 6e 6f 6e 5f 70 69 63  c_append non_pic
25ac0 5f 6f 62 6a 65 63 74 73 20 22 20 24 6e 6f 6e 5f  _objects " $non_
25ad0 70 69 63 5f 6f 62 6a 65 63 74 22 0a 09 09 20 20  pic_object"...  
25ae0 69 66 20 74 65 73 74 20 2d 7a 20 22 24 70 69 63  if test -z "$pic
25af0 5f 6f 62 6a 65 63 74 22 20 7c 7c 20 74 65 73 74  _object" || test
25b00 20 22 24 70 69 63 5f 6f 62 6a 65 63 74 22 20 3d   "$pic_object" =
25b10 20 6e 6f 6e 65 20 3b 20 74 68 65 6e 0a 09 09 20   none ; then... 
25b20 20 20 20 61 72 67 3d 22 24 6e 6f 6e 5f 70 69 63     arg="$non_pic
25b30 5f 6f 62 6a 65 63 74 22 0a 09 09 20 20 66 69 0a  _object"...  fi.
25b40 09 09 65 6c 73 65 0a 09 09 20 20 23 20 49 66 20  ..else...  # If 
25b50 74 68 65 20 50 49 43 20 6f 62 6a 65 63 74 20 65  the PIC object e
25b60 78 69 73 74 73 2c 20 75 73 65 20 69 74 20 69 6e  xists, use it in
25b70 73 74 65 61 64 2e 0a 09 09 20 20 23 20 24 78 64  stead....  # $xd
25b80 69 72 20 77 61 73 20 70 72 65 70 65 6e 64 65 64  ir was prepended
25b90 20 74 6f 20 24 70 69 63 5f 6f 62 6a 65 63 74 20   to $pic_object 
25ba0 61 62 6f 76 65 2e 0a 09 09 20 20 6e 6f 6e 5f 70  above....  non_p
25bb0 69 63 5f 6f 62 6a 65 63 74 3d 22 24 70 69 63 5f  ic_object="$pic_
25bc0 6f 62 6a 65 63 74 22 0a 09 09 20 20 66 75 6e 63  object"...  func
25bd0 5f 61 70 70 65 6e 64 20 6e 6f 6e 5f 70 69 63 5f  _append non_pic_
25be0 6f 62 6a 65 63 74 73 20 22 20 24 6e 6f 6e 5f 70  objects " $non_p
25bf0 69 63 5f 6f 62 6a 65 63 74 22 0a 09 09 66 69 0a  ic_object"...fi.
25c00 09 20 20 20 20 20 20 65 6c 73 65 0a 09 09 23 20  .      else...# 
25c10 4f 6e 6c 79 20 61 6e 20 65 72 72 6f 72 20 69 66  Only an error if
25c20 20 6e 6f 74 20 64 6f 69 6e 67 20 61 20 64 72 79   not doing a dry
25c30 2d 72 75 6e 2e 0a 09 09 69 66 20 24 6f 70 74 5f  -run....if $opt_
25c40 64 72 79 5f 72 75 6e 3b 20 74 68 65 6e 0a 09 09  dry_run; then...
25c50 20 20 23 20 45 78 74 72 61 63 74 20 73 75 62 64    # Extract subd
25c60 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 74 68  irectory from th
25c70 65 20 61 72 67 75 6d 65 6e 74 2e 0a 09 09 20 20  e argument....  
25c80 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20 22 24 61  func_dirname "$a
25c90 72 67 22 20 22 2f 22 20 22 22 0a 09 09 20 20 78  rg" "/" ""...  x
25ca0 64 69 72 3d 22 24 66 75 6e 63 5f 64 69 72 6e 61  dir="$func_dirna
25cb0 6d 65 5f 72 65 73 75 6c 74 22 0a 0a 09 09 20 20  me_result"....  
25cc0 66 75 6e 63 5f 6c 6f 32 6f 20 22 24 61 72 67 22  func_lo2o "$arg"
25cd0 0a 09 09 20 20 70 69 63 5f 6f 62 6a 65 63 74 3d  ...  pic_object=
25ce0 24 78 64 69 72 24 6f 62 6a 64 69 72 2f 24 66 75  $xdir$objdir/$fu
25cf0 6e 63 5f 6c 6f 32 6f 5f 72 65 73 75 6c 74 0a 09  nc_lo2o_result..
25d00 09 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63  .  non_pic_objec
25d10 74 3d 24 78 64 69 72 24 66 75 6e 63 5f 6c 6f 32  t=$xdir$func_lo2
25d20 6f 5f 72 65 73 75 6c 74 0a 09 09 20 20 66 75 6e  o_result...  fun
25d30 63 5f 61 70 70 65 6e 64 20 6c 69 62 6f 62 6a 73  c_append libobjs
25d40 20 22 20 24 70 69 63 5f 6f 62 6a 65 63 74 22 0a   " $pic_object".
25d50 09 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20  ..  func_append 
25d60 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 73 20  non_pic_objects 
25d70 22 20 24 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63  " $non_pic_objec
25d80 74 22 0a 09 20 20 20 20 20 20 20 20 65 6c 73 65  t"..        else
25d90 0a 09 09 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  ...  func_fatal_
25da0 65 72 72 6f 72 20 22 5c 60 24 61 72 67 27 20 69  error "\`$arg' i
25db0 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 6c 69  s not a valid li
25dc0 62 74 6f 6f 6c 20 6f 62 6a 65 63 74 22 0a 09 09  btool object"...
25dd0 66 69 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20  fi..      fi..  
25de0 20 20 64 6f 6e 65 0a 09 20 20 65 6c 73 65 0a 09    done..  else..
25df0 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65      func_fatal_e
25e00 72 72 6f 72 20 22 6c 69 6e 6b 20 69 6e 70 75 74  rror "link input
25e10 20 66 69 6c 65 20 5c 60 24 61 72 67 27 20 64 6f   file \`$arg' do
25e20 65 73 20 6e 6f 74 20 65 78 69 73 74 22 0a 09 20  es not exist".. 
25e30 20 66 69 0a 09 20 20 61 72 67 3d 24 73 61 76 65   fi..  arg=$save
25e40 5f 61 72 67 0a 09 20 20 70 72 65 76 3d 0a 09 20  _arg..  prev=.. 
25e50 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a   continue..  ;;.
25e60 09 70 72 65 63 69 6f 75 73 5f 72 65 67 65 78 29  .precious_regex)
25e70 0a 09 20 20 70 72 65 63 69 6f 75 73 5f 66 69 6c  ..  precious_fil
25e80 65 73 5f 72 65 67 65 78 3d 22 24 61 72 67 22 0a  es_regex="$arg".
25e90 09 20 20 70 72 65 76 3d 0a 09 20 20 63 6f 6e 74  .  prev=..  cont
25ea0 69 6e 75 65 0a 09 20 20 3b 3b 0a 09 72 65 6c 65  inue..  ;;..rele
25eb0 61 73 65 29 0a 09 20 20 72 65 6c 65 61 73 65 3d  ase)..  release=
25ec0 22 2d 24 61 72 67 22 0a 09 20 20 70 72 65 76 3d  "-$arg"..  prev=
25ed0 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20  ..  continue..  
25ee0 3b 3b 0a 09 72 70 61 74 68 20 7c 20 78 72 70 61  ;;..rpath | xrpa
25ef0 74 68 29 0a 09 20 20 23 20 57 65 20 6e 65 65 64  th)..  # We need
25f00 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 74   an absolute pat
25f10 68 2e 0a 09 20 20 63 61 73 65 20 24 61 72 67 20  h...  case $arg 
25f20 69 6e 0a 09 20 20 5b 5c 5c 2f 5d 2a 20 7c 20 5b  in..  [\\/]* | [
25f30 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29 20  A-Za-z]:[\\/]*) 
25f40 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20 66 75  ;;..  *)..    fu
25f50 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22  nc_fatal_error "
25f60 6f 6e 6c 79 20 61 62 73 6f 6c 75 74 65 20 72 75  only absolute ru
25f70 6e 2d 70 61 74 68 73 20 61 72 65 20 61 6c 6c 6f  n-paths are allo
25f80 77 65 64 22 0a 09 20 20 20 20 3b 3b 0a 09 20 20  wed"..    ;;..  
25f90 65 73 61 63 0a 09 20 20 69 66 20 74 65 73 74 20  esac..  if test 
25fa0 22 24 70 72 65 76 22 20 3d 20 72 70 61 74 68 3b  "$prev" = rpath;
25fb0 20 74 68 65 6e 0a 09 20 20 20 20 63 61 73 65 20   then..    case 
25fc0 22 24 72 70 61 74 68 20 22 20 69 6e 0a 09 20 20  "$rpath " in..  
25fd0 20 20 2a 22 20 24 61 72 67 20 22 2a 29 20 3b 3b    *" $arg "*) ;;
25fe0 0a 09 20 20 20 20 2a 29 20 66 75 6e 63 5f 61 70  ..    *) func_ap
25ff0 70 65 6e 64 20 72 70 61 74 68 20 22 20 24 61 72  pend rpath " $ar
26000 67 22 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a  g" ;;..    esac.
26010 09 20 20 65 6c 73 65 0a 09 20 20 20 20 63 61 73  .  else..    cas
26020 65 20 22 24 78 72 70 61 74 68 20 22 20 69 6e 0a  e "$xrpath " in.
26030 09 20 20 20 20 2a 22 20 24 61 72 67 20 22 2a 29  .    *" $arg "*)
26040 20 3b 3b 0a 09 20 20 20 20 2a 29 20 66 75 6e 63   ;;..    *) func
26050 5f 61 70 70 65 6e 64 20 78 72 70 61 74 68 20 22  _append xrpath "
26060 20 24 61 72 67 22 20 3b 3b 0a 09 20 20 20 20 65   $arg" ;;..    e
26070 73 61 63 0a 09 20 20 66 69 0a 09 20 20 70 72 65  sac..  fi..  pre
26080 76 3d 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09  v=..  continue..
26090 20 20 3b 3b 0a 09 73 68 72 65 78 74 29 0a 09 20    ;;..shrext).. 
260a0 20 73 68 72 65 78 74 5f 63 6d 64 73 3d 22 24 61   shrext_cmds="$a
260b0 72 67 22 0a 09 20 20 70 72 65 76 3d 0a 09 20 20  rg"..  prev=..  
260c0 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a 09  continue..  ;;..
260d0 77 65 61 6b 29 0a 09 20 20 66 75 6e 63 5f 61 70  weak)..  func_ap
260e0 70 65 6e 64 20 77 65 61 6b 5f 6c 69 62 73 20 22  pend weak_libs "
260f0 20 24 61 72 67 22 0a 09 20 20 70 72 65 76 3d 0a   $arg"..  prev=.
26100 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b  .  continue..  ;
26110 3b 0a 09 78 63 63 6c 69 6e 6b 65 72 29 0a 09 20  ;..xcclinker).. 
26120 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6c 69 6e   func_append lin
26130 6b 65 72 5f 66 6c 61 67 73 20 22 20 24 71 61 72  ker_flags " $qar
26140 67 22 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e  g"..  func_appen
26150 64 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73  d compiler_flags
26160 20 22 20 24 71 61 72 67 22 0a 09 20 20 70 72 65   " $qarg"..  pre
26170 76 3d 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e  v=..  func_appen
26180 64 20 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e  d compile_comman
26190 64 20 22 20 24 71 61 72 67 22 0a 09 20 20 66 75  d " $qarg"..  fu
261a0 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69  nc_append finali
261b0 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 71 61  ze_command " $qa
261c0 72 67 22 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a  rg"..  continue.
261d0 09 20 20 3b 3b 0a 09 78 63 6f 6d 70 69 6c 65 72  .  ;;..xcompiler
261e0 29 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64  )..  func_append
261f0 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20   compiler_flags 
26200 22 20 24 71 61 72 67 22 0a 09 20 20 70 72 65 76  " $qarg"..  prev
26210 3d 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64  =..  func_append
26220 20 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64   compile_command
26230 20 22 20 24 71 61 72 67 22 0a 09 20 20 66 75 6e   " $qarg"..  fun
26240 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69 7a  c_append finaliz
26250 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 71 61 72  e_command " $qar
26260 67 22 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09  g"..  continue..
26270 20 20 3b 3b 0a 09 78 6c 69 6e 6b 65 72 29 0a 09    ;;..xlinker)..
26280 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6c 69    func_append li
26290 6e 6b 65 72 5f 66 6c 61 67 73 20 22 20 24 71 61  nker_flags " $qa
262a0 72 67 22 0a 09 20 20 66 75 6e 63 5f 61 70 70 65  rg"..  func_appe
262b0 6e 64 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67  nd compiler_flag
262c0 73 20 22 20 24 77 6c 24 71 61 72 67 22 0a 09 20  s " $wl$qarg".. 
262d0 20 70 72 65 76 3d 0a 09 20 20 66 75 6e 63 5f 61   prev=..  func_a
262e0 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 63 6f  ppend compile_co
262f0 6d 6d 61 6e 64 20 22 20 24 77 6c 24 71 61 72 67  mmand " $wl$qarg
26300 22 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64  "..  func_append
26310 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e   finalize_comman
26320 64 20 22 20 24 77 6c 24 71 61 72 67 22 0a 09 20  d " $wl$qarg".. 
26330 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b 0a   continue..  ;;.
26340 09 2a 29 0a 09 20 20 65 76 61 6c 20 22 24 70 72  .*)..  eval "$pr
26350 65 76 3d 5c 22 5c 24 61 72 67 5c 22 22 0a 09 20  ev=\"\$arg\"".. 
26360 20 70 72 65 76 3d 0a 09 20 20 63 6f 6e 74 69 6e   prev=..  contin
26370 75 65 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a 20  ue..  ;;..esac. 
26380 20 20 20 20 20 66 69 20 23 20 74 65 73 74 20 2d       fi # test -
26390 6e 20 22 24 70 72 65 76 22 0a 0a 20 20 20 20 20  n "$prev"..     
263a0 20 70 72 65 76 61 72 67 3d 22 24 61 72 67 22 0a   prevarg="$arg".
263b0 0a 20 20 20 20 20 20 63 61 73 65 20 24 61 72 67  .      case $arg
263c0 20 69 6e 0a 20 20 20 20 20 20 2d 61 6c 6c 2d 73   in.      -all-s
263d0 74 61 74 69 63 29 0a 09 69 66 20 74 65 73 74 20  tatic)..if test 
263e0 2d 6e 20 22 24 6c 69 6e 6b 5f 73 74 61 74 69 63  -n "$link_static
263f0 5f 66 6c 61 67 22 3b 20 74 68 65 6e 0a 09 20 20  _flag"; then..  
26400 23 20 53 65 65 20 63 6f 6d 6d 65 6e 74 20 66 6f  # See comment fo
26410 72 20 2d 73 74 61 74 69 63 20 66 6c 61 67 20 62  r -static flag b
26420 65 6c 6f 77 2c 20 66 6f 72 20 6d 6f 72 65 20 64  elow, for more d
26430 65 74 61 69 6c 73 2e 0a 09 20 20 66 75 6e 63 5f  etails...  func_
26440 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 63  append compile_c
26450 6f 6d 6d 61 6e 64 20 22 20 24 6c 69 6e 6b 5f 73  ommand " $link_s
26460 74 61 74 69 63 5f 66 6c 61 67 22 0a 09 20 20 66  tatic_flag"..  f
26470 75 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c  unc_append final
26480 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 6c  ize_command " $l
26490 69 6e 6b 5f 73 74 61 74 69 63 5f 66 6c 61 67 22  ink_static_flag"
264a0 0a 09 66 69 0a 09 63 6f 6e 74 69 6e 75 65 0a 09  ..fi..continue..
264b0 3b 3b 0a 0a 20 20 20 20 20 20 2d 61 6c 6c 6f 77  ;;..      -allow
264c0 2d 75 6e 64 65 66 69 6e 65 64 29 0a 09 23 20 46  -undefined)..# F
264d0 49 58 4d 45 3a 20 72 65 6d 6f 76 65 20 74 68 69  IXME: remove thi
264e0 73 20 66 6c 61 67 20 73 6f 6d 65 74 69 6d 65 20  s flag sometime 
264f0 69 6e 20 74 68 65 20 66 75 74 75 72 65 2e 0a 09  in the future...
26500 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72  func_fatal_error
26510 20 22 5c 60 2d 61 6c 6c 6f 77 2d 75 6e 64 65 66   "\`-allow-undef
26520 69 6e 65 64 27 20 6d 75 73 74 20 6e 6f 74 20 62  ined' must not b
26530 65 20 75 73 65 64 20 62 65 63 61 75 73 65 20 69  e used because i
26540 74 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74  t is the default
26550 22 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 61 76  "..;;..      -av
26560 6f 69 64 2d 76 65 72 73 69 6f 6e 29 0a 09 61 76  oid-version)..av
26570 6f 69 64 5f 76 65 72 73 69 6f 6e 3d 79 65 73 0a  oid_version=yes.
26580 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20  .continue..;;.. 
26590 20 20 20 20 20 2d 62 69 6e 64 69 72 29 0a 09 70       -bindir)..p
265a0 72 65 76 3d 62 69 6e 64 69 72 0a 09 63 6f 6e 74  rev=bindir..cont
265b0 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
265c0 2d 64 6c 6f 70 65 6e 29 0a 09 70 72 65 76 3d 64  -dlopen)..prev=d
265d0 6c 66 69 6c 65 73 0a 09 63 6f 6e 74 69 6e 75 65  lfiles..continue
265e0 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 64 6c 70  ..;;..      -dlp
265f0 72 65 6f 70 65 6e 29 0a 09 70 72 65 76 3d 64 6c  reopen)..prev=dl
26600 70 72 65 66 69 6c 65 73 0a 09 63 6f 6e 74 69 6e  prefiles..contin
26610 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 65  ue..;;..      -e
26620 78 70 6f 72 74 2d 64 79 6e 61 6d 69 63 29 0a 09  xport-dynamic)..
26630 65 78 70 6f 72 74 5f 64 79 6e 61 6d 69 63 3d 79  export_dynamic=y
26640 65 73 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b  es..continue..;;
26650 0a 0a 20 20 20 20 20 20 2d 65 78 70 6f 72 74 2d  ..      -export-
26660 73 79 6d 62 6f 6c 73 20 7c 20 2d 65 78 70 6f 72  symbols | -expor
26670 74 2d 73 79 6d 62 6f 6c 73 2d 72 65 67 65 78 29  t-symbols-regex)
26680 0a 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 65  ..if test -n "$e
26690 78 70 6f 72 74 5f 73 79 6d 62 6f 6c 73 22 20 7c  xport_symbols" |
266a0 7c 20 74 65 73 74 20 2d 6e 20 22 24 65 78 70 6f  | test -n "$expo
266b0 72 74 5f 73 79 6d 62 6f 6c 73 5f 72 65 67 65 78  rt_symbols_regex
266c0 22 3b 20 74 68 65 6e 0a 09 20 20 66 75 6e 63 5f  "; then..  func_
266d0 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 6d 6f 72  fatal_error "mor
266e0 65 20 74 68 61 6e 20 6f 6e 65 20 2d 65 78 70 6f  e than one -expo
266f0 72 74 65 64 2d 73 79 6d 62 6f 6c 73 20 61 72 67  rted-symbols arg
26700 75 6d 65 6e 74 20 69 73 20 6e 6f 74 20 61 6c 6c  ument is not all
26710 6f 77 65 64 22 0a 09 66 69 0a 09 69 66 20 74 65  owed"..fi..if te
26720 73 74 20 22 58 24 61 72 67 22 20 3d 20 22 58 2d  st "X$arg" = "X-
26730 65 78 70 6f 72 74 2d 73 79 6d 62 6f 6c 73 22 3b  export-symbols";
26740 20 74 68 65 6e 0a 09 20 20 70 72 65 76 3d 65 78   then..  prev=ex
26750 70 73 79 6d 73 0a 09 65 6c 73 65 0a 09 20 20 70  psyms..else..  p
26760 72 65 76 3d 65 78 70 73 79 6d 73 5f 72 65 67 65  rev=expsyms_rege
26770 78 0a 09 66 69 0a 09 63 6f 6e 74 69 6e 75 65 0a  x..fi..continue.
26780 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 66 72 61 6d  .;;..      -fram
26790 65 77 6f 72 6b 29 0a 09 70 72 65 76 3d 66 72 61  ework)..prev=fra
267a0 6d 65 77 6f 72 6b 0a 09 63 6f 6e 74 69 6e 75 65  mework..continue
267b0 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 69 6e 73  ..;;..      -ins
267c0 74 2d 70 72 65 66 69 78 2d 64 69 72 29 0a 09 70  t-prefix-dir)..p
267d0 72 65 76 3d 69 6e 73 74 5f 70 72 65 66 69 78 0a  rev=inst_prefix.
267e0 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20  .continue..;;.. 
267f0 20 20 20 20 20 23 20 54 68 65 20 6e 61 74 69 76       # The nativ
26800 65 20 49 52 49 58 20 6c 69 6e 6b 65 72 20 75 6e  e IRIX linker un
26810 64 65 72 73 74 61 6e 64 73 20 2d 4c 41 4e 47 3a  derstands -LANG:
26820 2a 2c 20 2d 4c 49 53 54 3a 2a 20 61 6e 64 20 2d  *, -LIST:* and -
26830 4c 4e 4f 3a 2a 0a 20 20 20 20 20 20 23 20 73 6f  LNO:*.      # so
26840 2c 20 69 66 20 77 65 20 73 65 65 20 74 68 65 73  , if we see thes
26850 65 20 66 6c 61 67 73 20 62 65 20 63 61 72 65 66  e flags be caref
26860 75 6c 20 6e 6f 74 20 74 6f 20 74 72 65 61 74 20  ul not to treat 
26870 74 68 65 6d 20 6c 69 6b 65 20 2d 4c 0a 20 20 20  them like -L.   
26880 20 20 20 2d 4c 5b 41 2d 5a 5d 5b 41 2d 5a 5d 2a     -L[A-Z][A-Z]*
26890 3a 2a 29 0a 09 63 61 73 65 20 24 77 69 74 68 5f  :*)..case $with_
268a0 67 63 63 2f 24 68 6f 73 74 20 69 6e 0a 09 6e 6f  gcc/$host in..no
268b0 2f 2a 2d 2a 2d 69 72 69 78 2a 20 7c 20 2f 2a 2d  /*-*-irix* | /*-
268c0 2a 2d 69 72 69 78 2a 29 0a 09 20 20 66 75 6e 63  *-irix*)..  func
268d0 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f  _append compile_
268e0 63 6f 6d 6d 61 6e 64 20 22 20 24 61 72 67 22 0a  command " $arg".
268f0 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 66  .  func_append f
26900 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20  inalize_command 
26910 22 20 24 61 72 67 22 0a 09 20 20 3b 3b 0a 09 65  " $arg"..  ;;..e
26920 73 61 63 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b  sac..continue..;
26930 3b 0a 0a 20 20 20 20 20 20 2d 4c 2a 29 0a 09 66  ;..      -L*)..f
26940 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 22 2d  unc_stripname "-
26950 4c 22 20 27 27 20 22 24 61 72 67 22 0a 09 69 66  L" '' "$arg"..if
26960 20 74 65 73 74 20 2d 7a 20 22 24 66 75 6e 63 5f   test -z "$func_
26970 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
26980 22 3b 20 74 68 65 6e 0a 09 20 20 69 66 20 74 65  "; then..  if te
26990 73 74 20 22 24 23 22 20 2d 67 74 20 30 3b 20 74  st "$#" -gt 0; t
269a0 68 65 6e 0a 09 20 20 20 20 66 75 6e 63 5f 66 61  hen..    func_fa
269b0 74 61 6c 5f 65 72 72 6f 72 20 22 72 65 71 75 69  tal_error "requi
269c0 72 65 20 6e 6f 20 73 70 61 63 65 20 62 65 74 77  re no space betw
269d0 65 65 6e 20 5c 60 2d 4c 27 20 61 6e 64 20 5c 60  een \`-L' and \`
269e0 24 31 27 22 0a 09 20 20 65 6c 73 65 0a 09 20 20  $1'"..  else..  
269f0 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72    func_fatal_err
26a00 6f 72 20 22 6e 65 65 64 20 70 61 74 68 20 66 6f  or "need path fo
26a10 72 20 5c 60 2d 4c 27 20 6f 70 74 69 6f 6e 22 0a  r \`-L' option".
26a20 09 20 20 66 69 0a 09 66 69 0a 09 66 75 6e 63 5f  .  fi..fi..func_
26a30 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 20  resolve_sysroot 
26a40 22 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  "$func_stripname
26a50 5f 72 65 73 75 6c 74 22 0a 09 64 69 72 3d 24 66  _result"..dir=$f
26a60 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73 72  unc_resolve_sysr
26a70 6f 6f 74 5f 72 65 73 75 6c 74 0a 09 23 20 57 65  oot_result..# We
26a80 20 6e 65 65 64 20 61 6e 20 61 62 73 6f 6c 75 74   need an absolut
26a90 65 20 70 61 74 68 2e 0a 09 63 61 73 65 20 24 64  e path...case $d
26aa0 69 72 20 69 6e 0a 09 5b 5c 5c 2f 5d 2a 20 7c 20  ir in..[\\/]* | 
26ab0 5b 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29  [A-Za-z]:[\\/]*)
26ac0 20 3b 3b 0a 09 2a 29 0a 09 20 20 61 62 73 64 69   ;;..*)..  absdi
26ad0 72 3d 60 63 64 20 22 24 64 69 72 22 20 26 26 20  r=`cd "$dir" && 
26ae0 70 77 64 60 0a 09 20 20 74 65 73 74 20 2d 7a 20  pwd`..  test -z 
26af0 22 24 61 62 73 64 69 72 22 20 26 26 20 5c 0a 09  "$absdir" && \..
26b00 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65      func_fatal_e
26b10 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 64 65 74  rror "cannot det
26b20 65 72 6d 69 6e 65 20 61 62 73 6f 6c 75 74 65 20  ermine absolute 
26b30 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 20 6f  directory name o
26b40 66 20 5c 60 24 64 69 72 27 22 0a 09 20 20 64 69  f \`$dir'"..  di
26b50 72 3d 22 24 61 62 73 64 69 72 22 0a 09 20 20 3b  r="$absdir"..  ;
26b60 3b 0a 09 65 73 61 63 0a 09 63 61 73 65 20 22 24  ;..esac..case "$
26b70 64 65 70 6c 69 62 73 20 22 20 69 6e 0a 09 2a 22  deplibs " in..*"
26b80 20 2d 4c 24 64 69 72 20 22 2a 20 7c 20 2a 22 20   -L$dir "* | *" 
26b90 24 61 72 67 20 22 2a 29 0a 09 20 20 23 20 57 69  $arg "*)..  # Wi
26ba0 6c 6c 20 6f 6e 6c 79 20 68 61 70 70 65 6e 20 66  ll only happen f
26bb0 6f 72 20 61 62 73 6f 6c 75 74 65 20 6f 72 20 73  or absolute or s
26bc0 79 73 72 6f 6f 74 20 61 72 67 75 6d 65 6e 74 73  ysroot arguments
26bd0 0a 09 20 20 3b 3b 0a 09 2a 29 0a 09 20 20 23 20  ..  ;;..*)..  # 
26be0 50 72 65 73 65 72 76 65 20 73 79 73 72 6f 6f 74  Preserve sysroot
26bf0 2c 20 62 75 74 20 6e 65 76 65 72 20 69 6e 63 6c  , but never incl
26c00 75 64 65 20 72 65 6c 61 74 69 76 65 20 64 69 72  ude relative dir
26c10 65 63 74 6f 72 69 65 73 0a 09 20 20 63 61 73 65  ectories..  case
26c20 20 24 64 69 72 20 69 6e 0a 09 20 20 20 20 5b 5c   $dir in..    [\
26c30 5c 2f 5d 2a 20 7c 20 5b 41 2d 5a 61 2d 7a 5d 3a  \/]* | [A-Za-z]:
26c40 5b 5c 5c 2f 5d 2a 20 7c 20 3d 2a 29 20 66 75 6e  [\\/]* | =*) fun
26c50 63 5f 61 70 70 65 6e 64 20 64 65 70 6c 69 62 73  c_append deplibs
26c60 20 22 20 24 61 72 67 22 20 3b 3b 0a 09 20 20 20   " $arg" ;;..   
26c70 20 2a 29 20 66 75 6e 63 5f 61 70 70 65 6e 64 20   *) func_append 
26c80 64 65 70 6c 69 62 73 20 22 20 2d 4c 24 64 69 72  deplibs " -L$dir
26c90 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20  " ;;..  esac..  
26ca0 66 75 6e 63 5f 61 70 70 65 6e 64 20 6c 69 62 5f  func_append lib_
26cb0 73 65 61 72 63 68 5f 70 61 74 68 20 22 20 24 64  search_path " $d
26cc0 69 72 22 0a 09 20 20 3b 3b 0a 09 65 73 61 63 0a  ir"..  ;;..esac.
26cd0 09 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09  .case $host in..
26ce0 2a 2d 2a 2d 63 79 67 77 69 6e 2a 20 7c 20 2a 2d  *-*-cygwin* | *-
26cf0 2a 2d 6d 69 6e 67 77 2a 20 7c 20 2a 2d 2a 2d 70  *-mingw* | *-*-p
26d00 77 33 32 2a 20 7c 20 2a 2d 2a 2d 6f 73 32 2a 20  w32* | *-*-os2* 
26d10 7c 20 2a 2d 63 65 67 63 63 2a 29 0a 09 20 20 74  | *-cegcc*)..  t
26d20 65 73 74 62 69 6e 64 69 72 3d 60 24 45 43 48 4f  estbindir=`$ECHO
26d30 20 22 24 64 69 72 22 20 7c 20 24 53 45 44 20 27   "$dir" | $SED '
26d40 73 2a 2f 6c 69 62 24 2a 2f 62 69 6e 2a 27 60 0a  s*/lib$*/bin*'`.
26d50 09 20 20 63 61 73 65 20 3a 24 64 6c 6c 73 65 61  .  case :$dllsea
26d60 72 63 68 70 61 74 68 3a 20 69 6e 0a 09 20 20 2a  rchpath: in..  *
26d70 22 3a 24 64 69 72 3a 22 2a 29 20 3b 3b 0a 09 20  ":$dir:"*) ;;.. 
26d80 20 3a 3a 29 20 64 6c 6c 73 65 61 72 63 68 70 61   ::) dllsearchpa
26d90 74 68 3d 24 64 69 72 3b 3b 0a 09 20 20 2a 29 20  th=$dir;;..  *) 
26da0 66 75 6e 63 5f 61 70 70 65 6e 64 20 64 6c 6c 73  func_append dlls
26db0 65 61 72 63 68 70 61 74 68 20 22 3a 24 64 69 72  earchpath ":$dir
26dc0 22 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20 63  ";;..  esac..  c
26dd0 61 73 65 20 3a 24 64 6c 6c 73 65 61 72 63 68 70  ase :$dllsearchp
26de0 61 74 68 3a 20 69 6e 0a 09 20 20 2a 22 3a 24 74  ath: in..  *":$t
26df0 65 73 74 62 69 6e 64 69 72 3a 22 2a 29 20 3b 3b  estbindir:"*) ;;
26e00 0a 09 20 20 3a 3a 29 20 64 6c 6c 73 65 61 72 63  ..  ::) dllsearc
26e10 68 70 61 74 68 3d 24 74 65 73 74 62 69 6e 64 69  hpath=$testbindi
26e20 72 3b 3b 0a 09 20 20 2a 29 20 66 75 6e 63 5f 61  r;;..  *) func_a
26e30 70 70 65 6e 64 20 64 6c 6c 73 65 61 72 63 68 70  ppend dllsearchp
26e40 61 74 68 20 22 3a 24 74 65 73 74 62 69 6e 64 69  ath ":$testbindi
26e50 72 22 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20  r";;..  esac..  
26e60 3b 3b 0a 09 65 73 61 63 0a 09 63 6f 6e 74 69 6e  ;;..esac..contin
26e70 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 6c  ue..;;..      -l
26e80 2a 29 0a 09 69 66 20 74 65 73 74 20 22 58 24 61  *)..if test "X$a
26e90 72 67 22 20 3d 20 22 58 2d 6c 63 22 20 7c 7c 20  rg" = "X-lc" || 
26ea0 74 65 73 74 20 22 58 24 61 72 67 22 20 3d 20 22  test "X$arg" = "
26eb0 58 2d 6c 6d 22 3b 20 74 68 65 6e 0a 09 20 20 63  X-lm"; then..  c
26ec0 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 20  ase $host in..  
26ed0 2a 2d 2a 2d 63 79 67 77 69 6e 2a 20 7c 20 2a 2d  *-*-cygwin* | *-
26ee0 2a 2d 6d 69 6e 67 77 2a 20 7c 20 2a 2d 2a 2d 70  *-mingw* | *-*-p
26ef0 77 33 32 2a 20 7c 20 2a 2d 2a 2d 62 65 6f 73 2a  w32* | *-*-beos*
26f00 20 7c 20 2a 2d 63 65 67 63 63 2a 20 7c 20 2a 2d   | *-cegcc* | *-
26f10 2a 2d 68 61 69 6b 75 2a 29 0a 09 20 20 20 20 23  *-haiku*)..    #
26f20 20 54 68 65 73 65 20 73 79 73 74 65 6d 73 20 64   These systems d
26f30 6f 6e 27 74 20 61 63 74 75 61 6c 6c 79 20 68 61  on't actually ha
26f40 76 65 20 61 20 43 20 6f 72 20 6d 61 74 68 20 6c  ve a C or math l
26f50 69 62 72 61 72 79 20 28 61 73 20 73 75 63 68 29  ibrary (as such)
26f60 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09  ..    continue..
26f70 20 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 6f 73      ;;..  *-*-os
26f80 32 2a 29 0a 09 20 20 20 20 23 20 54 68 65 73 65  2*)..    # These
26f90 20 73 79 73 74 65 6d 73 20 64 6f 6e 27 74 20 61   systems don't a
26fa0 63 74 75 61 6c 6c 79 20 68 61 76 65 20 61 20 43  ctually have a C
26fb0 20 6c 69 62 72 61 72 79 20 28 61 73 20 73 75 63   library (as suc
26fc0 68 29 0a 09 20 20 20 20 74 65 73 74 20 22 58 24  h)..    test "X$
26fd0 61 72 67 22 20 3d 20 22 58 2d 6c 63 22 20 26 26  arg" = "X-lc" &&
26fe0 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20 20 3b   continue..    ;
26ff0 3b 0a 09 20 20 2a 2d 2a 2d 6f 70 65 6e 62 73 64  ;..  *-*-openbsd
27000 2a 20 7c 20 2a 2d 2a 2d 66 72 65 65 62 73 64 2a  * | *-*-freebsd*
27010 20 7c 20 2a 2d 2a 2d 64 72 61 67 6f 6e 66 6c 79   | *-*-dragonfly
27020 2a 29 0a 09 20 20 20 20 23 20 44 6f 20 6e 6f 74  *)..    # Do not
27030 20 69 6e 63 6c 75 64 65 20 6c 69 62 63 20 64 75   include libc du
27040 65 20 74 6f 20 75 73 20 68 61 76 69 6e 67 20 6c  e to us having l
27050 69 62 63 2f 6c 69 62 63 5f 72 2e 0a 09 20 20 20  ibc/libc_r...   
27060 20 74 65 73 74 20 22 58 24 61 72 67 22 20 3d 20   test "X$arg" = 
27070 22 58 2d 6c 63 22 20 26 26 20 63 6f 6e 74 69 6e  "X-lc" && contin
27080 75 65 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a 2d  ue..    ;;..  *-
27090 2a 2d 72 68 61 70 73 6f 64 79 2a 20 7c 20 2a 2d  *-rhapsody* | *-
270a0 2a 2d 64 61 72 77 69 6e 31 2e 5b 30 31 32 5d 29  *-darwin1.[012])
270b0 0a 09 20 20 20 20 23 20 52 68 61 70 73 6f 64 79  ..    # Rhapsody
270c0 20 43 20 61 6e 64 20 6d 61 74 68 20 6c 69 62 72   C and math libr
270d0 61 72 69 65 73 20 61 72 65 20 69 6e 20 74 68 65  aries are in the
270e0 20 53 79 73 74 65 6d 20 66 72 61 6d 65 77 6f 72   System framewor
270f0 6b 0a 09 20 20 20 20 66 75 6e 63 5f 61 70 70 65  k..    func_appe
27100 6e 64 20 64 65 70 6c 69 62 73 20 22 20 53 79 73  nd deplibs " Sys
27110 74 65 6d 2e 6c 74 66 72 61 6d 65 77 6f 72 6b 22  tem.ltframework"
27120 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09  ..    continue..
27130 20 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 73 63      ;;..  *-*-sc
27140 6f 33 2e 32 76 35 2a 20 7c 20 2a 2d 2a 2d 73 63  o3.2v5* | *-*-sc
27150 6f 35 76 36 2a 29 0a 09 20 20 20 20 23 20 43 61  o5v6*)..    # Ca
27160 75 73 65 73 20 70 72 6f 62 6c 65 6d 73 20 77 69  uses problems wi
27170 74 68 20 5f 5f 63 74 79 70 65 0a 09 20 20 20 20  th __ctype..    
27180 74 65 73 74 20 22 58 24 61 72 67 22 20 3d 20 22  test "X$arg" = "
27190 58 2d 6c 63 22 20 26 26 20 63 6f 6e 74 69 6e 75  X-lc" && continu
271a0 65 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a  e..    ;;..  *-*
271b0 2d 73 79 73 76 34 2e 32 75 77 32 2a 20 7c 20 2a  -sysv4.2uw2* | *
271c0 2d 2a 2d 73 79 73 76 35 2a 20 7c 20 2a 2d 2a 2d  -*-sysv5* | *-*-
271d0 75 6e 69 78 77 61 72 65 2a 20 7c 20 2a 2d 2a 2d  unixware* | *-*-
271e0 4f 70 65 6e 55 4e 49 58 2a 29 0a 09 20 20 20 20  OpenUNIX*)..    
271f0 23 20 43 6f 6d 70 69 6c 65 72 20 69 6e 73 65 72  # Compiler inser
27200 74 73 20 6c 69 62 63 20 69 6e 20 74 68 65 20 63  ts libc in the c
27210 6f 72 72 65 63 74 20 70 6c 61 63 65 20 66 6f 72  orrect place for
27220 20 74 68 72 65 61 64 73 20 74 6f 20 77 6f 72 6b   threads to work
27230 0a 09 20 20 20 20 74 65 73 74 20 22 58 24 61 72  ..    test "X$ar
27240 67 22 20 3d 20 22 58 2d 6c 63 22 20 26 26 20 63  g" = "X-lc" && c
27250 6f 6e 74 69 6e 75 65 0a 09 20 20 20 20 3b 3b 0a  ontinue..    ;;.
27260 09 20 20 65 73 61 63 0a 09 65 6c 69 66 20 74 65  .  esac..elif te
27270 73 74 20 22 58 24 61 72 67 22 20 3d 20 22 58 2d  st "X$arg" = "X-
27280 6c 63 5f 72 22 3b 20 74 68 65 6e 0a 09 20 63 61  lc_r"; then.. ca
27290 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 2a 2d  se $host in.. *-
272a0 2a 2d 6f 70 65 6e 62 73 64 2a 20 7c 20 2a 2d 2a  *-openbsd* | *-*
272b0 2d 66 72 65 65 62 73 64 2a 20 7c 20 2a 2d 2a 2d  -freebsd* | *-*-
272c0 64 72 61 67 6f 6e 66 6c 79 2a 29 0a 09 20 20 20  dragonfly*)..   
272d0 23 20 44 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65  # Do not include
272e0 20 6c 69 62 63 5f 72 20 64 69 72 65 63 74 6c 79   libc_r directly
272f0 2c 20 75 73 65 20 2d 70 74 68 72 65 61 64 20 66  , use -pthread f
27300 6c 61 67 2e 0a 09 20 20 20 63 6f 6e 74 69 6e 75  lag...   continu
27310 65 0a 09 20 20 20 3b 3b 0a 09 20 65 73 61 63 0a  e..   ;;.. esac.
27320 09 66 69 0a 09 66 75 6e 63 5f 61 70 70 65 6e 64  .fi..func_append
27330 20 64 65 70 6c 69 62 73 20 22 20 24 61 72 67 22   deplibs " $arg"
27340 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a  ..continue..;;..
27350 20 20 20 20 20 20 2d 6d 6f 64 75 6c 65 29 0a 09        -module)..
27360 6d 6f 64 75 6c 65 3d 79 65 73 0a 09 63 6f 6e 74  module=yes..cont
27370 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
27380 23 20 54 72 75 36 34 20 55 4e 49 58 20 75 73 65  # Tru64 UNIX use
27390 73 20 2d 6d 6f 64 65 6c 20 5b 61 72 67 5d 20 74  s -model [arg] t
273a0 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20  o determine the 
273b0 6c 61 79 6f 75 74 20 6f 66 20 43 2b 2b 0a 20 20  layout of C++.  
273c0 20 20 20 20 23 20 63 6c 61 73 73 65 73 2c 20 6e      # classes, n
273d0 61 6d 65 20 6d 61 6e 67 6c 69 6e 67 2c 20 61 6e  ame mangling, an
273e0 64 20 65 78 63 65 70 74 69 6f 6e 20 68 61 6e 64  d exception hand
273f0 6c 69 6e 67 2e 0a 20 20 20 20 20 20 23 20 44 61  ling..      # Da
27400 72 77 69 6e 20 75 73 65 73 20 74 68 65 20 2d 61  rwin uses the -a
27410 72 63 68 20 66 6c 61 67 20 74 6f 20 64 65 74 65  rch flag to dete
27420 72 6d 69 6e 65 20 6f 75 74 70 75 74 20 61 72 63  rmine output arc
27430 68 69 74 65 63 74 75 72 65 2e 0a 20 20 20 20 20  hitecture..     
27440 20 2d 6d 6f 64 65 6c 7c 2d 61 72 63 68 7c 2d 69   -model|-arch|-i
27450 73 79 73 72 6f 6f 74 7c 2d 2d 73 79 73 72 6f 6f  sysroot|--sysroo
27460 74 29 0a 09 66 75 6e 63 5f 61 70 70 65 6e 64 20  t)..func_append 
27470 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20 22  compiler_flags "
27480 20 24 61 72 67 22 0a 09 66 75 6e 63 5f 61 70 70   $arg"..func_app
27490 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d  end compile_comm
274a0 61 6e 64 20 22 20 24 61 72 67 22 0a 09 66 75 6e  and " $arg"..fun
274b0 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69 7a  c_append finaliz
274c0 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 61 72 67  e_command " $arg
274d0 22 0a 09 70 72 65 76 3d 78 63 6f 6d 70 69 6c 65  "..prev=xcompile
274e0 72 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a  r..continue..;;.
274f0 0a 20 20 20 20 20 20 2d 6d 74 7c 2d 6d 74 68 72  .      -mt|-mthr
27500 65 61 64 73 7c 2d 6b 74 68 72 65 61 64 7c 2d 4b  eads|-kthread|-K
27510 74 68 72 65 61 64 7c 2d 70 74 68 72 65 61 64 7c  thread|-pthread|
27520 2d 70 74 68 72 65 61 64 73 7c 2d 2d 74 68 72 65  -pthreads|--thre
27530 61 64 2d 73 61 66 65 20 5c 0a 20 20 20 20 20 20  ad-safe \.      
27540 7c 2d 74 68 72 65 61 64 73 7c 2d 66 6f 70 65 6e  |-threads|-fopen
27550 6d 70 7c 2d 6f 70 65 6e 6d 70 7c 2d 6d 70 7c 2d  mp|-openmp|-mp|-
27560 78 6f 70 65 6e 6d 70 7c 2d 6f 6d 70 7c 2d 71 73  xopenmp|-omp|-qs
27570 6d 70 3d 2a 29 0a 09 66 75 6e 63 5f 61 70 70 65  mp=*)..func_appe
27580 6e 64 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67  nd compiler_flag
27590 73 20 22 20 24 61 72 67 22 0a 09 66 75 6e 63 5f  s " $arg"..func_
275a0 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 63  append compile_c
275b0 6f 6d 6d 61 6e 64 20 22 20 24 61 72 67 22 0a 09  ommand " $arg"..
275c0 66 75 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61  func_append fina
275d0 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24  lize_command " $
275e0 61 72 67 22 0a 09 63 61 73 65 20 22 24 6e 65 77  arg"..case "$new
275f0 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65  _inherited_linke
27600 72 5f 66 6c 61 67 73 20 22 20 69 6e 0a 09 20 20  r_flags " in..  
27610 20 20 2a 22 20 24 61 72 67 20 22 2a 29 20 3b 3b    *" $arg "*) ;;
27620 0a 09 20 20 20 20 2a 20 29 20 66 75 6e 63 5f 61  ..    * ) func_a
27630 70 70 65 6e 64 20 6e 65 77 5f 69 6e 68 65 72 69  ppend new_inheri
27640 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73  ted_linker_flags
27650 20 22 20 24 61 72 67 22 20 3b 3b 0a 09 65 73 61   " $arg" ;;..esa
27660 63 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a  c..continue..;;.
27670 0a 20 20 20 20 20 20 2d 6d 75 6c 74 69 5f 6d 6f  .      -multi_mo
27680 64 75 6c 65 29 0a 09 73 69 6e 67 6c 65 5f 6d 6f  dule)..single_mo
27690 64 75 6c 65 3d 22 24 7b 77 6c 7d 2d 6d 75 6c 74  dule="${wl}-mult
276a0 69 5f 6d 6f 64 75 6c 65 22 0a 09 63 6f 6e 74 69  i_module"..conti
276b0 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d  nue..;;..      -
276c0 6e 6f 2d 66 61 73 74 2d 69 6e 73 74 61 6c 6c 29  no-fast-install)
276d0 0a 09 66 61 73 74 5f 69 6e 73 74 61 6c 6c 3d 6e  ..fast_install=n
276e0 6f 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a  o..continue..;;.
276f0 0a 20 20 20 20 20 20 2d 6e 6f 2d 69 6e 73 74 61  .      -no-insta
27700 6c 6c 29 0a 09 63 61 73 65 20 24 68 6f 73 74 20  ll)..case $host 
27710 69 6e 0a 09 2a 2d 2a 2d 63 79 67 77 69 6e 2a 20  in..*-*-cygwin* 
27720 7c 20 2a 2d 2a 2d 6d 69 6e 67 77 2a 20 7c 20 2a  | *-*-mingw* | *
27730 2d 2a 2d 70 77 33 32 2a 20 7c 20 2a 2d 2a 2d 6f  -*-pw32* | *-*-o
27740 73 32 2a 20 7c 20 2a 2d 2a 2d 64 61 72 77 69 6e  s2* | *-*-darwin
27750 2a 20 7c 20 2a 2d 63 65 67 63 63 2a 29 0a 09 20  * | *-cegcc*).. 
27760 20 23 20 54 68 65 20 50 41 54 48 20 68 61 63 6b   # The PATH hack
27770 65 72 79 20 69 6e 20 77 72 61 70 70 65 72 20 73  ery in wrapper s
27780 63 72 69 70 74 73 20 69 73 20 72 65 71 75 69 72  cripts is requir
27790 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 0a 09 20  ed on Windows.. 
277a0 20 23 20 61 6e 64 20 44 61 72 77 69 6e 20 69 6e   # and Darwin in
277b0 20 6f 72 64 65 72 20 66 6f 72 20 74 68 65 20 6c   order for the l
277c0 6f 61 64 65 72 20 74 6f 20 66 69 6e 64 20 61 6e  oader to find an
277d0 79 20 64 6c 6c 73 20 69 74 20 6e 65 65 64 73 2e  y dlls it needs.
277e0 0a 09 20 20 66 75 6e 63 5f 77 61 72 6e 69 6e 67  ..  func_warning
277f0 20 22 5c 60 2d 6e 6f 2d 69 6e 73 74 61 6c 6c 27   "\`-no-install'
27800 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72 20   is ignored for 
27810 24 68 6f 73 74 22 0a 09 20 20 66 75 6e 63 5f 77  $host"..  func_w
27820 61 72 6e 69 6e 67 20 22 61 73 73 75 6d 69 6e 67  arning "assuming
27830 20 5c 60 2d 6e 6f 2d 66 61 73 74 2d 69 6e 73 74   \`-no-fast-inst
27840 61 6c 6c 27 20 69 6e 73 74 65 61 64 22 0a 09 20  all' instead".. 
27850 20 66 61 73 74 5f 69 6e 73 74 61 6c 6c 3d 6e 6f   fast_install=no
27860 0a 09 20 20 3b 3b 0a 09 2a 29 20 6e 6f 5f 69 6e  ..  ;;..*) no_in
27870 73 74 61 6c 6c 3d 79 65 73 20 3b 3b 0a 09 65 73  stall=yes ;;..es
27880 61 63 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b  ac..continue..;;
27890 0a 0a 20 20 20 20 20 20 2d 6e 6f 2d 75 6e 64 65  ..      -no-unde
278a0 66 69 6e 65 64 29 0a 09 61 6c 6c 6f 77 5f 75 6e  fined)..allow_un
278b0 64 65 66 69 6e 65 64 3d 6e 6f 0a 09 63 6f 6e 74  defined=no..cont
278c0 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
278d0 2d 6f 62 6a 65 63 74 6c 69 73 74 29 0a 09 70 72  -objectlist)..pr
278e0 65 76 3d 6f 62 6a 65 63 74 6c 69 73 74 0a 09 63  ev=objectlist..c
278f0 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20  ontinue..;;..   
27900 20 20 20 2d 6f 29 20 70 72 65 76 3d 6f 75 74 70     -o) prev=outp
27910 75 74 20 3b 3b 0a 0a 20 20 20 20 20 20 2d 70 72  ut ;;..      -pr
27920 65 63 69 6f 75 73 2d 66 69 6c 65 73 2d 72 65 67  ecious-files-reg
27930 65 78 29 0a 09 70 72 65 76 3d 70 72 65 63 69 6f  ex)..prev=precio
27940 75 73 5f 72 65 67 65 78 0a 09 63 6f 6e 74 69 6e  us_regex..contin
27950 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 72  ue..;;..      -r
27960 65 6c 65 61 73 65 29 0a 09 70 72 65 76 3d 72 65  elease)..prev=re
27970 6c 65 61 73 65 0a 09 63 6f 6e 74 69 6e 75 65 0a  lease..continue.
27980 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 72 70 61 74  .;;..      -rpat
27990 68 29 0a 09 70 72 65 76 3d 72 70 61 74 68 0a 09  h)..prev=rpath..
279a0 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20  continue..;;..  
279b0 20 20 20 20 2d 52 29 0a 09 70 72 65 76 3d 78 72      -R)..prev=xr
279c0 70 61 74 68 0a 09 63 6f 6e 74 69 6e 75 65 0a 09  path..continue..
279d0 3b 3b 0a 0a 20 20 20 20 20 20 2d 52 2a 29 0a 09  ;;..      -R*)..
279e0 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
279f0 2d 52 27 20 27 27 20 22 24 61 72 67 22 0a 09 64  -R' '' "$arg"..d
27a00 69 72 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61  ir=$func_stripna
27a10 6d 65 5f 72 65 73 75 6c 74 0a 09 23 20 57 65 20  me_result..# We 
27a20 6e 65 65 64 20 61 6e 20 61 62 73 6f 6c 75 74 65  need an absolute
27a30 20 70 61 74 68 2e 0a 09 63 61 73 65 20 24 64 69   path...case $di
27a40 72 20 69 6e 0a 09 5b 5c 5c 2f 5d 2a 20 7c 20 5b  r in..[\\/]* | [
27a50 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29 20  A-Za-z]:[\\/]*) 
27a60 3b 3b 0a 09 3d 2a 29 0a 09 20 20 66 75 6e 63 5f  ;;..=*)..  func_
27a70 73 74 72 69 70 6e 61 6d 65 20 27 3d 27 20 27 27  stripname '=' ''
27a80 20 22 24 64 69 72 22 0a 09 20 20 64 69 72 3d 24   "$dir"..  dir=$
27a90 6c 74 5f 73 79 73 72 6f 6f 74 24 66 75 6e 63 5f  lt_sysroot$func_
27aa0 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
27ab0 0a 09 20 20 3b 3b 0a 09 2a 29 0a 09 20 20 66 75  ..  ;;..*)..  fu
27ac0 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22  nc_fatal_error "
27ad0 6f 6e 6c 79 20 61 62 73 6f 6c 75 74 65 20 72 75  only absolute ru
27ae0 6e 2d 70 61 74 68 73 20 61 72 65 20 61 6c 6c 6f  n-paths are allo
27af0 77 65 64 22 0a 09 20 20 3b 3b 0a 09 65 73 61 63  wed"..  ;;..esac
27b00 0a 09 63 61 73 65 20 22 24 78 72 70 61 74 68 20  ..case "$xrpath 
27b10 22 20 69 6e 0a 09 2a 22 20 24 64 69 72 20 22 2a  " in..*" $dir "*
27b20 29 20 3b 3b 0a 09 2a 29 20 66 75 6e 63 5f 61 70  ) ;;..*) func_ap
27b30 70 65 6e 64 20 78 72 70 61 74 68 20 22 20 24 64  pend xrpath " $d
27b40 69 72 22 20 3b 3b 0a 09 65 73 61 63 0a 09 63 6f  ir" ;;..esac..co
27b50 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20  ntinue..;;..    
27b60 20 20 2d 73 68 61 72 65 64 29 0a 09 23 20 54 68    -shared)..# Th
27b70 65 20 65 66 66 65 63 74 73 20 6f 66 20 2d 73 68  e effects of -sh
27b80 61 72 65 64 20 61 72 65 20 64 65 66 69 6e 65 64  ared are defined
27b90 20 69 6e 20 61 20 70 72 65 76 69 6f 75 73 20 6c   in a previous l
27ba0 6f 6f 70 2e 0a 09 63 6f 6e 74 69 6e 75 65 0a 09  oop...continue..
27bb0 3b 3b 0a 0a 20 20 20 20 20 20 2d 73 68 72 65 78  ;;..      -shrex
27bc0 74 29 0a 09 70 72 65 76 3d 73 68 72 65 78 74 0a  t)..prev=shrext.
27bd0 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20  .continue..;;.. 
27be0 20 20 20 20 20 2d 73 74 61 74 69 63 20 7c 20 2d       -static | -
27bf0 73 74 61 74 69 63 2d 6c 69 62 74 6f 6f 6c 2d 6c  static-libtool-l
27c00 69 62 73 29 0a 09 23 20 54 68 65 20 65 66 66 65  ibs)..# The effe
27c10 63 74 73 20 6f 66 20 2d 73 74 61 74 69 63 20 61  cts of -static a
27c20 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 61 20  re defined in a 
27c30 70 72 65 76 69 6f 75 73 20 6c 6f 6f 70 2e 0a 09  previous loop...
27c40 23 20 57 65 20 75 73 65 64 20 74 6f 20 64 6f 20  # We used to do 
27c50 74 68 65 20 73 61 6d 65 20 61 73 20 2d 61 6c 6c  the same as -all
27c60 2d 73 74 61 74 69 63 20 6f 6e 20 70 6c 61 74 66  -static on platf
27c70 6f 72 6d 73 20 74 68 61 74 0a 09 23 20 64 69 64  orms that..# did
27c80 6e 27 74 20 68 61 76 65 20 61 20 50 49 43 20 66  n't have a PIC f
27c90 6c 61 67 2c 20 62 75 74 20 74 68 65 20 61 73 73  lag, but the ass
27ca0 75 6d 70 74 69 6f 6e 20 74 68 61 74 20 74 68 65  umption that the
27cb0 20 65 66 66 65 63 74 73 0a 09 23 20 77 6f 75 6c   effects..# woul
27cc0 64 20 62 65 20 65 71 75 69 76 61 6c 65 6e 74 20  d be equivalent 
27cd0 77 61 73 20 77 72 6f 6e 67 2e 20 20 49 74 20 77  was wrong.  It w
27ce0 6f 75 6c 64 20 62 72 65 61 6b 20 6f 6e 20 61 74  ould break on at
27cf0 20 6c 65 61 73 74 0a 09 23 20 44 69 67 69 74 61   least..# Digita
27d00 6c 20 55 6e 69 78 20 61 6e 64 20 41 49 58 2e 0a  l Unix and AIX..
27d10 09 63 6f 6e 74 69 6e 75 65 0a 09 3b 3b 0a 0a 20  .continue..;;.. 
27d20 20 20 20 20 20 2d 74 68 72 65 61 64 2d 73 61 66       -thread-saf
27d30 65 29 0a 09 74 68 72 65 61 64 5f 73 61 66 65 3d  e)..thread_safe=
27d40 79 65 73 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b  yes..continue..;
27d50 3b 0a 0a 20 20 20 20 20 20 2d 76 65 72 73 69 6f  ;..      -versio
27d60 6e 2d 69 6e 66 6f 29 0a 09 70 72 65 76 3d 76 69  n-info)..prev=vi
27d70 6e 66 6f 0a 09 63 6f 6e 74 69 6e 75 65 0a 09 3b  nfo..continue..;
27d80 3b 0a 0a 20 20 20 20 20 20 2d 76 65 72 73 69 6f  ;..      -versio
27d90 6e 2d 6e 75 6d 62 65 72 29 0a 09 70 72 65 76 3d  n-number)..prev=
27da0 76 69 6e 66 6f 0a 09 76 69 6e 66 6f 5f 6e 75 6d  vinfo..vinfo_num
27db0 62 65 72 3d 79 65 73 0a 09 63 6f 6e 74 69 6e 75  ber=yes..continu
27dc0 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 77 65  e..;;..      -we
27dd0 61 6b 29 0a 20 20 20 20 20 20 20 20 70 72 65 76  ak).        prev
27de0 3d 77 65 61 6b 0a 09 63 6f 6e 74 69 6e 75 65 0a  =weak..continue.
27df0 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 57 63 2c 2a  .;;..      -Wc,*
27e00 29 0a 09 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  )..func_stripnam
27e10 65 20 27 2d 57 63 2c 27 20 27 27 20 22 24 61 72  e '-Wc,' '' "$ar
27e20 67 22 0a 09 61 72 67 73 3d 24 66 75 6e 63 5f 73  g"..args=$func_s
27e30 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a  tripname_result.
27e40 09 61 72 67 3d 0a 09 73 61 76 65 5f 69 66 73 3d  .arg=..save_ifs=
27e50 22 24 49 46 53 22 3b 20 49 46 53 3d 27 2c 27 0a  "$IFS"; IFS=','.
27e60 09 66 6f 72 20 66 6c 61 67 20 69 6e 20 24 61 72  .for flag in $ar
27e70 67 73 3b 20 64 6f 0a 09 20 20 49 46 53 3d 22 24  gs; do..  IFS="$
27e80 73 61 76 65 5f 69 66 73 22 0a 20 20 20 20 20 20  save_ifs".      
27e90 20 20 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66      func_quote_f
27ea0 6f 72 5f 65 76 61 6c 20 22 24 66 6c 61 67 22 0a  or_eval "$flag".
27eb0 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 61  .  func_append a
27ec0 72 67 20 22 20 24 66 75 6e 63 5f 71 75 6f 74 65  rg " $func_quote
27ed0 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74  _for_eval_result
27ee0 22 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64  "..  func_append
27ef0 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20   compiler_flags 
27f00 22 20 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f  " $func_quote_fo
27f10 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74 22 0a 09  r_eval_result"..
27f20 64 6f 6e 65 0a 09 49 46 53 3d 22 24 73 61 76 65  done..IFS="$save
27f30 5f 69 66 73 22 0a 09 66 75 6e 63 5f 73 74 72 69  _ifs"..func_stri
27f40 70 6e 61 6d 65 20 27 20 27 20 27 27 20 22 24 61  pname ' ' '' "$a
27f50 72 67 22 0a 09 61 72 67 3d 24 66 75 6e 63 5f 73  rg"..arg=$func_s
27f60 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a  tripname_result.
27f70 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 57 6c 2c 2a  .;;..      -Wl,*
27f80 29 0a 09 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d  )..func_stripnam
27f90 65 20 27 2d 57 6c 2c 27 20 27 27 20 22 24 61 72  e '-Wl,' '' "$ar
27fa0 67 22 0a 09 61 72 67 73 3d 24 66 75 6e 63 5f 73  g"..args=$func_s
27fb0 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a  tripname_result.
27fc0 09 61 72 67 3d 0a 09 73 61 76 65 5f 69 66 73 3d  .arg=..save_ifs=
27fd0 22 24 49 46 53 22 3b 20 49 46 53 3d 27 2c 27 0a  "$IFS"; IFS=','.
27fe0 09 66 6f 72 20 66 6c 61 67 20 69 6e 20 24 61 72  .for flag in $ar
27ff0 67 73 3b 20 64 6f 0a 09 20 20 49 46 53 3d 22 24  gs; do..  IFS="$
28000 73 61 76 65 5f 69 66 73 22 0a 20 20 20 20 20 20  save_ifs".      
28010 20 20 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66      func_quote_f
28020 6f 72 5f 65 76 61 6c 20 22 24 66 6c 61 67 22 0a  or_eval "$flag".
28030 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 61  .  func_append a
28040 72 67 20 22 20 24 77 6c 24 66 75 6e 63 5f 71 75  rg " $wl$func_qu
28050 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73  ote_for_eval_res
28060 75 6c 74 22 0a 09 20 20 66 75 6e 63 5f 61 70 70  ult"..  func_app
28070 65 6e 64 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61  end compiler_fla
28080 67 73 20 22 20 24 77 6c 24 66 75 6e 63 5f 71 75  gs " $wl$func_qu
28090 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73  ote_for_eval_res
280a0 75 6c 74 22 0a 09 20 20 66 75 6e 63 5f 61 70 70  ult"..  func_app
280b0 65 6e 64 20 6c 69 6e 6b 65 72 5f 66 6c 61 67 73  end linker_flags
280c0 20 22 20 24 66 75 6e 63 5f 71 75 6f 74 65 5f 66   " $func_quote_f
280d0 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74 22 0a  or_eval_result".
280e0 09 64 6f 6e 65 0a 09 49 46 53 3d 22 24 73 61 76  .done..IFS="$sav
280f0 65 5f 69 66 73 22 0a 09 66 75 6e 63 5f 73 74 72  e_ifs"..func_str
28100 69 70 6e 61 6d 65 20 27 20 27 20 27 27 20 22 24  ipname ' ' '' "$
28110 61 72 67 22 0a 09 61 72 67 3d 24 66 75 6e 63 5f  arg"..arg=$func_
28120 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
28130 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 58 63 6f  ..;;..      -Xco
28140 6d 70 69 6c 65 72 29 0a 09 70 72 65 76 3d 78 63  mpiler)..prev=xc
28150 6f 6d 70 69 6c 65 72 0a 09 63 6f 6e 74 69 6e 75  ompiler..continu
28160 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2d 58 6c  e..;;..      -Xl
28170 69 6e 6b 65 72 29 0a 09 70 72 65 76 3d 78 6c 69  inker)..prev=xli
28180 6e 6b 65 72 0a 09 63 6f 6e 74 69 6e 75 65 0a 09  nker..continue..
28190 3b 3b 0a 0a 20 20 20 20 20 20 2d 58 43 43 6c 69  ;;..      -XCCli
281a0 6e 6b 65 72 29 0a 09 70 72 65 76 3d 78 63 63 6c  nker)..prev=xccl
281b0 69 6e 6b 65 72 0a 09 63 6f 6e 74 69 6e 75 65 0a  inker..continue.
281c0 09 3b 3b 0a 0a 20 20 20 20 20 20 23 20 2d 6d 73  .;;..      # -ms
281d0 67 5f 2a 20 66 6f 72 20 6f 73 66 20 63 63 0a 20  g_* for osf cc. 
281e0 20 20 20 20 20 2d 6d 73 67 5f 2a 29 0a 09 66 75       -msg_*)..fu
281f0 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
28200 6c 20 22 24 61 72 67 22 0a 09 61 72 67 3d 22 24  l "$arg"..arg="$
28210 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65  func_quote_for_e
28220 76 61 6c 5f 72 65 73 75 6c 74 22 0a 09 3b 3b 0a  val_result"..;;.
28230 0a 20 20 20 20 20 20 23 20 46 6c 61 67 73 20 74  .      # Flags t
28240 6f 20 62 65 20 70 61 73 73 65 64 20 74 68 72 6f  o be passed thro
28250 75 67 68 20 75 6e 63 68 61 6e 67 65 64 2c 20 77  ugh unchanged, w
28260 69 74 68 20 72 61 74 69 6f 6e 61 6c 65 3a 0a 20  ith rationale:. 
28270 20 20 20 20 20 23 20 2d 36 34 2c 20 2d 6d 69 70       # -64, -mip
28280 73 5b 30 2d 39 5d 20 20 20 20 20 20 65 6e 61 62  s[0-9]      enab
28290 6c 65 20 36 34 2d 62 69 74 20 6d 6f 64 65 20 66  le 64-bit mode f
282a0 6f 72 20 74 68 65 20 53 47 49 20 63 6f 6d 70 69  or the SGI compi
282b0 6c 65 72 0a 20 20 20 20 20 20 23 20 2d 72 5b 30  ler.      # -r[0
282c0 2d 39 5d 5b 30 2d 39 5d 2a 20 20 20 20 20 20 20  -9][0-9]*       
282d0 20 73 70 65 63 69 66 79 20 70 72 6f 63 65 73 73   specify process
282e0 6f 72 20 66 6f 72 20 74 68 65 20 53 47 49 20 63  or for the SGI c
282f0 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 23 20  ompiler.      # 
28300 2d 78 61 72 63 68 3d 2a 2c 20 2d 78 74 61 72 67  -xarch=*, -xtarg
28310 65 74 3d 2a 20 65 6e 61 62 6c 65 20 36 34 2d 62  et=* enable 64-b
28320 69 74 20 6d 6f 64 65 20 66 6f 72 20 74 68 65 20  it mode for the 
28330 53 75 6e 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20  Sun compiler.   
28340 20 20 20 23 20 2b 44 41 2a 2c 20 2b 44 44 2a 20     # +DA*, +DD* 
28350 20 20 20 20 20 20 20 20 20 20 65 6e 61 62 6c 65            enable
28360 20 36 34 2d 62 69 74 20 6d 6f 64 65 20 66 6f 72   64-bit mode for
28370 20 74 68 65 20 48 50 20 63 6f 6d 70 69 6c 65 72   the HP compiler
28380 0a 20 20 20 20 20 20 23 20 2d 71 2a 20 20 20 20  .      # -q*    
28390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f                co
283a0 6d 70 69 6c 65 72 20 61 72 67 73 20 66 6f 72 20  mpiler args for 
283b0 74 68 65 20 49 42 4d 20 63 6f 6d 70 69 6c 65 72  the IBM compiler
283c0 0a 20 20 20 20 20 20 23 20 2d 6d 2a 2c 20 2d 74  .      # -m*, -t
283d0 5b 34 35 5d 2a 2c 20 2d 74 78 73 63 61 6c 65 2a  [45]*, -txscale*
283e0 20 61 72 63 68 69 74 65 63 74 75 72 65 2d 73 70   architecture-sp
283f0 65 63 69 66 69 63 20 66 6c 61 67 73 20 66 6f 72  ecific flags for
28400 20 47 43 43 0a 20 20 20 20 20 20 23 20 2d 46 2f   GCC.      # -F/
28410 70 61 74 68 20 20 20 20 20 20 20 20 20 20 20 20  path            
28420 20 20 70 61 74 68 20 74 6f 20 75 6e 69 6e 73 74    path to uninst
28430 61 6c 6c 65 64 20 66 72 61 6d 65 77 6f 72 6b 73  alled frameworks
28440 2c 20 67 63 63 20 6f 6e 20 64 61 72 77 69 6e 0a  , gcc on darwin.
28450 20 20 20 20 20 20 23 20 2d 70 2c 20 2d 70 67 2c        # -p, -pg,
28460 20 2d 2d 63 6f 76 65 72 61 67 65 2c 20 2d 66 70   --coverage, -fp
28470 72 6f 66 69 6c 65 2d 2a 20 20 70 72 6f 66 69 6c  rofile-*  profil
28480 69 6e 67 20 66 6c 61 67 73 20 66 6f 72 20 47 43  ing flags for GC
28490 43 0a 20 20 20 20 20 20 23 20 40 66 69 6c 65 20  C.      # @file 
284a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47                 G
284b0 43 43 20 72 65 73 70 6f 6e 73 65 20 66 69 6c 65  CC response file
284c0 73 0a 20 20 20 20 20 20 23 20 2d 74 70 3d 2a 20  s.      # -tp=* 
284d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50                 P
284e0 6f 72 74 6c 61 6e 64 20 70 67 63 63 20 74 61 72  ortland pgcc tar
284f0 67 65 74 20 70 72 6f 63 65 73 73 6f 72 20 73 65  get processor se
28500 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 23 20  lection.      # 
28510 2d 2d 73 79 73 72 6f 6f 74 3d 2a 20 20 20 20 20  --sysroot=*     
28520 20 20 20 20 20 66 6f 72 20 73 79 73 72 6f 6f 74       for sysroot
28530 20 73 75 70 70 6f 72 74 0a 20 20 20 20 20 20 23   support.      #
28540 20 2d 4f 2a 2c 20 2d 66 6c 74 6f 2a 2c 20 2d 66   -O*, -flto*, -f
28550 77 68 6f 70 72 2a 2c 20 2d 66 75 73 65 2d 6c 69  whopr*, -fuse-li
28560 6e 6b 65 72 2d 70 6c 75 67 69 6e 20 47 43 43 20  nker-plugin GCC 
28570 6c 69 6e 6b 2d 74 69 6d 65 20 6f 70 74 69 6d 69  link-time optimi
28580 7a 61 74 69 6f 6e 0a 20 20 20 20 20 20 2d 36 34  zation.      -64
28590 7c 2d 6d 69 70 73 5b 30 2d 39 5d 7c 2d 72 5b 30  |-mips[0-9]|-r[0
285a0 2d 39 5d 5b 30 2d 39 5d 2a 7c 2d 78 61 72 63 68  -9][0-9]*|-xarch
285b0 3d 2a 7c 2d 78 74 61 72 67 65 74 3d 2a 7c 2b 44  =*|-xtarget=*|+D
285c0 41 2a 7c 2b 44 44 2a 7c 2d 71 2a 7c 2d 6d 2a 7c  A*|+DD*|-q*|-m*|
285d0 20 5c 0a 20 20 20 20 20 20 2d 74 5b 34 35 5d 2a   \.      -t[45]*
285e0 7c 2d 74 78 73 63 61 6c 65 2a 7c 2d 70 7c 2d 70  |-txscale*|-p|-p
285f0 67 7c 2d 2d 63 6f 76 65 72 61 67 65 7c 2d 66 70  g|--coverage|-fp
28600 72 6f 66 69 6c 65 2d 2a 7c 2d 46 2a 7c 40 2a 7c  rofile-*|-F*|@*|
28610 2d 74 70 3d 2a 7c 2d 2d 73 79 73 72 6f 6f 74 3d  -tp=*|--sysroot=
28620 2a 7c 20 5c 0a 20 20 20 20 20 20 2d 4f 2a 7c 2d  *| \.      -O*|-
28630 66 6c 74 6f 2a 7c 2d 66 77 68 6f 70 72 2a 7c 2d  flto*|-fwhopr*|-
28640 66 75 73 65 2d 6c 69 6e 6b 65 72 2d 70 6c 75 67  fuse-linker-plug
28650 69 6e 29 0a 20 20 20 20 20 20 20 20 66 75 6e 63  in).        func
28660 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61 6c 20  _quote_for_eval 
28670 22 24 61 72 67 22 0a 09 61 72 67 3d 22 24 66 75  "$arg"..arg="$fu
28680 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
28690 6c 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 20 20  l_result".      
286a0 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63 6f    func_append co
286b0 6d 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22 20  mpile_command " 
286c0 24 61 72 67 22 0a 20 20 20 20 20 20 20 20 66 75  $arg".        fu
286d0 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69  nc_append finali
286e0 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24 61 72  ze_command " $ar
286f0 67 22 0a 20 20 20 20 20 20 20 20 66 75 6e 63 5f  g".        func_
28700 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 72 5f  append compiler_
28710 66 6c 61 67 73 20 22 20 24 61 72 67 22 0a 20 20  flags " $arg".  
28720 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 20        continue. 
28730 20 20 20 20 20 20 20 3b 3b 0a 0a 20 20 20 20 20         ;;..     
28740 20 23 20 53 6f 6d 65 20 6f 74 68 65 72 20 63 6f   # Some other co
28750 6d 70 69 6c 65 72 20 66 6c 61 67 2e 0a 20 20 20  mpiler flag..   
28760 20 20 20 2d 2a 20 7c 20 2b 2a 29 0a 20 20 20 20     -* | +*).    
28770 20 20 20 20 66 75 6e 63 5f 71 75 6f 74 65 5f 66      func_quote_f
28780 6f 72 5f 65 76 61 6c 20 22 24 61 72 67 22 0a 09  or_eval "$arg"..
28790 61 72 67 3d 22 24 66 75 6e 63 5f 71 75 6f 74 65  arg="$func_quote
287a0 5f 66 6f 72 5f 65 76 61 6c 5f 72 65 73 75 6c 74  _for_eval_result
287b0 22 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2a 2e 24  "..;;..      *.$
287c0 6f 62 6a 65 78 74 29 0a 09 23 20 41 20 73 74 61  objext)..# A sta
287d0 6e 64 61 72 64 20 6f 62 6a 65 63 74 2e 0a 09 66  ndard object...f
287e0 75 6e 63 5f 61 70 70 65 6e 64 20 6f 62 6a 73 20  unc_append objs 
287f0 22 20 24 61 72 67 22 0a 09 3b 3b 0a 0a 20 20 20  " $arg"..;;..   
28800 20 20 20 2a 2e 6c 6f 29 0a 09 23 20 41 20 6c 69     *.lo)..# A li
28810 62 74 6f 6f 6c 2d 63 6f 6e 74 72 6f 6c 6c 65 64  btool-controlled
28820 20 6f 62 6a 65 63 74 2e 0a 0a 09 23 20 43 68 65   object....# Che
28830 63 6b 20 74 6f 20 73 65 65 20 74 68 61 74 20 74  ck to see that t
28840 68 69 73 20 72 65 61 6c 6c 79 20 69 73 20 61 20  his really is a 
28850 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65 63 74 2e 0a  libtool object..
28860 09 69 66 20 66 75 6e 63 5f 6c 61 6c 69 62 5f 75  .if func_lalib_u
28870 6e 73 61 66 65 5f 70 20 22 24 61 72 67 22 3b 20  nsafe_p "$arg"; 
28880 74 68 65 6e 0a 09 20 20 70 69 63 5f 6f 62 6a 65  then..  pic_obje
28890 63 74 3d 0a 09 20 20 6e 6f 6e 5f 70 69 63 5f 6f  ct=..  non_pic_o
288a0 62 6a 65 63 74 3d 0a 0a 09 20 20 23 20 52 65 61  bject=...  # Rea
288b0 64 20 74 68 65 20 2e 6c 6f 20 66 69 6c 65 0a 09  d the .lo file..
288c0 20 20 66 75 6e 63 5f 73 6f 75 72 63 65 20 22 24    func_source "$
288d0 61 72 67 22 0a 0a 09 20 20 69 66 20 74 65 73 74  arg"...  if test
288e0 20 2d 7a 20 22 24 70 69 63 5f 6f 62 6a 65 63 74   -z "$pic_object
288f0 22 20 7c 7c 0a 09 20 20 20 20 20 74 65 73 74 20  " ||..     test 
28900 2d 7a 20 22 24 6e 6f 6e 5f 70 69 63 5f 6f 62 6a  -z "$non_pic_obj
28910 65 63 74 22 20 7c 7c 0a 09 20 20 20 20 20 74 65  ect" ||..     te
28920 73 74 20 22 24 70 69 63 5f 6f 62 6a 65 63 74 22  st "$pic_object"
28930 20 3d 20 6e 6f 6e 65 20 26 26 0a 09 20 20 20 20   = none &&..    
28940 20 74 65 73 74 20 22 24 6e 6f 6e 5f 70 69 63 5f   test "$non_pic_
28950 6f 62 6a 65 63 74 22 20 3d 20 6e 6f 6e 65 3b 20  object" = none; 
28960 74 68 65 6e 0a 09 20 20 20 20 66 75 6e 63 5f 66  then..    func_f
28970 61 74 61 6c 5f 65 72 72 6f 72 20 22 63 61 6e 6e  atal_error "cann
28980 6f 74 20 66 69 6e 64 20 6e 61 6d 65 20 6f 66 20  ot find name of 
28990 6f 62 6a 65 63 74 20 66 6f 72 20 5c 60 24 61 72  object for \`$ar
289a0 67 27 22 0a 09 20 20 66 69 0a 0a 09 20 20 23 20  g'"..  fi...  # 
289b0 45 78 74 72 61 63 74 20 73 75 62 64 69 72 65 63  Extract subdirec
289c0 74 6f 72 79 20 66 72 6f 6d 20 74 68 65 20 61 72  tory from the ar
289d0 67 75 6d 65 6e 74 2e 0a 09 20 20 66 75 6e 63 5f  gument...  func_
289e0 64 69 72 6e 61 6d 65 20 22 24 61 72 67 22 20 22  dirname "$arg" "
289f0 2f 22 20 22 22 0a 09 20 20 78 64 69 72 3d 22 24  /" ""..  xdir="$
28a00 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73  func_dirname_res
28a10 75 6c 74 22 0a 0a 09 20 20 69 66 20 74 65 73 74  ult"...  if test
28a20 20 22 24 70 69 63 5f 6f 62 6a 65 63 74 22 20 21   "$pic_object" !
28a30 3d 20 6e 6f 6e 65 3b 20 74 68 65 6e 0a 09 20 20  = none; then..  
28a40 20 20 23 20 50 72 65 70 65 6e 64 20 74 68 65 20    # Prepend the 
28a50 73 75 62 64 69 72 65 63 74 6f 72 79 20 74 68 65  subdirectory the
28a60 20 6f 62 6a 65 63 74 20 69 73 20 66 6f 75 6e 64   object is found
28a70 20 69 6e 2e 0a 09 20 20 20 20 70 69 63 5f 6f 62   in...    pic_ob
28a80 6a 65 63 74 3d 22 24 78 64 69 72 24 70 69 63 5f  ject="$xdir$pic_
28a90 6f 62 6a 65 63 74 22 0a 0a 09 20 20 20 20 69 66  object"...    if
28aa0 20 74 65 73 74 20 22 24 70 72 65 76 22 20 3d 20   test "$prev" = 
28ab0 64 6c 66 69 6c 65 73 3b 20 74 68 65 6e 0a 09 20  dlfiles; then.. 
28ac0 20 20 20 20 20 69 66 20 74 65 73 74 20 22 24 62       if test "$b
28ad0 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62  uild_libtool_lib
28ae0 73 22 20 3d 20 79 65 73 20 26 26 20 74 65 73 74  s" = yes && test
28af0 20 22 24 64 6c 6f 70 65 6e 5f 73 75 70 70 6f 72   "$dlopen_suppor
28b00 74 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09  t" = yes; then..
28b10 09 66 75 6e 63 5f 61 70 70 65 6e 64 20 64 6c 66  .func_append dlf
28b20 69 6c 65 73 20 22 20 24 70 69 63 5f 6f 62 6a 65  iles " $pic_obje
28b30 63 74 22 0a 09 09 70 72 65 76 3d 0a 09 09 63 6f  ct"...prev=...co
28b40 6e 74 69 6e 75 65 0a 09 20 20 20 20 20 20 65 6c  ntinue..      el
28b50 73 65 0a 09 09 23 20 49 66 20 6c 69 62 74 6f 6f  se...# If libtoo
28b60 6c 20 6f 62 6a 65 63 74 73 20 61 72 65 20 75 6e  l objects are un
28b70 73 75 70 70 6f 72 74 65 64 2c 20 74 68 65 6e 20  supported, then 
28b80 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 6c 6f  we need to prelo
28b90 61 64 2e 0a 09 09 70 72 65 76 3d 64 6c 70 72 65  ad....prev=dlpre
28ba0 66 69 6c 65 73 0a 09 20 20 20 20 20 20 66 69 0a  files..      fi.
28bb0 09 20 20 20 20 66 69 0a 0a 09 20 20 20 20 23 20  .    fi...    # 
28bc0 43 48 45 43 4b 20 4d 45 3a 20 20 49 20 74 68 69  CHECK ME:  I thi
28bd0 6e 6b 20 49 20 62 75 73 74 65 64 20 74 68 69 73  nk I busted this
28be0 2e 20 20 2d 4f 73 73 61 6d 61 0a 09 20 20 20 20  .  -Ossama..    
28bf0 69 66 20 74 65 73 74 20 22 24 70 72 65 76 22 20  if test "$prev" 
28c00 3d 20 64 6c 70 72 65 66 69 6c 65 73 3b 20 74 68  = dlprefiles; th
28c10 65 6e 0a 09 20 20 20 20 20 20 23 20 50 72 65 6c  en..      # Prel
28c20 6f 61 64 20 74 68 65 20 6f 6c 64 2d 73 74 79 6c  oad the old-styl
28c30 65 20 6f 62 6a 65 63 74 2e 0a 09 20 20 20 20 20  e object...     
28c40 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 64 6c 70   func_append dlp
28c50 72 65 66 69 6c 65 73 20 22 20 24 70 69 63 5f 6f  refiles " $pic_o
28c60 62 6a 65 63 74 22 0a 09 20 20 20 20 20 20 70 72  bject"..      pr
28c70 65 76 3d 0a 09 20 20 20 20 66 69 0a 0a 09 20 20  ev=..    fi...  
28c80 20 20 23 20 41 20 50 49 43 20 6f 62 6a 65 63 74    # A PIC object
28c90 2e 0a 09 20 20 20 20 66 75 6e 63 5f 61 70 70 65  ...    func_appe
28ca0 6e 64 20 6c 69 62 6f 62 6a 73 20 22 20 24 70 69  nd libobjs " $pi
28cb0 63 5f 6f 62 6a 65 63 74 22 0a 09 20 20 20 20 61  c_object"..    a
28cc0 72 67 3d 22 24 70 69 63 5f 6f 62 6a 65 63 74 22  rg="$pic_object"
28cd0 0a 09 20 20 66 69 0a 0a 09 20 20 23 20 4e 6f 6e  ..  fi...  # Non
28ce0 2d 50 49 43 20 6f 62 6a 65 63 74 2e 0a 09 20 20  -PIC object...  
28cf0 69 66 20 74 65 73 74 20 22 24 6e 6f 6e 5f 70 69  if test "$non_pi
28d00 63 5f 6f 62 6a 65 63 74 22 20 21 3d 20 6e 6f 6e  c_object" != non
28d10 65 3b 20 74 68 65 6e 0a 09 20 20 20 20 23 20 50  e; then..    # P
28d20 72 65 70 65 6e 64 20 74 68 65 20 73 75 62 64 69  repend the subdi
28d30 72 65 63 74 6f 72 79 20 74 68 65 20 6f 62 6a 65  rectory the obje
28d40 63 74 20 69 73 20 66 6f 75 6e 64 20 69 6e 2e 0a  ct is found in..
28d50 09 20 20 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a  .    non_pic_obj
28d60 65 63 74 3d 22 24 78 64 69 72 24 6e 6f 6e 5f 70  ect="$xdir$non_p
28d70 69 63 5f 6f 62 6a 65 63 74 22 0a 0a 09 20 20 20  ic_object"...   
28d80 20 23 20 41 20 73 74 61 6e 64 61 72 64 20 6e 6f   # A standard no
28d90 6e 2d 50 49 43 20 6f 62 6a 65 63 74 0a 09 20 20  n-PIC object..  
28da0 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 6f    func_append no
28db0 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 73 20 22 20  n_pic_objects " 
28dc0 24 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 22  $non_pic_object"
28dd0 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 2d 7a  ..    if test -z
28de0 20 22 24 70 69 63 5f 6f 62 6a 65 63 74 22 20 7c   "$pic_object" |
28df0 7c 20 74 65 73 74 20 22 24 70 69 63 5f 6f 62 6a  | test "$pic_obj
28e00 65 63 74 22 20 3d 20 6e 6f 6e 65 20 3b 20 74 68  ect" = none ; th
28e10 65 6e 0a 09 20 20 20 20 20 20 61 72 67 3d 22 24  en..      arg="$
28e20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74 22 0a  non_pic_object".
28e30 09 20 20 20 20 66 69 0a 09 20 20 65 6c 73 65 0a  .    fi..  else.
28e40 09 20 20 20 20 23 20 49 66 20 74 68 65 20 50 49  .    # If the PI
28e50 43 20 6f 62 6a 65 63 74 20 65 78 69 73 74 73 2c  C object exists,
28e60 20 75 73 65 20 69 74 20 69 6e 73 74 65 61 64 2e   use it instead.
28e70 0a 09 20 20 20 20 23 20 24 78 64 69 72 20 77 61  ..    # $xdir wa
28e80 73 20 70 72 65 70 65 6e 64 65 64 20 74 6f 20 24  s prepended to $
28e90 70 69 63 5f 6f 62 6a 65 63 74 20 61 62 6f 76 65  pic_object above
28ea0 2e 0a 09 20 20 20 20 6e 6f 6e 5f 70 69 63 5f 6f  ...    non_pic_o
28eb0 62 6a 65 63 74 3d 22 24 70 69 63 5f 6f 62 6a 65  bject="$pic_obje
28ec0 63 74 22 0a 09 20 20 20 20 66 75 6e 63 5f 61 70  ct"..    func_ap
28ed0 70 65 6e 64 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a  pend non_pic_obj
28ee0 65 63 74 73 20 22 20 24 6e 6f 6e 5f 70 69 63 5f  ects " $non_pic_
28ef0 6f 62 6a 65 63 74 22 0a 09 20 20 66 69 0a 09 65  object"..  fi..e
28f00 6c 73 65 0a 09 20 20 23 20 4f 6e 6c 79 20 61 6e  lse..  # Only an
28f10 20 65 72 72 6f 72 20 69 66 20 6e 6f 74 20 64 6f   error if not do
28f20 69 6e 67 20 61 20 64 72 79 2d 72 75 6e 2e 0a 09  ing a dry-run...
28f30 20 20 69 66 20 24 6f 70 74 5f 64 72 79 5f 72 75    if $opt_dry_ru
28f40 6e 3b 20 74 68 65 6e 0a 09 20 20 20 20 23 20 45  n; then..    # E
28f50 78 74 72 61 63 74 20 73 75 62 64 69 72 65 63 74  xtract subdirect
28f60 6f 72 79 20 66 72 6f 6d 20 74 68 65 20 61 72 67  ory from the arg
28f70 75 6d 65 6e 74 2e 0a 09 20 20 20 20 66 75 6e 63  ument...    func
28f80 5f 64 69 72 6e 61 6d 65 20 22 24 61 72 67 22 20  _dirname "$arg" 
28f90 22 2f 22 20 22 22 0a 09 20 20 20 20 78 64 69 72  "/" ""..    xdir
28fa0 3d 22 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f  ="$func_dirname_
28fb0 72 65 73 75 6c 74 22 0a 0a 09 20 20 20 20 66 75  result"...    fu
28fc0 6e 63 5f 6c 6f 32 6f 20 22 24 61 72 67 22 0a 09  nc_lo2o "$arg"..
28fd0 20 20 20 20 70 69 63 5f 6f 62 6a 65 63 74 3d 24      pic_object=$
28fe0 78 64 69 72 24 6f 62 6a 64 69 72 2f 24 66 75 6e  xdir$objdir/$fun
28ff0 63 5f 6c 6f 32 6f 5f 72 65 73 75 6c 74 0a 09 20  c_lo2o_result.. 
29000 20 20 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63     non_pic_objec
29010 74 3d 24 78 64 69 72 24 66 75 6e 63 5f 6c 6f 32  t=$xdir$func_lo2
29020 6f 5f 72 65 73 75 6c 74 0a 09 20 20 20 20 66 75  o_result..    fu
29030 6e 63 5f 61 70 70 65 6e 64 20 6c 69 62 6f 62 6a  nc_append libobj
29040 73 20 22 20 24 70 69 63 5f 6f 62 6a 65 63 74 22  s " $pic_object"
29050 0a 09 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e  ..    func_appen
29060 64 20 6e 6f 6e 5f 70 69 63 5f 6f 62 6a 65 63 74  d non_pic_object
29070 73 20 22 20 24 6e 6f 6e 5f 70 69 63 5f 6f 62 6a  s " $non_pic_obj
29080 65 63 74 22 0a 09 20 20 65 6c 73 65 0a 09 20 20  ect"..  else..  
29090 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72    func_fatal_err
290a0 6f 72 20 22 5c 60 24 61 72 67 27 20 69 73 20 6e  or "\`$arg' is n
290b0 6f 74 20 61 20 76 61 6c 69 64 20 6c 69 62 74 6f  ot a valid libto
290c0 6f 6c 20 6f 62 6a 65 63 74 22 0a 09 20 20 66 69  ol object"..  fi
290d0 0a 09 66 69 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  ..fi..;;..      
290e0 2a 2e 24 6c 69 62 65 78 74 29 0a 09 23 20 41 6e  *.$libext)..# An
290f0 20 61 72 63 68 69 76 65 2e 0a 09 66 75 6e 63 5f   archive...func_
29100 61 70 70 65 6e 64 20 64 65 70 6c 69 62 73 20 22  append deplibs "
29110 20 24 61 72 67 22 0a 09 66 75 6e 63 5f 61 70 70   $arg"..func_app
29120 65 6e 64 20 6f 6c 64 5f 64 65 70 6c 69 62 73 20  end old_deplibs 
29130 22 20 24 61 72 67 22 0a 09 63 6f 6e 74 69 6e 75  " $arg"..continu
29140 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20 2a 2e 6c  e..;;..      *.l
29150 61 29 0a 09 23 20 41 20 6c 69 62 74 6f 6f 6c 2d  a)..# A libtool-
29160 63 6f 6e 74 72 6f 6c 6c 65 64 20 6c 69 62 72 61  controlled libra
29170 72 79 2e 0a 0a 09 66 75 6e 63 5f 72 65 73 6f 6c  ry....func_resol
29180 76 65 5f 73 79 73 72 6f 6f 74 20 22 24 61 72 67  ve_sysroot "$arg
29190 22 0a 09 69 66 20 74 65 73 74 20 22 24 70 72 65  "..if test "$pre
291a0 76 22 20 3d 20 64 6c 66 69 6c 65 73 3b 20 74 68  v" = dlfiles; th
291b0 65 6e 0a 09 20 20 23 20 54 68 69 73 20 6c 69 62  en..  # This lib
291c0 72 61 72 79 20 77 61 73 20 73 70 65 63 69 66 69  rary was specifi
291d0 65 64 20 77 69 74 68 20 2d 64 6c 6f 70 65 6e 2e  ed with -dlopen.
291e0 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20  ..  func_append 
291f0 64 6c 66 69 6c 65 73 20 22 20 24 66 75 6e 63 5f  dlfiles " $func_
29200 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 5f  resolve_sysroot_
29210 72 65 73 75 6c 74 22 0a 09 20 20 70 72 65 76 3d  result"..  prev=
29220 0a 09 65 6c 69 66 20 74 65 73 74 20 22 24 70 72  ..elif test "$pr
29230 65 76 22 20 3d 20 64 6c 70 72 65 66 69 6c 65 73  ev" = dlprefiles
29240 3b 20 74 68 65 6e 0a 09 20 20 23 20 54 68 65 20  ; then..  # The 
29250 6c 69 62 72 61 72 79 20 77 61 73 20 73 70 65 63  library was spec
29260 69 66 69 65 64 20 77 69 74 68 20 2d 64 6c 70 72  ified with -dlpr
29270 65 6f 70 65 6e 2e 0a 09 20 20 66 75 6e 63 5f 61  eopen...  func_a
29280 70 70 65 6e 64 20 64 6c 70 72 65 66 69 6c 65 73  ppend dlprefiles
29290 20 22 20 24 66 75 6e 63 5f 72 65 73 6f 6c 76 65   " $func_resolve
292a0 5f 73 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 22  _sysroot_result"
292b0 0a 09 20 20 70 72 65 76 3d 0a 09 65 6c 73 65 0a  ..  prev=..else.
292c0 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 64  .  func_append d
292d0 65 70 6c 69 62 73 20 22 20 24 66 75 6e 63 5f 72  eplibs " $func_r
292e0 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 5f 72  esolve_sysroot_r
292f0 65 73 75 6c 74 22 0a 09 66 69 0a 09 63 6f 6e 74  esult"..fi..cont
29300 69 6e 75 65 0a 09 3b 3b 0a 0a 20 20 20 20 20 20  inue..;;..      
29310 23 20 53 6f 6d 65 20 6f 74 68 65 72 20 63 6f 6d  # Some other com
29320 70 69 6c 65 72 20 61 72 67 75 6d 65 6e 74 2e 0a  piler argument..
29330 20 20 20 20 20 20 2a 29 0a 09 23 20 55 6e 6b 6e        *)..# Unkn
29340 6f 77 6e 20 61 72 67 75 6d 65 6e 74 73 20 69 6e  own arguments in
29350 20 62 6f 74 68 20 66 69 6e 61 6c 69 7a 65 5f 63   both finalize_c
29360 6f 6d 6d 61 6e 64 20 61 6e 64 20 63 6f 6d 70 69  ommand and compi
29370 6c 65 5f 63 6f 6d 6d 61 6e 64 20 6e 65 65 64 0a  le_command need.
29380 09 23 20 74 6f 20 62 65 20 61 65 73 74 68 65 74  .# to be aesthet
29390 69 63 61 6c 6c 79 20 71 75 6f 74 65 64 20 62 65  ically quoted be
293a0 63 61 75 73 65 20 74 68 65 79 20 61 72 65 20 65  cause they are e
293b0 76 61 6c 65 64 20 6c 61 74 65 72 2e 0a 09 66 75  valed later...fu
293c0 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65 76 61  nc_quote_for_eva
293d0 6c 20 22 24 61 72 67 22 0a 09 61 72 67 3d 22 24  l "$arg"..arg="$
293e0 66 75 6e 63 5f 71 75 6f 74 65 5f 66 6f 72 5f 65  func_quote_for_e
293f0 76 61 6c 5f 72 65 73 75 6c 74 22 0a 09 3b 3b 0a  val_result"..;;.
29400 20 20 20 20 20 20 65 73 61 63 20 23 20 61 72 67        esac # arg
29410 0a 0a 20 20 20 20 20 20 23 20 4e 6f 77 20 61 63  ..      # Now ac
29420 74 75 61 6c 6c 79 20 73 75 62 73 74 69 74 75 74  tually substitut
29430 65 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 69  e the argument i
29440 6e 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73  nto the commands
29450 2e 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
29460 2d 6e 20 22 24 61 72 67 22 3b 20 74 68 65 6e 0a  -n "$arg"; then.
29470 09 66 75 6e 63 5f 61 70 70 65 6e 64 20 63 6f 6d  .func_append com
29480 70 69 6c 65 5f 63 6f 6d 6d 61 6e 64 20 22 20 24  pile_command " $
29490 61 72 67 22 0a 09 66 75 6e 63 5f 61 70 70 65 6e  arg"..func_appen
294a0 64 20 66 69 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61  d finalize_comma
294b0 6e 64 20 22 20 24 61 72 67 22 0a 20 20 20 20 20  nd " $arg".     
294c0 20 66 69 0a 20 20 20 20 64 6f 6e 65 20 23 20 61   fi.    done # a
294d0 72 67 75 6d 65 6e 74 20 70 61 72 73 69 6e 67 20  rgument parsing 
294e0 6c 6f 6f 70 0a 0a 20 20 20 20 74 65 73 74 20 2d  loop..    test -
294f0 6e 20 22 24 70 72 65 76 22 20 26 26 20 5c 0a 20  n "$prev" && \. 
29500 20 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f       func_fatal_
29510 68 65 6c 70 20 22 74 68 65 20 5c 60 24 70 72 65  help "the \`$pre
29520 76 61 72 67 27 20 6f 70 74 69 6f 6e 20 72 65 71  varg' option req
29530 75 69 72 65 73 20 61 6e 20 61 72 67 75 6d 65 6e  uires an argumen
29540 74 22 0a 0a 20 20 20 20 69 66 20 74 65 73 74 20  t"..    if test 
29550 22 24 65 78 70 6f 72 74 5f 64 79 6e 61 6d 69 63  "$export_dynamic
29560 22 20 3d 20 79 65 73 20 26 26 20 74 65 73 74 20  " = yes && test 
29570 2d 6e 20 22 24 65 78 70 6f 72 74 5f 64 79 6e 61  -n "$export_dyna
29580 6d 69 63 5f 66 6c 61 67 5f 73 70 65 63 22 3b 20  mic_flag_spec"; 
29590 74 68 65 6e 0a 20 20 20 20 20 20 65 76 61 6c 20  then.      eval 
295a0 61 72 67 3d 5c 22 24 65 78 70 6f 72 74 5f 64 79  arg=\"$export_dy
295b0 6e 61 6d 69 63 5f 66 6c 61 67 5f 73 70 65 63 5c  namic_flag_spec\
295c0 22 0a 20 20 20 20 20 20 66 75 6e 63 5f 61 70 70  ".      func_app
295d0 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 63 6f 6d 6d  end compile_comm
295e0 61 6e 64 20 22 20 24 61 72 67 22 0a 20 20 20 20  and " $arg".    
295f0 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 66 69    func_append fi
29600 6e 61 6c 69 7a 65 5f 63 6f 6d 6d 61 6e 64 20 22  nalize_command "
29610 20 24 61 72 67 22 0a 20 20 20 20 66 69 0a 0a 20   $arg".    fi.. 
29620 20 20 20 6f 6c 64 6c 69 62 73 3d 0a 20 20 20 20     oldlibs=.    
29630 23 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20  # calculate the 
29640 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65  name of the file
29650 2c 20 77 69 74 68 6f 75 74 20 69 74 73 20 64 69  , without its di
29660 72 65 63 74 6f 72 79 0a 20 20 20 20 66 75 6e 63  rectory.    func
29670 5f 62 61 73 65 6e 61 6d 65 20 22 24 6f 75 74 70  _basename "$outp
29680 75 74 22 0a 20 20 20 20 6f 75 74 70 75 74 6e 61  ut".    outputna
29690 6d 65 3d 22 24 66 75 6e 63 5f 62 61 73 65 6e 61  me="$func_basena
296a0 6d 65 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 6c  me_result".    l
296b0 69 62 6f 62 6a 73 5f 73 61 76 65 3d 22 24 6c 69  ibobjs_save="$li
296c0 62 6f 62 6a 73 22 0a 0a 20 20 20 20 69 66 20 74  bobjs"..    if t
296d0 65 73 74 20 2d 6e 20 22 24 73 68 6c 69 62 70 61  est -n "$shlibpa
296e0 74 68 5f 76 61 72 22 3b 20 74 68 65 6e 0a 20 20  th_var"; then.  
296f0 20 20 20 20 23 20 67 65 74 20 74 68 65 20 64 69      # get the di
29700 72 65 63 74 6f 72 69 65 73 20 6c 69 73 74 65 64  rectories listed
29710 20 69 6e 20 24 73 68 6c 69 62 70 61 74 68 5f 76   in $shlibpath_v
29720 61 72 0a 20 20 20 20 20 20 65 76 61 6c 20 73 68  ar.      eval sh
29730 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 3d  lib_search_path=
29740 5c 60 5c 24 45 43 48 4f 20 5c 22 5c 24 7b 24 73  \`\$ECHO \"\${$s
29750 68 6c 69 62 70 61 74 68 5f 76 61 72 7d 5c 22 20  hlibpath_var}\" 
29760 5c 7c 20 5c 24 53 45 44 20 5c 27 73 2f 3a 2f 20  \| \$SED \'s/:/ 
29770 2f 67 5c 27 5c 60 0a 20 20 20 20 65 6c 73 65 0a  /g\'\`.    else.
29780 20 20 20 20 20 20 73 68 6c 69 62 5f 73 65 61 72        shlib_sear
29790 63 68 5f 70 61 74 68 3d 0a 20 20 20 20 66 69 0a  ch_path=.    fi.
297a0 20 20 20 20 65 76 61 6c 20 73 79 73 5f 6c 69 62      eval sys_lib
297b0 5f 73 65 61 72 63 68 5f 70 61 74 68 3d 5c 22 24  _search_path=\"$
297c0 73 79 73 5f 6c 69 62 5f 73 65 61 72 63 68 5f 70  sys_lib_search_p
297d0 61 74 68 5f 73 70 65 63 5c 22 0a 20 20 20 20 65  ath_spec\".    e
297e0 76 61 6c 20 73 79 73 5f 6c 69 62 5f 64 6c 73 65  val sys_lib_dlse
297f0 61 72 63 68 5f 70 61 74 68 3d 5c 22 24 73 79 73  arch_path=\"$sys
29800 5f 6c 69 62 5f 64 6c 73 65 61 72 63 68 5f 70 61  _lib_dlsearch_pa
29810 74 68 5f 73 70 65 63 5c 22 0a 0a 20 20 20 20 66  th_spec\"..    f
29820 75 6e 63 5f 64 69 72 6e 61 6d 65 20 22 24 6f 75  unc_dirname "$ou
29830 74 70 75 74 22 20 22 2f 22 20 22 22 0a 20 20 20  tput" "/" "".   
29840 20 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 3d 22   output_objdir="
29850 24 66 75 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65  $func_dirname_re
29860 73 75 6c 74 24 6f 62 6a 64 69 72 22 0a 20 20 20  sult$objdir".   
29870 20 66 75 6e 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69   func_to_tool_fi
29880 6c 65 20 22 24 6f 75 74 70 75 74 5f 6f 62 6a 64  le "$output_objd
29890 69 72 2f 22 0a 20 20 20 20 74 6f 6f 6c 5f 6f 75  ir/".    tool_ou
298a0 74 70 75 74 5f 6f 62 6a 64 69 72 3d 24 66 75 6e  tput_objdir=$fun
298b0 63 5f 74 6f 5f 74 6f 6f 6c 5f 66 69 6c 65 5f 72  c_to_tool_file_r
298c0 65 73 75 6c 74 0a 20 20 20 20 23 20 43 72 65 61  esult.    # Crea
298d0 74 65 20 74 68 65 20 6f 62 6a 65 63 74 20 64 69  te the object di
298e0 72 65 63 74 6f 72 79 2e 0a 20 20 20 20 66 75 6e  rectory..    fun
298f0 63 5f 6d 6b 64 69 72 5f 70 20 22 24 6f 75 74 70  c_mkdir_p "$outp
29900 75 74 5f 6f 62 6a 64 69 72 22 0a 0a 20 20 20 20  ut_objdir"..    
29910 23 20 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20  # Determine the 
29920 74 79 70 65 20 6f 66 20 6f 75 74 70 75 74 0a 20  type of output. 
29930 20 20 20 63 61 73 65 20 24 6f 75 74 70 75 74 20     case $output 
29940 69 6e 0a 20 20 20 20 22 22 29 0a 20 20 20 20 20  in.    "").     
29950 20 66 75 6e 63 5f 66 61 74 61 6c 5f 68 65 6c 70   func_fatal_help
29960 20 22 79 6f 75 20 6d 75 73 74 20 73 70 65 63 69   "you must speci
29970 66 79 20 61 6e 20 6f 75 74 70 75 74 20 66 69 6c  fy an output fil
29980 65 22 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20  e".      ;;.    
29990 2a 2e 24 6c 69 62 65 78 74 29 20 6c 69 6e 6b 6d  *.$libext) linkm
299a0 6f 64 65 3d 6f 6c 64 6c 69 62 20 3b 3b 0a 20 20  ode=oldlib ;;.  
299b0 20 20 2a 2e 6c 6f 20 7c 20 2a 2e 24 6f 62 6a 65    *.lo | *.$obje
299c0 78 74 29 20 6c 69 6e 6b 6d 6f 64 65 3d 6f 62 6a  xt) linkmode=obj
299d0 20 3b 3b 0a 20 20 20 20 2a 2e 6c 61 29 20 6c 69   ;;.    *.la) li
299e0 6e 6b 6d 6f 64 65 3d 6c 69 62 20 3b 3b 0a 20 20  nkmode=lib ;;.  
299f0 20 20 2a 29 20 6c 69 6e 6b 6d 6f 64 65 3d 70 72    *) linkmode=pr
29a00 6f 67 20 3b 3b 20 23 20 41 6e 79 74 68 69 6e 67  og ;; # Anything
29a10 20 65 6c 73 65 20 73 68 6f 75 6c 64 20 62 65 20   else should be 
29a20 61 20 70 72 6f 67 72 61 6d 2e 0a 20 20 20 20 65  a program..    e
29a30 73 61 63 0a 0a 20 20 20 20 73 70 65 63 69 61 6c  sac..    special
29a40 64 65 70 6c 69 62 73 3d 0a 0a 20 20 20 20 6c 69  deplibs=..    li
29a50 62 73 3d 0a 20 20 20 20 23 20 46 69 6e 64 20 61  bs=.    # Find a
29a60 6c 6c 20 69 6e 74 65 72 64 65 70 65 6e 64 65 6e  ll interdependen
29a70 74 20 64 65 70 6c 69 62 73 20 62 79 20 73 65 61  t deplibs by sea
29a80 72 63 68 69 6e 67 20 66 6f 72 20 6c 69 62 72 61  rching for libra
29a90 72 69 65 73 0a 20 20 20 20 23 20 74 68 61 74 20  ries.    # that 
29aa0 61 72 65 20 6c 69 6e 6b 65 64 20 6d 6f 72 65 20  are linked more 
29ab0 74 68 61 6e 20 6f 6e 63 65 20 28 65 2e 67 2e 20  than once (e.g. 
29ac0 2d 6c 61 20 2d 6c 62 20 2d 6c 61 29 0a 20 20 20  -la -lb -la).   
29ad0 20 66 6f 72 20 64 65 70 6c 69 62 20 69 6e 20 24   for deplib in $
29ae0 64 65 70 6c 69 62 73 3b 20 64 6f 0a 20 20 20 20  deplibs; do.    
29af0 20 20 69 66 20 24 6f 70 74 5f 70 72 65 73 65 72    if $opt_preser
29b00 76 65 5f 64 75 70 5f 64 65 70 73 20 3b 20 74 68  ve_dup_deps ; th
29b10 65 6e 0a 09 63 61 73 65 20 22 24 6c 69 62 73 20  en..case "$libs 
29b20 22 20 69 6e 0a 09 2a 22 20 24 64 65 70 6c 69 62  " in..*" $deplib
29b30 20 22 2a 29 20 66 75 6e 63 5f 61 70 70 65 6e 64   "*) func_append
29b40 20 73 70 65 63 69 61 6c 64 65 70 6c 69 62 73 20   specialdeplibs 
29b50 22 20 24 64 65 70 6c 69 62 22 20 3b 3b 0a 09 65  " $deplib" ;;..e
29b60 73 61 63 0a 20 20 20 20 20 20 66 69 0a 20 20 20  sac.      fi.   
29b70 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6c     func_append l
29b80 69 62 73 20 22 20 24 64 65 70 6c 69 62 22 0a 20  ibs " $deplib". 
29b90 20 20 20 64 6f 6e 65 0a 0a 20 20 20 20 69 66 20     done..    if 
29ba0 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22  test "$linkmode"
29bb0 20 3d 20 6c 69 62 3b 20 74 68 65 6e 0a 20 20 20   = lib; then.   
29bc0 20 20 20 6c 69 62 73 3d 22 24 70 72 65 64 65 70     libs="$predep
29bd0 73 20 24 6c 69 62 73 20 24 63 6f 6d 70 69 6c 65  s $libs $compile
29be0 72 5f 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  r_lib_search_pat
29bf0 68 20 24 70 6f 73 74 64 65 70 73 22 0a 0a 20 20  h $postdeps"..  
29c00 20 20 20 20 23 20 43 6f 6d 70 75 74 65 20 6c 69      # Compute li
29c10 62 72 61 72 69 65 73 20 74 68 61 74 20 61 72 65  braries that are
29c20 20 6c 69 73 74 65 64 20 6d 6f 72 65 20 74 68 61   listed more tha
29c30 6e 20 6f 6e 63 65 20 69 6e 20 24 70 72 65 64 65  n once in $prede
29c40 70 73 0a 20 20 20 20 20 20 23 20 24 70 6f 73 74  ps.      # $post
29c50 64 65 70 73 20 61 6e 64 20 6d 61 72 6b 20 74 68  deps and mark th
29c60 65 6d 20 61 73 20 73 70 65 63 69 61 6c 20 28 69  em as special (i
29c70 2e 65 2e 2c 20 77 68 6f 73 65 20 64 75 70 6c 69  .e., whose dupli
29c80 63 61 74 65 73 20 61 72 65 0a 20 20 20 20 20 20  cates are.      
29c90 23 20 6e 6f 74 20 74 6f 20 62 65 20 65 6c 69 6d  # not to be elim
29ca0 69 6e 61 74 65 64 29 2e 0a 20 20 20 20 20 20 70  inated)..      p
29cb0 72 65 5f 70 6f 73 74 5f 64 65 70 73 3d 0a 20 20  re_post_deps=.  
29cc0 20 20 20 20 69 66 20 24 6f 70 74 5f 64 75 70 6c      if $opt_dupl
29cd0 69 63 61 74 65 5f 63 6f 6d 70 69 6c 65 72 5f 67  icate_compiler_g
29ce0 65 6e 65 72 61 74 65 64 5f 64 65 70 73 3b 20 74  enerated_deps; t
29cf0 68 65 6e 0a 09 66 6f 72 20 70 72 65 5f 70 6f 73  hen..for pre_pos
29d00 74 5f 64 65 70 20 69 6e 20 24 70 72 65 64 65 70  t_dep in $predep
29d10 73 20 24 70 6f 73 74 64 65 70 73 3b 20 64 6f 0a  s $postdeps; do.
29d20 09 20 20 63 61 73 65 20 22 24 70 72 65 5f 70 6f  .  case "$pre_po
29d30 73 74 5f 64 65 70 73 20 22 20 69 6e 0a 09 20 20  st_deps " in..  
29d40 2a 22 20 24 70 72 65 5f 70 6f 73 74 5f 64 65 70  *" $pre_post_dep
29d50 20 22 2a 29 20 66 75 6e 63 5f 61 70 70 65 6e 64   "*) func_append
29d60 20 73 70 65 63 69 61 6c 64 65 70 6c 69 62 73 20   specialdeplibs 
29d70 22 20 24 70 72 65 5f 70 6f 73 74 5f 64 65 70 73  " $pre_post_deps
29d80 22 20 3b 3b 0a 09 20 20 65 73 61 63 0a 09 20 20  " ;;..  esac..  
29d90 66 75 6e 63 5f 61 70 70 65 6e 64 20 70 72 65 5f  func_append pre_
29da0 70 6f 73 74 5f 64 65 70 73 20 22 20 24 70 72 65  post_deps " $pre
29db0 5f 70 6f 73 74 5f 64 65 70 22 0a 09 64 6f 6e 65  _post_dep"..done
29dc0 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20  .      fi.      
29dd0 70 72 65 5f 70 6f 73 74 5f 64 65 70 73 3d 0a 20  pre_post_deps=. 
29de0 20 20 20 66 69 0a 0a 20 20 20 20 64 65 70 6c 69     fi..    depli
29df0 62 73 3d 0a 20 20 20 20 6e 65 77 64 65 70 65 6e  bs=.    newdepen
29e00 64 65 6e 63 79 5f 6c 69 62 73 3d 0a 20 20 20 20  dency_libs=.    
29e10 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61  newlib_search_pa
29e20 74 68 3d 0a 20 20 20 20 6e 65 65 64 5f 72 65 6c  th=.    need_rel
29e30 69 6e 6b 3d 6e 6f 20 23 20 77 68 65 74 68 65 72  ink=no # whether
29e40 20 77 65 27 72 65 20 6c 69 6e 6b 69 6e 67 20 61   we're linking a
29e50 6e 79 20 75 6e 69 6e 73 74 61 6c 6c 65 64 20 6c  ny uninstalled l
29e60 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 69 65 73  ibtool libraries
29e70 0a 20 20 20 20 6e 6f 74 69 6e 73 74 5f 64 65 70  .    notinst_dep
29e80 6c 69 62 73 3d 20 23 20 6e 6f 74 2d 69 6e 73 74  libs= # not-inst
29e90 61 6c 6c 65 64 20 6c 69 62 74 6f 6f 6c 20 6c 69  alled libtool li
29ea0 62 72 61 72 69 65 73 0a 20 20 20 20 6e 6f 74 69  braries.    noti
29eb0 6e 73 74 5f 70 61 74 68 3d 20 23 20 70 61 74 68  nst_path= # path
29ec0 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 6e  s that contain n
29ed0 6f 74 2d 69 6e 73 74 61 6c 6c 65 64 20 6c 69 62  ot-installed lib
29ee0 74 6f 6f 6c 20 6c 69 62 72 61 72 69 65 73 0a 0a  tool libraries..
29ef0 20 20 20 20 63 61 73 65 20 24 6c 69 6e 6b 6d 6f      case $linkmo
29f00 64 65 20 69 6e 0a 20 20 20 20 6c 69 62 29 0a 09  de in.    lib)..
29f10 70 61 73 73 65 73 3d 22 63 6f 6e 76 20 64 6c 70  passes="conv dlp
29f20 72 65 6f 70 65 6e 20 6c 69 6e 6b 22 0a 09 66 6f  reopen link"..fo
29f30 72 20 66 69 6c 65 20 69 6e 20 24 64 6c 66 69 6c  r file in $dlfil
29f40 65 73 20 24 64 6c 70 72 65 66 69 6c 65 73 3b 20  es $dlprefiles; 
29f50 64 6f 0a 09 20 20 63 61 73 65 20 24 66 69 6c 65  do..  case $file
29f60 20 69 6e 0a 09 20 20 2a 2e 6c 61 29 20 3b 3b 0a   in..  *.la) ;;.
29f70 09 20 20 2a 29 0a 09 20 20 20 20 66 75 6e 63 5f  .  *)..    func_
29f80 66 61 74 61 6c 5f 68 65 6c 70 20 22 6c 69 62 72  fatal_help "libr
29f90 61 72 69 65 73 20 63 61 6e 20 5c 60 2d 64 6c 6f  aries can \`-dlo
29fa0 70 65 6e 27 20 6f 6e 6c 79 20 6c 69 62 74 6f 6f  pen' only libtoo
29fb0 6c 20 6c 69 62 72 61 72 69 65 73 3a 20 24 66 69  l libraries: $fi
29fc0 6c 65 22 0a 09 20 20 20 20 3b 3b 0a 09 20 20 65  le"..    ;;..  e
29fd0 73 61 63 0a 09 64 6f 6e 65 0a 09 3b 3b 0a 20 20  sac..done..;;.  
29fe0 20 20 70 72 6f 67 29 0a 09 63 6f 6d 70 69 6c 65    prog)..compile
29ff0 5f 64 65 70 6c 69 62 73 3d 0a 09 66 69 6e 61 6c  _deplibs=..final
2a000 69 7a 65 5f 64 65 70 6c 69 62 73 3d 0a 09 61 6c  ize_deplibs=..al
2a010 6c 64 65 70 6c 69 62 73 3d 6e 6f 0a 09 6e 65 77  ldeplibs=no..new
2a020 64 6c 66 69 6c 65 73 3d 0a 09 6e 65 77 64 6c 70  dlfiles=..newdlp
2a030 72 65 66 69 6c 65 73 3d 0a 09 70 61 73 73 65 73  refiles=..passes
2a040 3d 22 63 6f 6e 76 20 73 63 61 6e 20 64 6c 6f 70  ="conv scan dlop
2a050 65 6e 20 64 6c 70 72 65 6f 70 65 6e 20 6c 69 6e  en dlpreopen lin
2a060 6b 22 0a 09 3b 3b 0a 20 20 20 20 2a 29 20 20 70  k"..;;.    *)  p
2a070 61 73 73 65 73 3d 22 63 6f 6e 76 22 0a 09 3b 3b  asses="conv"..;;
2a080 0a 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20 66  .    esac..    f
2a090 6f 72 20 70 61 73 73 20 69 6e 20 24 70 61 73 73  or pass in $pass
2a0a0 65 73 3b 20 64 6f 0a 20 20 20 20 20 20 23 20 54  es; do.      # T
2a0b0 68 65 20 70 72 65 6f 70 65 6e 20 70 61 73 73 20  he preopen pass 
2a0c0 69 6e 20 6c 69 62 20 6d 6f 64 65 20 72 65 76 65  in lib mode reve
2a0d0 72 73 65 73 20 24 64 65 70 6c 69 62 73 3b 20 70  rses $deplibs; p
2a0e0 75 74 20 69 74 20 62 61 63 6b 20 68 65 72 65 0a  ut it back here.
2a0f0 20 20 20 20 20 20 23 20 73 6f 20 74 68 61 74 20        # so that 
2a100 2d 4c 20 63 6f 6d 65 73 20 62 65 66 6f 72 65 20  -L comes before 
2a110 6c 69 62 73 20 74 68 61 74 20 6e 65 65 64 20 69  libs that need i
2a120 74 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 2e 2e  t for instance..
2a130 2e 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
2a140 22 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73  "$linkmode,$pass
2a150 22 20 3d 20 22 6c 69 62 2c 6c 69 6e 6b 22 3b 20  " = "lib,link"; 
2a160 74 68 65 6e 0a 09 23 23 20 46 49 58 4d 45 3a 20  then..## FIXME: 
2a170 46 69 6e 64 20 74 68 65 20 70 6c 61 63 65 20 77  Find the place w
2a180 68 65 72 65 20 74 68 65 20 6c 69 73 74 20 69 73  here the list is
2a190 20 72 65 62 75 69 6c 74 20 69 6e 20 74 68 65 20   rebuilt in the 
2a1a0 77 72 6f 6e 67 0a 09 23 23 20 20 20 20 20 20 20  wrong..##       
2a1b0 20 6f 72 64 65 72 2c 20 61 6e 64 20 66 69 78 20   order, and fix 
2a1c0 69 74 20 74 68 65 72 65 20 70 72 6f 70 65 72 6c  it there properl
2a1d0 79 0a 20 20 20 20 20 20 20 20 74 6d 70 5f 64 65  y.        tmp_de
2a1e0 70 6c 69 62 73 3d 0a 09 66 6f 72 20 64 65 70 6c  plibs=..for depl
2a1f0 69 62 20 69 6e 20 24 64 65 70 6c 69 62 73 3b 20  ib in $deplibs; 
2a200 64 6f 0a 09 20 20 74 6d 70 5f 64 65 70 6c 69 62  do..  tmp_deplib
2a210 73 3d 22 24 64 65 70 6c 69 62 20 24 74 6d 70 5f  s="$deplib $tmp_
2a220 64 65 70 6c 69 62 73 22 0a 09 64 6f 6e 65 0a 09  deplibs"..done..
2a230 64 65 70 6c 69 62 73 3d 22 24 74 6d 70 5f 64 65  deplibs="$tmp_de
2a240 70 6c 69 62 73 22 0a 20 20 20 20 20 20 66 69 0a  plibs".      fi.
2a250 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20 22  .      if test "
2a260 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22  $linkmode,$pass"
2a270 20 3d 20 22 6c 69 62 2c 6c 69 6e 6b 22 20 7c 7c   = "lib,link" ||
2a280 0a 09 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f  .. test "$linkmo
2a290 64 65 2c 24 70 61 73 73 22 20 3d 20 22 70 72 6f  de,$pass" = "pro
2a2a0 67 2c 73 63 61 6e 22 3b 20 74 68 65 6e 0a 09 6c  g,scan"; then..l
2a2b0 69 62 73 3d 22 24 64 65 70 6c 69 62 73 22 0a 09  ibs="$deplibs"..
2a2c0 64 65 70 6c 69 62 73 3d 0a 20 20 20 20 20 20 66  deplibs=.      f
2a2d0 69 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  i.      if test 
2a2e0 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72  "$linkmode" = pr
2a2f0 6f 67 3b 20 74 68 65 6e 0a 09 63 61 73 65 20 24  og; then..case $
2a300 70 61 73 73 20 69 6e 0a 09 64 6c 6f 70 65 6e 29  pass in..dlopen)
2a310 20 6c 69 62 73 3d 22 24 64 6c 66 69 6c 65 73 22   libs="$dlfiles"
2a320 20 3b 3b 0a 09 64 6c 70 72 65 6f 70 65 6e 29 20   ;;..dlpreopen) 
2a330 6c 69 62 73 3d 22 24 64 6c 70 72 65 66 69 6c 65  libs="$dlprefile
2a340 73 22 20 3b 3b 0a 09 6c 69 6e 6b 29 20 6c 69 62  s" ;;..link) lib
2a350 73 3d 22 24 64 65 70 6c 69 62 73 20 25 44 45 50  s="$deplibs %DEP
2a360 4c 49 42 53 25 20 24 64 65 70 65 6e 64 65 6e 63  LIBS% $dependenc
2a370 79 5f 6c 69 62 73 22 20 3b 3b 0a 09 65 73 61 63  y_libs" ;;..esac
2a380 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20  .      fi.      
2a390 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f  if test "$linkmo
2a3a0 64 65 2c 24 70 61 73 73 22 20 3d 20 22 6c 69 62  de,$pass" = "lib
2a3b0 2c 64 6c 70 72 65 6f 70 65 6e 22 3b 20 74 68 65  ,dlpreopen"; the
2a3c0 6e 0a 09 23 20 43 6f 6c 6c 65 63 74 20 61 6e 64  n..# Collect and
2a3d0 20 66 6f 72 77 61 72 64 20 64 65 70 6c 69 62 73   forward deplibs
2a3e0 20 6f 66 20 70 72 65 6f 70 65 6e 65 64 20 6c 69   of preopened li
2a3f0 62 74 6f 6f 6c 20 6c 69 62 73 0a 09 66 6f 72 20  btool libs..for 
2a400 6c 69 62 20 69 6e 20 24 64 6c 70 72 65 66 69 6c  lib in $dlprefil
2a410 65 73 3b 20 64 6f 0a 09 20 20 23 20 49 67 6e 6f  es; do..  # Igno
2a420 72 65 20 6e 6f 6e 2d 6c 69 62 74 6f 6f 6c 2d 6c  re non-libtool-l
2a430 69 62 73 0a 09 20 20 64 65 70 65 6e 64 65 6e 63  ibs..  dependenc
2a440 79 5f 6c 69 62 73 3d 0a 09 20 20 66 75 6e 63 5f  y_libs=..  func_
2a450 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 20  resolve_sysroot 
2a460 22 24 6c 69 62 22 0a 09 20 20 63 61 73 65 20 24  "$lib"..  case $
2a470 6c 69 62 20 69 6e 0a 09 20 20 2a 2e 6c 61 29 09  lib in..  *.la).
2a480 66 75 6e 63 5f 73 6f 75 72 63 65 20 22 24 66 75  func_source "$fu
2a490 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f  nc_resolve_sysro
2a4a0 6f 74 5f 72 65 73 75 6c 74 22 20 3b 3b 0a 09 20  ot_result" ;;.. 
2a4b0 20 65 73 61 63 0a 0a 09 20 20 23 20 43 6f 6c 6c   esac...  # Coll
2a4c0 65 63 74 20 70 72 65 6f 70 65 6e 65 64 20 6c 69  ect preopened li
2a4d0 62 74 6f 6f 6c 20 64 65 70 6c 69 62 73 2c 20 65  btool deplibs, e
2a4e0 78 63 65 70 74 20 61 6e 79 20 74 68 69 73 20 6c  xcept any this l
2a4f0 69 62 72 61 72 79 0a 09 20 20 23 20 68 61 73 20  ibrary..  # has 
2a500 64 65 63 6c 61 72 65 64 20 61 73 20 77 65 61 6b  declared as weak
2a510 20 6c 69 62 73 0a 09 20 20 66 6f 72 20 64 65 70   libs..  for dep
2a520 6c 69 62 20 69 6e 20 24 64 65 70 65 6e 64 65 6e  lib in $dependen
2a530 63 79 5f 6c 69 62 73 3b 20 64 6f 0a 09 20 20 20  cy_libs; do..   
2a540 20 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 20 22   func_basename "
2a550 24 64 65 70 6c 69 62 22 0a 20 20 20 20 20 20 20  $deplib".       
2a560 20 20 20 20 20 64 65 70 6c 69 62 5f 62 61 73 65       deplib_base
2a570 3d 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65 5f  =$func_basename_
2a580 72 65 73 75 6c 74 0a 09 20 20 20 20 63 61 73 65  result..    case
2a590 20 22 20 24 77 65 61 6b 5f 6c 69 62 73 20 22 20   " $weak_libs " 
2a5a0 69 6e 0a 09 20 20 20 20 2a 22 20 24 64 65 70 6c  in..    *" $depl
2a5b0 69 62 5f 62 61 73 65 20 22 2a 29 20 3b 3b 0a 09  ib_base "*) ;;..
2a5c0 20 20 20 20 2a 29 20 66 75 6e 63 5f 61 70 70 65      *) func_appe
2a5d0 6e 64 20 64 65 70 6c 69 62 73 20 22 20 24 64 65  nd deplibs " $de
2a5e0 70 6c 69 62 22 20 3b 3b 0a 09 20 20 20 20 65 73  plib" ;;..    es
2a5f0 61 63 0a 09 20 20 64 6f 6e 65 0a 09 64 6f 6e 65  ac..  done..done
2a600 0a 09 6c 69 62 73 3d 22 24 64 6c 70 72 65 66 69  ..libs="$dlprefi
2a610 6c 65 73 22 0a 20 20 20 20 20 20 66 69 0a 20 20  les".      fi.  
2a620 20 20 20 20 69 66 20 74 65 73 74 20 22 24 70 61      if test "$pa
2a630 73 73 22 20 3d 20 64 6c 6f 70 65 6e 3b 20 74 68  ss" = dlopen; th
2a640 65 6e 0a 09 23 20 43 6f 6c 6c 65 63 74 20 64 6c  en..# Collect dl
2a650 70 72 65 6f 70 65 6e 65 64 20 6c 69 62 72 61 72  preopened librar
2a660 69 65 73 0a 09 73 61 76 65 5f 64 65 70 6c 69 62  ies..save_deplib
2a670 73 3d 22 24 64 65 70 6c 69 62 73 22 0a 09 64 65  s="$deplibs"..de
2a680 70 6c 69 62 73 3d 0a 20 20 20 20 20 20 66 69 0a  plibs=.      fi.
2a690 0a 20 20 20 20 20 20 66 6f 72 20 64 65 70 6c 69  .      for depli
2a6a0 62 20 69 6e 20 24 6c 69 62 73 3b 20 64 6f 0a 09  b in $libs; do..
2a6b0 6c 69 62 3d 0a 09 66 6f 75 6e 64 3d 6e 6f 0a 09  lib=..found=no..
2a6c0 63 61 73 65 20 24 64 65 70 6c 69 62 20 69 6e 0a  case $deplib in.
2a6d0 09 2d 6d 74 7c 2d 6d 74 68 72 65 61 64 73 7c 2d  .-mt|-mthreads|-
2a6e0 6b 74 68 72 65 61 64 7c 2d 4b 74 68 72 65 61 64  kthread|-Kthread
2a6f0 7c 2d 70 74 68 72 65 61 64 7c 2d 70 74 68 72 65  |-pthread|-pthre
2a700 61 64 73 7c 2d 2d 74 68 72 65 61 64 2d 73 61 66  ads|--thread-saf
2a710 65 20 5c 0a 20 20 20 20 20 20 20 20 7c 2d 74 68  e \.        |-th
2a720 72 65 61 64 73 7c 2d 66 6f 70 65 6e 6d 70 7c 2d  reads|-fopenmp|-
2a730 6f 70 65 6e 6d 70 7c 2d 6d 70 7c 2d 78 6f 70 65  openmp|-mp|-xope
2a740 6e 6d 70 7c 2d 6f 6d 70 7c 2d 71 73 6d 70 3d 2a  nmp|-omp|-qsmp=*
2a750 29 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 6c  )..  if test "$l
2a760 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22 20 3d  inkmode,$pass" =
2a770 20 22 70 72 6f 67 2c 6c 69 6e 6b 22 3b 20 74 68   "prog,link"; th
2a780 65 6e 0a 09 20 20 20 20 63 6f 6d 70 69 6c 65 5f  en..    compile_
2a790 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62  deplibs="$deplib
2a7a0 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62   $compile_deplib
2a7b0 73 22 0a 09 20 20 20 20 66 69 6e 61 6c 69 7a 65  s"..    finalize
2a7c0 5f 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69  _deplibs="$depli
2a7d0 62 20 24 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c  b $finalize_depl
2a7e0 69 62 73 22 0a 09 20 20 65 6c 73 65 0a 09 20 20  ibs"..  else..  
2a7f0 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63 6f    func_append co
2a800 6d 70 69 6c 65 72 5f 66 6c 61 67 73 20 22 20 24  mpiler_flags " $
2a810 64 65 70 6c 69 62 22 0a 09 20 20 20 20 69 66 20  deplib"..    if 
2a820 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22  test "$linkmode"
2a830 20 3d 20 6c 69 62 20 3b 20 74 68 65 6e 0a 09 09   = lib ; then...
2a840 63 61 73 65 20 22 24 6e 65 77 5f 69 6e 68 65 72  case "$new_inher
2a850 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67  ited_linker_flag
2a860 73 20 22 20 69 6e 0a 09 09 20 20 20 20 2a 22 20  s " in...    *" 
2a870 24 64 65 70 6c 69 62 20 22 2a 29 20 3b 3b 0a 09  $deplib "*) ;;..
2a880 09 20 20 20 20 2a 20 29 20 66 75 6e 63 5f 61 70  .    * ) func_ap
2a890 70 65 6e 64 20 6e 65 77 5f 69 6e 68 65 72 69 74  pend new_inherit
2a8a0 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 20  ed_linker_flags 
2a8b0 22 20 24 64 65 70 6c 69 62 22 20 3b 3b 0a 09 09  " $deplib" ;;...
2a8c0 65 73 61 63 0a 09 20 20 20 20 66 69 0a 09 20 20  esac..    fi..  
2a8d0 66 69 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09  fi..  continue..
2a8e0 20 20 3b 3b 0a 09 2d 6c 2a 29 0a 09 20 20 69 66    ;;..-l*)..  if
2a8f0 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
2a900 22 20 21 3d 20 6c 69 62 20 26 26 20 74 65 73 74  " != lib && test
2a910 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 21 3d 20   "$linkmode" != 
2a920 70 72 6f 67 3b 20 74 68 65 6e 0a 09 20 20 20 20  prog; then..    
2a930 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60  func_warning "\`
2a940 2d 6c 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66  -l' is ignored f
2a950 6f 72 20 61 72 63 68 69 76 65 73 2f 6f 62 6a 65  or archives/obje
2a960 63 74 73 22 0a 09 20 20 20 20 63 6f 6e 74 69 6e  cts"..    contin
2a970 75 65 0a 09 20 20 66 69 0a 09 20 20 66 75 6e 63  ue..  fi..  func
2a980 5f 73 74 72 69 70 6e 61 6d 65 20 27 2d 6c 27 20  _stripname '-l' 
2a990 27 27 20 22 24 64 65 70 6c 69 62 22 0a 09 20 20  '' "$deplib"..  
2a9a0 6e 61 6d 65 3d 24 66 75 6e 63 5f 73 74 72 69 70  name=$func_strip
2a9b0 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 09 20 20 69  name_result..  i
2a9c0 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64  f test "$linkmod
2a9d0 65 22 20 3d 20 6c 69 62 3b 20 74 68 65 6e 0a 09  e" = lib; then..
2a9e0 20 20 20 20 73 65 61 72 63 68 64 69 72 73 3d 22      searchdirs="
2a9f0 24 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70  $newlib_search_p
2aa00 61 74 68 20 24 6c 69 62 5f 73 65 61 72 63 68 5f  ath $lib_search_
2aa10 70 61 74 68 20 24 63 6f 6d 70 69 6c 65 72 5f 6c  path $compiler_l
2aa20 69 62 5f 73 65 61 72 63 68 5f 64 69 72 73 20 24  ib_search_dirs $
2aa30 73 79 73 5f 6c 69 62 5f 73 65 61 72 63 68 5f 70  sys_lib_search_p
2aa40 61 74 68 20 24 73 68 6c 69 62 5f 73 65 61 72 63  ath $shlib_searc
2aa50 68 5f 70 61 74 68 22 0a 09 20 20 65 6c 73 65 0a  h_path"..  else.
2aa60 09 20 20 20 20 73 65 61 72 63 68 64 69 72 73 3d  .    searchdirs=
2aa70 22 24 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f  "$newlib_search_
2aa80 70 61 74 68 20 24 6c 69 62 5f 73 65 61 72 63 68  path $lib_search
2aa90 5f 70 61 74 68 20 24 73 79 73 5f 6c 69 62 5f 73  _path $sys_lib_s
2aaa0 65 61 72 63 68 5f 70 61 74 68 20 24 73 68 6c 69  earch_path $shli
2aab0 62 5f 73 65 61 72 63 68 5f 70 61 74 68 22 0a 09  b_search_path"..
2aac0 20 20 66 69 0a 09 20 20 66 6f 72 20 73 65 61 72    fi..  for sear
2aad0 63 68 64 69 72 20 69 6e 20 24 73 65 61 72 63 68  chdir in $search
2aae0 64 69 72 73 3b 20 64 6f 0a 09 20 20 20 20 66 6f  dirs; do..    fo
2aaf0 72 20 73 65 61 72 63 68 5f 65 78 74 20 69 6e 20  r search_ext in 
2ab00 2e 6c 61 20 24 73 74 64 5f 73 68 72 65 78 74 20  .la $std_shrext 
2ab10 2e 73 6f 20 2e 61 3b 20 64 6f 0a 09 20 20 20 20  .so .a; do..    
2ab20 20 20 23 20 53 65 61 72 63 68 20 74 68 65 20 6c    # Search the l
2ab30 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 79 0a 09  ibtool library..
2ab40 20 20 20 20 20 20 6c 69 62 3d 22 24 73 65 61 72        lib="$sear
2ab50 63 68 64 69 72 2f 6c 69 62 24 7b 6e 61 6d 65 7d  chdir/lib${name}
2ab60 24 7b 73 65 61 72 63 68 5f 65 78 74 7d 22 0a 09  ${search_ext}"..
2ab70 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d 66        if test -f
2ab80 20 22 24 6c 69 62 22 3b 20 74 68 65 6e 0a 09 09   "$lib"; then...
2ab90 69 66 20 74 65 73 74 20 22 24 73 65 61 72 63 68  if test "$search
2aba0 5f 65 78 74 22 20 3d 20 22 2e 6c 61 22 3b 20 74  _ext" = ".la"; t
2abb0 68 65 6e 0a 09 09 20 20 66 6f 75 6e 64 3d 79 65  hen...  found=ye
2abc0 73 0a 09 09 65 6c 73 65 0a 09 09 20 20 66 6f 75  s...else...  fou
2abd0 6e 64 3d 6e 6f 0a 09 09 66 69 0a 09 09 62 72 65  nd=no...fi...bre
2abe0 61 6b 20 32 0a 09 20 20 20 20 20 20 66 69 0a 09  ak 2..      fi..
2abf0 20 20 20 20 64 6f 6e 65 0a 09 20 20 64 6f 6e 65      done..  done
2ac00 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 66 6f  ..  if test "$fo
2ac10 75 6e 64 22 20 21 3d 20 79 65 73 3b 20 74 68 65  und" != yes; the
2ac20 6e 0a 09 20 20 20 20 23 20 64 65 70 6c 69 62 20  n..    # deplib 
2ac30 64 6f 65 73 6e 27 74 20 73 65 65 6d 20 74 6f 20  doesn't seem to 
2ac40 62 65 20 61 20 6c 69 62 74 6f 6f 6c 20 6c 69 62  be a libtool lib
2ac50 72 61 72 79 0a 09 20 20 20 20 69 66 20 74 65 73  rary..    if tes
2ac60 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61  t "$linkmode,$pa
2ac70 73 73 22 20 3d 20 22 70 72 6f 67 2c 6c 69 6e 6b  ss" = "prog,link
2ac80 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63  "; then..      c
2ac90 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 22  ompile_deplibs="
2aca0 24 64 65 70 6c 69 62 20 24 63 6f 6d 70 69 6c 65  $deplib $compile
2acb0 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 20  _deplibs"..     
2acc0 20 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62   finalize_deplib
2acd0 73 3d 22 24 64 65 70 6c 69 62 20 24 66 69 6e 61  s="$deplib $fina
2ace0 6c 69 7a 65 5f 64 65 70 6c 69 62 73 22 0a 09 20  lize_deplibs".. 
2acf0 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 64     else..      d
2ad00 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20  eplibs="$deplib 
2ad10 24 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 20  $deplibs"..     
2ad20 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
2ad30 22 20 3d 20 6c 69 62 20 26 26 20 6e 65 77 64 65  " = lib && newde
2ad40 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 22 24  pendency_libs="$
2ad50 64 65 70 6c 69 62 20 24 6e 65 77 64 65 70 65 6e  deplib $newdepen
2ad60 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09 20 20 20  dency_libs"..   
2ad70 20 66 69 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75   fi..    continu
2ad80 65 0a 09 20 20 65 6c 73 65 20 23 20 64 65 70 6c  e..  else # depl
2ad90 69 62 20 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20  ib is a libtool 
2ada0 6c 69 62 72 61 72 79 0a 09 20 20 20 20 23 20 49  library..    # I
2adb0 66 20 24 61 6c 6c 6f 77 5f 6c 69 62 74 6f 6f 6c  f $allow_libtool
2adc0 5f 6c 69 62 73 5f 77 69 74 68 5f 73 74 61 74 69  _libs_with_stati
2add0 63 5f 72 75 6e 74 69 6d 65 73 20 26 26 20 24 64  c_runtimes && $d
2ade0 65 70 6c 69 62 20 69 73 20 61 20 73 74 64 6c 69  eplib is a stdli
2adf0 62 2c 0a 09 20 20 20 20 23 20 57 65 20 6e 65 65  b,..    # We nee
2ae00 64 20 74 6f 20 64 6f 20 73 6f 6d 65 20 73 70 65  d to do some spe
2ae10 63 69 61 6c 20 74 68 69 6e 67 73 20 68 65 72 65  cial things here
2ae20 2c 20 61 6e 64 20 6e 6f 74 20 6c 61 74 65 72 2e  , and not later.
2ae30 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22 58  ..    if test "X
2ae40 24 61 6c 6c 6f 77 5f 6c 69 62 74 6f 6f 6c 5f 6c  $allow_libtool_l
2ae50 69 62 73 5f 77 69 74 68 5f 73 74 61 74 69 63 5f  ibs_with_static_
2ae60 72 75 6e 74 69 6d 65 73 22 20 3d 20 22 58 79 65  runtimes" = "Xye
2ae70 73 22 20 3b 20 74 68 65 6e 0a 09 20 20 20 20 20  s" ; then..     
2ae80 20 63 61 73 65 20 22 20 24 70 72 65 64 65 70 73   case " $predeps
2ae90 20 24 70 6f 73 74 64 65 70 73 20 22 20 69 6e 0a   $postdeps " in.
2aea0 09 20 20 20 20 20 20 2a 22 20 24 64 65 70 6c 69  .      *" $depli
2aeb0 62 20 22 2a 29 0a 09 09 69 66 20 66 75 6e 63 5f  b "*)...if func_
2aec0 6c 61 6c 69 62 5f 70 20 22 24 6c 69 62 22 3b 20  lalib_p "$lib"; 
2aed0 74 68 65 6e 0a 09 09 20 20 6c 69 62 72 61 72 79  then...  library
2aee0 5f 6e 61 6d 65 73 3d 0a 09 09 20 20 6f 6c 64 5f  _names=...  old_
2aef0 6c 69 62 72 61 72 79 3d 0a 09 09 20 20 66 75 6e  library=...  fun
2af00 63 5f 73 6f 75 72 63 65 20 22 24 6c 69 62 22 0a  c_source "$lib".
2af10 09 09 20 20 66 6f 72 20 6c 20 69 6e 20 24 6f 6c  ..  for l in $ol
2af20 64 5f 6c 69 62 72 61 72 79 20 24 6c 69 62 72 61  d_library $libra
2af30 72 79 5f 6e 61 6d 65 73 3b 20 64 6f 0a 09 09 20  ry_names; do... 
2af40 20 20 20 6c 6c 3d 22 24 6c 22 0a 09 09 20 20 64     ll="$l"...  d
2af50 6f 6e 65 0a 09 09 20 20 69 66 20 74 65 73 74 20  one...  if test 
2af60 22 58 24 6c 6c 22 20 3d 20 22 58 24 6f 6c 64 5f  "X$ll" = "X$old_
2af70 6c 69 62 72 61 72 79 22 20 3b 20 74 68 65 6e 20  library" ; then 
2af80 23 20 6f 6e 6c 79 20 73 74 61 74 69 63 20 76 65  # only static ve
2af90 72 73 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 0a  rsion available.
2afa0 09 09 20 20 20 20 66 6f 75 6e 64 3d 6e 6f 0a 09  ..    found=no..
2afb0 09 20 20 20 20 66 75 6e 63 5f 64 69 72 6e 61 6d  .    func_dirnam
2afc0 65 20 22 24 6c 69 62 22 20 22 22 20 22 2e 22 0a  e "$lib" "" ".".
2afd0 09 09 20 20 20 20 6c 61 64 69 72 3d 22 24 66 75  ..    ladir="$fu
2afe0 6e 63 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c  nc_dirname_resul
2aff0 74 22 0a 09 09 20 20 20 20 6c 69 62 3d 24 6c 61  t"...    lib=$la
2b000 64 69 72 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79  dir/$old_library
2b010 0a 09 09 20 20 20 20 69 66 20 74 65 73 74 20 22  ...    if test "
2b020 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73 73 22  $linkmode,$pass"
2b030 20 3d 20 22 70 72 6f 67 2c 6c 69 6e 6b 22 3b 20   = "prog,link"; 
2b040 74 68 65 6e 0a 09 09 20 20 20 20 20 20 63 6f 6d  then...      com
2b050 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 22 24 64  pile_deplibs="$d
2b060 65 70 6c 69 62 20 24 63 6f 6d 70 69 6c 65 5f 64  eplib $compile_d
2b070 65 70 6c 69 62 73 22 0a 09 09 20 20 20 20 20 20  eplibs"...      
2b080 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73  finalize_deplibs
2b090 3d 22 24 64 65 70 6c 69 62 20 24 66 69 6e 61 6c  ="$deplib $final
2b0a0 69 7a 65 5f 64 65 70 6c 69 62 73 22 0a 09 09 20  ize_deplibs"... 
2b0b0 20 20 20 65 6c 73 65 0a 09 09 20 20 20 20 20 20     else...      
2b0c0 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62  deplibs="$deplib
2b0d0 20 24 64 65 70 6c 69 62 73 22 0a 09 09 20 20 20   $deplibs"...   
2b0e0 20 20 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f     test "$linkmo
2b0f0 64 65 22 20 3d 20 6c 69 62 20 26 26 20 6e 65 77  de" = lib && new
2b100 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d  dependency_libs=
2b110 22 24 64 65 70 6c 69 62 20 24 6e 65 77 64 65 70  "$deplib $newdep
2b120 65 6e 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09 09  endency_libs"...
2b130 20 20 20 20 66 69 0a 09 09 20 20 20 20 63 6f 6e      fi...    con
2b140 74 69 6e 75 65 0a 09 09 20 20 66 69 0a 09 09 66  tinue...  fi...f
2b150 69 0a 09 09 3b 3b 0a 09 20 20 20 20 20 20 2a 29  i...;;..      *)
2b160 20 3b 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a   ;;..      esac.
2b170 09 20 20 20 20 66 69 0a 09 20 20 66 69 0a 09 20  .    fi..  fi.. 
2b180 20 3b 3b 20 23 20 2d 6c 0a 09 2a 2e 6c 74 66 72   ;; # -l..*.ltfr
2b190 61 6d 65 77 6f 72 6b 29 0a 09 20 20 69 66 20 74  amework)..  if t
2b1a0 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 2c 24  est "$linkmode,$
2b1b0 70 61 73 73 22 20 3d 20 22 70 72 6f 67 2c 6c 69  pass" = "prog,li
2b1c0 6e 6b 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 63  nk"; then..    c
2b1d0 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 22  ompile_deplibs="
2b1e0 24 64 65 70 6c 69 62 20 24 63 6f 6d 70 69 6c 65  $deplib $compile
2b1f0 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 66  _deplibs"..    f
2b200 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d  inalize_deplibs=
2b210 22 24 64 65 70 6c 69 62 20 24 66 69 6e 61 6c 69  "$deplib $finali
2b220 7a 65 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 65  ze_deplibs"..  e
2b230 6c 73 65 0a 09 20 20 20 20 64 65 70 6c 69 62 73  lse..    deplibs
2b240 3d 22 24 64 65 70 6c 69 62 20 24 64 65 70 6c 69  ="$deplib $depli
2b250 62 73 22 0a 09 20 20 20 20 69 66 20 74 65 73 74  bs"..    if test
2b260 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 6c   "$linkmode" = l
2b270 69 62 20 3b 20 74 68 65 6e 0a 09 09 63 61 73 65  ib ; then...case
2b280 20 22 24 6e 65 77 5f 69 6e 68 65 72 69 74 65 64   "$new_inherited
2b290 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 20 22 20  _linker_flags " 
2b2a0 69 6e 0a 09 09 20 20 20 20 2a 22 20 24 64 65 70  in...    *" $dep
2b2b0 6c 69 62 20 22 2a 29 20 3b 3b 0a 09 09 20 20 20  lib "*) ;;...   
2b2c0 20 2a 20 29 20 66 75 6e 63 5f 61 70 70 65 6e 64   * ) func_append
2b2d0 20 6e 65 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c   new_inherited_l
2b2e0 69 6e 6b 65 72 5f 66 6c 61 67 73 20 22 20 24 64  inker_flags " $d
2b2f0 65 70 6c 69 62 22 20 3b 3b 0a 09 09 65 73 61 63  eplib" ;;...esac
2b300 0a 09 20 20 20 20 66 69 0a 09 20 20 66 69 0a 09  ..    fi..  fi..
2b310 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b    continue..  ;;
2b320 0a 09 2d 4c 2a 29 0a 09 20 20 63 61 73 65 20 24  ..-L*)..  case $
2b330 6c 69 6e 6b 6d 6f 64 65 20 69 6e 0a 09 20 20 6c  linkmode in..  l
2b340 69 62 29 0a 09 20 20 20 20 64 65 70 6c 69 62 73  ib)..    deplibs
2b350 3d 22 24 64 65 70 6c 69 62 20 24 64 65 70 6c 69  ="$deplib $depli
2b360 62 73 22 0a 09 20 20 20 20 74 65 73 74 20 22 24  bs"..    test "$
2b370 70 61 73 73 22 20 3d 20 63 6f 6e 76 20 26 26 20  pass" = conv && 
2b380 63 6f 6e 74 69 6e 75 65 0a 09 20 20 20 20 6e 65  continue..    ne
2b390 77 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73  wdependency_libs
2b3a0 3d 22 24 64 65 70 6c 69 62 20 24 6e 65 77 64 65  ="$deplib $newde
2b3b0 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09  pendency_libs"..
2b3c0 20 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61      func_stripna
2b3d0 6d 65 20 27 2d 4c 27 20 27 27 20 22 24 64 65 70  me '-L' '' "$dep
2b3e0 6c 69 62 22 0a 09 20 20 20 20 66 75 6e 63 5f 72  lib"..    func_r
2b3f0 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 20 22  esolve_sysroot "
2b400 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f  $func_stripname_
2b410 72 65 73 75 6c 74 22 0a 09 20 20 20 20 66 75 6e  result"..    fun
2b420 63 5f 61 70 70 65 6e 64 20 6e 65 77 6c 69 62 5f  c_append newlib_
2b430 73 65 61 72 63 68 5f 70 61 74 68 20 22 20 24 66  search_path " $f
2b440 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73 72  unc_resolve_sysr
2b450 6f 6f 74 5f 72 65 73 75 6c 74 22 0a 09 20 20 20  oot_result"..   
2b460 20 3b 3b 0a 09 20 20 70 72 6f 67 29 0a 09 20 20   ;;..  prog)..  
2b470 20 20 69 66 20 74 65 73 74 20 22 24 70 61 73 73    if test "$pass
2b480 22 20 3d 20 63 6f 6e 76 3b 20 74 68 65 6e 0a 09  " = conv; then..
2b490 20 20 20 20 20 20 64 65 70 6c 69 62 73 3d 22 24        deplibs="$
2b4a0 64 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73 22  deplib $deplibs"
2b4b0 0a 09 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65  ..      continue
2b4c0 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 69 66  ..    fi..    if
2b4d0 20 74 65 73 74 20 22 24 70 61 73 73 22 20 3d 20   test "$pass" = 
2b4e0 73 63 61 6e 3b 20 74 68 65 6e 0a 09 20 20 20 20  scan; then..    
2b4f0 20 20 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c    deplibs="$depl
2b500 69 62 20 24 64 65 70 6c 69 62 73 22 0a 09 20 20  ib $deplibs"..  
2b510 20 20 65 6c 73 65 0a 09 20 20 20 20 20 20 63 6f    else..      co
2b520 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d 22 24  mpile_deplibs="$
2b530 64 65 70 6c 69 62 20 24 63 6f 6d 70 69 6c 65 5f  deplib $compile_
2b540 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 20 20  deplibs"..      
2b550 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73  finalize_deplibs
2b560 3d 22 24 64 65 70 6c 69 62 20 24 66 69 6e 61 6c  ="$deplib $final
2b570 69 7a 65 5f 64 65 70 6c 69 62 73 22 0a 09 20 20  ize_deplibs"..  
2b580 20 20 66 69 0a 09 20 20 20 20 66 75 6e 63 5f 73    fi..    func_s
2b590 74 72 69 70 6e 61 6d 65 20 27 2d 4c 27 20 27 27  tripname '-L' ''
2b5a0 20 22 24 64 65 70 6c 69 62 22 0a 09 20 20 20 20   "$deplib"..    
2b5b0 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73  func_resolve_sys
2b5c0 72 6f 6f 74 20 22 24 66 75 6e 63 5f 73 74 72 69  root "$func_stri
2b5d0 70 6e 61 6d 65 5f 72 65 73 75 6c 74 22 0a 09 20  pname_result".. 
2b5e0 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e     func_append n
2b5f0 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  ewlib_search_pat
2b600 68 20 22 20 24 66 75 6e 63 5f 72 65 73 6f 6c 76  h " $func_resolv
2b610 65 5f 73 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74  e_sysroot_result
2b620 22 0a 09 20 20 20 20 3b 3b 0a 09 20 20 2a 29 0a  "..    ;;..  *).
2b630 09 20 20 20 20 66 75 6e 63 5f 77 61 72 6e 69 6e  .    func_warnin
2b640 67 20 22 5c 60 2d 4c 27 20 69 73 20 69 67 6e 6f  g "\`-L' is igno
2b650 72 65 64 20 66 6f 72 20 61 72 63 68 69 76 65 73  red for archives
2b660 2f 6f 62 6a 65 63 74 73 22 0a 09 20 20 20 20 3b  /objects"..    ;
2b670 3b 0a 09 20 20 65 73 61 63 20 23 20 6c 69 6e 6b  ;..  esac # link
2b680 6d 6f 64 65 0a 09 20 20 63 6f 6e 74 69 6e 75 65  mode..  continue
2b690 0a 09 20 20 3b 3b 20 23 20 2d 4c 0a 09 2d 52 2a  ..  ;; # -L..-R*
2b6a0 29 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 70  )..  if test "$p
2b6b0 61 73 73 22 20 3d 20 6c 69 6e 6b 3b 20 74 68 65  ass" = link; the
2b6c0 6e 0a 09 20 20 20 20 66 75 6e 63 5f 73 74 72 69  n..    func_stri
2b6d0 70 6e 61 6d 65 20 27 2d 52 27 20 27 27 20 22 24  pname '-R' '' "$
2b6e0 64 65 70 6c 69 62 22 0a 09 20 20 20 20 66 75 6e  deplib"..    fun
2b6f0 63 5f 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f  c_resolve_sysroo
2b700 74 20 22 24 66 75 6e 63 5f 73 74 72 69 70 6e 61  t "$func_stripna
2b710 6d 65 5f 72 65 73 75 6c 74 22 0a 09 20 20 20 20  me_result"..    
2b720 64 69 72 3d 24 66 75 6e 63 5f 72 65 73 6f 6c 76  dir=$func_resolv
2b730 65 5f 73 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74  e_sysroot_result
2b740 0a 09 20 20 20 20 23 20 4d 61 6b 65 20 73 75 72  ..    # Make sur
2b750 65 20 74 68 65 20 78 72 70 61 74 68 20 63 6f 6e  e the xrpath con
2b760 74 61 69 6e 73 20 6f 6e 6c 79 20 75 6e 69 71 75  tains only uniqu
2b770 65 20 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 09  e directories...
2b780 20 20 20 20 63 61 73 65 20 22 24 78 72 70 61 74      case "$xrpat
2b790 68 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20 24  h " in..    *" $
2b7a0 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20  dir "*) ;;..    
2b7b0 2a 29 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 78  *) func_append x
2b7c0 72 70 61 74 68 20 22 20 24 64 69 72 22 20 3b 3b  rpath " $dir" ;;
2b7d0 0a 09 20 20 20 20 65 73 61 63 0a 09 20 20 66 69  ..    esac..  fi
2b7e0 0a 09 20 20 64 65 70 6c 69 62 73 3d 22 24 64 65  ..  deplibs="$de
2b7f0 70 6c 69 62 20 24 64 65 70 6c 69 62 73 22 0a 09  plib $deplibs"..
2b800 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20 20 3b 3b    continue..  ;;
2b810 0a 09 2a 2e 6c 61 29 0a 09 20 20 66 75 6e 63 5f  ..*.la)..  func_
2b820 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 20  resolve_sysroot 
2b830 22 24 64 65 70 6c 69 62 22 0a 09 20 20 6c 69 62  "$deplib"..  lib
2b840 3d 24 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73  =$func_resolve_s
2b850 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 0a 09 20  ysroot_result.. 
2b860 20 3b 3b 0a 09 2a 2e 24 6c 69 62 65 78 74 29 0a   ;;..*.$libext).
2b870 09 20 20 69 66 20 74 65 73 74 20 22 24 70 61 73  .  if test "$pas
2b880 73 22 20 3d 20 63 6f 6e 76 3b 20 74 68 65 6e 0a  s" = conv; then.
2b890 09 20 20 20 20 64 65 70 6c 69 62 73 3d 22 24 64  .    deplibs="$d
2b8a0 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73 22 0a  eplib $deplibs".
2b8b0 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a 09 20  .    continue.. 
2b8c0 20 66 69 0a 09 20 20 63 61 73 65 20 24 6c 69 6e   fi..  case $lin
2b8d0 6b 6d 6f 64 65 20 69 6e 0a 09 20 20 6c 69 62 29  kmode in..  lib)
2b8e0 0a 09 20 20 20 20 23 20 4c 69 6e 6b 69 6e 67 20  ..    # Linking 
2b8f0 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6d 6f 64 75  convenience modu
2b900 6c 65 73 20 69 6e 74 6f 20 73 68 61 72 65 64 20  les into shared 
2b910 6c 69 62 72 61 72 69 65 73 20 69 73 20 61 6c 6c  libraries is all
2b920 6f 77 65 64 2c 0a 09 20 20 20 20 23 20 62 75 74  owed,..    # but
2b930 20 6c 69 6e 6b 69 6e 67 20 6f 74 68 65 72 20 73   linking other s
2b940 74 61 74 69 63 20 6c 69 62 72 61 72 69 65 73 20  tatic libraries 
2b950 69 73 20 6e 6f 6e 2d 70 6f 72 74 61 62 6c 65 2e  is non-portable.
2b960 0a 09 20 20 20 20 63 61 73 65 20 22 20 24 64 6c  ..    case " $dl
2b970 70 72 65 63 6f 6e 76 65 6e 69 65 6e 63 65 6c 69  preconvenienceli
2b980 62 73 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20  bs " in..    *" 
2b990 24 64 65 70 6c 69 62 20 22 2a 29 20 3b 3b 0a 09  $deplib "*) ;;..
2b9a0 20 20 20 20 2a 29 0a 09 20 20 20 20 20 20 76 61      *)..      va
2b9b0 6c 69 64 5f 61 5f 6c 69 62 3d 6e 6f 0a 09 20 20  lid_a_lib=no..  
2b9c0 20 20 20 20 63 61 73 65 20 24 64 65 70 6c 69 62      case $deplib
2b9d0 73 5f 63 68 65 63 6b 5f 6d 65 74 68 6f 64 20 69  s_check_method i
2b9e0 6e 0a 09 09 6d 61 74 63 68 5f 70 61 74 74 65 72  n...match_patter
2b9f0 6e 2a 29 0a 09 09 20 20 73 65 74 20 64 75 6d 6d  n*)...  set dumm
2ba00 79 20 24 64 65 70 6c 69 62 73 5f 63 68 65 63 6b  y $deplibs_check
2ba10 5f 6d 65 74 68 6f 64 3b 20 73 68 69 66 74 0a 09  _method; shift..
2ba20 09 20 20 6d 61 74 63 68 5f 70 61 74 74 65 72 6e  .  match_pattern
2ba30 5f 72 65 67 65 78 3d 60 65 78 70 72 20 22 24 64  _regex=`expr "$d
2ba40 65 70 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74  eplibs_check_met
2ba50 68 6f 64 22 20 3a 20 22 24 31 20 5c 28 2e 2a 5c  hod" : "$1 \(.*\
2ba60 29 22 60 0a 09 09 20 20 69 66 20 65 76 61 6c 20  )"`...  if eval 
2ba70 22 5c 24 45 43 48 4f 20 5c 22 24 64 65 70 6c 69  "\$ECHO \"$depli
2ba80 62 5c 22 22 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  b\"" 2>/dev/null
2ba90 20 7c 20 24 53 45 44 20 31 30 71 20 5c 0a 09 09   | $SED 10q \...
2baa0 20 20 20 20 7c 20 24 45 47 52 45 50 20 22 24 6d      | $EGREP "$m
2bab0 61 74 63 68 5f 70 61 74 74 65 72 6e 5f 72 65 67  atch_pattern_reg
2bac0 65 78 22 20 3e 20 2f 64 65 76 2f 6e 75 6c 6c 3b  ex" > /dev/null;
2bad0 20 74 68 65 6e 0a 09 09 20 20 20 20 76 61 6c 69   then...    vali
2bae0 64 5f 61 5f 6c 69 62 3d 79 65 73 0a 09 09 20 20  d_a_lib=yes...  
2baf0 66 69 0a 09 09 3b 3b 0a 09 09 70 61 73 73 5f 61  fi...;;...pass_a
2bb00 6c 6c 29 0a 09 09 20 20 76 61 6c 69 64 5f 61 5f  ll)...  valid_a_
2bb10 6c 69 62 3d 79 65 73 0a 09 09 3b 3b 0a 09 20 20  lib=yes...;;..  
2bb20 20 20 20 20 65 73 61 63 0a 09 20 20 20 20 20 20      esac..      
2bb30 69 66 20 74 65 73 74 20 22 24 76 61 6c 69 64 5f  if test "$valid_
2bb40 61 5f 6c 69 62 22 20 21 3d 20 79 65 73 3b 20 74  a_lib" != yes; t
2bb50 68 65 6e 0a 09 09 65 63 68 6f 0a 09 09 24 45 43  hen...echo...$EC
2bb60 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a  HO "*** Warning:
2bb70 20 54 72 79 69 6e 67 20 74 6f 20 6c 69 6e 6b 20   Trying to link 
2bb80 77 69 74 68 20 73 74 61 74 69 63 20 6c 69 62 20  with static lib 
2bb90 61 72 63 68 69 76 65 20 24 64 65 70 6c 69 62 2e  archive $deplib.
2bba0 22 0a 09 09 65 63 68 6f 20 22 2a 2a 2a 20 49 20  "...echo "*** I 
2bbb0 68 61 76 65 20 74 68 65 20 63 61 70 61 62 69 6c  have the capabil
2bbc0 69 74 79 20 74 6f 20 6d 61 6b 65 20 74 68 61 74  ity to make that
2bbd0 20 6c 69 62 72 61 72 79 20 61 75 74 6f 6d 61 74   library automat
2bbe0 69 63 61 6c 6c 79 20 6c 69 6e 6b 20 69 6e 20 77  ically link in w
2bbf0 68 65 6e 22 0a 09 09 65 63 68 6f 20 22 2a 2a 2a  hen"...echo "***
2bc00 20 79 6f 75 20 6c 69 6e 6b 20 74 6f 20 74 68 69   you link to thi
2bc10 73 20 6c 69 62 72 61 72 79 2e 20 20 42 75 74 20  s library.  But 
2bc20 49 20 63 61 6e 20 6f 6e 6c 79 20 64 6f 20 74 68  I can only do th
2bc30 69 73 20 69 66 20 79 6f 75 20 68 61 76 65 20 61  is if you have a
2bc40 22 0a 09 09 65 63 68 6f 20 22 2a 2a 2a 20 73 68  "...echo "*** sh
2bc50 61 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20  ared version of 
2bc60 74 68 65 20 6c 69 62 72 61 72 79 2c 20 77 68 69  the library, whi
2bc70 63 68 20 79 6f 75 20 64 6f 20 6e 6f 74 20 61 70  ch you do not ap
2bc80 70 65 61 72 20 74 6f 20 68 61 76 65 22 0a 09 09  pear to have"...
2bc90 65 63 68 6f 20 22 2a 2a 2a 20 62 65 63 61 75 73  echo "*** becaus
2bca0 65 20 74 68 65 20 66 69 6c 65 20 65 78 74 65 6e  e the file exten
2bcb0 73 69 6f 6e 73 20 2e 24 6c 69 62 65 78 74 20 6f  sions .$libext o
2bcc0 66 20 74 68 69 73 20 61 72 67 75 6d 65 6e 74 20  f this argument 
2bcd0 6d 61 6b 65 73 20 6d 65 20 62 65 6c 69 65 76 65  makes me believe
2bce0 22 0a 09 09 65 63 68 6f 20 22 2a 2a 2a 20 74 68  "...echo "*** th
2bcf0 61 74 20 69 74 20 69 73 20 6a 75 73 74 20 61 20  at it is just a 
2bd00 73 74 61 74 69 63 20 61 72 63 68 69 76 65 20 74  static archive t
2bd10 68 61 74 20 49 20 73 68 6f 75 6c 64 20 6e 6f 74  hat I should not
2bd20 20 75 73 65 20 68 65 72 65 2e 22 0a 09 20 20 20   use here."..   
2bd30 20 20 20 65 6c 73 65 0a 09 09 65 63 68 6f 0a 09     else...echo..
2bd40 09 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61 72 6e  .$ECHO "*** Warn
2bd50 69 6e 67 3a 20 4c 69 6e 6b 69 6e 67 20 74 68 65  ing: Linking the
2bd60 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 20   shared library 
2bd70 24 6f 75 74 70 75 74 20 61 67 61 69 6e 73 74 20  $output against 
2bd80 74 68 65 22 0a 09 09 24 45 43 48 4f 20 22 2a 2a  the"...$ECHO "**
2bd90 2a 20 73 74 61 74 69 63 20 6c 69 62 72 61 72 79  * static library
2bda0 20 24 64 65 70 6c 69 62 20 69 73 20 6e 6f 74 20   $deplib is not 
2bdb0 70 6f 72 74 61 62 6c 65 21 22 0a 09 09 64 65 70  portable!"...dep
2bdc0 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 64  libs="$deplib $d
2bdd0 65 70 6c 69 62 73 22 0a 09 20 20 20 20 20 20 66  eplibs"..      f
2bde0 69 0a 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 20  i..      ;;..   
2bdf0 20 65 73 61 63 0a 09 20 20 20 20 63 6f 6e 74 69   esac..    conti
2be00 6e 75 65 0a 09 20 20 20 20 3b 3b 0a 09 20 20 70  nue..    ;;..  p
2be10 72 6f 67 29 0a 09 20 20 20 20 69 66 20 74 65 73  rog)..    if tes
2be20 74 20 22 24 70 61 73 73 22 20 21 3d 20 6c 69 6e  t "$pass" != lin
2be30 6b 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 64  k; then..      d
2be40 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20  eplibs="$deplib 
2be50 24 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 65  $deplibs"..    e
2be60 6c 73 65 0a 09 20 20 20 20 20 20 63 6f 6d 70 69  lse..      compi
2be70 6c 65 5f 64 65 70 6c 69 62 73 3d 22 24 64 65 70  le_deplibs="$dep
2be80 6c 69 62 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70  lib $compile_dep
2be90 6c 69 62 73 22 0a 09 20 20 20 20 20 20 66 69 6e  libs"..      fin
2bea0 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d 22 24  alize_deplibs="$
2beb0 64 65 70 6c 69 62 20 24 66 69 6e 61 6c 69 7a 65  deplib $finalize
2bec0 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 66  _deplibs"..    f
2bed0 69 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 0a  i..    continue.
2bee0 09 20 20 20 20 3b 3b 0a 09 20 20 65 73 61 63 20  .    ;;..  esac 
2bef0 23 20 6c 69 6e 6b 6d 6f 64 65 0a 09 20 20 3b 3b  # linkmode..  ;;
2bf00 20 23 20 2a 2e 24 6c 69 62 65 78 74 0a 09 2a 2e   # *.$libext..*.
2bf10 6c 6f 20 7c 20 2a 2e 24 6f 62 6a 65 78 74 29 0a  lo | *.$objext).
2bf20 09 20 20 69 66 20 74 65 73 74 20 22 24 70 61 73  .  if test "$pas
2bf30 73 22 20 3d 20 63 6f 6e 76 3b 20 74 68 65 6e 0a  s" = conv; then.
2bf40 09 20 20 20 20 64 65 70 6c 69 62 73 3d 22 24 64  .    deplibs="$d
2bf50 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73 22 0a  eplib $deplibs".
2bf60 09 20 20 65 6c 69 66 20 74 65 73 74 20 22 24 6c  .  elif test "$l
2bf70 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67 3b  inkmode" = prog;
2bf80 20 74 68 65 6e 0a 09 20 20 20 20 69 66 20 74 65   then..    if te
2bf90 73 74 20 22 24 70 61 73 73 22 20 3d 20 64 6c 70  st "$pass" = dlp
2bfa0 72 65 6f 70 65 6e 20 7c 7c 20 74 65 73 74 20 22  reopen || test "
2bfb0 24 64 6c 6f 70 65 6e 5f 73 75 70 70 6f 72 74 22  $dlopen_support"
2bfc0 20 21 3d 20 79 65 73 20 7c 7c 20 74 65 73 74 20   != yes || test 
2bfd0 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f  "$build_libtool_
2bfe0 6c 69 62 73 22 20 3d 20 6e 6f 3b 20 74 68 65 6e  libs" = no; then
2bff0 0a 09 20 20 20 20 20 20 23 20 49 66 20 74 68 65  ..      # If the
2c000 72 65 20 69 73 20 6e 6f 20 64 6c 6f 70 65 6e 20  re is no dlopen 
2c010 73 75 70 70 6f 72 74 20 6f 72 20 77 65 27 72 65  support or we're
2c020 20 6c 69 6e 6b 69 6e 67 20 73 74 61 74 69 63 61   linking statica
2c030 6c 6c 79 2c 0a 09 20 20 20 20 20 20 23 20 77 65  lly,..      # we
2c040 20 6e 65 65 64 20 74 6f 20 70 72 65 6c 6f 61 64   need to preload
2c050 2e 0a 09 20 20 20 20 20 20 66 75 6e 63 5f 61 70  ...      func_ap
2c060 70 65 6e 64 20 6e 65 77 64 6c 70 72 65 66 69 6c  pend newdlprefil
2c070 65 73 20 22 20 24 64 65 70 6c 69 62 22 0a 09 20  es " $deplib".. 
2c080 20 20 20 20 20 63 6f 6d 70 69 6c 65 5f 64 65 70       compile_dep
2c090 6c 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 63  libs="$deplib $c
2c0a0 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 22 0a  ompile_deplibs".
2c0b0 09 20 20 20 20 20 20 66 69 6e 61 6c 69 7a 65 5f  .      finalize_
2c0c0 64 65 70 6c 69 62 73 3d 22 24 64 65 70 6c 69 62  deplibs="$deplib
2c0d0 20 24 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69   $finalize_depli
2c0e0 62 73 22 0a 09 20 20 20 20 65 6c 73 65 0a 09 20  bs"..    else.. 
2c0f0 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64       func_append
2c100 20 6e 65 77 64 6c 66 69 6c 65 73 20 22 20 24 64   newdlfiles " $d
2c110 65 70 6c 69 62 22 0a 09 20 20 20 20 66 69 0a 09  eplib"..    fi..
2c120 20 20 66 69 0a 09 20 20 63 6f 6e 74 69 6e 75 65    fi..  continue
2c130 0a 09 20 20 3b 3b 0a 09 25 44 45 50 4c 49 42 53  ..  ;;..%DEPLIBS
2c140 25 29 0a 09 20 20 61 6c 6c 64 65 70 6c 69 62 73  %)..  alldeplibs
2c150 3d 79 65 73 0a 09 20 20 63 6f 6e 74 69 6e 75 65  =yes..  continue
2c160 0a 09 20 20 3b 3b 0a 09 65 73 61 63 20 23 20 63  ..  ;;..esac # c
2c170 61 73 65 20 24 64 65 70 6c 69 62 0a 0a 09 69 66  ase $deplib...if
2c180 20 74 65 73 74 20 22 24 66 6f 75 6e 64 22 20 3d   test "$found" =
2c190 20 79 65 73 20 7c 7c 20 74 65 73 74 20 2d 66 20   yes || test -f 
2c1a0 22 24 6c 69 62 22 3b 20 74 68 65 6e 20 3a 0a 09  "$lib"; then :..
2c1b0 65 6c 73 65 0a 09 20 20 66 75 6e 63 5f 66 61 74  else..  func_fat
2c1c0 61 6c 5f 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74  al_error "cannot
2c1d0 20 66 69 6e 64 20 74 68 65 20 6c 69 62 72 61 72   find the librar
2c1e0 79 20 5c 60 24 6c 69 62 27 20 6f 72 20 75 6e 68  y \`$lib' or unh
2c1f0 61 6e 64 6c 65 64 20 61 72 67 75 6d 65 6e 74 20  andled argument 
2c200 5c 60 24 64 65 70 6c 69 62 27 22 0a 09 66 69 0a  \`$deplib'"..fi.
2c210 0a 09 23 20 43 68 65 63 6b 20 74 6f 20 73 65 65  ..# Check to see
2c220 20 74 68 61 74 20 74 68 69 73 20 72 65 61 6c 6c   that this reall
2c230 79 20 69 73 20 61 20 6c 69 62 74 6f 6f 6c 20 61  y is a libtool a
2c240 72 63 68 69 76 65 2e 0a 09 66 75 6e 63 5f 6c 61  rchive...func_la
2c250 6c 69 62 5f 75 6e 73 61 66 65 5f 70 20 22 24 6c  lib_unsafe_p "$l
2c260 69 62 22 20 5c 0a 09 20 20 7c 7c 20 66 75 6e 63  ib" \..  || func
2c270 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 5c 60  _fatal_error "\`
2c280 24 6c 69 62 27 20 69 73 20 6e 6f 74 20 61 20 76  $lib' is not a v
2c290 61 6c 69 64 20 6c 69 62 74 6f 6f 6c 20 61 72 63  alid libtool arc
2c2a0 68 69 76 65 22 0a 0a 09 66 75 6e 63 5f 64 69 72  hive"...func_dir
2c2b0 6e 61 6d 65 20 22 24 6c 69 62 22 20 22 22 20 22  name "$lib" "" "
2c2c0 2e 22 0a 09 6c 61 64 69 72 3d 22 24 66 75 6e 63  ."..ladir="$func
2c2d0 5f 64 69 72 6e 61 6d 65 5f 72 65 73 75 6c 74 22  _dirname_result"
2c2e0 0a 0a 09 64 6c 6e 61 6d 65 3d 0a 09 64 6c 6f 70  ...dlname=..dlop
2c2f0 65 6e 3d 0a 09 64 6c 70 72 65 6f 70 65 6e 3d 0a  en=..dlpreopen=.
2c300 09 6c 69 62 64 69 72 3d 0a 09 6c 69 62 72 61 72  .libdir=..librar
2c310 79 5f 6e 61 6d 65 73 3d 0a 09 6f 6c 64 5f 6c 69  y_names=..old_li
2c320 62 72 61 72 79 3d 0a 09 69 6e 68 65 72 69 74 65  brary=..inherite
2c330 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67 73 3d 0a  d_linker_flags=.
2c340 09 23 20 49 66 20 74 68 65 20 6c 69 62 72 61 72  .# If the librar
2c350 79 20 77 61 73 20 69 6e 73 74 61 6c 6c 65 64 20  y was installed 
2c360 77 69 74 68 20 61 6e 20 6f 6c 64 20 72 65 6c 65  with an old rele
2c370 61 73 65 20 6f 66 20 6c 69 62 74 6f 6f 6c 2c 0a  ase of libtool,.
2c380 09 23 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 72  .# it will not r
2c390 65 64 65 66 69 6e 65 20 76 61 72 69 61 62 6c 65  edefine variable
2c3a0 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 6f 72 20  s installed, or 
2c3b0 73 68 6f 75 6c 64 6e 6f 74 6c 69 6e 6b 0a 09 69  shouldnotlink..i
2c3c0 6e 73 74 61 6c 6c 65 64 3d 79 65 73 0a 09 73 68  nstalled=yes..sh
2c3d0 6f 75 6c 64 6e 6f 74 6c 69 6e 6b 3d 6e 6f 0a 09  ouldnotlink=no..
2c3e0 61 76 6f 69 64 74 65 6d 70 72 70 61 74 68 3d 0a  avoidtemprpath=.
2c3f0 0a 0a 09 23 20 52 65 61 64 20 74 68 65 20 2e 6c  ...# Read the .l
2c400 61 20 66 69 6c 65 0a 09 66 75 6e 63 5f 73 6f 75  a file..func_sou
2c410 72 63 65 20 22 24 6c 69 62 22 0a 0a 09 23 20 43  rce "$lib"...# C
2c420 6f 6e 76 65 72 74 20 22 2d 66 72 61 6d 65 77 6f  onvert "-framewo
2c430 72 6b 20 66 6f 6f 22 20 74 6f 20 22 66 6f 6f 2e  rk foo" to "foo.
2c440 6c 74 66 72 61 6d 65 77 6f 72 6b 22 0a 09 69 66  ltframework"..if
2c450 20 74 65 73 74 20 2d 6e 20 22 24 69 6e 68 65 72   test -n "$inher
2c460 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67  ited_linker_flag
2c470 73 22 3b 20 74 68 65 6e 0a 09 20 20 74 6d 70 5f  s"; then..  tmp_
2c480 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72  inherited_linker
2c490 5f 66 6c 61 67 73 3d 60 24 45 43 48 4f 20 22 24  _flags=`$ECHO "$
2c4a0 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72  inherited_linker
2c4b0 5f 66 6c 61 67 73 22 20 7c 20 24 53 45 44 20 27  _flags" | $SED '
2c4c0 73 2f 2d 66 72 61 6d 65 77 6f 72 6b 20 5c 28 5b  s/-framework \([
2c4d0 5e 20 24 5d 2a 5c 29 2f 5c 31 2e 6c 74 66 72 61  ^ $]*\)/\1.ltfra
2c4e0 6d 65 77 6f 72 6b 2f 67 27 60 0a 09 20 20 66 6f  mework/g'`..  fo
2c4f0 72 20 74 6d 70 5f 69 6e 68 65 72 69 74 65 64 5f  r tmp_inherited_
2c500 6c 69 6e 6b 65 72 5f 66 6c 61 67 20 69 6e 20 24  linker_flag in $
2c510 74 6d 70 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69  tmp_inherited_li
2c520 6e 6b 65 72 5f 66 6c 61 67 73 3b 20 64 6f 0a 09  nker_flags; do..
2c530 20 20 20 20 63 61 73 65 20 22 20 24 6e 65 77 5f      case " $new_
2c540 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72  inherited_linker
2c550 5f 66 6c 61 67 73 20 22 20 69 6e 0a 09 20 20 20  _flags " in..   
2c560 20 20 20 2a 22 20 24 74 6d 70 5f 69 6e 68 65 72     *" $tmp_inher
2c570 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61 67  ited_linker_flag
2c580 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20 20 20 2a   "*) ;;..      *
2c590 29 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 65  ) func_append ne
2c5a0 77 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b  w_inherited_link
2c5b0 65 72 5f 66 6c 61 67 73 20 22 20 24 74 6d 70 5f  er_flags " $tmp_
2c5c0 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72  inherited_linker
2c5d0 5f 66 6c 61 67 22 3b 3b 0a 09 20 20 20 20 65 73  _flag";;..    es
2c5e0 61 63 0a 09 20 20 64 6f 6e 65 0a 09 66 69 0a 09  ac..  done..fi..
2c5f0 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d  dependency_libs=
2c600 60 24 45 43 48 4f 20 22 20 24 64 65 70 65 6e 64  `$ECHO " $depend
2c610 65 6e 63 79 5f 6c 69 62 73 22 20 7c 20 24 53 45  ency_libs" | $SE
2c620 44 20 27 73 25 20 5c 28 5b 5e 20 24 5d 2a 5c 29  D 's% \([^ $]*\)
2c630 2e 6c 74 66 72 61 6d 65 77 6f 72 6b 25 20 2d 66  .ltframework% -f
2c640 72 61 6d 65 77 6f 72 6b 20 5c 31 25 67 27 60 0a  ramework \1%g'`.
2c650 09 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d  .if test "$linkm
2c660 6f 64 65 2c 24 70 61 73 73 22 20 3d 20 22 6c 69  ode,$pass" = "li
2c670 62 2c 6c 69 6e 6b 22 20 7c 7c 0a 09 20 20 20 74  b,link" ||..   t
2c680 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 2c 24  est "$linkmode,$
2c690 70 61 73 73 22 20 3d 20 22 70 72 6f 67 2c 73 63  pass" = "prog,sc
2c6a0 61 6e 22 20 7c 7c 0a 09 20 20 20 7b 20 74 65 73  an" ||..   { tes
2c6b0 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 21 3d  t "$linkmode" !=
2c6c0 20 70 72 6f 67 20 26 26 20 74 65 73 74 20 22 24   prog && test "$
2c6d0 6c 69 6e 6b 6d 6f 64 65 22 20 21 3d 20 6c 69 62  linkmode" != lib
2c6e0 3b 20 7d 3b 20 74 68 65 6e 0a 09 20 20 74 65 73  ; }; then..  tes
2c6f0 74 20 2d 6e 20 22 24 64 6c 6f 70 65 6e 22 20 26  t -n "$dlopen" &
2c700 26 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 64 6c  & func_append dl
2c710 66 69 6c 65 73 20 22 20 24 64 6c 6f 70 65 6e 22  files " $dlopen"
2c720 0a 09 20 20 74 65 73 74 20 2d 6e 20 22 24 64 6c  ..  test -n "$dl
2c730 70 72 65 6f 70 65 6e 22 20 26 26 20 66 75 6e 63  preopen" && func
2c740 5f 61 70 70 65 6e 64 20 64 6c 70 72 65 66 69 6c  _append dlprefil
2c750 65 73 20 22 20 24 64 6c 70 72 65 6f 70 65 6e 22  es " $dlpreopen"
2c760 0a 09 66 69 0a 0a 09 69 66 20 74 65 73 74 20 22  ..fi...if test "
2c770 24 70 61 73 73 22 20 3d 20 63 6f 6e 76 3b 20 74  $pass" = conv; t
2c780 68 65 6e 0a 09 20 20 23 20 4f 6e 6c 79 20 63 68  hen..  # Only ch
2c790 65 63 6b 20 66 6f 72 20 63 6f 6e 76 65 6e 69 65  eck for convenie
2c7a0 6e 63 65 20 6c 69 62 72 61 72 69 65 73 0a 09 20  nce libraries.. 
2c7b0 20 64 65 70 6c 69 62 73 3d 22 24 6c 69 62 20 24   deplibs="$lib $
2c7c0 64 65 70 6c 69 62 73 22 0a 09 20 20 69 66 20 74  deplibs"..  if t
2c7d0 65 73 74 20 2d 7a 20 22 24 6c 69 62 64 69 72 22  est -z "$libdir"
2c7e0 3b 20 74 68 65 6e 0a 09 20 20 20 20 69 66 20 74  ; then..    if t
2c7f0 65 73 74 20 2d 7a 20 22 24 6f 6c 64 5f 6c 69 62  est -z "$old_lib
2c800 72 61 72 79 22 3b 20 74 68 65 6e 0a 09 20 20 20  rary"; then..   
2c810 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72     func_fatal_er
2c820 72 6f 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e 64  ror "cannot find
2c830 20 6e 61 6d 65 20 6f 66 20 6c 69 6e 6b 20 6c 69   name of link li
2c840 62 72 61 72 79 20 66 6f 72 20 5c 60 24 6c 69 62  brary for \`$lib
2c850 27 22 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20  '"..    fi..    
2c860 23 20 49 74 20 69 73 20 61 20 6c 69 62 74 6f 6f  # It is a libtoo
2c870 6c 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6c 69  l convenience li
2c880 62 72 61 72 79 2c 20 73 6f 20 61 64 64 20 69 6e  brary, so add in
2c890 20 69 74 73 20 6f 62 6a 65 63 74 73 2e 0a 09 20   its objects... 
2c8a0 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63     func_append c
2c8b0 6f 6e 76 65 6e 69 65 6e 63 65 20 22 20 24 6c 61  onvenience " $la
2c8c0 64 69 72 2f 24 6f 62 6a 64 69 72 2f 24 6f 6c 64  dir/$objdir/$old
2c8d0 5f 6c 69 62 72 61 72 79 22 0a 09 20 20 20 20 66  _library"..    f
2c8e0 75 6e 63 5f 61 70 70 65 6e 64 20 6f 6c 64 5f 63  unc_append old_c
2c8f0 6f 6e 76 65 6e 69 65 6e 63 65 20 22 20 24 6c 61  onvenience " $la
2c900 64 69 72 2f 24 6f 62 6a 64 69 72 2f 24 6f 6c 64  dir/$objdir/$old
2c910 5f 6c 69 62 72 61 72 79 22 0a 09 20 20 65 6c 69  _library"..  eli
2c920 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64  f test "$linkmod
2c930 65 22 20 21 3d 20 70 72 6f 67 20 26 26 20 74 65  e" != prog && te
2c940 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 21  st "$linkmode" !
2c950 3d 20 6c 69 62 3b 20 74 68 65 6e 0a 09 20 20 20  = lib; then..   
2c960 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f   func_fatal_erro
2c970 72 20 22 5c 60 24 6c 69 62 27 20 69 73 20 6e 6f  r "\`$lib' is no
2c980 74 20 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20  t a convenience 
2c990 6c 69 62 72 61 72 79 22 0a 09 20 20 66 69 0a 09  library"..  fi..
2c9a0 20 20 74 6d 70 5f 6c 69 62 73 3d 0a 09 20 20 66    tmp_libs=..  f
2c9b0 6f 72 20 64 65 70 6c 69 62 20 69 6e 20 24 64 65  or deplib in $de
2c9c0 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3b 20 64  pendency_libs; d
2c9d0 6f 0a 09 20 20 20 20 64 65 70 6c 69 62 73 3d 22  o..    deplibs="
2c9e0 24 64 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73  $deplib $deplibs
2c9f0 22 0a 09 20 20 20 20 69 66 20 24 6f 70 74 5f 70  "..    if $opt_p
2ca00 72 65 73 65 72 76 65 5f 64 75 70 5f 64 65 70 73  reserve_dup_deps
2ca10 20 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 63   ; then..      c
2ca20 61 73 65 20 22 24 74 6d 70 5f 6c 69 62 73 20 22  ase "$tmp_libs "
2ca30 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24 64   in..      *" $d
2ca40 65 70 6c 69 62 20 22 2a 29 20 66 75 6e 63 5f 61  eplib "*) func_a
2ca50 70 70 65 6e 64 20 73 70 65 63 69 61 6c 64 65 70  ppend specialdep
2ca60 6c 69 62 73 20 22 20 24 64 65 70 6c 69 62 22 20  libs " $deplib" 
2ca70 3b 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09  ;;..      esac..
2ca80 20 20 20 20 66 69 0a 09 20 20 20 20 66 75 6e 63      fi..    func
2ca90 5f 61 70 70 65 6e 64 20 74 6d 70 5f 6c 69 62 73  _append tmp_libs
2caa0 20 22 20 24 64 65 70 6c 69 62 22 0a 09 20 20 64   " $deplib"..  d
2cab0 6f 6e 65 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a  one..  continue.
2cac0 09 66 69 20 23 20 24 70 61 73 73 20 3d 20 63 6f  .fi # $pass = co
2cad0 6e 76 0a 0a 0a 09 23 20 47 65 74 20 74 68 65 20  nv....# Get the 
2cae0 6e 61 6d 65 20 6f 66 20 74 68 65 20 6c 69 62 72  name of the libr
2caf0 61 72 79 20 77 65 20 6c 69 6e 6b 20 61 67 61 69  ary we link agai
2cb00 6e 73 74 2e 0a 09 6c 69 6e 6b 6c 69 62 3d 0a 09  nst...linklib=..
2cb10 69 66 20 74 65 73 74 20 2d 6e 20 22 24 6f 6c 64  if test -n "$old
2cb20 5f 6c 69 62 72 61 72 79 22 20 26 26 0a 09 20 20  _library" &&..  
2cb30 20 7b 20 74 65 73 74 20 22 24 70 72 65 66 65 72   { test "$prefer
2cb40 5f 73 74 61 74 69 63 5f 6c 69 62 73 22 20 3d 20  _static_libs" = 
2cb50 79 65 73 20 7c 7c 0a 09 20 20 20 20 20 74 65 73  yes ||..     tes
2cb60 74 20 22 24 70 72 65 66 65 72 5f 73 74 61 74 69  t "$prefer_stati
2cb70 63 5f 6c 69 62 73 2c 24 69 6e 73 74 61 6c 6c 65  c_libs,$installe
2cb80 64 22 20 3d 20 22 62 75 69 6c 74 2c 6e 6f 22 3b  d" = "built,no";
2cb90 20 7d 3b 20 74 68 65 6e 0a 09 20 20 6c 69 6e 6b   }; then..  link
2cba0 6c 69 62 3d 24 6f 6c 64 5f 6c 69 62 72 61 72 79  lib=$old_library
2cbb0 0a 09 65 6c 73 65 0a 09 20 20 66 6f 72 20 6c 20  ..else..  for l 
2cbc0 69 6e 20 24 6f 6c 64 5f 6c 69 62 72 61 72 79 20  in $old_library 
2cbd0 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 3b 20  $library_names; 
2cbe0 64 6f 0a 09 20 20 20 20 6c 69 6e 6b 6c 69 62 3d  do..    linklib=
2cbf0 22 24 6c 22 0a 09 20 20 64 6f 6e 65 0a 09 66 69  "$l"..  done..fi
2cc00 0a 09 69 66 20 74 65 73 74 20 2d 7a 20 22 24 6c  ..if test -z "$l
2cc10 69 6e 6b 6c 69 62 22 3b 20 74 68 65 6e 0a 09 20  inklib"; then.. 
2cc20 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f   func_fatal_erro
2cc30 72 20 22 63 61 6e 6e 6f 74 20 66 69 6e 64 20 6e  r "cannot find n
2cc40 61 6d 65 20 6f 66 20 6c 69 6e 6b 20 6c 69 62 72  ame of link libr
2cc50 61 72 79 20 66 6f 72 20 5c 60 24 6c 69 62 27 22  ary for \`$lib'"
2cc60 0a 09 66 69 0a 0a 09 23 20 54 68 69 73 20 6c 69  ..fi...# This li
2cc70 62 72 61 72 79 20 77 61 73 20 73 70 65 63 69 66  brary was specif
2cc80 69 65 64 20 77 69 74 68 20 2d 64 6c 6f 70 65 6e  ied with -dlopen
2cc90 2e 0a 09 69 66 20 74 65 73 74 20 22 24 70 61 73  ...if test "$pas
2cca0 73 22 20 3d 20 64 6c 6f 70 65 6e 3b 20 74 68 65  s" = dlopen; the
2ccb0 6e 0a 09 20 20 69 66 20 74 65 73 74 20 2d 7a 20  n..  if test -z 
2ccc0 22 24 6c 69 62 64 69 72 22 3b 20 74 68 65 6e 0a  "$libdir"; then.
2ccd0 09 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c 5f  .    func_fatal_
2cce0 65 72 72 6f 72 20 22 63 61 6e 6e 6f 74 20 2d 64  error "cannot -d
2ccf0 6c 6f 70 65 6e 20 61 20 63 6f 6e 76 65 6e 69 65  lopen a convenie
2cd00 6e 63 65 20 6c 69 62 72 61 72 79 3a 20 5c 60 24  nce library: \`$
2cd10 6c 69 62 27 22 0a 09 20 20 66 69 0a 09 20 20 69  lib'"..  fi..  i
2cd20 66 20 74 65 73 74 20 2d 7a 20 22 24 64 6c 6e 61  f test -z "$dlna
2cd30 6d 65 22 20 7c 7c 0a 09 20 20 20 20 20 74 65 73  me" ||..     tes
2cd40 74 20 22 24 64 6c 6f 70 65 6e 5f 73 75 70 70 6f  t "$dlopen_suppo
2cd50 72 74 22 20 21 3d 20 79 65 73 20 7c 7c 0a 09 20  rt" != yes ||.. 
2cd60 20 20 20 20 74 65 73 74 20 22 24 62 75 69 6c 64      test "$build
2cd70 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22 20 3d  _libtool_libs" =
2cd80 20 6e 6f 3b 20 74 68 65 6e 0a 09 20 20 20 20 23   no; then..    #
2cd90 20 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20   If there is no 
2cda0 64 6c 6e 61 6d 65 2c 20 6e 6f 20 64 6c 6f 70 65  dlname, no dlope
2cdb0 6e 20 73 75 70 70 6f 72 74 20 6f 72 20 77 65 27  n support or we'
2cdc0 72 65 20 6c 69 6e 6b 69 6e 67 0a 09 20 20 20 20  re linking..    
2cdd0 23 20 73 74 61 74 69 63 61 6c 6c 79 2c 20 77 65  # statically, we
2cde0 20 6e 65 65 64 20 74 6f 20 70 72 65 6c 6f 61 64   need to preload
2cdf0 2e 20 20 57 65 20 61 6c 73 6f 20 6e 65 65 64 20  .  We also need 
2ce00 74 6f 20 70 72 65 6c 6f 61 64 20 61 6e 79 0a 09  to preload any..
2ce10 20 20 20 20 23 20 64 65 70 65 6e 64 65 6e 74 20      # dependent 
2ce20 6c 69 62 72 61 72 69 65 73 20 73 6f 20 6c 69 62  libraries so lib
2ce30 6c 74 64 6c 27 73 20 64 65 70 6c 69 62 20 70 72  ltdl's deplib pr
2ce40 65 6c 6f 61 64 65 72 20 64 6f 65 73 6e 27 74 0a  eloader doesn't.
2ce50 09 20 20 20 20 23 20 62 6f 6d 62 20 6f 75 74 20  .    # bomb out 
2ce60 69 6e 20 74 68 65 20 6c 6f 61 64 20 64 65 70 6c  in the load depl
2ce70 69 62 73 20 70 68 61 73 65 2e 0a 09 20 20 20 20  ibs phase...    
2ce80 66 75 6e 63 5f 61 70 70 65 6e 64 20 64 6c 70 72  func_append dlpr
2ce90 65 66 69 6c 65 73 20 22 20 24 6c 69 62 20 24 64  efiles " $lib $d
2cea0 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 22 0a  ependency_libs".
2ceb0 09 20 20 65 6c 73 65 0a 09 20 20 20 20 66 75 6e  .  else..    fun
2cec0 63 5f 61 70 70 65 6e 64 20 6e 65 77 64 6c 66 69  c_append newdlfi
2ced0 6c 65 73 20 22 20 24 6c 69 62 22 0a 09 20 20 66  les " $lib"..  f
2cee0 69 0a 09 20 20 63 6f 6e 74 69 6e 75 65 0a 09 66  i..  continue..f
2cef0 69 20 23 20 24 70 61 73 73 20 3d 20 64 6c 6f 70  i # $pass = dlop
2cf00 65 6e 0a 0a 09 23 20 57 65 20 6e 65 65 64 20 61  en...# We need a
2cf10 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 2e  n absolute path.
2cf20 0a 09 63 61 73 65 20 24 6c 61 64 69 72 20 69 6e  ..case $ladir in
2cf30 0a 09 5b 5c 5c 2f 5d 2a 20 7c 20 5b 41 2d 5a 61  ..[\\/]* | [A-Za
2cf40 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29 20 61 62 73 5f  -z]:[\\/]*) abs_
2cf50 6c 61 64 69 72 3d 22 24 6c 61 64 69 72 22 20 3b  ladir="$ladir" ;
2cf60 3b 0a 09 2a 29 0a 09 20 20 61 62 73 5f 6c 61 64  ;..*)..  abs_lad
2cf70 69 72 3d 60 63 64 20 22 24 6c 61 64 69 72 22 20  ir=`cd "$ladir" 
2cf80 26 26 20 70 77 64 60 0a 09 20 20 69 66 20 74 65  && pwd`..  if te
2cf90 73 74 20 2d 7a 20 22 24 61 62 73 5f 6c 61 64 69  st -z "$abs_ladi
2cfa0 72 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 66 75  r"; then..    fu
2cfb0 6e 63 5f 77 61 72 6e 69 6e 67 20 22 63 61 6e 6e  nc_warning "cann
2cfc0 6f 74 20 64 65 74 65 72 6d 69 6e 65 20 61 62 73  ot determine abs
2cfd0 6f 6c 75 74 65 20 64 69 72 65 63 74 6f 72 79 20  olute directory 
2cfe0 6e 61 6d 65 20 6f 66 20 5c 60 24 6c 61 64 69 72  name of \`$ladir
2cff0 27 22 0a 09 20 20 20 20 66 75 6e 63 5f 77 61 72  '"..    func_war
2d000 6e 69 6e 67 20 22 70 61 73 73 69 6e 67 20 69 74  ning "passing it
2d010 20 6c 69 74 65 72 61 6c 6c 79 20 74 6f 20 74 68   literally to th
2d020 65 20 6c 69 6e 6b 65 72 2c 20 61 6c 74 68 6f 75  e linker, althou
2d030 67 68 20 69 74 20 6d 69 67 68 74 20 66 61 69 6c  gh it might fail
2d040 22 0a 09 20 20 20 20 61 62 73 5f 6c 61 64 69 72  "..    abs_ladir
2d050 3d 22 24 6c 61 64 69 72 22 0a 09 20 20 66 69 0a  ="$ladir"..  fi.
2d060 09 20 20 3b 3b 0a 09 65 73 61 63 0a 09 66 75 6e  .  ;;..esac..fun
2d070 63 5f 62 61 73 65 6e 61 6d 65 20 22 24 6c 69 62  c_basename "$lib
2d080 22 0a 09 6c 61 6e 61 6d 65 3d 22 24 66 75 6e 63  "..laname="$func
2d090 5f 62 61 73 65 6e 61 6d 65 5f 72 65 73 75 6c 74  _basename_result
2d0a0 22 0a 0a 09 23 20 46 69 6e 64 20 74 68 65 20 72  "...# Find the r
2d0b0 65 6c 65 76 61 6e 74 20 6f 62 6a 65 63 74 20 64  elevant object d
2d0c0 69 72 65 63 74 6f 72 79 20 61 6e 64 20 6c 69 62  irectory and lib
2d0d0 72 61 72 79 20 6e 61 6d 65 2e 0a 09 69 66 20 74  rary name...if t
2d0e0 65 73 74 20 22 58 24 69 6e 73 74 61 6c 6c 65 64  est "X$installed
2d0f0 22 20 3d 20 58 79 65 73 3b 20 74 68 65 6e 0a 09  " = Xyes; then..
2d100 20 20 69 66 20 74 65 73 74 20 21 20 2d 66 20 22    if test ! -f "
2d110 24 6c 74 5f 73 79 73 72 6f 6f 74 24 6c 69 62 64  $lt_sysroot$libd
2d120 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 20 26 26 20  ir/$linklib" && 
2d130 74 65 73 74 20 2d 66 20 22 24 61 62 73 5f 6c 61  test -f "$abs_la
2d140 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 3b 20 74  dir/$linklib"; t
2d150 68 65 6e 0a 09 20 20 20 20 23 66 75 6e 63 5f 77  hen..    #func_w
2d160 61 72 6e 69 6e 67 20 22 6c 69 62 72 61 72 79 20  arning "library 
2d170 5c 60 24 6c 69 62 27 20 77 61 73 20 6d 6f 76 65  \`$lib' was move
2d180 64 2e 22 0a 09 20 20 20 20 64 69 72 3d 22 24 6c  d."..    dir="$l
2d190 61 64 69 72 22 0a 09 20 20 20 20 61 62 73 64 69  adir"..    absdi
2d1a0 72 3d 22 24 61 62 73 5f 6c 61 64 69 72 22 0a 09  r="$abs_ladir"..
2d1b0 20 20 20 20 6c 69 62 64 69 72 3d 22 24 61 62 73      libdir="$abs
2d1c0 5f 6c 61 64 69 72 22 0a 09 20 20 65 6c 73 65 0a  _ladir"..  else.
2d1d0 09 20 20 20 20 64 69 72 3d 22 24 6c 74 5f 73 79  .    dir="$lt_sy
2d1e0 73 72 6f 6f 74 24 6c 69 62 64 69 72 22 0a 09 20  sroot$libdir".. 
2d1f0 20 20 20 61 62 73 64 69 72 3d 22 24 6c 74 5f 73     absdir="$lt_s
2d200 79 73 72 6f 6f 74 24 6c 69 62 64 69 72 22 0a 09  ysroot$libdir"..
2d210 20 20 66 69 0a 09 20 20 74 65 73 74 20 22 58 24    fi..  test "X$
2d220 68 61 72 64 63 6f 64 65 5f 61 75 74 6f 6d 61 74  hardcode_automat
2d230 69 63 22 20 3d 20 58 79 65 73 20 26 26 20 61 76  ic" = Xyes && av
2d240 6f 69 64 74 65 6d 70 72 70 61 74 68 3d 79 65 73  oidtemprpath=yes
2d250 0a 09 65 6c 73 65 0a 09 20 20 69 66 20 74 65 73  ..else..  if tes
2d260 74 20 21 20 2d 66 20 22 24 6c 61 64 69 72 2f 24  t ! -f "$ladir/$
2d270 6f 62 6a 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22  objdir/$linklib"
2d280 20 26 26 20 74 65 73 74 20 2d 66 20 22 24 61 62   && test -f "$ab
2d290 73 5f 6c 61 64 69 72 2f 24 6c 69 6e 6b 6c 69 62  s_ladir/$linklib
2d2a0 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 64 69 72  "; then..    dir
2d2b0 3d 22 24 6c 61 64 69 72 22 0a 09 20 20 20 20 61  ="$ladir"..    a
2d2c0 62 73 64 69 72 3d 22 24 61 62 73 5f 6c 61 64 69  bsdir="$abs_ladi
2d2d0 72 22 0a 09 20 20 20 20 23 20 52 65 6d 6f 76 65  r"..    # Remove
2d2e0 20 74 68 69 73 20 73 65 61 72 63 68 20 70 61 74   this search pat
2d2f0 68 20 6c 61 74 65 72 0a 09 20 20 20 20 66 75 6e  h later..    fun
2d300 63 5f 61 70 70 65 6e 64 20 6e 6f 74 69 6e 73 74  c_append notinst
2d310 5f 70 61 74 68 20 22 20 24 61 62 73 5f 6c 61 64  _path " $abs_lad
2d320 69 72 22 0a 09 20 20 65 6c 73 65 0a 09 20 20 20  ir"..  else..   
2d330 20 64 69 72 3d 22 24 6c 61 64 69 72 2f 24 6f 62   dir="$ladir/$ob
2d340 6a 64 69 72 22 0a 09 20 20 20 20 61 62 73 64 69  jdir"..    absdi
2d350 72 3d 22 24 61 62 73 5f 6c 61 64 69 72 2f 24 6f  r="$abs_ladir/$o
2d360 62 6a 64 69 72 22 0a 09 20 20 20 20 23 20 52 65  bjdir"..    # Re
2d370 6d 6f 76 65 20 74 68 69 73 20 73 65 61 72 63 68  move this search
2d380 20 70 61 74 68 20 6c 61 74 65 72 0a 09 20 20 20   path later..   
2d390 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 6f 74   func_append not
2d3a0 69 6e 73 74 5f 70 61 74 68 20 22 20 24 61 62 73  inst_path " $abs
2d3b0 5f 6c 61 64 69 72 22 0a 09 20 20 66 69 0a 09 66  _ladir"..  fi..f
2d3c0 69 20 23 20 24 69 6e 73 74 61 6c 6c 65 64 20 3d  i # $installed =
2d3d0 20 79 65 73 0a 09 66 75 6e 63 5f 73 74 72 69 70   yes..func_strip
2d3e0 6e 61 6d 65 20 27 6c 69 62 27 20 27 2e 6c 61 27  name 'lib' '.la'
2d3f0 20 22 24 6c 61 6e 61 6d 65 22 0a 09 6e 61 6d 65   "$laname"..name
2d400 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  =$func_stripname
2d410 5f 72 65 73 75 6c 74 0a 0a 09 23 20 54 68 69 73  _result...# This
2d420 20 6c 69 62 72 61 72 79 20 77 61 73 20 73 70 65   library was spe
2d430 63 69 66 69 65 64 20 77 69 74 68 20 2d 64 6c 70  cified with -dlp
2d440 72 65 6f 70 65 6e 2e 0a 09 69 66 20 74 65 73 74  reopen...if test
2d450 20 22 24 70 61 73 73 22 20 3d 20 64 6c 70 72 65   "$pass" = dlpre
2d460 6f 70 65 6e 3b 20 74 68 65 6e 0a 09 20 20 69 66  open; then..  if
2d470 20 74 65 73 74 20 2d 7a 20 22 24 6c 69 62 64 69   test -z "$libdi
2d480 72 22 20 26 26 20 74 65 73 74 20 22 24 6c 69 6e  r" && test "$lin
2d490 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67 3b 20 74  kmode" = prog; t
2d4a0 68 65 6e 0a 09 20 20 20 20 66 75 6e 63 5f 66 61  hen..    func_fa
2d4b0 74 61 6c 5f 65 72 72 6f 72 20 22 6f 6e 6c 79 20  tal_error "only 
2d4c0 6c 69 62 72 61 72 69 65 73 20 6d 61 79 20 2d 64  libraries may -d
2d4d0 6c 70 72 65 6f 70 65 6e 20 61 20 63 6f 6e 76 65  lpreopen a conve
2d4e0 6e 69 65 6e 63 65 20 6c 69 62 72 61 72 79 3a 20  nience library: 
2d4f0 5c 60 24 6c 69 62 27 22 0a 09 20 20 66 69 0a 09  \`$lib'"..  fi..
2d500 20 20 63 61 73 65 20 22 24 68 6f 73 74 22 20 69    case "$host" i
2d510 6e 0a 09 20 20 20 20 23 20 73 70 65 63 69 61 6c  n..    # special
2d520 20 68 61 6e 64 6c 69 6e 67 20 66 6f 72 20 70 6c   handling for pl
2d530 61 74 66 6f 72 6d 73 20 77 69 74 68 20 50 45 2d  atforms with PE-
2d540 44 4c 4c 73 2e 0a 09 20 20 20 20 2a 63 79 67 77  DLLs...    *cygw
2d550 69 6e 2a 20 7c 20 2a 6d 69 6e 67 77 2a 20 7c 20  in* | *mingw* | 
2d560 2a 63 65 67 63 63 2a 20 29 0a 09 20 20 20 20 20  *cegcc* )..     
2d570 20 23 20 4c 69 6e 6b 65 72 20 77 69 6c 6c 20 61   # Linker will a
2d580 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 69 6e  utomatically lin
2d590 6b 20 61 67 61 69 6e 73 74 20 73 68 61 72 65 64  k against shared
2d5a0 20 6c 69 62 72 61 72 79 20 69 66 20 62 6f 74 68   library if both
2d5b0 0a 09 20 20 20 20 20 20 23 20 73 74 61 74 69 63  ..      # static
2d5c0 20 61 6e 64 20 73 68 61 72 65 64 20 61 72 65 20   and shared are 
2d5d0 70 72 65 73 65 6e 74 2e 20 20 54 68 65 72 65 66  present.  Theref
2d5e0 6f 72 65 2c 20 65 6e 73 75 72 65 20 77 65 20 65  ore, ensure we e
2d5f0 78 74 72 61 63 74 0a 09 20 20 20 20 20 20 23 20  xtract..      # 
2d600 73 79 6d 62 6f 6c 73 20 66 72 6f 6d 20 74 68 65  symbols from the
2d610 20 69 6d 70 6f 72 74 20 6c 69 62 72 61 72 79 20   import library 
2d620 69 66 20 61 20 73 68 61 72 65 64 20 6c 69 62 72  if a shared libr
2d630 61 72 79 20 69 73 20 70 72 65 73 65 6e 74 0a 09  ary is present..
2d640 20 20 20 20 20 20 23 20 28 6f 74 68 65 72 77 69        # (otherwi
2d650 73 65 2c 20 74 68 65 20 64 6c 6f 70 65 6e 20 6d  se, the dlopen m
2d660 6f 64 75 6c 65 20 6e 61 6d 65 20 77 69 6c 6c 20  odule name will 
2d670 62 65 20 69 6e 63 6f 72 72 65 63 74 29 2e 20 20  be incorrect).  
2d680 57 65 20 64 6f 0a 09 20 20 20 20 20 20 23 20 74  We do..      # t
2d690 68 69 73 20 62 79 20 70 75 74 74 69 6e 67 20 74  his by putting t
2d6a0 68 65 20 69 6d 70 6f 72 74 20 6c 69 62 72 61 72  he import librar
2d6b0 79 20 6e 61 6d 65 20 69 6e 74 6f 20 24 6e 65 77  y name into $new
2d6c0 64 6c 70 72 65 66 69 6c 65 73 2e 0a 09 20 20 20  dlprefiles...   
2d6d0 20 20 20 23 20 57 65 20 72 65 63 6f 76 65 72 20     # We recover 
2d6e0 74 68 65 20 64 6c 6f 70 65 6e 20 6d 6f 64 75 6c  the dlopen modul
2d6f0 65 20 6e 61 6d 65 20 62 79 20 27 73 61 76 69 6e  e name by 'savin
2d700 67 27 20 74 68 65 20 6c 61 20 66 69 6c 65 0a 09  g' the la file..
2d710 20 20 20 20 20 20 23 20 6e 61 6d 65 20 69 6e 20        # name in 
2d720 61 20 73 70 65 63 69 61 6c 20 70 75 72 70 6f 73  a special purpos
2d730 65 20 76 61 72 69 61 62 6c 65 2c 20 61 6e 64 20  e variable, and 
2d740 28 6c 61 74 65 72 29 20 65 78 74 72 61 63 74 69  (later) extracti
2d750 6e 67 20 74 68 65 0a 09 20 20 20 20 20 20 23 20  ng the..      # 
2d760 64 6c 6e 61 6d 65 20 66 72 6f 6d 20 74 68 65 20  dlname from the 
2d770 6c 61 20 66 69 6c 65 2e 0a 09 20 20 20 20 20 20  la file...      
2d780 69 66 20 74 65 73 74 20 2d 6e 20 22 24 64 6c 6e  if test -n "$dln
2d790 61 6d 65 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  ame"; then..    
2d7a0 20 20 20 20 66 75 6e 63 5f 74 72 5f 73 68 20 22      func_tr_sh "
2d7b0 24 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 0a 09  $dir/$linklib"..
2d7c0 20 20 20 20 20 20 20 20 65 76 61 6c 20 22 6c 69          eval "li
2d7d0 62 66 69 6c 65 5f 24 66 75 6e 63 5f 74 72 5f 73  bfile_$func_tr_s
2d7e0 68 5f 72 65 73 75 6c 74 3d 5c 24 61 62 73 5f 6c  h_result=\$abs_l
2d7f0 61 64 69 72 2f 5c 24 6c 61 6e 61 6d 65 22 0a 09  adir/\$laname"..
2d800 20 20 20 20 20 20 20 20 66 75 6e 63 5f 61 70 70          func_app
2d810 65 6e 64 20 6e 65 77 64 6c 70 72 65 66 69 6c 65  end newdlprefile
2d820 73 20 22 20 24 64 69 72 2f 24 6c 69 6e 6b 6c 69  s " $dir/$linkli
2d830 62 22 0a 09 20 20 20 20 20 20 65 6c 73 65 0a 09  b"..      else..
2d840 20 20 20 20 20 20 20 20 66 75 6e 63 5f 61 70 70          func_app
2d850 65 6e 64 20 6e 65 77 64 6c 70 72 65 66 69 6c 65  end newdlprefile
2d860 73 20 22 20 24 64 69 72 2f 24 6f 6c 64 5f 6c 69  s " $dir/$old_li
2d870 62 72 61 72 79 22 0a 09 20 20 20 20 20 20 20 20  brary"..        
2d880 23 20 4b 65 65 70 20 61 20 6c 69 73 74 20 6f 66  # Keep a list of
2d890 20 70 72 65 6f 70 65 6e 65 64 20 63 6f 6e 76 65   preopened conve
2d8a0 6e 69 65 6e 63 65 20 6c 69 62 72 61 72 69 65 73  nience libraries
2d8b0 20 74 6f 20 63 68 65 63 6b 0a 09 20 20 20 20 20   to check..     
2d8c0 20 20 20 23 20 74 68 61 74 20 74 68 65 79 20 61     # that they a
2d8d0 72 65 20 62 65 69 6e 67 20 75 73 65 64 20 63 6f  re being used co
2d8e0 72 72 65 63 74 6c 79 20 69 6e 20 74 68 65 20 6c  rrectly in the l
2d8f0 69 6e 6b 20 70 61 73 73 2e 0a 09 20 20 20 20 20  ink pass...     
2d900 20 20 20 74 65 73 74 20 2d 7a 20 22 24 6c 69 62     test -z "$lib
2d910 64 69 72 22 20 26 26 20 5c 0a 09 20 20 20 20 20  dir" && \..     
2d920 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64       func_append
2d930 20 64 6c 70 72 65 63 6f 6e 76 65 6e 69 65 6e 63   dlpreconvenienc
2d940 65 6c 69 62 73 20 22 20 24 64 69 72 2f 24 6f 6c  elibs " $dir/$ol
2d950 64 5f 6c 69 62 72 61 72 79 22 0a 09 20 20 20 20  d_library"..    
2d960 20 20 66 69 0a 09 20 20 20 20 3b 3b 0a 09 20 20    fi..    ;;..  
2d970 20 20 2a 20 29 0a 09 20 20 20 20 20 20 23 20 50    * )..      # P
2d980 72 65 66 65 72 20 75 73 69 6e 67 20 61 20 73 74  refer using a st
2d990 61 74 69 63 20 6c 69 62 72 61 72 79 20 28 73 6f  atic library (so
2d9a0 20 74 68 61 74 20 6e 6f 20 73 69 6c 6c 79 20 5f   that no silly _
2d9b0 44 59 4e 41 4d 49 43 20 73 79 6d 62 6f 6c 73 0a  DYNAMIC symbols.
2d9c0 09 20 20 20 20 20 20 23 20 61 72 65 20 72 65 71  .      # are req
2d9d0 75 69 72 65 64 20 74 6f 20 6c 69 6e 6b 29 2e 0a  uired to link)..
2d9e0 09 20 20 20 20 20 20 69 66 20 74 65 73 74 20 2d  .      if test -
2d9f0 6e 20 22 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22  n "$old_library"
2da00 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 20 20  ; then..        
2da10 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 65 77 64  func_append newd
2da20 6c 70 72 65 66 69 6c 65 73 20 22 20 24 64 69 72  lprefiles " $dir
2da30 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 0a 09  /$old_library"..
2da40 20 20 20 20 20 20 20 20 23 20 4b 65 65 70 20 61          # Keep a
2da50 20 6c 69 73 74 20 6f 66 20 70 72 65 6f 70 65 6e   list of preopen
2da60 65 64 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 6c  ed convenience l
2da70 69 62 72 61 72 69 65 73 20 74 6f 20 63 68 65 63  ibraries to chec
2da80 6b 0a 09 20 20 20 20 20 20 20 20 23 20 74 68 61  k..        # tha
2da90 74 20 74 68 65 79 20 61 72 65 20 62 65 69 6e 67  t they are being
2daa0 20 75 73 65 64 20 63 6f 72 72 65 63 74 6c 79 20   used correctly 
2dab0 69 6e 20 74 68 65 20 6c 69 6e 6b 20 70 61 73 73  in the link pass
2dac0 2e 0a 09 20 20 20 20 20 20 20 20 74 65 73 74 20  ...        test 
2dad0 2d 7a 20 22 24 6c 69 62 64 69 72 22 20 26 26 20  -z "$libdir" && 
2dae0 5c 0a 09 20 20 20 20 20 20 20 20 20 20 66 75 6e  \..          fun
2daf0 63 5f 61 70 70 65 6e 64 20 64 6c 70 72 65 63 6f  c_append dlpreco
2db00 6e 76 65 6e 69 65 6e 63 65 6c 69 62 73 20 22 20  nveniencelibs " 
2db10 24 64 69 72 2f 24 6f 6c 64 5f 6c 69 62 72 61 72  $dir/$old_librar
2db20 79 22 0a 09 20 20 20 20 20 20 23 20 4f 74 68 65  y"..      # Othe
2db30 72 77 69 73 65 2c 20 75 73 65 20 74 68 65 20 64  rwise, use the d
2db40 6c 6e 61 6d 65 2c 20 73 6f 20 74 68 61 74 20 6c  lname, so that l
2db50 74 5f 64 6c 6f 70 65 6e 20 66 69 6e 64 73 20 69  t_dlopen finds i
2db60 74 2e 0a 09 20 20 20 20 20 20 65 6c 69 66 20 74  t...      elif t
2db70 65 73 74 20 2d 6e 20 22 24 64 6c 6e 61 6d 65 22  est -n "$dlname"
2db80 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 20 20  ; then..        
2db90 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 65 77 64  func_append newd
2dba0 6c 70 72 65 66 69 6c 65 73 20 22 20 24 64 69 72  lprefiles " $dir
2dbb0 2f 24 64 6c 6e 61 6d 65 22 0a 09 20 20 20 20 20  /$dlname"..     
2dbc0 20 65 6c 73 65 0a 09 20 20 20 20 20 20 20 20 66   else..        f
2dbd0 75 6e 63 5f 61 70 70 65 6e 64 20 6e 65 77 64 6c  unc_append newdl
2dbe0 70 72 65 66 69 6c 65 73 20 22 20 24 64 69 72 2f  prefiles " $dir/
2dbf0 24 6c 69 6e 6b 6c 69 62 22 0a 09 20 20 20 20 20  $linklib"..     
2dc00 20 66 69 0a 09 20 20 20 20 3b 3b 0a 09 20 20 65   fi..    ;;..  e
2dc10 73 61 63 0a 09 66 69 20 23 20 24 70 61 73 73 20  sac..fi # $pass 
2dc20 3d 20 64 6c 70 72 65 6f 70 65 6e 0a 0a 09 69 66  = dlpreopen...if
2dc30 20 74 65 73 74 20 2d 7a 20 22 24 6c 69 62 64 69   test -z "$libdi
2dc40 72 22 3b 20 74 68 65 6e 0a 09 20 20 23 20 4c 69  r"; then..  # Li
2dc50 6e 6b 20 74 68 65 20 63 6f 6e 76 65 6e 69 65 6e  nk the convenien
2dc60 63 65 20 6c 69 62 72 61 72 79 0a 09 20 20 69 66  ce library..  if
2dc70 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
2dc80 22 20 3d 20 6c 69 62 3b 20 74 68 65 6e 0a 09 20  " = lib; then.. 
2dc90 20 20 20 64 65 70 6c 69 62 73 3d 22 24 64 69 72     deplibs="$dir
2dca0 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 20 24 64  /$old_library $d
2dcb0 65 70 6c 69 62 73 22 0a 09 20 20 65 6c 69 66 20  eplibs"..  elif 
2dcc0 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 2c  test "$linkmode,
2dcd0 24 70 61 73 73 22 20 3d 20 22 70 72 6f 67 2c 6c  $pass" = "prog,l
2dce0 69 6e 6b 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  ink"; then..    
2dcf0 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 3d  compile_deplibs=
2dd00 22 24 64 69 72 2f 24 6f 6c 64 5f 6c 69 62 72 61  "$dir/$old_libra
2dd10 72 79 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c  ry $compile_depl
2dd20 69 62 73 22 0a 09 20 20 20 20 66 69 6e 61 6c 69  ibs"..    finali
2dd30 7a 65 5f 64 65 70 6c 69 62 73 3d 22 24 64 69 72  ze_deplibs="$dir
2dd40 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79 20 24 66  /$old_library $f
2dd50 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 22  inalize_deplibs"
2dd60 0a 09 20 20 65 6c 73 65 0a 09 20 20 20 20 64 65  ..  else..    de
2dd70 70 6c 69 62 73 3d 22 24 6c 69 62 20 24 64 65 70  plibs="$lib $dep
2dd80 6c 69 62 73 22 20 23 20 75 73 65 64 20 66 6f 72  libs" # used for
2dd90 20 70 72 6f 67 2c 73 63 61 6e 20 70 61 73 73 0a   prog,scan pass.
2dda0 09 20 20 66 69 0a 09 20 20 63 6f 6e 74 69 6e 75  .  fi..  continu
2ddb0 65 0a 09 66 69 0a 0a 0a 09 69 66 20 74 65 73 74  e..fi....if test
2ddc0 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70   "$linkmode" = p
2ddd0 72 6f 67 20 26 26 20 74 65 73 74 20 22 24 70 61  rog && test "$pa
2dde0 73 73 22 20 21 3d 20 6c 69 6e 6b 3b 20 74 68 65  ss" != link; the
2ddf0 6e 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64  n..  func_append
2de00 20 6e 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70   newlib_search_p
2de10 61 74 68 20 22 20 24 6c 61 64 69 72 22 0a 09 20  ath " $ladir".. 
2de20 20 64 65 70 6c 69 62 73 3d 22 24 6c 69 62 20 24   deplibs="$lib $
2de30 64 65 70 6c 69 62 73 22 0a 0a 09 20 20 6c 69 6e  deplibs"...  lin
2de40 6b 61 6c 6c 64 65 70 6c 69 62 73 3d 6e 6f 0a 09  kalldeplibs=no..
2de50 20 20 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b    if test "$link
2de60 5f 61 6c 6c 5f 64 65 70 6c 69 62 73 22 20 21 3d  _all_deplibs" !=
2de70 20 6e 6f 20 7c 7c 20 74 65 73 74 20 2d 7a 20 22   no || test -z "
2de80 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 22 20  $library_names" 
2de90 7c 7c 0a 09 20 20 20 20 20 74 65 73 74 20 22 24  ||..     test "$
2dea0 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69  build_libtool_li
2deb0 62 73 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09  bs" = no; then..
2dec0 20 20 20 20 6c 69 6e 6b 61 6c 6c 64 65 70 6c 69      linkalldepli
2ded0 62 73 3d 79 65 73 0a 09 20 20 66 69 0a 0a 09 20  bs=yes..  fi... 
2dee0 20 74 6d 70 5f 6c 69 62 73 3d 0a 09 20 20 66 6f   tmp_libs=..  fo
2def0 72 20 64 65 70 6c 69 62 20 69 6e 20 24 64 65 70  r deplib in $dep
2df00 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3b 20 64 6f  endency_libs; do
2df10 0a 09 20 20 20 20 63 61 73 65 20 24 64 65 70 6c  ..    case $depl
2df20 69 62 20 69 6e 0a 09 20 20 20 20 2d 4c 2a 29 20  ib in..    -L*) 
2df30 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
2df40 2d 4c 27 20 27 27 20 22 24 64 65 70 6c 69 62 22  -L' '' "$deplib"
2df50 0a 09 20 20 20 20 20 20 20 20 20 66 75 6e 63 5f  ..         func_
2df60 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 20  resolve_sysroot 
2df70 22 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  "$func_stripname
2df80 5f 72 65 73 75 6c 74 22 0a 09 20 20 20 20 20 20  _result"..      
2df90 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e     func_append n
2dfa0 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  ewlib_search_pat
2dfb0 68 20 22 20 24 66 75 6e 63 5f 72 65 73 6f 6c 76  h " $func_resolv
2dfc0 65 5f 73 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74  e_sysroot_result
2dfd0 22 0a 09 09 20 3b 3b 0a 09 20 20 20 20 65 73 61  "... ;;..    esa
2dfe0 63 0a 09 20 20 20 20 23 20 4e 65 65 64 20 74 6f  c..    # Need to
2dff0 20 6c 69 6e 6b 20 61 67 61 69 6e 73 74 20 61 6c   link against al
2e000 6c 20 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62  l dependency_lib
2e010 73 3f 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  s?..    if test 
2e020 22 24 6c 69 6e 6b 61 6c 6c 64 65 70 6c 69 62 73  "$linkalldeplibs
2e030 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 20  " = yes; then.. 
2e040 20 20 20 20 20 64 65 70 6c 69 62 73 3d 22 24 64       deplibs="$d
2e050 65 70 6c 69 62 20 24 64 65 70 6c 69 62 73 22 0a  eplib $deplibs".
2e060 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20  .    else..     
2e070 20 23 20 4e 65 65 64 20 74 6f 20 68 61 72 64 63   # Need to hardc
2e080 6f 64 65 20 73 68 61 72 65 64 20 6c 69 62 72 61  ode shared libra
2e090 72 79 20 70 61 74 68 73 0a 09 20 20 20 20 20 20  ry paths..      
2e0a0 23 20 6f 72 2f 61 6e 64 20 6c 69 6e 6b 20 61 67  # or/and link ag
2e0b0 61 69 6e 73 74 20 73 74 61 74 69 63 20 6c 69 62  ainst static lib
2e0c0 72 61 72 69 65 73 0a 09 20 20 20 20 20 20 6e 65  raries..      ne
2e0d0 77 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73  wdependency_libs
2e0e0 3d 22 24 64 65 70 6c 69 62 20 24 6e 65 77 64 65  ="$deplib $newde
2e0f0 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09  pendency_libs"..
2e100 20 20 20 20 66 69 0a 09 20 20 20 20 69 66 20 24      fi..    if $
2e110 6f 70 74 5f 70 72 65 73 65 72 76 65 5f 64 75 70  opt_preserve_dup
2e120 5f 64 65 70 73 20 3b 20 74 68 65 6e 0a 09 20 20  _deps ; then..  
2e130 20 20 20 20 63 61 73 65 20 22 24 74 6d 70 5f 6c      case "$tmp_l
2e140 69 62 73 20 22 20 69 6e 0a 09 20 20 20 20 20 20  ibs " in..      
2e150 2a 22 20 24 64 65 70 6c 69 62 20 22 2a 29 20 66  *" $deplib "*) f
2e160 75 6e 63 5f 61 70 70 65 6e 64 20 73 70 65 63 69  unc_append speci
2e170 61 6c 64 65 70 6c 69 62 73 20 22 20 24 64 65 70  aldeplibs " $dep
2e180 6c 69 62 22 20 3b 3b 0a 09 20 20 20 20 20 20 65  lib" ;;..      e
2e190 73 61 63 0a 09 20 20 20 20 66 69 0a 09 20 20 20  sac..    fi..   
2e1a0 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 74 6d 70   func_append tmp
2e1b0 5f 6c 69 62 73 20 22 20 24 64 65 70 6c 69 62 22  _libs " $deplib"
2e1c0 0a 09 20 20 64 6f 6e 65 20 23 20 66 6f 72 20 64  ..  done # for d
2e1d0 65 70 6c 69 62 0a 09 20 20 63 6f 6e 74 69 6e 75  eplib..  continu
2e1e0 65 0a 09 66 69 20 23 20 24 6c 69 6e 6b 6d 6f 64  e..fi # $linkmod
2e1f0 65 20 3d 20 70 72 6f 67 2e 2e 2e 0a 0a 09 69 66  e = prog......if
2e200 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65   test "$linkmode
2e210 2c 24 70 61 73 73 22 20 3d 20 22 70 72 6f 67 2c  ,$pass" = "prog,
2e220 6c 69 6e 6b 22 3b 20 74 68 65 6e 0a 09 20 20 69  link"; then..  i
2e230 66 20 74 65 73 74 20 2d 6e 20 22 24 6c 69 62 72  f test -n "$libr
2e240 61 72 79 5f 6e 61 6d 65 73 22 20 26 26 0a 09 20  ary_names" &&.. 
2e250 20 20 20 20 7b 20 7b 20 74 65 73 74 20 22 24 70      { { test "$p
2e260 72 65 66 65 72 5f 73 74 61 74 69 63 5f 6c 69 62  refer_static_lib
2e270 73 22 20 3d 20 6e 6f 20 7c 7c 0a 09 20 20 20 20  s" = no ||..    
2e280 20 20 20 20 20 74 65 73 74 20 22 24 70 72 65 66       test "$pref
2e290 65 72 5f 73 74 61 74 69 63 5f 6c 69 62 73 2c 24  er_static_libs,$
2e2a0 69 6e 73 74 61 6c 6c 65 64 22 20 3d 20 22 62 75  installed" = "bu
2e2b0 69 6c 74 2c 79 65 73 22 3b 20 7d 20 7c 7c 0a 09  ilt,yes"; } ||..
2e2c0 20 20 20 20 20 20 20 74 65 73 74 20 2d 7a 20 22         test -z "
2e2d0 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 3b 20 7d  $old_library"; }
2e2e0 3b 20 74 68 65 6e 0a 09 20 20 20 20 23 20 57 65  ; then..    # We
2e2f0 20 6e 65 65 64 20 74 6f 20 68 61 72 64 63 6f 64   need to hardcod
2e300 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 70 61  e the library pa
2e310 74 68 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  th..    if test 
2e320 2d 6e 20 22 24 73 68 6c 69 62 70 61 74 68 5f 76  -n "$shlibpath_v
2e330 61 72 22 20 26 26 20 74 65 73 74 20 2d 7a 20 22  ar" && test -z "
2e340 24 61 76 6f 69 64 74 65 6d 70 72 70 61 74 68 22  $avoidtemprpath"
2e350 20 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20 23   ; then..      #
2e360 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 72   Make sure the r
2e370 70 61 74 68 20 63 6f 6e 74 61 69 6e 73 20 6f 6e  path contains on
2e380 6c 79 20 75 6e 69 71 75 65 20 64 69 72 65 63 74  ly unique direct
2e390 6f 72 69 65 73 2e 0a 09 20 20 20 20 20 20 63 61  ories...      ca
2e3a0 73 65 20 22 24 74 65 6d 70 5f 72 70 61 74 68 3a  se "$temp_rpath:
2e3b0 22 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 24 61  " in..      *"$a
2e3c0 62 73 64 69 72 3a 22 2a 29 20 3b 3b 0a 09 20 20  bsdir:"*) ;;..  
2e3d0 20 20 20 20 2a 29 20 66 75 6e 63 5f 61 70 70 65      *) func_appe
2e3e0 6e 64 20 74 65 6d 70 5f 72 70 61 74 68 20 22 24  nd temp_rpath "$
2e3f0 61 62 73 64 69 72 3a 22 20 3b 3b 0a 09 20 20 20  absdir:" ;;..   
2e400 20 20 20 65 73 61 63 0a 09 20 20 20 20 66 69 0a     esac..    fi.
2e410 0a 09 20 20 20 20 23 20 48 61 72 64 63 6f 64 65  ..    # Hardcode
2e420 20 74 68 65 20 6c 69 62 72 61 72 79 20 70 61 74   the library pat
2e430 68 2e 0a 09 20 20 20 20 23 20 53 6b 69 70 20 64  h...    # Skip d
2e440 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20  irectories that 
2e450 61 72 65 20 69 6e 20 74 68 65 20 73 79 73 74 65  are in the syste
2e460 6d 20 64 65 66 61 75 6c 74 20 72 75 6e 2d 74 69  m default run-ti
2e470 6d 65 0a 09 20 20 20 20 23 20 73 65 61 72 63 68  me..    # search
2e480 20 70 61 74 68 2e 0a 09 20 20 20 20 63 61 73 65   path...    case
2e490 20 22 20 24 73 79 73 5f 6c 69 62 5f 64 6c 73 65   " $sys_lib_dlse
2e4a0 61 72 63 68 5f 70 61 74 68 20 22 20 69 6e 0a 09  arch_path " in..
2e4b0 20 20 20 20 2a 22 20 24 61 62 73 64 69 72 20 22      *" $absdir "
2e4c0 2a 29 20 3b 3b 0a 09 20 20 20 20 2a 29 0a 09 20  *) ;;..    *).. 
2e4d0 20 20 20 20 20 63 61 73 65 20 22 24 63 6f 6d 70       case "$comp
2e4e0 69 6c 65 5f 72 70 61 74 68 20 22 20 69 6e 0a 09  ile_rpath " in..
2e4f0 20 20 20 20 20 20 2a 22 20 24 61 62 73 64 69 72        *" $absdir
2e500 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20 20 20 2a   "*) ;;..      *
2e510 29 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63 6f  ) func_append co
2e520 6d 70 69 6c 65 5f 72 70 61 74 68 20 22 20 24 61  mpile_rpath " $a
2e530 62 73 64 69 72 22 20 3b 3b 0a 09 20 20 20 20 20  bsdir" ;;..     
2e540 20 65 73 61 63 0a 09 20 20 20 20 20 20 3b 3b 0a   esac..      ;;.
2e550 09 20 20 20 20 65 73 61 63 0a 09 20 20 20 20 63  .    esac..    c
2e560 61 73 65 20 22 20 24 73 79 73 5f 6c 69 62 5f 64  ase " $sys_lib_d
2e570 6c 73 65 61 72 63 68 5f 70 61 74 68 20 22 20 69  lsearch_path " i
2e580 6e 0a 09 20 20 20 20 2a 22 20 24 6c 69 62 64 69  n..    *" $libdi
2e590 72 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20 2a 29  r "*) ;;..    *)
2e5a0 0a 09 20 20 20 20 20 20 63 61 73 65 20 22 24 66  ..      case "$f
2e5b0 69 6e 61 6c 69 7a 65 5f 72 70 61 74 68 20 22 20  inalize_rpath " 
2e5c0 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24 6c 69  in..      *" $li
2e5d0 62 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20 20  bdir "*) ;;..   
2e5e0 20 20 20 2a 29 20 66 75 6e 63 5f 61 70 70 65 6e     *) func_appen
2e5f0 64 20 66 69 6e 61 6c 69 7a 65 5f 72 70 61 74 68  d finalize_rpath
2e600 20 22 20 24 6c 69 62 64 69 72 22 20 3b 3b 0a 09   " $libdir" ;;..
2e610 20 20 20 20 20 20 65 73 61 63 0a 09 20 20 20 20        esac..    
2e620 20 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09    ;;..    esac..
2e630 20 20 66 69 20 23 20 24 6c 69 6e 6b 6d 6f 64 65    fi # $linkmode
2e640 2c 24 70 61 73 73 20 3d 20 70 72 6f 67 2c 6c 69  ,$pass = prog,li
2e650 6e 6b 2e 2e 2e 0a 0a 09 20 20 69 66 20 74 65 73  nk......  if tes
2e660 74 20 22 24 61 6c 6c 64 65 70 6c 69 62 73 22 20  t "$alldeplibs" 
2e670 3d 20 79 65 73 20 26 26 0a 09 20 20 20 20 20 7b  = yes &&..     {
2e680 20 74 65 73 74 20 22 24 64 65 70 6c 69 62 73 5f   test "$deplibs_
2e690 63 68 65 63 6b 5f 6d 65 74 68 6f 64 22 20 3d 20  check_method" = 
2e6a0 70 61 73 73 5f 61 6c 6c 20 7c 7c 0a 09 20 20 20  pass_all ||..   
2e6b0 20 20 20 20 7b 20 74 65 73 74 20 22 24 62 75 69      { test "$bui
2e6c0 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 22  ld_libtool_libs"
2e6d0 20 3d 20 79 65 73 20 26 26 0a 09 09 20 74 65 73   = yes &&... tes
2e6e0 74 20 2d 6e 20 22 24 6c 69 62 72 61 72 79 5f 6e  t -n "$library_n
2e6f0 61 6d 65 73 22 3b 20 7d 3b 20 7d 3b 20 74 68 65  ames"; }; }; the
2e700 6e 0a 09 20 20 20 20 23 20 57 65 20 6f 6e 6c 79  n..    # We only
2e710 20 6e 65 65 64 20 74 6f 20 73 65 61 72 63 68 20   need to search 
2e720 66 6f 72 20 73 74 61 74 69 63 20 6c 69 62 72 61  for static libra
2e730 72 69 65 73 0a 09 20 20 20 20 63 6f 6e 74 69 6e  ries..    contin
2e740 75 65 0a 09 20 20 66 69 0a 09 66 69 0a 0a 09 6c  ue..  fi..fi...l
2e750 69 6e 6b 5f 73 74 61 74 69 63 3d 6e 6f 20 23 20  ink_static=no # 
2e760 57 68 65 74 68 65 72 20 74 68 65 20 64 65 70 6c  Whether the depl
2e770 69 62 20 77 69 6c 6c 20 62 65 20 6c 69 6e 6b 65  ib will be linke
2e780 64 20 73 74 61 74 69 63 61 6c 6c 79 0a 09 75 73  d statically..us
2e790 65 5f 73 74 61 74 69 63 5f 6c 69 62 73 3d 24 70  e_static_libs=$p
2e7a0 72 65 66 65 72 5f 73 74 61 74 69 63 5f 6c 69 62  refer_static_lib
2e7b0 73 0a 09 69 66 20 74 65 73 74 20 22 24 75 73 65  s..if test "$use
2e7c0 5f 73 74 61 74 69 63 5f 6c 69 62 73 22 20 3d 20  _static_libs" = 
2e7d0 62 75 69 6c 74 20 26 26 20 74 65 73 74 20 22 24  built && test "$
2e7e0 69 6e 73 74 61 6c 6c 65 64 22 20 3d 20 79 65 73  installed" = yes
2e7f0 3b 20 74 68 65 6e 0a 09 20 20 75 73 65 5f 73 74  ; then..  use_st
2e800 61 74 69 63 5f 6c 69 62 73 3d 6e 6f 0a 09 66 69  atic_libs=no..fi
2e810 0a 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 6c  ..if test -n "$l
2e820 69 62 72 61 72 79 5f 6e 61 6d 65 73 22 20 26 26  ibrary_names" &&
2e830 0a 09 20 20 20 7b 20 74 65 73 74 20 22 24 75 73  ..   { test "$us
2e840 65 5f 73 74 61 74 69 63 5f 6c 69 62 73 22 20 3d  e_static_libs" =
2e850 20 6e 6f 20 7c 7c 20 74 65 73 74 20 2d 7a 20 22   no || test -z "
2e860 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22 3b 20 7d  $old_library"; }
2e870 3b 20 74 68 65 6e 0a 09 20 20 63 61 73 65 20 24  ; then..  case $
2e880 68 6f 73 74 20 69 6e 0a 09 20 20 2a 63 79 67 77  host in..  *cygw
2e890 69 6e 2a 20 7c 20 2a 6d 69 6e 67 77 2a 20 7c 20  in* | *mingw* | 
2e8a0 2a 63 65 67 63 63 2a 29 0a 09 20 20 20 20 20 20  *cegcc*)..      
2e8b0 23 20 4e 6f 20 70 6f 69 6e 74 20 69 6e 20 72 65  # No point in re
2e8c0 6c 69 6e 6b 69 6e 67 20 44 4c 4c 73 20 62 65 63  linking DLLs bec
2e8d0 61 75 73 65 20 70 61 74 68 73 20 61 72 65 20 6e  ause paths are n
2e8e0 6f 74 20 65 6e 63 6f 64 65 64 0a 09 20 20 20 20  ot encoded..    
2e8f0 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 6f    func_append no
2e900 74 69 6e 73 74 5f 64 65 70 6c 69 62 73 20 22 20  tinst_deplibs " 
2e910 24 6c 69 62 22 0a 09 20 20 20 20 20 20 6e 65 65  $lib"..      nee
2e920 64 5f 72 65 6c 69 6e 6b 3d 6e 6f 0a 09 20 20 20  d_relink=no..   
2e930 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20 20 20 69   ;;..  *)..    i
2e940 66 20 74 65 73 74 20 22 24 69 6e 73 74 61 6c 6c  f test "$install
2e950 65 64 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09  ed" = no; then..
2e960 20 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e        func_appen
2e970 64 20 6e 6f 74 69 6e 73 74 5f 64 65 70 6c 69 62  d notinst_deplib
2e980 73 20 22 20 24 6c 69 62 22 0a 09 20 20 20 20 20  s " $lib"..     
2e990 20 6e 65 65 64 5f 72 65 6c 69 6e 6b 3d 79 65 73   need_relink=yes
2e9a0 0a 09 20 20 20 20 66 69 0a 09 20 20 20 20 3b 3b  ..    fi..    ;;
2e9b0 0a 09 20 20 65 73 61 63 0a 09 20 20 23 20 54 68  ..  esac..  # Th
2e9c0 69 73 20 69 73 20 61 20 73 68 61 72 65 64 20 6c  is is a shared l
2e9d0 69 62 72 61 72 79 0a 0a 09 20 20 23 20 57 61 72  ibrary...  # War
2e9e0 6e 20 61 62 6f 75 74 20 70 6f 72 74 61 62 69 6c  n about portabil
2e9f0 69 74 79 2c 20 63 61 6e 27 74 20 6c 69 6e 6b 20  ity, can't link 
2ea00 61 67 61 69 6e 73 74 20 2d 6d 6f 64 75 6c 65 27  against -module'
2ea10 73 20 6f 6e 20 73 6f 6d 65 0a 09 20 20 23 20 73  s on some..  # s
2ea20 79 73 74 65 6d 73 20 28 64 61 72 77 69 6e 29 2e  ystems (darwin).
2ea30 20 20 44 6f 6e 27 74 20 62 6c 65 61 74 20 61 62    Don't bleat ab
2ea40 6f 75 74 20 64 6c 6f 70 65 6e 65 64 20 6d 6f 64  out dlopened mod
2ea50 75 6c 65 73 20 74 68 6f 75 67 68 21 0a 09 20 20  ules though!..  
2ea60 64 6c 6f 70 65 6e 6d 6f 64 75 6c 65 3d 22 22 0a  dlopenmodule="".
2ea70 09 20 20 66 6f 72 20 64 6c 70 72 65 6d 6f 64 75  .  for dlpremodu
2ea80 6c 65 74 65 73 74 20 69 6e 20 24 64 6c 70 72 65  letest in $dlpre
2ea90 66 69 6c 65 73 3b 20 64 6f 0a 09 20 20 20 20 69  files; do..    i
2eaa0 66 20 74 65 73 74 20 22 58 24 64 6c 70 72 65 6d  f test "X$dlprem
2eab0 6f 64 75 6c 65 74 65 73 74 22 20 3d 20 22 58 24  oduletest" = "X$
2eac0 6c 69 62 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  lib"; then..    
2ead0 20 20 64 6c 6f 70 65 6e 6d 6f 64 75 6c 65 3d 22    dlopenmodule="
2eae0 24 64 6c 70 72 65 6d 6f 64 75 6c 65 74 65 73 74  $dlpremoduletest
2eaf0 22 0a 09 20 20 20 20 20 20 62 72 65 61 6b 0a 09  "..      break..
2eb00 20 20 20 20 66 69 0a 09 20 20 64 6f 6e 65 0a 09      fi..  done..
2eb10 20 20 69 66 20 74 65 73 74 20 2d 7a 20 22 24 64    if test -z "$d
2eb20 6c 6f 70 65 6e 6d 6f 64 75 6c 65 22 20 26 26 20  lopenmodule" && 
2eb30 74 65 73 74 20 22 24 73 68 6f 75 6c 64 6e 6f 74  test "$shouldnot
2eb40 6c 69 6e 6b 22 20 3d 20 79 65 73 20 26 26 20 74  link" = yes && t
2eb50 65 73 74 20 22 24 70 61 73 73 22 20 3d 20 6c 69  est "$pass" = li
2eb60 6e 6b 3b 20 74 68 65 6e 0a 09 20 20 20 20 65 63  nk; then..    ec
2eb70 68 6f 0a 09 20 20 20 20 69 66 20 74 65 73 74 20  ho..    if test 
2eb80 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72  "$linkmode" = pr
2eb90 6f 67 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  og; then..      
2eba0 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61 72 6e 69  $ECHO "*** Warni
2ebb0 6e 67 3a 20 4c 69 6e 6b 69 6e 67 20 74 68 65 20  ng: Linking the 
2ebc0 65 78 65 63 75 74 61 62 6c 65 20 24 6f 75 74 70  executable $outp
2ebd0 75 74 20 61 67 61 69 6e 73 74 20 74 68 65 20 6c  ut against the l
2ebe0 6f 61 64 61 62 6c 65 20 6d 6f 64 75 6c 65 22 0a  oadable module".
2ebf0 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20  .    else..     
2ec00 20 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61 72 6e   $ECHO "*** Warn
2ec10 69 6e 67 3a 20 4c 69 6e 6b 69 6e 67 20 74 68 65  ing: Linking the
2ec20 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 20   shared library 
2ec30 24 6f 75 74 70 75 74 20 61 67 61 69 6e 73 74 20  $output against 
2ec40 74 68 65 20 6c 6f 61 64 61 62 6c 65 20 6d 6f 64  the loadable mod
2ec50 75 6c 65 22 0a 09 20 20 20 20 66 69 0a 09 20 20  ule"..    fi..  
2ec60 20 20 24 45 43 48 4f 20 22 2a 2a 2a 20 24 6c 69    $ECHO "*** $li
2ec70 6e 6b 6c 69 62 20 69 73 20 6e 6f 74 20 70 6f 72  nklib is not por
2ec80 74 61 62 6c 65 21 22 0a 09 20 20 66 69 0a 09 20  table!"..  fi.. 
2ec90 20 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d   if test "$linkm
2eca0 6f 64 65 22 20 3d 20 6c 69 62 20 26 26 0a 09 20  ode" = lib &&.. 
2ecb0 20 20 20 20 74 65 73 74 20 22 24 68 61 72 64 63      test "$hardc
2ecc0 6f 64 65 5f 69 6e 74 6f 5f 6c 69 62 73 22 20 3d  ode_into_libs" =
2ecd0 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20   yes; then..    
2ece0 23 20 48 61 72 64 63 6f 64 65 20 74 68 65 20 6c  # Hardcode the l
2ecf0 69 62 72 61 72 79 20 70 61 74 68 2e 0a 09 20 20  ibrary path...  
2ed00 20 20 23 20 53 6b 69 70 20 64 69 72 65 63 74 6f    # Skip directo
2ed10 72 69 65 73 20 74 68 61 74 20 61 72 65 20 69 6e  ries that are in
2ed20 20 74 68 65 20 73 79 73 74 65 6d 20 64 65 66 61   the system defa
2ed30 75 6c 74 20 72 75 6e 2d 74 69 6d 65 0a 09 20 20  ult run-time..  
2ed40 20 20 23 20 73 65 61 72 63 68 20 70 61 74 68 2e    # search path.
2ed50 0a 09 20 20 20 20 63 61 73 65 20 22 20 24 73 79  ..    case " $sy
2ed60 73 5f 6c 69 62 5f 64 6c 73 65 61 72 63 68 5f 70  s_lib_dlsearch_p
2ed70 61 74 68 20 22 20 69 6e 0a 09 20 20 20 20 2a 22  ath " in..    *"
2ed80 20 24 61 62 73 64 69 72 20 22 2a 29 20 3b 3b 0a   $absdir "*) ;;.
2ed90 09 20 20 20 20 2a 29 0a 09 20 20 20 20 20 20 63  .    *)..      c
2eda0 61 73 65 20 22 24 63 6f 6d 70 69 6c 65 5f 72 70  ase "$compile_rp
2edb0 61 74 68 20 22 20 69 6e 0a 09 20 20 20 20 20 20  ath " in..      
2edc0 2a 22 20 24 61 62 73 64 69 72 20 22 2a 29 20 3b  *" $absdir "*) ;
2edd0 3b 0a 09 20 20 20 20 20 20 2a 29 20 66 75 6e 63  ;..      *) func
2ede0 5f 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f  _append compile_
2edf0 72 70 61 74 68 20 22 20 24 61 62 73 64 69 72 22  rpath " $absdir"
2ee00 20 3b 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a   ;;..      esac.
2ee10 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 65  .      ;;..    e
2ee20 73 61 63 0a 09 20 20 20 20 63 61 73 65 20 22 20  sac..    case " 
2ee30 24 73 79 73 5f 6c 69 62 5f 64 6c 73 65 61 72 63  $sys_lib_dlsearc
2ee40 68 5f 70 61 74 68 20 22 20 69 6e 0a 09 20 20 20  h_path " in..   
2ee50 20 2a 22 20 24 6c 69 62 64 69 72 20 22 2a 29 20   *" $libdir "*) 
2ee60 3b 3b 0a 09 20 20 20 20 2a 29 0a 09 20 20 20 20  ;;..    *)..    
2ee70 20 20 63 61 73 65 20 22 24 66 69 6e 61 6c 69 7a    case "$finaliz
2ee80 65 5f 72 70 61 74 68 20 22 20 69 6e 0a 09 20 20  e_rpath " in..  
2ee90 20 20 20 20 2a 22 20 24 6c 69 62 64 69 72 20 22      *" $libdir "
2eea0 2a 29 20 3b 3b 0a 09 20 20 20 20 20 20 2a 29 20  *) ;;..      *) 
2eeb0 66 75 6e 63 5f 61 70 70 65 6e 64 20 66 69 6e 61  func_append fina
2eec0 6c 69 7a 65 5f 72 70 61 74 68 20 22 20 24 6c 69  lize_rpath " $li
2eed0 62 64 69 72 22 20 3b 3b 0a 09 20 20 20 20 20 20  bdir" ;;..      
2eee0 65 73 61 63 0a 09 20 20 20 20 20 20 3b 3b 0a 09  esac..      ;;..
2eef0 20 20 20 20 65 73 61 63 0a 09 20 20 66 69 0a 0a      esac..  fi..
2ef00 09 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24  .  if test -n "$
2ef10 6f 6c 64 5f 61 72 63 68 69 76 65 5f 66 72 6f 6d  old_archive_from
2ef20 5f 65 78 70 73 79 6d 73 5f 63 6d 64 73 22 3b 20  _expsyms_cmds"; 
2ef30 74 68 65 6e 0a 09 20 20 20 20 23 20 66 69 67 75  then..    # figu
2ef40 72 65 20 6f 75 74 20 74 68 65 20 73 6f 6e 61 6d  re out the sonam
2ef50 65 0a 09 20 20 20 20 73 65 74 20 64 75 6d 6d 79  e..    set dummy
2ef60 20 24 6c 69 62 72 61 72 79 5f 6e 61 6d 65 73 0a   $library_names.
2ef70 09 20 20 20 20 73 68 69 66 74 0a 09 20 20 20 20  .    shift..    
2ef80 72 65 61 6c 6e 61 6d 65 3d 22 24 31 22 0a 09 20  realname="$1".. 
2ef90 20 20 20 73 68 69 66 74 0a 09 20 20 20 20 6c 69     shift..    li
2efa0 62 6e 61 6d 65 3d 60 65 76 61 6c 20 22 5c 5c 24  bname=`eval "\\$
2efb0 45 43 48 4f 20 5c 22 24 6c 69 62 6e 61 6d 65 5f  ECHO \"$libname_
2efc0 73 70 65 63 5c 22 22 60 0a 09 20 20 20 20 23 20  spec\""`..    # 
2efd0 75 73 65 20 64 6c 6e 61 6d 65 20 69 66 20 77 65  use dlname if we
2efe0 20 67 6f 74 20 69 74 2e 20 69 74 27 73 20 70 65   got it. it's pe
2eff0 72 66 65 63 74 6c 79 20 67 6f 6f 64 2c 20 6e 6f  rfectly good, no
2f000 3f 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 2d  ?..    if test -
2f010 6e 20 22 24 64 6c 6e 61 6d 65 22 3b 20 74 68 65  n "$dlname"; the
2f020 6e 0a 09 20 20 20 20 20 20 73 6f 6e 61 6d 65 3d  n..      soname=
2f030 22 24 64 6c 6e 61 6d 65 22 0a 09 20 20 20 20 65  "$dlname"..    e
2f040 6c 69 66 20 74 65 73 74 20 2d 6e 20 22 24 73 6f  lif test -n "$so
2f050 6e 61 6d 65 5f 73 70 65 63 22 3b 20 74 68 65 6e  name_spec"; then
2f060 0a 09 20 20 20 20 20 20 23 20 62 6c 65 68 20 77  ..      # bleh w
2f070 69 6e 64 6f 77 73 0a 09 20 20 20 20 20 20 63 61  indows..      ca
2f080 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20 20 20  se $host in..   
2f090 20 20 20 2a 63 79 67 77 69 6e 2a 20 7c 20 6d 69     *cygwin* | mi
2f0a0 6e 67 77 2a 20 7c 20 2a 63 65 67 63 63 2a 29 0a  ngw* | *cegcc*).
2f0b0 09 20 20 20 20 20 20 20 20 66 75 6e 63 5f 61 72  .        func_ar
2f0c0 69 74 68 20 24 63 75 72 72 65 6e 74 20 2d 20 24  ith $current - $
2f0d0 61 67 65 0a 09 09 6d 61 6a 6f 72 3d 24 66 75 6e  age...major=$fun
2f0e0 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a 09  c_arith_result..
2f0f0 09 76 65 72 73 75 66 66 69 78 3d 22 2d 24 6d 61  .versuffix="-$ma
2f100 6a 6f 72 22 0a 09 09 3b 3b 0a 09 20 20 20 20 20  jor"...;;..     
2f110 20 65 73 61 63 0a 09 20 20 20 20 20 20 65 76 61   esac..      eva
2f120 6c 20 73 6f 6e 61 6d 65 3d 5c 22 24 73 6f 6e 61  l soname=\"$sona
2f130 6d 65 5f 73 70 65 63 5c 22 0a 09 20 20 20 20 65  me_spec\"..    e
2f140 6c 73 65 0a 09 20 20 20 20 20 20 73 6f 6e 61 6d  lse..      sonam
2f150 65 3d 22 24 72 65 61 6c 6e 61 6d 65 22 0a 09 20  e="$realname".. 
2f160 20 20 20 66 69 0a 0a 09 20 20 20 20 23 20 4d 61     fi...    # Ma
2f170 6b 65 20 61 20 6e 65 77 20 6e 61 6d 65 20 66 6f  ke a new name fo
2f180 72 20 74 68 65 20 65 78 74 72 61 63 74 5f 65 78  r the extract_ex
2f190 70 73 79 6d 73 5f 63 6d 64 73 20 74 6f 20 75 73  psyms_cmds to us
2f1a0 65 0a 09 20 20 20 20 73 6f 72 6f 6f 74 3d 22 24  e..    soroot="$
2f1b0 73 6f 6e 61 6d 65 22 0a 09 20 20 20 20 66 75 6e  soname"..    fun
2f1c0 63 5f 62 61 73 65 6e 61 6d 65 20 22 24 73 6f 72  c_basename "$sor
2f1d0 6f 6f 74 22 0a 09 20 20 20 20 73 6f 6e 61 6d 65  oot"..    soname
2f1e0 3d 22 24 66 75 6e 63 5f 62 61 73 65 6e 61 6d 65  ="$func_basename
2f1f0 5f 72 65 73 75 6c 74 22 0a 09 20 20 20 20 66 75  _result"..    fu
2f200 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27 6c 69  nc_stripname 'li
2f210 62 27 20 27 2e 64 6c 6c 27 20 22 24 73 6f 6e 61  b' '.dll' "$sona
2f220 6d 65 22 0a 09 20 20 20 20 6e 65 77 6c 69 62 3d  me"..    newlib=
2f230 6c 69 62 69 6d 70 2d 24 66 75 6e 63 5f 73 74 72  libimp-$func_str
2f240 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 2e 61 0a  ipname_result.a.
2f250 0a 09 20 20 20 20 23 20 49 66 20 74 68 65 20 6c  ..    # If the l
2f260 69 62 72 61 72 79 20 68 61 73 20 6e 6f 20 65 78  ibrary has no ex
2f270 70 6f 72 74 20 6c 69 73 74 2c 20 74 68 65 6e 20  port list, then 
2f280 63 72 65 61 74 65 20 6f 6e 65 20 6e 6f 77 0a 09  create one now..
2f290 20 20 20 20 69 66 20 74 65 73 74 20 2d 66 20 22      if test -f "
2f2a0 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24  $output_objdir/$
2f2b0 73 6f 6e 61 6d 65 2d 64 65 66 22 3b 20 74 68 65  soname-def"; the
2f2c0 6e 20 3a 0a 09 20 20 20 20 65 6c 73 65 0a 09 20  n :..    else.. 
2f2d0 20 20 20 20 20 66 75 6e 63 5f 76 65 72 62 6f 73       func_verbos
2f2e0 65 20 22 65 78 74 72 61 63 74 69 6e 67 20 65 78  e "extracting ex
2f2f0 70 6f 72 74 65 64 20 73 79 6d 62 6f 6c 20 6c 69  ported symbol li
2f300 73 74 20 66 72 6f 6d 20 5c 60 24 73 6f 6e 61 6d  st from \`$sonam
2f310 65 27 22 0a 09 20 20 20 20 20 20 66 75 6e 63 5f  e'"..      func_
2f320 65 78 65 63 75 74 65 5f 63 6d 64 73 20 22 24 65  execute_cmds "$e
2f330 78 74 72 61 63 74 5f 65 78 70 73 79 6d 73 5f 63  xtract_expsyms_c
2f340 6d 64 73 22 20 27 65 78 69 74 20 24 3f 27 0a 09  mds" 'exit $?'..
2f350 20 20 20 20 66 69 0a 0a 09 20 20 20 20 23 20 43      fi...    # C
2f360 72 65 61 74 65 20 24 6e 65 77 6c 69 62 0a 09 20  reate $newlib.. 
2f370 20 20 20 69 66 20 74 65 73 74 20 2d 66 20 22 24     if test -f "$
2f380 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6e  output_objdir/$n
2f390 65 77 6c 69 62 22 3b 20 74 68 65 6e 20 3a 3b 20  ewlib"; then :; 
2f3a0 65 6c 73 65 0a 09 20 20 20 20 20 20 66 75 6e 63  else..      func
2f3b0 5f 76 65 72 62 6f 73 65 20 22 67 65 6e 65 72 61  _verbose "genera
2f3c0 74 69 6e 67 20 69 6d 70 6f 72 74 20 6c 69 62 72  ting import libr
2f3d0 61 72 79 20 66 6f 72 20 5c 60 24 73 6f 6e 61 6d  ary for \`$sonam
2f3e0 65 27 22 0a 09 20 20 20 20 20 20 66 75 6e 63 5f  e'"..      func_
2f3f0 65 78 65 63 75 74 65 5f 63 6d 64 73 20 22 24 6f  execute_cmds "$o
2f400 6c 64 5f 61 72 63 68 69 76 65 5f 66 72 6f 6d 5f  ld_archive_from_
2f410 65 78 70 73 79 6d 73 5f 63 6d 64 73 22 20 27 65  expsyms_cmds" 'e
2f420 78 69 74 20 24 3f 27 0a 09 20 20 20 20 66 69 0a  xit $?'..    fi.
2f430 09 20 20 20 20 23 20 6d 61 6b 65 20 73 75 72 65  .    # make sure
2f440 20 74 68 65 20 6c 69 62 72 61 72 79 20 76 61 72   the library var
2f450 69 61 62 6c 65 73 20 61 72 65 20 70 6f 69 6e 74  iables are point
2f460 69 6e 67 20 74 6f 20 74 68 65 20 6e 65 77 20 6c  ing to the new l
2f470 69 62 72 61 72 79 0a 09 20 20 20 20 64 69 72 3d  ibrary..    dir=
2f480 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 0a 09  $output_objdir..
2f490 20 20 20 20 6c 69 6e 6b 6c 69 62 3d 24 6e 65 77      linklib=$new
2f4a0 6c 69 62 0a 09 20 20 66 69 20 23 20 74 65 73 74  lib..  fi # test
2f4b0 20 2d 6e 20 22 24 6f 6c 64 5f 61 72 63 68 69 76   -n "$old_archiv
2f4c0 65 5f 66 72 6f 6d 5f 65 78 70 73 79 6d 73 5f 63  e_from_expsyms_c
2f4d0 6d 64 73 22 0a 0a 09 20 20 69 66 20 74 65 73 74  mds"...  if test
2f4e0 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70   "$linkmode" = p
2f4f0 72 6f 67 20 7c 7c 20 74 65 73 74 20 22 24 6f 70  rog || test "$op
2f500 74 5f 6d 6f 64 65 22 20 21 3d 20 72 65 6c 69 6e  t_mode" != relin
2f510 6b 3b 20 74 68 65 6e 0a 09 20 20 20 20 61 64 64  k; then..    add
2f520 5f 73 68 6c 69 62 70 61 74 68 3d 0a 09 20 20 20  _shlibpath=..   
2f530 20 61 64 64 5f 64 69 72 3d 0a 09 20 20 20 20 61   add_dir=..    a
2f540 64 64 3d 0a 09 20 20 20 20 6c 69 62 5f 6c 69 6e  dd=..    lib_lin
2f550 6b 65 64 3d 79 65 73 0a 09 20 20 20 20 63 61 73  ked=yes..    cas
2f560 65 20 24 68 61 72 64 63 6f 64 65 5f 61 63 74 69  e $hardcode_acti
2f570 6f 6e 20 69 6e 0a 09 20 20 20 20 69 6d 6d 65 64  on in..    immed
2f580 69 61 74 65 20 7c 20 75 6e 73 75 70 70 6f 72 74  iate | unsupport
2f590 65 64 29 0a 09 20 20 20 20 20 20 69 66 20 74 65  ed)..      if te
2f5a0 73 74 20 22 24 68 61 72 64 63 6f 64 65 5f 64 69  st "$hardcode_di
2f5b0 72 65 63 74 22 20 3d 20 6e 6f 3b 20 74 68 65 6e  rect" = no; then
2f5c0 0a 09 09 61 64 64 3d 22 24 64 69 72 2f 24 6c 69  ...add="$dir/$li
2f5d0 6e 6b 6c 69 62 22 0a 09 09 63 61 73 65 20 24 68  nklib"...case $h
2f5e0 6f 73 74 20 69 6e 0a 09 09 20 20 2a 2d 2a 2d 73  ost in...  *-*-s
2f5f0 63 6f 33 2e 32 76 35 2e 30 2e 5b 30 32 34 5d 2a  co3.2v5.0.[024]*
2f600 29 20 61 64 64 5f 64 69 72 3d 22 2d 4c 24 64 69  ) add_dir="-L$di
2f610 72 22 20 3b 3b 0a 09 09 20 20 2a 2d 2a 2d 73 79  r" ;;...  *-*-sy
2f620 73 76 34 2a 75 77 32 2a 29 20 61 64 64 5f 64 69  sv4*uw2*) add_di
2f630 72 3d 22 2d 4c 24 64 69 72 22 20 3b 3b 0a 09 09  r="-L$dir" ;;...
2f640 20 20 2a 2d 2a 2d 73 79 73 76 35 4f 70 65 6e 55    *-*-sysv5OpenU
2f650 4e 49 58 2a 20 7c 20 2a 2d 2a 2d 73 79 73 76 35  NIX* | *-*-sysv5
2f660 55 6e 69 78 57 61 72 65 37 2e 5b 30 31 5d 2e 5b  UnixWare7.[01].[
2f670 31 30 5d 2a 20 7c 20 5c 0a 09 09 20 20 20 20 2a  10]* | \...    *
2f680 2d 2a 2d 75 6e 69 78 77 61 72 65 37 2a 29 20 61  -*-unixware7*) a
2f690 64 64 5f 64 69 72 3d 22 2d 4c 24 64 69 72 22 20  dd_dir="-L$dir" 
2f6a0 3b 3b 0a 09 09 20 20 2a 2d 2a 2d 64 61 72 77 69  ;;...  *-*-darwi
2f6b0 6e 2a 20 29 0a 09 09 20 20 20 20 23 20 69 66 20  n* )...    # if 
2f6c0 74 68 65 20 6c 69 62 20 69 73 20 61 20 28 6e 6f  the lib is a (no
2f6d0 6e 2d 64 6c 6f 70 65 6e 65 64 29 20 6d 6f 64 75  n-dlopened) modu
2f6e0 6c 65 20 74 68 65 6e 20 77 65 20 63 61 6e 20 6e  le then we can n
2f6f0 6f 74 0a 09 09 20 20 20 20 23 20 6c 69 6e 6b 20  ot...    # link 
2f700 61 67 61 69 6e 73 74 20 69 74 2c 20 73 6f 6d 65  against it, some
2f710 6f 6e 65 20 69 73 20 69 67 6e 6f 72 69 6e 67 20  one is ignoring 
2f720 74 68 65 20 65 61 72 6c 69 65 72 20 77 61 72 6e  the earlier warn
2f730 69 6e 67 73 0a 09 09 20 20 20 20 69 66 20 2f 75  ings...    if /u
2f740 73 72 2f 62 69 6e 2f 66 69 6c 65 20 2d 4c 20 24  sr/bin/file -L $
2f750 61 64 64 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c  add 2> /dev/null
2f760 20 7c 0a 09 09 09 20 24 47 52 45 50 20 22 3a 20   |.... $GREP ": 
2f770 5b 5e 3a 5d 2a 20 62 75 6e 64 6c 65 22 20 3e 2f  [^:]* bundle" >/
2f780 64 65 76 2f 6e 75 6c 6c 20 3b 20 74 68 65 6e 0a  dev/null ; then.
2f790 09 09 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
2f7a0 22 58 24 64 6c 6f 70 65 6e 6d 6f 64 75 6c 65 22  "X$dlopenmodule"
2f7b0 20 21 3d 20 22 58 24 6c 69 62 22 3b 20 74 68 65   != "X$lib"; the
2f7c0 6e 0a 09 09 09 24 45 43 48 4f 20 22 2a 2a 2a 20  n....$ECHO "*** 
2f7d0 57 61 72 6e 69 6e 67 3a 20 6c 69 62 20 24 6c 69  Warning: lib $li
2f7e0 6e 6b 6c 69 62 20 69 73 20 61 20 6d 6f 64 75 6c  nklib is a modul
2f7f0 65 2c 20 6e 6f 74 20 61 20 73 68 61 72 65 64 20  e, not a shared 
2f800 6c 69 62 72 61 72 79 22 0a 09 09 09 69 66 20 74  library"....if t
2f810 65 73 74 20 2d 7a 20 22 24 6f 6c 64 5f 6c 69 62  est -z "$old_lib
2f820 72 61 72 79 22 20 3b 20 74 68 65 6e 0a 09 09 09  rary" ; then....
2f830 20 20 65 63 68 6f 0a 09 09 09 20 20 65 63 68 6f    echo....  echo
2f840 20 22 2a 2a 2a 20 41 6e 64 20 74 68 65 72 65 20   "*** And there 
2f850 64 6f 65 73 6e 27 74 20 73 65 65 6d 20 74 6f 20  doesn't seem to 
2f860 62 65 20 61 20 73 74 61 74 69 63 20 61 72 63 68  be a static arch
2f870 69 76 65 20 61 76 61 69 6c 61 62 6c 65 22 0a 09  ive available"..
2f880 09 09 20 20 65 63 68 6f 20 22 2a 2a 2a 20 54 68  ..  echo "*** Th
2f890 65 20 6c 69 6e 6b 20 77 69 6c 6c 20 70 72 6f 62  e link will prob
2f8a0 61 62 6c 79 20 66 61 69 6c 2c 20 73 6f 72 72 79  ably fail, sorry
2f8b0 22 0a 09 09 09 65 6c 73 65 0a 09 09 09 20 20 61  "....else....  a
2f8c0 64 64 3d 22 24 64 69 72 2f 24 6f 6c 64 5f 6c 69  dd="$dir/$old_li
2f8d0 62 72 61 72 79 22 0a 09 09 09 66 69 0a 09 09 20  brary"....fi... 
2f8e0 20 20 20 20 20 65 6c 69 66 20 74 65 73 74 20 2d       elif test -
2f8f0 6e 20 22 24 6f 6c 64 5f 6c 69 62 72 61 72 79 22  n "$old_library"
2f900 3b 20 74 68 65 6e 0a 09 09 09 61 64 64 3d 22 24  ; then....add="$
2f910 64 69 72 2f 24 6f 6c 64 5f 6c 69 62 72 61 72 79  dir/$old_library
2f920 22 0a 09 09 20 20 20 20 20 20 66 69 0a 09 09 20  "...      fi... 
2f930 20 20 20 66 69 0a 09 09 65 73 61 63 0a 09 20 20     fi...esac..  
2f940 20 20 20 20 65 6c 69 66 20 74 65 73 74 20 22 24      elif test "$
2f950 68 61 72 64 63 6f 64 65 5f 6d 69 6e 75 73 5f 4c  hardcode_minus_L
2f960 22 20 3d 20 6e 6f 3b 20 74 68 65 6e 0a 09 09 63  " = no; then...c
2f970 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 09 2a  ase $host in...*
2f980 2d 2a 2d 73 75 6e 6f 73 2a 29 20 61 64 64 5f 73  -*-sunos*) add_s
2f990 68 6c 69 62 70 61 74 68 3d 22 24 64 69 72 22 20  hlibpath="$dir" 
2f9a0 3b 3b 0a 09 09 65 73 61 63 0a 09 09 61 64 64 5f  ;;...esac...add_
2f9b0 64 69 72 3d 22 2d 4c 24 64 69 72 22 0a 09 09 61  dir="-L$dir"...a
2f9c0 64 64 3d 22 2d 6c 24 6e 61 6d 65 22 0a 09 20 20  dd="-l$name"..  
2f9d0 20 20 20 20 65 6c 69 66 20 74 65 73 74 20 22 24      elif test "$
2f9e0 68 61 72 64 63 6f 64 65 5f 73 68 6c 69 62 70 61  hardcode_shlibpa
2f9f0 74 68 5f 76 61 72 22 20 3d 20 6e 6f 3b 20 74 68  th_var" = no; th
2fa00 65 6e 0a 09 09 61 64 64 5f 73 68 6c 69 62 70 61  en...add_shlibpa
2fa10 74 68 3d 22 24 64 69 72 22 0a 09 09 61 64 64 3d  th="$dir"...add=
2fa20 22 2d 6c 24 6e 61 6d 65 22 0a 09 20 20 20 20 20  "-l$name"..     
2fa30 20 65 6c 73 65 0a 09 09 6c 69 62 5f 6c 69 6e 6b   else...lib_link
2fa40 65 64 3d 6e 6f 0a 09 20 20 20 20 20 20 66 69 0a  ed=no..      fi.
2fa50 09 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 72  .      ;;..    r
2fa60 65 6c 69 6e 6b 29 0a 09 20 20 20 20 20 20 69 66  elink)..      if
2fa70 20 74 65 73 74 20 22 24 68 61 72 64 63 6f 64 65   test "$hardcode
2fa80 5f 64 69 72 65 63 74 22 20 3d 20 79 65 73 20 26  _direct" = yes &
2fa90 26 0a 09 20 20 20 20 20 20 20 20 20 74 65 73 74  &..         test
2faa0 20 22 24 68 61 72 64 63 6f 64 65 5f 64 69 72 65   "$hardcode_dire
2fab0 63 74 5f 61 62 73 6f 6c 75 74 65 22 20 3d 20 6e  ct_absolute" = n
2fac0 6f 3b 20 74 68 65 6e 0a 09 09 61 64 64 3d 22 24  o; then...add="$
2fad0 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 0a 09 20  dir/$linklib".. 
2fae0 20 20 20 20 20 65 6c 69 66 20 74 65 73 74 20 22       elif test "
2faf0 24 68 61 72 64 63 6f 64 65 5f 6d 69 6e 75 73 5f  $hardcode_minus_
2fb00 4c 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09  L" = yes; then..
2fb10 09 61 64 64 5f 64 69 72 3d 22 2d 4c 24 61 62 73  .add_dir="-L$abs
2fb20 64 69 72 22 0a 09 09 23 20 54 72 79 20 6c 6f 6f  dir"...# Try loo
2fb30 6b 69 6e 67 20 66 69 72 73 74 20 69 6e 20 74 68  king first in th
2fb40 65 20 6c 6f 63 61 74 69 6f 6e 20 77 65 27 72 65  e location we're
2fb50 20 62 65 69 6e 67 20 69 6e 73 74 61 6c 6c 65 64   being installed
2fb60 20 74 6f 2e 0a 09 09 69 66 20 74 65 73 74 20 2d   to....if test -
2fb70 6e 20 22 24 69 6e 73 74 5f 70 72 65 66 69 78 5f  n "$inst_prefix_
2fb80 64 69 72 22 3b 20 74 68 65 6e 0a 09 09 20 20 63  dir"; then...  c
2fb90 61 73 65 20 24 6c 69 62 64 69 72 20 69 6e 0a 09  ase $libdir in..
2fba0 09 20 20 20 20 5b 5c 5c 2f 5d 2a 29 0a 09 09 20  .    [\\/]*)... 
2fbb0 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64       func_append
2fbc0 20 61 64 64 5f 64 69 72 20 22 20 2d 4c 24 69 6e   add_dir " -L$in
2fbd0 73 74 5f 70 72 65 66 69 78 5f 64 69 72 24 6c 69  st_prefix_dir$li
2fbe0 62 64 69 72 22 0a 09 09 20 20 20 20 20 20 3b 3b  bdir"...      ;;
2fbf0 0a 09 09 20 20 65 73 61 63 0a 09 09 66 69 0a 09  ...  esac...fi..
2fc00 09 61 64 64 3d 22 2d 6c 24 6e 61 6d 65 22 0a 09  .add="-l$name"..
2fc10 20 20 20 20 20 20 65 6c 69 66 20 74 65 73 74 20        elif test 
2fc20 22 24 68 61 72 64 63 6f 64 65 5f 73 68 6c 69 62  "$hardcode_shlib
2fc30 70 61 74 68 5f 76 61 72 22 20 3d 20 79 65 73 3b  path_var" = yes;
2fc40 20 74 68 65 6e 0a 09 09 61 64 64 5f 73 68 6c 69   then...add_shli
2fc50 62 70 61 74 68 3d 22 24 64 69 72 22 0a 09 09 61  bpath="$dir"...a
2fc60 64 64 3d 22 2d 6c 24 6e 61 6d 65 22 0a 09 20 20  dd="-l$name"..  
2fc70 20 20 20 20 65 6c 73 65 0a 09 09 6c 69 62 5f 6c      else...lib_l
2fc80 69 6e 6b 65 64 3d 6e 6f 0a 09 20 20 20 20 20 20  inked=no..      
2fc90 66 69 0a 09 20 20 20 20 20 20 3b 3b 0a 09 20 20  fi..      ;;..  
2fca0 20 20 2a 29 20 6c 69 62 5f 6c 69 6e 6b 65 64 3d    *) lib_linked=
2fcb0 6e 6f 20 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a  no ;;..    esac.
2fcc0 0a 09 20 20 20 20 69 66 20 74 65 73 74 20 22 24  ..    if test "$
2fcd0 6c 69 62 5f 6c 69 6e 6b 65 64 22 20 21 3d 20 79  lib_linked" != y
2fce0 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  es; then..      
2fcf0 66 75 6e 63 5f 66 61 74 61 6c 5f 63 6f 6e 66 69  func_fatal_confi
2fd00 67 75 72 61 74 69 6f 6e 20 22 75 6e 73 75 70 70  guration "unsupp
2fd10 6f 72 74 65 64 20 68 61 72 64 63 6f 64 65 20 70  orted hardcode p
2fd20 72 6f 70 65 72 74 69 65 73 22 0a 09 20 20 20 20  roperties"..    
2fd30 66 69 0a 0a 09 20 20 20 20 69 66 20 74 65 73 74  fi...    if test
2fd40 20 2d 6e 20 22 24 61 64 64 5f 73 68 6c 69 62 70   -n "$add_shlibp
2fd50 61 74 68 22 3b 20 74 68 65 6e 0a 09 20 20 20 20  ath"; then..    
2fd60 20 20 63 61 73 65 20 3a 24 63 6f 6d 70 69 6c 65    case :$compile
2fd70 5f 73 68 6c 69 62 70 61 74 68 3a 20 69 6e 0a 09  _shlibpath: in..
2fd80 20 20 20 20 20 20 2a 22 3a 24 61 64 64 5f 73 68        *":$add_sh
2fd90 6c 69 62 70 61 74 68 3a 22 2a 29 20 3b 3b 0a 09  libpath:"*) ;;..
2fda0 20 20 20 20 20 20 2a 29 20 66 75 6e 63 5f 61 70        *) func_ap
2fdb0 70 65 6e 64 20 63 6f 6d 70 69 6c 65 5f 73 68 6c  pend compile_shl
2fdc0 69 62 70 61 74 68 20 22 24 61 64 64 5f 73 68 6c  ibpath "$add_shl
2fdd0 69 62 70 61 74 68 3a 22 20 3b 3b 0a 09 20 20 20  ibpath:" ;;..   
2fde0 20 20 20 65 73 61 63 0a 09 20 20 20 20 66 69 0a     esac..    fi.
2fdf0 09 20 20 20 20 69 66 20 74 65 73 74 20 22 24 6c  .    if test "$l
2fe00 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67 3b  inkmode" = prog;
2fe10 20 74 68 65 6e 0a 09 20 20 20 20 20 20 74 65 73   then..      tes
2fe20 74 20 2d 6e 20 22 24 61 64 64 5f 64 69 72 22 20  t -n "$add_dir" 
2fe30 26 26 20 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69  && compile_depli
2fe40 62 73 3d 22 24 61 64 64 5f 64 69 72 20 24 63 6f  bs="$add_dir $co
2fe50 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 22 0a 09  mpile_deplibs"..
2fe60 20 20 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24        test -n "$
2fe70 61 64 64 22 20 26 26 20 63 6f 6d 70 69 6c 65 5f  add" && compile_
2fe80 64 65 70 6c 69 62 73 3d 22 24 61 64 64 20 24 63  deplibs="$add $c
2fe90 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62 73 22 0a  ompile_deplibs".
2fea0 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20  .    else..     
2feb0 20 74 65 73 74 20 2d 6e 20 22 24 61 64 64 5f 64   test -n "$add_d
2fec0 69 72 22 20 26 26 20 64 65 70 6c 69 62 73 3d 22  ir" && deplibs="
2fed0 24 61 64 64 5f 64 69 72 20 24 64 65 70 6c 69 62  $add_dir $deplib
2fee0 73 22 0a 09 20 20 20 20 20 20 74 65 73 74 20 2d  s"..      test -
2fef0 6e 20 22 24 61 64 64 22 20 26 26 20 64 65 70 6c  n "$add" && depl
2ff00 69 62 73 3d 22 24 61 64 64 20 24 64 65 70 6c 69  ibs="$add $depli
2ff10 62 73 22 0a 09 20 20 20 20 20 20 69 66 20 74 65  bs"..      if te
2ff20 73 74 20 22 24 68 61 72 64 63 6f 64 65 5f 64 69  st "$hardcode_di
2ff30 72 65 63 74 22 20 21 3d 20 79 65 73 20 26 26 0a  rect" != yes &&.
2ff40 09 09 20 74 65 73 74 20 22 24 68 61 72 64 63 6f  .. test "$hardco
2ff50 64 65 5f 6d 69 6e 75 73 5f 4c 22 20 21 3d 20 79  de_minus_L" != y
2ff60 65 73 20 26 26 0a 09 09 20 74 65 73 74 20 22 24  es &&... test "$
2ff70 68 61 72 64 63 6f 64 65 5f 73 68 6c 69 62 70 61  hardcode_shlibpa
2ff80 74 68 5f 76 61 72 22 20 3d 20 79 65 73 3b 20 74  th_var" = yes; t
2ff90 68 65 6e 0a 09 09 63 61 73 65 20 3a 24 66 69 6e  hen...case :$fin
2ffa0 61 6c 69 7a 65 5f 73 68 6c 69 62 70 61 74 68 3a  alize_shlibpath:
2ffb0 20 69 6e 0a 09 09 2a 22 3a 24 6c 69 62 64 69 72   in...*":$libdir
2ffc0 3a 22 2a 29 20 3b 3b 0a 09 09 2a 29 20 66 75 6e  :"*) ;;...*) fun
2ffd0 63 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69 7a  c_append finaliz
2ffe0 65 5f 73 68 6c 69 62 70 61 74 68 20 22 24 6c 69  e_shlibpath "$li
2fff0 62 64 69 72 3a 22 20 3b 3b 0a 09 09 65 73 61 63  bdir:" ;;...esac
30000 0a 09 20 20 20 20 20 20 66 69 0a 09 20 20 20 20  ..      fi..    
30010 66 69 0a 09 20 20 66 69 0a 0a 09 20 20 69 66 20  fi..  fi...  if 
30020 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22  test "$linkmode"
30030 20 3d 20 70 72 6f 67 20 7c 7c 20 74 65 73 74 20   = prog || test 
30040 22 24 6f 70 74 5f 6d 6f 64 65 22 20 3d 20 72 65  "$opt_mode" = re
30050 6c 69 6e 6b 3b 20 74 68 65 6e 0a 09 20 20 20 20  link; then..    
30060 61 64 64 5f 73 68 6c 69 62 70 61 74 68 3d 0a 09  add_shlibpath=..
30070 20 20 20 20 61 64 64 5f 64 69 72 3d 0a 09 20 20      add_dir=..  
30080 20 20 61 64 64 3d 0a 09 20 20 20 20 23 20 46 69    add=..    # Fi
30090 6e 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 20 66  nalize command f
300a0 6f 72 20 62 6f 74 68 20 69 73 20 73 69 6d 70 6c  or both is simpl
300b0 65 3a 20 6a 75 73 74 20 68 61 72 64 63 6f 64 65  e: just hardcode
300c0 20 69 74 2e 0a 09 20 20 20 20 69 66 20 74 65 73   it...    if tes
300d0 74 20 22 24 68 61 72 64 63 6f 64 65 5f 64 69 72  t "$hardcode_dir
300e0 65 63 74 22 20 3d 20 79 65 73 20 26 26 0a 09 20  ect" = yes &&.. 
300f0 20 20 20 20 20 20 74 65 73 74 20 22 24 68 61 72        test "$har
30100 64 63 6f 64 65 5f 64 69 72 65 63 74 5f 61 62 73  dcode_direct_abs
30110 6f 6c 75 74 65 22 20 3d 20 6e 6f 3b 20 74 68 65  olute" = no; the
30120 6e 0a 09 20 20 20 20 20 20 61 64 64 3d 22 24 6c  n..      add="$l
30130 69 62 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22 0a  ibdir/$linklib".
30140 09 20 20 20 20 65 6c 69 66 20 74 65 73 74 20 22  .    elif test "
30150 24 68 61 72 64 63 6f 64 65 5f 6d 69 6e 75 73 5f  $hardcode_minus_
30160 4c 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09  L" = yes; then..
30170 20 20 20 20 20 20 61 64 64 5f 64 69 72 3d 22 2d        add_dir="-
30180 4c 24 6c 69 62 64 69 72 22 0a 09 20 20 20 20 20  L$libdir"..     
30190 20 61 64 64 3d 22 2d 6c 24 6e 61 6d 65 22 0a 09   add="-l$name"..
301a0 20 20 20 20 65 6c 69 66 20 74 65 73 74 20 22 24      elif test "$
301b0 68 61 72 64 63 6f 64 65 5f 73 68 6c 69 62 70 61  hardcode_shlibpa
301c0 74 68 5f 76 61 72 22 20 3d 20 79 65 73 3b 20 74  th_var" = yes; t
301d0 68 65 6e 0a 09 20 20 20 20 20 20 63 61 73 65 20  hen..      case 
301e0 3a 24 66 69 6e 61 6c 69 7a 65 5f 73 68 6c 69 62  :$finalize_shlib
301f0 70 61 74 68 3a 20 69 6e 0a 09 20 20 20 20 20 20  path: in..      
30200 2a 22 3a 24 6c 69 62 64 69 72 3a 22 2a 29 20 3b  *":$libdir:"*) ;
30210 3b 0a 09 20 20 20 20 20 20 2a 29 20 66 75 6e 63  ;..      *) func
30220 5f 61 70 70 65 6e 64 20 66 69 6e 61 6c 69 7a 65  _append finalize
30230 5f 73 68 6c 69 62 70 61 74 68 20 22 24 6c 69 62  _shlibpath "$lib
30240 64 69 72 3a 22 20 3b 3b 0a 09 20 20 20 20 20 20  dir:" ;;..      
30250 65 73 61 63 0a 09 20 20 20 20 20 20 61 64 64 3d  esac..      add=
30260 22 2d 6c 24 6e 61 6d 65 22 0a 09 20 20 20 20 65  "-l$name"..    e
30270 6c 69 66 20 74 65 73 74 20 22 24 68 61 72 64 63  lif test "$hardc
30280 6f 64 65 5f 61 75 74 6f 6d 61 74 69 63 22 20 3d  ode_automatic" =
30290 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20   yes; then..    
302a0 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 69    if test -n "$i
302b0 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 22 20  nst_prefix_dir" 
302c0 26 26 0a 09 09 20 74 65 73 74 20 2d 66 20 22 24  &&... test -f "$
302d0 69 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 24  inst_prefix_dir$
302e0 6c 69 62 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22  libdir/$linklib"
302f0 20 3b 20 74 68 65 6e 0a 09 09 61 64 64 3d 22 24   ; then...add="$
30300 69 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 24  inst_prefix_dir$
30310 6c 69 62 64 69 72 2f 24 6c 69 6e 6b 6c 69 62 22  libdir/$linklib"
30320 0a 09 20 20 20 20 20 20 65 6c 73 65 0a 09 09 61  ..      else...a
30330 64 64 3d 22 24 6c 69 62 64 69 72 2f 24 6c 69 6e  dd="$libdir/$lin
30340 6b 6c 69 62 22 0a 09 20 20 20 20 20 20 66 69 0a  klib"..      fi.
30350 09 20 20 20 20 65 6c 73 65 0a 09 20 20 20 20 20  .    else..     
30360 20 23 20 57 65 20 63 61 6e 6e 6f 74 20 73 65 65   # We cannot see
30370 6d 20 74 6f 20 68 61 72 64 63 6f 64 65 20 69 74  m to hardcode it
30380 2c 20 67 75 65 73 73 20 77 65 27 6c 6c 20 66 61  , guess we'll fa
30390 6b 65 20 69 74 2e 0a 09 20 20 20 20 20 20 61 64  ke it...      ad
303a0 64 5f 64 69 72 3d 22 2d 4c 24 6c 69 62 64 69 72  d_dir="-L$libdir
303b0 22 0a 09 20 20 20 20 20 20 23 20 54 72 79 20 6c  "..      # Try l
303c0 6f 6f 6b 69 6e 67 20 66 69 72 73 74 20 69 6e 20  ooking first in 
303d0 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 65 27  the location we'
303e0 72 65 20 62 65 69 6e 67 20 69 6e 73 74 61 6c 6c  re being install
303f0 65 64 20 74 6f 2e 0a 09 20 20 20 20 20 20 69 66  ed to...      if
30400 20 74 65 73 74 20 2d 6e 20 22 24 69 6e 73 74 5f   test -n "$inst_
30410 70 72 65 66 69 78 5f 64 69 72 22 3b 20 74 68 65  prefix_dir"; the
30420 6e 0a 09 09 63 61 73 65 20 24 6c 69 62 64 69 72  n...case $libdir
30430 20 69 6e 0a 09 09 20 20 5b 5c 5c 2f 5d 2a 29 0a   in...  [\\/]*).
30440 09 09 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e  ..    func_appen
30450 64 20 61 64 64 5f 64 69 72 20 22 20 2d 4c 24 69  d add_dir " -L$i
30460 6e 73 74 5f 70 72 65 66 69 78 5f 64 69 72 24 6c  nst_prefix_dir$l
30470 69 62 64 69 72 22 0a 09 09 20 20 20 20 3b 3b 0a  ibdir"...    ;;.
30480 09 09 65 73 61 63 0a 09 20 20 20 20 20 20 66 69  ..esac..      fi
30490 0a 09 20 20 20 20 20 20 61 64 64 3d 22 2d 6c 24  ..      add="-l$
304a0 6e 61 6d 65 22 0a 09 20 20 20 20 66 69 0a 0a 09  name"..    fi...
304b0 20 20 20 20 69 66 20 74 65 73 74 20 22 24 6c 69      if test "$li
304c0 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f 67 3b 20  nkmode" = prog; 
304d0 74 68 65 6e 0a 09 20 20 20 20 20 20 74 65 73 74  then..      test
304e0 20 2d 6e 20 22 24 61 64 64 5f 64 69 72 22 20 26   -n "$add_dir" &
304f0 26 20 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69  & finalize_depli
30500 62 73 3d 22 24 61 64 64 5f 64 69 72 20 24 66 69  bs="$add_dir $fi
30510 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 22 0a  nalize_deplibs".
30520 09 20 20 20 20 20 20 74 65 73 74 20 2d 6e 20 22  .      test -n "
30530 24 61 64 64 22 20 26 26 20 66 69 6e 61 6c 69 7a  $add" && finaliz
30540 65 5f 64 65 70 6c 69 62 73 3d 22 24 61 64 64 20  e_deplibs="$add 
30550 24 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62  $finalize_deplib
30560 73 22 0a 09 20 20 20 20 65 6c 73 65 0a 09 20 20  s"..    else..  
30570 20 20 20 20 74 65 73 74 20 2d 6e 20 22 24 61 64      test -n "$ad
30580 64 5f 64 69 72 22 20 26 26 20 64 65 70 6c 69 62  d_dir" && deplib
30590 73 3d 22 24 61 64 64 5f 64 69 72 20 24 64 65 70  s="$add_dir $dep
305a0 6c 69 62 73 22 0a 09 20 20 20 20 20 20 74 65 73  libs"..      tes
305b0 74 20 2d 6e 20 22 24 61 64 64 22 20 26 26 20 64  t -n "$add" && d
305c0 65 70 6c 69 62 73 3d 22 24 61 64 64 20 24 64 65  eplibs="$add $de
305d0 70 6c 69 62 73 22 0a 09 20 20 20 20 66 69 0a 09  plibs"..    fi..
305e0 20 20 66 69 0a 09 65 6c 69 66 20 74 65 73 74 20    fi..elif test 
305f0 22 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72  "$linkmode" = pr
30600 6f 67 3b 20 74 68 65 6e 0a 09 20 20 23 20 48 65  og; then..  # He
30610 72 65 20 77 65 20 61 73 73 75 6d 65 20 74 68 61  re we assume tha
30620 74 20 6f 6e 65 20 6f 66 20 68 61 72 64 63 6f 64  t one of hardcod
30630 65 5f 64 69 72 65 63 74 20 6f 72 20 68 61 72 64  e_direct or hard
30640 63 6f 64 65 5f 6d 69 6e 75 73 5f 4c 0a 09 20 20  code_minus_L..  
30650 23 20 69 73 20 6e 6f 74 20 75 6e 73 75 70 70 6f  # is not unsuppo
30660 72 74 65 64 2e 20 20 54 68 69 73 20 69 73 20 76  rted.  This is v
30670 61 6c 69 64 20 6f 6e 20 61 6c 6c 20 6b 6e 6f 77  alid on all know
30680 6e 20 73 74 61 74 69 63 20 61 6e 64 0a 09 20 20  n static and..  
30690 23 20 73 68 61 72 65 64 20 70 6c 61 74 66 6f 72  # shared platfor
306a0 6d 73 2e 0a 09 20 20 69 66 20 74 65 73 74 20 22  ms...  if test "
306b0 24 68 61 72 64 63 6f 64 65 5f 64 69 72 65 63 74  $hardcode_direct
306c0 22 20 21 3d 20 75 6e 73 75 70 70 6f 72 74 65 64  " != unsupported
306d0 3b 20 74 68 65 6e 0a 09 20 20 20 20 74 65 73 74  ; then..    test
306e0 20 2d 6e 20 22 24 6f 6c 64 5f 6c 69 62 72 61 72   -n "$old_librar
306f0 79 22 20 26 26 20 6c 69 6e 6b 6c 69 62 3d 22 24  y" && linklib="$
30700 6f 6c 64 5f 6c 69 62 72 61 72 79 22 0a 09 20 20  old_library"..  
30710 20 20 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62    compile_deplib
30720 73 3d 22 24 64 69 72 2f 24 6c 69 6e 6b 6c 69 62  s="$dir/$linklib
30730 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c 69 62   $compile_deplib
30740 73 22 0a 09 20 20 20 20 66 69 6e 61 6c 69 7a 65  s"..    finalize
30750 5f 64 65 70 6c 69 62 73 3d 22 24 64 69 72 2f 24  _deplibs="$dir/$
30760 6c 69 6e 6b 6c 69 62 20 24 66 69 6e 61 6c 69 7a  linklib $finaliz
30770 65 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 65 6c  e_deplibs"..  el
30780 73 65 0a 09 20 20 20 20 63 6f 6d 70 69 6c 65 5f  se..    compile_
30790 64 65 70 6c 69 62 73 3d 22 2d 6c 24 6e 61 6d 65  deplibs="-l$name
307a0 20 2d 4c 24 64 69 72 20 24 63 6f 6d 70 69 6c 65   -L$dir $compile
307b0 5f 64 65 70 6c 69 62 73 22 0a 09 20 20 20 20 66  _deplibs"..    f
307c0 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62 73 3d  inalize_deplibs=
307d0 22 2d 6c 24 6e 61 6d 65 20 2d 4c 24 64 69 72 20  "-l$name -L$dir 
307e0 24 66 69 6e 61 6c 69 7a 65 5f 64 65 70 6c 69 62  $finalize_deplib
307f0 73 22 0a 09 20 20 66 69 0a 09 65 6c 69 66 20 74  s"..  fi..elif t
30800 65 73 74 20 22 24 62 75 69 6c 64 5f 6c 69 62 74  est "$build_libt
30810 6f 6f 6c 5f 6c 69 62 73 22 20 3d 20 79 65 73 3b  ool_libs" = yes;
30820 20 74 68 65 6e 0a 09 20 20 23 20 4e 6f 74 20 61   then..  # Not a
30830 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 0a   shared library.
30840 09 20 20 69 66 20 74 65 73 74 20 22 24 64 65 70  .  if test "$dep
30850 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68 6f  libs_check_metho
30860 64 22 20 21 3d 20 70 61 73 73 5f 61 6c 6c 3b 20  d" != pass_all; 
30870 74 68 65 6e 0a 09 20 20 20 20 23 20 57 65 27 72  then..    # We'r
30880 65 20 74 72 79 69 6e 67 20 6c 69 6e 6b 20 61 20  e trying link a 
30890 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 20 61  shared library a
308a0 67 61 69 6e 73 74 20 61 20 73 74 61 74 69 63 20  gainst a static 
308b0 6f 6e 65 0a 09 20 20 20 20 23 20 62 75 74 20 74  one..    # but t
308c0 68 65 20 73 79 73 74 65 6d 20 64 6f 65 73 6e 27  he system doesn'
308d0 74 20 73 75 70 70 6f 72 74 20 69 74 2e 0a 0a 09  t support it....
308e0 20 20 20 20 23 20 4a 75 73 74 20 70 72 69 6e 74      # Just print
308f0 20 61 20 77 61 72 6e 69 6e 67 20 61 6e 64 20 61   a warning and a
30900 64 64 20 74 68 65 20 6c 69 62 72 61 72 79 20 74  dd the library t
30910 6f 20 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62  o dependency_lib
30920 73 20 73 6f 0a 09 20 20 20 20 23 20 74 68 61 74  s so..    # that
30930 20 74 68 65 20 70 72 6f 67 72 61 6d 20 63 61 6e   the program can
30940 20 62 65 20 6c 69 6e 6b 65 64 20 61 67 61 69 6e   be linked again
30950 73 74 20 74 68 65 20 73 74 61 74 69 63 20 6c 69  st the static li
30960 62 72 61 72 79 2e 0a 09 20 20 20 20 65 63 68 6f  brary...    echo
30970 0a 09 20 20 20 20 24 45 43 48 4f 20 22 2a 2a 2a  ..    $ECHO "***
30980 20 57 61 72 6e 69 6e 67 3a 20 54 68 69 73 20 73   Warning: This s
30990 79 73 74 65 6d 20 63 61 6e 20 6e 6f 74 20 6c 69  ystem can not li
309a0 6e 6b 20 74 6f 20 73 74 61 74 69 63 20 6c 69 62  nk to static lib
309b0 20 61 72 63 68 69 76 65 20 24 6c 69 62 2e 22 0a   archive $lib.".
309c0 09 20 20 20 20 65 63 68 6f 20 22 2a 2a 2a 20 49  .    echo "*** I
309d0 20 68 61 76 65 20 74 68 65 20 63 61 70 61 62 69   have the capabi
309e0 6c 69 74 79 20 74 6f 20 6d 61 6b 65 20 74 68 61  lity to make tha
309f0 74 20 6c 69 62 72 61 72 79 20 61 75 74 6f 6d 61  t library automa
30a00 74 69 63 61 6c 6c 79 20 6c 69 6e 6b 20 69 6e 20  tically link in 
30a10 77 68 65 6e 22 0a 09 20 20 20 20 65 63 68 6f 20  when"..    echo 
30a20 22 2a 2a 2a 20 79 6f 75 20 6c 69 6e 6b 20 74 6f  "*** you link to
30a30 20 74 68 69 73 20 6c 69 62 72 61 72 79 2e 20 20   this library.  
30a40 42 75 74 20 49 20 63 61 6e 20 6f 6e 6c 79 20 64  But I can only d
30a50 6f 20 74 68 69 73 20 69 66 20 79 6f 75 20 68 61  o this if you ha
30a60 76 65 20 61 22 0a 09 20 20 20 20 65 63 68 6f 20  ve a"..    echo 
30a70 22 2a 2a 2a 20 73 68 61 72 65 64 20 76 65 72 73  "*** shared vers
30a80 69 6f 6e 20 6f 66 20 74 68 65 20 6c 69 62 72 61  ion of the libra
30a90 72 79 2c 20 77 68 69 63 68 20 79 6f 75 20 64 6f  ry, which you do
30aa0 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 68   not appear to h
30ab0 61 76 65 2e 22 0a 09 20 20 20 20 69 66 20 74 65  ave."..    if te
30ac0 73 74 20 22 24 6d 6f 64 75 6c 65 22 20 3d 20 79  st "$module" = y
30ad0 65 73 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  es; then..      
30ae0 65 63 68 6f 20 22 2a 2a 2a 20 42 75 74 20 61 73  echo "*** But as
30af0 20 79 6f 75 20 74 72 79 20 74 6f 20 62 75 69 6c   you try to buil
30b00 64 20 61 20 6d 6f 64 75 6c 65 20 6c 69 62 72 61  d a module libra
30b10 72 79 2c 20 6c 69 62 74 6f 6f 6c 20 77 69 6c 6c  ry, libtool will
30b20 20 73 74 69 6c 6c 20 63 72 65 61 74 65 20 22 0a   still create ".
30b30 09 20 20 20 20 20 20 65 63 68 6f 20 22 2a 2a 2a  .      echo "***
30b40 20 61 20 73 74 61 74 69 63 20 6d 6f 64 75 6c 65   a static module
30b50 2c 20 74 68 61 74 20 73 68 6f 75 6c 64 20 77 6f  , that should wo
30b60 72 6b 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68  rk as long as th
30b70 65 20 64 6c 6f 70 65 6e 69 6e 67 20 61 70 70 6c  e dlopening appl
30b80 69 63 61 74 69 6f 6e 22 0a 09 20 20 20 20 20 20  ication"..      
30b90 65 63 68 6f 20 22 2a 2a 2a 20 69 73 20 6c 69 6e  echo "*** is lin
30ba0 6b 65 64 20 77 69 74 68 20 74 68 65 20 2d 64 6c  ked with the -dl
30bb0 6f 70 65 6e 20 66 6c 61 67 20 74 6f 20 72 65 73  open flag to res
30bc0 6f 6c 76 65 20 73 79 6d 62 6f 6c 73 20 61 74 20  olve symbols at 
30bd0 72 75 6e 74 69 6d 65 2e 22 0a 09 20 20 20 20 20  runtime."..     
30be0 20 69 66 20 74 65 73 74 20 2d 7a 20 22 24 67 6c   if test -z "$gl
30bf0 6f 62 61 6c 5f 73 79 6d 62 6f 6c 5f 70 69 70 65  obal_symbol_pipe
30c00 22 3b 20 74 68 65 6e 0a 09 09 65 63 68 6f 0a 09  "; then...echo..
30c10 09 65 63 68 6f 20 22 2a 2a 2a 20 48 6f 77 65 76  .echo "*** Howev
30c20 65 72 2c 20 74 68 69 73 20 77 6f 75 6c 64 20 6f  er, this would o
30c30 6e 6c 79 20 77 6f 72 6b 20 69 66 20 6c 69 62 74  nly work if libt
30c40 6f 6f 6c 20 77 61 73 20 61 62 6c 65 20 74 6f 20  ool was able to 
30c50 65 78 74 72 61 63 74 20 73 79 6d 62 6f 6c 22 0a  extract symbol".
30c60 09 09 65 63 68 6f 20 22 2a 2a 2a 20 6c 69 73 74  ..echo "*** list
30c70 73 20 66 72 6f 6d 20 61 20 70 72 6f 67 72 61 6d  s from a program
30c80 2c 20 75 73 69 6e 67 20 5c 60 6e 6d 27 20 6f 72  , using \`nm' or
30c90 20 65 71 75 69 76 61 6c 65 6e 74 2c 20 62 75 74   equivalent, but
30ca0 20 6c 69 62 74 6f 6f 6c 20 63 6f 75 6c 64 22 0a   libtool could".
30cb0 09 09 65 63 68 6f 20 22 2a 2a 2a 20 6e 6f 74 20  ..echo "*** not 
30cc0 66 69 6e 64 20 73 75 63 68 20 61 20 70 72 6f 67  find such a prog
30cd0 72 61 6d 2e 20 20 53 6f 2c 20 74 68 69 73 20 6d  ram.  So, this m
30ce0 6f 64 75 6c 65 20 69 73 20 70 72 6f 62 61 62 6c  odule is probabl
30cf0 79 20 75 73 65 6c 65 73 73 2e 22 0a 09 09 65 63  y useless."...ec
30d00 68 6f 20 22 2a 2a 2a 20 5c 60 6e 6d 27 20 66 72  ho "*** \`nm' fr
30d10 6f 6d 20 47 4e 55 20 62 69 6e 75 74 69 6c 73 20  om GNU binutils 
30d20 61 6e 64 20 61 20 66 75 6c 6c 20 72 65 62 75 69  and a full rebui
30d30 6c 64 20 6d 61 79 20 68 65 6c 70 2e 22 0a 09 20  ld may help.".. 
30d40 20 20 20 20 20 66 69 0a 09 20 20 20 20 20 20 69       fi..      i
30d50 66 20 74 65 73 74 20 22 24 62 75 69 6c 64 5f 6f  f test "$build_o
30d60 6c 64 5f 6c 69 62 73 22 20 3d 20 6e 6f 3b 20 74  ld_libs" = no; t
30d70 68 65 6e 0a 09 09 62 75 69 6c 64 5f 6c 69 62 74  hen...build_libt
30d80 6f 6f 6c 5f 6c 69 62 73 3d 6d 6f 64 75 6c 65 0a  ool_libs=module.
30d90 09 09 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73  ..build_old_libs
30da0 3d 79 65 73 0a 09 20 20 20 20 20 20 65 6c 73 65  =yes..      else
30db0 0a 09 09 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c  ...build_libtool
30dc0 5f 6c 69 62 73 3d 6e 6f 0a 09 20 20 20 20 20 20  _libs=no..      
30dd0 66 69 0a 09 20 20 20 20 66 69 0a 09 20 20 65 6c  fi..    fi..  el
30de0 73 65 0a 09 20 20 20 20 64 65 70 6c 69 62 73 3d  se..    deplibs=
30df0 22 24 64 69 72 2f 24 6f 6c 64 5f 6c 69 62 72 61  "$dir/$old_libra
30e00 72 79 20 24 64 65 70 6c 69 62 73 22 0a 09 20 20  ry $deplibs"..  
30e10 20 20 6c 69 6e 6b 5f 73 74 61 74 69 63 3d 79 65    link_static=ye
30e20 73 0a 09 20 20 66 69 0a 09 66 69 20 23 20 6c 69  s..  fi..fi # li
30e30 6e 6b 20 73 68 61 72 65 64 2f 73 74 61 74 69 63  nk shared/static
30e40 20 6c 69 62 72 61 72 79 3f 0a 0a 09 69 66 20 74   library?...if t
30e50 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64 65 22 20  est "$linkmode" 
30e60 3d 20 6c 69 62 3b 20 74 68 65 6e 0a 09 20 20 69  = lib; then..  i
30e70 66 20 74 65 73 74 20 2d 6e 20 22 24 64 65 70 65  f test -n "$depe
30e80 6e 64 65 6e 63 79 5f 6c 69 62 73 22 20 26 26 0a  ndency_libs" &&.
30e90 09 20 20 20 20 20 7b 20 74 65 73 74 20 22 24 68  .     { test "$h
30ea0 61 72 64 63 6f 64 65 5f 69 6e 74 6f 5f 6c 69 62  ardcode_into_lib
30eb0 73 22 20 21 3d 20 79 65 73 20 7c 7c 0a 09 20 20  s" != yes ||..  
30ec0 20 20 20 20 20 74 65 73 74 20 22 24 62 75 69 6c       test "$buil
30ed0 64 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d 20 79 65  d_old_libs" = ye
30ee0 73 20 7c 7c 0a 09 20 20 20 20 20 20 20 74 65 73  s ||..       tes
30ef0 74 20 22 24 6c 69 6e 6b 5f 73 74 61 74 69 63 22  t "$link_static"
30f00 20 3d 20 79 65 73 3b 20 7d 3b 20 74 68 65 6e 0a   = yes; }; then.
30f10 09 20 20 20 20 23 20 45 78 74 72 61 63 74 20 2d  .    # Extract -
30f20 52 20 66 72 6f 6d 20 64 65 70 65 6e 64 65 6e 63  R from dependenc
30f30 79 5f 6c 69 62 73 0a 09 20 20 20 20 74 65 6d 70  y_libs..    temp
30f40 5f 64 65 70 6c 69 62 73 3d 0a 09 20 20 20 20 66  _deplibs=..    f
30f50 6f 72 20 6c 69 62 64 69 72 20 69 6e 20 24 64 65  or libdir in $de
30f60 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3b 20 64  pendency_libs; d
30f70 6f 0a 09 20 20 20 20 20 20 63 61 73 65 20 24 6c  o..      case $l
30f80 69 62 64 69 72 20 69 6e 0a 09 20 20 20 20 20 20  ibdir in..      
30f90 2d 52 2a 29 20 66 75 6e 63 5f 73 74 72 69 70 6e  -R*) func_stripn
30fa0 61 6d 65 20 27 2d 52 27 20 27 27 20 22 24 6c 69  ame '-R' '' "$li
30fb0 62 64 69 72 22 0a 09 20 20 20 20 20 20 20 20 20  bdir"..         
30fc0 20 20 74 65 6d 70 5f 78 72 70 61 74 68 3d 24 66    temp_xrpath=$f
30fd0 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65  unc_stripname_re
30fe0 73 75 6c 74 0a 09 09 20 20 20 63 61 73 65 20 22  sult...   case "
30ff0 20 24 78 72 70 61 74 68 20 22 20 69 6e 0a 09 09   $xrpath " in...
31000 20 20 20 2a 22 20 24 74 65 6d 70 5f 78 72 70 61     *" $temp_xrpa
31010 74 68 20 22 2a 29 20 3b 3b 0a 09 09 20 20 20 2a  th "*) ;;...   *
31020 29 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 78 72  ) func_append xr
31030 70 61 74 68 20 22 20 24 74 65 6d 70 5f 78 72 70  path " $temp_xrp
31040 61 74 68 22 3b 3b 0a 09 09 20 20 20 65 73 61 63  ath";;...   esac
31050 3b 3b 0a 09 20 20 20 20 20 20 2a 29 20 66 75 6e  ;;..      *) fun
31060 63 5f 61 70 70 65 6e 64 20 74 65 6d 70 5f 64 65  c_append temp_de
31070 70 6c 69 62 73 20 22 20 24 6c 69 62 64 69 72 22  plibs " $libdir"
31080 3b 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09  ;;..      esac..
31090 20 20 20 20 64 6f 6e 65 0a 09 20 20 20 20 64 65      done..    de
310a0 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 22 24  pendency_libs="$
310b0 74 65 6d 70 5f 64 65 70 6c 69 62 73 22 0a 09 20  temp_deplibs".. 
310c0 20 66 69 0a 0a 09 20 20 66 75 6e 63 5f 61 70 70   fi...  func_app
310d0 65 6e 64 20 6e 65 77 6c 69 62 5f 73 65 61 72 63  end newlib_searc
310e0 68 5f 70 61 74 68 20 22 20 24 61 62 73 64 69 72  h_path " $absdir
310f0 22 0a 09 20 20 23 20 4c 69 6e 6b 20 61 67 61 69  "..  # Link agai
31100 6e 73 74 20 74 68 69 73 20 6c 69 62 72 61 72 79  nst this library
31110 0a 09 20 20 74 65 73 74 20 22 24 6c 69 6e 6b 5f  ..  test "$link_
31120 73 74 61 74 69 63 22 20 3d 20 6e 6f 20 26 26 20  static" = no && 
31130 6e 65 77 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69  newdependency_li
31140 62 73 3d 22 24 61 62 73 5f 6c 61 64 69 72 2f 24  bs="$abs_ladir/$
31150 6c 61 6e 61 6d 65 20 24 6e 65 77 64 65 70 65 6e  laname $newdepen
31160 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09 20 20 23  dency_libs"..  #
31170 20 2e 2e 2e 20 61 6e 64 20 69 74 73 20 64 65 70   ... and its dep
31180 65 6e 64 65 6e 63 79 5f 6c 69 62 73 0a 09 20 20  endency_libs..  
31190 74 6d 70 5f 6c 69 62 73 3d 0a 09 20 20 66 6f 72  tmp_libs=..  for
311a0 20 64 65 70 6c 69 62 20 69 6e 20 24 64 65 70 65   deplib in $depe
311b0 6e 64 65 6e 63 79 5f 6c 69 62 73 3b 20 64 6f 0a  ndency_libs; do.
311c0 09 20 20 20 20 6e 65 77 64 65 70 65 6e 64 65 6e  .    newdependen
311d0 63 79 5f 6c 69 62 73 3d 22 24 64 65 70 6c 69 62  cy_libs="$deplib
311e0 20 24 6e 65 77 64 65 70 65 6e 64 65 6e 63 79 5f   $newdependency_
311f0 6c 69 62 73 22 0a 09 20 20 20 20 63 61 73 65 20  libs"..    case 
31200 24 64 65 70 6c 69 62 20 69 6e 0a 20 20 20 20 20  $deplib in.     
31210 20 20 20 20 20 20 20 20 20 2d 4c 2a 29 20 66 75           -L*) fu
31220 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27 2d 4c  nc_stripname '-L
31230 27 20 27 27 20 22 24 64 65 70 6c 69 62 22 0a 20  ' '' "$deplib". 
31240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31250 20 20 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73    func_resolve_s
31260 79 73 72 6f 6f 74 20 22 24 66 75 6e 63 5f 73 74  ysroot "$func_st
31270 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 22 3b  ripname_result";
31280 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
31290 2a 29 20 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f  *) func_resolve_
312a0 73 79 73 72 6f 6f 74 20 22 24 64 65 70 6c 69 62  sysroot "$deplib
312b0 22 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 20  " ;;.           
312c0 20 65 73 61 63 0a 09 20 20 20 20 69 66 20 24 6f   esac..    if $o
312d0 70 74 5f 70 72 65 73 65 72 76 65 5f 64 75 70 5f  pt_preserve_dup_
312e0 64 65 70 73 20 3b 20 74 68 65 6e 0a 09 20 20 20  deps ; then..   
312f0 20 20 20 63 61 73 65 20 22 24 74 6d 70 5f 6c 69     case "$tmp_li
31300 62 73 20 22 20 69 6e 0a 09 20 20 20 20 20 20 2a  bs " in..      *
31310 22 20 24 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f  " $func_resolve_
31320 73 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 20 22  sysroot_result "
31330 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  *).             
31340 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 73     func_append s
31350 70 65 63 69 61 6c 64 65 70 6c 69 62 73 20 22 20  pecialdeplibs " 
31360 24 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73 79  $func_resolve_sy
31370 73 72 6f 6f 74 5f 72 65 73 75 6c 74 22 20 3b 3b  sroot_result" ;;
31380 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20  ..      esac..  
31390 20 20 66 69 0a 09 20 20 20 20 66 75 6e 63 5f 61    fi..    func_a
313a0 70 70 65 6e 64 20 74 6d 70 5f 6c 69 62 73 20 22  ppend tmp_libs "
313b0 20 24 66 75 6e 63 5f 72 65 73 6f 6c 76 65 5f 73   $func_resolve_s
313c0 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 22 0a 09  ysroot_result"..
313d0 20 20 64 6f 6e 65 0a 0a 09 20 20 69 66 20 74 65    done...  if te
313e0 73 74 20 22 24 6c 69 6e 6b 5f 61 6c 6c 5f 64 65  st "$link_all_de
313f0 70 6c 69 62 73 22 20 21 3d 20 6e 6f 3b 20 74 68  plibs" != no; th
31400 65 6e 0a 09 20 20 20 20 23 20 41 64 64 20 74 68  en..    # Add th
31410 65 20 73 65 61 72 63 68 20 70 61 74 68 73 20 6f  e search paths o
31420 66 20 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 79  f all dependency
31430 20 6c 69 62 72 61 72 69 65 73 0a 09 20 20 20 20   libraries..    
31440 66 6f 72 20 64 65 70 6c 69 62 20 69 6e 20 24 64  for deplib in $d
31450 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3b 20  ependency_libs; 
31460 64 6f 0a 09 20 20 20 20 20 20 70 61 74 68 3d 0a  do..      path=.
31470 09 20 20 20 20 20 20 63 61 73 65 20 24 64 65 70  .      case $dep
31480 6c 69 62 20 69 6e 0a 09 20 20 20 20 20 20 2d 4c  lib in..      -L
31490 2a 29 20 70 61 74 68 3d 22 24 64 65 70 6c 69 62  *) path="$deplib
314a0 22 20 3b 3b 0a 09 20 20 20 20 20 20 2a 2e 6c 61  " ;;..      *.la
314b0 29 0a 09 20 20 20 20 20 20 20 20 66 75 6e 63 5f  )..        func_
314c0 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 20  resolve_sysroot 
314d0 22 24 64 65 70 6c 69 62 22 0a 09 20 20 20 20 20  "$deplib"..     
314e0 20 20 20 64 65 70 6c 69 62 3d 24 66 75 6e 63 5f     deplib=$func_
314f0 72 65 73 6f 6c 76 65 5f 73 79 73 72 6f 6f 74 5f  resolve_sysroot_
31500 72 65 73 75 6c 74 0a 09 20 20 20 20 20 20 20 20  result..        
31510 66 75 6e 63 5f 64 69 72 6e 61 6d 65 20 22 24 64  func_dirname "$d
31520 65 70 6c 69 62 22 20 22 22 20 22 2e 22 0a 09 09  eplib" "" "."...
31530 64 69 72 3d 24 66 75 6e 63 5f 64 69 72 6e 61 6d  dir=$func_dirnam
31540 65 5f 72 65 73 75 6c 74 0a 09 09 23 20 57 65 20  e_result...# We 
31550 6e 65 65 64 20 61 6e 20 61 62 73 6f 6c 75 74 65  need an absolute
31560 20 70 61 74 68 2e 0a 09 09 63 61 73 65 20 24 64   path....case $d
31570 69 72 20 69 6e 0a 09 09 5b 5c 5c 2f 5d 2a 20 7c  ir in...[\\/]* |
31580 20 5b 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a   [A-Za-z]:[\\/]*
31590 29 20 61 62 73 64 69 72 3d 22 24 64 69 72 22 20  ) absdir="$dir" 
315a0 3b 3b 0a 09 09 2a 29 0a 09 09 20 20 61 62 73 64  ;;...*)...  absd
315b0 69 72 3d 60 63 64 20 22 24 64 69 72 22 20 26 26  ir=`cd "$dir" &&
315c0 20 70 77 64 60 0a 09 09 20 20 69 66 20 74 65 73   pwd`...  if tes
315d0 74 20 2d 7a 20 22 24 61 62 73 64 69 72 22 3b 20  t -z "$absdir"; 
315e0 74 68 65 6e 0a 09 09 20 20 20 20 66 75 6e 63 5f  then...    func_
315f0 77 61 72 6e 69 6e 67 20 22 63 61 6e 6e 6f 74 20  warning "cannot 
31600 64 65 74 65 72 6d 69 6e 65 20 61 62 73 6f 6c 75  determine absolu
31610 74 65 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d  te directory nam
31620 65 20 6f 66 20 5c 60 24 64 69 72 27 22 0a 09 09  e of \`$dir'"...
31630 20 20 20 20 61 62 73 64 69 72 3d 22 24 64 69 72      absdir="$dir
31640 22 0a 09 09 20 20 66 69 0a 09 09 20 20 3b 3b 0a  "...  fi...  ;;.
31650 09 09 65 73 61 63 0a 09 09 69 66 20 24 47 52 45  ..esac...if $GRE
31660 50 20 22 5e 69 6e 73 74 61 6c 6c 65 64 3d 6e 6f  P "^installed=no
31670 22 20 24 64 65 70 6c 69 62 20 3e 20 2f 64 65 76  " $deplib > /dev
31680 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 63 61  /null; then...ca
31690 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 09 2a 2d  se $host in...*-
316a0 2a 2d 64 61 72 77 69 6e 2a 29 0a 09 09 20 20 64  *-darwin*)...  d
316b0 65 70 64 65 70 6c 3d 0a 09 09 20 20 65 76 61 6c  epdepl=...  eval
316c0 20 64 65 70 6c 69 62 72 61 72 79 5f 6e 61 6d 65   deplibrary_name
316d0 73 3d 60 24 7b 53 45 44 7d 20 2d 6e 20 2d 65 20  s=`${SED} -n -e 
316e0 27 73 2f 5e 6c 69 62 72 61 72 79 5f 6e 61 6d 65  's/^library_name
316f0 73 3d 5c 28 2e 2a 5c 29 24 2f 5c 31 2f 70 27 20  s=\(.*\)$/\1/p' 
31700 24 64 65 70 6c 69 62 60 0a 09 09 20 20 69 66 20  $deplib`...  if 
31710 74 65 73 74 20 2d 6e 20 22 24 64 65 70 6c 69 62  test -n "$deplib
31720 72 61 72 79 5f 6e 61 6d 65 73 22 20 3b 20 74 68  rary_names" ; th
31730 65 6e 0a 09 09 20 20 20 20 66 6f 72 20 74 6d 70  en...    for tmp
31740 20 69 6e 20 24 64 65 70 6c 69 62 72 61 72 79 5f   in $deplibrary_
31750 6e 61 6d 65 73 20 3b 20 64 6f 0a 09 09 20 20 20  names ; do...   
31760 20 20 20 64 65 70 64 65 70 6c 3d 24 74 6d 70 0a     depdepl=$tmp.
31770 09 09 20 20 20 20 64 6f 6e 65 0a 09 09 20 20 20  ..    done...   
31780 20 69 66 20 74 65 73 74 20 2d 66 20 22 24 61 62   if test -f "$ab
31790 73 64 69 72 2f 24 6f 62 6a 64 69 72 2f 24 64 65  sdir/$objdir/$de
317a0 70 64 65 70 6c 22 20 3b 20 74 68 65 6e 0a 09 09  pdepl" ; then...
317b0 20 20 20 20 20 20 64 65 70 64 65 70 6c 3d 22 24        depdepl="$
317c0 61 62 73 64 69 72 2f 24 6f 62 6a 64 69 72 2f 24  absdir/$objdir/$
317d0 64 65 70 64 65 70 6c 22 0a 09 09 20 20 20 20 20  depdepl"...     
317e0 20 64 61 72 77 69 6e 5f 69 6e 73 74 61 6c 6c 5f   darwin_install_
317f0 6e 61 6d 65 3d 60 24 7b 4f 54 4f 4f 4c 7d 20 2d  name=`${OTOOL} -
31800 4c 20 24 64 65 70 64 65 70 6c 20 7c 20 61 77 6b  L $depdepl | awk
31810 20 27 7b 69 66 20 28 4e 52 20 3d 3d 20 32 29 20   '{if (NR == 2) 
31820 7b 70 72 69 6e 74 20 24 31 3b 65 78 69 74 7d 7d  {print $1;exit}}
31830 27 60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  '`.             
31840 20 20 20 20 20 20 20 20 20 69 66 20 74 65 73 74           if test
31850 20 2d 7a 20 22 24 64 61 72 77 69 6e 5f 69 6e 73   -z "$darwin_ins
31860 74 61 6c 6c 5f 6e 61 6d 65 22 3b 20 74 68 65 6e  tall_name"; then
31870 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
31880 20 20 20 20 20 20 20 20 20 20 20 64 61 72 77 69             darwi
31890 6e 5f 69 6e 73 74 61 6c 6c 5f 6e 61 6d 65 3d 60  n_install_name=`
318a0 24 7b 4f 54 4f 4f 4c 36 34 7d 20 2d 4c 20 24 64  ${OTOOL64} -L $d
318b0 65 70 64 65 70 6c 20 20 7c 20 61 77 6b 20 27 7b  epdepl  | awk '{
318c0 69 66 20 28 4e 52 20 3d 3d 20 32 29 20 7b 70 72  if (NR == 2) {pr
318d0 69 6e 74 20 24 31 3b 65 78 69 74 7d 7d 27 60 0a  int $1;exit}}'`.
318e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
318f0 20 20 20 20 20 20 66 69 0a 09 09 20 20 20 20 20        fi...     
31900 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 63 6f 6d   func_append com
31910 70 69 6c 65 72 5f 66 6c 61 67 73 20 22 20 24 7b  piler_flags " ${
31920 77 6c 7d 2d 64 79 6c 69 62 5f 66 69 6c 65 20 24  wl}-dylib_file $
31930 7b 77 6c 7d 24 7b 64 61 72 77 69 6e 5f 69 6e 73  {wl}${darwin_ins
31940 74 61 6c 6c 5f 6e 61 6d 65 7d 3a 24 7b 64 65 70  tall_name}:${dep
31950 64 65 70 6c 7d 22 0a 09 09 20 20 20 20 20 20 66  depl}"...      f
31960 75 6e 63 5f 61 70 70 65 6e 64 20 6c 69 6e 6b 65  unc_append linke
31970 72 5f 66 6c 61 67 73 20 22 20 2d 64 79 6c 69 62  r_flags " -dylib
31980 5f 66 69 6c 65 20 24 7b 64 61 72 77 69 6e 5f 69  _file ${darwin_i
31990 6e 73 74 61 6c 6c 5f 6e 61 6d 65 7d 3a 24 7b 64  nstall_name}:${d
319a0 65 70 64 65 70 6c 7d 22 0a 09 09 20 20 20 20 20  epdepl}"...     
319b0 20 70 61 74 68 3d 0a 09 09 20 20 20 20 66 69 0a   path=...    fi.
319c0 09 09 20 20 66 69 0a 09 09 20 20 3b 3b 0a 09 09  ..  fi...  ;;...
319d0 2a 29 0a 09 09 20 20 70 61 74 68 3d 22 2d 4c 24  *)...  path="-L$
319e0 61 62 73 64 69 72 2f 24 6f 62 6a 64 69 72 22 0a  absdir/$objdir".
319f0 09 09 20 20 3b 3b 0a 09 09 65 73 61 63 0a 09 09  ..  ;;...esac...
31a00 65 6c 73 65 0a 09 09 20 20 65 76 61 6c 20 6c 69  else...  eval li
31a10 62 64 69 72 3d 60 24 7b 53 45 44 7d 20 2d 6e 20  bdir=`${SED} -n 
31a20 2d 65 20 27 73 2f 5e 6c 69 62 64 69 72 3d 5c 28  -e 's/^libdir=\(
31a30 2e 2a 5c 29 24 2f 5c 31 2f 70 27 20 24 64 65 70  .*\)$/\1/p' $dep
31a40 6c 69 62 60 0a 09 09 20 20 74 65 73 74 20 2d 7a  lib`...  test -z
31a50 20 22 24 6c 69 62 64 69 72 22 20 26 26 20 5c 0a   "$libdir" && \.
31a60 09 09 20 20 20 20 66 75 6e 63 5f 66 61 74 61 6c  ..    func_fatal
31a70 5f 65 72 72 6f 72 20 22 5c 60 24 64 65 70 6c 69  _error "\`$depli
31a80 62 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69  b' is not a vali
31a90 64 20 6c 69 62 74 6f 6f 6c 20 61 72 63 68 69 76  d libtool archiv
31aa0 65 22 0a 09 09 20 20 23 74 65 73 74 20 22 24 61  e"...  #test "$a
31ab0 62 73 64 69 72 22 20 21 3d 20 22 24 6c 69 62 64  bsdir" != "$libd
31ac0 69 72 22 20 26 26 20 5c 0a 09 09 20 20 23 20 20  ir" && \...  #  
31ad0 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60  func_warning "\`
31ae0 24 64 65 70 6c 69 62 27 20 73 65 65 6d 73 20 74  $deplib' seems t
31af0 6f 20 62 65 20 6d 6f 76 65 64 22 0a 0a 09 09 20  o be moved".... 
31b00 20 70 61 74 68 3d 22 2d 4c 24 61 62 73 64 69 72   path="-L$absdir
31b10 22 0a 09 09 66 69 0a 09 09 3b 3b 0a 09 20 20 20  "...fi...;;..   
31b20 20 20 20 65 73 61 63 0a 09 20 20 20 20 20 20 63     esac..      c
31b30 61 73 65 20 22 20 24 64 65 70 6c 69 62 73 20 22  ase " $deplibs "
31b40 20 69 6e 0a 09 20 20 20 20 20 20 2a 22 20 24 70   in..      *" $p
31b50 61 74 68 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20  ath "*) ;;..    
31b60 20 20 2a 29 20 64 65 70 6c 69 62 73 3d 22 24 70    *) deplibs="$p
31b70 61 74 68 20 24 64 65 70 6c 69 62 73 22 20 3b 3b  ath $deplibs" ;;
31b80 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20  ..      esac..  
31b90 20 20 64 6f 6e 65 0a 09 20 20 66 69 20 23 20 6c    done..  fi # l
31ba0 69 6e 6b 5f 61 6c 6c 5f 64 65 70 6c 69 62 73 20  ink_all_deplibs 
31bb0 21 3d 20 6e 6f 0a 09 66 69 20 23 20 6c 69 6e 6b  != no..fi # link
31bc0 6d 6f 64 65 20 3d 20 6c 69 62 0a 20 20 20 20 20  mode = lib.     
31bd0 20 64 6f 6e 65 20 23 20 66 6f 72 20 64 65 70 6c   done # for depl
31be0 69 62 20 69 6e 20 24 6c 69 62 73 0a 20 20 20 20  ib in $libs.    
31bf0 20 20 69 66 20 74 65 73 74 20 22 24 70 61 73 73    if test "$pass
31c00 22 20 3d 20 6c 69 6e 6b 3b 20 74 68 65 6e 0a 09  " = link; then..
31c10 69 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f  if test "$linkmo
31c20 64 65 22 20 3d 20 22 70 72 6f 67 22 3b 20 74 68  de" = "prog"; th
31c30 65 6e 0a 09 20 20 63 6f 6d 70 69 6c 65 5f 64 65  en..  compile_de
31c40 70 6c 69 62 73 3d 22 24 6e 65 77 5f 69 6e 68 65  plibs="$new_inhe
31c50 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f 66 6c 61  rited_linker_fla
31c60 67 73 20 24 63 6f 6d 70 69 6c 65 5f 64 65 70 6c  gs $compile_depl
31c70 69 62 73 22 0a 09 20 20 66 69 6e 61 6c 69 7a 65  ibs"..  finalize
31c80 5f 64 65 70 6c 69 62 73 3d 22 24 6e 65 77 5f 69  _deplibs="$new_i
31c90 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65 72 5f  nherited_linker_
31ca0 66 6c 61 67 73 20 24 66 69 6e 61 6c 69 7a 65 5f  flags $finalize_
31cb0 64 65 70 6c 69 62 73 22 0a 09 65 6c 73 65 0a 09  deplibs"..else..
31cc0 20 20 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67 73    compiler_flags
31cd0 3d 22 24 63 6f 6d 70 69 6c 65 72 5f 66 6c 61 67  ="$compiler_flag
31ce0 73 20 22 60 24 45 43 48 4f 20 22 20 24 6e 65 77  s "`$ECHO " $new
31cf0 5f 69 6e 68 65 72 69 74 65 64 5f 6c 69 6e 6b 65  _inherited_linke
31d00 72 5f 66 6c 61 67 73 22 20 7c 20 24 53 45 44 20  r_flags" | $SED 
31d10 27 73 25 20 5c 28 5b 5e 20 24 5d 2a 5c 29 2e 6c  's% \([^ $]*\).l
31d20 74 66 72 61 6d 65 77 6f 72 6b 25 20 2d 66 72 61  tframework% -fra
31d30 6d 65 77 6f 72 6b 20 5c 31 25 67 27 60 0a 09 66  mework \1%g'`..f
31d40 69 0a 20 20 20 20 20 20 66 69 0a 20 20 20 20 20  i.      fi.     
31d50 20 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73   dependency_libs
31d60 3d 22 24 6e 65 77 64 65 70 65 6e 64 65 6e 63 79  ="$newdependency
31d70 5f 6c 69 62 73 22 0a 20 20 20 20 20 20 69 66 20  _libs".      if 
31d80 74 65 73 74 20 22 24 70 61 73 73 22 20 3d 20 64  test "$pass" = d
31d90 6c 70 72 65 6f 70 65 6e 3b 20 74 68 65 6e 0a 09  lpreopen; then..
31da0 23 20 4c 69 6e 6b 20 74 68 65 20 64 6c 70 72 65  # Link the dlpre
31db0 6f 70 65 6e 65 64 20 6c 69 62 72 61 72 69 65 73  opened libraries
31dc0 20 62 65 66 6f 72 65 20 6f 74 68 65 72 20 6c 69   before other li
31dd0 62 72 61 72 69 65 73 0a 09 66 6f 72 20 64 65 70  braries..for dep
31de0 6c 69 62 20 69 6e 20 24 73 61 76 65 5f 64 65 70  lib in $save_dep
31df0 6c 69 62 73 3b 20 64 6f 0a 09 20 20 64 65 70 6c  libs; do..  depl
31e00 69 62 73 3d 22 24 64 65 70 6c 69 62 20 24 64 65  ibs="$deplib $de
31e10 70 6c 69 62 73 22 0a 09 64 6f 6e 65 0a 20 20 20  plibs"..done.   
31e20 20 20 20 66 69 0a 20 20 20 20 20 20 69 66 20 74     fi.      if t
31e30 65 73 74 20 22 24 70 61 73 73 22 20 21 3d 20 64  est "$pass" != d
31e40 6c 6f 70 65 6e 3b 20 74 68 65 6e 0a 09 69 66 20  lopen; then..if 
31e50 74 65 73 74 20 22 24 70 61 73 73 22 20 21 3d 20  test "$pass" != 
31e60 63 6f 6e 76 3b 20 74 68 65 6e 0a 09 20 20 23 20  conv; then..  # 
31e70 4d 61 6b 65 20 73 75 72 65 20 6c 69 62 5f 73 65  Make sure lib_se
31e80 61 72 63 68 5f 70 61 74 68 20 63 6f 6e 74 61 69  arch_path contai
31e90 6e 73 20 6f 6e 6c 79 20 75 6e 69 71 75 65 20 64  ns only unique d
31ea0 69 72 65 63 74 6f 72 69 65 73 2e 0a 09 20 20 6c  irectories...  l
31eb0 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 3d 0a  ib_search_path=.
31ec0 09 20 20 66 6f 72 20 64 69 72 20 69 6e 20 24 6e  .  for dir in $n
31ed0 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  ewlib_search_pat
31ee0 68 3b 20 64 6f 0a 09 20 20 20 20 63 61 73 65 20  h; do..    case 
31ef0 22 24 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  "$lib_search_pat
31f00 68 20 22 20 69 6e 0a 09 20 20 20 20 2a 22 20 24  h " in..    *" $
31f10 64 69 72 20 22 2a 29 20 3b 3b 0a 09 20 20 20 20  dir "*) ;;..    
31f20 2a 29 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 6c  *) func_append l
31f30 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 20 22  ib_search_path "
31f40 20 24 64 69 72 22 20 3b 3b 0a 09 20 20 20 20 65   $dir" ;;..    e
31f50 73 61 63 0a 09 20 20 64 6f 6e 65 0a 09 20 20 6e  sac..  done..  n
31f60 65 77 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  ewlib_search_pat
31f70 68 3d 0a 09 66 69 0a 0a 09 69 66 20 74 65 73 74  h=..fi...if test
31f80 20 22 24 6c 69 6e 6b 6d 6f 64 65 2c 24 70 61 73   "$linkmode,$pas
31f90 73 22 20 21 3d 20 22 70 72 6f 67 2c 6c 69 6e 6b  s" != "prog,link
31fa0 22 3b 20 74 68 65 6e 0a 09 20 20 76 61 72 73 3d  "; then..  vars=
31fb0 22 64 65 70 6c 69 62 73 22 0a 09 65 6c 73 65 0a  "deplibs"..else.
31fc0 09 20 20 76 61 72 73 3d 22 63 6f 6d 70 69 6c 65  .  vars="compile
31fd0 5f 64 65 70 6c 69 62 73 20 66 69 6e 61 6c 69 7a  _deplibs finaliz
31fe0 65 5f 64 65 70 6c 69 62 73 22 0a 09 66 69 0a 09  e_deplibs"..fi..
31ff0 66 6f 72 20 76 61 72 20 69 6e 20 24 76 61 72 73  for var in $vars
32000 20 64 65 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73   dependency_libs
32010 3b 20 64 6f 0a 09 20 20 23 20 41 64 64 20 6c 69  ; do..  # Add li
32020 62 72 61 72 69 65 73 20 74 6f 20 24 76 61 72 20  braries to $var 
32030 69 6e 20 72 65 76 65 72 73 65 20 6f 72 64 65 72  in reverse order
32040 0a 09 20 20 65 76 61 6c 20 74 6d 70 5f 6c 69 62  ..  eval tmp_lib
32050 73 3d 5c 22 5c 24 24 76 61 72 5c 22 0a 09 20 20  s=\"\$$var\"..  
32060 6e 65 77 5f 6c 69 62 73 3d 0a 09 20 20 66 6f 72  new_libs=..  for
32070 20 64 65 70 6c 69 62 20 69 6e 20 24 74 6d 70 5f   deplib in $tmp_
32080 6c 69 62 73 3b 20 64 6f 0a 09 20 20 20 20 23 20  libs; do..    # 
32090 46 49 58 4d 45 3a 20 50 65 64 61 6e 74 69 63 61  FIXME: Pedantica
320a0 6c 6c 79 2c 20 74 68 69 73 20 69 73 20 74 68 65  lly, this is the
320b0 20 72 69 67 68 74 20 74 68 69 6e 67 20 74 6f 20   right thing to 
320c0 64 6f 2c 20 73 6f 0a 09 20 20 20 20 23 20 20 20  do, so..    #   
320d0 20 20 20 20 20 74 68 61 74 20 73 6f 6d 65 20 6e       that some n
320e0 61 73 74 79 20 64 65 70 65 6e 64 65 6e 63 79 20  asty dependency 
320f0 6c 6f 6f 70 20 69 73 6e 27 74 20 61 63 63 69 64  loop isn't accid
32100 65 6e 74 61 6c 6c 79 0a 09 20 20 20 20 23 20 20  entally..    #  
32110 20 20 20 20 20 20 62 72 6f 6b 65 6e 3a 0a 09 20        broken:.. 
32120 20 20 20 23 6e 65 77 5f 6c 69 62 73 3d 22 24 64     #new_libs="$d
32130 65 70 6c 69 62 20 24 6e 65 77 5f 6c 69 62 73 22  eplib $new_libs"
32140 0a 09 20 20 20 20 23 20 50 72 61 67 6d 61 74 69  ..    # Pragmati
32150 63 61 6c 6c 79 2c 20 74 68 69 73 20 73 65 65 6d  cally, this seem
32160 73 20 74 6f 20 63 61 75 73 65 20 76 65 72 79 20  s to cause very 
32170 66 65 77 20 70 72 6f 62 6c 65 6d 73 20 69 6e 0a  few problems in.
32180 09 20 20 20 20 23 20 70 72 61 63 74 69 63 65 3a  .    # practice:
32190 0a 09 20 20 20 20 63 61 73 65 20 24 64 65 70 6c  ..    case $depl
321a0 69 62 20 69 6e 0a 09 20 20 20 20 2d 4c 2a 29 20  ib in..    -L*) 
321b0 6e 65 77 5f 6c 69 62 73 3d 22 24 64 65 70 6c 69  new_libs="$depli
321c0 62 20 24 6e 65 77 5f 6c 69 62 73 22 20 3b 3b 0a  b $new_libs" ;;.
321d0 09 20 20 20 20 2d 52 2a 29 20 3b 3b 0a 09 20 20  .    -R*) ;;..  
321e0 20 20 2a 29 0a 09 20 20 20 20 20 20 23 20 41 6e    *)..      # An
321f0 64 20 68 65 72 65 20 69 73 20 74 68 65 20 72 65  d here is the re
32200 61 73 6f 6e 3a 20 77 68 65 6e 20 61 20 6c 69 62  ason: when a lib
32210 72 61 72 79 20 61 70 70 65 61 72 73 20 6d 6f 72  rary appears mor
32220 65 0a 09 20 20 20 20 20 20 23 20 74 68 61 6e 20  e..      # than 
32230 6f 6e 63 65 20 61 73 20 61 6e 20 65 78 70 6c 69  once as an expli
32240 63 69 74 20 64 65 70 65 6e 64 65 6e 63 65 20 6f  cit dependence o
32250 66 20 61 20 6c 69 62 72 61 72 79 2c 20 6f 72 0a  f a library, or.
32260 09 20 20 20 20 20 20 23 20 69 73 20 69 6d 70 6c  .      # is impl
32270 69 63 69 74 6c 79 20 6c 69 6e 6b 65 64 20 69 6e  icitly linked in
32280 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 63 65 20   more than once 
32290 62 79 20 74 68 65 0a 09 20 20 20 20 20 20 23 20  by the..      # 
322a0 63 6f 6d 70 69 6c 65 72 2c 20 69 74 20 69 73 20  compiler, it is 
322b0 63 6f 6e 73 69 64 65 72 65 64 20 73 70 65 63 69  considered speci
322c0 61 6c 2c 20 61 6e 64 20 6d 75 6c 74 69 70 6c 65  al, and multiple
322d0 0a 09 20 20 20 20 20 20 23 20 6f 63 63 75 72 72  ..      # occurr
322e0 65 6e 63 65 73 20 74 68 65 72 65 6f 66 20 61 72  ences thereof ar
322f0 65 20 6e 6f 74 20 72 65 6d 6f 76 65 64 2e 20 20  e not removed.  
32300 43 6f 6d 70 61 72 65 20 74 68 69 73 0a 09 20 20  Compare this..  
32310 20 20 20 20 23 20 77 69 74 68 20 68 61 76 69 6e      # with havin
32320 67 20 74 68 65 20 73 61 6d 65 20 6c 69 62 72 61  g the same libra
32330 72 79 20 62 65 69 6e 67 20 6c 69 73 74 65 64 20  ry being listed 
32340 61 73 20 61 0a 09 20 20 20 20 20 20 23 20 64 65  as a..      # de
32350 70 65 6e 64 65 6e 63 79 20 6f 66 20 6d 75 6c 74  pendency of mult
32360 69 70 6c 65 20 6f 74 68 65 72 20 6c 69 62 72 61  iple other libra
32370 72 69 65 73 3a 20 69 6e 20 74 68 69 73 20 63 61  ries: in this ca
32380 73 65 2c 0a 09 20 20 20 20 20 20 23 20 77 65 20  se,..      # we 
32390 6b 6e 6f 77 20 28 70 65 64 61 6e 74 69 63 61 6c  know (pedantical
323a0 6c 79 2c 20 77 65 20 61 73 73 75 6d 65 29 20 74  ly, we assume) t
323b0 68 65 20 6c 69 62 72 61 72 79 20 64 6f 65 73 20  he library does 
323c0 6e 6f 74 0a 09 20 20 20 20 20 20 23 20 6e 65 65  not..      # nee
323d0 64 20 74 6f 20 62 65 20 6c 69 73 74 65 64 20 6d  d to be listed m
323e0 6f 72 65 20 74 68 61 6e 20 6f 6e 63 65 2c 20 73  ore than once, s
323f0 6f 20 77 65 20 6b 65 65 70 20 6f 6e 6c 79 20 74  o we keep only t
32400 68 65 0a 09 20 20 20 20 20 20 23 20 6c 61 73 74  he..      # last
32410 20 63 6f 70 79 2e 20 20 54 68 69 73 20 69 73 20   copy.  This is 
32420 6e 6f 74 20 61 6c 77 61 79 73 20 72 69 67 68 74  not always right
32430 2c 20 62 75 74 20 69 74 20 69 73 20 72 61 72 65  , but it is rare
32440 0a 09 20 20 20 20 20 20 23 20 65 6e 6f 75 67 68  ..      # enough
32450 20 74 68 61 74 20 77 65 20 72 65 71 75 69 72 65   that we require
32460 20 75 73 65 72 73 20 74 68 61 74 20 72 65 61 6c   users that real
32470 6c 79 20 6d 65 61 6e 20 74 6f 20 70 6c 61 79 0a  ly mean to play.
32480 09 20 20 20 20 20 20 23 20 73 75 63 68 20 75 6e  .      # such un
32490 70 6f 72 74 61 62 6c 65 20 6c 69 6e 6b 69 6e 67  portable linking
324a0 20 74 72 69 63 6b 73 20 74 6f 20 6c 69 6e 6b 20   tricks to link 
324b0 74 68 65 20 6c 69 62 72 61 72 79 0a 09 20 20 20  the library..   
324c0 20 20 20 23 20 75 73 69 6e 67 20 2d 57 6c 2c 2d     # using -Wl,-
324d0 6c 6e 61 6d 65 2c 20 73 6f 20 74 68 61 74 20 6c  lname, so that l
324e0 69 62 74 6f 6f 6c 20 64 6f 65 73 20 6e 6f 74 20  ibtool does not 
324f0 63 6f 6e 73 69 64 65 72 20 69 74 0a 09 20 20 20  consider it..   
32500 20 20 20 23 20 66 6f 72 20 64 75 70 6c 69 63 61     # for duplica
32510 74 65 20 72 65 6d 6f 76 61 6c 2e 0a 09 20 20 20  te removal...   
32520 20 20 20 63 61 73 65 20 22 20 24 73 70 65 63 69     case " $speci
32530 61 6c 64 65 70 6c 69 62 73 20 22 20 69 6e 0a 09  aldeplibs " in..
32540 20 20 20 20 20 20 2a 22 20 24 64 65 70 6c 69 62        *" $deplib
32550 20 22 2a 29 20 6e 65 77 5f 6c 69 62 73 3d 22 24   "*) new_libs="$
32560 64 65 70 6c 69 62 20 24 6e 65 77 5f 6c 69 62 73  deplib $new_libs
32570 22 20 3b 3b 0a 09 20 20 20 20 20 20 2a 29 0a 09  " ;;..      *)..
32580 09 63 61 73 65 20 22 20 24 6e 65 77 5f 6c 69 62  .case " $new_lib
32590 73 20 22 20 69 6e 0a 09 09 2a 22 20 24 64 65 70  s " in...*" $dep
325a0 6c 69 62 20 22 2a 29 20 3b 3b 0a 09 09 2a 29 20  lib "*) ;;...*) 
325b0 6e 65 77 5f 6c 69 62 73 3d 22 24 64 65 70 6c 69  new_libs="$depli
325c0 62 20 24 6e 65 77 5f 6c 69 62 73 22 20 3b 3b 0a  b $new_libs" ;;.
325d0 09 09 65 73 61 63 0a 09 09 3b 3b 0a 09 20 20 20  ..esac...;;..   
325e0 20 20 20 65 73 61 63 0a 09 20 20 20 20 20 20 3b     esac..      ;
325f0 3b 0a 09 20 20 20 20 65 73 61 63 0a 09 20 20 64  ;..    esac..  d
32600 6f 6e 65 0a 09 20 20 74 6d 70 5f 6c 69 62 73 3d  one..  tmp_libs=
32610 0a 09 20 20 66 6f 72 20 64 65 70 6c 69 62 20 69  ..  for deplib i
32620 6e 20 24 6e 65 77 5f 6c 69 62 73 3b 20 64 6f 0a  n $new_libs; do.
32630 09 20 20 20 20 63 61 73 65 20 24 64 65 70 6c 69  .    case $depli
32640 62 20 69 6e 0a 09 20 20 20 20 2d 4c 2a 29 0a 09  b in..    -L*)..
32650 20 20 20 20 20 20 63 61 73 65 20 22 20 24 74 6d        case " $tm
32660 70 5f 6c 69 62 73 20 22 20 69 6e 0a 09 20 20 20  p_libs " in..   
32670 20 20 20 2a 22 20 24 64 65 70 6c 69 62 20 22 2a     *" $deplib "*
32680 29 20 3b 3b 0a 09 20 20 20 20 20 20 2a 29 20 66  ) ;;..      *) f
32690 75 6e 63 5f 61 70 70 65 6e 64 20 74 6d 70 5f 6c  unc_append tmp_l
326a0 69 62 73 20 22 20 24 64 65 70 6c 69 62 22 20 3b  ibs " $deplib" ;
326b0 3b 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20  ;..      esac.. 
326c0 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 2a 29 20       ;;..    *) 
326d0 66 75 6e 63 5f 61 70 70 65 6e 64 20 74 6d 70 5f  func_append tmp_
326e0 6c 69 62 73 20 22 20 24 64 65 70 6c 69 62 22 20  libs " $deplib" 
326f0 3b 3b 0a 09 20 20 20 20 65 73 61 63 0a 09 20 20  ;;..    esac..  
32700 64 6f 6e 65 0a 09 20 20 65 76 61 6c 20 24 76 61  done..  eval $va
32710 72 3d 5c 22 24 74 6d 70 5f 6c 69 62 73 5c 22 0a  r=\"$tmp_libs\".
32720 09 64 6f 6e 65 20 23 20 66 6f 72 20 76 61 72 0a  .done # for var.
32730 20 20 20 20 20 20 66 69 0a 20 20 20 20 20 20 23        fi.      #
32740 20 4c 61 73 74 20 73 74 65 70 3a 20 72 65 6d 6f   Last step: remo
32750 76 65 20 72 75 6e 74 69 6d 65 20 6c 69 62 73 20  ve runtime libs 
32760 66 72 6f 6d 20 64 65 70 65 6e 64 65 6e 63 79 5f  from dependency_
32770 6c 69 62 73 0a 20 20 20 20 20 20 23 20 28 74 68  libs.      # (th
32780 65 79 20 73 74 61 79 20 69 6e 20 64 65 70 6c 69  ey stay in depli
32790 62 73 29 0a 20 20 20 20 20 20 74 6d 70 5f 6c 69  bs).      tmp_li
327a0 62 73 3d 0a 20 20 20 20 20 20 66 6f 72 20 69 20  bs=.      for i 
327b0 69 6e 20 24 64 65 70 65 6e 64 65 6e 63 79 5f 6c  in $dependency_l
327c0 69 62 73 20 3b 20 64 6f 0a 09 63 61 73 65 20 22  ibs ; do..case "
327d0 20 24 70 72 65 64 65 70 73 20 24 70 6f 73 74 64   $predeps $postd
327e0 65 70 73 20 24 63 6f 6d 70 69 6c 65 72 5f 6c 69  eps $compiler_li
327f0 62 5f 73 65 61 72 63 68 5f 70 61 74 68 20 22 20  b_search_path " 
32800 69 6e 0a 09 2a 22 20 24 69 20 22 2a 29 0a 09 20  in..*" $i "*).. 
32810 20 69 3d 22 22 0a 09 20 20 3b 3b 0a 09 65 73 61   i=""..  ;;..esa
32820 63 0a 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24  c..if test -n "$
32830 69 22 20 3b 20 74 68 65 6e 0a 09 20 20 66 75 6e  i" ; then..  fun
32840 63 5f 61 70 70 65 6e 64 20 74 6d 70 5f 6c 69 62  c_append tmp_lib
32850 73 20 22 20 24 69 22 0a 09 66 69 0a 20 20 20 20  s " $i"..fi.    
32860 20 20 64 6f 6e 65 0a 20 20 20 20 20 20 64 65 70    done.      dep
32870 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 24 74 6d  endency_libs=$tm
32880 70 5f 6c 69 62 73 0a 20 20 20 20 64 6f 6e 65 20  p_libs.    done 
32890 23 20 66 6f 72 20 70 61 73 73 0a 20 20 20 20 69  # for pass.    i
328a0 66 20 74 65 73 74 20 22 24 6c 69 6e 6b 6d 6f 64  f test "$linkmod
328b0 65 22 20 3d 20 70 72 6f 67 3b 20 74 68 65 6e 0a  e" = prog; then.
328c0 20 20 20 20 20 20 64 6c 66 69 6c 65 73 3d 22 24        dlfiles="$
328d0 6e 65 77 64 6c 66 69 6c 65 73 22 0a 20 20 20 20  newdlfiles".    
328e0 66 69 0a 20 20 20 20 69 66 20 74 65 73 74 20 22  fi.    if test "
328f0 24 6c 69 6e 6b 6d 6f 64 65 22 20 3d 20 70 72 6f  $linkmode" = pro
32900 67 20 7c 7c 20 74 65 73 74 20 22 24 6c 69 6e 6b  g || test "$link
32910 6d 6f 64 65 22 20 3d 20 6c 69 62 3b 20 74 68 65  mode" = lib; the
32920 6e 0a 20 20 20 20 20 20 64 6c 70 72 65 66 69 6c  n.      dlprefil
32930 65 73 3d 22 24 6e 65 77 64 6c 70 72 65 66 69 6c  es="$newdlprefil
32940 65 73 22 0a 20 20 20 20 66 69 0a 0a 20 20 20 20  es".    fi..    
32950 63 61 73 65 20 24 6c 69 6e 6b 6d 6f 64 65 20 69  case $linkmode i
32960 6e 0a 20 20 20 20 6f 6c 64 6c 69 62 29 0a 20 20  n.    oldlib).  
32970 20 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22      if test -n "
32980 24 64 6c 66 69 6c 65 73 24 64 6c 70 72 65 66 69  $dlfiles$dlprefi
32990 6c 65 73 22 20 7c 7c 20 74 65 73 74 20 22 24 64  les" || test "$d
329a0 6c 73 65 6c 66 22 20 21 3d 20 6e 6f 3b 20 74 68  lself" != no; th
329b0 65 6e 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67  en..func_warning
329c0 20 22 5c 60 2d 64 6c 6f 70 65 6e 27 20 69 73 20   "\`-dlopen' is 
329d0 69 67 6e 6f 72 65 64 20 66 6f 72 20 61 72 63 68  ignored for arch
329e0 69 76 65 73 22 0a 20 20 20 20 20 20 66 69 0a 0a  ives".      fi..
329f0 20 20 20 20 20 20 63 61 73 65 20 22 20 24 64 65        case " $de
32a00 70 6c 69 62 73 22 20 69 6e 0a 20 20 20 20 20 20  plibs" in.      
32a10 2a 5c 20 2d 6c 2a 20 7c 20 2a 5c 20 2d 4c 2a 29  *\ -l* | *\ -L*)
32a20 0a 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22  ..func_warning "
32a30 5c 60 2d 6c 27 20 61 6e 64 20 5c 60 2d 4c 27 20  \`-l' and \`-L' 
32a40 61 72 65 20 69 67 6e 6f 72 65 64 20 66 6f 72 20  are ignored for 
32a50 61 72 63 68 69 76 65 73 22 20 3b 3b 0a 20 20 20  archives" ;;.   
32a60 20 20 20 65 73 61 63 0a 0a 20 20 20 20 20 20 74     esac..      t
32a70 65 73 74 20 2d 6e 20 22 24 72 70 61 74 68 22 20  est -n "$rpath" 
32a80 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69  && \..func_warni
32a90 6e 67 20 22 5c 60 2d 72 70 61 74 68 27 20 69 73  ng "\`-rpath' is
32aa0 20 69 67 6e 6f 72 65 64 20 66 6f 72 20 61 72 63   ignored for arc
32ab0 68 69 76 65 73 22 0a 0a 20 20 20 20 20 20 74 65  hives"..      te
32ac0 73 74 20 2d 6e 20 22 24 78 72 70 61 74 68 22 20  st -n "$xrpath" 
32ad0 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69  && \..func_warni
32ae0 6e 67 20 22 5c 60 2d 52 27 20 69 73 20 69 67 6e  ng "\`-R' is ign
32af0 6f 72 65 64 20 66 6f 72 20 61 72 63 68 69 76 65  ored for archive
32b00 73 22 0a 0a 20 20 20 20 20 20 74 65 73 74 20 2d  s"..      test -
32b10 6e 20 22 24 76 69 6e 66 6f 22 20 26 26 20 5c 0a  n "$vinfo" && \.
32b20 09 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c  .func_warning "\
32b30 60 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 2f 2d  `-version-info/-
32b40 76 65 72 73 69 6f 6e 2d 6e 75 6d 62 65 72 27 20  version-number' 
32b50 69 73 20 69 67 6e 6f 72 65 64 20 66 6f 72 20 61  is ignored for a
32b60 72 63 68 69 76 65 73 22 0a 0a 20 20 20 20 20 20  rchives"..      
32b70 74 65 73 74 20 2d 6e 20 22 24 72 65 6c 65 61 73  test -n "$releas
32b80 65 22 20 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61  e" && \..func_wa
32b90 72 6e 69 6e 67 20 22 5c 60 2d 72 65 6c 65 61 73  rning "\`-releas
32ba0 65 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66 6f  e' is ignored fo
32bb0 72 20 61 72 63 68 69 76 65 73 22 0a 0a 20 20 20  r archives"..   
32bc0 20 20 20 74 65 73 74 20 2d 6e 20 22 24 65 78 70     test -n "$exp
32bd0 6f 72 74 5f 73 79 6d 62 6f 6c 73 24 65 78 70 6f  ort_symbols$expo
32be0 72 74 5f 73 79 6d 62 6f 6c 73 5f 72 65 67 65 78  rt_symbols_regex
32bf0 22 20 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72  " && \..func_war
32c00 6e 69 6e 67 20 22 5c 60 2d 65 78 70 6f 72 74 2d  ning "\`-export-
32c10 73 79 6d 62 6f 6c 73 27 20 69 73 20 69 67 6e 6f  symbols' is igno
32c20 72 65 64 20 66 6f 72 20 61 72 63 68 69 76 65 73  red for archives
32c30 22 0a 0a 20 20 20 20 20 20 23 20 4e 6f 77 20 73  "..      # Now s
32c40 65 74 20 74 68 65 20 76 61 72 69 61 62 6c 65 73  et the variables
32c50 20 66 6f 72 20 62 75 69 6c 64 69 6e 67 20 6f 6c   for building ol
32c60 64 20 6c 69 62 72 61 72 69 65 73 2e 0a 20 20 20  d libraries..   
32c70 20 20 20 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c     build_libtool
32c80 5f 6c 69 62 73 3d 6e 6f 0a 20 20 20 20 20 20 6f  _libs=no.      o
32c90 6c 64 6c 69 62 73 3d 22 24 6f 75 74 70 75 74 22  ldlibs="$output"
32ca0 0a 20 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65  .      func_appe
32cb0 6e 64 20 6f 62 6a 73 20 22 24 6f 6c 64 5f 64 65  nd objs "$old_de
32cc0 70 6c 69 62 73 22 0a 20 20 20 20 20 20 3b 3b 0a  plibs".      ;;.
32cd0 0a 20 20 20 20 6c 69 62 29 0a 20 20 20 20 20 20  .    lib).      
32ce0 23 20 4d 61 6b 65 20 73 75 72 65 20 77 65 20 6f  # Make sure we o
32cf0 6e 6c 79 20 67 65 6e 65 72 61 74 65 20 6c 69 62  nly generate lib
32d00 72 61 72 69 65 73 20 6f 66 20 74 68 65 20 66 6f  raries of the fo
32d10 72 6d 20 60 6c 69 62 4e 41 4d 45 2e 6c 61 27 2e  rm `libNAME.la'.
32d20 0a 20 20 20 20 20 20 63 61 73 65 20 24 6f 75 74  .      case $out
32d30 70 75 74 6e 61 6d 65 20 69 6e 0a 20 20 20 20 20  putname in.     
32d40 20 6c 69 62 2a 29 0a 09 66 75 6e 63 5f 73 74 72   lib*)..func_str
32d50 69 70 6e 61 6d 65 20 27 6c 69 62 27 20 27 2e 6c  ipname 'lib' '.l
32d60 61 27 20 22 24 6f 75 74 70 75 74 6e 61 6d 65 22  a' "$outputname"
32d70 0a 09 6e 61 6d 65 3d 24 66 75 6e 63 5f 73 74 72  ..name=$func_str
32d80 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74 0a 09 65  ipname_result..e
32d90 76 61 6c 20 73 68 61 72 65 64 5f 65 78 74 3d 5c  val shared_ext=\
32da0 22 24 73 68 72 65 78 74 5f 63 6d 64 73 5c 22 0a  "$shrext_cmds\".
32db0 09 65 76 61 6c 20 6c 69 62 6e 61 6d 65 3d 5c 22  .eval libname=\"
32dc0 24 6c 69 62 6e 61 6d 65 5f 73 70 65 63 5c 22 0a  $libname_spec\".
32dd0 09 3b 3b 0a 20 20 20 20 20 20 2a 29 0a 09 74 65  .;;.      *)..te
32de0 73 74 20 22 24 6d 6f 64 75 6c 65 22 20 3d 20 6e  st "$module" = n
32df0 6f 20 26 26 20 5c 0a 09 20 20 66 75 6e 63 5f 66  o && \..  func_f
32e00 61 74 61 6c 5f 68 65 6c 70 20 22 6c 69 62 74 6f  atal_help "libto
32e10 6f 6c 20 6c 69 62 72 61 72 79 20 5c 60 24 6f 75  ol library \`$ou
32e20 74 70 75 74 27 20 6d 75 73 74 20 62 65 67 69 6e  tput' must begin
32e30 20 77 69 74 68 20 5c 60 6c 69 62 27 22 0a 0a 09   with \`lib'"...
32e40 69 66 20 74 65 73 74 20 22 24 6e 65 65 64 5f 6c  if test "$need_l
32e50 69 62 5f 70 72 65 66 69 78 22 20 21 3d 20 6e 6f  ib_prefix" != no
32e60 3b 20 74 68 65 6e 0a 09 20 20 23 20 41 64 64 20  ; then..  # Add 
32e70 74 68 65 20 22 6c 69 62 22 20 70 72 65 66 69 78  the "lib" prefix
32e80 20 66 6f 72 20 6d 6f 64 75 6c 65 73 20 69 66 20   for modules if 
32e90 72 65 71 75 69 72 65 64 0a 09 20 20 66 75 6e 63  required..  func
32ea0 5f 73 74 72 69 70 6e 61 6d 65 20 27 27 20 27 2e  _stripname '' '.
32eb0 6c 61 27 20 22 24 6f 75 74 70 75 74 6e 61 6d 65  la' "$outputname
32ec0 22 0a 09 20 20 6e 61 6d 65 3d 24 66 75 6e 63 5f  "..  name=$func_
32ed0 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75 6c 74  stripname_result
32ee0 0a 09 20 20 65 76 61 6c 20 73 68 61 72 65 64 5f  ..  eval shared_
32ef0 65 78 74 3d 5c 22 24 73 68 72 65 78 74 5f 63 6d  ext=\"$shrext_cm
32f00 64 73 5c 22 0a 09 20 20 65 76 61 6c 20 6c 69 62  ds\"..  eval lib
32f10 6e 61 6d 65 3d 5c 22 24 6c 69 62 6e 61 6d 65 5f  name=\"$libname_
32f20 73 70 65 63 5c 22 0a 09 65 6c 73 65 0a 09 20 20  spec\"..else..  
32f30 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65 20 27  func_stripname '
32f40 27 20 27 2e 6c 61 27 20 22 24 6f 75 74 70 75 74  ' '.la' "$output
32f50 6e 61 6d 65 22 0a 09 20 20 6c 69 62 6e 61 6d 65  name"..  libname
32f60 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  =$func_stripname
32f70 5f 72 65 73 75 6c 74 0a 09 66 69 0a 09 3b 3b 0a  _result..fi..;;.
32f80 20 20 20 20 20 20 65 73 61 63 0a 0a 20 20 20 20        esac..    
32f90 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24 6f    if test -n "$o
32fa0 62 6a 73 22 3b 20 74 68 65 6e 0a 09 69 66 20 74  bjs"; then..if t
32fb0 65 73 74 20 22 24 64 65 70 6c 69 62 73 5f 63 68  est "$deplibs_ch
32fc0 65 63 6b 5f 6d 65 74 68 6f 64 22 20 21 3d 20 70  eck_method" != p
32fd0 61 73 73 5f 61 6c 6c 3b 20 74 68 65 6e 0a 09 20  ass_all; then.. 
32fe0 20 66 75 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f   func_fatal_erro
32ff0 72 20 22 63 61 6e 6e 6f 74 20 62 75 69 6c 64 20  r "cannot build 
33000 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61 72 79 20  libtool library 
33010 5c 60 24 6f 75 74 70 75 74 27 20 66 72 6f 6d 20  \`$output' from 
33020 6e 6f 6e 2d 6c 69 62 74 6f 6f 6c 20 6f 62 6a 65  non-libtool obje
33030 63 74 73 20 6f 6e 20 74 68 69 73 20 68 6f 73 74  cts on this host
33040 3a 24 6f 62 6a 73 22 0a 09 65 6c 73 65 0a 09 20  :$objs"..else.. 
33050 20 65 63 68 6f 0a 09 20 20 24 45 43 48 4f 20 22   echo..  $ECHO "
33060 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a 20 4c 69 6e  *** Warning: Lin
33070 6b 69 6e 67 20 74 68 65 20 73 68 61 72 65 64 20  king the shared 
33080 6c 69 62 72 61 72 79 20 24 6f 75 74 70 75 74 20  library $output 
33090 61 67 61 69 6e 73 74 20 74 68 65 20 6e 6f 6e 2d  against the non-
330a0 6c 69 62 74 6f 6f 6c 22 0a 09 20 20 24 45 43 48  libtool"..  $ECH
330b0 4f 20 22 2a 2a 2a 20 6f 62 6a 65 63 74 73 20 24  O "*** objects $
330c0 6f 62 6a 73 20 69 73 20 6e 6f 74 20 70 6f 72 74  objs is not port
330d0 61 62 6c 65 21 22 0a 09 20 20 66 75 6e 63 5f 61  able!"..  func_a
330e0 70 70 65 6e 64 20 6c 69 62 6f 62 6a 73 20 22 20  ppend libobjs " 
330f0 24 6f 62 6a 73 22 0a 09 66 69 0a 20 20 20 20 20  $objs"..fi.     
33100 20 66 69 0a 0a 20 20 20 20 20 20 74 65 73 74 20   fi..      test 
33110 22 24 64 6c 73 65 6c 66 22 20 21 3d 20 6e 6f 20  "$dlself" != no 
33120 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69  && \..func_warni
33130 6e 67 20 22 5c 60 2d 64 6c 6f 70 65 6e 20 73 65  ng "\`-dlopen se
33140 6c 66 27 20 69 73 20 69 67 6e 6f 72 65 64 20 66  lf' is ignored f
33150 6f 72 20 6c 69 62 74 6f 6f 6c 20 6c 69 62 72 61  or libtool libra
33160 72 69 65 73 22 0a 0a 20 20 20 20 20 20 73 65 74  ries"..      set
33170 20 64 75 6d 6d 79 20 24 72 70 61 74 68 0a 20 20   dummy $rpath.  
33180 20 20 20 20 73 68 69 66 74 0a 20 20 20 20 20 20      shift.      
33190 74 65 73 74 20 22 24 23 22 20 2d 67 74 20 31 20  test "$#" -gt 1 
331a0 26 26 20 5c 0a 09 66 75 6e 63 5f 77 61 72 6e 69  && \..func_warni
331b0 6e 67 20 22 69 67 6e 6f 72 69 6e 67 20 6d 75 6c  ng "ignoring mul
331c0 74 69 70 6c 65 20 5c 60 2d 72 70 61 74 68 27 73  tiple \`-rpath's
331d0 20 66 6f 72 20 61 20 6c 69 62 74 6f 6f 6c 20 6c   for a libtool l
331e0 69 62 72 61 72 79 22 0a 0a 20 20 20 20 20 20 69  ibrary"..      i
331f0 6e 73 74 61 6c 6c 5f 6c 69 62 64 69 72 3d 22 24  nstall_libdir="$
33200 31 22 0a 0a 20 20 20 20 20 20 6f 6c 64 6c 69 62  1"..      oldlib
33210 73 3d 0a 20 20 20 20 20 20 69 66 20 74 65 73 74  s=.      if test
33220 20 2d 7a 20 22 24 72 70 61 74 68 22 3b 20 74 68   -z "$rpath"; th
33230 65 6e 0a 09 69 66 20 74 65 73 74 20 22 24 62 75  en..if test "$bu
33240 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73  ild_libtool_libs
33250 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 09 20  " = yes; then.. 
33260 20 23 20 42 75 69 6c 64 69 6e 67 20 61 20 6c 69   # Building a li
33270 62 74 6f 6f 6c 20 63 6f 6e 76 65 6e 69 65 6e 63  btool convenienc
33280 65 20 6c 69 62 72 61 72 79 2e 0a 09 20 20 23 20  e library...  # 
33290 53 6f 6d 65 20 63 6f 6d 70 69 6c 65 72 73 20 68  Some compilers h
332a0 61 76 65 20 70 72 6f 62 6c 65 6d 73 20 77 69 74  ave problems wit
332b0 68 20 61 20 60 2e 61 6c 27 20 65 78 74 65 6e 73  h a `.al' extens
332c0 69 6f 6e 20 73 6f 0a 09 20 20 23 20 63 6f 6e 76  ion so..  # conv
332d0 65 6e 69 65 6e 63 65 20 6c 69 62 72 61 72 69 65  enience librarie
332e0 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68  s should have th
332f0 65 20 73 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e  e same extension
33300 20 61 6e 0a 09 20 20 23 20 61 72 63 68 69 76 65   an..  # archive
33310 20 6e 6f 72 6d 61 6c 6c 79 20 77 6f 75 6c 64 2e   normally would.
33320 0a 09 20 20 6f 6c 64 6c 69 62 73 3d 22 24 6f 75  ..  oldlibs="$ou
33330 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6c 69 62  tput_objdir/$lib
33340 6e 61 6d 65 2e 24 6c 69 62 65 78 74 20 24 6f 6c  name.$libext $ol
33350 64 6c 69 62 73 22 0a 09 20 20 62 75 69 6c 64 5f  dlibs"..  build_
33360 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 3d 63 6f 6e  libtool_libs=con
33370 76 65 6e 69 65 6e 63 65 0a 09 20 20 62 75 69 6c  venience..  buil
33380 64 5f 6f 6c 64 5f 6c 69 62 73 3d 79 65 73 0a 09  d_old_libs=yes..
33390 66 69 0a 0a 09 74 65 73 74 20 2d 6e 20 22 24 76  fi...test -n "$v
333a0 69 6e 66 6f 22 20 26 26 20 5c 0a 09 20 20 66 75  info" && \..  fu
333b0 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60 2d 76  nc_warning "\`-v
333c0 65 72 73 69 6f 6e 2d 69 6e 66 6f 2f 2d 76 65 72  ersion-info/-ver
333d0 73 69 6f 6e 2d 6e 75 6d 62 65 72 27 20 69 73 20  sion-number' is 
333e0 69 67 6e 6f 72 65 64 20 66 6f 72 20 63 6f 6e 76  ignored for conv
333f0 65 6e 69 65 6e 63 65 20 6c 69 62 72 61 72 69 65  enience librarie
33400 73 22 0a 0a 09 74 65 73 74 20 2d 6e 20 22 24 72  s"...test -n "$r
33410 65 6c 65 61 73 65 22 20 26 26 20 5c 0a 09 20 20  elease" && \..  
33420 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22 5c 60  func_warning "\`
33430 2d 72 65 6c 65 61 73 65 27 20 69 73 20 69 67 6e  -release' is ign
33440 6f 72 65 64 20 66 6f 72 20 63 6f 6e 76 65 6e 69  ored for conveni
33450 65 6e 63 65 20 6c 69 62 72 61 72 69 65 73 22 0a  ence libraries".
33460 20 20 20 20 20 20 65 6c 73 65 0a 0a 09 23 20 50        else...# P
33470 61 72 73 65 20 74 68 65 20 76 65 72 73 69 6f 6e  arse the version
33480 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 72 67   information arg
33490 75 6d 65 6e 74 2e 0a 09 73 61 76 65 5f 69 66 73  ument...save_ifs
334a0 3d 22 24 49 46 53 22 3b 20 49 46 53 3d 27 3a 27  ="$IFS"; IFS=':'
334b0 0a 09 73 65 74 20 64 75 6d 6d 79 20 24 76 69 6e  ..set dummy $vin
334c0 66 6f 20 30 20 30 20 30 0a 09 73 68 69 66 74 0a  fo 0 0 0..shift.
334d0 09 49 46 53 3d 22 24 73 61 76 65 5f 69 66 73 22  .IFS="$save_ifs"
334e0 0a 0a 09 74 65 73 74 20 2d 6e 20 22 24 37 22 20  ...test -n "$7" 
334f0 26 26 20 5c 0a 09 20 20 66 75 6e 63 5f 66 61 74  && \..  func_fat
33500 61 6c 5f 68 65 6c 70 20 22 74 6f 6f 20 6d 61 6e  al_help "too man
33510 79 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20  y parameters to 
33520 5c 60 2d 76 65 72 73 69 6f 6e 2d 69 6e 66 6f 27  \`-version-info'
33530 22 0a 0a 09 23 20 63 6f 6e 76 65 72 74 20 61 62  "...# convert ab
33540 73 6f 6c 75 74 65 20 76 65 72 73 69 6f 6e 20 6e  solute version n
33550 75 6d 62 65 72 73 20 74 6f 20 6c 69 62 74 6f 6f  umbers to libtoo
33560 6c 20 61 67 65 73 0a 09 23 20 74 68 69 73 20 72  l ages..# this r
33570 65 74 61 69 6e 73 20 63 6f 6d 70 61 74 69 62 69  etains compatibi
33580 6c 69 74 79 20 77 69 74 68 20 2e 6c 61 20 66 69  lity with .la fi
33590 6c 65 73 20 61 6e 64 20 61 74 74 65 6d 70 74 73  les and attempts
335a0 0a 09 23 20 74 6f 20 6d 61 6b 65 20 74 68 65 20  ..# to make the 
335b0 63 6f 64 65 20 62 65 6c 6f 77 20 61 20 62 69 74  code below a bit
335c0 20 6d 6f 72 65 20 63 6f 6d 70 72 65 68 65 6e 73   more comprehens
335d0 69 62 6c 65 0a 0a 09 63 61 73 65 20 24 76 69 6e  ible...case $vin
335e0 66 6f 5f 6e 75 6d 62 65 72 20 69 6e 0a 09 79 65  fo_number in..ye
335f0 73 29 0a 09 20 20 6e 75 6d 62 65 72 5f 6d 61 6a  s)..  number_maj
33600 6f 72 3d 22 24 31 22 0a 09 20 20 6e 75 6d 62 65  or="$1"..  numbe
33610 72 5f 6d 69 6e 6f 72 3d 22 24 32 22 0a 09 20 20  r_minor="$2"..  
33620 6e 75 6d 62 65 72 5f 72 65 76 69 73 69 6f 6e 3d  number_revision=
33630 22 24 33 22 0a 09 20 20 23 0a 09 20 20 23 20 54  "$3"..  #..  # T
33640 68 65 72 65 20 61 72 65 20 72 65 61 6c 6c 79 20  here are really 
33650 6f 6e 6c 79 20 74 77 6f 20 6b 69 6e 64 73 20 2d  only two kinds -
33660 2d 20 74 68 6f 73 65 20 74 68 61 74 0a 09 20 20  - those that..  
33670 23 20 75 73 65 20 74 68 65 20 63 75 72 72 65 6e  # use the curren
33680 74 20 72 65 76 69 73 69 6f 6e 20 61 73 20 74 68  t revision as th
33690 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f 6e 0a  e major version.
336a0 09 20 20 23 20 61 6e 64 20 74 68 6f 73 65 20 74  .  # and those t
336b0 68 61 74 20 73 75 62 74 72 61 63 74 20 61 67 65  hat subtract age
336c0 20 61 6e 64 20 75 73 65 20 61 67 65 20 61 73 0a   and use age as.
336d0 09 20 20 23 20 61 20 6d 69 6e 6f 72 20 76 65 72  .  # a minor ver
336e0 73 69 6f 6e 2e 20 20 42 75 74 2c 20 74 68 65 6e  sion.  But, then
336f0 20 74 68 65 72 65 20 69 73 20 69 72 69 78 0a 09   there is irix..
33700 20 20 23 20 77 68 69 63 68 20 68 61 73 20 61 6e    # which has an
33710 20 65 78 74 72 61 20 31 20 61 64 64 65 64 20 6a   extra 1 added j
33720 75 73 74 20 66 6f 72 20 66 75 6e 0a 09 20 20 23  ust for fun..  #
33730 0a 09 20 20 63 61 73 65 20 24 76 65 72 73 69 6f  ..  case $versio
33740 6e 5f 74 79 70 65 20 69 6e 0a 09 20 20 23 20 63  n_type in..  # c
33750 6f 72 72 65 63 74 20 6c 69 6e 75 78 20 74 6f 20  orrect linux to 
33760 67 6e 75 2f 6c 69 6e 75 78 20 64 75 72 69 6e 67  gnu/linux during
33770 20 74 68 65 20 6e 65 78 74 20 62 69 67 20 72 65   the next big re
33780 66 61 63 74 6f 72 0a 09 20 20 64 61 72 77 69 6e  factor..  darwin
33790 7c 6c 69 6e 75 78 7c 6f 73 66 7c 77 69 6e 64 6f  |linux|osf|windo
337a0 77 73 7c 6e 6f 6e 65 29 0a 09 20 20 20 20 66 75  ws|none)..    fu
337b0 6e 63 5f 61 72 69 74 68 20 24 6e 75 6d 62 65 72  nc_arith $number
337c0 5f 6d 61 6a 6f 72 20 2b 20 24 6e 75 6d 62 65 72  _major + $number
337d0 5f 6d 69 6e 6f 72 0a 09 20 20 20 20 63 75 72 72  _minor..    curr
337e0 65 6e 74 3d 24 66 75 6e 63 5f 61 72 69 74 68 5f  ent=$func_arith_
337f0 72 65 73 75 6c 74 0a 09 20 20 20 20 61 67 65 3d  result..    age=
33800 22 24 6e 75 6d 62 65 72 5f 6d 69 6e 6f 72 22 0a  "$number_minor".
33810 09 20 20 20 20 72 65 76 69 73 69 6f 6e 3d 22 24  .    revision="$
33820 6e 75 6d 62 65 72 5f 72 65 76 69 73 69 6f 6e 22  number_revision"
33830 0a 09 20 20 20 20 3b 3b 0a 09 20 20 66 72 65 65  ..    ;;..  free
33840 62 73 64 2d 61 6f 75 74 7c 66 72 65 65 62 73 64  bsd-aout|freebsd
33850 2d 65 6c 66 7c 71 6e 78 7c 73 75 6e 6f 73 29 0a  -elf|qnx|sunos).
33860 09 20 20 20 20 63 75 72 72 65 6e 74 3d 22 24 6e  .    current="$n
33870 75 6d 62 65 72 5f 6d 61 6a 6f 72 22 0a 09 20 20  umber_major"..  
33880 20 20 72 65 76 69 73 69 6f 6e 3d 22 24 6e 75 6d    revision="$num
33890 62 65 72 5f 6d 69 6e 6f 72 22 0a 09 20 20 20 20  ber_minor"..    
338a0 61 67 65 3d 22 30 22 0a 09 20 20 20 20 3b 3b 0a  age="0"..    ;;.
338b0 09 20 20 69 72 69 78 7c 6e 6f 6e 73 74 6f 70 75  .  irix|nonstopu
338c0 78 29 0a 09 20 20 20 20 66 75 6e 63 5f 61 72 69  x)..    func_ari
338d0 74 68 20 24 6e 75 6d 62 65 72 5f 6d 61 6a 6f 72  th $number_major
338e0 20 2b 20 24 6e 75 6d 62 65 72 5f 6d 69 6e 6f 72   + $number_minor
338f0 0a 09 20 20 20 20 63 75 72 72 65 6e 74 3d 24 66  ..    current=$f
33900 75 6e 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74  unc_arith_result
33910 0a 09 20 20 20 20 61 67 65 3d 22 24 6e 75 6d 62  ..    age="$numb
33920 65 72 5f 6d 69 6e 6f 72 22 0a 09 20 20 20 20 72  er_minor"..    r
33930 65 76 69 73 69 6f 6e 3d 22 24 6e 75 6d 62 65 72  evision="$number
33940 5f 6d 69 6e 6f 72 22 0a 09 20 20 20 20 6c 74 5f  _minor"..    lt_
33950 69 72 69 78 5f 69 6e 63 72 65 6d 65 6e 74 3d 6e  irix_increment=n
33960 6f 0a 09 20 20 20 20 3b 3b 0a 09 20 20 65 73 61  o..    ;;..  esa
33970 63 0a 09 20 20 3b 3b 0a 09 6e 6f 29 0a 09 20 20  c..  ;;..no)..  
33980 63 75 72 72 65 6e 74 3d 22 24 31 22 0a 09 20 20  current="$1"..  
33990 72 65 76 69 73 69 6f 6e 3d 22 24 32 22 0a 09 20  revision="$2".. 
339a0 20 61 67 65 3d 22 24 33 22 0a 09 20 20 3b 3b 0a   age="$3"..  ;;.
339b0 09 65 73 61 63 0a 0a 09 23 20 43 68 65 63 6b 20  .esac...# Check 
339c0 74 68 61 74 20 65 61 63 68 20 6f 66 20 74 68 65  that each of the
339d0 20 74 68 69 6e 67 73 20 61 72 65 20 76 61 6c 69   things are vali
339e0 64 20 6e 75 6d 62 65 72 73 2e 0a 09 63 61 73 65  d numbers...case
339f0 20 24 63 75 72 72 65 6e 74 20 69 6e 0a 09 30 7c   $current in..0|
33a00 5b 31 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d  [1-9]|[1-9][0-9]
33a10 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d  |[1-9][0-9][0-9]
33a20 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d  |[1-9][0-9][0-9]
33a30 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d  [0-9]|[1-9][0-9]
33a40 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 29  [0-9][0-9][0-9])
33a50 20 3b 3b 0a 09 2a 29 0a 09 20 20 66 75 6e 63 5f   ;;..*)..  func_
33a60 65 72 72 6f 72 20 22 43 55 52 52 45 4e 54 20 5c  error "CURRENT \
33a70 60 24 63 75 72 72 65 6e 74 27 20 6d 75 73 74 20  `$current' must 
33a80 62 65 20 61 20 6e 6f 6e 6e 65 67 61 74 69 76 65  be a nonnegative
33a90 20 69 6e 74 65 67 65 72 22 0a 09 20 20 66 75 6e   integer"..  fun
33aa0 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 5c  c_fatal_error "\
33ab0 60 24 76 69 6e 66 6f 27 20 69 73 20 6e 6f 74 20  `$vinfo' is not 
33ac0 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 69 6e  valid version in
33ad0 66 6f 72 6d 61 74 69 6f 6e 22 0a 09 20 20 3b 3b  formation"..  ;;
33ae0 0a 09 65 73 61 63 0a 0a 09 63 61 73 65 20 24 72  ..esac...case $r
33af0 65 76 69 73 69 6f 6e 20 69 6e 0a 09 30 7c 5b 31  evision in..0|[1
33b00 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 7c 5b  -9]|[1-9][0-9]|[
33b10 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 7c 5b  1-9][0-9][0-9]|[
33b20 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30  1-9][0-9][0-9][0
33b30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 5b 30  -9]|[1-9][0-9][0
33b40 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 29 20 3b  -9][0-9][0-9]) ;
33b50 3b 0a 09 2a 29 0a 09 20 20 66 75 6e 63 5f 65 72  ;..*)..  func_er
33b60 72 6f 72 20 22 52 45 56 49 53 49 4f 4e 20 5c 60  ror "REVISION \`
33b70 24 72 65 76 69 73 69 6f 6e 27 20 6d 75 73 74 20  $revision' must 
33b80 62 65 20 61 20 6e 6f 6e 6e 65 67 61 74 69 76 65  be a nonnegative
33b90 20 69 6e 74 65 67 65 72 22 0a 09 20 20 66 75 6e   integer"..  fun
33ba0 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22 5c  c_fatal_error "\
33bb0 60 24 76 69 6e 66 6f 27 20 69 73 20 6e 6f 74 20  `$vinfo' is not 
33bc0 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 69 6e  valid version in
33bd0 66 6f 72 6d 61 74 69 6f 6e 22 0a 09 20 20 3b 3b  formation"..  ;;
33be0 0a 09 65 73 61 63 0a 0a 09 63 61 73 65 20 24 61  ..esac...case $a
33bf0 67 65 20 69 6e 0a 09 30 7c 5b 31 2d 39 5d 7c 5b  ge in..0|[1-9]|[
33c00 31 2d 39 5d 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b  1-9][0-9]|[1-9][
33c10 30 2d 39 5d 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b  0-9][0-9]|[1-9][
33c20 30 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 7c 5b  0-9][0-9][0-9]|[
33c30 31 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30  1-9][0-9][0-9][0
33c40 2d 39 5d 5b 30 2d 39 5d 29 20 3b 3b 0a 09 2a 29  -9][0-9]) ;;..*)
33c50 0a 09 20 20 66 75 6e 63 5f 65 72 72 6f 72 20 22  ..  func_error "
33c60 41 47 45 20 5c 60 24 61 67 65 27 20 6d 75 73 74  AGE \`$age' must
33c70 20 62 65 20 61 20 6e 6f 6e 6e 65 67 61 74 69 76   be a nonnegativ
33c80 65 20 69 6e 74 65 67 65 72 22 0a 09 20 20 66 75  e integer"..  fu
33c90 6e 63 5f 66 61 74 61 6c 5f 65 72 72 6f 72 20 22  nc_fatal_error "
33ca0 5c 60 24 76 69 6e 66 6f 27 20 69 73 20 6e 6f 74  \`$vinfo' is not
33cb0 20 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 69   valid version i
33cc0 6e 66 6f 72 6d 61 74 69 6f 6e 22 0a 09 20 20 3b  nformation"..  ;
33cd0 3b 0a 09 65 73 61 63 0a 0a 09 69 66 20 74 65 73  ;..esac...if tes
33ce0 74 20 22 24 61 67 65 22 20 2d 67 74 20 22 24 63  t "$age" -gt "$c
33cf0 75 72 72 65 6e 74 22 3b 20 74 68 65 6e 0a 09 20  urrent"; then.. 
33d00 20 66 75 6e 63 5f 65 72 72 6f 72 20 22 41 47 45   func_error "AGE
33d10 20 5c 60 24 61 67 65 27 20 69 73 20 67 72 65 61   \`$age' is grea
33d20 74 65 72 20 74 68 61 6e 20 74 68 65 20 63 75 72  ter than the cur
33d30 72 65 6e 74 20 69 6e 74 65 72 66 61 63 65 20 6e  rent interface n
33d40 75 6d 62 65 72 20 5c 60 24 63 75 72 72 65 6e 74  umber \`$current
33d50 27 22 0a 09 20 20 66 75 6e 63 5f 66 61 74 61 6c  '"..  func_fatal
33d60 5f 65 72 72 6f 72 20 22 5c 60 24 76 69 6e 66 6f  _error "\`$vinfo
33d70 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 20 76  ' is not valid v
33d80 65 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69  ersion informati
33d90 6f 6e 22 0a 09 66 69 0a 0a 09 23 20 43 61 6c 63  on"..fi...# Calc
33da0 75 6c 61 74 65 20 74 68 65 20 76 65 72 73 69 6f  ulate the versio
33db0 6e 20 76 61 72 69 61 62 6c 65 73 2e 0a 09 6d 61  n variables...ma
33dc0 6a 6f 72 3d 0a 09 76 65 72 73 75 66 66 69 78 3d  jor=..versuffix=
33dd0 0a 09 76 65 72 73 74 72 69 6e 67 3d 0a 09 63 61  ..verstring=..ca
33de0 73 65 20 24 76 65 72 73 69 6f 6e 5f 74 79 70 65  se $version_type
33df0 20 69 6e 0a 09 6e 6f 6e 65 29 20 3b 3b 0a 0a 09   in..none) ;;...
33e00 64 61 72 77 69 6e 29 0a 09 20 20 23 20 4c 69 6b  darwin)..  # Lik
33e10 65 20 4c 69 6e 75 78 2c 20 62 75 74 20 77 69 74  e Linux, but wit
33e20 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 65  h the current ve
33e30 72 73 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20  rsion available 
33e40 69 6e 0a 09 20 20 23 20 76 65 72 73 74 72 69 6e  in..  # verstrin
33e50 67 20 66 6f 72 20 63 6f 64 69 6e 67 20 69 74 20  g for coding it 
33e60 69 6e 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79  into the library
33e70 20 68 65 61 64 65 72 0a 09 20 20 66 75 6e 63 5f   header..  func_
33e80 61 72 69 74 68 20 24 63 75 72 72 65 6e 74 20 2d  arith $current -
33e90 20 24 61 67 65 0a 09 20 20 6d 61 6a 6f 72 3d 2e   $age..  major=.
33ea0 24 66 75 6e 63 5f 61 72 69 74 68 5f 72 65 73 75  $func_arith_resu
33eb0 6c 74 0a 09 20 20 76 65 72 73 75 66 66 69 78 3d  lt..  versuffix=
33ec0 22 24 6d 61 6a 6f 72 2e 24 61 67 65 2e 24 72 65  "$major.$age.$re
33ed0 76 69 73 69 6f 6e 22 0a 09 20 20 23 20 44 61 72  vision"..  # Dar
33ee0 77 69 6e 20 6c 64 20 64 6f 65 73 6e 27 74 20 6c  win ld doesn't l
33ef0 69 6b 65 20 30 20 66 6f 72 20 74 68 65 73 65 20  ike 0 for these 
33f00 6f 70 74 69 6f 6e 73 2e 2e 2e 0a 09 20 20 66 75  options.....  fu
33f10 6e 63 5f 61 72 69 74 68 20 24 63 75 72 72 65 6e  nc_arith $curren
33f20 74 20 2b 20 31 0a 09 20 20 6d 69 6e 6f 72 5f 63  t + 1..  minor_c
33f30 75 72 72 65 6e 74 3d 24 66 75 6e 63 5f 61 72 69  urrent=$func_ari
33f40 74 68 5f 72 65 73 75 6c 74 0a 09 20 20 78 6c 63  th_result..  xlc
33f50 76 65 72 73 74 72 69 6e 67 3d 22 24 7b 77 6c 7d  verstring="${wl}
33f60 2d 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 5f 76  -compatibility_v
33f70 65 72 73 69 6f 6e 20 24 7b 77 6c 7d 24 6d 69 6e  ersion ${wl}$min
33f80 6f 72 5f 63 75 72 72 65 6e 74 20 24 7b 77 6c 7d  or_current ${wl}
33f90 2d 63 75 72 72 65 6e 74 5f 76 65 72 73 69 6f 6e  -current_version
33fa0 20 24 7b 77 6c 7d 24 6d 69 6e 6f 72 5f 63 75 72   ${wl}$minor_cur
33fb0 72 65 6e 74 2e 24 72 65 76 69 73 69 6f 6e 22 0a  rent.$revision".
33fc0 09 20 20 76 65 72 73 74 72 69 6e 67 3d 22 2d 63  .  verstring="-c
33fd0 6f 6d 70 61 74 69 62 69 6c 69 74 79 5f 76 65 72  ompatibility_ver
33fe0 73 69 6f 6e 20 24 6d 69 6e 6f 72 5f 63 75 72 72  sion $minor_curr
33ff0 65 6e 74 20 2d 63 75 72 72 65 6e 74 5f 76 65 72  ent -current_ver
34000 73 69 6f 6e 20 24 6d 69 6e 6f 72 5f 63 75 72 72  sion $minor_curr
34010 65 6e 74 2e 24 72 65 76 69 73 69 6f 6e 22 0a 09  ent.$revision"..
34020 20 20 3b 3b 0a 0a 09 66 72 65 65 62 73 64 2d 61    ;;...freebsd-a
34030 6f 75 74 29 0a 09 20 20 6d 61 6a 6f 72 3d 22 2e  out)..  major=".
34040 24 63 75 72 72 65 6e 74 22 0a 09 20 20 76 65 72  $current"..  ver
34050 73 75 66 66 69 78 3d 22 2e 24 63 75 72 72 65 6e  suffix=".$curren
34060 74 2e 24 72 65 76 69 73 69 6f 6e 22 3b 0a 09 20  t.$revision";.. 
34070 20 3b 3b 0a 0a 09 66 72 65 65 62 73 64 2d 65 6c   ;;...freebsd-el
34080 66 29 0a 09 20 20 6d 61 6a 6f 72 3d 22 2e 24 63  f)..  major=".$c
34090 75 72 72 65 6e 74 22 0a 09 20 20 76 65 72 73 75  urrent"..  versu
340a0 66 66 69 78 3d 22 2e 24 63 75 72 72 65 6e 74 22  ffix=".$current"
340b0 0a 09 20 20 3b 3b 0a 0a 09 69 72 69 78 20 7c 20  ..  ;;...irix | 
340c0 6e 6f 6e 73 74 6f 70 75 78 29 0a 09 20 20 69 66  nonstopux)..  if
340d0 20 74 65 73 74 20 22 58 24 6c 74 5f 69 72 69 78   test "X$lt_irix
340e0 5f 69 6e 63 72 65 6d 65 6e 74 22 20 3d 20 22 58  _increment" = "X
340f0 6e 6f 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 66  no"; then..    f
34100 75 6e 63 5f 61 72 69 74 68 20 24 63 75 72 72 65  unc_arith $curre
34110 6e 74 20 2d 20 24 61 67 65 0a 09 20 20 65 6c 73  nt - $age..  els
34120 65 0a 09 20 20 20 20 66 75 6e 63 5f 61 72 69 74  e..    func_arit
34130 68 20 24 63 75 72 72 65 6e 74 20 2d 20 24 61 67  h $current - $ag
34140 65 20 2b 20 31 0a 09 20 20 66 69 0a 09 20 20 6d  e + 1..  fi..  m
34150 61 6a 6f 72 3d 24 66 75 6e 63 5f 61 72 69 74 68  ajor=$func_arith
34160 5f 72 65 73 75 6c 74 0a 0a 09 20 20 63 61 73 65  _result...  case
34170 20 24 76 65 72 73 69 6f 6e 5f 74 79 70 65 20 69   $version_type i
34180 6e 0a 09 20 20 20 20 6e 6f 6e 73 74 6f 70 75 78  n..    nonstopux
34190 29 20 76 65 72 73 74 72 69 6e 67 5f 70 72 65 66  ) verstring_pref
341a0 69 78 3d 6e 6f 6e 73 74 6f 70 75 78 20 3b 3b 0a  ix=nonstopux ;;.
341b0 09 20 20 20 20 2a 29 20 20 20 20 20 20 20 20 20  .    *)         
341c0 76 65 72 73 74 72 69 6e 67 5f 70 72 65 66 69 78  verstring_prefix
341d0 3d 73 67 69 20 3b 3b 0a 09 20 20 65 73 61 63 0a  =sgi ;;..  esac.
341e0 09 20 20 76 65 72 73 74 72 69 6e 67 3d 22 24 76  .  verstring="$v
341f0 65 72 73 74 72 69 6e 67 5f 70 72 65 66 69 78 24  erstring_prefix$
34200 6d 61 6a 6f 72 2e 24 72 65 76 69 73 69 6f 6e 22  major.$revision"
34210 0a 0a 09 20 20 23 20 41 64 64 20 69 6e 20 61 6c  ...  # Add in al
34220 6c 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 73  l the interfaces
34230 20 74 68 61 74 20 77 65 20 61 72 65 20 63 6f 6d   that we are com
34240 70 61 74 69 62 6c 65 20 77 69 74 68 2e 0a 09 20  patible with... 
34250 20 6c 6f 6f 70 3d 24 72 65 76 69 73 69 6f 6e 0a   loop=$revision.
34260 09 20 20 77 68 69 6c 65 20 74 65 73 74 20 22 24  .  while test "$
34270 6c 6f 6f 70 22 20 2d 6e 65 20 30 3b 20 64 6f 0a  loop" -ne 0; do.
34280 09 20 20 20 20 66 75 6e 63 5f 61 72 69 74 68 20  .    func_arith 
34290 24 72 65 76 69 73 69 6f 6e 20 2d 20 24 6c 6f 6f  $revision - $loo
342a0 70 0a 09 20 20 20 20 69 66 61 63 65 3d 24 66 75  p..    iface=$fu
342b0 6e 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a  nc_arith_result.
342c0 09 20 20 20 20 66 75 6e 63 5f 61 72 69 74 68 20  .    func_arith 
342d0 24 6c 6f 6f 70 20 2d 20 31 0a 09 20 20 20 20 6c  $loop - 1..    l
342e0 6f 6f 70 3d 24 66 75 6e 63 5f 61 72 69 74 68 5f  oop=$func_arith_
342f0 72 65 73 75 6c 74 0a 09 20 20 20 20 76 65 72 73  result..    vers
34300 74 72 69 6e 67 3d 22 24 76 65 72 73 74 72 69 6e  tring="$verstrin
34310 67 5f 70 72 65 66 69 78 24 6d 61 6a 6f 72 2e 24  g_prefix$major.$
34320 69 66 61 63 65 3a 24 76 65 72 73 74 72 69 6e 67  iface:$verstring
34330 22 0a 09 20 20 64 6f 6e 65 0a 0a 09 20 20 23 20  "..  done...  # 
34340 42 65 66 6f 72 65 20 74 68 69 73 20 70 6f 69 6e  Before this poin
34350 74 2c 20 24 6d 61 6a 6f 72 20 6d 75 73 74 20 6e  t, $major must n
34360 6f 74 20 63 6f 6e 74 61 69 6e 20 60 2e 27 2e 0a  ot contain `.'..
34370 09 20 20 6d 61 6a 6f 72 3d 2e 24 6d 61 6a 6f 72  .  major=.$major
34380 0a 09 20 20 76 65 72 73 75 66 66 69 78 3d 22 24  ..  versuffix="$
34390 6d 61 6a 6f 72 2e 24 72 65 76 69 73 69 6f 6e 22  major.$revision"
343a0 0a 09 20 20 3b 3b 0a 0a 09 6c 69 6e 75 78 29 20  ..  ;;...linux) 
343b0 23 20 63 6f 72 72 65 63 74 20 74 6f 20 67 6e 75  # correct to gnu
343c0 2f 6c 69 6e 75 78 20 64 75 72 69 6e 67 20 74 68  /linux during th
343d0 65 20 6e 65 78 74 20 62 69 67 20 72 65 66 61 63  e next big refac
343e0 74 6f 72 0a 09 20 20 66 75 6e 63 5f 61 72 69 74  tor..  func_arit
343f0 68 20 24 63 75 72 72 65 6e 74 20 2d 20 24 61 67  h $current - $ag
34400 65 0a 09 20 20 6d 61 6a 6f 72 3d 2e 24 66 75 6e  e..  major=.$fun
34410 63 5f 61 72 69 74 68 5f 72 65 73 75 6c 74 0a 09  c_arith_result..
34420 20 20 76 65 72 73 75 66 66 69 78 3d 22 24 6d 61    versuffix="$ma
34430 6a 6f 72 2e 24 61 67 65 2e 24 72 65 76 69 73 69  jor.$age.$revisi
34440 6f 6e 22 0a 09 20 20 3b 3b 0a 0a 09 6f 73 66 29  on"..  ;;...osf)
34450 0a 09 20 20 66 75 6e 63 5f 61 72 69 74 68 20 24  ..  func_arith $
34460 63 75 72 72 65 6e 74 20 2d 20 24 61 67 65 0a 09  current - $age..
34470 20 20 6d 61 6a 6f 72 3d 2e 24 66 75 6e 63 5f 61    major=.$func_a
34480 72 69 74 68 5f 72 65 73 75 6c 74 0a 09 20 20 76  rith_result..  v
34490 65 72 73 75 66 66 69 78 3d 22 2e 24 63 75 72 72  ersuffix=".$curr
344a0 65 6e 74 2e 24 61 67 65 2e 24 72 65 76 69 73 69  ent.$age.$revisi
344b0 6f 6e 22 0a 09 20 20 76 65 72 73 74 72 69 6e 67  on"..  verstring
344c0 3d 22 24 63 75 72 72 65 6e 74 2e 24 61 67 65 2e  ="$current.$age.
344d0 24 72 65 76 69 73 69 6f 6e 22 0a 0a 09 20 20 23  $revision"...  #
344e0 20 41 64 64 20 69 6e 20 61 6c 6c 20 74 68 65 20   Add in all the 
344f0 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20  interfaces that 
34500 77 65 20 61 72 65 20 63 6f 6d 70 61 74 69 62 6c  we are compatibl
34510 65 20 77 69 74 68 2e 0a 09 20 20 6c 6f 6f 70 3d  e with...  loop=
34520 24 61 67 65 0a 09 20 20 77 68 69 6c 65 20 74 65  $age..  while te
34530 73 74 20 22 24 6c 6f 6f 70 22 20 2d 6e 65 20 30  st "$loop" -ne 0
34540 3b 20 64 6f 0a 09 20 20 20 20 66 75 6e 63 5f 61  ; do..    func_a
34550 72 69 74 68 20 24 63 75 72 72 65 6e 74 20 2d 20  rith $current - 
34560 24 6c 6f 6f 70 0a 09 20 20 20 20 69 66 61 63 65  $loop..    iface
34570 3d 24 66 75 6e 63 5f 61 72 69 74 68 5f 72 65 73  =$func_arith_res
34580 75 6c 74 0a 09 20 20 20 20 66 75 6e 63 5f 61 72  ult..    func_ar
34590 69 74 68 20 24 6c 6f 6f 70 20 2d 20 31 0a 09 20  ith $loop - 1.. 
345a0 20 20 20 6c 6f 6f 70 3d 24 66 75 6e 63 5f 61 72     loop=$func_ar
345b0 69 74 68 5f 72 65 73 75 6c 74 0a 09 20 20 20 20  ith_result..    
345c0 76 65 72 73 74 72 69 6e 67 3d 22 24 76 65 72 73  verstring="$vers
345d0 74 72 69 6e 67 3a 24 7b 69 66 61 63 65 7d 2e 30  tring:${iface}.0
345e0 22 0a 09 20 20 64 6f 6e 65 0a 0a 09 20 20 23 20  "..  done...  # 
345f0 4d 61 6b 65 20 65 78 65 63 75 74 61 62 6c 65 73  Make executables
34600 20 64 65 70 65 6e 64 20 6f 6e 20 6f 75 72 20 63   depend on our c
34610 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 2e 0a  urrent version..
34620 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20 76  .  func_append v
34630 65 72 73 74 72 69 6e 67 20 22 3a 24 7b 63 75 72  erstring ":${cur
34640 72 65 6e 74 7d 2e 30 22 0a 09 20 20 3b 3b 0a 0a  rent}.0"..  ;;..
34650 09 71 6e 78 29 0a 09 20 20 6d 61 6a 6f 72 3d 22  .qnx)..  major="
34660 2e 24 63 75 72 72 65 6e 74 22 0a 09 20 20 76 65  .$current"..  ve
34670 72 73 75 66 66 69 78 3d 22 2e 24 63 75 72 72 65  rsuffix=".$curre
34680 6e 74 22 0a 09 20 20 3b 3b 0a 0a 09 73 75 6e 6f  nt"..  ;;...suno
34690 73 29 0a 09 20 20 6d 61 6a 6f 72 3d 22 2e 24 63  s)..  major=".$c
346a0 75 72 72 65 6e 74 22 0a 09 20 20 76 65 72 73 75  urrent"..  versu
346b0 66 66 69 78 3d 22 2e 24 63 75 72 72 65 6e 74 2e  ffix=".$current.
346c0 24 72 65 76 69 73 69 6f 6e 22 0a 09 20 20 3b 3b  $revision"..  ;;
346d0 0a 0a 09 77 69 6e 64 6f 77 73 29 0a 09 20 20 23  ...windows)..  #
346e0 20 55 73 65 20 27 2d 27 20 72 61 74 68 65 72 20   Use '-' rather 
346f0 74 68 61 6e 20 27 2e 27 2c 20 73 69 6e 63 65 20  than '.', since 
34700 77 65 20 6f 6e 6c 79 20 77 61 6e 74 20 6f 6e 65  we only want one
34710 0a 09 20 20 23 20 65 78 74 65 6e 73 69 6f 6e 20  ..  # extension 
34720 6f 6e 20 44 4f 53 20 38 2e 33 20 66 69 6c 65 73  on DOS 8.3 files
34730 79 73 74 65 6d 73 2e 0a 09 20 20 66 75 6e 63 5f  ystems...  func_
34740 61 72 69 74 68 20 24 63 75 72 72 65 6e 74 20 2d  arith $current -
34750 20 24 61 67 65 0a 09 20 20 6d 61 6a 6f 72 3d 24   $age..  major=$
34760 66 75 6e 63 5f 61 72 69 74 68 5f 72 65 73 75 6c  func_arith_resul
34770 74 0a 09 20 20 76 65 72 73 75 66 66 69 78 3d 22  t..  versuffix="
34780 2d 24 6d 61 6a 6f 72 22 0a 09 20 20 3b 3b 0a 0a  -$major"..  ;;..
34790 09 2a 29 0a 09 20 20 66 75 6e 63 5f 66 61 74 61  .*)..  func_fata
347a0 6c 5f 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  l_configuration 
347b0 22 75 6e 6b 6e 6f 77 6e 20 6c 69 62 72 61 72 79  "unknown library
347c0 20 76 65 72 73 69 6f 6e 20 74 79 70 65 20 5c 60   version type \`
347d0 24 76 65 72 73 69 6f 6e 5f 74 79 70 65 27 22 0a  $version_type'".
347e0 09 20 20 3b 3b 0a 09 65 73 61 63 0a 0a 09 23 20  .  ;;..esac...# 
347f0 43 6c 65 61 72 20 74 68 65 20 76 65 72 73 69 6f  Clear the versio
34800 6e 20 69 6e 66 6f 20 69 66 20 77 65 20 64 65 66  n info if we def
34810 61 75 6c 74 65 64 2c 20 61 6e 64 20 74 68 65 79  aulted, and they
34820 20 73 70 65 63 69 66 69 65 64 20 61 20 72 65 6c   specified a rel
34830 65 61 73 65 2e 0a 09 69 66 20 74 65 73 74 20 2d  ease...if test -
34840 7a 20 22 24 76 69 6e 66 6f 22 20 26 26 20 74 65  z "$vinfo" && te
34850 73 74 20 2d 6e 20 22 24 72 65 6c 65 61 73 65 22  st -n "$release"
34860 3b 20 74 68 65 6e 0a 09 20 20 6d 61 6a 6f 72 3d  ; then..  major=
34870 0a 09 20 20 63 61 73 65 20 24 76 65 72 73 69 6f  ..  case $versio
34880 6e 5f 74 79 70 65 20 69 6e 0a 09 20 20 64 61 72  n_type in..  dar
34890 77 69 6e 29 0a 09 20 20 20 20 23 20 77 65 20 63  win)..    # we c
348a0 61 6e 27 74 20 63 68 65 63 6b 20 66 6f 72 20 22  an't check for "
348b0 30 2e 30 22 20 69 6e 20 61 72 63 68 69 76 65 5f  0.0" in archive_
348c0 63 6d 64 73 20 64 75 65 20 74 6f 20 71 75 6f 74  cmds due to quot
348d0 69 6e 67 0a 09 20 20 20 20 23 20 70 72 6f 62 6c  ing..    # probl
348e0 65 6d 73 2c 20 73 6f 20 77 65 20 72 65 73 65 74  ems, so we reset
348f0 20 69 74 20 63 6f 6d 70 6c 65 74 65 6c 79 0a 09   it completely..
34900 20 20 20 20 76 65 72 73 74 72 69 6e 67 3d 0a 09      verstring=..
34910 20 20 20 20 3b 3b 0a 09 20 20 2a 29 0a 09 20 20      ;;..  *)..  
34920 20 20 76 65 72 73 74 72 69 6e 67 3d 22 30 2e 30    verstring="0.0
34930 22 0a 09 20 20 20 20 3b 3b 0a 09 20 20 65 73 61  "..    ;;..  esa
34940 63 0a 09 20 20 69 66 20 74 65 73 74 20 22 24 6e  c..  if test "$n
34950 65 65 64 5f 76 65 72 73 69 6f 6e 22 20 3d 20 6e  eed_version" = n
34960 6f 3b 20 74 68 65 6e 0a 09 20 20 20 20 76 65 72  o; then..    ver
34970 73 75 66 66 69 78 3d 0a 09 20 20 65 6c 73 65 0a  suffix=..  else.
34980 09 20 20 20 20 76 65 72 73 75 66 66 69 78 3d 22  .    versuffix="
34990 2e 30 2e 30 22 0a 09 20 20 66 69 0a 09 66 69 0a  .0.0"..  fi..fi.
349a0 0a 09 23 20 52 65 6d 6f 76 65 20 76 65 72 73 69  ..# Remove versi
349b0 6f 6e 20 69 6e 66 6f 20 66 72 6f 6d 20 6e 61 6d  on info from nam
349c0 65 20 69 66 20 76 65 72 73 69 6f 6e 69 6e 67 20  e if versioning 
349d0 73 68 6f 75 6c 64 20 62 65 20 61 76 6f 69 64 65  should be avoide
349e0 64 0a 09 69 66 20 74 65 73 74 20 22 24 61 76 6f  d..if test "$avo
349f0 69 64 5f 76 65 72 73 69 6f 6e 22 20 3d 20 79 65  id_version" = ye
34a00 73 20 26 26 20 74 65 73 74 20 22 24 6e 65 65 64  s && test "$need
34a10 5f 76 65 72 73 69 6f 6e 22 20 3d 20 6e 6f 3b 20  _version" = no; 
34a20 74 68 65 6e 0a 09 20 20 6d 61 6a 6f 72 3d 0a 09  then..  major=..
34a30 20 20 76 65 72 73 75 66 66 69 78 3d 0a 09 20 20    versuffix=..  
34a40 76 65 72 73 74 72 69 6e 67 3d 22 22 0a 09 66 69  verstring=""..fi
34a50 0a 0a 09 23 20 43 68 65 63 6b 20 74 6f 20 73 65  ...# Check to se
34a60 65 20 69 66 20 74 68 65 20 61 72 63 68 69 76 65  e if the archive
34a70 20 77 69 6c 6c 20 68 61 76 65 20 75 6e 64 65 66   will have undef
34a80 69 6e 65 64 20 73 79 6d 62 6f 6c 73 2e 0a 09 69  ined symbols...i
34a90 66 20 74 65 73 74 20 22 24 61 6c 6c 6f 77 5f 75  f test "$allow_u
34aa0 6e 64 65 66 69 6e 65 64 22 20 3d 20 79 65 73 3b  ndefined" = yes;
34ab0 20 74 68 65 6e 0a 09 20 20 69 66 20 74 65 73 74   then..  if test
34ac0 20 22 24 61 6c 6c 6f 77 5f 75 6e 64 65 66 69 6e   "$allow_undefin
34ad0 65 64 5f 66 6c 61 67 22 20 3d 20 75 6e 73 75 70  ed_flag" = unsup
34ae0 70 6f 72 74 65 64 3b 20 74 68 65 6e 0a 09 20 20  ported; then..  
34af0 20 20 66 75 6e 63 5f 77 61 72 6e 69 6e 67 20 22    func_warning "
34b00 75 6e 64 65 66 69 6e 65 64 20 73 79 6d 62 6f 6c  undefined symbol
34b10 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 6e  s not allowed in
34b20 20 24 68 6f 73 74 20 73 68 61 72 65 64 20 6c 69   $host shared li
34b30 62 72 61 72 69 65 73 22 0a 09 20 20 20 20 62 75  braries"..    bu
34b40 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73  ild_libtool_libs
34b50 3d 6e 6f 0a 09 20 20 20 20 62 75 69 6c 64 5f 6f  =no..    build_o
34b60 6c 64 5f 6c 69 62 73 3d 79 65 73 0a 09 20 20 66  ld_libs=yes..  f
34b70 69 0a 09 65 6c 73 65 0a 09 20 20 23 20 44 6f 6e  i..else..  # Don
34b80 27 74 20 61 6c 6c 6f 77 20 75 6e 64 65 66 69 6e  't allow undefin
34b90 65 64 20 73 79 6d 62 6f 6c 73 2e 0a 09 20 20 61  ed symbols...  a
34ba0 6c 6c 6f 77 5f 75 6e 64 65 66 69 6e 65 64 5f 66  llow_undefined_f
34bb0 6c 61 67 3d 22 24 6e 6f 5f 75 6e 64 65 66 69 6e  lag="$no_undefin
34bc0 65 64 5f 66 6c 61 67 22 0a 09 66 69 0a 0a 20 20  ed_flag"..fi..  
34bd0 20 20 20 20 66 69 0a 0a 20 20 20 20 20 20 66 75      fi..      fu
34be0 6e 63 5f 67 65 6e 65 72 61 74 65 5f 64 6c 73 79  nc_generate_dlsy
34bf0 6d 73 20 22 24 6c 69 62 6e 61 6d 65 22 20 22 24  ms "$libname" "$
34c00 6c 69 62 6e 61 6d 65 22 20 22 79 65 73 22 0a 20  libname" "yes". 
34c10 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64       func_append
34c20 20 6c 69 62 6f 62 6a 73 20 22 20 24 73 79 6d 66   libobjs " $symf
34c30 69 6c 65 6f 62 6a 22 0a 20 20 20 20 20 20 74 65  ileobj".      te
34c40 73 74 20 22 58 24 6c 69 62 6f 62 6a 73 22 20 3d  st "X$libobjs" =
34c50 20 22 58 20 22 20 26 26 20 6c 69 62 6f 62 6a 73   "X " && libobjs
34c60 3d 0a 0a 20 20 20 20 20 20 69 66 20 74 65 73 74  =..      if test
34c70 20 22 24 6f 70 74 5f 6d 6f 64 65 22 20 21 3d 20   "$opt_mode" != 
34c80 72 65 6c 69 6e 6b 3b 20 74 68 65 6e 0a 09 23 20  relink; then..# 
34c90 52 65 6d 6f 76 65 20 6f 75 72 20 6f 75 74 70 75  Remove our outpu
34ca0 74 73 2c 20 62 75 74 20 64 6f 6e 27 74 20 72 65  ts, but don't re
34cb0 6d 6f 76 65 20 6f 62 6a 65 63 74 20 66 69 6c 65  move object file
34cc0 73 20 73 69 6e 63 65 20 74 68 65 79 0a 09 23 20  s since they..# 
34cd0 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 63 72  may have been cr
34ce0 65 61 74 65 64 20 77 68 65 6e 20 63 6f 6d 70 69  eated when compi
34cf0 6c 69 6e 67 20 50 49 43 20 6f 62 6a 65 63 74 73  ling PIC objects
34d00 2e 0a 09 72 65 6d 6f 76 65 6c 69 73 74 3d 0a 09  ...removelist=..
34d10 74 65 6d 70 72 65 6d 6f 76 65 6c 69 73 74 3d 60  tempremovelist=`
34d20 24 45 43 48 4f 20 22 24 6f 75 74 70 75 74 5f 6f  $ECHO "$output_o
34d30 62 6a 64 69 72 2f 2a 22 60 0a 09 66 6f 72 20 70  bjdir/*"`..for p
34d40 20 69 6e 20 24 74 65 6d 70 72 65 6d 6f 76 65 6c   in $tempremovel
34d50 69 73 74 3b 20 64 6f 0a 09 20 20 63 61 73 65 20  ist; do..  case 
34d60 24 70 20 69 6e 0a 09 20 20 20 20 2a 2e 24 6f 62  $p in..    *.$ob
34d70 6a 65 78 74 20 7c 20 2a 2e 67 63 6e 6f 29 0a 09  jext | *.gcno)..
34d80 20 20 20 20 20 20 20 3b 3b 0a 09 20 20 20 20 24         ;;..    $
34d90 6f 75 74 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6f  output_objdir/$o
34da0 75 74 70 75 74 6e 61 6d 65 20 7c 20 24 6f 75 74  utputname | $out
34db0 70 75 74 5f 6f 62 6a 64 69 72 2f 24 6c 69 62 6e  put_objdir/$libn
34dc0 61 6d 65 2e 2a 20 7c 20 24 6f 75 74 70 75 74 5f  ame.* | $output_
34dd0 6f 62 6a 64 69 72 2f 24 7b 6c 69 62 6e 61 6d 65  objdir/${libname
34de0 7d 24 7b 72 65 6c 65 61 73 65 7d 2e 2a 29 0a 09  }${release}.*)..
34df0 20 20 20 20 20 20 20 69 66 20 74 65 73 74 20 22         if test "
34e00 58 24 70 72 65 63 69 6f 75 73 5f 66 69 6c 65 73  X$precious_files
34e10 5f 72 65 67 65 78 22 20 21 3d 20 22 58 22 3b 20  _regex" != "X"; 
34e20 74 68 65 6e 0a 09 09 20 69 66 20 24 45 43 48 4f  then... if $ECHO
34e30 20 22 24 70 22 20 7c 20 24 45 47 52 45 50 20 2d   "$p" | $EGREP -
34e40 65 20 22 24 70 72 65 63 69 6f 75 73 5f 66 69 6c  e "$precious_fil
34e50 65 73 5f 72 65 67 65 78 22 20 3e 2f 64 65 76 2f  es_regex" >/dev/
34e60 6e 75 6c 6c 20 32 3e 26 31 0a 09 09 20 74 68 65  null 2>&1... the
34e70 6e 0a 09 09 20 20 20 63 6f 6e 74 69 6e 75 65 0a  n...   continue.
34e80 09 09 20 66 69 0a 09 20 20 20 20 20 20 20 66 69  .. fi..       fi
34e90 0a 09 20 20 20 20 20 20 20 66 75 6e 63 5f 61 70  ..       func_ap
34ea0 70 65 6e 64 20 72 65 6d 6f 76 65 6c 69 73 74 20  pend removelist 
34eb0 22 20 24 70 22 0a 09 20 20 20 20 20 20 20 3b 3b  " $p"..       ;;
34ec0 0a 09 20 20 20 20 2a 29 20 3b 3b 0a 09 20 20 65  ..    *) ;;..  e
34ed0 73 61 63 0a 09 64 6f 6e 65 0a 09 74 65 73 74 20  sac..done..test 
34ee0 2d 6e 20 22 24 72 65 6d 6f 76 65 6c 69 73 74 22  -n "$removelist"
34ef0 20 26 26 20 5c 0a 09 20 20 66 75 6e 63 5f 73 68   && \..  func_sh
34f00 6f 77 5f 65 76 61 6c 20 22 24 7b 52 4d 7d 72 20  ow_eval "${RM}r 
34f10 5c 24 72 65 6d 6f 76 65 6c 69 73 74 22 0a 20 20  \$removelist".  
34f20 20 20 20 20 66 69 0a 0a 20 20 20 20 20 20 23 20      fi..      # 
34f30 4e 6f 77 20 73 65 74 20 74 68 65 20 76 61 72 69  Now set the vari
34f40 61 62 6c 65 73 20 66 6f 72 20 62 75 69 6c 64 69  ables for buildi
34f50 6e 67 20 6f 6c 64 20 6c 69 62 72 61 72 69 65 73  ng old libraries
34f60 2e 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
34f70 22 24 62 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73  "$build_old_libs
34f80 22 20 3d 20 79 65 73 20 26 26 20 74 65 73 74 20  " = yes && test 
34f90 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f  "$build_libtool_
34fa0 6c 69 62 73 22 20 21 3d 20 63 6f 6e 76 65 6e 69  libs" != conveni
34fb0 65 6e 63 65 20 3b 20 74 68 65 6e 0a 09 66 75 6e  ence ; then..fun
34fc0 63 5f 61 70 70 65 6e 64 20 6f 6c 64 6c 69 62 73  c_append oldlibs
34fd0 20 22 20 24 6f 75 74 70 75 74 5f 6f 62 6a 64 69   " $output_objdi
34fe0 72 2f 24 6c 69 62 6e 61 6d 65 2e 24 6c 69 62 65  r/$libname.$libe
34ff0 78 74 22 0a 0a 09 23 20 54 72 61 6e 73 66 6f 72  xt"...# Transfor
35000 6d 20 2e 6c 6f 20 66 69 6c 65 73 20 74 6f 20 2e  m .lo files to .
35010 6f 20 66 69 6c 65 73 2e 0a 09 6f 6c 64 6f 62 6a  o files...oldobj
35020 73 3d 22 24 6f 62 6a 73 20 22 60 24 45 43 48 4f  s="$objs "`$ECHO
35030 20 22 24 6c 69 62 6f 62 6a 73 22 20 7c 20 24 53   "$libobjs" | $S
35040 50 32 4e 4c 20 7c 20 24 53 45 44 20 22 2f 5c 2e  P2NL | $SED "/\.
35050 24 7b 6c 69 62 65 78 74 7d 24 2f 64 3b 20 24 6c  ${libext}$/d; $l
35060 6f 32 6f 22 20 7c 20 24 4e 4c 32 53 50 60 0a 20  o2o" | $NL2SP`. 
35070 20 20 20 20 20 66 69 0a 0a 20 20 20 20 20 20 23       fi..      #
35080 20 45 6c 69 6d 69 6e 61 74 65 20 61 6c 6c 20 74   Eliminate all t
35090 65 6d 70 6f 72 61 72 79 20 64 69 72 65 63 74 6f  emporary directo
350a0 72 69 65 73 2e 0a 20 20 20 20 20 20 23 66 6f 72  ries..      #for
350b0 20 70 61 74 68 20 69 6e 20 24 6e 6f 74 69 6e 73   path in $notins
350c0 74 5f 70 61 74 68 3b 20 64 6f 0a 20 20 20 20 20  t_path; do.     
350d0 20 23 09 6c 69 62 5f 73 65 61 72 63 68 5f 70 61   #.lib_search_pa
350e0 74 68 3d 60 24 45 43 48 4f 20 22 24 6c 69 62 5f  th=`$ECHO "$lib_
350f0 73 65 61 72 63 68 5f 70 61 74 68 20 22 20 7c 20  search_path " | 
35100 24 53 45 44 20 22 73 25 20 24 70 61 74 68 20 25  $SED "s% $path %
35110 20 25 67 22 60 0a 20 20 20 20 20 20 23 09 64 65   %g"`.      #.de
35120 70 6c 69 62 73 3d 60 24 45 43 48 4f 20 22 24 64  plibs=`$ECHO "$d
35130 65 70 6c 69 62 73 20 22 20 7c 20 24 53 45 44 20  eplibs " | $SED 
35140 22 73 25 20 2d 4c 24 70 61 74 68 20 25 20 25 67  "s% -L$path % %g
35150 22 60 0a 20 20 20 20 20 20 23 09 64 65 70 65 6e  "`.      #.depen
35160 64 65 6e 63 79 5f 6c 69 62 73 3d 60 24 45 43 48  dency_libs=`$ECH
35170 4f 20 22 24 64 65 70 65 6e 64 65 6e 63 79 5f 6c  O "$dependency_l
35180 69 62 73 20 22 20 7c 20 24 53 45 44 20 22 73 25  ibs " | $SED "s%
35190 20 2d 4c 24 70 61 74 68 20 25 20 25 67 22 60 0a   -L$path % %g"`.
351a0 20 20 20 20 20 20 23 64 6f 6e 65 0a 0a 20 20 20        #done..   
351b0 20 20 20 69 66 20 74 65 73 74 20 2d 6e 20 22 24     if test -n "$
351c0 78 72 70 61 74 68 22 3b 20 74 68 65 6e 0a 09 23  xrpath"; then..#
351d0 20 49 66 20 74 68 65 20 75 73 65 72 20 73 70 65   If the user spe
351e0 63 69 66 69 65 64 20 61 6e 79 20 72 70 61 74 68  cified any rpath
351f0 20 66 6c 61 67 73 2c 20 74 68 65 6e 20 61 64 64   flags, then add
35200 20 74 68 65 6d 2e 0a 09 74 65 6d 70 5f 78 72 70   them...temp_xrp
35210 61 74 68 3d 0a 09 66 6f 72 20 6c 69 62 64 69 72  ath=..for libdir
35220 20 69 6e 20 24 78 72 70 61 74 68 3b 20 64 6f 0a   in $xrpath; do.
35230 09 20 20 66 75 6e 63 5f 72 65 70 6c 61 63 65 5f  .  func_replace_
35240 73 79 73 72 6f 6f 74 20 22 24 6c 69 62 64 69 72  sysroot "$libdir
35250 22 0a 09 20 20 66 75 6e 63 5f 61 70 70 65 6e 64  "..  func_append
35260 20 74 65 6d 70 5f 78 72 70 61 74 68 20 22 20 2d   temp_xrpath " -
35270 52 24 66 75 6e 63 5f 72 65 70 6c 61 63 65 5f 73  R$func_replace_s
35280 79 73 72 6f 6f 74 5f 72 65 73 75 6c 74 22 0a 09  ysroot_result"..
35290 20 20 63 61 73 65 20 22 24 66 69 6e 61 6c 69 7a    case "$finaliz
352a0 65 5f 72 70 61 74 68 20 22 20 69 6e 0a 09 20 20  e_rpath " in..  
352b0 2a 22 20 24 6c 69 62 64 69 72 20 22 2a 29 20 3b  *" $libdir "*) ;
352c0 3b 0a 09 20 20 2a 29 20 66 75 6e 63 5f 61 70 70  ;..  *) func_app
352d0 65 6e 64 20 66 69 6e 61 6c 69 7a 65 5f 72 70 61  end finalize_rpa
352e0 74 68 20 22 20 24 6c 69 62 64 69 72 22 20 3b 3b  th " $libdir" ;;
352f0 0a 09 20 20 65 73 61 63 0a 09 64 6f 6e 65 0a 09  ..  esac..done..
35300 69 66 20 74 65 73 74 20 22 24 68 61 72 64 63 6f  if test "$hardco
35310 64 65 5f 69 6e 74 6f 5f 6c 69 62 73 22 20 21 3d  de_into_libs" !=
35320 20 79 65 73 20 7c 7c 20 74 65 73 74 20 22 24 62   yes || test "$b
35330 75 69 6c 64 5f 6f 6c 64 5f 6c 69 62 73 22 20 3d  uild_old_libs" =
35340 20 79 65 73 3b 20 74 68 65 6e 0a 09 20 20 64 65   yes; then..  de
35350 70 65 6e 64 65 6e 63 79 5f 6c 69 62 73 3d 22 24  pendency_libs="$
35360 74 65 6d 70 5f 78 72 70 61 74 68 20 24 64 65 70  temp_xrpath $dep
35370 65 6e 64 65 6e 63 79 5f 6c 69 62 73 22 0a 09 66  endency_libs"..f
35380 69 0a 20 20 20 20 20 20 66 69 0a 0a 20 20 20 20  i.      fi..    
35390 20 20 23 20 4d 61 6b 65 20 73 75 72 65 20 64 6c    # Make sure dl
353a0 66 69 6c 65 73 20 63 6f 6e 74 61 69 6e 73 20 6f  files contains o
353b0 6e 6c 79 20 75 6e 69 71 75 65 20 66 69 6c 65 73  nly unique files
353c0 20 74 68 61 74 20 77 6f 6e 27 74 20 62 65 20 64   that won't be d
353d0 6c 70 72 65 6f 70 65 6e 65 64 0a 20 20 20 20 20  lpreopened.     
353e0 20 6f 6c 64 5f 64 6c 66 69 6c 65 73 3d 22 24 64   old_dlfiles="$d
353f0 6c 66 69 6c 65 73 22 0a 20 20 20 20 20 20 64 6c  lfiles".      dl
35400 66 69 6c 65 73 3d 0a 20 20 20 20 20 20 66 6f 72  files=.      for
35410 20 6c 69 62 20 69 6e 20 24 6f 6c 64 5f 64 6c 66   lib in $old_dlf
35420 69 6c 65 73 3b 20 64 6f 0a 09 63 61 73 65 20 22  iles; do..case "
35430 20 24 64 6c 70 72 65 66 69 6c 65 73 20 24 64 6c   $dlprefiles $dl
35440 66 69 6c 65 73 20 22 20 69 6e 0a 09 2a 22 20 24  files " in..*" $
35450 6c 69 62 20 22 2a 29 20 3b 3b 0a 09 2a 29 20 66  lib "*) ;;..*) f
35460 75 6e 63 5f 61 70 70 65 6e 64 20 64 6c 66 69 6c  unc_append dlfil
35470 65 73 20 22 20 24 6c 69 62 22 20 3b 3b 0a 09 65  es " $lib" ;;..e
35480 73 61 63 0a 20 20 20 20 20 20 64 6f 6e 65 0a 0a  sac.      done..
35490 20 20 20 20 20 20 23 20 4d 61 6b 65 20 73 75 72        # Make sur
354a0 65 20 64 6c 70 72 65 66 69 6c 65 73 20 63 6f 6e  e dlprefiles con
354b0 74 61 69 6e 73 20 6f 6e 6c 79 20 75 6e 69 71 75  tains only uniqu
354c0 65 20 66 69 6c 65 73 0a 20 20 20 20 20 20 6f 6c  e files.      ol
354d0 64 5f 64 6c 70 72 65 66 69 6c 65 73 3d 22 24 64  d_dlprefiles="$d
354e0 6c 70 72 65 66 69 6c 65 73 22 0a 20 20 20 20 20  lprefiles".     
354f0 20 64 6c 70 72 65 66 69 6c 65 73 3d 0a 20 20 20   dlprefiles=.   
35500 20 20 20 66 6f 72 20 6c 69 62 20 69 6e 20 24 6f     for lib in $o
35510 6c 64 5f 64 6c 70 72 65 66 69 6c 65 73 3b 20 64  ld_dlprefiles; d
35520 6f 0a 09 63 61 73 65 20 22 24 64 6c 70 72 65 66  o..case "$dlpref
35530 69 6c 65 73 20 22 20 69 6e 0a 09 2a 22 20 24 6c  iles " in..*" $l
35540 69 62 20 22 2a 29 20 3b 3b 0a 09 2a 29 20 66 75  ib "*) ;;..*) fu
35550 6e 63 5f 61 70 70 65 6e 64 20 64 6c 70 72 65 66  nc_append dlpref
35560 69 6c 65 73 20 22 20 24 6c 69 62 22 20 3b 3b 0a  iles " $lib" ;;.
35570 09 65 73 61 63 0a 20 20 20 20 20 20 64 6f 6e 65  .esac.      done
35580 0a 0a 20 20 20 20 20 20 69 66 20 74 65 73 74 20  ..      if test 
35590 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f 6c 5f  "$build_libtool_
355a0 6c 69 62 73 22 20 3d 20 79 65 73 3b 20 74 68 65  libs" = yes; the
355b0 6e 0a 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24  n..if test -n "$
355c0 72 70 61 74 68 22 3b 20 74 68 65 6e 0a 09 20 20  rpath"; then..  
355d0 63 61 73 65 20 24 68 6f 73 74 20 69 6e 0a 09 20  case $host in.. 
355e0 20 2a 2d 2a 2d 63 79 67 77 69 6e 2a 20 7c 20 2a   *-*-cygwin* | *
355f0 2d 2a 2d 6d 69 6e 67 77 2a 20 7c 20 2a 2d 2a 2d  -*-mingw* | *-*-
35600 70 77 33 32 2a 20 7c 20 2a 2d 2a 2d 6f 73 32 2a  pw32* | *-*-os2*
35610 20 7c 20 2a 2d 2a 2d 62 65 6f 73 2a 20 7c 20 2a   | *-*-beos* | *
35620 2d 63 65 67 63 63 2a 20 7c 20 2a 2d 2a 2d 68 61  -cegcc* | *-*-ha
35630 69 6b 75 2a 29 0a 09 20 20 20 20 23 20 74 68 65  iku*)..    # the
35640 73 65 20 73 79 73 74 65 6d 73 20 64 6f 6e 27 74  se systems don't
35650 20 61 63 74 75 61 6c 6c 79 20 68 61 76 65 20 61   actually have a
35660 20 63 20 6c 69 62 72 61 72 79 20 28 61 73 20 73   c library (as s
35670 75 63 68 29 21 0a 09 20 20 20 20 3b 3b 0a 09 20  uch)!..    ;;.. 
35680 20 2a 2d 2a 2d 72 68 61 70 73 6f 64 79 2a 20 7c   *-*-rhapsody* |
35690 20 2a 2d 2a 2d 64 61 72 77 69 6e 31 2e 5b 30 31   *-*-darwin1.[01
356a0 32 5d 29 0a 09 20 20 20 20 23 20 52 68 61 70 73  2])..    # Rhaps
356b0 6f 64 79 20 43 20 6c 69 62 72 61 72 79 20 69 73  ody C library is
356c0 20 69 6e 20 74 68 65 20 53 79 73 74 65 6d 20 66   in the System f
356d0 72 61 6d 65 77 6f 72 6b 0a 09 20 20 20 20 66 75  ramework..    fu
356e0 6e 63 5f 61 70 70 65 6e 64 20 64 65 70 6c 69 62  nc_append deplib
356f0 73 20 22 20 53 79 73 74 65 6d 2e 6c 74 66 72 61  s " System.ltfra
35700 6d 65 77 6f 72 6b 22 0a 09 20 20 20 20 3b 3b 0a  mework"..    ;;.
35710 09 20 20 2a 2d 2a 2d 6e 65 74 62 73 64 2a 29 0a  .  *-*-netbsd*).
35720 09 20 20 20 20 23 20 44 6f 6e 27 74 20 6c 69 6e  .    # Don't lin
35730 6b 20 77 69 74 68 20 6c 69 62 63 20 75 6e 74 69  k with libc unti
35740 6c 20 74 68 65 20 61 2e 6f 75 74 20 6c 64 2e 73  l the a.out ld.s
35750 6f 20 69 73 20 66 69 78 65 64 2e 0a 09 20 20 20  o is fixed...   
35760 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 6f 70 65 6e 62   ;;..  *-*-openb
35770 73 64 2a 20 7c 20 2a 2d 2a 2d 66 72 65 65 62 73  sd* | *-*-freebs
35780 64 2a 20 7c 20 2a 2d 2a 2d 64 72 61 67 6f 6e 66  d* | *-*-dragonf
35790 6c 79 2a 29 0a 09 20 20 20 20 23 20 44 6f 20 6e  ly*)..    # Do n
357a0 6f 74 20 69 6e 63 6c 75 64 65 20 6c 69 62 63 20  ot include libc 
357b0 64 75 65 20 74 6f 20 75 73 20 68 61 76 69 6e 67  due to us having
357c0 20 6c 69 62 63 2f 6c 69 62 63 5f 72 2e 0a 09 20   libc/libc_r... 
357d0 20 20 20 3b 3b 0a 09 20 20 2a 2d 2a 2d 73 63 6f     ;;..  *-*-sco
357e0 33 2e 32 76 35 2a 20 7c 20 2a 2d 2a 2d 73 63 6f  3.2v5* | *-*-sco
357f0 35 76 36 2a 29 0a 09 20 20 20 20 23 20 43 61 75  5v6*)..    # Cau
35800 73 65 73 20 70 72 6f 62 6c 65 6d 73 20 77 69 74  ses problems wit
35810 68 20 5f 5f 63 74 79 70 65 0a 09 20 20 20 20 3b  h __ctype..    ;
35820 3b 0a 09 20 20 2a 2d 2a 2d 73 79 73 76 34 2e 32  ;..  *-*-sysv4.2
35830 75 77 32 2a 20 7c 20 2a 2d 2a 2d 73 79 73 76 35  uw2* | *-*-sysv5
35840 2a 20 7c 20 2a 2d 2a 2d 75 6e 69 78 77 61 72 65  * | *-*-unixware
35850 2a 20 7c 20 2a 2d 2a 2d 4f 70 65 6e 55 4e 49 58  * | *-*-OpenUNIX
35860 2a 29 0a 09 20 20 20 20 23 20 43 6f 6d 70 69 6c  *)..    # Compil
35870 65 72 20 69 6e 73 65 72 74 73 20 6c 69 62 63 20  er inserts libc 
35880 69 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 70  in the correct p
35890 6c 61 63 65 20 66 6f 72 20 74 68 72 65 61 64 73  lace for threads
358a0 20 74 6f 20 77 6f 72 6b 0a 09 20 20 20 20 3b 3b   to work..    ;;
358b0 0a 09 20 20 2a 29 0a 09 20 20 20 20 23 20 41 64  ..  *)..    # Ad
358c0 64 20 6c 69 62 63 20 74 6f 20 64 65 70 6c 69 62  d libc to deplib
358d0 73 20 6f 6e 20 61 6c 6c 20 6f 74 68 65 72 20 73  s on all other s
358e0 79 73 74 65 6d 73 20 69 66 20 6e 65 63 65 73 73  ystems if necess
358f0 61 72 79 2e 0a 09 20 20 20 20 69 66 20 74 65 73  ary...    if tes
35900 74 20 22 24 62 75 69 6c 64 5f 6c 69 62 74 6f 6f  t "$build_libtoo
35910 6c 5f 6e 65 65 64 5f 6c 63 22 20 3d 20 22 79 65  l_need_lc" = "ye
35920 73 22 3b 20 74 68 65 6e 0a 09 20 20 20 20 20 20  s"; then..      
35930 66 75 6e 63 5f 61 70 70 65 6e 64 20 64 65 70 6c  func_append depl
35940 69 62 73 20 22 20 2d 6c 63 22 0a 09 20 20 20 20  ibs " -lc"..    
35950 66 69 0a 09 20 20 20 20 3b 3b 0a 09 20 20 65 73  fi..    ;;..  es
35960 61 63 0a 09 66 69 0a 0a 09 23 20 54 72 61 6e 73  ac..fi...# Trans
35970 66 6f 72 6d 20 64 65 70 6c 69 62 73 20 69 6e 74  form deplibs int
35980 6f 20 6f 6e 6c 79 20 64 65 70 6c 69 62 73 20 74  o only deplibs t
35990 68 61 74 20 63 61 6e 20 62 65 20 6c 69 6e 6b 65  hat can be linke
359a0 64 20 69 6e 20 73 68 61 72 65 64 2e 0a 09 6e 61  d in shared...na
359b0 6d 65 5f 73 61 76 65 3d 24 6e 61 6d 65 0a 09 6c  me_save=$name..l
359c0 69 62 6e 61 6d 65 5f 73 61 76 65 3d 24 6c 69 62  ibname_save=$lib
359d0 6e 61 6d 65 0a 09 72 65 6c 65 61 73 65 5f 73 61  name..release_sa
359e0 76 65 3d 24 72 65 6c 65 61 73 65 0a 09 76 65 72  ve=$release..ver
359f0 73 75 66 66 69 78 5f 73 61 76 65 3d 24 76 65 72  suffix_save=$ver
35a00 73 75 66 66 69 78 0a 09 6d 61 6a 6f 72 5f 73 61  suffix..major_sa
35a10 76 65 3d 24 6d 61 6a 6f 72 0a 09 23 20 49 27 6d  ve=$major..# I'm
35a20 20 6e 6f 74 20 73 75 72 65 20 69 66 20 49 27 6d   not sure if I'm
35a30 20 74 72 65 61 74 69 6e 67 20 74 68 65 20 72 65   treating the re
35a40 6c 65 61 73 65 20 63 6f 72 72 65 63 74 6c 79 2e  lease correctly.
35a50 20 20 49 20 74 68 69 6e 6b 0a 09 23 20 72 65 6c    I think..# rel
35a60 65 61 73 65 20 73 68 6f 75 6c 64 20 73 68 6f 77  ease should show
35a70 20 75 70 20 69 6e 20 74 68 65 20 2d 6c 20 28 69   up in the -l (i
35a80 65 20 2d 6c 67 6d 70 35 29 20 73 6f 20 77 65 20  e -lgmp5) so we 
35a90 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 0a 09 23  don't want to..#
35aa0 20 61 64 64 20 69 74 20 69 6e 20 74 77 69 63 65   add it in twice
35ab0 2e 20 20 49 73 20 74 68 61 74 20 63 6f 72 72 65  .  Is that corre
35ac0 63 74 3f 0a 09 72 65 6c 65 61 73 65 3d 22 22 0a  ct?..release="".
35ad0 09 76 65 72 73 75 66 66 69 78 3d 22 22 0a 09 6d  .versuffix=""..m
35ae0 61 6a 6f 72 3d 22 22 0a 09 6e 65 77 64 65 70 6c  ajor=""..newdepl
35af0 69 62 73 3d 0a 09 64 72 6f 70 70 65 64 64 65 70  ibs=..droppeddep
35b00 73 3d 6e 6f 0a 09 63 61 73 65 20 24 64 65 70 6c  s=no..case $depl
35b10 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74 68 6f 64  ibs_check_method
35b20 20 69 6e 0a 09 70 61 73 73 5f 61 6c 6c 29 0a 09   in..pass_all)..
35b30 20 20 23 20 44 6f 6e 27 74 20 63 68 65 63 6b 20    # Don't check 
35b40 66 6f 72 20 73 68 61 72 65 64 2f 73 74 61 74 69  for shared/stati
35b50 63 2e 20 20 45 76 65 72 79 74 68 69 6e 67 20 77  c.  Everything w
35b60 6f 72 6b 73 2e 0a 09 20 20 23 20 54 68 69 73 20  orks...  # This 
35b70 6d 69 67 68 74 20 62 65 20 61 20 6c 69 74 74 6c  might be a littl
35b80 65 20 6e 61 69 76 65 2e 20 20 57 65 20 6d 69 67  e naive.  We mig
35b90 68 74 20 77 61 6e 74 20 74 6f 20 63 68 65 63 6b  ht want to check
35ba0 0a 09 20 20 23 20 77 68 65 74 68 65 72 20 74 68  ..  # whether th
35bb0 65 20 6c 69 62 72 61 72 79 20 65 78 69 73 74 73  e library exists
35bc0 20 6f 72 20 6e 6f 74 2e 20 20 42 75 74 20 74 68   or not.  But th
35bd0 69 73 20 69 73 20 6f 6e 0a 09 20 20 23 20 6f 73  is is on..  # os
35be0 66 33 20 26 20 6f 73 66 34 20 61 6e 64 20 49 27  f3 & osf4 and I'
35bf0 6d 20 6e 6f 74 20 72 65 61 6c 6c 79 20 73 75 72  m not really sur
35c00 65 2e 2e 2e 20 4a 75 73 74 0a 09 20 20 23 20 69  e... Just..  # i
35c10 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 77 68 61 74  mplementing what
35c20 20 77 61 73 20 61 6c 72 65 61 64 79 20 74 68 65   was already the
35c30 20 62 65 68 61 76 69 6f 72 2e 0a 09 20 20 6e 65   behavior...  ne
35c40 77 64 65 70 6c 69 62 73 3d 24 64 65 70 6c 69 62  wdeplibs=$deplib
35c50 73 0a 09 20 20 3b 3b 0a 09 74 65 73 74 5f 63 6f  s..  ;;..test_co
35c60 6d 70 69 6c 65 29 0a 09 20 20 23 20 54 68 69 73  mpile)..  # This
35c70 20 63 6f 64 65 20 73 74 72 65 73 73 65 73 20 74   code stresses t
35c80 68 65 20 22 6c 69 62 72 61 72 69 65 73 20 61 72  he "libraries ar
35c90 65 20 70 72 6f 67 72 61 6d 73 22 20 70 61 72 61  e programs" para
35ca0 64 69 67 6d 20 74 6f 20 69 74 73 0a 09 20 20 23  digm to its..  #
35cb0 20 6c 69 6d 69 74 73 2e 20 4d 61 79 62 65 20 65   limits. Maybe e
35cc0 76 65 6e 20 62 72 65 61 6b 73 20 69 74 2e 20 20  ven breaks it.  
35cd0 57 65 20 63 6f 6d 70 69 6c 65 20 61 20 70 72 6f  We compile a pro
35ce0 67 72 61 6d 2c 20 6c 69 6e 6b 69 6e 67 20 69 74  gram, linking it
35cf0 0a 09 20 20 23 20 61 67 61 69 6e 73 74 20 74 68  ..  # against th
35d00 65 20 64 65 70 6c 69 62 73 20 61 73 20 61 20 70  e deplibs as a p
35d10 72 6f 78 79 20 66 6f 72 20 74 68 65 20 6c 69 62  roxy for the lib
35d20 72 61 72 79 2e 20 20 54 68 65 6e 20 77 65 20 63  rary.  Then we c
35d30 61 6e 20 63 68 65 63 6b 0a 09 20 20 23 20 77 68  an check..  # wh
35d40 65 74 68 65 72 20 74 68 65 79 20 6c 69 6e 6b 65  ether they linke
35d50 64 20 69 6e 20 73 74 61 74 69 63 61 6c 6c 79 20  d in statically 
35d60 6f 72 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 77  or dynamically w
35d70 69 74 68 20 6c 64 64 2e 0a 09 20 20 24 6f 70 74  ith ldd...  $opt
35d80 5f 64 72 79 5f 72 75 6e 20 7c 7c 20 24 52 4d 20  _dry_run || $RM 
35d90 63 6f 6e 66 74 65 73 74 2e 63 0a 09 20 20 63 61  conftest.c..  ca
35da0 74 20 3e 20 63 6f 6e 66 74 65 73 74 2e 63 20 3c  t > conftest.c <
35db0 3c 45 4f 46 0a 09 20 20 69 6e 74 20 6d 61 69 6e  <EOF..  int main
35dc0 28 29 20 7b 20 72 65 74 75 72 6e 20 30 3b 20 7d  () { return 0; }
35dd0 0a 45 4f 46 0a 09 20 20 24 6f 70 74 5f 64 72 79  .EOF..  $opt_dry
35de0 5f 72 75 6e 20 7c 7c 20 24 52 4d 20 63 6f 6e 66  _run || $RM conf
35df0 74 65 73 74 0a 09 20 20 69 66 20 24 4c 54 43 43  test..  if $LTCC
35e00 20 24 4c 54 43 46 4c 41 47 53 20 2d 6f 20 63 6f   $LTCFLAGS -o co
35e10 6e 66 74 65 73 74 20 63 6f 6e 66 74 65 73 74 2e  nftest conftest.
35e20 63 20 24 64 65 70 6c 69 62 73 3b 20 74 68 65 6e  c $deplibs; then
35e30 0a 09 20 20 20 20 6c 64 64 5f 6f 75 74 70 75 74  ..    ldd_output
35e40 3d 60 6c 64 64 20 63 6f 6e 66 74 65 73 74 60 0a  =`ldd conftest`.
35e50 09 20 20 20 20 66 6f 72 20 69 20 69 6e 20 24 64  .    for i in $d
35e60 65 70 6c 69 62 73 3b 20 64 6f 0a 09 20 20 20 20  eplibs; do..    
35e70 20 20 63 61 73 65 20 24 69 20 69 6e 0a 09 20 20    case $i in..  
35e80 20 20 20 20 2d 6c 2a 29 0a 09 09 66 75 6e 63 5f      -l*)...func_
35e90 73 74 72 69 70 6e 61 6d 65 20 2d 6c 20 27 27 20  stripname -l '' 
35ea0 22 24 69 22 0a 09 09 6e 61 6d 65 3d 24 66 75 6e  "$i"...name=$fun
35eb0 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65 73 75  c_stripname_resu
35ec0 6c 74 0a 09 09 69 66 20 74 65 73 74 20 22 58 24  lt...if test "X$
35ed0 61 6c 6c 6f 77 5f 6c 69 62 74 6f 6f 6c 5f 6c 69  allow_libtool_li
35ee0 62 73 5f 77 69 74 68 5f 73 74 61 74 69 63 5f 72  bs_with_static_r
35ef0 75 6e 74 69 6d 65 73 22 20 3d 20 22 58 79 65 73  untimes" = "Xyes
35f00 22 20 3b 20 74 68 65 6e 0a 09 09 20 20 63 61 73  " ; then...  cas
35f10 65 20 22 20 24 70 72 65 64 65 70 73 20 24 70 6f  e " $predeps $po
35f20 73 74 64 65 70 73 20 22 20 69 6e 0a 09 09 20 20  stdeps " in...  
35f30 2a 22 20 24 69 20 22 2a 29 0a 09 09 20 20 20 20  *" $i "*)...    
35f40 66 75 6e 63 5f 61 70 70 65 6e 64 20 6e 65 77 64  func_append newd
35f50 65 70 6c 69 62 73 20 22 20 24 69 22 0a 09 09 20  eplibs " $i"... 
35f60 20 20 20 69 3d 22 22 0a 09 09 20 20 20 20 3b 3b     i=""...    ;;
35f70 0a 09 09 20 20 65 73 61 63 0a 09 09 66 69 0a 09  ...  esac...fi..
35f80 09 69 66 20 74 65 73 74 20 2d 6e 20 22 24 69 22  .if test -n "$i"
35f90 20 3b 20 74 68 65 6e 0a 09 09 20 20 6c 69 62 6e   ; then...  libn
35fa0 61 6d 65 3d 60 65 76 61 6c 20 22 5c 5c 24 45 43  ame=`eval "\\$EC
35fb0 48 4f 20 5c 22 24 6c 69 62 6e 61 6d 65 5f 73 70  HO \"$libname_sp
35fc0 65 63 5c 22 22 60 0a 09 09 20 20 64 65 70 6c 69  ec\""`...  depli
35fd0 62 5f 6d 61 74 63 68 65 73 3d 60 65 76 61 6c 20  b_matches=`eval 
35fe0 22 5c 5c 24 45 43 48 4f 20 5c 22 24 6c 69 62 72  "\\$ECHO \"$libr
35ff0 61 72 79 5f 6e 61 6d 65 73 5f 73 70 65 63 5c 22  ary_names_spec\"
36000 22 60 0a 09 09 20 20 73 65 74 20 64 75 6d 6d 79  "`...  set dummy
36010 20 24 64 65 70 6c 69 62 5f 6d 61 74 63 68 65 73   $deplib_matches
36020 3b 20 73 68 69 66 74 0a 09 09 20 20 64 65 70 6c  ; shift...  depl
36030 69 62 5f 6d 61 74 63 68 3d 24 31 0a 09 09 20 20  ib_match=$1...  
36040 69 66 20 74 65 73 74 20 60 65 78 70 72 20 22 24  if test `expr "$
36050 6c 64 64 5f 6f 75 74 70 75 74 22 20 3a 20 22 2e  ldd_output" : ".
36060 2a 24 64 65 70 6c 69 62 5f 6d 61 74 63 68 22 60  *$deplib_match"`
36070 20 2d 6e 65 20 30 20 3b 20 74 68 65 6e 0a 09 09   -ne 0 ; then...
36080 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64 20      func_append 
36090 6e 65 77 64 65 70 6c 69 62 73 20 22 20 24 69 22  newdeplibs " $i"
360a0 0a 09 09 20 20 65 6c 73 65 0a 09 09 20 20 20 20  ...  else...    
360b0 64 72 6f 70 70 65 64 64 65 70 73 3d 79 65 73 0a  droppeddeps=yes.
360c0 09 09 20 20 20 20 65 63 68 6f 0a 09 09 20 20 20  ..    echo...   
360d0 20 24 45 43 48 4f 20 22 2a 2a 2a 20 57 61 72 6e   $ECHO "*** Warn
360e0 69 6e 67 3a 20 64 79 6e 61 6d 69 63 20 6c 69 6e  ing: dynamic lin
360f0 6b 65 72 20 64 6f 65 73 20 6e 6f 74 20 61 63 63  ker does not acc
36100 65 70 74 20 6e 65 65 64 65 64 20 6c 69 62 72 61  ept needed libra
36110 72 79 20 24 69 2e 22 0a 09 09 20 20 20 20 65 63  ry $i."...    ec
36120 68 6f 20 22 2a 2a 2a 20 49 20 68 61 76 65 20 74  ho "*** I have t
36130 68 65 20 63 61 70 61 62 69 6c 69 74 79 20 74 6f  he capability to
36140 20 6d 61 6b 65 20 74 68 61 74 20 6c 69 62 72 61   make that libra
36150 72 79 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ry automatically
36160 20 6c 69 6e 6b 20 69 6e 20 77 68 65 6e 22 0a 09   link in when"..
36170 09 20 20 20 20 65 63 68 6f 20 22 2a 2a 2a 20 79  .    echo "*** y
36180 6f 75 20 6c 69 6e 6b 20 74 6f 20 74 68 69 73 20  ou link to this 
36190 6c 69 62 72 61 72 79 2e 20 20 42 75 74 20 49 20  library.  But I 
361a0 63 61 6e 20 6f 6e 6c 79 20 64 6f 20 74 68 69 73  can only do this
361b0 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 22 0a   if you have a".
361c0 09 09 20 20 20 20 65 63 68 6f 20 22 2a 2a 2a 20  ..    echo "*** 
361d0 73 68 61 72 65 64 20 76 65 72 73 69 6f 6e 20 6f  shared version o
361e0 66 20 74 68 65 20 6c 69 62 72 61 72 79 2c 20 77  f the library, w
361f0 68 69 63 68 20 49 20 62 65 6c 69 65 76 65 20 79  hich I believe y
36200 6f 75 20 64 6f 20 6e 6f 74 20 68 61 76 65 22 0a  ou do not have".
36210 09 09 20 20 20 20 65 63 68 6f 20 22 2a 2a 2a 20  ..    echo "*** 
36220 62 65 63 61 75 73 65 20 61 20 74 65 73 74 5f 63  because a test_c
36230 6f 6d 70 69 6c 65 20 64 69 64 20 72 65 76 65 61  ompile did revea
36240 6c 20 74 68 61 74 20 74 68 65 20 6c 69 6e 6b 65  l that the linke
36250 72 20 64 69 64 20 6e 6f 74 20 75 73 65 20 69 74  r did not use it
36260 20 66 6f 72 22 0a 09 09 20 20 20 20 65 63 68 6f   for"...    echo
36270 20 22 2a 2a 2a 20 69 74 73 20 64 79 6e 61 6d 69   "*** its dynami
36280 63 20 64 65 70 65 6e 64 65 6e 63 79 20 6c 69 73  c dependency lis
36290 74 20 74 68 61 74 20 70 72 6f 67 72 61 6d 73 20  t that programs 
362a0 67 65 74 20 72 65 73 6f 6c 76 65 64 20 77 69 74  get resolved wit
362b0 68 20 61 74 20 72 75 6e 74 69 6d 65 2e 22 0a 09  h at runtime."..
362c0 09 20 20 66 69 0a 09 09 66 69 0a 09 09 3b 3b 0a  .  fi...fi...;;.
362d0 09 20 20 20 20 20 20 2a 29 0a 09 09 66 75 6e 63  .      *)...func
362e0 5f 61 70 70 65 6e 64 20 6e 65 77 64 65 70 6c 69  _append newdepli
362f0 62 73 20 22 20 24 69 22 0a 09 09 3b 3b 0a 09 20  bs " $i"...;;.. 
36300 20 20 20 20 20 65 73 61 63 0a 09 20 20 20 20 64       esac..    d
36310 6f 6e 65 0a 09 20 20 65 6c 73 65 0a 09 20 20 20  one..  else..   
36320 20 23 20 45 72 72 6f 72 20 6f 63 63 75 72 72 65   # Error occurre
36330 64 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 63  d in the first c
36340 6f 6d 70 69 6c 65 2e 20 20 4c 65 74 27 73 20 74  ompile.  Let's t
36350 72 79 20 74 6f 20 73 61 6c 76 61 67 65 0a 09 20  ry to salvage.. 
36360 20 20 20 23 20 74 68 65 20 73 69 74 75 61 74 69     # the situati
36370 6f 6e 3a 20 43 6f 6d 70 69 6c 65 20 61 20 73 65  on: Compile a se
36380 70 61 72 61 74 65 20 70 72 6f 67 72 61 6d 20 66  parate program f
36390 6f 72 20 65 61 63 68 20 6c 69 62 72 61 72 79 2e  or each library.
363a0 0a 09 20 20 20 20 66 6f 72 20 69 20 69 6e 20 24  ..    for i in $
363b0 64 65 70 6c 69 62 73 3b 20 64 6f 0a 09 20 20 20  deplibs; do..   
363c0 20 20 20 63 61 73 65 20 24 69 20 69 6e 0a 09 20     case $i in.. 
363d0 20 20 20 20 20 2d 6c 2a 29 0a 09 09 66 75 6e 63       -l*)...func
363e0 5f 73 74 72 69 70 6e 61 6d 65 20 2d 6c 20 27 27  _stripname -l ''
363f0 20 22 24 69 22 0a 09 09 6e 61 6d 65 3d 24 66 75   "$i"...name=$fu
36400 6e 63 5f 73 74 72 69 70 6e 61 6d 65 5f 72 65 73  nc_stripname_res
36410 75 6c 74 0a 09 09 24 6f 70 74 5f 64 72 79 5f 72  ult...$opt_dry_r
36420 75 6e 20 7c 7c 20 24 52 4d 20 63 6f 6e 66 74 65  un || $RM confte
36430 73 74 0a 09 09 69 66 20 24 4c 54 43 43 20 24 4c  st...if $LTCC $L
36440 54 43 46 4c 41 47 53 20 2d 6f 20 63 6f 6e 66 74  TCFLAGS -o conft
36450 65 73 74 20 63 6f 6e 66 74 65 73 74 2e 63 20 24  est conftest.c $
36460 69 3b 20 74 68 65 6e 0a 09 09 20 20 6c 64 64 5f  i; then...  ldd_
36470 6f 75 74 70 75 74 3d 60 6c 64 64 20 63 6f 6e 66  output=`ldd conf
36480 74 65 73 74 60 0a 09 09 20 20 69 66 20 74 65 73  test`...  if tes
36490 74 20 22 58 24 61 6c 6c 6f 77 5f 6c 69 62 74 6f  t "X$allow_libto
364a0 6f 6c 5f 6c 69 62 73 5f 77 69 74 68 5f 73 74 61  ol_libs_with_sta
364b0 74 69 63 5f 72 75 6e 74 69 6d 65 73 22 20 3d 20  tic_runtimes" = 
364c0 22 58 79 65 73 22 20 3b 20 74 68 65 6e 0a 09 09  "Xyes" ; then...
364d0 20 20 20 20 63 61 73 65 20 22 20 24 70 72 65 64      case " $pred
364e0 65 70 73 20 24 70 6f 73 74 64 65 70 73 20 22 20  eps $postdeps " 
364f0 69 6e 0a 09 09 20 20 20 20 2a 22 20 24 69 20 22  in...    *" $i "
36500 2a 29 0a 09 09 20 20 20 20 20 20 66 75 6e 63 5f  *)...      func_
36510 61 70 70 65 6e 64 20 6e 65 77 64 65 70 6c 69 62  append newdeplib
36520 73 20 22 20 24 69 22 0a 09 09 20 20 20 20 20 20  s " $i"...      
36530 69 3d 22 22 0a 09 09 20 20 20 20 20 20 3b 3b 0a  i=""...      ;;.
36540 09 09 20 20 20 20 65 73 61 63 0a 09 09 20 20 66  ..    esac...  f
36550 69 0a 09 09 20 20 69 66 20 74 65 73 74 20 2d 6e  i...  if test -n
36560 20 22 24 69 22 20 3b 20 74 68 65 6e 0a 09 09 20   "$i" ; then... 
36570 20 20 20 6c 69 62 6e 61 6d 65 3d 60 65 76 61 6c     libname=`eval
36580 20 22 5c 5c 24 45 43 48 4f 20 5c 22 24 6c 69 62   "\\$ECHO \"$lib
36590 6e 61 6d 65 5f 73 70 65 63 5c 22 22 60 0a 09 09  name_spec\""`...
365a0 20 20 20 20 64 65 70 6c 69 62 5f 6d 61 74 63 68      deplib_match
365b0 65 73 3d 60 65 76 61 6c 20 22 5c 5c 24 45 43 48  es=`eval "\\$ECH
365c0 4f 20 5c 22 24 6c 69 62 72 61 72 79 5f 6e 61 6d  O \"$library_nam
365d0 65 73 5f 73 70 65 63 5c 22 22 60 0a 09 09 20 20  es_spec\""`...  
365e0 20 20 73 65 74 20 64 75 6d 6d 79 20 24 64 65 70    set dummy $dep
365f0 6c 69 62 5f 6d 61 74 63 68 65 73 3b 20 73 68 69  lib_matches; shi
36600 66 74 0a 09 09 20 20 20 20 64 65 70 6c 69 62 5f  ft...    deplib_
36610 6d 61 74 63 68 3d 24 31 0a 09 09 20 20 20 20 69  match=$1...    i
36620 66 20 74 65 73 74 20 60 65 78 70 72 20 22 24 6c  f test `expr "$l
36630 64 64 5f 6f 75 74 70 75 74 22 20 3a 20 22 2e 2a  dd_output" : ".*
36640 24 64 65 70 6c 69 62 5f 6d 61 74 63 68 22 60 20  $deplib_match"` 
36650 2d 6e 65 20 30 20 3b 20 74 68 65 6e 0a 09 09 20  -ne 0 ; then... 
36660 20 20 20 20 20 66 75 6e 63 5f 61 70 70 65 6e 64       func_append
36670 20 6e 65 77 64 65 70 6c 69 62 73 20 22 20 24 69   newdeplibs " $i
36680 22 0a 09 09 20 20 20 20 65 6c 73 65 0a 09 09 20  "...    else... 
36690 20 20 20 20 20 64 72 6f 70 70 65 64 64 65 70 73       droppeddeps
366a0 3d 79 65 73 0a 09 09 20 20 20 20 20 20 65 63 68  =yes...      ech
366b0 6f 0a 09 09 20 20 20 20 20 20 24 45 43 48 4f 20  o...      $ECHO 
366c0 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 3a 20 64 79  "*** Warning: dy
366d0 6e 61 6d 69 63 20 6c 69 6e 6b 65 72 20 64 6f 65  namic linker doe
366e0 73 20 6e 6f 74 20 61 63 63 65 70 74 20 6e 65 65  s not accept nee
366f0 64 65 64 20 6c 69 62 72 61 72 79 20 24 69 2e 22  ded library $i."
36700 0a 09 09 20 20 20 20 20 20 65 63 68 6f 20 22 2a  ...      echo "*
36710 2a 2a 20 49 20 68 61 76 65 20 74 68 65 20 63 61  ** I have the ca
36720 70 61 62 69 6c 69 74 79 20 74 6f 20 6d 61 6b 65  pability to make
36730 20 74 68 61 74 20 6c 69 62 72 61 72 79 20 61 75   that library au
36740 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 69 6e 6b  tomatically link
36750 20 69 6e 20 77 68 65 6e 22 0a 09 09 20 20 20 20   in when"...    
36760 20 20 65 63 68 6f 20 22 2a 2a 2a 20 79 6f 75 20    echo "*** you 
36770 6c 69 6e 6b 20 74 6f 20 74 68 69 73 20 6c 69 62  link to this lib
36780 72 61 72 79 2e 20 20 42 75 74 20 49 20 63 61 6e  rary.  But I can
36790 20 6f 6e 6c 79 20 64 6f 20 74 68 69 73 20 69 66   only do this if
367a0 20 79 6f 75 20 68 61 76 65 20 61 22 0a 09 09 20   you have a"... 
367b0 20 20 20 20 20 65 63 68 6f 20 22 2a 2a 2a 20 73       echo "*** s
367c0 68 61 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 66  hared version of
367d0 20 74 68 65 20 6c 69 62 72 61 72 79 2c 20 77 68   the library, wh
367e0 69 63 68 20 79 6f 75 20 64 6f 20 6e 6f 74 20 61  ich you do not a
367f0 70 70 65 61 72 20 74 6f 20 68 61 76 65 22 0a 09  ppear to have"..
36800 09 20 20 20 20 20 20 65 63 68 6f 20 22 2a 2a 2a  .      echo "***
36810 20 62 65 63 61 75 73 65 20 61 20 74 65 73 74 5f   because a test_
36820 63 6f 6d 70 69 6c 65 20 64 69 64 20 72 65 76 65  compile did reve
36830 61 6c 20 74 68 61 74 20 74 68 65 20 6c 69 6e 6b  al that the link
36840 65 72 20 64 69 64 20 6e 6f 74 20 75 73 65 20 74  er did not use t
36850 68 69 73 20 6f 6e 65 22 0a 09 09 20 20 20 20 20  his one"...     
36860 20 65 63 68 6f 20 22 2a 2a 2a 20 61 73 20 61 20   echo "*** as a 
36870 64 79 6e 61 6d 69 63 20 64 65 70 65 6e 64 65 6e  dynamic dependen
36880 63 79 20 74 68 61 74 20 70 72 6f 67 72 61 6d 73  cy that programs
36890 20 63 61 6e 20 67 65 74 20 72 65 73 6f 6c 76 65   can get resolve
368a0 64 20 77 69 74 68 20 61 74 20 72 75 6e 74 69 6d  d with at runtim
368b0 65 2e 22 0a 09 09 20 20 20 20 66 69 0a 09 09 20  e."...    fi... 
368c0 20 66 69 0a 09 09 65 6c 73 65 0a 09 09 20 20 64   fi...else...  d
368d0 72 6f 70 70 65 64 64 65 70 73 3d 79 65 73 0a 09  roppeddeps=yes..
368e0 09 20 20 65 63 68 6f 0a 09 09 20 20 24 45 43 48  .  echo...  $ECH
368f0 4f 20 22 2a 2a 2a 20 57 61 72 6e 69 6e 67 21 20  O "*** Warning! 
36900 20 4c 69 62 72 61 72 79 20 24 69 20 69 73 20 6e   Library $i is n
36910 65 65 64 65 64 20 62 79 20 74 68 69 73 20 6c 69  eeded by this li
36920 62 72 61 72 79 20 62 75 74 20 49 20 77 61 73 20  brary but I was 
36930 6e 6f 74 20 61 62 6c 65 20 74 6f 22 0a 09 09 20  not able to"... 
36940 20 65 63 68 6f 20 22 2a 2a 2a 20 6d 61 6b 65 20   echo "*** make 
36950 69 74 20 6c 69 6e 6b 20 69 6e 21 20 20 59 6f 75  it link in!  You
36960 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 6e   will probably n
36970 65 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 20 69  eed to install i
36980 74 20 6f 72 20 73 6f 6d 65 22 0a 09 09 20 20 65  t or some"...  e
36990 63 68 6f 20 22 2a 2a 2a 20 6c 69 62 72 61 72 79  cho "*** library
369a0 20 74 68 61 74 20 69 74 20 64 65 70 65 6e 64 73   that it depends
369b0 20 6f 6e 20 62 65 66 6f 72 65 20 74 68 69 73 20   on before this 
369c0 6c 69 62 72 61 72 79 20 77 69 6c 6c 20 62 65 20  library will be 
369d0 66 75 6c 6c 79 22 0a 09 09 20 20 65 63 68 6f 20  fully"...  echo 
369e0 22 2a 2a 2a 20 66 75 6e 63 74 69 6f 6e 61 6c 2e  "*** functional.
369f0 20 20 49 6e 73 74 61 6c 6c 69 6e 67 20 69 74 20    Installing it 
36a00 62 65 66 6f 72 65 20 63 6f 6e 74 69 6e 75 69 6e  before continuin
36a10 67 20 77 6f 75 6c 64 20 62 65 20 65 76 65 6e 20  g would be even 
36a20 62 65 74 74 65 72 2e 22 0a 09 09 66 69 0a 09 09  better."...fi...
36a30 3b 3b 0a 09 20 20 20 20 20 20 2a 29 0a 09 09 66  ;;..      *)...f
36a40 75 6e 63 5f 61 70 70 65 6e 64 20 6e 65 77 64 65  unc_append newde
36a50 70 6c 69 62 73 20 22 20 24 69 22 0a 09 09 3b 3b  plibs " $i"...;;
36a60 0a 09 20 20 20 20 20 20 65 73 61 63 0a 09 20 20  ..      esac..  
36a70 20 20 64 6f 6e 65 0a 09 20 20 66 69 0a 09 20 20    done..  fi..  
36a80 3b 3b 0a 09 66 69 6c 65 5f 6d 61 67 69 63 2a 29  ;;..file_magic*)
36a90 0a 09 20 20 73 65 74 20 64 75 6d 6d 79 20 24 64  ..  set dummy $d
36aa0 65 70 6c 69 62 73 5f 63 68 65 63 6b 5f 6d 65 74  eplibs_check_met
36ab0 68 6f 64 3b 20 73 68 69 66 74 0a 09 20 20 66 69  hod; shift..  fi
36ac0 6c 65 5f 6d 61 67 69 63 5f 72 65 67 65 78 3d 60  le_magic_regex=`
36ad0 65 78 70 72 20 22 24 64 65 70 6c 69 62 73 5f 63  expr "$deplibs_c
36ae0 68 65 63 6b 5f 6d 65 74 68 6f 64 22 20 3a 20 22  heck_method" : "
36af0 24 31 20 5c 28 2e 2a 5c 29 22 60 0a 09 20 20 66  $1 \(.*\)"`..  f
36b00 6f 72 20 61 5f 64 65 70 6c 69 62 20 69 6e 20 24  or a_deplib in $
36b10 64 65 70 6c 69 62 73 3b 20 64 6f 0a 09 20 20 20  deplibs; do..   
36b20 20 63 61 73 65 20 24 61 5f 64 65 70 6c 69 62 20   case $a_deplib 
36b30 69 6e 0a 09 20 20 20 20 2d 6c 2a 29 0a 09 20 20  in..    -l*)..  
36b40 20 20 20 20 66 75 6e 63 5f 73 74 72 69 70 6e 61      func_stripna
36b50 6d 65 20 2d 6c 20 27 27 20 22 24 61 5f 64 65 70  me -l '' "$a_dep
36b60 6c 69 62 22 0a 09 20 20 20 20 20 20 6e 61 6d 65  lib"..      name
36b70 3d 24 66 75 6e 63 5f 73 74 72 69 70 6e 61 6d 65  =$func_stripname
36b80 5f 72 65 73 75 6c 74 0a 09 20 20 20 20 20 20 69  _result..      i
36b90 66 20 74 65 73 74 20 22 58 24 61 6c 6c 6f 77 5f  f test "X$allow_
36ba0 6c 69 62 74 6f 6f 6c 5f 6c 69 62 73 5f 77 69 74  libtool_libs_wit
36bb0 68 5f 73 74 61 74 69 63 5f 72 75 6e 74 69 6d 65  h_static_runtime
36bc0 73 22 20 3d 20 22 58 79 65 73 22 20 3b 20 74 68  s" = "Xyes" ; th
36bd0 65 6e 0a 09 09 63 61 73 65 20 22 20 24 70 72 65  en...case " $pre
36be0 64 65 70 73 20 24 70 6f 73 74 64 65 70 73 20 22  deps $postdeps "
36bf0 20 69 6e 0a 09 09 2a 22 20 24 61 5f 64 65 70 6c   in...*" $a_depl
36c00 69 62 20 22 2a 29 0a 09 09 20 20 66 75 6e 63 5f  ib "*)...  func_
36c10 61 70 70 65 6e 64 20 6e 65 77 64 65 70 6c 69 62  append newdeplib
36c20 73 20 22 20 24 61 5f 64 65 70 6c 69 62 22 0a 09  s " $a_deplib"..
36c30 09 20 20 61 5f 64 65 70 6c 69 62 3d 22 22 0a 09  .  a_deplib=""..
36c40 09 20 20 3b 3b 0a 09 09 65 73 61 63 0a 09 20 20  .  ;;...esac..  
36c50 20 20 20 20 66 69 0a 09 20 20 20 20 20 20 69 66      fi..      if
36c60 20 74 65 73 74 20 2d 6e 20 22 24 61 5f 64 65 70   test -n "$a_dep
36c70 6c 69 62 22 20 3b 20 74 68 65 6e 0a 09 09 6c 69  lib" ; then...li
36c80 62 6e 61 6d 65 3d 60 65 76 61 6c 20 22 5c 5c 24  bname=`eval "\\$
36c90 45 43 48 4f 20 5c 22 24 6c 69 62 6e 61 6d 65 5f  ECHO \"$libname_
36ca0 73 70 65 63 5c 22 22 60 0a 09 09 69 66 20 74 65  spec\""`...if te
36cb0 73 74 20 2d 6e 20 22 24 66 69 6c 65 5f 6d 61 67  st -n "$file_mag
36cc0 69 63 5f 67 6c 6f 62 22 3b 20 74 68 65 6e 0a 09  ic_glob"; then..
36cd0 09 20 20 6c 69 62 6e 61 6d 65 67 6c 6f 62 3d 60  .  libnameglob=`
36ce0 66 75 6e 63 5f 65 63 68 6f 5f 61 6c 6c 20 22 24  func_echo_all "$
36cf0 6c 69 62 6e 61 6d 65 22 20 7c 20 24 53 45 44 20  libname" | $SED 
36d00 2d 65 20 24 66 69 6c 65 5f 6d 61 67 69 63 5f 67  -e $file_magic_g
36d10 6c 6f 62 60 0a 09 09 65 6c 73 65 0a 09 09 20 20  lob`...else...  
36d20 6c 69 62 6e 61 6d 65 67 6c 6f 62 3d 24 6c 69 62  libnameglob=$lib
36d30 6e 61 6d 65 0a 09 09 66 69 0a 09 09 74 65 73 74  name...fi...test
36d40 20 22 24 77 61 6e 74 5f 6e 6f 63 61 73 65 67 6c   "$want_nocasegl
36d50 6f 62 22 20 3d 20 79 65 73 20 26 26 20 6e 6f 63  ob" = yes && noc
36d60 61 73 65 67 6c 6f 62 3d 60 73 68 6f 70 74 20 2d  aseglob=`shopt -
36d70 70 20 6e 6f 63 61 73 65 67 6c 6f 62 60 0a 09 09  p nocaseglob`...
36d80 66 6f 72 20 69 20 69 6e 20 24 6c 69 62 5f 73 65  for i in $lib_se
36d90 61 72 63 68 5f 70 61 74 68 20 24 73 79 73 5f 6c  arch_path $sys_l
36da0 69 62 5f 73 65 61 72 63 68 5f 70 61 74 68 20 24  ib_search_path $
36db0 73 68 6c 69 62 5f 73 65 61 72 63 68 5f 70 61 74  shlib_search_pat
36dc0 68 3b 20 64 6f 0a 09 09 20 20 69 66 20 74 65 73  h; do...  if tes
36dd0 74 20 22 24 77 61 6e 74 5f 6e 6f 63 61 73 65 67  t "$want_nocaseg
36de0 6c 6f 62 22 20 3d 20 79 65 73 3b 20 74 68 65 6e  lob" = yes; then
36df0 0a 09 09 20 20 20 20 73 68 6f 70 74 20 2d 73 20  ...    shopt -s 
36e00 6e 6f 63 61 73 65 67 6c 6f 62 0a 09 09 20 20 20  nocaseglob...   
36e10 20 70 6f 74 65 6e 74 69 61 6c 5f 6c 69 62 73 3d   potential_libs=
36e20 60 6c 73 20 24 69 2f 24 6c 69 62 6e 61 6d 65 67  `ls $i/$libnameg
36e30 6c 6f 62 5b 2e 2d 5d 2a 20 32 3e 2f 64 65 76 2f  lob[.-]* 2>/dev/
36e40 6e 75 6c 6c 60 0a 09 09 20 20 20 20 24 6e 6f 63  null`...    $noc
36e50 61 73 65 67 6c 6f 62 0a 09 09 20 20 65 6c 73 65  aseglob...  else
36e60 0a 09 09 20 20 20 20 70 6f 74 65 6e 74 69 61 6c  ...    potential
36e70 5f 6c 69 62 73 3d 60 6c 73 20 24 69 2f 24 6c 69  _libs=`ls $i/$li
36e80 62 6e 61 6d 65 67 6c 6f 62 5b 2e 2d 5d 2a 20 32  bnameglob[.-]* 2
36e90 3e 2f 64 65 76 2f 6e 75 6c 6c 60 0a 09 09 20 20  >/dev/null`...  
36ea0 66 69 0a 09 09 20 20 66 6f 72 20 70 6f 74 65 6e  fi...  for poten
36eb0 74 5f 6c 69 62 20 69 6e 20 24 70 6f 74 65 6e 74  t_lib in $potent
36ec0 69 61 6c 5f 6c 69 62 73 3b 20 64 6f 0a 09 09 20  ial_libs; do... 
36ed0 20 20 20 20 20 23 20 46 6f 6c 6c 6f 77 20 73 6f       # Follow so
36ee0 66 74 20 6c 69 6e 6b 73 2e 0a 09 09 20 20 20 20  ft links....    
36ef0 20 20 69 66 20 6c 73 20 2d 6c 4c 64 20 22 24 70    if ls -lLd "$p
36f00 6f 74 65 6e 74 5f 6c 69 62 22 20 32 3e 2f 64 65  otent_lib" 2>/de
36f10 76 2f 6e 75 6c 6c 20 7c 0a 09 09 09 20 24 47 52  v/null |.... $GR
36f20 45 50 20 22 20 2d 3e 20 22 20 3e 2f 64 65 76 2f  EP " -> " >/dev/
36f30 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 09 63 6f  null; then....co
36f40 6e 74 69 6e 75 65 0a 09 09 20 20 20 20 20 20 66  ntinue...      f
36f50 69 0a 09 09 20 20 20 20 20 20 23 20 54 68 65 20  i...      # The 
36f60 73 74 61 74 65 6d 65 6e 74 20 61 62 6f 76 65 20  statement above 
36f70 74 72 69 65 73 20 74 6f 20 61 76 6f 69 64 20 65  tries to avoid e
36f80 6e 74 65 72 69 6e 67 20 61 6e 0a 09 09 20 20 20  ntering an...   
36f90 20 20 20 23 20 65 6e 64 6c 65 73 73 20 6c 6f 6f     # endless loo
36fa0 70 20 62 65 6c 6f 77 2c 20 69 6e 20 63 61 73 65  p below, in case
36fb0 20 6f 66 20 63 79 63 6c 69 63 20 6c 69 6e 6b 73   of cyclic links
36fc0 2e 0a 09 09 20 20 20 20 20 20 23 20 57 65 20 6d  ....      # We m
36fd0 69 67 68 74 20 73 74 69 6c 6c 20 65 6e 74 65 72  ight still enter
36fe0 20 61 6e 20 65 6e 64 6c 65 73 73 20 6c 6f 6f 70   an endless loop
36ff0 2c 20 73 69 6e 63 65 20 61 20 6c 69 6e 6b 0a 09  , since a link..
37000 09 20 20 20 20 20 20 23 20 6c 6f 6f 70 20 63 61  .      # loop ca
37010 6e 20 62 65 20 63 6c 6f 73 65 64 20 77 68 69 6c  n be closed whil
37020 65 20 77 65 20 66 6f 6c 6c 6f 77 20 6c 69 6e 6b  e we follow link
37030 73 2c 0a 09 09 20 20 20 20 20 20 23 20 62 75 74  s,...      # but
37040 20 73 6f 20 77 68 61 74 3f 0a 09 09 20 20 20 20   so what?...    
37050 20 20 70 6f 74 6c 69 62 3d 22 24 70 6f 74 65 6e    potlib="$poten
37060 74 5f 6c 69 62 22 0a 09 09 20 20 20 20 20 20 77  t_lib"...      w
37070 68 69 6c 65 20 74 65 73 74 20 2d 68 20 22 24 70  hile test -h "$p
37080 6f 74 6c 69 62 22 20 32 3e 2f 64 65 76 2f 6e 75  otlib" 2>/dev/nu
37090 6c 6c 3b 20 64 6f 0a 09 09 09 70 6f 74 6c 69 62  ll; do....potlib
370a0 6c 69 6e 6b 3d 60 6c 73 20 2d 6c 64 20 24 70 6f  link=`ls -ld $po
370b0 74 6c 69 62 20 7c 20 24 7b 53 45 44 7d 20 27 73  tlib | ${SED} 's
370c0 2f 2e 2a 20 2d 3e 20 2f 2f 27 60 0a 09 09 09 63  /.* -> //'`....c
370d0 61 73 65 20 24 70 6f 74 6c 69 62 6c 69 6e 6b 20  ase $potliblink 
370e0 69 6e 0a 09 09 09 5b 5c 5c 2f 5d 2a 20 7c 20 5b  in....[\\/]* | [
370f0 41 2d 5a 61 2d 7a 5d 3a 5b 5c 5c 2f 5d 2a 29 20  A-Za-z]:[\\/]*) 
37100 70 6f 74 6c 69 62 3d 22 24 70 6f 74 6c 69 62 6c  potlib="$potlibl
37110 69 6e 6b 22 3b 3b 0a 09 09 09 2a 29 20 70 6f 74  ink";;....*) pot
37120 6c 69 62 3d 60 24 45 43 48 4f 20 22 24 70 6f 74  lib=`$ECHO "$pot
37130 6c 69 62 22 20 7c 20 24 53 45 44 20 27 73 2c 5b  lib" | $SED 's,[
37140 5e 2f 5d 2a 24 2c 2c 27 60 22 24 70 6f 74 6c 69  ^/]*$,,'`"$potli
37150 62 6c 69 6e 6b 22 3b 3b 0a 09 09 09 65 73 61 63  blink";;....esac
37160 0a 09 09 20 20 20 20 20 20 64 6f 6e 65 0a 09 09  ...      done...
37170 20 20 20 20 20 20 69 66 20 65 76 61 6c 20 24 66        if eval $f
37180 69 6c 65 5f 6d 61 67 69 63 5f 63 6d 64 20 5c 22  ile_magic_cmd \"
37190 5c 24 70 6f 74 6c 69 62 5c 22 20 32 3e 2f 64 65  \$potlib\" 2>/de
371a0 76 2f 6e 75 6c 6c 20 7c 0a 09 09 09 20 24 53 45  v/null |.... $SE
371b0 44 20 2d 65 20 31 30 71 20 7c 0a 09 09 09 20 24  D -e 10q |.... $
371c0 45 47 52 45 50 20 22 24 66 69 6c 65 5f 6d 61 67  EGREP "$file_mag
371d0 69 63 5f 72 65 67 65 78 22 20 3e 20 2f 64 65 76  ic_regex" > /dev
371e0 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 09 66  /null; then....f
371f0 75 6e 63 5f 61 70 70 65 6e 64 20 6e 65 77 64 65  unc_append newde
37200 70 6c 69 62 73 20 22 20 24 61 5f 64 65 70 6c 69  plibs " $a_depli
37210 62 22 0a 09 09 09 61 5f 64 65 70 6c 69 62 3d 22  b"....a_deplib="
37220 22 0a 09 09 09 62 72 65 61 6b 20 32 0a 09 09 20  "....break 2... 
37230 20 20 20 20 20 66 69 0a 09 09 20