1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/bindings/Makefile.in Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,87 @@ 1.4 +# This Source Code Form is subject to the terms of the Mozilla Public 1.5 +# License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 +# file, You can obtain one at http://mozilla.org/MPL/2.0/. 1.7 + 1.8 +abs_dist := $(abspath $(DIST)) 1.9 +webidl_base := $(topsrcdir)/dom/webidl 1.10 + 1.11 +# Generated by moz.build 1.12 +include webidlsrcs.mk 1.13 + 1.14 +ifdef GNU_CC 1.15 +OS_CXXFLAGS += -Wno-uninitialized 1.16 +endif 1.17 + 1.18 +# These come from webidlsrcs.mk. 1.19 +# TODO Write directly into backend.mk. 1.20 +CPPSRCS += $(globalgen_sources) $(unified_binding_cpp_files) 1.21 + 1.22 +# Generated bindings reference *Binding.h, not mozilla/dom/*Binding.h. And, 1.23 +# since we generate exported bindings directly to $(DIST)/include, we need 1.24 +# to add that path to the search list. 1.25 +# 1.26 +# Ideally, binding generation uses the prefixed header file names. 1.27 +# Bug 932092 tracks. 1.28 +LOCAL_INCLUDES += -I$(DIST)/include/mozilla/dom 1.29 + 1.30 +PYTHON_UNIT_TESTS += $(srcdir)/mozwebidlcodegen/test/test_mozwebidlcodegen.py 1.31 + 1.32 +include $(topsrcdir)/config/rules.mk 1.33 + 1.34 +# TODO This list should be emitted to a .pp file via 1.35 +# GenerateCSS2PropertiesWebIDL.py. 1.36 +css2properties_dependencies = \ 1.37 + $(topsrcdir)/layout/style/nsCSSPropList.h \ 1.38 + $(topsrcdir)/layout/style/nsCSSPropAliasList.h \ 1.39 + $(webidl_base)/CSS2Properties.webidl.in \ 1.40 + $(webidl_base)/CSS2PropertiesProps.h \ 1.41 + $(srcdir)/GenerateCSS2PropertiesWebIDL.py \ 1.42 + $(GLOBAL_DEPS) \ 1.43 + $(NULL) 1.44 + 1.45 +CSS2Properties.webidl: $(css2properties_dependencies) 1.46 + $(CPP) $(DEFINES) $(ACDEFINES) -I$(topsrcdir)/layout/style \ 1.47 + $(webidl_base)/CSS2PropertiesProps.h | \ 1.48 + PYTHONDONTWRITEBYTECODE=1 $(PYTHON) \ 1.49 + $(srcdir)/GenerateCSS2PropertiesWebIDL.py \ 1.50 + $(webidl_base)/CSS2Properties.webidl.in > $@ 1.51 + 1.52 +# Most of the logic for dependencies lives inside Python so it can be 1.53 +# used by multiple build backends. We simply have rules to generate 1.54 +# and include the .pp file. 1.55 +# 1.56 +# The generated .pp file contains all the important dependencies such as 1.57 +# changes to .webidl or .py files should result in code generation being 1.58 +# performed. But we do pull in file-lists.jon to catch file additions. 1.59 +codegen_dependencies := \ 1.60 + file-lists.json \ 1.61 + $(nonstatic_webidl_files) \ 1.62 + $(GLOBAL_DEPS) \ 1.63 + $(NULL) 1.64 + 1.65 +# The 1 is to make codegen.pp not optional. 1.66 +$(call include_deps,codegen.pp,1) 1.67 + 1.68 +codegen.pp: $(codegen_dependencies) 1.69 + $(call py_action,webidl,$(srcdir)) 1.70 + @$(TOUCH) $@ 1.71 + 1.72 +.PHONY: compiletests 1.73 +compiletests: 1.74 + $(call SUBMAKE,libs,test) 1.75 + 1.76 +GARBAGE += \ 1.77 + codegen.pp \ 1.78 + codegen.json \ 1.79 + parser.out \ 1.80 + WebIDLGrammar.pkl \ 1.81 + $(wildcard *.h) \ 1.82 + $(wildcard *Binding.cpp) \ 1.83 + $(wildcard *Event.cpp) \ 1.84 + $(wildcard *-event.cpp) \ 1.85 + $(wildcard *.webidl) \ 1.86 + $(NULL) 1.87 + 1.88 +DIST_GARBAGE += \ 1.89 + file-lists.json \ 1.90 + $(NULL)