]> granicus.if.org Git - php/commitdiff
Create dependencies using an awk script. Works much nicer in vpath
authorSascha Schumann <sas@php.net>
Thu, 24 Aug 2000 11:02:03 +0000 (11:02 +0000)
committerSascha Schumann <sas@php.net>
Thu, 24 Aug 2000 11:02:03 +0000 (11:02 +0000)
environments.

build/mkdep.awk [new file with mode: 0644]
build/rules.mk

diff --git a/build/mkdep.awk b/build/mkdep.awk
new file mode 100644 (file)
index 0000000..07f6dab
--- /dev/null
@@ -0,0 +1,49 @@
+{
+       top_srcdir=$1
+       top_builddir=$2
+       srcdir=$3
+       cmd=$4
+
+       for (i = 5; i <= NF; i++) {
+               if (match($i, "^-[A-Z]") == 0)
+                       break;
+               cmd=cmd " " $i
+       }
+
+       dif=i-1
+               
+       for (; i <= NF; i++)
+               filenames[i-dif]=$i
+       
+       no_files=NF-dif
+       
+       for(i = 1; i <= no_files; i++) {
+               if (system("test -r " filenames[i]) != 0)
+                       continue
+               
+               target=filenames[i]
+               sub(srcdir "/", "", target)
+               target2=target
+               sub("\.(c|cpp)$", ".lo", target);
+               sub("\.(c|cpp)$", ".slo", target2);
+               deplist=""
+
+               for (e in used)
+                       delete used[e]
+               
+               cmdx=cmd " " filenames[i]
+               while ((cmdx | getline) > 0) {
+                       sub(top_srcdir, "$(top_srcdir)", $0)
+                       sub(top_builddir, "$(top_builddir)", $0)
+                       if (match($0, "^# [0-9]* \".*\.h\"") != 0  \
+                                       && match($3, "^\"/") == 0          \
+                                       && !($3 in used)) {
+                               deplist=deplist " \\\n\t" substr($3,2,length($3)-2)
+                               used[$3] = 1;
+                       }
+               }
+
+               if (deplist != "")
+                       print target " " target2 ":" deplist "\n";
+       }
+} 
index 4bcfe3eb39cf5fcc7be08938e1b912238fadf68a..2cf850ccf29e30e9ccc178e3b7a4526e89860c89 100644 (file)
@@ -41,7 +41,7 @@ install-p: $(targets) $(install_targets)
 distclean-p depend-p clean-p:
 
 depend: depend-recursive
-       test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP)  $(INCLUDES) $(EXTRA_INCLUDES) *.c > $(builddir)/.deps
+       @echo $(top_srcdir) $(top_builddir) $(srcdir) $(CPP) $(INCLUDES) $(EXTRA_INCLUDES) $(DEFS) $(CPPFLAGS) $(srcdir)/*.c *.c | awk -f $(top_srcdir)/build/mkdep.awk > $(builddir)/.deps || true
 
 clean: clean-recursive clean-x