/[svn]/ircd-hybrid-7.2/depcomp
ViewVC logotype

Diff of /ircd-hybrid-7.2/depcomp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 912 by michael, Wed Nov 7 22:47:44 2007 UTC revision 945 by michael, Mon Jul 20 15:48:27 2009 UTC
# Line 1  Line 1 
1  #! /bin/sh  #! /bin/sh
2  # depcomp - compile a program generating dependencies as side-effects  # depcomp - compile a program generating dependencies as side-effects
3    
4  scriptversion=2006-10-15.18  scriptversion=2009-04-28.21; # UTC
5    
6  # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software  # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
7  # Foundation, Inc.  # Software Foundation, Inc.
8    
9  # This program is free software; you can redistribute it and/or modify  # 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  # it under the terms of the GNU General Public License as published by
# Line 17  scriptversion=2006-10-15.18 Line 17  scriptversion=2006-10-15.18
17  # GNU General Public License for more details.  # GNU General Public License for more details.
18    
19  # You should have received a copy of the GNU General Public License  # You should have received a copy of the GNU General Public License
20  # along with this program; if not, write to the Free Software  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
 # 02110-1301, USA.  
21    
22  # As a special exception to the GNU General Public License, if you  # As a special exception to the GNU General Public License, if you
23  # distribute this file as part of a program that contains a  # distribute this file as part of a program that contains a
# Line 87  if test "$depmode" = dashXmstdout; then Line 85  if test "$depmode" = dashXmstdout; then
85     depmode=dashmstdout     depmode=dashmstdout
86  fi  fi
87    
88    cygpath_u="cygpath -u -f -"
89    if 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
95    fi
96    
97  case "$depmode" in  case "$depmode" in
98  gcc3)  gcc3)
99  ## gcc 3 implements dependency tracking that does exactly what  ## gcc 3 implements dependency tracking that does exactly what
# Line 192  sgi) Line 199  sgi)
199  ' < "$tmpdepfile" \  ' < "$tmpdepfile" \
200      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
201      tr '      tr '
202  ' ' ' >> $depfile  ' ' ' >> "$depfile"
203      echo >> $depfile      echo >> "$depfile"
204    
205      # The second pass generates a dummy entry for each header file.      # The second pass generates a dummy entry for each header file.
206      tr ' ' '      tr ' ' '
207  ' < "$tmpdepfile" \  ' < "$tmpdepfile" \
208     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
209     >> $depfile     >> "$depfile"
210    else    else
211      # The sourcefile does not contain any dependencies, so just      # The sourcefile does not contain any dependencies, so just
212      # store a dummy comment line, to avoid errors with the Makefile      # store a dummy comment line, to avoid errors with the Makefile
# Line 215  aix) Line 222  aix)
222    # current directory.  Also, the AIX compiler puts `$object:' at the    # current directory.  Also, the AIX compiler puts `$object:' at the
223    # start of each line; $object doesn't have directory information.    # start of each line; $object doesn't have directory information.
224    # Version 6 uses the directory in both cases.    # Version 6 uses the directory in both cases.
225    stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
226    tmpdepfile="$stripped.u"    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    if test "$libtool" = yes; then
229        tmpdepfile1=$dir$base.u
230        tmpdepfile2=$base.u
231        tmpdepfile3=$dir.libs/$base.u
232      "$@" -Wc,-M      "$@" -Wc,-M
233    else    else
234        tmpdepfile1=$dir$base.u
235        tmpdepfile2=$dir$base.u
236        tmpdepfile3=$dir$base.u
237      "$@" -M      "$@" -M
238    fi    fi
239    stat=$?    stat=$?
240    
   if test -f "$tmpdepfile"; then :  
   else  
     stripped=`echo "$stripped" | sed 's,^.*/,,'`  
     tmpdepfile="$stripped.u"  
   fi  
   
241    if test $stat -eq 0; then :    if test $stat -eq 0; then :
242    else    else
243      rm -f "$tmpdepfile"      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
244      exit $stat      exit $stat
245    fi    fi
246    
247      for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
248      do
249        test -f "$tmpdepfile" && break
250      done
251    if test -f "$tmpdepfile"; then    if test -f "$tmpdepfile"; then
     outname="$stripped.o"  
252      # Each line is of the form `foo.o: dependent.h'.      # Each line is of the form `foo.o: dependent.h'.
253      # Do two passes, one to just change these to      # Do two passes, one to just change these to
254      # `$object: dependent.h' and one to simply `dependent.h:'.      # `$object: dependent.h' and one to simply `dependent.h:'.
255      sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
256      sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"      # That's a tab and a space in the [].
257        sed -e 's,^.*\.[a-z]*:[      ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
258    else    else
259      # The sourcefile does not contain any dependencies, so just      # The sourcefile does not contain any dependencies, so just
260      # store a dummy comment line, to avoid errors with the Makefile      # store a dummy comment line, to avoid errors with the Makefile
# Line 323  hp2) Line 335  hp2)
335    if test -f "$tmpdepfile"; then    if test -f "$tmpdepfile"; then
336      sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"      sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
337      # Add `dependent.h:' lines.      # Add `dependent.h:' lines.
338      sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"      sed -ne '2,${
339                   s/^ *//
340                   s/ \\*$//
341                   s/$/:/
342                   p
343                 }' "$tmpdepfile" >> "$depfile"
344    else    else
345      echo "#dummy" > "$depfile"      echo "#dummy" > "$depfile"
346    fi    fi
# Line 399  dashmstdout) Line 416  dashmstdout)
416    
417    # Remove the call to Libtool.    # Remove the call to Libtool.
418    if test "$libtool" = yes; then    if test "$libtool" = yes; then
419      while test $1 != '--mode=compile'; do      while test "X$1" != 'X--mode=compile'; do
420        shift        shift
421      done      done
422      shift      shift
# Line 450  makedepend) Line 467  makedepend)
467    "$@" || exit $?    "$@" || exit $?
468    # Remove any Libtool call    # Remove any Libtool call
469    if test "$libtool" = yes; then    if test "$libtool" = yes; then
470      while test $1 != '--mode=compile'; do      while test "X$1" != 'X--mode=compile'; do
471        shift        shift
472      done      done
473      shift      shift
474    fi    fi
475    # X makedepend    # X makedepend
476    shift    shift
477    cleared=no    cleared=no eat=no
478    for arg in "$@"; do    for arg
479      do
480      case $cleared in      case $cleared in
481      no)      no)
482        set ""; shift        set ""; shift
483        cleared=yes ;;        cleared=yes ;;
484      esac      esac
485        if test $eat = yes; then
486          eat=no
487          continue
488        fi
489      case "$arg" in      case "$arg" in
490      -D*|-I*)      -D*|-I*)
491        set fnord "$@" "$arg"; shift ;;        set fnord "$@" "$arg"; shift ;;
492      # Strip any option that makedepend may not understand.  Remove      # Strip any option that makedepend may not understand.  Remove
493      # the object too, otherwise makedepend will parse it as a source file.      # the object too, otherwise makedepend will parse it as a source file.
494        -arch)
495          eat=yes ;;
496      -*|$object)      -*|$object)
497        ;;        ;;
498      *)      *)
499        set fnord "$@" "$arg"; shift ;;        set fnord "$@" "$arg"; shift ;;
500      esac      esac
501    done    done
502    obj_suffix="`echo $object | sed 's/^.*\././'`"    obj_suffix=`echo "$object" | sed 's/^.*\././'`
503    touch "$tmpdepfile"    touch "$tmpdepfile"
504    ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"    ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
505    rm -f "$depfile"    rm -f "$depfile"
# Line 495  cpp) Line 519  cpp)
519    
520    # Remove the call to Libtool.    # Remove the call to Libtool.
521    if test "$libtool" = yes; then    if test "$libtool" = yes; then
522      while test $1 != '--mode=compile'; do      while test "X$1" != 'X--mode=compile'; do
523        shift        shift
524      done      done
525      shift      shift
# Line 533  cpp) Line 557  cpp)
557    
558  msvisualcpp)  msvisualcpp)
559    # Important note: in order to support this mode, a compiler *must*    # Important note: in order to support this mode, a compiler *must*
560    # always write the preprocessed file to stdout, regardless of -o,    # always write the preprocessed file to stdout.
   # because we must use -o when running libtool.  
561    "$@" || exit $?    "$@" || 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=" "    IFS=" "
572    for arg    for arg
573    do    do
574      case "$arg" in      case "$arg" in
575        -o)
576          shift
577          ;;
578        $object)
579          shift
580          ;;
581      "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")      "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
582          set fnord "$@"          set fnord "$@"
583          shift          shift
# Line 552  msvisualcpp) Line 590  msvisualcpp)
590          ;;          ;;
591      esac      esac
592    done    done
593    "$@" -E |    "$@" -E 2>/dev/null |
594    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
595    rm -f "$depfile"    rm -f "$depfile"
596    echo "$object : \\" > "$depfile"    echo "$object : \\" > "$depfile"
597    . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::    \1 \\:p' >> "$depfile"    sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::      \1 \\:p' >> "$depfile"
598    echo "        " >> "$depfile"    echo "        " >> "$depfile"
599    . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"    sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
600    rm -f "$tmpdepfile"    rm -f "$tmpdepfile"
601    ;;    ;;
602    
603    msvcmsys)
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    
610  none)  none)
611    exec "$@"    exec "$@"
612    ;;    ;;
# Line 580  exit 0 Line 625  exit 0
625  # eval: (add-hook 'write-file-hooks 'time-stamp)  # eval: (add-hook 'write-file-hooks 'time-stamp)
626  # time-stamp-start: "scriptversion="  # time-stamp-start: "scriptversion="
627  # time-stamp-format: "%:y-%02m-%02d.%02H"  # time-stamp-format: "%:y-%02m-%02d.%02H"
628  # time-stamp-end: "$"  # time-stamp-time-zone: "UTC"
629    # time-stamp-end: "; # UTC"
630  # End:  # End:

Legend:
Removed from v.912  
changed lines
  Added in v.945

svnadmin@ircd-hybrid.org
ViewVC Help
Powered by ViewVC 1.1.28