/ Hex Artifact Content
Login

Artifact 0b26f101e3bc9fd1ff0be1da9fb4a82371142f92:


0000: 23 21 20 2f 62 69 6e 2f 73 68 0a 23 20 64 65 70  #! /bin/sh.# dep
0010: 63 6f 6d 70 20 2d 20 63 6f 6d 70 69 6c 65 20 61  comp - compile a
0020: 20 70 72 6f 67 72 61 6d 20 67 65 6e 65 72 61 74   program generat
0030: 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73  ing dependencies
0040: 20 61 73 20 73 69 64 65 2d 65 66 66 65 63 74 73   as side-effects
0050: 0a 0a 73 63 72 69 70 74 76 65 72 73 69 6f 6e 3d  ..scriptversion=
0060: 32 30 31 32 2d 30 33 2d 32 37 2e 31 36 3b 20 23  2012-03-27.16; #
0070: 20 55 54 43 0a 0a 23 20 43 6f 70 79 72 69 67 68   UTC..# Copyrigh
0080: 74 20 28 43 29 20 31 39 39 39 2c 20 32 30 30 30  t (C) 1999, 2000
0090: 2c 20 32 30 30 33 2c 20 32 30 30 34 2c 20 32 30  , 2003, 2004, 20
00a0: 30 35 2c 20 32 30 30 36 2c 20 32 30 30 37 2c 20  05, 2006, 2007, 
00b0: 32 30 30 39 2c 20 32 30 31 30 2c 0a 23 20 32 30  2009, 2010,.# 20
00c0: 31 31 2c 20 32 30 31 32 20 46 72 65 65 20 53 6f  11, 2012 Free So
00d0: 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f  ftware Foundatio
00e0: 6e 2c 20 49 6e 63 2e 0a 0a 23 20 54 68 69 73 20  n, Inc...# This 
00f0: 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20  program is free 
0100: 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61  software; you ca
0110: 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69  n redistribute i
0120: 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a  t and/or modify.
0130: 23 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74  # it under the t
0140: 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20  erms of the GNU 
0150: 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c  General Public L
0160: 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73  icense as publis
0170: 68 65 64 20 62 79 0a 23 20 74 68 65 20 46 72 65  hed by.# the Fre
0180: 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64  e Software Found
0190: 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65  ation; either ve
01a0: 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20  rsion 2, or (at 
01b0: 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 23 20 61  your option).# a
01c0: 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e  ny later version
01d0: 2e 0a 0a 23 20 54 68 69 73 20 70 72 6f 67 72 61  ...# This progra
01e0: 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64  m is distributed
01f0: 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61   in the hope tha
0200: 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65  t it will be use
0210: 66 75 6c 2c 0a 23 20 62 75 74 20 57 49 54 48 4f  ful,.# but WITHO
0220: 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b  UT ANY WARRANTY;
0230: 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68   without even th
0240: 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e  e implied warran
0250: 74 79 20 6f 66 0a 23 20 4d 45 52 43 48 41 4e 54  ty of.# MERCHANT
0260: 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45  ABILITY or FITNE
0270: 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55  SS FOR A PARTICU
0280: 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65  LAR PURPOSE.  Se
0290: 65 20 74 68 65 0a 23 20 47 4e 55 20 47 65 6e 65  e the.# GNU Gene
02a0: 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e  ral Public Licen
02b0: 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61  se for more deta
02c0: 69 6c 73 2e 0a 0a 23 20 59 6f 75 20 73 68 6f 75  ils...# You shou
02d0: 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64  ld have received
02e0: 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47   a copy of the G
02f0: 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69  NU General Publi
0300: 63 20 4c 69 63 65 6e 73 65 0a 23 20 61 6c 6f 6e  c License.# alon
0310: 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67  g with this prog
0320: 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65  ram.  If not, se
0330: 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e  e <http://www.gn
0340: 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e  u.org/licenses/>
0350: 2e 0a 0a 23 20 41 73 20 61 20 73 70 65 63 69 61  ...# As a specia
0360: 6c 20 65 78 63 65 70 74 69 6f 6e 20 74 6f 20 74  l exception to t
0370: 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50  he GNU General P
0380: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 69  ublic License, i
0390: 66 20 79 6f 75 0a 23 20 64 69 73 74 72 69 62 75  f you.# distribu
03a0: 74 65 20 74 68 69 73 20 66 69 6c 65 20 61 73 20  te this file as 
03b0: 70 61 72 74 20 6f 66 20 61 20 70 72 6f 67 72 61  part of a progra
03c0: 6d 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20  m that contains 
03d0: 61 0a 23 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  a.# configuratio
03e0: 6e 20 73 63 72 69 70 74 20 67 65 6e 65 72 61 74  n script generat
03f0: 65 64 20 62 79 20 41 75 74 6f 63 6f 6e 66 2c 20  ed by Autoconf, 
0400: 79 6f 75 20 6d 61 79 20 69 6e 63 6c 75 64 65 20  you may include 
0410: 69 74 20 75 6e 64 65 72 0a 23 20 74 68 65 20 73  it under.# the s
0420: 61 6d 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e  ame distribution
0430: 20 74 65 72 6d 73 20 74 68 61 74 20 79 6f 75 20   terms that you 
0440: 75 73 65 20 66 6f 72 20 74 68 65 20 72 65 73 74  use for the rest
0450: 20 6f 66 20 74 68 61 74 20 70 72 6f 67 72 61 6d   of that program
0460: 2e 0a 0a 23 20 4f 72 69 67 69 6e 61 6c 6c 79 20  ...# Originally 
0470: 77 72 69 74 74 65 6e 20 62 79 20 41 6c 65 78 61  written by Alexa
0480: 6e 64 72 65 20 4f 6c 69 76 61 20 3c 6f 6c 69 76  ndre Oliva <oliv
0490: 61 40 64 63 63 2e 75 6e 69 63 61 6d 70 2e 62 72  a@dcc.unicamp.br
04a0: 3e 2e 0a 0a 63 61 73 65 20 24 31 20 69 6e 0a 20  >...case $1 in. 
04b0: 20 27 27 29 0a 20 20 20 20 20 65 63 68 6f 20 22   '').     echo "
04c0: 24 30 3a 20 4e 6f 20 63 6f 6d 6d 61 6e 64 2e 20  $0: No command. 
04d0: 20 54 72 79 20 27 24 30 20 2d 2d 68 65 6c 70 27   Try '$0 --help'
04e0: 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d   for more inform
04f0: 61 74 69 6f 6e 2e 22 20 31 3e 26 32 0a 20 20 20  ation." 1>&2.   
0500: 20 20 65 78 69 74 20 31 3b 0a 20 20 20 20 20 3b    exit 1;.     ;
0510: 3b 0a 20 20 2d 68 20 7c 20 2d 2d 68 2a 29 0a 20  ;.  -h | --h*). 
0520: 20 20 20 63 61 74 20 3c 3c 5c 45 4f 46 0a 55 73     cat <<\EOF.Us
0530: 61 67 65 3a 20 64 65 70 63 6f 6d 70 20 5b 2d 2d  age: depcomp [--
0540: 68 65 6c 70 5d 20 5b 2d 2d 76 65 72 73 69 6f 6e  help] [--version
0550: 5d 20 50 52 4f 47 52 41 4d 20 5b 41 52 47 53 5d  ] PROGRAM [ARGS]
0560: 0a 0a 52 75 6e 20 50 52 4f 47 52 41 4d 53 20 41  ..Run PROGRAMS A
0570: 52 47 53 20 74 6f 20 63 6f 6d 70 69 6c 65 20 61  RGS to compile a
0580: 20 66 69 6c 65 2c 20 67 65 6e 65 72 61 74 69 6e   file, generatin
0590: 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 0a 61  g dependencies.a
05a0: 73 20 73 69 64 65 2d 65 66 66 65 63 74 73 2e 0a  s side-effects..
05b0: 0a 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72  .Environment var
05c0: 69 61 62 6c 65 73 3a 0a 20 20 64 65 70 6d 6f 64  iables:.  depmod
05d0: 65 20 20 20 20 20 44 65 70 65 6e 64 65 6e 63 79  e     Dependency
05e0: 20 74 72 61 63 6b 69 6e 67 20 6d 6f 64 65 2e 0a   tracking mode..
05f0: 20 20 73 6f 75 72 63 65 20 20 20 20 20 20 53 6f    source      So
0600: 75 72 63 65 20 66 69 6c 65 20 72 65 61 64 20 62  urce file read b
0610: 79 20 27 50 52 4f 47 52 41 4d 53 20 41 52 47 53  y 'PROGRAMS ARGS
0620: 27 2e 0a 20 20 6f 62 6a 65 63 74 20 20 20 20 20  '..  object     
0630: 20 4f 62 6a 65 63 74 20 66 69 6c 65 20 6f 75 74   Object file out
0640: 70 75 74 20 62 79 20 27 50 52 4f 47 52 41 4d 53  put by 'PROGRAMS
0650: 20 41 52 47 53 27 2e 0a 20 20 44 45 50 44 49 52   ARGS'..  DEPDIR
0660: 20 20 20 20 20 20 64 69 72 65 63 74 6f 72 79 20        directory 
0670: 77 68 65 72 65 20 74 6f 20 73 74 6f 72 65 20 64  where to store d
0680: 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 20 20 64  ependencies..  d
0690: 65 70 66 69 6c 65 20 20 20 20 20 44 65 70 65 6e  epfile     Depen
06a0: 64 65 6e 63 79 20 66 69 6c 65 20 74 6f 20 6f 75  dency file to ou
06b0: 74 70 75 74 2e 0a 20 20 74 6d 70 64 65 70 66 69  tput..  tmpdepfi
06c0: 6c 65 20 20 54 65 6d 70 6f 72 61 72 79 20 66 69  le  Temporary fi
06d0: 6c 65 20 74 6f 20 75 73 65 20 77 68 65 6e 20 6f  le to use when o
06e0: 75 74 70 75 74 74 69 6e 67 20 64 65 70 65 6e 64  utputting depend
06f0: 65 6e 63 69 65 73 2e 0a 20 20 6c 69 62 74 6f 6f  encies..  libtoo
0700: 6c 20 20 20 20 20 57 68 65 74 68 65 72 20 6c 69  l     Whether li
0710: 62 74 6f 6f 6c 20 69 73 20 75 73 65 64 20 28 79  btool is used (y
0720: 65 73 2f 6e 6f 29 2e 0a 0a 52 65 70 6f 72 74 20  es/no)...Report 
0730: 62 75 67 73 20 74 6f 20 3c 62 75 67 2d 61 75 74  bugs to <bug-aut
0740: 6f 6d 61 6b 65 40 67 6e 75 2e 6f 72 67 3e 2e 0a  omake@gnu.org>..
0750: 45 4f 46 0a 20 20 20 20 65 78 69 74 20 24 3f 0a  EOF.    exit $?.
0760: 20 20 20 20 3b 3b 0a 20 20 2d 76 20 7c 20 2d 2d      ;;.  -v | --
0770: 76 2a 29 0a 20 20 20 20 65 63 68 6f 20 22 64 65  v*).    echo "de
0780: 70 63 6f 6d 70 20 24 73 63 72 69 70 74 76 65 72  pcomp $scriptver
0790: 73 69 6f 6e 22 0a 20 20 20 20 65 78 69 74 20 24  sion".    exit $
07a0: 3f 0a 20 20 20 20 3b 3b 0a 65 73 61 63 0a 0a 23  ?.    ;;.esac..#
07b0: 20 41 20 74 61 62 75 6c 61 74 69 6f 6e 20 63 68   A tabulation ch
07c0: 61 72 61 63 74 65 72 2e 0a 74 61 62 3d 27 09 27  aracter..tab='.'
07d0: 0a 23 20 41 20 6e 65 77 6c 69 6e 65 20 63 68 61  .# A newline cha
07e0: 72 61 63 74 65 72 2e 0a 6e 6c 3d 27 0a 27 0a 0a  racter..nl='.'..
07f0: 69 66 20 74 65 73 74 20 2d 7a 20 22 24 64 65 70  if test -z "$dep
0800: 6d 6f 64 65 22 20 7c 7c 20 74 65 73 74 20 2d 7a  mode" || test -z
0810: 20 22 24 73 6f 75 72 63 65 22 20 7c 7c 20 74 65   "$source" || te
0820: 73 74 20 2d 7a 20 22 24 6f 62 6a 65 63 74 22 3b  st -z "$object";
0830: 20 74 68 65 6e 0a 20 20 65 63 68 6f 20 22 64 65   then.  echo "de
0840: 70 63 6f 6d 70 3a 20 56 61 72 69 61 62 6c 65 73  pcomp: Variables
0850: 20 73 6f 75 72 63 65 2c 20 6f 62 6a 65 63 74 20   source, object 
0860: 61 6e 64 20 64 65 70 6d 6f 64 65 20 6d 75 73 74  and depmode must
0870: 20 62 65 20 73 65 74 22 20 31 3e 26 32 0a 20 20   be set" 1>&2.  
0880: 65 78 69 74 20 31 0a 66 69 0a 0a 23 20 44 65 70  exit 1.fi..# Dep
0890: 65 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 73 75  endencies for su
08a0: 62 2f 62 61 72 2e 6f 20 6f 72 20 73 75 62 2f 62  b/bar.o or sub/b
08b0: 61 72 2e 6f 62 6a 20 67 6f 20 69 6e 74 6f 20 73  ar.obj go into s
08c0: 75 62 2f 2e 64 65 70 73 2f 62 61 72 2e 50 6f 2e  ub/.deps/bar.Po.
08d0: 0a 64 65 70 66 69 6c 65 3d 24 7b 64 65 70 66 69  .depfile=${depfi
08e0: 6c 65 2d 60 65 63 68 6f 20 22 24 6f 62 6a 65 63  le-`echo "$objec
08f0: 74 22 20 7c 0a 20 20 73 65 64 20 27 73 7c 5b 5e  t" |.  sed 's|[^
0900: 5c 5c 2f 5d 2a 24 7c 27 24 7b 44 45 50 44 49 52  \\/]*$|'${DEPDIR
0910: 2d 2e 64 65 70 73 7d 27 2f 26 7c 3b 73 7c 5c 2e  -.deps}'/&|;s|\.
0920: 5c 28 5b 5e 2e 5d 2a 5c 29 24 7c 2e 50 5c 31 7c  \([^.]*\)$|.P\1|
0930: 3b 73 7c 50 6f 62 6a 24 7c 50 6f 7c 27 60 7d 0a  ;s|Pobj$|Po|'`}.
0940: 74 6d 70 64 65 70 66 69 6c 65 3d 24 7b 74 6d 70  tmpdepfile=${tmp
0950: 64 65 70 66 69 6c 65 2d 60 65 63 68 6f 20 22 24  depfile-`echo "$
0960: 64 65 70 66 69 6c 65 22 20 7c 20 73 65 64 20 27  depfile" | sed '
0970: 73 2f 5c 2e 5c 28 5b 5e 2e 5d 2a 5c 29 24 2f 2e  s/\.\([^.]*\)$/.
0980: 54 5c 31 2f 27 60 7d 0a 0a 72 6d 20 2d 66 20 22  T\1/'`}..rm -f "
0990: 24 74 6d 70 64 65 70 66 69 6c 65 22 0a 0a 23 20  $tmpdepfile"..# 
09a0: 53 6f 6d 65 20 6d 6f 64 65 73 20 77 6f 72 6b 20  Some modes work 
09b0: 6a 75 73 74 20 6c 69 6b 65 20 6f 74 68 65 72 20  just like other 
09c0: 6d 6f 64 65 73 2c 20 62 75 74 20 75 73 65 20 64  modes, but use d
09d0: 69 66 66 65 72 65 6e 74 20 66 6c 61 67 73 2e 20  ifferent flags. 
09e0: 20 57 65 0a 23 20 70 61 72 61 6d 65 74 65 72 69   We.# parameteri
09f0: 7a 65 20 68 65 72 65 2c 20 62 75 74 20 73 74 69  ze here, but sti
0a00: 6c 6c 20 6c 69 73 74 20 74 68 65 20 6d 6f 64 65  ll list the mode
0a10: 73 20 69 6e 20 74 68 65 20 62 69 67 20 63 61 73  s in the big cas
0a20: 65 20 62 65 6c 6f 77 2c 0a 23 20 74 6f 20 6d 61  e below,.# to ma
0a30: 6b 65 20 64 65 70 65 6e 64 2e 6d 34 20 65 61 73  ke depend.m4 eas
0a40: 69 65 72 20 74 6f 20 77 72 69 74 65 2e 20 20 4e  ier to write.  N
0a50: 6f 74 65 20 74 68 61 74 20 77 65 20 2a 63 61 6e  ote that we *can
0a60: 6e 6f 74 2a 20 75 73 65 20 61 20 63 61 73 65 0a  not* use a case.
0a70: 23 20 68 65 72 65 2c 20 62 65 63 61 75 73 65 20  # here, because 
0a80: 74 68 69 73 20 66 69 6c 65 20 63 61 6e 20 6f 6e  this file can on
0a90: 6c 79 20 63 6f 6e 74 61 69 6e 20 6f 6e 65 20 63  ly contain one c
0aa0: 61 73 65 20 73 74 61 74 65 6d 65 6e 74 2e 0a 69  ase statement..i
0ab0: 66 20 74 65 73 74 20 22 24 64 65 70 6d 6f 64 65  f test "$depmode
0ac0: 22 20 3d 20 68 70 3b 20 74 68 65 6e 0a 20 20 23  " = hp; then.  #
0ad0: 20 48 50 20 63 6f 6d 70 69 6c 65 72 20 75 73 65   HP compiler use
0ae0: 73 20 2d 4d 20 61 6e 64 20 6e 6f 20 65 78 74 72  s -M and no extr
0af0: 61 20 61 72 67 2e 0a 20 20 67 63 63 66 6c 61 67  a arg..  gccflag
0b00: 3d 2d 4d 0a 20 20 64 65 70 6d 6f 64 65 3d 67 63  =-M.  depmode=gc
0b10: 63 0a 66 69 0a 0a 69 66 20 74 65 73 74 20 22 24  c.fi..if test "$
0b20: 64 65 70 6d 6f 64 65 22 20 3d 20 64 61 73 68 58  depmode" = dashX
0b30: 6d 73 74 64 6f 75 74 3b 20 74 68 65 6e 0a 20 20  mstdout; then.  
0b40: 20 23 20 54 68 69 73 20 69 73 20 6a 75 73 74 20   # This is just 
0b50: 6c 69 6b 65 20 64 61 73 68 6d 73 74 64 6f 75 74  like dashmstdout
0b60: 20 77 69 74 68 20 61 20 64 69 66 66 65 72 65 6e   with a differen
0b70: 74 20 61 72 67 75 6d 65 6e 74 2e 0a 20 20 20 64  t argument..   d
0b80: 61 73 68 6d 66 6c 61 67 3d 2d 78 4d 0a 20 20 20  ashmflag=-xM.   
0b90: 64 65 70 6d 6f 64 65 3d 64 61 73 68 6d 73 74 64  depmode=dashmstd
0ba0: 6f 75 74 0a 66 69 0a 0a 63 79 67 70 61 74 68 5f  out.fi..cygpath_
0bb0: 75 3d 22 63 79 67 70 61 74 68 20 2d 75 20 2d 66  u="cygpath -u -f
0bc0: 20 2d 22 0a 69 66 20 74 65 73 74 20 22 24 64 65   -".if test "$de
0bd0: 70 6d 6f 64 65 22 20 3d 20 6d 73 76 63 6d 73 79  pmode" = msvcmsy
0be0: 73 3b 20 74 68 65 6e 0a 20 20 20 23 20 54 68 69  s; then.   # Thi
0bf0: 73 20 69 73 20 6a 75 73 74 20 6c 69 6b 65 20 6d  s is just like m
0c00: 73 76 69 73 75 61 6c 63 70 70 20 62 75 74 20 77  svisualcpp but w
0c10: 2f 6f 20 63 79 67 70 61 74 68 20 74 72 61 6e 73  /o cygpath trans
0c20: 6c 61 74 69 6f 6e 2e 0a 20 20 20 23 20 4a 75 73  lation..   # Jus
0c30: 74 20 63 6f 6e 76 65 72 74 20 74 68 65 20 62 61  t convert the ba
0c40: 63 6b 73 6c 61 73 68 2d 65 73 63 61 70 65 64 20  ckslash-escaped 
0c50: 62 61 63 6b 73 6c 61 73 68 65 73 20 74 6f 20 73  backslashes to s
0c60: 69 6e 67 6c 65 20 66 6f 72 77 61 72 64 0a 20 20  ingle forward.  
0c70: 20 23 20 73 6c 61 73 68 65 73 20 74 6f 20 73 61   # slashes to sa
0c80: 74 69 73 66 79 20 64 65 70 65 6e 64 2e 6d 34 0a  tisfy depend.m4.
0c90: 20 20 20 63 79 67 70 61 74 68 5f 75 3d 27 73 65     cygpath_u='se
0ca0: 64 20 73 2c 5c 5c 5c 5c 2c 2f 2c 67 27 0a 20 20  d s,\\\\,/,g'.  
0cb0: 20 64 65 70 6d 6f 64 65 3d 6d 73 76 69 73 75 61   depmode=msvisua
0cc0: 6c 63 70 70 0a 66 69 0a 0a 69 66 20 74 65 73 74  lcpp.fi..if test
0cd0: 20 22 24 64 65 70 6d 6f 64 65 22 20 3d 20 6d 73   "$depmode" = ms
0ce0: 76 63 37 6d 73 79 73 3b 20 74 68 65 6e 0a 20 20  vc7msys; then.  
0cf0: 20 23 20 54 68 69 73 20 69 73 20 6a 75 73 74 20   # This is just 
0d00: 6c 69 6b 65 20 6d 73 76 63 37 20 62 75 74 20 77  like msvc7 but w
0d10: 2f 6f 20 63 79 67 70 61 74 68 20 74 72 61 6e 73  /o cygpath trans
0d20: 6c 61 74 69 6f 6e 2e 0a 20 20 20 23 20 4a 75 73  lation..   # Jus
0d30: 74 20 63 6f 6e 76 65 72 74 20 74 68 65 20 62 61  t convert the ba
0d40: 63 6b 73 6c 61 73 68 2d 65 73 63 61 70 65 64 20  ckslash-escaped 
0d50: 62 61 63 6b 73 6c 61 73 68 65 73 20 74 6f 20 73  backslashes to s
0d60: 69 6e 67 6c 65 20 66 6f 72 77 61 72 64 0a 20 20  ingle forward.  
0d70: 20 23 20 73 6c 61 73 68 65 73 20 74 6f 20 73 61   # slashes to sa
0d80: 74 69 73 66 79 20 64 65 70 65 6e 64 2e 6d 34 0a  tisfy depend.m4.
0d90: 20 20 20 63 79 67 70 61 74 68 5f 75 3d 27 73 65     cygpath_u='se
0da0: 64 20 73 2c 5c 5c 5c 5c 2c 2f 2c 67 27 0a 20 20  d s,\\\\,/,g'.  
0db0: 20 64 65 70 6d 6f 64 65 3d 6d 73 76 63 37 0a 66   depmode=msvc7.f
0dc0: 69 0a 0a 69 66 20 74 65 73 74 20 22 24 64 65 70  i..if test "$dep
0dd0: 6d 6f 64 65 22 20 3d 20 78 6c 63 3b 20 74 68 65  mode" = xlc; the
0de0: 6e 0a 20 20 20 23 20 49 42 4d 20 43 2f 43 2b 2b  n.   # IBM C/C++
0df0: 20 43 6f 6d 70 69 6c 65 72 73 20 78 6c 63 2f 78   Compilers xlc/x
0e00: 6c 43 20 63 61 6e 20 6f 75 74 70 75 74 20 67 63  lC can output gc
0e10: 63 2d 6c 69 6b 65 20 64 65 70 65 6e 64 65 6e 63  c-like dependenc
0e20: 79 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 73 2e 0a  y informations..
0e30: 20 20 20 67 63 63 66 6c 61 67 3d 2d 71 6d 61 6b     gccflag=-qmak
0e40: 65 64 65 70 3d 67 63 63 2c 2d 4d 46 0a 20 20 20  edep=gcc,-MF.   
0e50: 64 65 70 6d 6f 64 65 3d 67 63 63 0a 66 69 0a 0a  depmode=gcc.fi..
0e60: 63 61 73 65 20 22 24 64 65 70 6d 6f 64 65 22 20  case "$depmode" 
0e70: 69 6e 0a 67 63 63 33 29 0a 23 23 20 67 63 63 20  in.gcc3).## gcc 
0e80: 33 20 69 6d 70 6c 65 6d 65 6e 74 73 20 64 65 70  3 implements dep
0e90: 65 6e 64 65 6e 63 79 20 74 72 61 63 6b 69 6e 67  endency tracking
0ea0: 20 74 68 61 74 20 64 6f 65 73 20 65 78 61 63 74   that does exact
0eb0: 6c 79 20 77 68 61 74 0a 23 23 20 77 65 20 77 61  ly what.## we wa
0ec0: 6e 74 2e 20 20 59 61 79 21 20 20 4e 6f 74 65 3a  nt.  Yay!  Note:
0ed0: 20 66 6f 72 20 73 6f 6d 65 20 72 65 61 73 6f 6e   for some reason
0ee0: 20 6c 69 62 74 6f 6f 6c 20 31 2e 34 20 64 6f 65   libtool 1.4 doe
0ef0: 73 6e 27 74 20 6c 69 6b 65 0a 23 23 20 69 74 20  sn't like.## it 
0f00: 69 66 20 2d 4d 44 20 2d 4d 50 20 63 6f 6d 65 73  if -MD -MP comes
0f10: 20 61 66 74 65 72 20 74 68 65 20 2d 4d 46 20 73   after the -MF s
0f20: 74 75 66 66 2e 20 20 48 6d 6d 2e 0a 23 23 20 55  tuff.  Hmm..## U
0f30: 6e 66 6f 72 74 75 6e 61 74 65 6c 79 2c 20 46 72  nfortunately, Fr
0f40: 65 65 42 53 44 20 63 38 39 20 61 63 63 65 70 74  eeBSD c89 accept
0f50: 61 6e 63 65 20 6f 66 20 66 6c 61 67 73 20 64 65  ance of flags de
0f60: 70 65 6e 64 73 20 75 70 6f 6e 0a 23 23 20 74 68  pends upon.## th
0f70: 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61  e command line a
0f80: 72 67 75 6d 65 6e 74 20 6f 72 64 65 72 3b 20 73  rgument order; s
0f90: 6f 20 61 64 64 20 74 68 65 20 66 6c 61 67 73 20  o add the flags 
0fa0: 77 68 65 72 65 20 74 68 65 79 0a 23 23 20 61 70  where they.## ap
0fb0: 70 65 61 72 20 69 6e 20 64 65 70 65 6e 64 32 2e  pear in depend2.
0fc0: 61 6d 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74  am.  Note that t
0fd0: 68 65 20 73 6c 6f 77 64 6f 77 6e 20 69 6e 63 75  he slowdown incu
0fe0: 72 72 65 64 20 68 65 72 65 0a 23 23 20 61 66 66  rred here.## aff
0ff0: 65 63 74 73 20 6f 6e 6c 79 20 63 6f 6e 66 69 67  ects only config
1000: 75 72 65 3a 20 69 6e 20 6d 61 6b 65 66 69 6c 65  ure: in makefile
1010: 73 2c 20 25 46 41 53 54 44 45 50 25 20 73 68 6f  s, %FASTDEP% sho
1020: 72 74 63 75 74 73 20 74 68 69 73 2e 0a 20 20 66  rtcuts this..  f
1030: 6f 72 20 61 72 67 0a 20 20 64 6f 0a 20 20 20 20  or arg.  do.    
1040: 63 61 73 65 20 24 61 72 67 20 69 6e 0a 20 20 20  case $arg in.   
1050: 20 2d 63 29 20 73 65 74 20 66 6e 6f 72 64 20 22   -c) set fnord "
1060: 24 40 22 20 2d 4d 54 20 22 24 6f 62 6a 65 63 74  $@" -MT "$object
1070: 22 20 2d 4d 44 20 2d 4d 50 20 2d 4d 46 20 22 24  " -MD -MP -MF "$
1080: 74 6d 70 64 65 70 66 69 6c 65 22 20 22 24 61 72  tmpdepfile" "$ar
1090: 67 22 20 3b 3b 0a 20 20 20 20 2a 29 20 20 73 65  g" ;;.    *)  se
10a0: 74 20 66 6e 6f 72 64 20 22 24 40 22 20 22 24 61  t fnord "$@" "$a
10b0: 72 67 22 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a  rg" ;;.    esac.
10c0: 20 20 20 20 73 68 69 66 74 20 23 20 66 6e 6f 72      shift # fnor
10d0: 64 0a 20 20 20 20 73 68 69 66 74 20 23 20 24 61  d.    shift # $a
10e0: 72 67 0a 20 20 64 6f 6e 65 0a 20 20 22 24 40 22  rg.  done.  "$@"
10f0: 0a 20 20 73 74 61 74 3d 24 3f 0a 20 20 69 66 20  .  stat=$?.  if 
1100: 74 65 73 74 20 24 73 74 61 74 20 2d 65 71 20 30  test $stat -eq 0
1110: 3b 20 74 68 65 6e 20 3a 0a 20 20 65 6c 73 65 0a  ; then :.  else.
1120: 20 20 20 20 72 6d 20 2d 66 20 22 24 74 6d 70 64      rm -f "$tmpd
1130: 65 70 66 69 6c 65 22 0a 20 20 20 20 65 78 69 74  epfile".    exit
1140: 20 24 73 74 61 74 0a 20 20 66 69 0a 20 20 6d 76   $stat.  fi.  mv
1150: 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 20 22   "$tmpdepfile" "
1160: 24 64 65 70 66 69 6c 65 22 0a 20 20 3b 3b 0a 0a  $depfile".  ;;..
1170: 67 63 63 29 0a 23 23 20 54 68 65 72 65 20 61 72  gcc).## There ar
1180: 65 20 76 61 72 69 6f 75 73 20 77 61 79 73 20 74  e various ways t
1190: 6f 20 67 65 74 20 64 65 70 65 6e 64 65 6e 63 79  o get dependency
11a0: 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 67 63 63   output from gcc
11b0: 2e 20 20 48 65 72 65 27 73 0a 23 23 20 77 68 79  .  Here's.## why
11c0: 20 77 65 20 70 69 63 6b 20 74 68 69 73 20 72 61   we pick this ra
11d0: 74 68 65 72 20 6f 62 73 63 75 72 65 20 6d 65 74  ther obscure met
11e0: 68 6f 64 3a 0a 23 23 20 2d 20 44 6f 6e 27 74 20  hod:.## - Don't 
11f0: 77 61 6e 74 20 74 6f 20 75 73 65 20 2d 4d 44 20  want to use -MD 
1200: 62 65 63 61 75 73 65 20 77 65 27 64 20 6c 69 6b  because we'd lik
1210: 65 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69  e the dependenci
1220: 65 73 20 74 6f 20 65 6e 64 0a 23 23 20 20 20 75  es to end.##   u
1230: 70 20 69 6e 20 61 20 73 75 62 64 69 72 2e 20 20  p in a subdir.  
1240: 48 61 76 69 6e 67 20 74 6f 20 72 65 6e 61 6d 65  Having to rename
1250: 20 62 79 20 68 61 6e 64 20 69 73 20 75 67 6c 79   by hand is ugly
1260: 2e 0a 23 23 20 20 20 28 57 65 20 6d 69 67 68 74  ..##   (We might
1270: 20 65 6e 64 20 75 70 20 64 6f 69 6e 67 20 74 68   end up doing th
1280: 69 73 20 61 6e 79 77 61 79 20 74 6f 20 73 75 70  is anyway to sup
1290: 70 6f 72 74 20 6f 74 68 65 72 20 63 6f 6d 70 69  port other compi
12a0: 6c 65 72 73 2e 29 0a 23 23 20 2d 20 54 68 65 20  lers.).## - The 
12b0: 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 4f 55 54  DEPENDENCIES_OUT
12c0: 50 55 54 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20  PUT environment 
12d0: 76 61 72 69 61 62 6c 65 20 6d 61 6b 65 73 20 67  variable makes g
12e0: 63 63 20 61 63 74 20 6c 69 6b 65 0a 23 23 20 20  cc act like.##  
12f0: 20 2d 4d 4d 2c 20 6e 6f 74 20 2d 4d 20 28 64 65   -MM, not -M (de
1300: 73 70 69 74 65 20 77 68 61 74 20 74 68 65 20 64  spite what the d
1310: 6f 63 73 20 73 61 79 29 2e 0a 23 23 20 2d 20 55  ocs say)..## - U
1320: 73 69 6e 67 20 2d 4d 20 64 69 72 65 63 74 6c 79  sing -M directly
1330: 20 6d 65 61 6e 73 20 72 75 6e 6e 69 6e 67 20 74   means running t
1340: 68 65 20 63 6f 6d 70 69 6c 65 72 20 74 77 69 63  he compiler twic
1350: 65 20 28 65 76 65 6e 20 77 6f 72 73 65 0a 23 23  e (even worse.##
1360: 20 20 20 74 68 61 6e 20 72 65 6e 61 6d 69 6e 67     than renaming
1370: 29 2e 0a 20 20 69 66 20 74 65 73 74 20 2d 7a 20  )..  if test -z 
1380: 22 24 67 63 63 66 6c 61 67 22 3b 20 74 68 65 6e  "$gccflag"; then
1390: 0a 20 20 20 20 67 63 63 66 6c 61 67 3d 2d 4d 44  .    gccflag=-MD
13a0: 2c 0a 20 20 66 69 0a 20 20 22 24 40 22 20 2d 57  ,.  fi.  "$@" -W
13b0: 70 2c 22 24 67 63 63 66 6c 61 67 24 74 6d 70 64  p,"$gccflag$tmpd
13c0: 65 70 66 69 6c 65 22 0a 20 20 73 74 61 74 3d 24  epfile".  stat=$
13d0: 3f 0a 20 20 69 66 20 74 65 73 74 20 24 73 74 61  ?.  if test $sta
13e0: 74 20 2d 65 71 20 30 3b 20 74 68 65 6e 20 3a 0a  t -eq 0; then :.
13f0: 20 20 65 6c 73 65 0a 20 20 20 20 72 6d 20 2d 66    else.    rm -f
1400: 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 0a 20   "$tmpdepfile". 
1410: 20 20 20 65 78 69 74 20 24 73 74 61 74 0a 20 20     exit $stat.  
1420: 66 69 0a 20 20 72 6d 20 2d 66 20 22 24 64 65 70  fi.  rm -f "$dep
1430: 66 69 6c 65 22 0a 20 20 65 63 68 6f 20 22 24 6f  file".  echo "$o
1440: 62 6a 65 63 74 20 3a 20 5c 5c 22 20 3e 20 22 24  bject : \\" > "$
1450: 64 65 70 66 69 6c 65 22 0a 20 20 61 6c 70 68 61  depfile".  alpha
1460: 3d 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f  =ABCDEFGHIJKLMNO
1470: 50 51 52 53 54 55 56 57 58 59 5a 61 62 63 64 65  PQRSTUVWXYZabcde
1480: 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75  fghijklmnopqrstu
1490: 76 77 78 79 7a 0a 23 23 20 54 68 65 20 73 65 63  vwxyz.## The sec
14a0: 6f 6e 64 20 2d 65 20 65 78 70 72 65 73 73 69 6f  ond -e expressio
14b0: 6e 20 68 61 6e 64 6c 65 73 20 44 4f 53 2d 73 74  n handles DOS-st
14c0: 79 6c 65 20 66 69 6c 65 20 6e 61 6d 65 73 20 77  yle file names w
14d0: 69 74 68 20 64 72 69 76 65 20 6c 65 74 74 65 72  ith drive letter
14e0: 73 2e 0a 20 20 73 65 64 20 2d 65 20 27 73 2f 5e  s..  sed -e 's/^
14f0: 5b 5e 3a 5d 2a 3a 20 2f 20 2f 27 20 5c 0a 20 20  [^:]*: / /' \.  
1500: 20 20 20 20 2d 65 20 27 73 2f 5e 5b 27 24 61 6c      -e 's/^['$al
1510: 70 68 61 27 5d 3a 5c 2f 5b 5e 3a 5d 2a 3a 20 2f  pha']:\/[^:]*: /
1520: 20 2f 27 20 3c 20 22 24 74 6d 70 64 65 70 66 69   /' < "$tmpdepfi
1530: 6c 65 22 20 3e 3e 20 22 24 64 65 70 66 69 6c 65  le" >> "$depfile
1540: 22 0a 23 23 20 54 68 69 73 20 6e 65 78 74 20 70  ".## This next p
1550: 69 65 63 65 20 6f 66 20 6d 61 67 69 63 20 61 76  iece of magic av
1560: 6f 69 64 73 20 74 68 65 20 22 64 65 6c 65 74 65  oids the "delete
1570: 64 20 68 65 61 64 65 72 20 66 69 6c 65 22 20 70  d header file" p
1580: 72 6f 62 6c 65 6d 2e 0a 23 23 20 54 68 65 20 70  roblem..## The p
1590: 72 6f 62 6c 65 6d 20 69 73 20 74 68 61 74 20 77  roblem is that w
15a0: 68 65 6e 20 61 20 68 65 61 64 65 72 20 66 69 6c  hen a header fil
15b0: 65 20 77 68 69 63 68 20 61 70 70 65 61 72 73 20  e which appears 
15c0: 69 6e 20 61 20 2e 50 20 66 69 6c 65 0a 23 23 20  in a .P file.## 
15d0: 69 73 20 64 65 6c 65 74 65 64 2c 20 74 68 65 20  is deleted, the 
15e0: 64 65 70 65 6e 64 65 6e 63 79 20 63 61 75 73 65  dependency cause
15f0: 73 20 6d 61 6b 65 20 74 6f 20 64 69 65 20 28 62  s make to die (b
1600: 65 63 61 75 73 65 20 74 68 65 72 65 20 69 73 0a  ecause there is.
1610: 23 23 20 74 79 70 69 63 61 6c 6c 79 20 6e 6f 20  ## typically no 
1620: 77 61 79 20 74 6f 20 72 65 62 75 69 6c 64 20 74  way to rebuild t
1630: 68 65 20 68 65 61 64 65 72 29 2e 20 20 57 65 20  he header).  We 
1640: 61 76 6f 69 64 20 74 68 69 73 20 62 79 20 61 64  avoid this by ad
1650: 64 69 6e 67 0a 23 23 20 64 75 6d 6d 79 20 64 65  ding.## dummy de
1660: 70 65 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 65  pendencies for e
1670: 61 63 68 20 68 65 61 64 65 72 20 66 69 6c 65 2e  ach header file.
1680: 20 20 54 6f 6f 20 62 61 64 20 67 63 63 20 64 6f    Too bad gcc do
1690: 65 73 6e 27 74 20 64 6f 0a 23 23 20 74 68 69 73  esn't do.## this
16a0: 20 66 6f 72 20 75 73 20 64 69 72 65 63 74 6c 79   for us directly
16b0: 2e 0a 20 20 74 72 20 27 20 27 20 22 24 6e 6c 22  ..  tr ' ' "$nl"
16c0: 20 3c 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22   < "$tmpdepfile"
16d0: 20 7c 0a 23 23 20 53 6f 6d 65 20 76 65 72 73 69   |.## Some versi
16e0: 6f 6e 73 20 6f 66 20 67 63 63 20 70 75 74 20 61  ons of gcc put a
16f0: 20 73 70 61 63 65 20 62 65 66 6f 72 65 20 74 68   space before th
1700: 65 20 27 3a 27 2e 20 20 4f 6e 20 74 68 65 20 74  e ':'.  On the t
1710: 68 65 6f 72 79 0a 23 23 20 74 68 61 74 20 74 68  heory.## that th
1720: 65 20 73 70 61 63 65 20 6d 65 61 6e 73 20 73 6f  e space means so
1730: 6d 65 74 68 69 6e 67 2c 20 77 65 20 61 64 64 20  mething, we add 
1740: 61 20 73 70 61 63 65 20 74 6f 20 74 68 65 20 6f  a space to the o
1750: 75 74 70 75 74 20 61 73 0a 23 23 20 77 65 6c 6c  utput as.## well
1760: 2e 20 20 68 70 20 64 65 70 6d 6f 64 65 20 61 6c  .  hp depmode al
1770: 73 6f 20 61 64 64 73 20 74 68 61 74 20 73 70 61  so adds that spa
1780: 63 65 2c 20 62 75 74 20 61 6c 73 6f 20 70 72 65  ce, but also pre
1790: 66 69 78 65 73 20 74 68 65 20 56 50 41 54 48 0a  fixes the VPATH.
17a0: 23 23 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74  ## to the object
17b0: 2e 20 20 54 61 6b 65 20 63 61 72 65 20 74 6f 20  .  Take care to 
17c0: 6e 6f 74 20 72 65 70 65 61 74 20 69 74 20 69 6e  not repeat it in
17d0: 20 74 68 65 20 6f 75 74 70 75 74 2e 0a 23 23 20   the output..## 
17e0: 53 6f 6d 65 20 76 65 72 73 69 6f 6e 73 20 6f 66  Some versions of
17f0: 20 74 68 65 20 48 50 55 58 20 31 30 2e 32 30 20   the HPUX 10.20 
1800: 73 65 64 20 63 61 6e 27 74 20 70 72 6f 63 65 73  sed can't proces
1810: 73 20 74 68 69 73 20 69 6e 76 6f 63 61 74 69 6f  s this invocatio
1820: 6e 0a 23 23 20 63 6f 72 72 65 63 74 6c 79 2e 20  n.## correctly. 
1830: 20 42 72 65 61 6b 69 6e 67 20 69 74 20 69 6e 74   Breaking it int
1840: 6f 20 74 77 6f 20 73 65 64 20 69 6e 76 6f 63 61  o two sed invoca
1850: 74 69 6f 6e 73 20 69 73 20 61 20 77 6f 72 6b 61  tions is a worka
1860: 72 6f 75 6e 64 2e 0a 20 20 20 20 73 65 64 20 2d  round..    sed -
1870: 65 20 27 73 2f 5e 5c 5c 24 2f 2f 27 20 2d 65 20  e 's/^\\$//' -e 
1880: 27 2f 5e 24 2f 64 27 20 2d 65 20 22 73 7c 2e 2a  '/^$/d' -e "s|.*
1890: 24 6f 62 6a 65 63 74 24 7c 7c 22 20 2d 65 20 27  $object$||" -e '
18a0: 2f 3a 24 2f 64 27 20 5c 0a 20 20 20 20 20 20 7c  /:$/d' \.      |
18b0: 20 73 65 64 20 2d 65 20 27 73 2f 24 2f 20 3a 2f   sed -e 's/$/ :/
18c0: 27 20 3e 3e 20 22 24 64 65 70 66 69 6c 65 22 0a  ' >> "$depfile".
18d0: 20 20 72 6d 20 2d 66 20 22 24 74 6d 70 64 65 70    rm -f "$tmpdep
18e0: 66 69 6c 65 22 0a 20 20 3b 3b 0a 0a 68 70 29 0a  file".  ;;..hp).
18f0: 20 20 23 20 54 68 69 73 20 63 61 73 65 20 65 78    # This case ex
1900: 69 73 74 73 20 6f 6e 6c 79 20 74 6f 20 6c 65 74  ists only to let
1910: 20 64 65 70 65 6e 64 2e 6d 34 20 64 6f 20 69 74   depend.m4 do it
1920: 73 20 77 6f 72 6b 2e 20 20 49 74 20 77 6f 72 6b  s work.  It work
1930: 73 20 62 79 0a 20 20 23 20 6c 6f 6f 6b 69 6e 67  s by.  # looking
1940: 20 61 74 20 74 68 65 20 74 65 78 74 20 6f 66 20   at the text of 
1950: 74 68 69 73 20 73 63 72 69 70 74 2e 20 20 54 68  this script.  Th
1960: 69 73 20 63 61 73 65 20 77 69 6c 6c 20 6e 65 76  is case will nev
1970: 65 72 20 62 65 20 72 75 6e 2c 0a 20 20 23 20 73  er be run,.  # s
1980: 69 6e 63 65 20 69 74 20 69 73 20 63 68 65 63 6b  ince it is check
1990: 65 64 20 66 6f 72 20 61 62 6f 76 65 2e 0a 20 20  ed for above..  
19a0: 65 78 69 74 20 31 0a 20 20 3b 3b 0a 0a 73 67 69  exit 1.  ;;..sgi
19b0: 29 0a 20 20 69 66 20 74 65 73 74 20 22 24 6c 69  ).  if test "$li
19c0: 62 74 6f 6f 6c 22 20 3d 20 79 65 73 3b 20 74 68  btool" = yes; th
19d0: 65 6e 0a 20 20 20 20 22 24 40 22 20 22 2d 57 70  en.    "$@" "-Wp
19e0: 2c 2d 4d 44 75 70 64 61 74 65 2c 24 74 6d 70 64  ,-MDupdate,$tmpd
19f0: 65 70 66 69 6c 65 22 0a 20 20 65 6c 73 65 0a 20  epfile".  else. 
1a00: 20 20 20 22 24 40 22 20 2d 4d 44 75 70 64 61 74     "$@" -MDupdat
1a10: 65 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 0a  e "$tmpdepfile".
1a20: 20 20 66 69 0a 20 20 73 74 61 74 3d 24 3f 0a 20    fi.  stat=$?. 
1a30: 20 69 66 20 74 65 73 74 20 24 73 74 61 74 20 2d   if test $stat -
1a40: 65 71 20 30 3b 20 74 68 65 6e 20 3a 0a 20 20 65  eq 0; then :.  e
1a50: 6c 73 65 0a 20 20 20 20 72 6d 20 2d 66 20 22 24  lse.    rm -f "$
1a60: 74 6d 70 64 65 70 66 69 6c 65 22 0a 20 20 20 20  tmpdepfile".    
1a70: 65 78 69 74 20 24 73 74 61 74 0a 20 20 66 69 0a  exit $stat.  fi.
1a80: 20 20 72 6d 20 2d 66 20 22 24 64 65 70 66 69 6c    rm -f "$depfil
1a90: 65 22 0a 0a 20 20 69 66 20 74 65 73 74 20 2d 66  e"..  if test -f
1aa0: 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 3b 20   "$tmpdepfile"; 
1ab0: 74 68 65 6e 20 20 23 20 79 65 73 2c 20 74 68 65  then  # yes, the
1ac0: 20 73 6f 75 72 63 65 66 69 6c 65 20 64 65 70 65   sourcefile depe
1ad0: 6e 64 20 6f 6e 20 6f 74 68 65 72 20 66 69 6c 65  nd on other file
1ae0: 73 0a 20 20 20 20 65 63 68 6f 20 22 24 6f 62 6a  s.    echo "$obj
1af0: 65 63 74 20 3a 20 5c 5c 22 20 3e 20 22 24 64 65  ect : \\" > "$de
1b00: 70 66 69 6c 65 22 0a 0a 20 20 20 20 23 20 43 6c  pfile"..    # Cl
1b10: 69 70 20 6f 66 66 20 74 68 65 20 69 6e 69 74 69  ip off the initi
1b20: 61 6c 20 65 6c 65 6d 65 6e 74 20 28 74 68 65 20  al element (the 
1b30: 64 65 70 65 6e 64 65 6e 74 29 2e 20 20 44 6f 6e  dependent).  Don
1b40: 27 74 20 74 72 79 20 74 6f 20 62 65 0a 20 20 20  't try to be.   
1b50: 20 23 20 63 6c 65 76 65 72 20 61 6e 64 20 72 65   # clever and re
1b60: 70 6c 61 63 65 20 74 68 69 73 20 77 69 74 68 20  place this with 
1b70: 73 65 64 20 63 6f 64 65 2c 20 61 73 20 49 52 49  sed code, as IRI
1b80: 58 20 73 65 64 20 77 6f 6e 27 74 20 68 61 6e 64  X sed won't hand
1b90: 6c 65 0a 20 20 20 20 23 20 6c 69 6e 65 73 20 77  le.    # lines w
1ba0: 69 74 68 20 6d 6f 72 65 20 74 68 61 6e 20 61 20  ith more than a 
1bb0: 66 69 78 65 64 20 6e 75 6d 62 65 72 20 6f 66 20  fixed number of 
1bc0: 63 68 61 72 61 63 74 65 72 73 20 28 34 30 39 36  characters (4096
1bd0: 20 69 6e 0a 20 20 20 20 23 20 49 52 49 58 20 36   in.    # IRIX 6
1be0: 2e 32 20 73 65 64 2c 20 38 31 39 32 20 69 6e 20  .2 sed, 8192 in 
1bf0: 49 52 49 58 20 36 2e 35 29 2e 20 20 57 65 20 61  IRIX 6.5).  We a
1c00: 6c 73 6f 20 72 65 6d 6f 76 65 20 63 6f 6d 6d 65  lso remove comme
1c10: 6e 74 20 6c 69 6e 65 73 3b 0a 20 20 20 20 23 20  nt lines;.    # 
1c20: 74 68 65 20 49 52 49 58 20 63 63 20 61 64 64 73  the IRIX cc adds
1c30: 20 63 6f 6d 6d 65 6e 74 73 20 6c 69 6b 65 20 27   comments like '
1c40: 23 3a 66 65 63 27 20 74 6f 20 74 68 65 20 65 6e  #:fec' to the en
1c50: 64 20 6f 66 20 74 68 65 0a 20 20 20 20 23 20 64  d of the.    # d
1c60: 65 70 65 6e 64 65 6e 63 79 20 6c 69 6e 65 2e 0a  ependency line..
1c70: 20 20 20 20 74 72 20 27 20 27 20 22 24 6e 6c 22      tr ' ' "$nl"
1c80: 20 3c 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22   < "$tmpdepfile"
1c90: 20 5c 0a 20 20 20 20 7c 20 73 65 64 20 2d 65 20   \.    | sed -e 
1ca0: 27 73 2f 5e 2e 2a 5c 2e 6f 3a 2f 2f 27 20 2d 65  's/^.*\.o://' -e
1cb0: 20 27 73 2f 23 2e 2a 24 2f 2f 27 20 2d 65 20 27   's/#.*$//' -e '
1cc0: 2f 5e 24 2f 20 64 27 20 7c 20 5c 0a 20 20 20 20  /^$/ d' | \.    
1cd0: 74 72 20 22 24 6e 6c 22 20 27 20 27 20 3e 3e 20  tr "$nl" ' ' >> 
1ce0: 22 24 64 65 70 66 69 6c 65 22 0a 20 20 20 20 65  "$depfile".    e
1cf0: 63 68 6f 20 3e 3e 20 22 24 64 65 70 66 69 6c 65  cho >> "$depfile
1d00: 22 0a 0a 20 20 20 20 23 20 54 68 65 20 73 65 63  "..    # The sec
1d10: 6f 6e 64 20 70 61 73 73 20 67 65 6e 65 72 61 74  ond pass generat
1d20: 65 73 20 61 20 64 75 6d 6d 79 20 65 6e 74 72 79  es a dummy entry
1d30: 20 66 6f 72 20 65 61 63 68 20 68 65 61 64 65 72   for each header
1d40: 20 66 69 6c 65 2e 0a 20 20 20 20 74 72 20 27 20   file..    tr ' 
1d50: 27 20 22 24 6e 6c 22 20 3c 20 22 24 74 6d 70 64  ' "$nl" < "$tmpd
1d60: 65 70 66 69 6c 65 22 20 5c 0a 20 20 20 7c 20 73  epfile" \.   | s
1d70: 65 64 20 2d 65 20 27 73 2f 5e 2e 2a 5c 2e 6f 3a  ed -e 's/^.*\.o:
1d80: 2f 2f 27 20 2d 65 20 27 73 2f 23 2e 2a 24 2f 2f  //' -e 's/#.*$//
1d90: 27 20 2d 65 20 27 2f 5e 24 2f 20 64 27 20 2d 65  ' -e '/^$/ d' -e
1da0: 20 27 73 2f 24 2f 3a 2f 27 20 5c 0a 20 20 20 3e   's/$/:/' \.   >
1db0: 3e 20 22 24 64 65 70 66 69 6c 65 22 0a 20 20 65  > "$depfile".  e
1dc0: 6c 73 65 0a 20 20 20 20 23 20 54 68 65 20 73 6f  lse.    # The so
1dd0: 75 72 63 65 66 69 6c 65 20 64 6f 65 73 20 6e 6f  urcefile does no
1de0: 74 20 63 6f 6e 74 61 69 6e 20 61 6e 79 20 64 65  t contain any de
1df0: 70 65 6e 64 65 6e 63 69 65 73 2c 20 73 6f 20 6a  pendencies, so j
1e00: 75 73 74 0a 20 20 20 20 23 20 73 74 6f 72 65 20  ust.    # store 
1e10: 61 20 64 75 6d 6d 79 20 63 6f 6d 6d 65 6e 74 20  a dummy comment 
1e20: 6c 69 6e 65 2c 20 74 6f 20 61 76 6f 69 64 20 65  line, to avoid e
1e30: 72 72 6f 72 73 20 77 69 74 68 20 74 68 65 20 4d  rrors with the M
1e40: 61 6b 65 66 69 6c 65 0a 20 20 20 20 23 20 22 69  akefile.    # "i
1e50: 6e 63 6c 75 64 65 20 62 61 73 65 6e 61 6d 65 2e  nclude basename.
1e60: 50 6c 6f 22 20 73 63 68 65 6d 65 2e 0a 20 20 20  Plo" scheme..   
1e70: 20 65 63 68 6f 20 22 23 64 75 6d 6d 79 22 20 3e   echo "#dummy" >
1e80: 20 22 24 64 65 70 66 69 6c 65 22 0a 20 20 66 69   "$depfile".  fi
1e90: 0a 20 20 72 6d 20 2d 66 20 22 24 74 6d 70 64 65  .  rm -f "$tmpde
1ea0: 70 66 69 6c 65 22 0a 20 20 3b 3b 0a 0a 78 6c 63  pfile".  ;;..xlc
1eb0: 29 0a 20 20 23 20 54 68 69 73 20 63 61 73 65 20  ).  # This case 
1ec0: 65 78 69 73 74 73 20 6f 6e 6c 79 20 74 6f 20 6c  exists only to l
1ed0: 65 74 20 64 65 70 65 6e 64 2e 6d 34 20 64 6f 20  et depend.m4 do 
1ee0: 69 74 73 20 77 6f 72 6b 2e 20 20 49 74 20 77 6f  its work.  It wo
1ef0: 72 6b 73 20 62 79 0a 20 20 23 20 6c 6f 6f 6b 69  rks by.  # looki
1f00: 6e 67 20 61 74 20 74 68 65 20 74 65 78 74 20 6f  ng at the text o
1f10: 66 20 74 68 69 73 20 73 63 72 69 70 74 2e 20 20  f this script.  
1f20: 54 68 69 73 20 63 61 73 65 20 77 69 6c 6c 20 6e  This case will n
1f30: 65 76 65 72 20 62 65 20 72 75 6e 2c 0a 20 20 23  ever be run,.  #
1f40: 20 73 69 6e 63 65 20 69 74 20 69 73 20 63 68 65   since it is che
1f50: 63 6b 65 64 20 66 6f 72 20 61 62 6f 76 65 2e 0a  cked for above..
1f60: 20 20 65 78 69 74 20 31 0a 20 20 3b 3b 0a 0a 61    exit 1.  ;;..a
1f70: 69 78 29 0a 20 20 23 20 54 68 65 20 43 20 66 6f  ix).  # The C fo
1f80: 72 20 41 49 58 20 43 6f 6d 70 69 6c 65 72 20 75  r AIX Compiler u
1f90: 73 65 73 20 2d 4d 20 61 6e 64 20 6f 75 74 70 75  ses -M and outpu
1fa0: 74 73 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63  ts the dependenc
1fb0: 69 65 73 0a 20 20 23 20 69 6e 20 61 20 2e 75 20  ies.  # in a .u 
1fc0: 66 69 6c 65 2e 20 20 49 6e 20 6f 6c 64 65 72 20  file.  In older 
1fd0: 76 65 72 73 69 6f 6e 73 2c 20 74 68 69 73 20 66  versions, this f
1fe0: 69 6c 65 20 61 6c 77 61 79 73 20 6c 69 76 65 73  ile always lives
1ff0: 20 69 6e 20 74 68 65 0a 20 20 23 20 63 75 72 72   in the.  # curr
2000: 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 20 20  ent directory.  
2010: 41 6c 73 6f 2c 20 74 68 65 20 41 49 58 20 63 6f  Also, the AIX co
2020: 6d 70 69 6c 65 72 20 70 75 74 73 20 27 24 6f 62  mpiler puts '$ob
2030: 6a 65 63 74 3a 27 20 61 74 20 74 68 65 0a 20 20  ject:' at the.  
2040: 23 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 20  # start of each 
2050: 6c 69 6e 65 3b 20 24 6f 62 6a 65 63 74 20 64 6f  line; $object do
2060: 65 73 6e 27 74 20 68 61 76 65 20 64 69 72 65 63  esn't have direc
2070: 74 6f 72 79 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  tory information
2080: 2e 0a 20 20 23 20 56 65 72 73 69 6f 6e 20 36 20  ..  # Version 6 
2090: 75 73 65 73 20 74 68 65 20 64 69 72 65 63 74 6f  uses the directo
20a0: 72 79 20 69 6e 20 62 6f 74 68 20 63 61 73 65 73  ry in both cases
20b0: 2e 0a 20 20 64 69 72 3d 60 65 63 68 6f 20 22 24  ..  dir=`echo "$
20c0: 6f 62 6a 65 63 74 22 20 7c 20 73 65 64 20 2d 65  object" | sed -e
20d0: 20 27 73 7c 2f 5b 5e 2f 5d 2a 24 7c 2f 7c 27 60   's|/[^/]*$|/|'`
20e0: 0a 20 20 74 65 73 74 20 22 78 24 64 69 72 22 20  .  test "x$dir" 
20f0: 3d 20 22 78 24 6f 62 6a 65 63 74 22 20 26 26 20  = "x$object" && 
2100: 64 69 72 3d 0a 20 20 62 61 73 65 3d 60 65 63 68  dir=.  base=`ech
2110: 6f 20 22 24 6f 62 6a 65 63 74 22 20 7c 20 73 65  o "$object" | se
2120: 64 20 2d 65 20 27 73 7c 5e 2e 2a 2f 7c 7c 27 20  d -e 's|^.*/||' 
2130: 2d 65 20 27 73 2f 5c 2e 6f 24 2f 2f 27 20 2d 65  -e 's/\.o$//' -e
2140: 20 27 73 2f 5c 2e 6c 6f 24 2f 2f 27 60 0a 20 20   's/\.lo$//'`.  
2150: 69 66 20 74 65 73 74 20 22 24 6c 69 62 74 6f 6f  if test "$libtoo
2160: 6c 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20  l" = yes; then. 
2170: 20 20 20 74 6d 70 64 65 70 66 69 6c 65 31 3d 24     tmpdepfile1=$
2180: 64 69 72 24 62 61 73 65 2e 75 0a 20 20 20 20 74  dir$base.u.    t
2190: 6d 70 64 65 70 66 69 6c 65 32 3d 24 62 61 73 65  mpdepfile2=$base
21a0: 2e 75 0a 20 20 20 20 74 6d 70 64 65 70 66 69 6c  .u.    tmpdepfil
21b0: 65 33 3d 24 64 69 72 2e 6c 69 62 73 2f 24 62 61  e3=$dir.libs/$ba
21c0: 73 65 2e 75 0a 20 20 20 20 22 24 40 22 20 2d 57  se.u.    "$@" -W
21d0: 63 2c 2d 4d 0a 20 20 65 6c 73 65 0a 20 20 20 20  c,-M.  else.    
21e0: 74 6d 70 64 65 70 66 69 6c 65 31 3d 24 64 69 72  tmpdepfile1=$dir
21f0: 24 62 61 73 65 2e 75 0a 20 20 20 20 74 6d 70 64  $base.u.    tmpd
2200: 65 70 66 69 6c 65 32 3d 24 64 69 72 24 62 61 73  epfile2=$dir$bas
2210: 65 2e 75 0a 20 20 20 20 74 6d 70 64 65 70 66 69  e.u.    tmpdepfi
2220: 6c 65 33 3d 24 64 69 72 24 62 61 73 65 2e 75 0a  le3=$dir$base.u.
2230: 20 20 20 20 22 24 40 22 20 2d 4d 0a 20 20 66 69      "$@" -M.  fi
2240: 0a 20 20 73 74 61 74 3d 24 3f 0a 0a 20 20 69 66  .  stat=$?..  if
2250: 20 74 65 73 74 20 24 73 74 61 74 20 2d 65 71 20   test $stat -eq 
2260: 30 3b 20 74 68 65 6e 20 3a 0a 20 20 65 6c 73 65  0; then :.  else
2270: 0a 20 20 20 20 72 6d 20 2d 66 20 22 24 74 6d 70  .    rm -f "$tmp
2280: 64 65 70 66 69 6c 65 31 22 20 22 24 74 6d 70 64  depfile1" "$tmpd
2290: 65 70 66 69 6c 65 32 22 20 22 24 74 6d 70 64 65  epfile2" "$tmpde
22a0: 70 66 69 6c 65 33 22 0a 20 20 20 20 65 78 69 74  pfile3".    exit
22b0: 20 24 73 74 61 74 0a 20 20 66 69 0a 0a 20 20 66   $stat.  fi..  f
22c0: 6f 72 20 74 6d 70 64 65 70 66 69 6c 65 20 69 6e  or tmpdepfile in
22d0: 20 22 24 74 6d 70 64 65 70 66 69 6c 65 31 22 20   "$tmpdepfile1" 
22e0: 22 24 74 6d 70 64 65 70 66 69 6c 65 32 22 20 22  "$tmpdepfile2" "
22f0: 24 74 6d 70 64 65 70 66 69 6c 65 33 22 0a 20 20  $tmpdepfile3".  
2300: 64 6f 0a 20 20 20 20 74 65 73 74 20 2d 66 20 22  do.    test -f "
2310: 24 74 6d 70 64 65 70 66 69 6c 65 22 20 26 26 20  $tmpdepfile" && 
2320: 62 72 65 61 6b 0a 20 20 64 6f 6e 65 0a 20 20 69  break.  done.  i
2330: 66 20 74 65 73 74 20 2d 66 20 22 24 74 6d 70 64  f test -f "$tmpd
2340: 65 70 66 69 6c 65 22 3b 20 74 68 65 6e 0a 20 20  epfile"; then.  
2350: 20 20 23 20 45 61 63 68 20 6c 69 6e 65 20 69 73    # Each line is
2360: 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 27 66 6f   of the form 'fo
2370: 6f 2e 6f 3a 20 64 65 70 65 6e 64 65 6e 74 2e 68  o.o: dependent.h
2380: 27 2e 0a 20 20 20 20 23 20 44 6f 20 74 77 6f 20  '..    # Do two 
2390: 70 61 73 73 65 73 2c 20 6f 6e 65 20 74 6f 20 6a  passes, one to j
23a0: 75 73 74 20 63 68 61 6e 67 65 20 74 68 65 73 65  ust change these
23b0: 20 74 6f 0a 20 20 20 20 23 20 27 24 6f 62 6a 65   to.    # '$obje
23c0: 63 74 3a 20 64 65 70 65 6e 64 65 6e 74 2e 68 27  ct: dependent.h'
23d0: 20 61 6e 64 20 6f 6e 65 20 74 6f 20 73 69 6d 70   and one to simp
23e0: 6c 79 20 27 64 65 70 65 6e 64 65 6e 74 2e 68 3a  ly 'dependent.h:
23f0: 27 2e 0a 20 20 20 20 73 65 64 20 2d 65 20 22 73  '..    sed -e "s
2400: 2c 5e 2e 2a 5c 2e 5b 61 2d 7a 5d 2a 3a 2c 24 6f  ,^.*\.[a-z]*:,$o
2410: 62 6a 65 63 74 3a 2c 22 20 3c 20 22 24 74 6d 70  bject:," < "$tmp
2420: 64 65 70 66 69 6c 65 22 20 3e 20 22 24 64 65 70  depfile" > "$dep
2430: 66 69 6c 65 22 0a 20 20 20 20 73 65 64 20 2d 65  file".    sed -e
2440: 20 27 73 2c 5e 2e 2a 5c 2e 5b 61 2d 7a 5d 2a 3a   's,^.*\.[a-z]*:
2450: 5b 27 22 24 74 61 62 22 27 20 5d 2a 2c 2c 27 20  ['"$tab"' ]*,,' 
2460: 2d 65 20 27 73 2c 24 2c 3a 2c 27 20 3c 20 22 24  -e 's,$,:,' < "$
2470: 74 6d 70 64 65 70 66 69 6c 65 22 20 3e 3e 20 22  tmpdepfile" >> "
2480: 24 64 65 70 66 69 6c 65 22 0a 20 20 65 6c 73 65  $depfile".  else
2490: 0a 20 20 20 20 23 20 54 68 65 20 73 6f 75 72 63  .    # The sourc
24a0: 65 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 63  efile does not c
24b0: 6f 6e 74 61 69 6e 20 61 6e 79 20 64 65 70 65 6e  ontain any depen
24c0: 64 65 6e 63 69 65 73 2c 20 73 6f 20 6a 75 73 74  dencies, so just
24d0: 0a 20 20 20 20 23 20 73 74 6f 72 65 20 61 20 64  .    # store a d
24e0: 75 6d 6d 79 20 63 6f 6d 6d 65 6e 74 20 6c 69 6e  ummy comment lin
24f0: 65 2c 20 74 6f 20 61 76 6f 69 64 20 65 72 72 6f  e, to avoid erro
2500: 72 73 20 77 69 74 68 20 74 68 65 20 4d 61 6b 65  rs with the Make
2510: 66 69 6c 65 0a 20 20 20 20 23 20 22 69 6e 63 6c  file.    # "incl
2520: 75 64 65 20 62 61 73 65 6e 61 6d 65 2e 50 6c 6f  ude basename.Plo
2530: 22 20 73 63 68 65 6d 65 2e 0a 20 20 20 20 65 63  " scheme..    ec
2540: 68 6f 20 22 23 64 75 6d 6d 79 22 20 3e 20 22 24  ho "#dummy" > "$
2550: 64 65 70 66 69 6c 65 22 0a 20 20 66 69 0a 20 20  depfile".  fi.  
2560: 72 6d 20 2d 66 20 22 24 74 6d 70 64 65 70 66 69  rm -f "$tmpdepfi
2570: 6c 65 22 0a 20 20 3b 3b 0a 0a 69 63 63 29 0a 20  le".  ;;..icc). 
2580: 20 23 20 49 6e 74 65 6c 27 73 20 43 20 63 6f 6d   # Intel's C com
2590: 70 69 6c 65 72 20 61 6e 66 20 74 63 63 20 28 54  piler anf tcc (T
25a0: 69 6e 79 20 43 20 43 6f 6d 70 69 6c 65 72 29 20  iny C Compiler) 
25b0: 75 6e 64 65 72 73 74 61 6e 64 20 27 2d 4d 44 20  understand '-MD 
25c0: 2d 4d 46 20 66 69 6c 65 27 2e 0a 20 20 23 20 48  -MF file'..  # H
25d0: 6f 77 65 76 65 72 20 6f 6e 0a 20 20 23 20 20 20  owever on.  #   
25e0: 20 24 43 43 20 2d 4d 44 20 2d 4d 46 20 66 6f 6f   $CC -MD -MF foo
25f0: 2e 64 20 2d 63 20 2d 6f 20 73 75 62 2f 66 6f 6f  .d -c -o sub/foo
2600: 2e 6f 20 73 75 62 2f 66 6f 6f 2e 63 0a 20 20 23  .o sub/foo.c.  #
2610: 20 49 43 43 20 37 2e 30 20 77 69 6c 6c 20 66 69   ICC 7.0 will fi
2620: 6c 6c 20 66 6f 6f 2e 64 20 77 69 74 68 20 73 6f  ll foo.d with so
2630: 6d 65 74 68 69 6e 67 20 6c 69 6b 65 0a 20 20 23  mething like.  #
2640: 20 20 20 20 66 6f 6f 2e 6f 3a 20 73 75 62 2f 66      foo.o: sub/f
2650: 6f 6f 2e 63 0a 20 20 23 20 20 20 20 66 6f 6f 2e  oo.c.  #    foo.
2660: 6f 3a 20 73 75 62 2f 66 6f 6f 2e 68 0a 20 20 23  o: sub/foo.h.  #
2670: 20 77 68 69 63 68 20 69 73 20 77 72 6f 6e 67 2e   which is wrong.
2680: 20 20 57 65 20 77 61 6e 74 0a 20 20 23 20 20 20    We want.  #   
2690: 20 73 75 62 2f 66 6f 6f 2e 6f 3a 20 73 75 62 2f   sub/foo.o: sub/
26a0: 66 6f 6f 2e 63 0a 20 20 23 20 20 20 20 73 75 62  foo.c.  #    sub
26b0: 2f 66 6f 6f 2e 6f 3a 20 73 75 62 2f 66 6f 6f 2e  /foo.o: sub/foo.
26c0: 68 0a 20 20 23 20 20 20 20 73 75 62 2f 66 6f 6f  h.  #    sub/foo
26d0: 2e 63 3a 0a 20 20 23 20 20 20 20 73 75 62 2f 66  .c:.  #    sub/f
26e0: 6f 6f 2e 68 3a 0a 20 20 23 20 49 43 43 20 37 2e  oo.h:.  # ICC 7.
26f0: 31 20 77 69 6c 6c 20 6f 75 74 70 75 74 0a 20 20  1 will output.  
2700: 23 20 20 20 20 66 6f 6f 2e 6f 3a 20 73 75 62 2f  #    foo.o: sub/
2710: 66 6f 6f 2e 63 20 73 75 62 2f 66 6f 6f 2e 68 0a  foo.c sub/foo.h.
2720: 20 20 23 20 61 6e 64 20 77 69 6c 6c 20 77 72 61    # and will wra
2730: 70 20 6c 6f 6e 67 20 6c 69 6e 65 73 20 75 73 69  p long lines usi
2740: 6e 67 20 27 5c 27 3a 0a 20 20 23 20 20 20 20 66  ng '\':.  #    f
2750: 6f 6f 2e 6f 3a 20 73 75 62 2f 66 6f 6f 2e 63 20  oo.o: sub/foo.c 
2760: 2e 2e 2e 20 5c 0a 20 20 23 20 20 20 20 20 73 75  ... \.  #     su
2770: 62 2f 66 6f 6f 2e 68 20 2e 2e 2e 20 5c 0a 20 20  b/foo.h ... \.  
2780: 23 20 20 20 20 20 2e 2e 2e 0a 20 20 23 20 74 63  #     ....  # tc
2790: 63 20 30 2e 39 2e 32 36 20 28 46 49 58 4d 45 20  c 0.9.26 (FIXME 
27a0: 73 74 69 6c 6c 20 75 6e 64 65 72 20 64 65 76 65  still under deve
27b0: 6c 6f 70 6d 65 6e 74 20 61 74 20 74 68 65 20 6d  lopment at the m
27c0: 6f 6d 65 6e 74 20 6f 66 20 77 72 69 74 69 6e 67  oment of writing
27d0: 29 0a 20 20 23 20 77 69 6c 6c 20 65 6d 69 74 20  ).  # will emit 
27e0: 61 20 73 69 6d 69 6c 61 72 20 6f 75 74 70 75 74  a similar output
27f0: 2c 20 62 75 74 20 61 6c 73 6f 20 70 72 65 70 65  , but also prepe
2800: 6e 64 20 74 68 65 20 63 6f 6e 74 69 6e 75 61 74  nd the continuat
2810: 69 6f 6e 20 6c 69 6e 65 73 0a 20 20 23 20 77 69  ion lines.  # wi
2820: 74 68 20 68 6f 72 69 7a 6f 6e 74 61 6c 20 74 61  th horizontal ta
2830: 62 75 6c 61 74 69 6f 6e 20 63 68 61 72 61 63 74  bulation charact
2840: 65 72 73 2e 0a 20 20 22 24 40 22 20 2d 4d 44 20  ers..  "$@" -MD 
2850: 2d 4d 46 20 22 24 74 6d 70 64 65 70 66 69 6c 65  -MF "$tmpdepfile
2860: 22 0a 20 20 73 74 61 74 3d 24 3f 0a 20 20 69 66  ".  stat=$?.  if
2870: 20 74 65 73 74 20 24 73 74 61 74 20 2d 65 71 20   test $stat -eq 
2880: 30 3b 20 74 68 65 6e 20 3a 0a 20 20 65 6c 73 65  0; then :.  else
2890: 0a 20 20 20 20 72 6d 20 2d 66 20 22 24 74 6d 70  .    rm -f "$tmp
28a0: 64 65 70 66 69 6c 65 22 0a 20 20 20 20 65 78 69  depfile".    exi
28b0: 74 20 24 73 74 61 74 0a 20 20 66 69 0a 20 20 72  t $stat.  fi.  r
28c0: 6d 20 2d 66 20 22 24 64 65 70 66 69 6c 65 22 0a  m -f "$depfile".
28d0: 20 20 23 20 45 61 63 68 20 6c 69 6e 65 20 69 73    # Each line is
28e0: 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 27 66 6f   of the form 'fo
28f0: 6f 2e 6f 3a 20 64 65 70 65 6e 64 65 6e 74 2e 68  o.o: dependent.h
2900: 27 2c 0a 20 20 23 20 6f 72 20 27 66 6f 6f 2e 6f  ',.  # or 'foo.o
2910: 3a 20 64 65 70 31 2e 68 20 64 65 70 32 2e 68 20  : dep1.h dep2.h 
2920: 5c 27 2c 20 6f 72 20 27 20 64 65 70 33 2e 68 20  \', or ' dep3.h 
2930: 64 65 70 34 2e 68 20 5c 27 2e 0a 20 20 23 20 44  dep4.h \'..  # D
2940: 6f 20 74 77 6f 20 70 61 73 73 65 73 2c 20 6f 6e  o two passes, on
2950: 65 20 74 6f 20 6a 75 73 74 20 63 68 61 6e 67 65  e to just change
2960: 20 74 68 65 73 65 20 74 6f 0a 20 20 23 20 27 24   these to.  # '$
2970: 6f 62 6a 65 63 74 3a 20 64 65 70 65 6e 64 65 6e  object: dependen
2980: 74 2e 68 27 20 61 6e 64 20 6f 6e 65 20 74 6f 20  t.h' and one to 
2990: 73 69 6d 70 6c 79 20 27 64 65 70 65 6e 64 65 6e  simply 'dependen
29a0: 74 2e 68 3a 27 2e 0a 20 20 73 65 64 20 2d 65 20  t.h:'..  sed -e 
29b0: 22 73 2f 5e 5b 20 24 74 61 62 5d 5b 20 24 74 61  "s/^[ $tab][ $ta
29c0: 62 5d 2a 2f 20 20 2f 22 20 2d 65 20 22 73 2c 5e  b]*/  /" -e "s,^
29d0: 5b 5e 3a 5d 2a 3a 2c 24 6f 62 6a 65 63 74 20 3a  [^:]*:,$object :
29e0: 2c 22 20 5c 0a 20 20 20 20 3c 20 22 24 74 6d 70  ," \.    < "$tmp
29f0: 64 65 70 66 69 6c 65 22 20 3e 20 22 24 64 65 70  depfile" > "$dep
2a00: 66 69 6c 65 22 0a 20 20 73 65 64 20 27 0a 20 20  file".  sed '.  
2a10: 20 20 73 2f 5b 20 27 22 24 74 61 62 22 27 5d 5b    s/[ '"$tab"'][
2a20: 20 27 22 24 74 61 62 22 27 5d 2a 2f 20 2f 67 0a   '"$tab"']*/ /g.
2a30: 20 20 20 20 73 2f 5e 20 2a 2f 2f 0a 20 20 20 20      s/^ *//.    
2a40: 73 2f 20 2a 5c 5c 2a 24 2f 2f 0a 20 20 20 20 73  s/ *\\*$//.    s
2a50: 2f 5e 5b 5e 3a 5d 2a 3a 20 2a 2f 2f 0a 20 20 20  /^[^:]*: *//.   
2a60: 20 2f 5e 24 2f 64 0a 20 20 20 20 2f 3a 24 2f 64   /^$/d.    /:$/d
2a70: 0a 20 20 20 20 73 2f 24 2f 20 3a 2f 0a 20 20 27  .    s/$/ :/.  '
2a80: 20 3c 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22   < "$tmpdepfile"
2a90: 20 3e 3e 20 22 24 64 65 70 66 69 6c 65 22 0a 20   >> "$depfile". 
2aa0: 20 72 6d 20 2d 66 20 22 24 74 6d 70 64 65 70 66   rm -f "$tmpdepf
2ab0: 69 6c 65 22 0a 20 20 3b 3b 0a 0a 68 70 32 29 0a  ile".  ;;..hp2).
2ac0: 20 20 23 20 54 68 65 20 22 68 70 22 20 73 74 61    # The "hp" sta
2ad0: 6e 7a 61 20 61 62 6f 76 65 20 64 6f 65 73 20 6e  nza above does n
2ae0: 6f 74 20 77 6f 72 6b 20 77 69 74 68 20 61 43 43  ot work with aCC
2af0: 20 28 43 2b 2b 29 20 61 6e 64 20 48 50 27 73 20   (C++) and HP's 
2b00: 69 61 36 34 0a 20 20 23 20 63 6f 6d 70 69 6c 65  ia64.  # compile
2b10: 72 73 2c 20 77 68 69 63 68 20 68 61 76 65 20 69  rs, which have i
2b20: 6e 74 65 67 72 61 74 65 64 20 70 72 65 70 72 6f  ntegrated prepro
2b30: 63 65 73 73 6f 72 73 2e 20 20 54 68 65 20 63 6f  cessors.  The co
2b40: 72 72 65 63 74 20 6f 70 74 69 6f 6e 0a 20 20 23  rrect option.  #
2b50: 20 74 6f 20 75 73 65 20 77 69 74 68 20 74 68 65   to use with the
2b60: 73 65 20 69 73 20 2b 4d 61 6b 65 64 3b 20 69 74  se is +Maked; it
2b70: 20 77 72 69 74 65 73 20 64 65 70 65 6e 64 65 6e   writes dependen
2b80: 63 69 65 73 20 74 6f 20 61 20 66 69 6c 65 20 6e  cies to a file n
2b90: 61 6d 65 64 0a 20 20 23 20 27 66 6f 6f 2e 64 27  amed.  # 'foo.d'
2ba0: 2c 20 77 68 69 63 68 20 6c 61 6e 64 73 20 6e 65  , which lands ne
2bb0: 78 74 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74  xt to the object
2bc0: 20 66 69 6c 65 2c 20 77 68 65 72 65 76 65 72 20   file, wherever 
2bd0: 74 68 61 74 0a 20 20 23 20 68 61 70 70 65 6e 73  that.  # happens
2be0: 20 74 6f 20 62 65 2e 0a 20 20 23 20 4d 75 63 68   to be..  # Much
2bf0: 20 6f 66 20 74 68 69 73 20 69 73 20 73 69 6d 69   of this is simi
2c00: 6c 61 72 20 74 6f 20 74 68 65 20 74 72 75 36 34  lar to the tru64
2c10: 20 63 61 73 65 3b 20 73 65 65 20 63 6f 6d 6d 65   case; see comme
2c20: 6e 74 73 20 74 68 65 72 65 2e 0a 20 20 64 69 72  nts there..  dir
2c30: 3d 60 65 63 68 6f 20 22 24 6f 62 6a 65 63 74 22  =`echo "$object"
2c40: 20 7c 20 73 65 64 20 2d 65 20 27 73 7c 2f 5b 5e   | sed -e 's|/[^
2c50: 2f 5d 2a 24 7c 2f 7c 27 60 0a 20 20 74 65 73 74  /]*$|/|'`.  test
2c60: 20 22 78 24 64 69 72 22 20 3d 20 22 78 24 6f 62   "x$dir" = "x$ob
2c70: 6a 65 63 74 22 20 26 26 20 64 69 72 3d 0a 20 20  ject" && dir=.  
2c80: 62 61 73 65 3d 60 65 63 68 6f 20 22 24 6f 62 6a  base=`echo "$obj
2c90: 65 63 74 22 20 7c 20 73 65 64 20 2d 65 20 27 73  ect" | sed -e 's
2ca0: 7c 5e 2e 2a 2f 7c 7c 27 20 2d 65 20 27 73 2f 5c  |^.*/||' -e 's/\
2cb0: 2e 6f 24 2f 2f 27 20 2d 65 20 27 73 2f 5c 2e 6c  .o$//' -e 's/\.l
2cc0: 6f 24 2f 2f 27 60 0a 20 20 69 66 20 74 65 73 74  o$//'`.  if test
2cd0: 20 22 24 6c 69 62 74 6f 6f 6c 22 20 3d 20 79 65   "$libtool" = ye
2ce0: 73 3b 20 74 68 65 6e 0a 20 20 20 20 74 6d 70 64  s; then.    tmpd
2cf0: 65 70 66 69 6c 65 31 3d 24 64 69 72 24 62 61 73  epfile1=$dir$bas
2d00: 65 2e 64 0a 20 20 20 20 74 6d 70 64 65 70 66 69  e.d.    tmpdepfi
2d10: 6c 65 32 3d 24 64 69 72 2e 6c 69 62 73 2f 24 62  le2=$dir.libs/$b
2d20: 61 73 65 2e 64 0a 20 20 20 20 22 24 40 22 20 2d  ase.d.    "$@" -
2d30: 57 63 2c 2b 4d 61 6b 65 64 0a 20 20 65 6c 73 65  Wc,+Maked.  else
2d40: 0a 20 20 20 20 74 6d 70 64 65 70 66 69 6c 65 31  .    tmpdepfile1
2d50: 3d 24 64 69 72 24 62 61 73 65 2e 64 0a 20 20 20  =$dir$base.d.   
2d60: 20 74 6d 70 64 65 70 66 69 6c 65 32 3d 24 64 69   tmpdepfile2=$di
2d70: 72 24 62 61 73 65 2e 64 0a 20 20 20 20 22 24 40  r$base.d.    "$@
2d80: 22 20 2b 4d 61 6b 65 64 0a 20 20 66 69 0a 20 20  " +Maked.  fi.  
2d90: 73 74 61 74 3d 24 3f 0a 20 20 69 66 20 74 65 73  stat=$?.  if tes
2da0: 74 20 24 73 74 61 74 20 2d 65 71 20 30 3b 20 74  t $stat -eq 0; t
2db0: 68 65 6e 20 3a 0a 20 20 65 6c 73 65 0a 20 20 20  hen :.  else.   
2dc0: 20 20 72 6d 20 2d 66 20 22 24 74 6d 70 64 65 70    rm -f "$tmpdep
2dd0: 66 69 6c 65 31 22 20 22 24 74 6d 70 64 65 70 66  file1" "$tmpdepf
2de0: 69 6c 65 32 22 0a 20 20 20 20 20 65 78 69 74 20  ile2".     exit 
2df0: 24 73 74 61 74 0a 20 20 66 69 0a 0a 20 20 66 6f  $stat.  fi..  fo
2e00: 72 20 74 6d 70 64 65 70 66 69 6c 65 20 69 6e 20  r tmpdepfile in 
2e10: 22 24 74 6d 70 64 65 70 66 69 6c 65 31 22 20 22  "$tmpdepfile1" "
2e20: 24 74 6d 70 64 65 70 66 69 6c 65 32 22 0a 20 20  $tmpdepfile2".  
2e30: 64 6f 0a 20 20 20 20 74 65 73 74 20 2d 66 20 22  do.    test -f "
2e40: 24 74 6d 70 64 65 70 66 69 6c 65 22 20 26 26 20  $tmpdepfile" && 
2e50: 62 72 65 61 6b 0a 20 20 64 6f 6e 65 0a 20 20 69  break.  done.  i
2e60: 66 20 74 65 73 74 20 2d 66 20 22 24 74 6d 70 64  f test -f "$tmpd
2e70: 65 70 66 69 6c 65 22 3b 20 74 68 65 6e 0a 20 20  epfile"; then.  
2e80: 20 20 73 65 64 20 2d 65 20 22 73 2c 5e 2e 2a 5c    sed -e "s,^.*\
2e90: 2e 5b 61 2d 7a 5d 2a 3a 2c 24 6f 62 6a 65 63 74  .[a-z]*:,$object
2ea0: 3a 2c 22 20 22 24 74 6d 70 64 65 70 66 69 6c 65  :," "$tmpdepfile
2eb0: 22 20 3e 20 22 24 64 65 70 66 69 6c 65 22 0a 20  " > "$depfile". 
2ec0: 20 20 20 23 20 41 64 64 20 27 64 65 70 65 6e 64     # Add 'depend
2ed0: 65 6e 74 2e 68 3a 27 20 6c 69 6e 65 73 2e 0a 20  ent.h:' lines.. 
2ee0: 20 20 20 73 65 64 20 2d 6e 65 20 27 32 2c 24 7b     sed -ne '2,${
2ef0: 0a 09 20 20 20 20 20 20 20 73 2f 5e 20 2a 2f 2f  ..       s/^ *//
2f00: 0a 09 20 20 20 20 20 20 20 73 2f 20 5c 5c 2a 24  ..       s/ \\*$
2f10: 2f 2f 0a 09 20 20 20 20 20 20 20 73 2f 24 2f 3a  //..       s/$/:
2f20: 2f 0a 09 20 20 20 20 20 20 20 70 0a 09 20 20 20  /..       p..   
2f30: 20 20 7d 27 20 22 24 74 6d 70 64 65 70 66 69 6c    }' "$tmpdepfil
2f40: 65 22 20 3e 3e 20 22 24 64 65 70 66 69 6c 65 22  e" >> "$depfile"
2f50: 0a 20 20 65 6c 73 65 0a 20 20 20 20 65 63 68 6f  .  else.    echo
2f60: 20 22 23 64 75 6d 6d 79 22 20 3e 20 22 24 64 65   "#dummy" > "$de
2f70: 70 66 69 6c 65 22 0a 20 20 66 69 0a 20 20 72 6d  pfile".  fi.  rm
2f80: 20 2d 66 20 22 24 74 6d 70 64 65 70 66 69 6c 65   -f "$tmpdepfile
2f90: 22 20 22 24 74 6d 70 64 65 70 66 69 6c 65 32 22  " "$tmpdepfile2"
2fa0: 0a 20 20 3b 3b 0a 0a 74 72 75 36 34 29 0a 20 20  .  ;;..tru64).  
2fb0: 20 23 20 54 68 65 20 54 72 75 36 34 20 63 6f 6d   # The Tru64 com
2fc0: 70 69 6c 65 72 20 75 73 65 73 20 2d 4d 44 20 74  piler uses -MD t
2fd0: 6f 20 67 65 6e 65 72 61 74 65 20 64 65 70 65 6e  o generate depen
2fe0: 64 65 6e 63 69 65 73 20 61 73 20 61 20 73 69 64  dencies as a sid
2ff0: 65 0a 20 20 20 23 20 65 66 66 65 63 74 2e 20 20  e.   # effect.  
3000: 27 63 63 20 2d 4d 44 20 2d 6f 20 66 6f 6f 2e 6f  'cc -MD -o foo.o
3010: 20 2e 2e 2e 27 20 70 75 74 73 20 74 68 65 20 64   ...' puts the d
3020: 65 70 65 6e 64 65 6e 63 69 65 73 20 69 6e 74 6f  ependencies into
3030: 20 27 66 6f 6f 2e 6f 2e 64 27 2e 0a 20 20 20 23   'foo.o.d'..   #
3040: 20 41 74 20 6c 65 61 73 74 20 6f 6e 20 41 6c 70   At least on Alp
3050: 68 61 2f 52 65 64 68 61 74 20 36 2e 31 2c 20 43  ha/Redhat 6.1, C
3060: 6f 6d 70 61 71 20 43 43 43 20 56 36 2e 32 2d 35  ompaq CCC V6.2-5
3070: 30 34 20 73 65 65 6d 73 20 74 6f 20 70 75 74 0a  04 seems to put.
3080: 20 20 20 23 20 64 65 70 65 6e 64 65 6e 63 69 65     # dependencie
3090: 73 20 69 6e 20 27 66 6f 6f 2e 64 27 20 69 6e 73  s in 'foo.d' ins
30a0: 74 65 61 64 2c 20 73 6f 20 77 65 20 63 68 65 63  tead, so we chec
30b0: 6b 20 66 6f 72 20 74 68 61 74 20 74 6f 6f 2e 0a  k for that too..
30c0: 20 20 20 23 20 53 75 62 64 69 72 65 63 74 6f 72     # Subdirector
30d0: 69 65 73 20 61 72 65 20 72 65 73 70 65 63 74 65  ies are respecte
30e0: 64 2e 0a 20 20 20 64 69 72 3d 60 65 63 68 6f 20  d..   dir=`echo 
30f0: 22 24 6f 62 6a 65 63 74 22 20 7c 20 73 65 64 20  "$object" | sed 
3100: 2d 65 20 27 73 7c 2f 5b 5e 2f 5d 2a 24 7c 2f 7c  -e 's|/[^/]*$|/|
3110: 27 60 0a 20 20 20 74 65 73 74 20 22 78 24 64 69  '`.   test "x$di
3120: 72 22 20 3d 20 22 78 24 6f 62 6a 65 63 74 22 20  r" = "x$object" 
3130: 26 26 20 64 69 72 3d 0a 20 20 20 62 61 73 65 3d  && dir=.   base=
3140: 60 65 63 68 6f 20 22 24 6f 62 6a 65 63 74 22 20  `echo "$object" 
3150: 7c 20 73 65 64 20 2d 65 20 27 73 7c 5e 2e 2a 2f  | sed -e 's|^.*/
3160: 7c 7c 27 20 2d 65 20 27 73 2f 5c 2e 6f 24 2f 2f  ||' -e 's/\.o$//
3170: 27 20 2d 65 20 27 73 2f 5c 2e 6c 6f 24 2f 2f 27  ' -e 's/\.lo$//'
3180: 60 0a 0a 20 20 20 69 66 20 74 65 73 74 20 22 24  `..   if test "$
3190: 6c 69 62 74 6f 6f 6c 22 20 3d 20 79 65 73 3b 20  libtool" = yes; 
31a0: 74 68 65 6e 0a 20 20 20 20 20 20 23 20 57 69 74  then.      # Wit
31b0: 68 20 54 72 75 36 34 20 63 63 2c 20 73 68 61 72  h Tru64 cc, shar
31c0: 65 64 20 6f 62 6a 65 63 74 73 20 63 61 6e 20 61  ed objects can a
31d0: 6c 73 6f 20 62 65 20 75 73 65 64 20 74 6f 20 6d  lso be used to m
31e0: 61 6b 65 20 61 0a 20 20 20 20 20 20 23 20 73 74  ake a.      # st
31f0: 61 74 69 63 20 6c 69 62 72 61 72 79 2e 20 20 54  atic library.  T
3200: 68 69 73 20 6d 65 63 68 61 6e 69 73 6d 20 69 73  his mechanism is
3210: 20 75 73 65 64 20 69 6e 20 6c 69 62 74 6f 6f 6c   used in libtool
3220: 20 31 2e 34 20 73 65 72 69 65 73 20 74 6f 0a 20   1.4 series to. 
3230: 20 20 20 20 20 23 20 68 61 6e 64 6c 65 20 62 6f       # handle bo
3240: 74 68 20 73 68 61 72 65 64 20 61 6e 64 20 73 74  th shared and st
3250: 61 74 69 63 20 6c 69 62 72 61 72 69 65 73 20 69  atic libraries i
3260: 6e 20 61 20 73 69 6e 67 6c 65 20 63 6f 6d 70 69  n a single compi
3270: 6c 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 23 20  lation..      # 
3280: 57 69 74 68 20 6c 69 62 74 6f 6f 6c 20 31 2e 34  With libtool 1.4
3290: 2c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 77  , dependencies w
32a0: 65 72 65 20 6f 75 74 70 75 74 20 69 6e 20 24 64  ere output in $d
32b0: 69 72 2e 6c 69 62 73 2f 24 62 61 73 65 2e 6c 6f  ir.libs/$base.lo
32c0: 2e 64 2e 0a 20 20 20 20 20 20 23 0a 20 20 20 20  .d..      #.    
32d0: 20 20 23 20 57 69 74 68 20 6c 69 62 74 6f 6f 6c    # With libtool
32e0: 20 31 2e 35 20 74 68 69 73 20 65 78 63 65 70 74   1.5 this except
32f0: 69 6f 6e 20 77 61 73 20 72 65 6d 6f 76 65 64 2c  ion was removed,
3300: 20 61 6e 64 20 6c 69 62 74 6f 6f 6c 20 6e 6f 77   and libtool now
3310: 0a 20 20 20 20 20 20 23 20 67 65 6e 65 72 61 74  .      # generat
3320: 65 73 20 32 20 73 65 70 61 72 61 74 65 20 6f 62  es 2 separate ob
3330: 6a 65 63 74 73 20 66 6f 72 20 74 68 65 20 32 20  jects for the 2 
3340: 6c 69 62 72 61 72 69 65 73 2e 20 20 54 68 65 73  libraries.  Thes
3350: 65 20 74 77 6f 0a 20 20 20 20 20 20 23 20 63 6f  e two.      # co
3360: 6d 70 69 6c 61 74 69 6f 6e 73 20 6f 75 74 70 75  mpilations outpu
3370: 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 69  t dependencies i
3380: 6e 20 24 64 69 72 2e 6c 69 62 73 2f 24 62 61 73  n $dir.libs/$bas
3390: 65 2e 6f 2e 64 20 61 6e 64 0a 20 20 20 20 20 20  e.o.d and.      
33a0: 23 20 69 6e 20 24 64 69 72 24 62 61 73 65 2e 6f  # in $dir$base.o
33b0: 2e 64 2e 20 20 57 65 20 68 61 76 65 20 74 6f 20  .d.  We have to 
33c0: 63 68 65 63 6b 20 66 6f 72 20 62 6f 74 68 20 66  check for both f
33d0: 69 6c 65 73 2c 20 62 65 63 61 75 73 65 0a 20 20  iles, because.  
33e0: 20 20 20 20 23 20 6f 6e 65 20 6f 66 20 74 68 65      # one of the
33f0: 20 74 77 6f 20 63 6f 6d 70 69 6c 61 74 69 6f 6e   two compilation
3400: 73 20 63 61 6e 20 62 65 20 64 69 73 61 62 6c 65  s can be disable
3410: 64 2e 20 20 57 65 20 73 68 6f 75 6c 64 20 70 72  d.  We should pr
3420: 65 66 65 72 0a 20 20 20 20 20 20 23 20 24 64 69  efer.      # $di
3430: 72 24 62 61 73 65 2e 6f 2e 64 20 6f 76 65 72 20  r$base.o.d over 
3440: 24 64 69 72 2e 6c 69 62 73 2f 24 62 61 73 65 2e  $dir.libs/$base.
3450: 6f 2e 64 20 62 65 63 61 75 73 65 20 74 68 65 20  o.d because the 
3460: 6c 61 74 74 65 72 20 69 73 0a 20 20 20 20 20 20  latter is.      
3470: 23 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  # automatically 
3480: 63 6c 65 61 6e 65 64 20 77 68 65 6e 20 2e 6c 69  cleaned when .li
3490: 62 73 2f 20 69 73 20 64 65 6c 65 74 65 64 2c 20  bs/ is deleted, 
34a0: 77 68 69 6c 65 20 69 67 6e 6f 72 69 6e 67 0a 20  while ignoring. 
34b0: 20 20 20 20 20 23 20 74 68 65 20 66 6f 72 6d 65       # the forme
34c0: 72 20 77 6f 75 6c 64 20 63 61 75 73 65 20 61 20  r would cause a 
34d0: 64 69 73 74 63 6c 65 61 6e 63 68 65 63 6b 20 70  distcleancheck p
34e0: 61 6e 69 63 2e 0a 20 20 20 20 20 20 74 6d 70 64  anic..      tmpd
34f0: 65 70 66 69 6c 65 31 3d 24 64 69 72 2e 6c 69 62  epfile1=$dir.lib
3500: 73 2f 24 62 61 73 65 2e 6c 6f 2e 64 20 20 20 23  s/$base.lo.d   #
3510: 20 6c 69 62 74 6f 6f 6c 20 31 2e 34 0a 20 20 20   libtool 1.4.   
3520: 20 20 20 74 6d 70 64 65 70 66 69 6c 65 32 3d 24     tmpdepfile2=$
3530: 64 69 72 24 62 61 73 65 2e 6f 2e 64 20 20 20 20  dir$base.o.d    
3540: 20 20 20 20 20 20 23 20 6c 69 62 74 6f 6f 6c 20        # libtool 
3550: 31 2e 35 0a 20 20 20 20 20 20 74 6d 70 64 65 70  1.5.      tmpdep
3560: 66 69 6c 65 33 3d 24 64 69 72 2e 6c 69 62 73 2f  file3=$dir.libs/
3570: 24 62 61 73 65 2e 6f 2e 64 20 20 20 20 23 20 6c  $base.o.d    # l
3580: 69 62 74 6f 6f 6c 20 31 2e 35 0a 20 20 20 20 20  ibtool 1.5.     
3590: 20 74 6d 70 64 65 70 66 69 6c 65 34 3d 24 64 69   tmpdepfile4=$di
35a0: 72 2e 6c 69 62 73 2f 24 62 61 73 65 2e 64 20 20  r.libs/$base.d  
35b0: 20 20 20 20 23 20 43 6f 6d 70 61 71 20 43 43 43      # Compaq CCC
35c0: 20 56 36 2e 32 2d 35 30 34 0a 20 20 20 20 20 20   V6.2-504.      
35d0: 22 24 40 22 20 2d 57 63 2c 2d 4d 44 0a 20 20 20  "$@" -Wc,-MD.   
35e0: 65 6c 73 65 0a 20 20 20 20 20 20 74 6d 70 64 65  else.      tmpde
35f0: 70 66 69 6c 65 31 3d 24 64 69 72 24 62 61 73 65  pfile1=$dir$base
3600: 2e 6f 2e 64 0a 20 20 20 20 20 20 74 6d 70 64 65  .o.d.      tmpde
3610: 70 66 69 6c 65 32 3d 24 64 69 72 24 62 61 73 65  pfile2=$dir$base
3620: 2e 64 0a 20 20 20 20 20 20 74 6d 70 64 65 70 66  .d.      tmpdepf
3630: 69 6c 65 33 3d 24 64 69 72 24 62 61 73 65 2e 64  ile3=$dir$base.d
3640: 0a 20 20 20 20 20 20 74 6d 70 64 65 70 66 69 6c  .      tmpdepfil
3650: 65 34 3d 24 64 69 72 24 62 61 73 65 2e 64 0a 20  e4=$dir$base.d. 
3660: 20 20 20 20 20 22 24 40 22 20 2d 4d 44 0a 20 20       "$@" -MD.  
3670: 20 66 69 0a 0a 20 20 20 73 74 61 74 3d 24 3f 0a   fi..   stat=$?.
3680: 20 20 20 69 66 20 74 65 73 74 20 24 73 74 61 74     if test $stat
3690: 20 2d 65 71 20 30 3b 20 74 68 65 6e 20 3a 0a 20   -eq 0; then :. 
36a0: 20 20 65 6c 73 65 0a 20 20 20 20 20 20 72 6d 20    else.      rm 
36b0: 2d 66 20 22 24 74 6d 70 64 65 70 66 69 6c 65 31  -f "$tmpdepfile1
36c0: 22 20 22 24 74 6d 70 64 65 70 66 69 6c 65 32 22  " "$tmpdepfile2"
36d0: 20 22 24 74 6d 70 64 65 70 66 69 6c 65 33 22 20   "$tmpdepfile3" 
36e0: 22 24 74 6d 70 64 65 70 66 69 6c 65 34 22 0a 20  "$tmpdepfile4". 
36f0: 20 20 20 20 20 65 78 69 74 20 24 73 74 61 74 0a       exit $stat.
3700: 20 20 20 66 69 0a 0a 20 20 20 66 6f 72 20 74 6d     fi..   for tm
3710: 70 64 65 70 66 69 6c 65 20 69 6e 20 22 24 74 6d  pdepfile in "$tm
3720: 70 64 65 70 66 69 6c 65 31 22 20 22 24 74 6d 70  pdepfile1" "$tmp
3730: 64 65 70 66 69 6c 65 32 22 20 22 24 74 6d 70 64  depfile2" "$tmpd
3740: 65 70 66 69 6c 65 33 22 20 22 24 74 6d 70 64 65  epfile3" "$tmpde
3750: 70 66 69 6c 65 34 22 0a 20 20 20 64 6f 0a 20 20  pfile4".   do.  
3760: 20 20 20 74 65 73 74 20 2d 66 20 22 24 74 6d 70     test -f "$tmp
3770: 64 65 70 66 69 6c 65 22 20 26 26 20 62 72 65 61  depfile" && brea
3780: 6b 0a 20 20 20 64 6f 6e 65 0a 20 20 20 69 66 20  k.   done.   if 
3790: 74 65 73 74 20 2d 66 20 22 24 74 6d 70 64 65 70  test -f "$tmpdep
37a0: 66 69 6c 65 22 3b 20 74 68 65 6e 0a 20 20 20 20  file"; then.    
37b0: 20 20 73 65 64 20 2d 65 20 22 73 2c 5e 2e 2a 5c    sed -e "s,^.*\
37c0: 2e 5b 61 2d 7a 5d 2a 3a 2c 24 6f 62 6a 65 63 74  .[a-z]*:,$object
37d0: 3a 2c 22 20 3c 20 22 24 74 6d 70 64 65 70 66 69  :," < "$tmpdepfi
37e0: 6c 65 22 20 3e 20 22 24 64 65 70 66 69 6c 65 22  le" > "$depfile"
37f0: 0a 20 20 20 20 20 20 73 65 64 20 2d 65 20 27 73  .      sed -e 's
3800: 2c 5e 2e 2a 5c 2e 5b 61 2d 7a 5d 2a 3a 5b 27 22  ,^.*\.[a-z]*:['"
3810: 24 74 61 62 22 27 20 5d 2a 2c 2c 27 20 2d 65 20  $tab"' ]*,,' -e 
3820: 27 73 2c 24 2c 3a 2c 27 20 3c 20 22 24 74 6d 70  's,$,:,' < "$tmp
3830: 64 65 70 66 69 6c 65 22 20 3e 3e 20 22 24 64 65  depfile" >> "$de
3840: 70 66 69 6c 65 22 0a 20 20 20 65 6c 73 65 0a 20  pfile".   else. 
3850: 20 20 20 20 20 65 63 68 6f 20 22 23 64 75 6d 6d       echo "#dumm
3860: 79 22 20 3e 20 22 24 64 65 70 66 69 6c 65 22 0a  y" > "$depfile".
3870: 20 20 20 66 69 0a 20 20 20 72 6d 20 2d 66 20 22     fi.   rm -f "
3880: 24 74 6d 70 64 65 70 66 69 6c 65 22 0a 20 20 20  $tmpdepfile".   
3890: 3b 3b 0a 0a 6d 73 76 63 37 29 0a 20 20 69 66 20  ;;..msvc7).  if 
38a0: 74 65 73 74 20 22 24 6c 69 62 74 6f 6f 6c 22 20  test "$libtool" 
38b0: 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20 20 20  = yes; then.    
38c0: 73 68 6f 77 49 6e 63 6c 75 64 65 73 3d 2d 57 63  showIncludes=-Wc
38d0: 2c 2d 73 68 6f 77 49 6e 63 6c 75 64 65 73 0a 20  ,-showIncludes. 
38e0: 20 65 6c 73 65 0a 20 20 20 20 73 68 6f 77 49 6e   else.    showIn
38f0: 63 6c 75 64 65 73 3d 2d 73 68 6f 77 49 6e 63 6c  cludes=-showIncl
3900: 75 64 65 73 0a 20 20 66 69 0a 20 20 22 24 40 22  udes.  fi.  "$@"
3910: 20 24 73 68 6f 77 49 6e 63 6c 75 64 65 73 20 3e   $showIncludes >
3920: 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 0a 20   "$tmpdepfile". 
3930: 20 73 74 61 74 3d 24 3f 0a 20 20 67 72 65 70 20   stat=$?.  grep 
3940: 2d 76 20 27 5e 4e 6f 74 65 3a 20 69 6e 63 6c 75  -v '^Note: inclu
3950: 64 69 6e 67 20 66 69 6c 65 3a 20 27 20 22 24 74  ding file: ' "$t
3960: 6d 70 64 65 70 66 69 6c 65 22 0a 20 20 69 66 20  mpdepfile".  if 
3970: 74 65 73 74 20 22 24 73 74 61 74 22 20 3d 20 30  test "$stat" = 0
3980: 3b 20 74 68 65 6e 20 3a 0a 20 20 65 6c 73 65 0a  ; then :.  else.
3990: 20 20 20 20 72 6d 20 2d 66 20 22 24 74 6d 70 64      rm -f "$tmpd
39a0: 65 70 66 69 6c 65 22 0a 20 20 20 20 65 78 69 74  epfile".    exit
39b0: 20 24 73 74 61 74 0a 20 20 66 69 0a 20 20 72 6d   $stat.  fi.  rm
39c0: 20 2d 66 20 22 24 64 65 70 66 69 6c 65 22 0a 20   -f "$depfile". 
39d0: 20 65 63 68 6f 20 22 24 6f 62 6a 65 63 74 20 3a   echo "$object :
39e0: 20 5c 5c 22 20 3e 20 22 24 64 65 70 66 69 6c 65   \\" > "$depfile
39f0: 22 0a 20 20 23 20 54 68 65 20 66 69 72 73 74 20  ".  # The first 
3a00: 73 65 64 20 70 72 6f 67 72 61 6d 20 62 65 6c 6f  sed program belo
3a10: 77 20 65 78 74 72 61 63 74 73 20 74 68 65 20 66  w extracts the f
3a20: 69 6c 65 20 6e 61 6d 65 73 20 61 6e 64 20 65 73  ile names and es
3a30: 63 61 70 65 73 0a 20 20 23 20 62 61 63 6b 73 6c  capes.  # backsl
3a40: 61 73 68 65 73 20 66 6f 72 20 63 79 67 70 61 74  ashes for cygpat
3a50: 68 2e 20 20 54 68 65 20 73 65 63 6f 6e 64 20 73  h.  The second s
3a60: 65 64 20 70 72 6f 67 72 61 6d 20 6f 75 74 70 75  ed program outpu
3a70: 74 73 20 74 68 65 20 66 69 6c 65 0a 20 20 23 20  ts the file.  # 
3a80: 6e 61 6d 65 20 77 68 65 6e 20 72 65 61 64 69 6e  name when readin
3a90: 67 2c 20 62 75 74 20 61 6c 73 6f 20 61 63 63 75  g, but also accu
3aa0: 6d 75 6c 61 74 65 73 20 61 6c 6c 20 69 6e 63 6c  mulates all incl
3ab0: 75 64 65 20 66 69 6c 65 73 20 69 6e 20 74 68 65  ude files in the
3ac0: 0a 20 20 23 20 68 6f 6c 64 20 62 75 66 66 65 72  .  # hold buffer
3ad0: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6f 75 74   in order to out
3ae0: 70 75 74 20 74 68 65 6d 20 61 67 61 69 6e 20 61  put them again a
3af0: 74 20 74 68 65 20 65 6e 64 2e 20 20 54 68 69 73  t the end.  This
3b00: 20 6f 6e 6c 79 0a 20 20 23 20 77 6f 72 6b 73 20   only.  # works 
3b10: 77 69 74 68 20 73 65 64 20 69 6d 70 6c 65 6d 65  with sed impleme
3b20: 6e 74 61 74 69 6f 6e 73 20 74 68 61 74 20 63 61  ntations that ca
3b30: 6e 20 68 61 6e 64 6c 65 20 6c 61 72 67 65 20 62  n handle large b
3b40: 75 66 66 65 72 73 2e 0a 20 20 73 65 64 20 3c 20  uffers..  sed < 
3b50: 22 24 74 6d 70 64 65 70 66 69 6c 65 22 20 2d 6e  "$tmpdepfile" -n
3b60: 20 27 0a 2f 5e 4e 6f 74 65 3a 20 69 6e 63 6c 75   './^Note: inclu
3b70: 64 69 6e 67 20 66 69 6c 65 3a 20 20 2a 5c 28 2e  ding file:  *\(.
3b80: 2a 5c 29 2f 20 7b 0a 20 20 73 2f 2f 5c 31 2f 0a  *\)/ {.  s//\1/.
3b90: 20 20 73 2f 5c 5c 2f 5c 5c 5c 5c 2f 67 0a 20 20    s/\\/\\\\/g.  
3ba0: 70 0a 7d 27 20 7c 20 24 63 79 67 70 61 74 68 5f  p.}' | $cygpath_
3bb0: 75 20 7c 20 73 6f 72 74 20 2d 75 20 7c 20 73 65  u | sort -u | se
3bc0: 64 20 2d 6e 20 27 0a 73 2f 20 2f 5c 5c 20 2f 67  d -n '.s/ /\\ /g
3bd0: 0a 73 2f 5c 28 2e 2a 5c 29 2f 27 22 24 74 61 62  .s/\(.*\)/'"$tab
3be0: 22 27 5c 31 20 5c 5c 2f 70 0a 73 2f 2e 5c 28 2e  "'\1 \\/p.s/.\(.
3bf0: 2a 5c 29 20 5c 5c 2f 5c 31 3a 2f 0a 48 0a 24 20  *\) \\/\1:/.H.$ 
3c00: 7b 0a 20 20 73 2f 2e 2a 2f 27 22 24 74 61 62 22  {.  s/.*/'"$tab"
3c10: 27 2f 0a 20 20 47 0a 20 20 70 0a 7d 27 20 3e 3e  '/.  G.  p.}' >>
3c20: 20 22 24 64 65 70 66 69 6c 65 22 0a 20 20 72 6d   "$depfile".  rm
3c30: 20 2d 66 20 22 24 74 6d 70 64 65 70 66 69 6c 65   -f "$tmpdepfile
3c40: 22 0a 20 20 3b 3b 0a 0a 6d 73 76 63 37 6d 73 79  ".  ;;..msvc7msy
3c50: 73 29 0a 20 20 23 20 54 68 69 73 20 63 61 73 65  s).  # This case
3c60: 20 65 78 69 73 74 73 20 6f 6e 6c 79 20 74 6f 20   exists only to 
3c70: 6c 65 74 20 64 65 70 65 6e 64 2e 6d 34 20 64 6f  let depend.m4 do
3c80: 20 69 74 73 20 77 6f 72 6b 2e 20 20 49 74 20 77   its work.  It w
3c90: 6f 72 6b 73 20 62 79 0a 20 20 23 20 6c 6f 6f 6b  orks by.  # look
3ca0: 69 6e 67 20 61 74 20 74 68 65 20 74 65 78 74 20  ing at the text 
3cb0: 6f 66 20 74 68 69 73 20 73 63 72 69 70 74 2e 20  of this script. 
3cc0: 20 54 68 69 73 20 63 61 73 65 20 77 69 6c 6c 20   This case will 
3cd0: 6e 65 76 65 72 20 62 65 20 72 75 6e 2c 0a 20 20  never be run,.  
3ce0: 23 20 73 69 6e 63 65 20 69 74 20 69 73 20 63 68  # since it is ch
3cf0: 65 63 6b 65 64 20 66 6f 72 20 61 62 6f 76 65 2e  ecked for above.
3d00: 0a 20 20 65 78 69 74 20 31 0a 20 20 3b 3b 0a 0a  .  exit 1.  ;;..
3d10: 23 6e 6f 73 69 64 65 65 66 66 65 63 74 29 0a 20  #nosideeffect). 
3d20: 20 23 20 54 68 69 73 20 63 6f 6d 6d 65 6e 74 20   # This comment 
3d30: 61 62 6f 76 65 20 69 73 20 75 73 65 64 20 62 79  above is used by
3d40: 20 61 75 74 6f 6d 61 6b 65 20 74 6f 20 74 65 6c   automake to tel
3d50: 6c 20 73 69 64 65 2d 65 66 66 65 63 74 0a 20 20  l side-effect.  
3d60: 23 20 64 65 70 65 6e 64 65 6e 63 79 20 74 72 61  # dependency tra
3d70: 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 73  cking mechanisms
3d80: 20 66 72 6f 6d 20 73 6c 6f 77 65 72 20 6f 6e 65   from slower one
3d90: 73 2e 0a 0a 64 61 73 68 6d 73 74 64 6f 75 74 29  s...dashmstdout)
3da0: 0a 20 20 23 20 49 6d 70 6f 72 74 61 6e 74 20 6e  .  # Important n
3db0: 6f 74 65 3a 20 69 6e 20 6f 72 64 65 72 20 74 6f  ote: in order to
3dc0: 20 73 75 70 70 6f 72 74 20 74 68 69 73 20 6d 6f   support this mo
3dd0: 64 65 2c 20 61 20 63 6f 6d 70 69 6c 65 72 20 2a  de, a compiler *
3de0: 6d 75 73 74 2a 0a 20 20 23 20 61 6c 77 61 79 73  must*.  # always
3df0: 20 77 72 69 74 65 20 74 68 65 20 70 72 65 70 72   write the prepr
3e00: 6f 63 65 73 73 65 64 20 66 69 6c 65 20 74 6f 20  ocessed file to 
3e10: 73 74 64 6f 75 74 2c 20 72 65 67 61 72 64 6c 65  stdout, regardle
3e20: 73 73 20 6f 66 20 2d 6f 2e 0a 20 20 22 24 40 22  ss of -o..  "$@"
3e30: 20 7c 7c 20 65 78 69 74 20 24 3f 0a 0a 20 20 23   || exit $?..  #
3e40: 20 52 65 6d 6f 76 65 20 74 68 65 20 63 61 6c 6c   Remove the call
3e50: 20 74 6f 20 4c 69 62 74 6f 6f 6c 2e 0a 20 20 69   to Libtool..  i
3e60: 66 20 74 65 73 74 20 22 24 6c 69 62 74 6f 6f 6c  f test "$libtool
3e70: 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20  " = yes; then.  
3e80: 20 20 77 68 69 6c 65 20 74 65 73 74 20 22 58 24    while test "X$
3e90: 31 22 20 21 3d 20 27 58 2d 2d 6d 6f 64 65 3d 63  1" != 'X--mode=c
3ea0: 6f 6d 70 69 6c 65 27 3b 20 64 6f 0a 20 20 20 20  ompile'; do.    
3eb0: 20 20 73 68 69 66 74 0a 20 20 20 20 64 6f 6e 65    shift.    done
3ec0: 0a 20 20 20 20 73 68 69 66 74 0a 20 20 66 69 0a  .    shift.  fi.
3ed0: 0a 20 20 23 20 52 65 6d 6f 76 65 20 27 2d 6f 20  .  # Remove '-o 
3ee0: 24 6f 62 6a 65 63 74 27 2e 0a 20 20 49 46 53 3d  $object'..  IFS=
3ef0: 22 20 22 0a 20 20 66 6f 72 20 61 72 67 0a 20 20  " ".  for arg.  
3f00: 64 6f 0a 20 20 20 20 63 61 73 65 20 24 61 72 67  do.    case $arg
3f10: 20 69 6e 0a 20 20 20 20 2d 6f 29 0a 20 20 20 20   in.    -o).    
3f20: 20 20 73 68 69 66 74 0a 20 20 20 20 20 20 3b 3b    shift.      ;;
3f30: 0a 20 20 20 20 24 6f 62 6a 65 63 74 29 0a 20 20  .    $object).  
3f40: 20 20 20 20 73 68 69 66 74 0a 20 20 20 20 20 20      shift.      
3f50: 3b 3b 0a 20 20 20 20 2a 29 0a 20 20 20 20 20 20  ;;.    *).      
3f60: 73 65 74 20 66 6e 6f 72 64 20 22 24 40 22 20 22  set fnord "$@" "
3f70: 24 61 72 67 22 0a 20 20 20 20 20 20 73 68 69 66  $arg".      shif
3f80: 74 20 23 20 66 6e 6f 72 64 0a 20 20 20 20 20 20  t # fnord.      
3f90: 73 68 69 66 74 20 23 20 24 61 72 67 0a 20 20 20  shift # $arg.   
3fa0: 20 20 20 3b 3b 0a 20 20 20 20 65 73 61 63 0a 20     ;;.    esac. 
3fb0: 20 64 6f 6e 65 0a 0a 20 20 74 65 73 74 20 2d 7a   done..  test -z
3fc0: 20 22 24 64 61 73 68 6d 66 6c 61 67 22 20 26 26   "$dashmflag" &&
3fd0: 20 64 61 73 68 6d 66 6c 61 67 3d 2d 4d 0a 20 20   dashmflag=-M.  
3fe0: 23 20 52 65 71 75 69 72 65 20 61 74 20 6c 65 61  # Require at lea
3ff0: 73 74 20 74 77 6f 20 63 68 61 72 61 63 74 65 72  st two character
4000: 73 20 62 65 66 6f 72 65 20 73 65 61 72 63 68 69  s before searchi
4010: 6e 67 20 66 6f 72 20 27 3a 27 0a 20 20 23 20 69  ng for ':'.  # i
4020: 6e 20 74 68 65 20 74 61 72 67 65 74 20 6e 61 6d  n the target nam
4030: 65 2e 20 20 54 68 69 73 20 69 73 20 74 6f 20 63  e.  This is to c
4040: 6f 70 65 20 77 69 74 68 20 44 4f 53 2d 73 74 79  ope with DOS-sty
4050: 6c 65 20 66 69 6c 65 6e 61 6d 65 73 3a 0a 20 20  le filenames:.  
4060: 23 20 61 20 64 65 70 65 6e 64 65 6e 63 79 20 73  # a dependency s
4070: 75 63 68 20 61 73 20 27 63 3a 2f 66 6f 6f 2f 62  uch as 'c:/foo/b
4080: 61 72 27 20 63 6f 75 6c 64 20 62 65 20 73 65 65  ar' could be see
4090: 6e 20 61 73 20 74 61 72 67 65 74 20 27 63 27 20  n as target 'c' 
40a0: 6f 74 68 65 72 77 69 73 65 2e 0a 20 20 22 24 40  otherwise..  "$@
40b0: 22 20 24 64 61 73 68 6d 66 6c 61 67 20 7c 0a 20  " $dashmflag |. 
40c0: 20 20 20 73 65 64 20 27 73 3a 5e 5b 27 22 24 74     sed 's:^['"$t
40d0: 61 62 22 27 20 5d 2a 5b 5e 3a 27 22 24 74 61 62  ab"' ]*[^:'"$tab
40e0: 22 27 20 5d 5b 5e 3a 5d 5b 5e 3a 5d 2a 5c 3a 5b  "' ][^:][^:]*\:[
40f0: 27 22 24 74 61 62 22 27 20 5d 2a 3a 27 22 24 6f  '"$tab"' ]*:'"$o
4100: 62 6a 65 63 74 22 27 5c 3a 20 3a 27 20 3e 20 22  bject"'\: :' > "
4110: 24 74 6d 70 64 65 70 66 69 6c 65 22 0a 20 20 72  $tmpdepfile".  r
4120: 6d 20 2d 66 20 22 24 64 65 70 66 69 6c 65 22 0a  m -f "$depfile".
4130: 20 20 63 61 74 20 3c 20 22 24 74 6d 70 64 65 70    cat < "$tmpdep
4140: 66 69 6c 65 22 20 3e 20 22 24 64 65 70 66 69 6c  file" > "$depfil
4150: 65 22 0a 20 20 74 72 20 27 20 27 20 22 24 6e 6c  e".  tr ' ' "$nl
4160: 22 20 3c 20 22 24 74 6d 70 64 65 70 66 69 6c 65  " < "$tmpdepfile
4170: 22 20 7c 20 5c 0a 23 23 20 53 6f 6d 65 20 76 65  " | \.## Some ve
4180: 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 48 50  rsions of the HP
4190: 55 58 20 31 30 2e 32 30 20 73 65 64 20 63 61 6e  UX 10.20 sed can
41a0: 27 74 20 70 72 6f 63 65 73 73 20 74 68 69 73 20  't process this 
41b0: 69 6e 76 6f 63 61 74 69 6f 6e 0a 23 23 20 63 6f  invocation.## co
41c0: 72 72 65 63 74 6c 79 2e 20 20 42 72 65 61 6b 69  rrectly.  Breaki
41d0: 6e 67 20 69 74 20 69 6e 74 6f 20 74 77 6f 20 73  ng it into two s
41e0: 65 64 20 69 6e 76 6f 63 61 74 69 6f 6e 73 20 69  ed invocations i
41f0: 73 20 61 20 77 6f 72 6b 61 72 6f 75 6e 64 2e 0a  s a workaround..
4200: 20 20 20 20 73 65 64 20 2d 65 20 27 73 2f 5e 5c      sed -e 's/^\
4210: 5c 24 2f 2f 27 20 2d 65 20 27 2f 5e 24 2f 64 27  \$//' -e '/^$/d'
4220: 20 2d 65 20 27 2f 3a 24 2f 64 27 20 7c 20 73 65   -e '/:$/d' | se
4230: 64 20 2d 65 20 27 73 2f 24 2f 20 3a 2f 27 20 3e  d -e 's/$/ :/' >
4240: 3e 20 22 24 64 65 70 66 69 6c 65 22 0a 20 20 72  > "$depfile".  r
4250: 6d 20 2d 66 20 22 24 74 6d 70 64 65 70 66 69 6c  m -f "$tmpdepfil
4260: 65 22 0a 20 20 3b 3b 0a 0a 64 61 73 68 58 6d 73  e".  ;;..dashXms
4270: 74 64 6f 75 74 29 0a 20 20 23 20 54 68 69 73 20  tdout).  # This 
4280: 63 61 73 65 20 6f 6e 6c 79 20 65 78 69 73 74 73  case only exists
4290: 20 74 6f 20 73 61 74 69 73 66 79 20 64 65 70 65   to satisfy depe
42a0: 6e 64 2e 6d 34 2e 20 20 49 74 20 69 73 20 6e 65  nd.m4.  It is ne
42b0: 76 65 72 20 61 63 74 75 61 6c 6c 79 0a 20 20 23  ver actually.  #
42c0: 20 72 75 6e 2c 20 61 73 20 74 68 69 73 20 6d 6f   run, as this mo
42d0: 64 65 20 69 73 20 73 70 65 63 69 61 6c 6c 79 20  de is specially 
42e0: 72 65 63 6f 67 6e 69 7a 65 64 20 69 6e 20 74 68  recognized in th
42f0: 65 20 70 72 65 61 6d 62 6c 65 2e 0a 20 20 65 78  e preamble..  ex
4300: 69 74 20 31 0a 20 20 3b 3b 0a 0a 6d 61 6b 65 64  it 1.  ;;..maked
4310: 65 70 65 6e 64 29 0a 20 20 22 24 40 22 20 7c 7c  epend).  "$@" ||
4320: 20 65 78 69 74 20 24 3f 0a 20 20 23 20 52 65 6d   exit $?.  # Rem
4330: 6f 76 65 20 61 6e 79 20 4c 69 62 74 6f 6f 6c 20  ove any Libtool 
4340: 63 61 6c 6c 0a 20 20 69 66 20 74 65 73 74 20 22  call.  if test "
4350: 24 6c 69 62 74 6f 6f 6c 22 20 3d 20 79 65 73 3b  $libtool" = yes;
4360: 20 74 68 65 6e 0a 20 20 20 20 77 68 69 6c 65 20   then.    while 
4370: 74 65 73 74 20 22 58 24 31 22 20 21 3d 20 27 58  test "X$1" != 'X
4380: 2d 2d 6d 6f 64 65 3d 63 6f 6d 70 69 6c 65 27 3b  --mode=compile';
4390: 20 64 6f 0a 20 20 20 20 20 20 73 68 69 66 74 0a   do.      shift.
43a0: 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 73 68 69      done.    shi
43b0: 66 74 0a 20 20 66 69 0a 20 20 23 20 58 20 6d 61  ft.  fi.  # X ma
43c0: 6b 65 64 65 70 65 6e 64 0a 20 20 73 68 69 66 74  kedepend.  shift
43d0: 0a 20 20 63 6c 65 61 72 65 64 3d 6e 6f 20 65 61  .  cleared=no ea
43e0: 74 3d 6e 6f 0a 20 20 66 6f 72 20 61 72 67 0a 20  t=no.  for arg. 
43f0: 20 64 6f 0a 20 20 20 20 63 61 73 65 20 24 63 6c   do.    case $cl
4400: 65 61 72 65 64 20 69 6e 0a 20 20 20 20 6e 6f 29  eared in.    no)
4410: 0a 20 20 20 20 20 20 73 65 74 20 22 22 3b 20 73  .      set ""; s
4420: 68 69 66 74 0a 20 20 20 20 20 20 63 6c 65 61 72  hift.      clear
4430: 65 64 3d 79 65 73 20 3b 3b 0a 20 20 20 20 65 73  ed=yes ;;.    es
4440: 61 63 0a 20 20 20 20 69 66 20 74 65 73 74 20 24  ac.    if test $
4450: 65 61 74 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a  eat = yes; then.
4460: 20 20 20 20 20 20 65 61 74 3d 6e 6f 0a 20 20 20        eat=no.   
4470: 20 20 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20     continue.    
4480: 66 69 0a 20 20 20 20 63 61 73 65 20 22 24 61 72  fi.    case "$ar
4490: 67 22 20 69 6e 0a 20 20 20 20 2d 44 2a 7c 2d 49  g" in.    -D*|-I
44a0: 2a 29 0a 20 20 20 20 20 20 73 65 74 20 66 6e 6f  *).      set fno
44b0: 72 64 20 22 24 40 22 20 22 24 61 72 67 22 3b 20  rd "$@" "$arg"; 
44c0: 73 68 69 66 74 20 3b 3b 0a 20 20 20 20 23 20 53  shift ;;.    # S
44d0: 74 72 69 70 20 61 6e 79 20 6f 70 74 69 6f 6e 20  trip any option 
44e0: 74 68 61 74 20 6d 61 6b 65 64 65 70 65 6e 64 20  that makedepend 
44f0: 6d 61 79 20 6e 6f 74 20 75 6e 64 65 72 73 74 61  may not understa
4500: 6e 64 2e 20 20 52 65 6d 6f 76 65 0a 20 20 20 20  nd.  Remove.    
4510: 23 20 74 68 65 20 6f 62 6a 65 63 74 20 74 6f 6f  # the object too
4520: 2c 20 6f 74 68 65 72 77 69 73 65 20 6d 61 6b 65  , otherwise make
4530: 64 65 70 65 6e 64 20 77 69 6c 6c 20 70 61 72 73  depend will pars
4540: 65 20 69 74 20 61 73 20 61 20 73 6f 75 72 63 65  e it as a source
4550: 20 66 69 6c 65 2e 0a 20 20 20 20 2d 61 72 63 68   file..    -arch
4560: 29 0a 20 20 20 20 20 20 65 61 74 3d 79 65 73 20  ).      eat=yes 
4570: 3b 3b 0a 20 20 20 20 2d 2a 7c 24 6f 62 6a 65 63  ;;.    -*|$objec
4580: 74 29 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20  t).      ;;.    
4590: 2a 29 0a 20 20 20 20 20 20 73 65 74 20 66 6e 6f  *).      set fno
45a0: 72 64 20 22 24 40 22 20 22 24 61 72 67 22 3b 20  rd "$@" "$arg"; 
45b0: 73 68 69 66 74 20 3b 3b 0a 20 20 20 20 65 73 61  shift ;;.    esa
45c0: 63 0a 20 20 64 6f 6e 65 0a 20 20 6f 62 6a 5f 73  c.  done.  obj_s
45d0: 75 66 66 69 78 3d 60 65 63 68 6f 20 22 24 6f 62  uffix=`echo "$ob
45e0: 6a 65 63 74 22 20 7c 20 73 65 64 20 27 73 2f 5e  ject" | sed 's/^
45f0: 2e 2a 5c 2e 2f 2e 2f 27 60 0a 20 20 74 6f 75 63  .*\././'`.  touc
4600: 68 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 0a  h "$tmpdepfile".
4610: 20 20 24 7b 4d 41 4b 45 44 45 50 45 4e 44 2d 6d    ${MAKEDEPEND-m
4620: 61 6b 65 64 65 70 65 6e 64 7d 20 2d 6f 22 24 6f  akedepend} -o"$o
4630: 62 6a 5f 73 75 66 66 69 78 22 20 2d 66 22 24 74  bj_suffix" -f"$t
4640: 6d 70 64 65 70 66 69 6c 65 22 20 22 24 40 22 0a  mpdepfile" "$@".
4650: 20 20 72 6d 20 2d 66 20 22 24 64 65 70 66 69 6c    rm -f "$depfil
4660: 65 22 0a 20 20 23 20 6d 61 6b 65 64 65 70 65 6e  e".  # makedepen
4670: 64 20 6d 61 79 20 70 72 65 70 65 6e 64 20 74 68  d may prepend th
4680: 65 20 56 50 41 54 48 20 66 72 6f 6d 20 74 68 65  e VPATH from the
4690: 20 73 6f 75 72 63 65 20 66 69 6c 65 20 6e 61 6d   source file nam
46a0: 65 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 2e  e to the object.
46b0: 0a 20 20 23 20 4e 6f 20 6e 65 65 64 20 74 6f 20  .  # No need to 
46c0: 72 65 67 65 78 2d 65 73 63 61 70 65 20 24 6f 62  regex-escape $ob
46d0: 6a 65 63 74 2c 20 65 78 63 65 73 73 20 6d 61 74  ject, excess mat
46e0: 63 68 69 6e 67 20 6f 66 20 27 2e 27 20 69 73 20  ching of '.' is 
46f0: 68 61 72 6d 6c 65 73 73 2e 0a 20 20 73 65 64 20  harmless..  sed 
4700: 22 73 7c 5e 2e 2a 5c 28 24 6f 62 6a 65 63 74 20  "s|^.*\($object 
4710: 2a 3a 5c 29 7c 5c 31 7c 22 20 22 24 74 6d 70 64  *:\)|\1|" "$tmpd
4720: 65 70 66 69 6c 65 22 20 3e 20 22 24 64 65 70 66  epfile" > "$depf
4730: 69 6c 65 22 0a 20 20 73 65 64 20 27 31 2c 32 64  ile".  sed '1,2d
4740: 27 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 20  ' "$tmpdepfile" 
4750: 7c 20 74 72 20 27 20 27 20 22 24 6e 6c 22 20 7c  | tr ' ' "$nl" |
4760: 20 5c 0a 23 23 20 53 6f 6d 65 20 76 65 72 73 69   \.## Some versi
4770: 6f 6e 73 20 6f 66 20 74 68 65 20 48 50 55 58 20  ons of the HPUX 
4780: 31 30 2e 32 30 20 73 65 64 20 63 61 6e 27 74 20  10.20 sed can't 
4790: 70 72 6f 63 65 73 73 20 74 68 69 73 20 69 6e 76  process this inv
47a0: 6f 63 61 74 69 6f 6e 0a 23 23 20 63 6f 72 72 65  ocation.## corre
47b0: 63 74 6c 79 2e 20 20 42 72 65 61 6b 69 6e 67 20  ctly.  Breaking 
47c0: 69 74 20 69 6e 74 6f 20 74 77 6f 20 73 65 64 20  it into two sed 
47d0: 69 6e 76 6f 63 61 74 69 6f 6e 73 20 69 73 20 61  invocations is a
47e0: 20 77 6f 72 6b 61 72 6f 75 6e 64 2e 0a 20 20 20   workaround..   
47f0: 20 73 65 64 20 2d 65 20 27 73 2f 5e 5c 5c 24 2f   sed -e 's/^\\$/
4800: 2f 27 20 2d 65 20 27 2f 5e 24 2f 64 27 20 2d 65  /' -e '/^$/d' -e
4810: 20 27 2f 3a 24 2f 64 27 20 7c 20 73 65 64 20 2d   '/:$/d' | sed -
4820: 65 20 27 73 2f 24 2f 20 3a 2f 27 20 3e 3e 20 22  e 's/$/ :/' >> "
4830: 24 64 65 70 66 69 6c 65 22 0a 20 20 72 6d 20 2d  $depfile".  rm -
4840: 66 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 20  f "$tmpdepfile" 
4850: 22 24 74 6d 70 64 65 70 66 69 6c 65 22 2e 62 61  "$tmpdepfile".ba
4860: 6b 0a 20 20 3b 3b 0a 0a 63 70 70 29 0a 20 20 23  k.  ;;..cpp).  #
4870: 20 49 6d 70 6f 72 74 61 6e 74 20 6e 6f 74 65 3a   Important note:
4880: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 75 70   in order to sup
4890: 70 6f 72 74 20 74 68 69 73 20 6d 6f 64 65 2c 20  port this mode, 
48a0: 61 20 63 6f 6d 70 69 6c 65 72 20 2a 6d 75 73 74  a compiler *must
48b0: 2a 0a 20 20 23 20 61 6c 77 61 79 73 20 77 72 69  *.  # always wri
48c0: 74 65 20 74 68 65 20 70 72 65 70 72 6f 63 65 73  te the preproces
48d0: 73 65 64 20 66 69 6c 65 20 74 6f 20 73 74 64 6f  sed file to stdo
48e0: 75 74 2e 0a 20 20 22 24 40 22 20 7c 7c 20 65 78  ut..  "$@" || ex
48f0: 69 74 20 24 3f 0a 0a 20 20 23 20 52 65 6d 6f 76  it $?..  # Remov
4900: 65 20 74 68 65 20 63 61 6c 6c 20 74 6f 20 4c 69  e the call to Li
4910: 62 74 6f 6f 6c 2e 0a 20 20 69 66 20 74 65 73 74  btool..  if test
4920: 20 22 24 6c 69 62 74 6f 6f 6c 22 20 3d 20 79 65   "$libtool" = ye
4930: 73 3b 20 74 68 65 6e 0a 20 20 20 20 77 68 69 6c  s; then.    whil
4940: 65 20 74 65 73 74 20 22 58 24 31 22 20 21 3d 20  e test "X$1" != 
4950: 27 58 2d 2d 6d 6f 64 65 3d 63 6f 6d 70 69 6c 65  'X--mode=compile
4960: 27 3b 20 64 6f 0a 20 20 20 20 20 20 73 68 69 66  '; do.      shif
4970: 74 0a 20 20 20 20 64 6f 6e 65 0a 20 20 20 20 73  t.    done.    s
4980: 68 69 66 74 0a 20 20 66 69 0a 0a 20 20 23 20 52  hift.  fi..  # R
4990: 65 6d 6f 76 65 20 27 2d 6f 20 24 6f 62 6a 65 63  emove '-o $objec
49a0: 74 27 2e 0a 20 20 49 46 53 3d 22 20 22 0a 20 20  t'..  IFS=" ".  
49b0: 66 6f 72 20 61 72 67 0a 20 20 64 6f 0a 20 20 20  for arg.  do.   
49c0: 20 63 61 73 65 20 24 61 72 67 20 69 6e 0a 20 20   case $arg in.  
49d0: 20 20 2d 6f 29 0a 20 20 20 20 20 20 73 68 69 66    -o).      shif
49e0: 74 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 24  t.      ;;.    $
49f0: 6f 62 6a 65 63 74 29 0a 20 20 20 20 20 20 73 68  object).      sh
4a00: 69 66 74 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20  ift.      ;;.   
4a10: 20 2a 29 0a 20 20 20 20 20 20 73 65 74 20 66 6e   *).      set fn
4a20: 6f 72 64 20 22 24 40 22 20 22 24 61 72 67 22 0a  ord "$@" "$arg".
4a30: 20 20 20 20 20 20 73 68 69 66 74 20 23 20 66 6e        shift # fn
4a40: 6f 72 64 0a 20 20 20 20 20 20 73 68 69 66 74 20  ord.      shift 
4a50: 23 20 24 61 72 67 0a 20 20 20 20 20 20 3b 3b 0a  # $arg.      ;;.
4a60: 20 20 20 20 65 73 61 63 0a 20 20 64 6f 6e 65 0a      esac.  done.
4a70: 0a 20 20 22 24 40 22 20 2d 45 20 7c 0a 20 20 20  .  "$@" -E |.   
4a80: 20 73 65 64 20 2d 6e 20 2d 65 20 27 2f 5e 23 20   sed -n -e '/^# 
4a90: 5b 30 2d 39 5d 5b 30 2d 39 5d 2a 20 22 5c 28 5b  [0-9][0-9]* "\([
4aa0: 5e 22 5d 2a 5c 29 22 2e 2a 2f 20 73 3a 3a 20 5c  ^"]*\)".*/ s:: \
4ab0: 31 20 5c 5c 3a 70 27 20 5c 0a 20 20 20 20 20 20  1 \\:p' \.      
4ac0: 20 2d 65 20 27 2f 5e 23 6c 69 6e 65 20 5b 30 2d   -e '/^#line [0-
4ad0: 39 5d 5b 30 2d 39 5d 2a 20 22 5c 28 5b 5e 22 5d  9][0-9]* "\([^"]
4ae0: 2a 5c 29 22 2e 2a 2f 20 73 3a 3a 20 5c 31 20 5c  *\)".*/ s:: \1 \
4af0: 5c 3a 70 27 20 7c 0a 20 20 20 20 73 65 64 20 27  \:p' |.    sed '
4b00: 24 20 73 3a 20 5c 5c 24 3a 3a 27 20 3e 20 22 24  $ s: \\$::' > "$
4b10: 74 6d 70 64 65 70 66 69 6c 65 22 0a 20 20 72 6d  tmpdepfile".  rm
4b20: 20 2d 66 20 22 24 64 65 70 66 69 6c 65 22 0a 20   -f "$depfile". 
4b30: 20 65 63 68 6f 20 22 24 6f 62 6a 65 63 74 20 3a   echo "$object :
4b40: 20 5c 5c 22 20 3e 20 22 24 64 65 70 66 69 6c 65   \\" > "$depfile
4b50: 22 0a 20 20 63 61 74 20 3c 20 22 24 74 6d 70 64  ".  cat < "$tmpd
4b60: 65 70 66 69 6c 65 22 20 3e 3e 20 22 24 64 65 70  epfile" >> "$dep
4b70: 66 69 6c 65 22 0a 20 20 73 65 64 20 3c 20 22 24  file".  sed < "$
4b80: 74 6d 70 64 65 70 66 69 6c 65 22 20 27 2f 5e 24  tmpdepfile" '/^$
4b90: 2f 64 3b 73 2f 5e 20 2f 2f 3b 73 2f 20 5c 5c 24  /d;s/^ //;s/ \\$
4ba0: 2f 2f 3b 73 2f 24 2f 20 3a 2f 27 20 3e 3e 20 22  //;s/$/ :/' >> "
4bb0: 24 64 65 70 66 69 6c 65 22 0a 20 20 72 6d 20 2d  $depfile".  rm -
4bc0: 66 20 22 24 74 6d 70 64 65 70 66 69 6c 65 22 0a  f "$tmpdepfile".
4bd0: 20 20 3b 3b 0a 0a 6d 73 76 69 73 75 61 6c 63 70    ;;..msvisualcp
4be0: 70 29 0a 20 20 23 20 49 6d 70 6f 72 74 61 6e 74  p).  # Important
4bf0: 20 6e 6f 74 65 3a 20 69 6e 20 6f 72 64 65 72 20   note: in order 
4c00: 74 6f 20 73 75 70 70 6f 72 74 20 74 68 69 73 20  to support this 
4c10: 6d 6f 64 65 2c 20 61 20 63 6f 6d 70 69 6c 65 72  mode, a compiler
4c20: 20 2a 6d 75 73 74 2a 0a 20 20 23 20 61 6c 77 61   *must*.  # alwa
4c30: 79 73 20 77 72 69 74 65 20 74 68 65 20 70 72 65  ys write the pre
4c40: 70 72 6f 63 65 73 73 65 64 20 66 69 6c 65 20 74  processed file t
4c50: 6f 20 73 74 64 6f 75 74 2e 0a 20 20 22 24 40 22  o stdout..  "$@"
4c60: 20 7c 7c 20 65 78 69 74 20 24 3f 0a 0a 20 20 23   || exit $?..  #
4c70: 20 52 65 6d 6f 76 65 20 74 68 65 20 63 61 6c 6c   Remove the call
4c80: 20 74 6f 20 4c 69 62 74 6f 6f 6c 2e 0a 20 20 69   to Libtool..  i
4c90: 66 20 74 65 73 74 20 22 24 6c 69 62 74 6f 6f 6c  f test "$libtool
4ca0: 22 20 3d 20 79 65 73 3b 20 74 68 65 6e 0a 20 20  " = yes; then.  
4cb0: 20 20 77 68 69 6c 65 20 74 65 73 74 20 22 58 24    while test "X$
4cc0: 31 22 20 21 3d 20 27 58 2d 2d 6d 6f 64 65 3d 63  1" != 'X--mode=c
4cd0: 6f 6d 70 69 6c 65 27 3b 20 64 6f 0a 20 20 20 20  ompile'; do.    
4ce0: 20 20 73 68 69 66 74 0a 20 20 20 20 64 6f 6e 65    shift.    done
4cf0: 0a 20 20 20 20 73 68 69 66 74 0a 20 20 66 69 0a  .    shift.  fi.
4d00: 0a 20 20 49 46 53 3d 22 20 22 0a 20 20 66 6f 72  .  IFS=" ".  for
4d10: 20 61 72 67 0a 20 20 64 6f 0a 20 20 20 20 63 61   arg.  do.    ca
4d20: 73 65 20 22 24 61 72 67 22 20 69 6e 0a 20 20 20  se "$arg" in.   
4d30: 20 2d 6f 29 0a 20 20 20 20 20 20 73 68 69 66 74   -o).      shift
4d40: 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 24 6f  .      ;;.    $o
4d50: 62 6a 65 63 74 29 0a 20 20 20 20 20 20 73 68 69  bject).      shi
4d60: 66 74 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20  ft.      ;;.    
4d70: 22 2d 47 6d 22 7c 22 2f 47 6d 22 7c 22 2d 47 69  "-Gm"|"/Gm"|"-Gi
4d80: 22 7c 22 2f 47 69 22 7c 22 2d 5a 49 22 7c 22 2f  "|"/Gi"|"-ZI"|"/
4d90: 5a 49 22 29 0a 09 73 65 74 20 66 6e 6f 72 64 20  ZI")..set fnord 
4da0: 22 24 40 22 0a 09 73 68 69 66 74 0a 09 73 68 69  "$@"..shift..shi
4db0: 66 74 0a 09 3b 3b 0a 20 20 20 20 2a 29 0a 09 73  ft..;;.    *)..s
4dc0: 65 74 20 66 6e 6f 72 64 20 22 24 40 22 20 22 24  et fnord "$@" "$
4dd0: 61 72 67 22 0a 09 73 68 69 66 74 0a 09 73 68 69  arg"..shift..shi
4de0: 66 74 0a 09 3b 3b 0a 20 20 20 20 65 73 61 63 0a  ft..;;.    esac.
4df0: 20 20 64 6f 6e 65 0a 20 20 22 24 40 22 20 2d 45    done.  "$@" -E
4e00: 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 20 7c 0a 20   2>/dev/null |. 
4e10: 20 73 65 64 20 2d 6e 20 27 2f 5e 23 6c 69 6e 65   sed -n '/^#line
4e20: 20 5b 30 2d 39 5d 5b 30 2d 39 5d 2a 20 22 5c 28   [0-9][0-9]* "\(
4e30: 5b 5e 22 5d 2a 5c 29 22 2f 20 73 3a 3a 5c 31 3a  [^"]*\)"/ s::\1:
4e40: 70 27 20 7c 20 24 63 79 67 70 61 74 68 5f 75 20  p' | $cygpath_u 
4e50: 7c 20 73 6f 72 74 20 2d 75 20 3e 20 22 24 74 6d  | sort -u > "$tm
4e60: 70 64 65 70 66 69 6c 65 22 0a 20 20 72 6d 20 2d  pdepfile".  rm -
4e70: 66 20 22 24 64 65 70 66 69 6c 65 22 0a 20 20 65  f "$depfile".  e
4e80: 63 68 6f 20 22 24 6f 62 6a 65 63 74 20 3a 20 5c  cho "$object : \
4e90: 5c 22 20 3e 20 22 24 64 65 70 66 69 6c 65 22 0a  \" > "$depfile".
4ea0: 20 20 73 65 64 20 3c 20 22 24 74 6d 70 64 65 70    sed < "$tmpdep
4eb0: 66 69 6c 65 22 20 2d 6e 20 2d 65 20 27 73 25 20  file" -n -e 's% 
4ec0: 25 5c 5c 20 25 67 27 20 2d 65 20 27 2f 5e 5c 28  %\\ %g' -e '/^\(
4ed0: 2e 2a 5c 29 24 2f 20 73 3a 3a 27 22 24 74 61 62  .*\)$/ s::'"$tab
4ee0: 22 27 5c 31 20 5c 5c 3a 70 27 20 3e 3e 20 22 24  "'\1 \\:p' >> "$
4ef0: 64 65 70 66 69 6c 65 22 0a 20 20 65 63 68 6f 20  depfile".  echo 
4f00: 22 24 74 61 62 22 20 3e 3e 20 22 24 64 65 70 66  "$tab" >> "$depf
4f10: 69 6c 65 22 0a 20 20 73 65 64 20 3c 20 22 24 74  ile".  sed < "$t
4f20: 6d 70 64 65 70 66 69 6c 65 22 20 2d 6e 20 2d 65  mpdepfile" -n -e
4f30: 20 27 73 25 20 25 5c 5c 20 25 67 27 20 2d 65 20   's% %\\ %g' -e 
4f40: 27 2f 5e 5c 28 2e 2a 5c 29 24 2f 20 73 3a 3a 5c  '/^\(.*\)$/ s::\
4f50: 31 5c 3a 3a 70 27 20 3e 3e 20 22 24 64 65 70 66  1\::p' >> "$depf
4f60: 69 6c 65 22 0a 20 20 72 6d 20 2d 66 20 22 24 74  ile".  rm -f "$t
4f70: 6d 70 64 65 70 66 69 6c 65 22 0a 20 20 3b 3b 0a  mpdepfile".  ;;.
4f80: 0a 6d 73 76 63 6d 73 79 73 29 0a 20 20 23 20 54  .msvcmsys).  # T
4f90: 68 69 73 20 63 61 73 65 20 65 78 69 73 74 73 20  his case exists 
4fa0: 6f 6e 6c 79 20 74 6f 20 6c 65 74 20 64 65 70 65  only to let depe
4fb0: 6e 64 2e 6d 34 20 64 6f 20 69 74 73 20 77 6f 72  nd.m4 do its wor
4fc0: 6b 2e 20 20 49 74 20 77 6f 72 6b 73 20 62 79 0a  k.  It works by.
4fd0: 20 20 23 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74    # looking at t
4fe0: 68 65 20 74 65 78 74 20 6f 66 20 74 68 69 73 20  he text of this 
4ff0: 73 63 72 69 70 74 2e 20 20 54 68 69 73 20 63 61  script.  This ca
5000: 73 65 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65  se will never be
5010: 20 72 75 6e 2c 0a 20 20 23 20 73 69 6e 63 65 20   run,.  # since 
5020: 69 74 20 69 73 20 63 68 65 63 6b 65 64 20 66 6f  it is checked fo
5030: 72 20 61 62 6f 76 65 2e 0a 20 20 65 78 69 74 20  r above..  exit 
5040: 31 0a 20 20 3b 3b 0a 0a 6e 6f 6e 65 29 0a 20 20  1.  ;;..none).  
5050: 65 78 65 63 20 22 24 40 22 0a 20 20 3b 3b 0a 0a  exec "$@".  ;;..
5060: 2a 29 0a 20 20 65 63 68 6f 20 22 55 6e 6b 6e 6f  *).  echo "Unkno
5070: 77 6e 20 64 65 70 6d 6f 64 65 20 24 64 65 70 6d  wn depmode $depm
5080: 6f 64 65 22 20 31 3e 26 32 0a 20 20 65 78 69 74  ode" 1>&2.  exit
5090: 20 31 0a 20 20 3b 3b 0a 65 73 61 63 0a 0a 65 78   1.  ;;.esac..ex
50a0: 69 74 20 30 0a 0a 23 20 4c 6f 63 61 6c 20 56 61  it 0..# Local Va
50b0: 72 69 61 62 6c 65 73 3a 0a 23 20 6d 6f 64 65 3a  riables:.# mode:
50c0: 20 73 68 65 6c 6c 2d 73 63 72 69 70 74 0a 23 20   shell-script.# 
50d0: 73 68 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 3a 20  sh-indentation: 
50e0: 32 0a 23 20 65 76 61 6c 3a 20 28 61 64 64 2d 68  2.# eval: (add-h
50f0: 6f 6f 6b 20 27 77 72 69 74 65 2d 66 69 6c 65 2d  ook 'write-file-
5100: 68 6f 6f 6b 73 20 27 74 69 6d 65 2d 73 74 61 6d  hooks 'time-stam
5110: 70 29 0a 23 20 74 69 6d 65 2d 73 74 61 6d 70 2d  p).# time-stamp-
5120: 73 74 61 72 74 3a 20 22 73 63 72 69 70 74 76 65  start: "scriptve
5130: 72 73 69 6f 6e 3d 22 0a 23 20 74 69 6d 65 2d 73  rsion=".# time-s
5140: 74 61 6d 70 2d 66 6f 72 6d 61 74 3a 20 22 25 3a  tamp-format: "%:
5150: 79 2d 25 30 32 6d 2d 25 30 32 64 2e 25 30 32 48  y-%02m-%02d.%02H
5160: 22 0a 23 20 74 69 6d 65 2d 73 74 61 6d 70 2d 74  ".# time-stamp-t
5170: 69 6d 65 2d 7a 6f 6e 65 3a 20 22 55 54 43 22 0a  ime-zone: "UTC".
5180: 23 20 74 69 6d 65 2d 73 74 61 6d 70 2d 65 6e 64  # time-stamp-end
5190: 3a 20 22 3b 20 23 20 55 54 43 22 0a 23 20 45 6e  : "; # UTC".# En
51a0: 64 3a 0a                                         d:.