dom/bindings/Makefile.in
author Cameron McCormack <cam@mcc.id.au>
Mon, 11 Feb 2013 17:22:18 +1100
changeset 121499 d11ce45846b5db6977cc6c99d07434a6f3b1676a
parent 121339 92f93ab32aec0dc915ee206ee27825aeeb15d82a
child 122804 a71766c2c85da91d0a9e6bea3154148a59d0c0a2
permissions -rw-r--r--
Bug 655877 - Part 42: Construct new SVG text frames if the pref is set. r=bz

# 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)/dom/battery \
  -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)

ifdef MOZ_AUDIO_CHANNEL_MANAGER
LOCAL_INCLUDES += \
  -I$(topsrcdir)/dom/system/gonk \
  $(NULL)
endif

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)