X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedepend.SH;h=4ab1ec3809e126ed542b00c8ac850c538a07d450;hb=dfbf5f78362393b20394ef8121e67084daebc171;hp=e26c50e09faeb358831d6ec1de99c37bcdea4753;hpb=b233458bd1d5037ce4bbbb41fb513e1b68522a4d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedepend.SH b/makedepend.SH index e26c50e..4ab1ec3 100755 --- a/makedepend.SH +++ b/makedepend.SH @@ -1,5 +1,5 @@ #! /bin/sh -case $CONFIGDOTSH 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) [src=$(src)] +# sh ./makedepend MAKE=$(MAKE) case "$1" in - MAKE=*) eval $1 ; shift ;; + MAKE=*) eval $1 ;; esac export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh \$0; kill \$\$) -case $CONFIGDOTSH in +case $PERL_CONFIG_SH in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; @@ -52,10 +55,6 @@ case $CONFIGDOTSH in ;; esac -case "$1" in - src=*) eval $1 ; shift ;; -esac - # We need .. when we are in the x2p directory if we are using the # cppstdin wrapper script. # Put .. and . first so that we pick up the present cppstdin, not @@ -100,18 +99,9 @@ esac : might be identical $test -d UU || mkdir UU -$MAKE clist || (cd $src; $echo "Searching for .c files..."; \ - $echo *.c | $tr ' ' $trnl | $egrep -v '\*') >.clist -for base in `$cat .clist`; do - case "$src" in - .) file="$base" ;; - *) if test -f "$base"; then - file="$base" - elif test -f "$src/$base"; then - file="$src/$base" - fi - ;; - esac +$MAKE clist || ($echo "Searching for .c files..."; \ + $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" @@ -119,23 +109,26 @@ for base in `$cat .clist`; do if [ "$osname" = os2 ]; then uwinfix="-e s,\\\\\\\\,/,g" else - if [ "$archname" = cygwin32 ]; then + if [ "$archname" = cygwin ]; then uwinfix="-e s,\\\\\\\\,/,g" else - uwinfix= + 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` ;; + esac + case "$file" in */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;; *) finc= ;; esac - case "$src" in - '') ;; - *) finc="-I$src" ;; - esac - basebase=`basename $base .c` - $echo "Finding dependencies for $basebase$_o." + $echo "Finding dependencies for $filebase$_o." ( $echo "#line 1 \"$file\""; \ $sed -n <$file \ -e "/^${filebase}_init(/q" \ @@ -144,25 +137,45 @@ for base in `$cat .clist`; do -e 's|/\*.*$||' \ -e 's|\\$||' \ -e p \ - -e '}' ) >UU/$base.c - $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/^.*"\(.*\)".*$/'$base'\$(OBJ_EXT): \1/' \ - -e 's/^# *[0-9][0-9]* \(.*\)$/'$base'\$(OBJ_EXT): \1/' \ - -e 's|: \./|: |' \ - -e 's|\.c\.c|.c|' $uwinfix | \ - $uniq | $sort | $uniq >> .deptmp + -e '}' ) >UU/$file.c + 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 '/: 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 || (cd $src; $echo "Searching for .SH files..."; \ - $echo *.SH | $tr ' ' $trnl | $egrep -v '\*') >.shlist +$MAKE shlist || ($echo "Searching for .SH files..."; \ + $echo *.SH | $tr ' ' $trnl | $egrep -v '\*' >.shlist) # Now extract the dependencies on makedepend.SH and Makefile.SH # (they should reside in the main Makefile): @@ -191,8 +204,8 @@ if $test -s .deptmp; then $sed 's|^\(.*\$(OBJ_EXT):\) *\(.*/.*\.c\) *$|\1 \2; '"$defrule \2|" .deptmp \ >>$mf.new else - $MAKE hlist || (cd $src; $echo "Searching for .h files..."; \ - $echo *.h | $tr ' ' $trnl | $egrep -v '\*') >.hlist + $MAKE hlist || ($echo "Searching for .h files..."; \ + $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..."