diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-07-25 12:27:20 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-07-25 12:27:20 +0000 |
commit | b233458bd1d5037ce4bbbb41fb513e1b68522a4d (patch) | |
tree | c536cfd69a2b5a6fd972074b496e5ef5473cc69c /makedepend.SH | |
parent | 781b178c230df22350b5995b4bfdfeb294912a39 (diff) | |
download | perl-b233458bd1d5037ce4bbbb41fb513e1b68522a4d.tar.gz |
First steps of making builds outside the source
directory possible. These should get us as far
as miniperl, then building DynaLoader falls into
tiny twinkling pieces as MakeMaker knows nothing
of VPATH mindset.
p4raw-id: //depot/cfgperl@3735
Diffstat (limited to 'makedepend.SH')
-rwxr-xr-x | makedepend.SH | 51 |
1 files changed, 33 insertions, 18 deletions
diff --git a/makedepend.SH b/makedepend.SH index e1c28468bd..e26c50e09f 100755 --- a/makedepend.SH +++ b/makedepend.SH @@ -26,13 +26,14 @@ $startsh # MAKE=$make trnl='$trnl' +src=$src !GROK!THIS! $spitshell >>makedepend <<'!NO!SUBS!' # This script should be called with -# sh ./makedepend MAKE=$(MAKE) +# sh ./makedepend MAKE=$(MAKE) [src=$(src)] case "$1" in - MAKE=*) eval $1 ;; + MAKE=*) eval $1 ; shift ;; esac export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh \$0; kill \$\$) @@ -51,6 +52,10 @@ 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 @@ -95,9 +100,18 @@ esac : might be identical $test -d UU || mkdir UU -$MAKE clist || ($echo "Searching for .c files..."; \ - $echo *.c | $tr ' ' $trnl | $egrep -v '\*' >.clist) -for file in `$cat .clist`; do +$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 # for file in `cat /dev/null`; do if [ "$osname" = uwin ]; then uwinfix="-e s,\\\\\\\\,/,g -e s,\\([a-zA-Z]\\):/,/\\1/,g" @@ -113,14 +127,15 @@ for file in `$cat .clist`; do 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 - $echo "Finding dependencies for $filebase$_o." + case "$src" in + '') ;; + *) finc="-I$src" ;; + esac + basebase=`basename $base .c` + $echo "Finding dependencies for $basebase$_o." ( $echo "#line 1 \"$file\""; \ $sed -n <$file \ -e "/^${filebase}_init(/q" \ @@ -129,16 +144,16 @@ for file in `$cat .clist`; do -e 's|/\*.*$||' \ -e 's|\\$||' \ -e p \ - -e '}' ) >UU/$file.c - $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c | + -e '}' ) >UU/$base.c + $cppstdin $finc -I. $cppflags $cppminus <UU/$base.c | $sed \ -e '/^#.*<stdin>/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/^.*"\(.*\)".*$/'$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 @@ -146,8 +161,8 @@ done $sed <$mf >$mf.new -e '1,/^# AUTOMATICALLY/!d' -$MAKE shlist || ($echo "Searching for .SH files..."; \ - $echo *.SH | $tr ' ' $trnl | $egrep -v '\*' >.shlist) +$MAKE shlist || (cd $src; $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): @@ -176,8 +191,8 @@ if $test -s .deptmp; then $sed 's|^\(.*\$(OBJ_EXT):\) *\(.*/.*\.c\) *$|\1 \2; '"$defrule \2|" .deptmp \ >>$mf.new else - $MAKE hlist || ($echo "Searching for .h files..."; \ - $echo *.h | $tr ' ' $trnl | $egrep -v '\*' >.hlist) + $MAKE hlist || (cd $src; $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..." |