# 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/. DEPTH = @DEPTH@ topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ MODULE = dom LIBRARY_NAME = dombindings_s LIBXUL_LIBRARY = 1 FORCE_STATIC_LIB = 1 EXPORT_LIBRARY = 1 FAIL_ON_WARNINGS := 1 include $(topsrcdir)/config/config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk # Need this to find all our DOM source files. include $(topsrcdir)/dom/dom-config.mk include $(topsrcdir)/dom/webidl/WebIDL.mk binding_include_path := mozilla/dom all_webidl_files = $(webidl_files) $(generated_webidl_files) # Set exported_binding_headers before adding the test IDL to the mix exported_binding_headers := $(subst .webidl,Binding.h,$(all_webidl_files)) # Set linked_binding_cpp_files before adding the test IDL to the mix linked_binding_cpp_files := $(subst .webidl,Binding.cpp,$(all_webidl_files)) all_webidl_files += $(test_webidl_files) binding_header_files := $(subst .webidl,Binding.h,$(all_webidl_files)) binding_cpp_files := $(subst .webidl,Binding.cpp,$(all_webidl_files)) globalgen_targets := \ PrototypeList.h \ RegisterBindings.h \ RegisterBindings.cpp \ UnionTypes.h \ UnionTypes.cpp \ UnionConversions.h \ $(NULL) CPPSRCS = \ $(linked_binding_cpp_files) \ $(filter %.cpp, $(globalgen_targets)) \ BindingUtils.cpp \ CallbackInterface.cpp \ CallbackObject.cpp \ DOMJSProxyHandler.cpp \ $(NULL) EXPORTS_NAMESPACES = $(binding_include_path) mozilla EXPORTS_mozilla = \ ErrorResult.h \ $(NULL) EXPORTS_$(binding_include_path) = \ BindingDeclarations.h \ BindingUtils.h \ CallbackFunction.h \ CallbackInterface.h \ CallbackObject.h \ DOMJSClass.h \ DOMJSProxyHandler.h \ Errors.msg \ NonRefcountedDOMObject.h \ Nullable.h \ PrimitiveConversions.h \ PrototypeList.h \ RegisterBindings.h \ TypedArray.h \ UnionConversions.h \ UnionTypes.h \ $(exported_binding_headers) \ $(NULL) LOCAL_INCLUDES += -I$(topsrcdir)/js/xpconnect/src \ -I$(topsrcdir)/js/xpconnect/wrappers \ -I$(topsrcdir)/content/canvas/src \ -I$(topsrcdir)/content/html/content/src \ -I$(topsrcdir)/media/webrtc/signaling/src/peerconnection \ -I$(topsrcdir)/dom/base \ -I$(topsrcdir)/content/xslt/src/base \ -I$(topsrcdir)/content/xslt/src/xpath \ -I$(topsrcdir)/content/xml/content/src \ -I$(topsrcdir)/content/xul/content/src \ $(NULL) include $(topsrcdir)/config/rules.mk # If you change bindinggen_dependencies here, change it in # dom/bindings/test/Makefile.in too. bindinggen_dependencies := \ BindingGen.py \ Bindings.conf \ Configuration.py \ Codegen.py \ parser/WebIDL.py \ ParserResults.pkl \ $(GLOBAL_DEPS) \ $(NULL) CSS2Properties.webidl: $(topsrcdir)/layout/style/nsCSSPropList.h \ $(topsrcdir)/layout/style/nsCSSPropAliasList.h \ $(webidl_base)/CSS2Properties.webidl.in \ $(webidl_base)/CSS2PropertiesProps.h \ $(srcdir)/GenerateCSS2PropertiesWebIDL.py \ $(GLOBAL_DEPS) $(CPP) $(DEFINES) $(ACDEFINES) -I$(topsrcdir)/layout/style $(webidl_base)/CSS2PropertiesProps.h | \ PYTHONDONTWRITEBYTECODE=1 $(PYTHON) \ $(srcdir)/GenerateCSS2PropertiesWebIDL.py $(webidl_base)/CSS2Properties.webidl.in > CSS2Properties.webidl $(webidl_files): %: $(webidl_base)/% $(INSTALL) $(IFLAGS1) $(webidl_base)/$* . $(test_webidl_files): %: $(srcdir)/test/% $(INSTALL) $(IFLAGS1) $(srcdir)/test/$* . $(binding_header_files): %Binding.h: $(bindinggen_dependencies) \ %.webidl \ $(NULL) PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \ $(PLY_INCLUDE) -I$(srcdir)/parser \ $(srcdir)/BindingGen.py header \ $(srcdir)/Bindings.conf $*Binding \ $*.webidl $(binding_cpp_files): %Binding.cpp: $(bindinggen_dependencies) \ %.webidl \ $(NULL) PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \ $(PLY_INCLUDE) -I$(srcdir)/parser \ $(srcdir)/BindingGen.py cpp \ $(srcdir)/Bindings.conf $*Binding \ $*.webidl $(globalgen_targets): ParserResults.pkl %-example: $(bindinggen_dependencies) \ $(all_webidl_files) \ $(NULL) PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \ $(PLY_INCLUDE) -I$(srcdir)/parser \ $(srcdir)/ExampleGen.py \ $(srcdir)/Bindings.conf $* CACHE_DIR = _cache globalgen_dependencies := \ GlobalGen.py \ Bindings.conf \ Configuration.py \ Codegen.py \ parser/WebIDL.py \ $(CACHE_DIR)/.done \ $(GLOBAL_DEPS) \ $(NULL) $(CACHE_DIR)/.done: $(MKDIR) -p $(CACHE_DIR) @$(TOUCH) $@ ParserResults.pkl: $(globalgen_dependencies) \ $(all_webidl_files) PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \ $(PLY_INCLUDE) -I$(srcdir)/parser \ $(srcdir)/GlobalGen.py $(srcdir)/Bindings.conf . \ --cachedir=$(CACHE_DIR) \ $(all_webidl_files) GARBAGE += \ $(binding_header_files) \ $(binding_cpp_files) \ $(all_webidl_files) \ $(globalgen_targets) \ ParserResults.pkl \ webidlyacc.py \ parser.out \ $(wildcard *-example.h) \ $(wildcard *-example.cpp) \ $(NULL) # Make sure all binding header files are created during the export stage, so we # don't have issues with .cpp files being compiled before we've generated the # headers they depend on. This is really only needed for the test files, since # the non-test headers are all exported above anyway. export:: $(binding_header_files)