diff options
author | Sascha Schumann <sas@php.net> | 2000-08-24 11:02:03 +0000 |
---|---|---|
committer | Sascha Schumann <sas@php.net> | 2000-08-24 11:02:03 +0000 |
commit | ba4ddf32b4cf0dd15d8d3baab35dbf79c4ee37cd (patch) | |
tree | a17cbfc57081fe7fb859eccd7adeb6a2b00fbff2 /build | |
parent | 7ca4354c221c96f7021f9515489abfaafb9f1fa1 (diff) | |
download | php-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.awk | 49 | ||||
-rw-r--r-- | build/rules.mk | 2 |
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 |