mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Create dependencies using an awk script. Works much nicer in vpath
environments.
This commit is contained in:
parent
7ca4354c22
commit
ba4ddf32b4
2 changed files with 50 additions and 1 deletions
49
build/mkdep.awk
Normal file
49
build/mkdep.awk
Normal file
|
@ -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";
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue