Bug 1270229 - Add directory dependency on idl-parser; r?glandium
SUBMAKE is somewhat evil. Eliminate the SUBMAKE for generating
idl-parser files by properly adding a directory traversal dependency
to ensure the idl-parser files are generated before processing XPIDL
files.
This possibly also eliminates a race condition where
xpcom/idl-parser/xpidl:export could get processes at the same time.
MozReview-Commit-ID: LmBNF2r8T9Y
--- a/config/recurse.mk
+++ b/config/recurse.mk
@@ -139,16 +139,19 @@ recurse:
@$(RECURSED_COMMAND)
$(LOOP_OVER_DIRS)
ifeq (.,$(DEPTH))
# Interdependencies for parallel export.
js/xpconnect/src/export: dom/bindings/export xpcom/xpidl/export
accessible/xpcom/export: xpcom/xpidl/export
+# XPIDL generation requires the idl-parser files to be generated.
+xpcom/xpidl/export: xpcom/idl-parser/xpidl/export
+
# The widget binding generator code is part of the annotationProcessors.
widget/android/bindings/export: build/annotationProcessors/export
# The roboextender addon includes a classes.dex containing a test Java addon.
# The test addon must be built first.
mobile/android/tests/browser/robocop/roboextender/tools: mobile/android/tests/javaaddons/tools
ifdef ENABLE_CLANG_PLUGIN
--- a/xpcom/xpidl/Makefile.in
+++ b/xpcom/xpidl/Makefile.in
@@ -1,11 +1,10 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
export::
- $(call SUBMAKE,xpidllex.py,$(DEPTH)/xpcom/idl-parser/xpidl)
$(call py_action,process_install_manifest,$(DIST)/idl $(DEPTH)/_build_manifests/install/dist_idl)
$(call SUBMAKE,xpidl,$(DEPTH)/config/makefiles/xpidl)
clean clobber realclean clobber_all distclean::
$(call SUBMAKE,$@,$(DEPTH)/config/makefiles/xpidl)