X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedepend.SH;h=035581023cf5c7211c1cec0e9071ba41531c46a0;hb=bbd5c0f5ad81733b079008f34cd05cd9aef7d917;hp=336d24cdbddab67bbf6bc88c3263cd6e18a771e0;hpb=2d9864fedb1b306ba5d850c407606a1466c433e1;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedepend.SH b/makedepend.SH index 336d24c..0355810 100755 --- a/makedepend.SH +++ b/makedepend.SH @@ -1,5 +1,5 @@ #! /bin/sh -case $CONFIG in +case $PERL_CONFIG_SH in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; @@ -18,6 +18,10 @@ case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac +case "$osname" in +amigaos) cat=/bin/cat ;; # must be absolute +esac + echo "Extracting makedepend (with variable substitutions)" rm -f makedepend $spitshell >makedepend <>makedepend <<'!NO!SUBS!' +# This script should be called with +# sh ./makedepend MAKE=$(MAKE) +case "$1" in + MAKE=*) eval $1 ;; +esac + export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh \$0; kill \$\$) -case $CONFIG in +case $PERL_CONFIG_SH in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; @@ -48,7 +59,7 @@ esac # cppstdin wrapper script. # Put .. and . first so that we pick up the present cppstdin, not # an older one lying about in /usr/local/bin. -PATH=".:..:$PATH" +PATH=".$path_sep..$path_sep$PATH" export PATH $cat /dev/null >.deptmp @@ -56,6 +67,13 @@ $rm -f *.c.c c/*.c.c if test -f Makefile; then rm -f $firstmakefile cp Makefile $firstmakefile + # On QNX, 'cp' preserves timestamp, so $firstmakefile appears + # to be out of date. I don't know if OS/2 has touch, so do this: + case "$osname" in + os2) ;; + netbsd) ;; + *) $touch $firstmakefile ;; + esac fi mf=$firstmakefile if test -f $mf; then @@ -82,9 +100,26 @@ esac $test -d UU || mkdir UU $MAKE clist || ($echo "Searching for .c files..."; \ - $echo *.c | $tr ' ' '\012' | $egrep -v '\*' >.clist) + $echo *.c | $tr ' ' $trnl | $egrep -v '\*' >.clist) for file in `$cat .clist`; do # for file in `cat /dev/null`; do + if [ "$osname" = uwin ]; then + uwinfix="-e s,\\\\\\\\,/,g -e s,\\([a-zA-Z]\\):/,/\\1/,g" + else + if [ "$osname" = os2 ]; then + uwinfix="-e s,\\\\\\\\,/,g" + else + if [ "$archname" = cygwin ]; then + uwinfix="-e s,\\\\\\\\,/,g" + else + if [ "$osname" = posix-bc ]; then + uwinfix="-e s/\\*POSIX(\\(.*\\))/\\1/" + else + uwinfix= + fi + fi + fi + fi case "$file" in *.c) filebase=`basename $file .c` ;; *.y) filebase=`basename $file .y` ;; @@ -93,7 +128,7 @@ for file in `$cat .clist`; do */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;; *) finc= ;; esac - $echo "Finding dependencies for $filebase$obj_ext." + $echo "Finding dependencies for $filebase$_o." ( $echo "#line 1 \"$file\""; \ $sed -n <$file \ -e "/^${filebase}_init(/q" \ @@ -103,30 +138,61 @@ for file in `$cat .clist`; do -e 's|\\$||' \ -e p \ -e '}' ) >UU/$file.c - $cppstdin $finc -I/usr/local/include -I. $cppflags $cppminus /d' \ - -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \ - -e 's/^[ ]*#[ ]*line/#/' \ - -e '/^# *[0-9][0-9]* *[".\/]/!d' \ - -e 's/^.*"\(.*\)".*$/'$filebase'\$(OBJ_EXT): \1/' \ - -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'\$(OBJ_EXT): \1/' \ - -e 's|: \./|: |' \ - -e 's|\.c\.c|.c|' | \ - $uniq | $sort | $uniq >> .deptmp + if [ "$osname" = os390 ]; then + if [ "$file" = perly.c ]; then + $echo '#endif' >>UU/$file.c + fi + $cppstdin $finc -I. $cppflags $cppminus /d' \ + -e '/^#.*"-"/d' \ + -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \ + -e 's/^[ ]*#[ ]*line/#/' \ + -e '/^# *[0-9][0-9]* *[".\/]/!d' \ + -e 's/^.*"\(.*\)".*$/'$filebase'\$(OBJ_EXT): \1/' \ + -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'\$(OBJ_EXT): \1/' \ + -e 's|: \./|: |' \ + -e 's|\.c\.c|.c|' $uwinfix | \ + $uniq | $sort | $uniq >> .deptmp + else + $cppstdin $finc -I. $cppflags $cppminus &1 | + $sed \ + -e '1d' \ + -e '/^#.*/d' \ + -e '/^#.*/d' \ + -e '/^#.*/d' \ + -e '/^#.*"-"/d' \ + -e '/: file path prefix .* never used$/d' \ + -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \ + -e 's/^[ ]*#[ ]*line/#/' \ + -e '/^# *[0-9][0-9]* *[".\/]/!d' \ + -e 's/^.*"\(.*\)".*$/'$filebase'\$(OBJ_EXT): \1/' \ + -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'\$(OBJ_EXT): \1/' \ + -e 's|: \./|: |' \ + -e 's|\.c\.c|.c|' $uwinfix | \ + $uniq | $sort | $uniq >> .deptmp + fi done $sed <$mf >$mf.new -e '1,/^# AUTOMATICALLY/!d' $MAKE shlist || ($echo "Searching for .SH files..."; \ - $echo *.SH | $tr ' ' '\012' | $egrep -v '\*' >.shlist) + $echo *.SH | $tr ' ' $trnl | $egrep -v '\*' >.shlist) # Now extract the dependencies on makedepend.SH and Makefile.SH # (they should reside in the main Makefile): +rm -f .shlist.old mv .shlist .shlist.old $egrep -v '^makedepend\.SH' <.shlist.old >.shlist +rm -f .shlist.old mv .shlist .shlist.old $egrep -v '^Makefile\.SH' <.shlist.old >.shlist +rm -f .shlist.old +mv .shlist .shlist.old +$egrep -v '^perl_exp\.SH' <.shlist.old >.shlist +rm -f .shlist.old +mv .shlist .shlist.old +$egrep -v '^config_h\.SH' <.shlist.old >.shlist rm .shlist.old if $test -s .deptmp; then @@ -141,7 +207,7 @@ if $test -s .deptmp; then >>$mf.new else $MAKE hlist || ($echo "Searching for .h files..."; \ - $echo *.h | $tr ' ' '\012' | $egrep -v '\*' >.hlist) + $echo *.h | $tr ' ' $trnl | $egrep -v '\*' >.hlist) $echo "You don't seem to have a proper C preprocessor. Using grep instead." $egrep '^#include ' `cat .clist` `cat .hlist` >.deptmp $echo "Updating $mf..."