summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2000-08-24 11:02:03 +0000
committerSascha Schumann <sas@php.net>2000-08-24 11:02:03 +0000
commitba4ddf32b4cf0dd15d8d3baab35dbf79c4ee37cd (patch)
treea17cbfc57081fe7fb859eccd7adeb6a2b00fbff2 /build
parent7ca4354c221c96f7021f9515489abfaafb9f1fa1 (diff)
downloadphp-git-ba4ddf32b4cf0dd15d8d3baab35dbf79c4ee37cd.tar.gz
Create dependencies using an awk script. Works much nicer in vpath
environments.
Diffstat (limited to 'build')
-rw-r--r--build/mkdep.awk49
-rw-r--r--build/rules.mk2
2 files changed, 50 insertions, 1 deletions
diff --git a/build/mkdep.awk b/build/mkdep.awk
new file mode 100644
index 0000000000..07f6dab6fa
--- /dev/null
+++ b/build/mkdep.awk
@@ -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";
+ }
+}
diff --git a/build/rules.mk b/build/rules.mk
index 4bcfe3eb39..2cf850ccf2 100644
--- a/build/rules.mk
+++ b/build/rules.mk
@@ -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