2012-03-30 21:42:20 -07:00
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
2012-04-06 11:06:52 -07:00
|
|
|
# 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/.
|
2012-03-30 21:42:20 -07:00
|
|
|
|
2012-08-04 11:26:44 -07:00
|
|
|
DEPTH = @DEPTH@
|
2012-03-30 21:42:20 -07:00
|
|
|
topsrcdir = @top_srcdir@
|
|
|
|
srcdir = @srcdir@
|
|
|
|
VPATH = @srcdir@
|
|
|
|
|
|
|
|
MODULE = dom
|
|
|
|
LIBRARY_NAME = dombindings_s
|
|
|
|
LIBXUL_LIBRARY = 1
|
|
|
|
FORCE_STATIC_LIB = 1
|
|
|
|
EXPORT_LIBRARY = 1
|
2013-01-29 21:20:53 -08:00
|
|
|
FAIL_ON_WARNINGS := 1
|
2012-03-30 21:42:20 -07:00
|
|
|
|
|
|
|
include $(topsrcdir)/config/config.mk
|
2012-10-14 00:40:11 -07:00
|
|
|
include $(topsrcdir)/ipc/chromium/chromium-config.mk
|
2012-03-30 21:42:20 -07:00
|
|
|
|
|
|
|
# Need this to find all our DOM source files.
|
|
|
|
include $(topsrcdir)/dom/dom-config.mk
|
|
|
|
|
|
|
|
include $(topsrcdir)/dom/webidl/WebIDL.mk
|
|
|
|
|
2012-05-02 21:35:38 -07:00
|
|
|
binding_include_path := mozilla/dom
|
2012-08-23 21:08:09 -07:00
|
|
|
all_webidl_files = $(webidl_files) $(generated_webidl_files)
|
2012-05-23 09:44:48 -07:00
|
|
|
# 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))
|
2012-03-30 21:42:20 -07:00
|
|
|
|
|
|
|
globalgen_targets := \
|
|
|
|
PrototypeList.h \
|
2012-05-02 21:35:38 -07:00
|
|
|
RegisterBindings.h \
|
|
|
|
RegisterBindings.cpp \
|
2012-05-18 14:25:47 -07:00
|
|
|
UnionTypes.h \
|
2012-11-09 07:59:33 -08:00
|
|
|
UnionTypes.cpp \
|
2012-05-18 14:25:47 -07:00
|
|
|
UnionConversions.h \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
CPPSRCS = \
|
2012-05-23 09:44:48 -07:00
|
|
|
$(linked_binding_cpp_files) \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(filter %.cpp, $(globalgen_targets)) \
|
2012-05-02 21:35:38 -07:00
|
|
|
BindingUtils.cpp \
|
2013-01-28 05:34:30 -08:00
|
|
|
CallbackInterface.cpp \
|
2013-01-28 05:34:29 -08:00
|
|
|
CallbackObject.cpp \
|
2012-05-22 06:46:20 -07:00
|
|
|
DOMJSProxyHandler.cpp \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(NULL)
|
|
|
|
|
2012-05-05 18:15:11 -07:00
|
|
|
EXPORTS_NAMESPACES = $(binding_include_path) mozilla
|
|
|
|
|
|
|
|
EXPORTS_mozilla = \
|
|
|
|
ErrorResult.h \
|
|
|
|
$(NULL)
|
2012-03-30 21:42:20 -07:00
|
|
|
|
|
|
|
EXPORTS_$(binding_include_path) = \
|
2012-12-25 14:00:15 -08:00
|
|
|
BindingDeclarations.h \
|
2012-08-04 00:29:18 -07:00
|
|
|
BindingUtils.h \
|
2012-11-09 07:43:57 -08:00
|
|
|
CallbackFunction.h \
|
2013-01-28 05:34:30 -08:00
|
|
|
CallbackInterface.h \
|
2013-01-28 05:34:29 -08:00
|
|
|
CallbackObject.h \
|
2012-03-30 21:42:20 -07:00
|
|
|
DOMJSClass.h \
|
2012-05-22 06:46:20 -07:00
|
|
|
DOMJSProxyHandler.h \
|
2012-07-18 03:36:08 -07:00
|
|
|
Errors.msg \
|
2012-09-19 06:02:37 -07:00
|
|
|
NonRefcountedDOMObject.h \
|
2012-08-04 00:29:18 -07:00
|
|
|
Nullable.h \
|
|
|
|
PrimitiveConversions.h \
|
2012-03-30 21:42:20 -07:00
|
|
|
PrototypeList.h \
|
2012-05-02 21:35:38 -07:00
|
|
|
RegisterBindings.h \
|
2012-05-04 09:36:56 -07:00
|
|
|
TypedArray.h \
|
2012-08-04 10:05:15 -07:00
|
|
|
UnionConversions.h \
|
2012-08-04 00:29:18 -07:00
|
|
|
UnionTypes.h \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
LOCAL_INCLUDES += -I$(topsrcdir)/js/xpconnect/src \
|
2012-05-31 11:16:48 -07:00
|
|
|
-I$(topsrcdir)/js/xpconnect/wrappers \
|
2012-06-13 08:14:15 -07:00
|
|
|
-I$(topsrcdir)/content/canvas/src \
|
2012-09-13 09:04:31 -07:00
|
|
|
-I$(topsrcdir)/content/html/content/src \
|
2012-10-15 08:09:10 -07:00
|
|
|
-I$(topsrcdir)/media/webrtc/signaling/src/peerconnection \
|
2012-10-14 00:40:11 -07:00
|
|
|
-I$(topsrcdir)/dom/base \
|
2013-02-05 04:54:49 -08:00
|
|
|
-I$(topsrcdir)/dom/battery \
|
2012-12-14 11:10:49 -08:00
|
|
|
-I$(topsrcdir)/content/xslt/src/base \
|
|
|
|
-I$(topsrcdir)/content/xslt/src/xpath \
|
2012-12-22 00:27:27 -08:00
|
|
|
-I$(topsrcdir)/content/xml/content/src \
|
2013-01-29 09:51:55 -08:00
|
|
|
-I$(topsrcdir)/content/xul/content/src \
|
2012-10-14 00:40:11 -07:00
|
|
|
$(NULL)
|
2012-03-30 21:42:20 -07:00
|
|
|
|
2013-02-08 08:34:47 -08:00
|
|
|
ifdef MOZ_AUDIO_CHANNEL_MANAGER
|
|
|
|
LOCAL_INCLUDES += \
|
|
|
|
-I$(topsrcdir)/dom/system/gonk \
|
|
|
|
$(NULL)
|
|
|
|
endif
|
|
|
|
|
2013-02-24 12:36:44 -08:00
|
|
|
# XXXkhuey this is a terrible hack to avoid blowing out the command line
|
|
|
|
ifneq (,$(filter-out all chrome default export realchrome tools clean clobber clobber_all distclean realclean,$(MAKECMDGOALS)))
|
|
|
|
$(shell echo "$(addsuffix .pp,$(binding_header_files))" > pp.list)
|
|
|
|
$(shell echo "$(addsuffix .pp,$(binding_cpp_files))" >> pp.list)
|
|
|
|
|
|
|
|
# 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 cat pp.list | $(PERL) $(BUILD_TOOLS)/mddepend.pl)
|
|
|
|
$(eval $(ALL_PP_RESULTS))
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
EXPORTS_GENERATED_FILES := $(exported_binding_headers)
|
|
|
|
EXPORTS_GENERATED_DEST := $(DIST)/include/$(binding_include_path)
|
|
|
|
EXPORTS_GENERATED_TARGET := webidl-export
|
|
|
|
INSTALL_TARGETS += EXPORTS_GENERATED
|
|
|
|
|
2013-03-09 23:58:21 -08:00
|
|
|
ifdef GNU_CC
|
|
|
|
CXXFLAGS += -Wno-uninitialized
|
|
|
|
endif
|
|
|
|
|
2012-03-30 21:42:20 -07:00
|
|
|
include $(topsrcdir)/config/rules.mk
|
|
|
|
|
2013-02-24 12:36:44 -08:00
|
|
|
# We need to create a separate target so we can ensure that the pickle is
|
|
|
|
# done before generating headers.
|
|
|
|
export:: ParserResults.pkl
|
|
|
|
$(MAKE) webidl-export
|
|
|
|
|
2012-05-23 09:44:48 -07:00
|
|
|
# If you change bindinggen_dependencies here, change it in
|
|
|
|
# dom/bindings/test/Makefile.in too.
|
2012-03-30 21:42:20 -07:00
|
|
|
bindinggen_dependencies := \
|
|
|
|
BindingGen.py \
|
|
|
|
Bindings.conf \
|
|
|
|
Configuration.py \
|
|
|
|
Codegen.py \
|
2012-06-11 15:21:35 -07:00
|
|
|
parser/WebIDL.py \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(GLOBAL_DEPS) \
|
|
|
|
$(NULL)
|
|
|
|
|
2012-08-23 21:08:09 -07:00
|
|
|
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)
|
2012-08-28 11:14:53 -07:00
|
|
|
$(CPP) $(DEFINES) $(ACDEFINES) -I$(topsrcdir)/layout/style $(webidl_base)/CSS2PropertiesProps.h | \
|
2012-08-23 21:08:09 -07:00
|
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) \
|
|
|
|
$(srcdir)/GenerateCSS2PropertiesWebIDL.py $(webidl_base)/CSS2Properties.webidl.in > CSS2Properties.webidl
|
|
|
|
|
2012-05-23 09:44:48 -07:00
|
|
|
$(webidl_files): %: $(webidl_base)/%
|
|
|
|
$(INSTALL) $(IFLAGS1) $(webidl_base)/$* .
|
|
|
|
|
|
|
|
$(test_webidl_files): %: $(srcdir)/test/%
|
|
|
|
$(INSTALL) $(IFLAGS1) $(srcdir)/test/$* .
|
|
|
|
|
2012-03-30 21:42:20 -07:00
|
|
|
$(binding_header_files): %Binding.h: $(bindinggen_dependencies) \
|
2012-05-23 09:44:48 -07:00
|
|
|
%.webidl \
|
2013-02-24 12:36:44 -08:00
|
|
|
$(call mkdir_deps,$(MDDEPDIR)) \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(NULL)
|
2012-06-10 16:03:23 -07:00
|
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
|
2012-04-06 11:06:52 -07:00
|
|
|
$(PLY_INCLUDE) -I$(srcdir)/parser \
|
2012-08-07 22:26:19 -07:00
|
|
|
$(srcdir)/BindingGen.py header \
|
2013-02-24 12:36:44 -08:00
|
|
|
$(srcdir)/Bindings.conf \
|
|
|
|
$*Binding \
|
|
|
|
$(topsrcdir)/dom/webidl/ \
|
2012-05-23 09:44:48 -07:00
|
|
|
$*.webidl
|
2012-03-30 21:42:20 -07:00
|
|
|
|
|
|
|
$(binding_cpp_files): %Binding.cpp: $(bindinggen_dependencies) \
|
2012-05-23 09:44:48 -07:00
|
|
|
%.webidl \
|
2013-02-24 12:36:44 -08:00
|
|
|
$(call mkdir_deps,$(MDDEPDIR)) \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(NULL)
|
2012-06-10 16:03:23 -07:00
|
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
|
2012-04-06 11:06:52 -07:00
|
|
|
$(PLY_INCLUDE) -I$(srcdir)/parser \
|
2012-08-07 22:26:19 -07:00
|
|
|
$(srcdir)/BindingGen.py cpp \
|
2013-02-24 12:36:44 -08:00
|
|
|
$(srcdir)/Bindings.conf \
|
|
|
|
$*Binding \
|
|
|
|
$(topsrcdir)/dom/webidl/ \
|
2012-05-23 09:44:48 -07:00
|
|
|
$*.webidl
|
2012-03-30 21:42:20 -07:00
|
|
|
|
|
|
|
$(globalgen_targets): ParserResults.pkl
|
|
|
|
|
2012-10-17 14:01:55 -07:00
|
|
|
%-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 $*
|
|
|
|
|
2012-03-30 21:42:20 -07:00
|
|
|
CACHE_DIR = _cache
|
|
|
|
|
|
|
|
globalgen_dependencies := \
|
|
|
|
GlobalGen.py \
|
|
|
|
Bindings.conf \
|
|
|
|
Configuration.py \
|
|
|
|
Codegen.py \
|
2012-06-11 15:21:35 -07:00
|
|
|
parser/WebIDL.py \
|
2013-03-04 11:08:24 -08:00
|
|
|
../webidl/WebIDL.mk \
|
|
|
|
$(all_webidl_files) \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(CACHE_DIR)/.done \
|
|
|
|
$(GLOBAL_DEPS) \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
$(CACHE_DIR)/.done:
|
|
|
|
$(MKDIR) -p $(CACHE_DIR)
|
|
|
|
@$(TOUCH) $@
|
|
|
|
|
2013-03-04 11:08:24 -08:00
|
|
|
ParserResults.pkl: $(globalgen_dependencies)
|
2012-06-10 16:03:23 -07:00
|
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
|
2012-04-06 11:06:52 -07:00
|
|
|
$(PLY_INCLUDE) -I$(srcdir)/parser \
|
2012-08-07 22:26:19 -07:00
|
|
|
$(srcdir)/GlobalGen.py $(srcdir)/Bindings.conf . \
|
2012-03-30 21:42:20 -07:00
|
|
|
--cachedir=$(CACHE_DIR) \
|
2012-05-23 09:44:48 -07:00
|
|
|
$(all_webidl_files)
|
2012-03-30 21:42:20 -07:00
|
|
|
|
|
|
|
GARBAGE += \
|
|
|
|
$(binding_header_files) \
|
|
|
|
$(binding_cpp_files) \
|
2012-05-23 09:44:48 -07:00
|
|
|
$(all_webidl_files) \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(globalgen_targets) \
|
|
|
|
ParserResults.pkl \
|
|
|
|
webidlyacc.py \
|
|
|
|
parser.out \
|
2012-10-17 14:01:55 -07:00
|
|
|
$(wildcard *-example.h) \
|
|
|
|
$(wildcard *-example.cpp) \
|
2012-03-30 21:42:20 -07:00
|
|
|
$(NULL)
|
2012-06-12 07:22:05 -07:00
|
|
|
|
|
|
|
# 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.
|
2013-02-24 12:36:44 -08:00
|
|
|
webidl-export:: $(binding_header_files)
|
|
|
|
|
|
|
|
.PHONY: webidl-export
|