source: trunk/autoconf/depcomp @ 354

Last change on this file since 354 was 106, checked in by kulshres, 11 years ago

Squashed merge of branch 'master' of 'gitclone' into svn
and regenerated files to comply with coin-or repository guidelines.

  • 'master' of 'gitclone': (37 commits) fix a bug in the windows packaging script and add an examples packager add new files to dist remove old windows compile scripts and makefiles from dist allow nosparse compilation to do sparsity patterns too improve compilation and installation of windows Remove old windows Makefiles and scripts Add the examples readme file for vc++ also to dist. Add 64bit windows additions to the project files. add all the visual studio files to dist too regenerate documentation. add something about Visual Studio in the documentation. correct the documentation about include paths and the --enable- options add some more instructions for users in Readme files. ignore generated files from VC++ add project files for documented examples add ADOLC_DLL_EXPORT to taping functions add some readme instructions for users. ignore generated files from the windows build Add visual studio source files compile sparse sources only if SPARSE is defined ...

Details of the commit messages:

commit acd92df2e0402c5e2fb9853ae2185030e0e171c2
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Jun 29 11:28:18 2010 +0200

fix a bug in the windows packaging script and add an examples packager

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 79c88a7f8bc6ceff687a7104accbb8a10661e5d0
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 28 17:27:58 2010 +0200

add new files to dist

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 549de45ff5f748a2e532818ed505816cee0c6388
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 28 17:24:04 2010 +0200

remove old windows compile scripts and makefiles from dist

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit b016c67ae894e746b33df30169449066f60fba8e
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 28 17:08:22 2010 +0200

allow nosparse compilation to do sparsity patterns too

the only thing missing is colpack and we've already done a separation.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit b3bf0950428c5608319054282faf1984b0498b24
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 28 17:07:28 2010 +0200

improve compilation and installation of windows

  • add NDEBUG everywhere so no debug libraries are required
  • add the redistributable vc++ packages
  • add a script to install the compiled files in a good directory structure and create a zipfile, also including the vc++ packages and a setup.bat

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit e3e3045db66ab4efd2d56c4cce1e47117bfd981b
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 28 15:25:23 2010 +0200

Remove old windows Makefiles and scripts

these are useless now and have not been maintained in ages

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit df7e7f651dd96ad54b8a0e179f3513f4157ad4cb
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Jun 22 11:11:40 2010 +0200

Add the examples readme file for vc++ also to dist.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 5b1503a589485296773cb867e0140ecd0c4ff2bb
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Jun 22 10:57:11 2010 +0200

Add 64bit windows additions to the project files.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit fcb189798ea3f160ea8a2715c0a9b62bb0219c24
Merge: cf9681b e2de127
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 16:09:11 2010 +0200

Merge branch 'visualstudio'

  • visualstudio: add all the visual studio files to dist too

commit e2de127ad54537b0ae0a83a6ce4b2e19e8539c2a
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 16:08:05 2010 +0200

add all the visual studio files to dist too

in case we make a tarball using make dist these files should be
included too.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit cf9681bbad4db565e2b4eb0657b34005048c656c
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 15:38:35 2010 +0200

regenerate documentation.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit a1292b4d3374089ea675b65188a921a4a90235ae
Merge: f4b19a1 23f4d82
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 15:37:09 2010 +0200

Merge branch 'visualstudio'

  • visualstudio: add something about Visual Studio in the documentation. add some more instructions for users in Readme files. ignore generated files from VC++ add project files for documented examples add ADOLC_DLL_EXPORT to taping functions add some readme instructions for users. ignore generated files from the windows build Add visual studio source files compile sparse sources only if SPARSE is defined visual c++ doesn't like non-void functions without return

commit 23f4d8280b10b57651353ba1b00c56126d769d95
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 15:34:59 2010 +0200

add something about Visual Studio in the documentation.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit f4b19a13d0bf95fc677fc4713dbb7f1de4803710
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 15:34:07 2010 +0200

correct the documentation about include paths and the --enable- options

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 1797588337947960a9f605f54accd77864320bd6
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 14:51:46 2010 +0200

add some more instructions for users in Readme files.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit e289fe2d47fa7488021faf8e06d4331a599f1535
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 14:36:50 2010 +0200

ignore generated files from VC++

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit ba4d6262d1344af8a27ef4c4d4633f076b4a9440
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 14:35:24 2010 +0200

add project files for documented examples

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 6b2ba4c6245b0cf0d9cc1655bbcd9bdd2187bc07
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 14:30:22 2010 +0200

add ADOLC_DLL_EXPORT to taping functions

otherwise the applications don't link with adolc.dll in VC++

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit b93770a0d8625740014bca29200f47c5ed891045
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 13:08:26 2010 +0200

add some readme instructions for users.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 9cd5a33abc32592b6f2348f651a1990520ebf731
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 12:45:09 2010 +0200

ignore generated files from the windows build

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 23c23e08c207effe526c973992b9aab5c6b9dff9
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 12:02:19 2010 +0200

Add visual studio source files

the windows/adolc.sln file is the solution file which can be
used to compile both sparse and nosparse versions.
windows/adolc.vcxproj is the adolc project file containing the
configuration for both sparse and nosparse builds, the sparse build
requires the ThirdParty/ColPack/ColPack?.vcxproj project to be
compiled first.

In order to compile ColPack?, just unpack the ColPack? sources into
ThirdParty/ColPack? and apply the patch
Thirparty/ColPack?/colpack_vcxcompile.patch
which is needed for colpack to be compiled in VC++.
After this Visual Studio will be able to build the sparse version
of adolc which contains ColPack? as a static library within.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 5f7244ce2e64515020aa8ab619eea91bafb5159f
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 11:55:00 2010 +0200

compile sparse sources only if SPARSE is defined

in the autotools version -DSPARSE gets added to the command line
whenever sparse is enabled. Autotools also have a conditional
source files list. VC++ doesn't have any conditional sources
so we define SPARSE=1 in the additional defines and let the whole
source be only compiled if SPARSE was defined.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 17ad3477450ea40264f3055ec10965c5e9a3a635
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Thu Jun 17 11:50:57 2010 +0200

visual c++ doesn't like non-void functions without return

gcc usually only warns about it. visual c++ calls it an error.
in this case we really don't need an int to be returned so we
just make the function void.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit fc5b44bd420bcd4dd6606ed5da853bcd2f959c93
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Jun 16 11:29:51 2010 +0200

correct the logic for the warning delay in configure

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit c8efb4d5811a8045bfbbfaebc96d356f87d07045
Merge: ec60772 6203077
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Jun 15 16:59:32 2010 +0200

Merge branch 'svn'

commit ec60772e229fb09c8d8f5a71c5b55602b8245601
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 14 18:06:14 2010 +0200

distcheck seems to behave differently on each computer

make it work for a third time

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit f7ba0328297712c575e25d88f3496b2503c7949d
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 14 17:59:29 2010 +0200

let make distcheck be even more happy

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 5002f07123a276c45e0484e819c85f6e0e9c352f
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 14 16:13:39 2010 +0200

some more optimisations in configure

  • allow for simultaneous 32 and 64 bit installations whenever needed
  • writability test for the prefix directory or its parents
  • print the last comments about linking paths for all paths in ${HOME}
  • put in a pause between messages so that the user will notice the (red printed) warnings before they scroll away.
  • rename options that only enable or disable a feature appropriately

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 9f86f1d391871f26f1a61c357764e63558ad078a
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Jun 9 10:18:40 2010 +0200

let make distcheck be happy.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit fe27dfbae0a6ded19cec3e0205a60a5ee3db3ce5
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Jun 8 14:52:24 2010 +0200

ignore more generated files

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 27ac799deb4cd5a162478d489212cc4eff821797
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Tue Jun 8 14:45:14 2010 +0200

hack in a --tag=XXX for old libtool

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 3f8bac48008b559219f965b23209be5c9761605e
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 7 17:56:17 2010 +0200

use shave and dolt to clean up the build

makes it easier to see errors and warnings

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 5e05c52bc2ebb60a15b62753a25d8e7a930b3c9e
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 7 17:38:15 2010 +0200

Separate out ColPack? dependency from sparsity patterns

In order to compute sparsity patterns we don't need ColPack?. It is
only needed to compute the compressed structures or their seeds.
This way user also has the opportunity to specify where his ColPack?
installation is located and standard library paths are also searched.

In case someone switches sparse on and doesn't have ColPack?, ADOL-C
will still compile but configure will spit out a warning in the end
as well as the functions that use ColPack?, if called, will cause an
exit(-1) with an error message.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 5713dfa2a060859061890f60adc92353d9efd4f9
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Jun 7 15:31:50 2010 +0200

ignore more executables

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit ac57ebab0d23ee210129b9217661dc1598ef01f9
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Fri May 7 01:45:02 2010 +0200

one more generated file to be removed and ignored

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 612016c5052146fea2a719d4235dfa14e9eab7c6
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Mon Apr 12 14:35:38 2010 +0200

correct the inclusion directories

since all public headers are pkginclude_HEADERS they must be prefixed
for inclusion always.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 5c11cac64c647fd0d129dfe53c9a2f0324ce3002
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Sep 23 11:58:24 2009 +0200

more generated files to be ignored.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit c9a7a67b11aacf1db291a8d931b3ddfe7cfb223b
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Sep 23 11:55:59 2009 +0200

some more stuff to gitignore

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 85c1a35c43aad249ec888d4fee184b0ac132d60f
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Sep 23 11:52:56 2009 +0200

Allow examples to be compile later

Even if the configure does not get the compile examples by default
flag, someone might want to compile one or two examples later by
calling make examplename in the examples subdirectory. This will
make that possible.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

commit 16f920cfca7c013aecbf3a7fb7070882555a32e8
Author: Kshitij Kulshreshtha <kshitij@…>
Date: Wed Sep 23 11:43:27 2009 +0200

Remove files from git that are anyway generated

I don't know why svn people like to keep them anyway.

Signed-off-by: Kshitij Kulshreshtha <kshitij@…>

File size: 18.2 KB
Line 
1#! /bin/sh
2# depcomp - compile a program generating dependencies as side-effects
3
4scriptversion=2009-04-28.21; # UTC
5
6# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
7# Software Foundation, Inc.
8
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2, or (at your option)
12# any later version.
13
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18
19# You should have received a copy of the GNU General Public License
20# along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
22# As a special exception to the GNU General Public License, if you
23# distribute this file as part of a program that contains a
24# configuration script generated by Autoconf, you may include it under
25# the same distribution terms that you use for the rest of that program.
26
27# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
28
29case $1 in
30  '')
31     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
32     exit 1;
33     ;;
34  -h | --h*)
35    cat <<\EOF
36Usage: depcomp [--help] [--version] PROGRAM [ARGS]
37
38Run PROGRAMS ARGS to compile a file, generating dependencies
39as side-effects.
40
41Environment variables:
42  depmode     Dependency tracking mode.
43  source      Source file read by `PROGRAMS ARGS'.
44  object      Object file output by `PROGRAMS ARGS'.
45  DEPDIR      directory where to store dependencies.
46  depfile     Dependency file to output.
47  tmpdepfile  Temporary file to use when outputing dependencies.
48  libtool     Whether libtool is used (yes/no).
49
50Report bugs to <bug-automake@gnu.org>.
51EOF
52    exit $?
53    ;;
54  -v | --v*)
55    echo "depcomp $scriptversion"
56    exit $?
57    ;;
58esac
59
60if test -z "$depmode" || test -z "$source" || test -z "$object"; then
61  echo "depcomp: Variables source, object and depmode must be set" 1>&2
62  exit 1
63fi
64
65# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
66depfile=${depfile-`echo "$object" |
67  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
68tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
69
70rm -f "$tmpdepfile"
71
72# Some modes work just like other modes, but use different flags.  We
73# parameterize here, but still list the modes in the big case below,
74# to make depend.m4 easier to write.  Note that we *cannot* use a case
75# here, because this file can only contain one case statement.
76if test "$depmode" = hp; then
77  # HP compiler uses -M and no extra arg.
78  gccflag=-M
79  depmode=gcc
80fi
81
82if test "$depmode" = dashXmstdout; then
83   # This is just like dashmstdout with a different argument.
84   dashmflag=-xM
85   depmode=dashmstdout
86fi
87
88cygpath_u="cygpath -u -f -"
89if test "$depmode" = msvcmsys; then
90   # This is just like msvisualcpp but w/o cygpath translation.
91   # Just convert the backslash-escaped backslashes to single forward
92   # slashes to satisfy depend.m4
93   cygpath_u="sed s,\\\\\\\\,/,g"
94   depmode=msvisualcpp
95fi
96
97case "$depmode" in
98gcc3)
99## gcc 3 implements dependency tracking that does exactly what
100## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
101## it if -MD -MP comes after the -MF stuff.  Hmm.
102## Unfortunately, FreeBSD c89 acceptance of flags depends upon
103## the command line argument order; so add the flags where they
104## appear in depend2.am.  Note that the slowdown incurred here
105## affects only configure: in makefiles, %FASTDEP% shortcuts this.
106  for arg
107  do
108    case $arg in
109    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
110    *)  set fnord "$@" "$arg" ;;
111    esac
112    shift # fnord
113    shift # $arg
114  done
115  "$@"
116  stat=$?
117  if test $stat -eq 0; then :
118  else
119    rm -f "$tmpdepfile"
120    exit $stat
121  fi
122  mv "$tmpdepfile" "$depfile"
123  ;;
124
125gcc)
126## There are various ways to get dependency output from gcc.  Here's
127## why we pick this rather obscure method:
128## - Don't want to use -MD because we'd like the dependencies to end
129##   up in a subdir.  Having to rename by hand is ugly.
130##   (We might end up doing this anyway to support other compilers.)
131## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
132##   -MM, not -M (despite what the docs say).
133## - Using -M directly means running the compiler twice (even worse
134##   than renaming).
135  if test -z "$gccflag"; then
136    gccflag=-MD,
137  fi
138  "$@" -Wp,"$gccflag$tmpdepfile"
139  stat=$?
140  if test $stat -eq 0; then :
141  else
142    rm -f "$tmpdepfile"
143    exit $stat
144  fi
145  rm -f "$depfile"
146  echo "$object : \\" > "$depfile"
147  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
148## The second -e expression handles DOS-style file names with drive letters.
149  sed -e 's/^[^:]*: / /' \
150      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
151## This next piece of magic avoids the `deleted header file' problem.
152## The problem is that when a header file which appears in a .P file
153## is deleted, the dependency causes make to die (because there is
154## typically no way to rebuild the header).  We avoid this by adding
155## dummy dependencies for each header file.  Too bad gcc doesn't do
156## this for us directly.
157  tr ' ' '
158' < "$tmpdepfile" |
159## Some versions of gcc put a space before the `:'.  On the theory
160## that the space means something, we add a space to the output as
161## well.
162## Some versions of the HPUX 10.20 sed can't process this invocation
163## correctly.  Breaking it into two sed invocations is a workaround.
164    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
165  rm -f "$tmpdepfile"
166  ;;
167
168hp)
169  # This case exists only to let depend.m4 do its work.  It works by
170  # looking at the text of this script.  This case will never be run,
171  # since it is checked for above.
172  exit 1
173  ;;
174
175sgi)
176  if test "$libtool" = yes; then
177    "$@" "-Wp,-MDupdate,$tmpdepfile"
178  else
179    "$@" -MDupdate "$tmpdepfile"
180  fi
181  stat=$?
182  if test $stat -eq 0; then :
183  else
184    rm -f "$tmpdepfile"
185    exit $stat
186  fi
187  rm -f "$depfile"
188
189  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
190    echo "$object : \\" > "$depfile"
191
192    # Clip off the initial element (the dependent).  Don't try to be
193    # clever and replace this with sed code, as IRIX sed won't handle
194    # lines with more than a fixed number of characters (4096 in
195    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
196    # the IRIX cc adds comments like `#:fec' to the end of the
197    # dependency line.
198    tr ' ' '
199' < "$tmpdepfile" \
200    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
201    tr '
202' ' ' >> "$depfile"
203    echo >> "$depfile"
204
205    # The second pass generates a dummy entry for each header file.
206    tr ' ' '
207' < "$tmpdepfile" \
208   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
209   >> "$depfile"
210  else
211    # The sourcefile does not contain any dependencies, so just
212    # store a dummy comment line, to avoid errors with the Makefile
213    # "include basename.Plo" scheme.
214    echo "#dummy" > "$depfile"
215  fi
216  rm -f "$tmpdepfile"
217  ;;
218
219aix)
220  # The C for AIX Compiler uses -M and outputs the dependencies
221  # in a .u file.  In older versions, this file always lives in the
222  # current directory.  Also, the AIX compiler puts `$object:' at the
223  # start of each line; $object doesn't have directory information.
224  # Version 6 uses the directory in both cases.
225  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
226  test "x$dir" = "x$object" && dir=
227  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
228  if test "$libtool" = yes; then
229    tmpdepfile1=$dir$base.u
230    tmpdepfile2=$base.u
231    tmpdepfile3=$dir.libs/$base.u
232    "$@" -Wc,-M
233  else
234    tmpdepfile1=$dir$base.u
235    tmpdepfile2=$dir$base.u
236    tmpdepfile3=$dir$base.u
237    "$@" -M
238  fi
239  stat=$?
240
241  if test $stat -eq 0; then :
242  else
243    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
244    exit $stat
245  fi
246
247  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
248  do
249    test -f "$tmpdepfile" && break
250  done
251  if test -f "$tmpdepfile"; then
252    # Each line is of the form `foo.o: dependent.h'.
253    # Do two passes, one to just change these to
254    # `$object: dependent.h' and one to simply `dependent.h:'.
255    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
256    # That's a tab and a space in the [].
257    sed -e 's,^.*\.[a-z]*:[      ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
258  else
259    # The sourcefile does not contain any dependencies, so just
260    # store a dummy comment line, to avoid errors with the Makefile
261    # "include basename.Plo" scheme.
262    echo "#dummy" > "$depfile"
263  fi
264  rm -f "$tmpdepfile"
265  ;;
266
267icc)
268  # Intel's C compiler understands `-MD -MF file'.  However on
269  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
270  # ICC 7.0 will fill foo.d with something like
271  #    foo.o: sub/foo.c
272  #    foo.o: sub/foo.h
273  # which is wrong.  We want:
274  #    sub/foo.o: sub/foo.c
275  #    sub/foo.o: sub/foo.h
276  #    sub/foo.c:
277  #    sub/foo.h:
278  # ICC 7.1 will output
279  #    foo.o: sub/foo.c sub/foo.h
280  # and will wrap long lines using \ :
281  #    foo.o: sub/foo.c ... \
282  #     sub/foo.h ... \
283  #     ...
284
285  "$@" -MD -MF "$tmpdepfile"
286  stat=$?
287  if test $stat -eq 0; then :
288  else
289    rm -f "$tmpdepfile"
290    exit $stat
291  fi
292  rm -f "$depfile"
293  # Each line is of the form `foo.o: dependent.h',
294  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
295  # Do two passes, one to just change these to
296  # `$object: dependent.h' and one to simply `dependent.h:'.
297  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
298  # Some versions of the HPUX 10.20 sed can't process this invocation
299  # correctly.  Breaking it into two sed invocations is a workaround.
300  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
301    sed -e 's/$/ :/' >> "$depfile"
302  rm -f "$tmpdepfile"
303  ;;
304
305hp2)
306  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
307  # compilers, which have integrated preprocessors.  The correct option
308  # to use with these is +Maked; it writes dependencies to a file named
309  # 'foo.d', which lands next to the object file, wherever that
310  # happens to be.
311  # Much of this is similar to the tru64 case; see comments there.
312  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
313  test "x$dir" = "x$object" && dir=
314  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
315  if test "$libtool" = yes; then
316    tmpdepfile1=$dir$base.d
317    tmpdepfile2=$dir.libs/$base.d
318    "$@" -Wc,+Maked
319  else
320    tmpdepfile1=$dir$base.d
321    tmpdepfile2=$dir$base.d
322    "$@" +Maked
323  fi
324  stat=$?
325  if test $stat -eq 0; then :
326  else
327     rm -f "$tmpdepfile1" "$tmpdepfile2"
328     exit $stat
329  fi
330
331  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
332  do
333    test -f "$tmpdepfile" && break
334  done
335  if test -f "$tmpdepfile"; then
336    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
337    # Add `dependent.h:' lines.
338    sed -ne '2,${
339               s/^ *//
340               s/ \\*$//
341               s/$/:/
342               p
343             }' "$tmpdepfile" >> "$depfile"
344  else
345    echo "#dummy" > "$depfile"
346  fi
347  rm -f "$tmpdepfile" "$tmpdepfile2"
348  ;;
349
350tru64)
351   # The Tru64 compiler uses -MD to generate dependencies as a side
352   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
353   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
354   # dependencies in `foo.d' instead, so we check for that too.
355   # Subdirectories are respected.
356   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
357   test "x$dir" = "x$object" && dir=
358   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
359
360   if test "$libtool" = yes; then
361      # With Tru64 cc, shared objects can also be used to make a
362      # static library.  This mechanism is used in libtool 1.4 series to
363      # handle both shared and static libraries in a single compilation.
364      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
365      #
366      # With libtool 1.5 this exception was removed, and libtool now
367      # generates 2 separate objects for the 2 libraries.  These two
368      # compilations output dependencies in $dir.libs/$base.o.d and
369      # in $dir$base.o.d.  We have to check for both files, because
370      # one of the two compilations can be disabled.  We should prefer
371      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
372      # automatically cleaned when .libs/ is deleted, while ignoring
373      # the former would cause a distcleancheck panic.
374      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
375      tmpdepfile2=$dir$base.o.d          # libtool 1.5
376      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
377      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
378      "$@" -Wc,-MD
379   else
380      tmpdepfile1=$dir$base.o.d
381      tmpdepfile2=$dir$base.d
382      tmpdepfile3=$dir$base.d
383      tmpdepfile4=$dir$base.d
384      "$@" -MD
385   fi
386
387   stat=$?
388   if test $stat -eq 0; then :
389   else
390      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
391      exit $stat
392   fi
393
394   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
395   do
396     test -f "$tmpdepfile" && break
397   done
398   if test -f "$tmpdepfile"; then
399      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
400      # That's a tab and a space in the [].
401      sed -e 's,^.*\.[a-z]*:[    ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
402   else
403      echo "#dummy" > "$depfile"
404   fi
405   rm -f "$tmpdepfile"
406   ;;
407
408#nosideeffect)
409  # This comment above is used by automake to tell side-effect
410  # dependency tracking mechanisms from slower ones.
411
412dashmstdout)
413  # Important note: in order to support this mode, a compiler *must*
414  # always write the preprocessed file to stdout, regardless of -o.
415  "$@" || exit $?
416
417  # Remove the call to Libtool.
418  if test "$libtool" = yes; then
419    while test "X$1" != 'X--mode=compile'; do
420      shift
421    done
422    shift
423  fi
424
425  # Remove `-o $object'.
426  IFS=" "
427  for arg
428  do
429    case $arg in
430    -o)
431      shift
432      ;;
433    $object)
434      shift
435      ;;
436    *)
437      set fnord "$@" "$arg"
438      shift # fnord
439      shift # $arg
440      ;;
441    esac
442  done
443
444  test -z "$dashmflag" && dashmflag=-M
445  # Require at least two characters before searching for `:'
446  # in the target name.  This is to cope with DOS-style filenames:
447  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
448  "$@" $dashmflag |
449    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
450  rm -f "$depfile"
451  cat < "$tmpdepfile" > "$depfile"
452  tr ' ' '
453' < "$tmpdepfile" | \
454## Some versions of the HPUX 10.20 sed can't process this invocation
455## correctly.  Breaking it into two sed invocations is a workaround.
456    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
457  rm -f "$tmpdepfile"
458  ;;
459
460dashXmstdout)
461  # This case only exists to satisfy depend.m4.  It is never actually
462  # run, as this mode is specially recognized in the preamble.
463  exit 1
464  ;;
465
466makedepend)
467  "$@" || exit $?
468  # Remove any Libtool call
469  if test "$libtool" = yes; then
470    while test "X$1" != 'X--mode=compile'; do
471      shift
472    done
473    shift
474  fi
475  # X makedepend
476  shift
477  cleared=no eat=no
478  for arg
479  do
480    case $cleared in
481    no)
482      set ""; shift
483      cleared=yes ;;
484    esac
485    if test $eat = yes; then
486      eat=no
487      continue
488    fi
489    case "$arg" in
490    -D*|-I*)
491      set fnord "$@" "$arg"; shift ;;
492    # Strip any option that makedepend may not understand.  Remove
493    # the object too, otherwise makedepend will parse it as a source file.
494    -arch)
495      eat=yes ;;
496    -*|$object)
497      ;;
498    *)
499      set fnord "$@" "$arg"; shift ;;
500    esac
501  done
502  obj_suffix=`echo "$object" | sed 's/^.*\././'`
503  touch "$tmpdepfile"
504  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
505  rm -f "$depfile"
506  cat < "$tmpdepfile" > "$depfile"
507  sed '1,2d' "$tmpdepfile" | tr ' ' '
508' | \
509## Some versions of the HPUX 10.20 sed can't process this invocation
510## correctly.  Breaking it into two sed invocations is a workaround.
511    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
512  rm -f "$tmpdepfile" "$tmpdepfile".bak
513  ;;
514
515cpp)
516  # Important note: in order to support this mode, a compiler *must*
517  # always write the preprocessed file to stdout.
518  "$@" || exit $?
519
520  # Remove the call to Libtool.
521  if test "$libtool" = yes; then
522    while test "X$1" != 'X--mode=compile'; do
523      shift
524    done
525    shift
526  fi
527
528  # Remove `-o $object'.
529  IFS=" "
530  for arg
531  do
532    case $arg in
533    -o)
534      shift
535      ;;
536    $object)
537      shift
538      ;;
539    *)
540      set fnord "$@" "$arg"
541      shift # fnord
542      shift # $arg
543      ;;
544    esac
545  done
546
547  "$@" -E |
548    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
549       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
550    sed '$ s: \\$::' > "$tmpdepfile"
551  rm -f "$depfile"
552  echo "$object : \\" > "$depfile"
553  cat < "$tmpdepfile" >> "$depfile"
554  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
555  rm -f "$tmpdepfile"
556  ;;
557
558msvisualcpp)
559  # Important note: in order to support this mode, a compiler *must*
560  # always write the preprocessed file to stdout.
561  "$@" || exit $?
562
563  # Remove the call to Libtool.
564  if test "$libtool" = yes; then
565    while test "X$1" != 'X--mode=compile'; do
566      shift
567    done
568    shift
569  fi
570
571  IFS=" "
572  for arg
573  do
574    case "$arg" in
575    -o)
576      shift
577      ;;
578    $object)
579      shift
580      ;;
581    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
582        set fnord "$@"
583        shift
584        shift
585        ;;
586    *)
587        set fnord "$@" "$arg"
588        shift
589        shift
590        ;;
591    esac
592  done
593  "$@" -E 2>/dev/null |
594  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
595  rm -f "$depfile"
596  echo "$object : \\" > "$depfile"
597  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::      \1 \\:p' >> "$depfile"
598  echo "        " >> "$depfile"
599  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
600  rm -f "$tmpdepfile"
601  ;;
602
603msvcmsys)
604  # This case exists only to let depend.m4 do its work.  It works by
605  # looking at the text of this script.  This case will never be run,
606  # since it is checked for above.
607  exit 1
608  ;;
609
610none)
611  exec "$@"
612  ;;
613
614*)
615  echo "Unknown depmode $depmode" 1>&2
616  exit 1
617  ;;
618esac
619
620exit 0
621
622# Local Variables:
623# mode: shell-script
624# sh-indentation: 2
625# eval: (add-hook 'write-file-hooks 'time-stamp)
626# time-stamp-start: "scriptversion="
627# time-stamp-format: "%:y-%02m-%02d.%02H"
628# time-stamp-time-zone: "UTC"
629# time-stamp-end: "; # UTC"
630# End:
Note: See TracBrowser for help on using the repository browser.