dom/bindings/Makefile.in
author Kyle Huey <khuey@kylehuey.com>
Thu, 12 Apr 2012 15:14:10 -0700
changeset 91569 d26c0cd1dfa3a2c277d8d3713774febff1054db7
parent 91261 96a1ab35f7652ec04f5dede49bcc3a4899ca9634
child 92902 3c35768445119d3eb1a86293e73158576c94dafc
permissions -rw-r--r--
Bug 741125: Update WebIDL parser.

# 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            = ../..
topsrcdir        = @top_srcdir@
srcdir           = @srcdir@
VPATH            = @srcdir@

MODULE           = dom
LIBRARY_NAME     = dombindings_s
LIBXUL_LIBRARY   = 1
FORCE_STATIC_LIB = 1
EXPORT_LIBRARY   = 1

include $(topsrcdir)/config/config.mk

# Define USE_JSOP_ACCESSORS to a nonempty string like "yes" to use them
USE_JSOP_ACCESSORS = 
ifdef USE_JSOP_ACCESSORS
DEFINES += -DUSE_JSOP_ACCESSORS
ACCESSOR_OPT = --use-jsop-accessors
else
ACCESSOR_OPT =
endif

# 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/bindings
binding_header_files := $(subst .webidl,Binding.h,$(webidl_files))
binding_cpp_files := $(subst .webidl,Binding.cpp,$(webidl_files))

globalgen_targets := \
  PrototypeList.h \
  Common.h \
  Common.cpp \
  $(NULL)

CPPSRCS = \
  $(binding_cpp_files) \
  $(filter %.cpp, $(globalgen_targets)) \
  Utils.cpp \
  $(NULL)

EXPORTS_NAMESPACES = $(binding_include_path)

EXPORTS_$(binding_include_path) = \
  DOMJSClass.h \
  PrototypeList.h \
  Common.h \
  Nullable.h \
  Utils.h \
  $(binding_header_files) \
  $(NULL)

LOCAL_INCLUDES += -I$(topsrcdir)/js/xpconnect/src \
  -I$(topsrcdir)/js/xpconnect/wrappers

TEST_DIRS += test

include $(topsrcdir)/config/rules.mk

bindinggen_dependencies := \
  BindingGen.py \
  Bindings.conf \
  Configuration.py \
  Codegen.py \
  ParserResults.pkl \
  $(GLOBAL_DEPS) \
  $(NULL)

$(binding_header_files): %Binding.h: $(bindinggen_dependencies) \
                                     $(webidl_base)/%.webidl \
                                     $(NULL)
	PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
	  $(PLY_INCLUDE) -I$(srcdir)/parser \
    	  $(srcdir)/BindingGen.py $(ACCESSOR_OPT) header \
	  $(srcdir)/Bindings.conf $*Binding \
	  $(webidl_base)/$*.webidl

$(binding_cpp_files): %Binding.cpp: $(bindinggen_dependencies) \
                                    $(webidl_base)/%.webidl \
                                    $(NULL)
	PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
	  $(PLY_INCLUDE) -I$(srcdir)/parser \
	  $(srcdir)/BindingGen.py $(ACCESSOR_OPT) cpp \
	  $(srcdir)/Bindings.conf $*Binding \
	  $(webidl_base)/$*.webidl

$(globalgen_targets): ParserResults.pkl

CACHE_DIR = _cache

globalgen_dependencies := \
  GlobalGen.py \
  Bindings.conf \
  Configuration.py \
  Codegen.py \
  $(CACHE_DIR)/.done \
  $(GLOBAL_DEPS) \
  $(NULL)

$(CACHE_DIR)/.done:
	$(MKDIR) -p $(CACHE_DIR)
	@$(TOUCH) $@

ParserResults.pkl: $(globalgen_dependencies) \
                   $(addprefix $(webidl_base)/, $(webidl_files))
	PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
    $(PLY_INCLUDE) -I$(srcdir)/parser \
    $(srcdir)/GlobalGen.py $(ACCESSOR_OPT) $(srcdir)/Bindings.conf $(webidl_base) \
    --cachedir=$(CACHE_DIR) \
    $(webidl_files)

GARBAGE += \
  $(binding_header_files) \
  $(binding_cpp_files) \
  $(globalgen_targets) \
  ParserResults.pkl \
  webidlyacc.py \
  parser.out \
  $(NULL)