Bug 1270229 - Add directory dependency on idl-parser; r?glandium draft
authorGregory Szorc <gps@mozilla.com>
Wed, 04 May 2016 11:48:37 -0700
changeset 363458 77e1c272105648a12e11defd74c6e2d37590c1a4
parent 362943 0a25833062a880f369e6f9f622413a94cc671bf4
child 363459 0ab077f0f81b97ca2234136d51939d8d8811246b
push id17208
push usergszorc@mozilla.com
push dateWed, 04 May 2016 19:20:01 +0000
reviewersglandium
bugs1270229
milestone49.0a1
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
config/recurse.mk
xpcom/xpidl/Makefile.in
--- 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)