Skip to content

Commit

Permalink
Bug 462463 - Stop using mddepend.pl. r=ted
Browse files Browse the repository at this point in the history
  • Loading branch information
glandium committed Apr 9, 2013
1 parent 59dacf8 commit 9a8ea8e
Show file tree
Hide file tree
Showing 13 changed files with 39 additions and 162 deletions.
1 change: 1 addition & 0 deletions build/cl.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ def InvokeClWithDependencyGeneration(cmdline):
f = open(depstarget, "w")
for dep in sorted(deps):
print >>f, "%s: %s" % (target, dep)
print >>f, "%s:" % dep

if __name__ == "__main__":
InvokeClWithDependencyGeneration(sys.argv[1:])
3 changes: 3 additions & 0 deletions config/expandlibs_exec.py
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,9 @@ def main():
with open(options.depend, 'w') as depfile:
depfile.write("%s : %s\n" % (options.target, ' '.join(dep for dep in deps if os.path.isfile(dep) and dep != options.target)))

for dep in deps:
if os.path.isfile(dep) and dep != options.target:
depfile.write("%s :\n" % dep)

if __name__ == '__main__':
main()
5 changes: 4 additions & 1 deletion config/expandlibs_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,7 @@ def generate(args):
if options.depend:
ensureParentDir(options.depend)
with open(options.depend, 'w') as depfile:
depfile.write("%s : %s\n" % (options.output, ' '.join(ExpandLibsDeps(args))))
deps = ExpandLibsDeps(args)
depfile.write("%s : %s\n" % (options.output, ' '.join(deps)))
for dep in deps:
depfile.write("%s :\n" % dep)
17 changes: 8 additions & 9 deletions config/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -987,17 +987,19 @@ define MAKE_DEPS_AUTO_CC
if test -d $(@D); then \
echo "Building deps for $< using Sun Studio cc"; \
$(CC) $(COMPILE_CFLAGS) -xM $< >$(_MDDEPFILE) ; \
$(PYTHON) $(topsrcdir)/build/unix/add_phony_targets.py $(_MDDEPFILE) ; \
fi
endef
define MAKE_DEPS_AUTO_CXX
if test -d $(@D); then \
echo "Building deps for $< using Sun Studio CC"; \
$(CXX) $(COMPILE_CXXFLAGS) -xM $< >$(_MDDEPFILE) ; \
$(PYTHON) $(topsrcdir)/build/unix/add_phony_targets.py $(_MDDEPFILE) ; \
fi
endef
endif # Sun Studio on Solaris

$(OBJS) $(HOST_OBJS): $(GLOBAL_DEPS)
$(OBJS) $(HOST_OBJS) $(PROGOBJS) $(HOST_PROGOBJS): $(GLOBAL_DEPS)

# Rules for building native targets must come first because of the host_ prefix
$(HOST_COBJS): host_%.$(OBJ_SUFFIX): %.c
Expand Down Expand Up @@ -1614,14 +1616,11 @@ ifneq (,$(filter-out all chrome default export realchrome tools clean clobber cl
MDDEPEND_FILES := $(strip $(wildcard $(foreach file,$(OBJS) $(PROGOBJS) $(HOST_OBJS) $(HOST_PROGOBJS) $(TARGETS) $(XPIDLSRCS:.idl=.h) $(XPIDLSRCS:.idl=.xpt),$(MDDEPDIR)/$(notdir $(file)).pp) $(addprefix $(MDDEPDIR)/,$(EXTRA_MDDEPEND_FILES))))

ifneq (,$(MDDEPEND_FILES))
# The script mddepend.pl checks the dependencies and writes to stdout
# one rule to force out-of-date objects. For example,
# foo.o boo.o: FORCE
# The script has an advantage over including the *.pp files directly
# because it handles the case when header files are removed from the build.
# 'make' would complain that there is no way to build missing headers.
ALL_PP_RESULTS = $(shell $(PERL) $(BUILD_TOOLS)/mddepend.pl - $(MDDEPEND_FILES))
$(eval $(ALL_PP_RESULTS))
ifdef .PYMAKE
includedeps $(MDDEPEND_FILES)
else
include $(MDDEPEND_FILES)
endif
endif

endif
Expand Down
2 changes: 1 addition & 1 deletion configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -7992,7 +7992,7 @@ dnl ========================================================
MOZ_ARG_HEADER(Build dependencies)

if test "$GNU_CC" -a "$GNU_CXX"; then
_DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(@F).pp)'
_DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
elif test "$SOLARIS_SUNPRO_CC"; then
_DEPEND_CFLAGS=
Expand Down
1 change: 1 addition & 0 deletions js/src/build/cl.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ def InvokeClWithDependencyGeneration(cmdline):
f = open(depstarget, "w")
for dep in sorted(deps):
print >>f, "%s: %s" % (target, dep)
print >>f, "%s:" % dep

if __name__ == "__main__":
InvokeClWithDependencyGeneration(sys.argv[1:])
139 changes: 0 additions & 139 deletions js/src/build/unix/mddepend.pl

This file was deleted.

3 changes: 3 additions & 0 deletions js/src/config/expandlibs_exec.py
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,9 @@ def main():
with open(options.depend, 'w') as depfile:
depfile.write("%s : %s\n" % (options.target, ' '.join(dep for dep in deps if os.path.isfile(dep) and dep != options.target)))

for dep in deps:
if os.path.isfile(dep) and dep != options.target:
depfile.write("%s :\n" % dep)

if __name__ == '__main__':
main()
5 changes: 4 additions & 1 deletion js/src/config/expandlibs_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,7 @@ def generate(args):
if options.depend:
ensureParentDir(options.depend)
with open(options.depend, 'w') as depfile:
depfile.write("%s : %s\n" % (options.output, ' '.join(ExpandLibsDeps(args))))
deps = ExpandLibsDeps(args)
depfile.write("%s : %s\n" % (options.output, ' '.join(deps)))
for dep in deps:
depfile.write("%s :\n" % dep)
17 changes: 8 additions & 9 deletions js/src/config/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -987,17 +987,19 @@ define MAKE_DEPS_AUTO_CC
if test -d $(@D); then \
echo "Building deps for $< using Sun Studio cc"; \
$(CC) $(COMPILE_CFLAGS) -xM $< >$(_MDDEPFILE) ; \
$(PYTHON) $(topsrcdir)/build/unix/add_phony_targets.py $(_MDDEPFILE) ; \
fi
endef
define MAKE_DEPS_AUTO_CXX
if test -d $(@D); then \
echo "Building deps for $< using Sun Studio CC"; \
$(CXX) $(COMPILE_CXXFLAGS) -xM $< >$(_MDDEPFILE) ; \
$(PYTHON) $(topsrcdir)/build/unix/add_phony_targets.py $(_MDDEPFILE) ; \
fi
endef
endif # Sun Studio on Solaris

$(OBJS) $(HOST_OBJS): $(GLOBAL_DEPS)
$(OBJS) $(HOST_OBJS) $(PROGOBJS) $(HOST_PROGOBJS): $(GLOBAL_DEPS)

# Rules for building native targets must come first because of the host_ prefix
$(HOST_COBJS): host_%.$(OBJ_SUFFIX): %.c
Expand Down Expand Up @@ -1614,14 +1616,11 @@ ifneq (,$(filter-out all chrome default export realchrome tools clean clobber cl
MDDEPEND_FILES := $(strip $(wildcard $(foreach file,$(OBJS) $(PROGOBJS) $(HOST_OBJS) $(HOST_PROGOBJS) $(TARGETS) $(XPIDLSRCS:.idl=.h) $(XPIDLSRCS:.idl=.xpt),$(MDDEPDIR)/$(notdir $(file)).pp) $(addprefix $(MDDEPDIR)/,$(EXTRA_MDDEPEND_FILES))))

ifneq (,$(MDDEPEND_FILES))
# The script mddepend.pl checks the dependencies and writes to stdout
# one rule to force out-of-date objects. For example,
# foo.o boo.o: FORCE
# The script has an advantage over including the *.pp files directly
# because it handles the case when header files are removed from the build.
# 'make' would complain that there is no way to build missing headers.
ALL_PP_RESULTS = $(shell $(PERL) $(BUILD_TOOLS)/mddepend.pl - $(MDDEPEND_FILES))
$(eval $(ALL_PP_RESULTS))
ifdef .PYMAKE
includedeps $(MDDEPEND_FILES)
else
include $(MDDEPEND_FILES)
endif
endif

endif
Expand Down
2 changes: 1 addition & 1 deletion js/src/configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -4020,7 +4020,7 @@ dnl ========================================================
MOZ_ARG_HEADER(Build dependencies)

if test "$GNU_CC" -a "$GNU_CXX"; then
_DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(@F).pp)'
_DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
elif test "$SOLARIS_SUNPRO_CC"; then
_DEPEND_CFLAGS=
Expand Down
4 changes: 3 additions & 1 deletion python/codegen/makeutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ def writeMakeDependOutput(filename):
f.write("%s:" % makeQuote(targets[0]))
for filename in dependencies:
f.write(' \\\n\t\t%s' % makeQuote(filename))
f.write('\n\n')
f.write('\n')
for filename in targets[1:]:
f.write('%s: %s\n' % (makeQuote(filename), makeQuote(targets[0])))
for filename in dependencies:
f.write('%s:\n' % filename)

2 changes: 2 additions & 0 deletions xpcom/idl-parser/header.py
Original file line number Diff line number Diff line change
Expand Up @@ -538,3 +538,5 @@ def emitTemplate(tmpl, tmpl_notxpcom=None):
deps = [dep.replace('\\', '/') for dep in idl.deps]

print >>depfd, "%s: %s" % (options.outfile, " ".join(deps))
for dep in deps:
print >>depfd, "%s:" % dep

0 comments on commit 9a8ea8e

Please sign in to comment.