# 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@ relativesrcdir = @relativesrcdir@ LIBRARY_NAME = dombindings_test_s LIBXUL_LIBRARY = 1 FORCE_STATIC_LIB = 1 # Do NOT export this library. We don't actually want our test code # being added to libxul or anything. # pymake can't handle descending into dom/bindings several times simultaneously ifdef .PYMAKE .NOTPARALLEL: endif include $(DEPTH)/config/autoconf.mk # Need this to find all our DOM source files. include $(topsrcdir)/dom/dom-config.mk # And need this for $(test_webidl_files) include $(topsrcdir)/dom/webidl/WebIDL.mk # But the webidl actually lives in our parent dir test_webidl_files := $(addprefix ../,$(test_webidl_files)) LOCAL_INCLUDES += \ -I$(topsrcdir)/js/xpconnect/src \ -I$(topsrcdir)/js/xpconnect/wrappers \ -I$(topsrcdir)/dom/bindings \ $(NULL) # If you change bindinggen_dependencies here, change it in # dom/bindings/Makefile.in too. But note that we include ../Makefile # here manually, since $(GLOBAL_DEPS) won't cover it. bindinggen_dependencies := \ ../BindingGen.py \ ../Bindings.conf \ ../Configuration.py \ ../Codegen.py \ ../ParserResults.pkl \ ../parser/WebIDL.py \ ../Makefile \ $(GLOBAL_DEPS) \ $(NULL) MOCHITEST_FILES := \ test_bug773326.html \ test_enums.html \ test_integers.html \ test_interfaceToString.html \ test_lookupGetter.html \ test_InstanceOf.html \ file_InstanceOf.html \ test_traceProtos.html \ test_forOf.html \ forOf_iframe.html \ test_sequence_wrapping.html \ file_bug775543.html \ test_bug788369.html \ test_bug742191.html \ test_namedNoIndexed.html \ test_bug759621.html \ test_queryInterface.html \ test_exceptionThrowing.html \ test_bug852846.html \ test_bug862092.html \ test_bug560072.html \ test_lenientThis.html \ test_ByteString.html \ $(NULL) MOCHITEST_CHROME_FILES = \ test_bug775543.html \ $(NULL) ifdef GNU_CC CXXFLAGS += -Wno-uninitialized endif # Include rules.mk before any of our targets so our first target is coming from # rules.mk and running make with no target in this dir does the right thing. include $(topsrcdir)/config/rules.mk $(CPPSRCS): .BindingGen .BindingGen: $(bindinggen_dependencies) \ $(test_webidl_files) \ $(NULL) # The export phase in dom/bindings is what actually looks at # dependencies and regenerates things as needed, so just go ahead and # make that phase here. Also make our example interface files. If the # target used here ever changes, change the conditional around # $(CPPSRCS) in dom/bindings/Makefile.in. $(MAKE) -C .. export TestExampleInterface-example TestExampleProxyInterface-example @$(TOUCH) $@ check:: PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \ $(PLY_INCLUDE) $(srcdir)/../parser/runtests.py check-interactive: PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \ $(PLY_INCLUDE) $(srcdir)/../parser/runtests.py -q # Since we define MOCHITEST_FILES, config/makefiles/mochitest.mk goes ahead and # sets up a rule with libs:: in itm which makes our .DEFAULT_TARGET be "libs". # Then ruls.mk does |.DEFAULT_TARGET ?= default| which leaves it as "libs". So # if we make without an explicit target in this directory, we try to make # "libs", but with a $(MAKECMDGOALS) of empty string. And then rules.mk # helpfully does not include our *.o.pp files, since it includes them only if # filtering some stuff out from $(MAKECMDGOALS) leaves it nonempty. The upshot # is that if some headers change and we run make in this dir without an explicit # target things don't get rebuilt. # # On the other hand, if we set .DEFAULT_TARGET to "default" explicitly here, # then rules.mk will reinvoke make with "export" and "libs" but this time hey # will be passed as explicit targets, show up in $(MAKECMDGOALS), and things # will work. Do this at the end of our Makefile so the rest of the build system # does not get a chance to muck with it after we set it. .DEFAULT_GOAL := default # Make sure to add .BindingGen to GARBAGE so we'll rebuild our example # files if someone goes through and deletes GARBAGE all over, which # will delete example files from our parent dir. GARBAGE += \ .BindingGen \ $(NULL)