[BACK]Return to depcomp CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp

Annotation of OpenXM_contrib/gmp/depcomp, Revision 1.1

1.1     ! maekawa     1: #! /bin/sh
        !             2:
        !             3: # depcomp - compile a program generating dependencies as side-effects
        !             4: # Copyright (C) 1999 Free Software Foundation, Inc.
        !             5:
        !             6: # This program is free software; you can redistribute it and/or modify
        !             7: # it under the terms of the GNU General Public License as published by
        !             8: # the Free Software Foundation; either version 2, or (at your option)
        !             9: # any later version.
        !            10:
        !            11: # This program is distributed in the hope that it will be useful,
        !            12: # but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            14: # GNU General Public License for more details.
        !            15:
        !            16: # You should have received a copy of the GNU General Public License
        !            17: # along with this program; if not, write to the Free Software
        !            18: # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
        !            19: # 02111-1307, USA.
        !            20:
        !            21: # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
        !            22:
        !            23: if test -z "$depmode" || test -z "$source" || test -z "$object"; then
        !            24:   echo "depcomp: Variables source, object and depmode must be set" 1>&2
        !            25:   exit 1
        !            26: fi
        !            27: # `libtool' can also be set to `yes' or `no'.
        !            28:
        !            29: depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
        !            30: tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
        !            31:
        !            32: rm -f "$tmpdepfile"
        !            33:
        !            34: # Some modes work just like other modes, but use different flags.  We
        !            35: # parameterize here, but still list the modes in the big case below,
        !            36: # to make depend.m4 easier to write.  Note that we *cannot* use a case
        !            37: # here, because this file can only contain one case statement.
        !            38: if test "$depmode" = hp; then
        !            39:   # HP compiler uses -M and no extra arg.
        !            40:   gccflag=-M
        !            41:   depmode=gcc
        !            42: fi
        !            43:
        !            44: if test "$depmode" = dashXmstdout; then
        !            45:    # This is just like dashmstdout with a different argument.
        !            46:    dashmflag=-xM
        !            47:    depmode=dashmstdout
        !            48: fi
        !            49:
        !            50: case "$depmode" in
        !            51: gcc)
        !            52: ## There are various ways to get dependency output from gcc.  Here's
        !            53: ## why we pick this rather obscure method:
        !            54: ## - Don't want to use -MD because we'd like the dependencies to end
        !            55: ##   up in a subdir.  Having to rename by hand is ugly.
        !            56: ##   (We might end up doing this anyway to support other compilers.)
        !            57: ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
        !            58: ##   -MM, not -M (despite what the docs say).
        !            59: ## - Using -M directly means running the compiler twice (even worse
        !            60: ##   than renaming).
        !            61:   if test -z "$gccflag"; then
        !            62:     gccflag=-MD,
        !            63:   fi
        !            64:   if "$@" -Wp,"$gccflag$tmpdepfile"; then :
        !            65:   else
        !            66:     stat=$?
        !            67:     rm -f "$tmpdepfile"
        !            68:     exit $stat
        !            69:   fi
        !            70:   rm -f "$depfile"
        !            71:   echo "$object : \\" > "$depfile"
        !            72:   sed 's/^[^:]*: / /' < "$tmpdepfile" >> "$depfile"
        !            73: ## This next piece of magic avoids the `deleted header file' problem.
        !            74: ## The problem is that when a header file which appears in a .P file
        !            75: ## is deleted, the dependency causes make to die (because there is
        !            76: ## typically no way to rebuild the header).  We avoid this by adding
        !            77: ## dummy dependencies for each header file.  Too bad gcc doesn't do
        !            78: ## this for us directly.
        !            79:   tr ' ' '
        !            80: ' < "$tmpdepfile" |
        !            81: ## Some versions of gcc put a space before the `:'.  On the theory
        !            82: ## that the space means something, we add a space to the output as
        !            83: ## well.
        !            84: ## Some versions of the HPUX 10.20 sed can't process this invocation
        !            85: ## correctly.  Breaking it into two sed invocations is a workaround.
        !            86:     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
        !            87:   rm -f "$tmpdepfile"
        !            88:   ;;
        !            89:
        !            90: hp)
        !            91:   # This case exists only to let depend.m4 do its work.  It works by
        !            92:   # looking at the text of this script.  This case will never be run,
        !            93:   # since it is checked for above.
        !            94:   exit 1
        !            95:   ;;
        !            96:
        !            97: dashmd)
        !            98:   # The Java front end to gcc doesn't run cpp, so we can't use the -Wp
        !            99:   # trick.  Instead we must use -M and then rename the resulting .d
        !           100:   # file.  This is also the case for older versions of gcc, which
        !           101:   # don't implement -Wp.
        !           102:   if "$@" -MD; then :
        !           103:   else
        !           104:     stat=$?
        !           105:     rm -f FIXME
        !           106:     exit $stat
        !           107:   fi
        !           108:   FIXME: rewrite the file
        !           109:   ;;
        !           110:
        !           111: sgi)
        !           112:   if test "$libtool" = yes; then
        !           113:     "$@" "-Wc,-MDupdate,$tmpdepfile"
        !           114:   else
        !           115:     "$@" -MDupdate "$tmpdepfile"
        !           116:   fi
        !           117:   stat=$?
        !           118:   if test $stat -eq 0; then :
        !           119:   else
        !           120:     stat=$?
        !           121:     rm -f "$tmpdepfile"
        !           122:     exit $stat
        !           123:   fi
        !           124:   rm -f "$depfile"
        !           125:   echo "$object : \\" > "$depfile"
        !           126:   sed 's/^[^:]*: / /' < "$tmpdepfile" >> "$depfile"
        !           127:   tr ' ' '
        !           128: ' < "$tmpdepfile" | \
        !           129: ## Some versions of the HPUX 10.20 sed can't process this invocation
        !           130: ## correctly.  Breaking it into two sed invocations is a workaround.
        !           131:     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
        !           132:   rm -f "$tmpdepfile"
        !           133:   ;;
        !           134:
        !           135: #nosideeffect)
        !           136:   # This comment above is used by automake to tell side-effect
        !           137:   # dependency tracking mechanisms from slower ones.
        !           138:
        !           139: dashmstdout)
        !           140:   # Important note: in order to support this mode, a compiler *must*
        !           141:   # always write the proprocessed file to stdout, regardless of -o,
        !           142:   # because we must use -o when running libtool.
        !           143:   test -z "$dashmflag" && dashmflag=-M
        !           144:   ( IFS=" "
        !           145:     case " $* " in
        !           146:     *" --mode=compile "*) # this is libtool, let us make it quiet
        !           147:       for arg
        !           148:       do # cycle over the arguments
        !           149:         case "$arg" in
        !           150:        "--mode=compile")
        !           151:          # insert --quiet before "--mode=compile"
        !           152:          set fnord "$@" --quiet
        !           153:          shift # fnord
        !           154:          ;;
        !           155:        esac
        !           156:        set fnord "$@" "$arg"
        !           157:        shift # fnord
        !           158:        shift # "$arg"
        !           159:       done
        !           160:       ;;
        !           161:     esac
        !           162:     "$@" $dashmflag | sed 's:^[^:]*\:[         ]*:'"$object"'\: :' > "$tmpdepfile"
        !           163:   ) &
        !           164:   proc=$!
        !           165:   "$@"
        !           166:   stat=$?
        !           167:   wait "$proc"
        !           168:   if test "$stat" != 0; then exit $stat; fi
        !           169:   rm -f "$depfile"
        !           170:   cat < "$tmpdepfile" > "$depfile"
        !           171:   tr ' ' '
        !           172: ' < "$tmpdepfile" | \
        !           173: ## Some versions of the HPUX 10.20 sed can't process this invocation
        !           174: ## correctly.  Breaking it into two sed invocations is a workaround.
        !           175:     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
        !           176:   rm -f "$tmpdepfile"
        !           177:   ;;
        !           178:
        !           179: dashXmstdout)
        !           180:   # This case only exists to satisfy depend.m4.  It is never actually
        !           181:   # run, as this mode is specially recognized in the preamble.
        !           182:   exit 1
        !           183:   ;;
        !           184:
        !           185: makedepend)
        !           186:   # X makedepend
        !           187:   (
        !           188:     shift
        !           189:     cleared=no
        !           190:     for arg in "$@"; do
        !           191:       case $cleared in no)
        !           192:         set ""; shift
        !           193:        cleared=yes
        !           194:       esac
        !           195:       case "$arg" in
        !           196:         -D*|-I*)
        !           197:          set fnord "$@" "$arg"; shift;;
        !           198:        -*)
        !           199:          ;;
        !           200:        *)
        !           201:          set fnord "$@" "$arg"; shift;;
        !           202:       esac
        !           203:     done
        !           204:     obj_suffix="`echo $object | sed 's/^.*\././'`"
        !           205:     touch "$tmpdepfile"
        !           206:     ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
        !           207:   ) &
        !           208:   proc=$!
        !           209:   "$@"
        !           210:   stat=$?
        !           211:   wait "$proc"
        !           212:   if test "$stat" != 0; then exit $stat; fi
        !           213:   rm -f "$depfile"
        !           214:   cat < "$tmpdepfile" > "$depfile"
        !           215:   tail +3 "$tmpdepfile" | tr ' ' '
        !           216: ' | \
        !           217: ## Some versions of the HPUX 10.20 sed can't process this invocation
        !           218: ## correctly.  Breaking it into two sed invocations is a workaround.
        !           219:     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
        !           220:   rm -f "$tmpdepfile" "$tmpdepfile".bak
        !           221:   ;;
        !           222:
        !           223: cpp)
        !           224:   # Important note: in order to support this mode, a compiler *must*
        !           225:   # always write the proprocessed file to stdout, regardless of -o,
        !           226:   # because we must use -o when running libtool.
        !           227:   ( IFS=" "
        !           228:     case " $* " in
        !           229:     *" --mode=compile "*)
        !           230:       for arg
        !           231:       do # cycle over the arguments
        !           232:         case "$arg" in
        !           233:        "--mode=compile")
        !           234:          # insert --quiet before "--mode=compile"
        !           235:          set fnord "$@" --quiet
        !           236:          shift # fnord
        !           237:          ;;
        !           238:        esac
        !           239:        set fnord "$@" "$arg"
        !           240:        shift # fnord
        !           241:        shift # "$arg"
        !           242:       done
        !           243:       ;;
        !           244:     esac
        !           245:     "$@" -E |
        !           246:     sed -n '/^# [0-9][0-9]* "\([^"]*\)"/ s::'"$object"'\: \1:p' > "$tmpdepfile"
        !           247:   ) &
        !           248:   proc=$!
        !           249:   "$@"
        !           250:   stat=$?
        !           251:   wait "$proc"
        !           252:   if test "$stat" != 0; then exit $stat; fi
        !           253:   rm -f "$depfile"
        !           254:   cat < "$tmpdepfile" > "$depfile"
        !           255:   sed < "$tmpdepfile" -e 's/^[^:]*: //' -e 's/$/ :/' >> "$depfile"
        !           256:   rm -f "$tmpdepfile"
        !           257:   ;;
        !           258:
        !           259: none)
        !           260:   exec "$@"
        !           261:   ;;
        !           262:
        !           263: *)
        !           264:   echo "Unknown depmode $depmode" 1>&2
        !           265:   exit 1
        !           266:   ;;
        !           267: esac
        !           268:
        !           269: exit 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>