Integrate mainline (Win2k/MinGW all ok except threads/t/end.t)
[p5sagit/p5-mst-13.2.git] / makedepend.SH
index e1c2846..0806021 100755 (executable)
@@ -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=..;
@@ -37,7 +37,7 @@ 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=..;
@@ -58,6 +58,10 @@ esac
 PATH=".$path_sep..$path_sep$PATH"
 export PATH
 
+case "$osname" in
+amigaos) cat=/bin/cat ;; # must be absolute
+esac
+
 $cat /dev/null >.deptmp
 $rm -f *.c.c c/*.c.c
 if test -f Makefile; then
@@ -99,19 +103,14 @@ $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"
-       else
-               if [ "$osname" = os2 ]; then
-                       uwinfix="-e s,\\\\\\\\,/,g"
-               else
-                       if [ "$archname" = cygwin32 ]; then
-                               uwinfix="-e s,\\\\\\\\,/,g"
-                       else
-                               uwinfix=
-                       fi
-               fi
-       fi
+    case "$osname" in
+    uwin)     uwinfix="-e s,\\\\\\\\,/,g -e s,\\([a-zA-Z]\\):/,/\\1/,g" ;;
+    os2)      uwinfix="-e s,\\\\\\\\,/,g" ;;
+    cygwin)   uwinfix="-e s,\\\\\\\\,/,g" ;;
+    posix-bc) uwinfix="-e s/\\*POSIX(\\(.*\\))/\\1/" ;;
+    vos)      uwinfix="-e s/\#/\\\#/" ;;
+    *)        uwinfix="" ;;
+    esac
     case "$file" in
     *.c) filebase=`basename $file .c` ;;
     *.y) filebase=`basename $file .y` ;;
@@ -130,18 +129,37 @@ for file in `$cat .clist`; do
        -e 's|\\$||' \
        -e p \
        -e '}' ) >UU/$file.c
-    $cppstdin $finc -I. $cppflags $cppminus <UU/$file.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|: \./|: |' \
-       -e 's|\.c\.c|.c|' $uwinfix | \
-    $uniq | $sort | $uniq >> .deptmp
+    if [ "$osname" = os390 ]; then
+        $cppstdin $finc -I. $cppflags $cppminus <UU/$file.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|: \./|: |' \
+           -e 's|\.c\.c|.c|' $uwinfix | \
+        $uniq | $sort | $uniq >> .deptmp
+    else
+        $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c 2>&1 |
+        $sed \
+           -e '1d' \
+           -e '/^#.*<stdin>/d' \
+            -e '/^#.*<builtin>/d' \
+            -e '/^#.*<command line>/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'