X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedepend.SH;h=296c9540451d4c0537f58193d2975bc87dae4e39;hb=42793c05a05499f6592114920af255acb5944481;hp=d474b724c2410fe17852a395ae27790cd5919d9c;hpb=2304df62caa7d9be70e8b8bcdb454e139c9c103d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedepend.SH b/makedepend.SH index d474b72..296c954 100755 --- a/makedepend.SH +++ b/makedepend.SH @@ -1,63 +1,42 @@ case $CONFIG in '') - if test ! -f config.sh; then - ln ../config.sh . || \ - ln ../../config.sh . || \ - ln ../../../config.sh . || \ - (echo "Can't find config.sh."; exit 1) - fi 2>/dev/null - . ./config.sh - ;; + if test -f config.sh; then TOP=.; + elif test -f ../config.sh; then TOP=..; + elif test -f ../../config.sh; then TOP=../..; + elif test -f ../../../config.sh; then TOP=../../..; + elif test -f ../../../../config.sh; then TOP=../../../..; + else + echo "Can't find config.sh."; exit 1 + fi + . $TOP/config.sh + ;; esac +: This forces SH files to create target in same directory as SH file. +: This is so that make depend always knows where to find SH derivatives. case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac echo "Extracting makedepend (with variable substitutions)" rm -f makedepend -$spitshell >makedepend <makedepend <<'!NO!SUBS!' +# makedepend.SH # -# $Log: makedepend.SH,v $ -# Revision 4.1 92/08/07 18:24:20 lwall -# -# Revision 4.0.1.4 92/06/08 13:51:24 lwall -# patch20: various and sundry fixes -# -# Revision 4.0.1.3 91/11/05 17:56:33 lwall -# patch11: various portability fixes -# -# Revision 4.0.1.2 91/06/07 15:40:06 lwall -# patch4: fixed cppstdin to run in the right directory -# -# Revision 4.0.1.1 91/06/07 11:20:06 lwall -# patch4: Makefile is no longer self-modifying code under makedepend -# -# Revision 4.0 91/03/20 01:27:04 lwall -# 4.0 baseline. -# -# export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh \$0; kill \$\$) -cat='$cat' -cppflags='$cppflags' -cp='$cp' -cppstdin='$cppstdin' -cppminus='$cppminus' -echo='$echo' -egrep='$egrep' -expr='$expr' -mv='$mv' -rm='$rm' -sed='$sed' -sort='$sort' -test='$test' -tr='$tr' -uniq='$uniq' -!GROK!THIS! - -$spitshell >>makedepend <<'!NO!SUBS!' +case $CONFIG in +'') + if test -f config.sh; then TOP=.; + elif test -f ../config.sh; then TOP=..; + elif test -f ../../config.sh; then TOP=../..; + elif test -f ../../../config.sh; then TOP=../../..; + elif test -f ../../../../config.sh; then TOP=../../../..; + else + echo "Can't find config.sh."; exit 1 + fi + . $TOP/config.sh + ;; +esac PATH="$PATH:." export PATH @@ -86,6 +65,11 @@ case "$defrule" in '') defrule='$(CC) -c $(CFLAGS)' ;; esac +: Create files in UU directory to avoid problems with long filenames +: on systems with 14 character filename limits so file.c.c and file.c +: might be identical +$test -d UU || mkdir UU + make clist || ($echo "Searching for .c files..."; \ $echo *.c | $tr ' ' '\012' | $egrep -v '\*' >.clist) for file in `$cat .clist`; do @@ -107,8 +91,8 @@ for file in `$cat .clist`; do -e 's|/\*.*$||' \ -e 's|\\$||' \ -e p \ - -e '}' ) >$file.c - $cppstdin $finc -I/usr/local/include -I. $cppflags $cppminus <$file.c | + -e '}' ) >UU/$file.c + $cppstdin $finc -I/usr/local/include -I. $cppflags $cppminus .shlist) if $test -s .deptmp; then for file in `cat .shlist`; do - $echo `$expr X$file : 'X\(.*\).SH'`: $file config.sh \; \ + $echo `$expr X$file : 'X\(.*\).SH'`: $file $TOP/config.sh \; \ /bin/sh $file >> .deptmp done $echo "Updating $mf..." @@ -150,14 +134,10 @@ else <.deptmp $sed -n 's|c:#include "\(.*\)".*$|o: \1|p' | \ $sed 's|^[^;]*/||' | \ $sed -f .hsed >> $mf.new - <.deptmp $sed -n 's|c:#include <\(.*\)>.*$|o: /usr/include/\1|p' \ - >> $mf.new <.deptmp $sed -n 's|h:#include "\(.*\)".*$|h: \1|p' | \ $sed -f .hsed >> $mf.new - <.deptmp $sed -n 's|h:#include <\(.*\)>.*$|h: /usr/include/\1|p' \ - >> $mf.new for file in `$cat .shlist`; do - $echo `$expr X$file : 'X\(.*\).SH'`: $file config.sh \; \ + $echo `$expr X$file : 'X\(.*\).SH'`: $file $TOP/config.sh \; \ /bin/sh $file >> $mf.new done fi @@ -166,7 +146,7 @@ $cp $mf $mf.old $cp $mf.new $mf $rm $mf.new $echo "# WARNING: Put nothing here or make depend will gobble it up!" >> $mf -$rm -f .deptmp `sed 's/\.c/.c.c/' .clist` .shlist .clist .hlist .hsed +$rm -rf .deptmp UU .shlist .clist .hlist .hsed !NO!SUBS! $eunicefix makedepend