diff --git a/config/makefiles/debugmake.mk b/config/makefiles/debugmake.mk new file mode 100644 index 00000000000..dd21734003e --- /dev/null +++ b/config/makefiles/debugmake.mk @@ -0,0 +1,118 @@ +# -*- makefile -*- +# vim:set ts=8 sw=8 sts=8 noet: +# +# 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/. +# + +########################################################################### +## Intent: Helper targets for displaying variables and state information +########################################################################### + +# Support usage outside of config/rules.mk +ifndef INCLUDED_DEBUGMAKE_MK #{ + +echo-variable-%: + @echo "$($*)" + +echo-tiers: + @echo $(TIERS) + +echo-tier-dirs: + @$(foreach tier,$(TIERS),echo '$(tier):'; echo ' dirs: $(tier_$(tier)_dirs)'; echo ' staticdirs: $(tier_$(tier)_staticdirs)'; ) + +echo-dirs: + @echo $(DIRS) + +echo-module: + @echo $(MODULE) + +echo-depth-path: + @$(topsrcdir)/build/unix/print-depth-path.sh + +echo-module-name: + @$(topsrcdir)/build/package/rpm/print-module-name.sh + +echo-module-filelist: + @$(topsrcdir)/build/package/rpm/print-module-filelist.sh + +showtargs: +ifneq (,$(filter $(PROGRAM) $(HOST_PROGRAM) $(SIMPLE_PROGRAMS) $(HOST_LIBRARY) $(LIBRARY) $(SHARED_LIBRARY),$(TARGETS))) + @echo -------------------------------------------------------------------------------- + @echo "PROGRAM = $(PROGRAM)" + @echo "SIMPLE_PROGRAMS = $(SIMPLE_PROGRAMS)" + @echo "LIBRARY = $(LIBRARY)" + @echo "SHARED_LIBRARY = $(SHARED_LIBRARY)" + @echo "SHARED_LIBRARY_LIBS = $(SHARED_LIBRARY_LIBS)" + @echo "LIBS = $(LIBS)" + @echo "DEF_FILE = $(DEF_FILE)" + @echo "IMPORT_LIBRARY = $(IMPORT_LIBRARY)" + @echo "STATIC_LIBS = $(STATIC_LIBS)" + @echo "SHARED_LIBS = $(SHARED_LIBS)" + @echo "EXTRA_DSO_LIBS = $(EXTRA_DSO_LIBS)" + @echo "EXTRA_DSO_LDOPTS = $(EXTRA_DSO_LDOPTS)" + @echo "DEPENDENT_LIBS = $(DEPENDENT_LIBS)" + @echo -------------------------------------------------------------------------------- +endif + $(LOOP_OVER_PARALLEL_DIRS) + $(LOOP_OVER_DIRS) + +showbuild: + @echo "MOZ_BUILD_ROOT = $(MOZ_BUILD_ROOT)" + @echo "MOZ_WIDGET_TOOLKIT = $(MOZ_WIDGET_TOOLKIT)" + @echo "CC = $(CC)" + @echo "CXX = $(CXX)" + @echo "CCC = $(CCC)" + @echo "CPP = $(CPP)" + @echo "LD = $(LD)" + @echo "AR = $(AR)" + @echo "IMPLIB = $(IMPLIB)" + @echo "FILTER = $(FILTER)" + @echo "MKSHLIB = $(MKSHLIB)" + @echo "MKCSHLIB = $(MKCSHLIB)" + @echo "RC = $(RC)" + @echo "MC = $(MC)" + @echo "CFLAGS = $(CFLAGS)" + @echo "OS_CFLAGS = $(OS_CFLAGS)" + @echo "COMPILE_CFLAGS = $(COMPILE_CFLAGS)" + @echo "CXXFLAGS = $(CXXFLAGS)" + @echo "OS_CXXFLAGS = $(OS_CXXFLAGS)" + @echo "COMPILE_CXXFLAGS = $(COMPILE_CXXFLAGS)" + @echo "COMPILE_CMFLAGS = $(COMPILE_CMFLAGS)" + @echo "COMPILE_CMMFLAGS = $(COMPILE_CMMFLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" + @echo "OS_LDFLAGS = $(OS_LDFLAGS)" + @echo "DSO_LDOPTS = $(DSO_LDOPTS)" + @echo "OS_INCLUDES = $(OS_INCLUDES)" + @echo "OS_LIBS = $(OS_LIBS)" + @echo "EXTRA_LIBS = $(EXTRA_LIBS)" + @echo "BIN_FLAGS = $(BIN_FLAGS)" + @echo "INCLUDES = $(INCLUDES)" + @echo "DEFINES = $(DEFINES)" + @echo "ACDEFINES = $(ACDEFINES)" + @echo "BIN_SUFFIX = $(BIN_SUFFIX)" + @echo "LIB_SUFFIX = $(LIB_SUFFIX)" + @echo "DLL_SUFFIX = $(DLL_SUFFIX)" + @echo "IMPORT_LIB_SUFFIX = $(IMPORT_LIB_SUFFIX)" + @echo "INSTALL = $(INSTALL)" + @echo "VPATH = $(VPATH)" + +showhost: + @echo "HOST_CC = $(HOST_CC)" + @echo "HOST_CXX = $(HOST_CXX)" + @echo "HOST_CFLAGS = $(HOST_CFLAGS)" + @echo "HOST_LDFLAGS = $(HOST_LDFLAGS)" + @echo "HOST_LIBS = $(HOST_LIBS)" + @echo "HOST_EXTRA_LIBS = $(HOST_EXTRA_LIBS)" + @echo "HOST_EXTRA_DEPS = $(HOST_EXTRA_DEPS)" + @echo "HOST_PROGRAM = $(HOST_PROGRAM)" + @echo "HOST_OBJS = $(HOST_OBJS)" + @echo "HOST_PROGOBJS = $(HOST_PROGOBJS)" + @echo "HOST_LIBRARY = $(HOST_LIBRARY)" + +showbuildmods:: + @echo "Module dirs = $(BUILD_MODULE_DIRS)" + +INCLUDED_DEBUGMAKE_MK = 1 +endif #} diff --git a/config/makefiles/makeutils.mk b/config/makefiles/makeutils.mk index a0a9712f212..71ebe281c85 100644 --- a/config/makefiles/makeutils.mk +++ b/config/makefiles/makeutils.mk @@ -67,8 +67,11 @@ else endif # Intent: Conditionals for detecting common/tier target use -# Todo: are check, install, test needed ? -isTargetStem = $(sort $(foreach pat, $(1)% %$(1), $(call is_XinY,$(pat),${$(mcg_goals)}))) +isTargetStem = $(sort \ + $(foreach var,$(getargv),\ + $(foreach pat,$(var)% %$(var),\ + $(call is_XinY,$(pat),${$(mcg_goals)})\ + ))) isTargetStemClean = $(call isTargetStem,clean) isTargetStemExport = $(call isTargetStem,export) isTargetStemLibs = $(call isTargetStem,libs) diff --git a/config/makefiles/test/check_XinY.mk b/config/makefiles/test/check_XinY.mk index 3837861ada3..39df00a4215 100644 --- a/config/makefiles/test/check_XinY.mk +++ b/config/makefiles/test/check_XinY.mk @@ -43,3 +43,28 @@ $(call errorifneq,3,$(words $(call isTargetStemClean))) TEST_MAKECMDGOALS := invalid $(call errorifneq,$(zero),$(words $(call isTargetStemClean))) + +############################# +ifdef VERBOSE + $(call banner,Unit test: isTargetStem) +endif + +# Verify list argument processing +TEST_MAKECMDGOALS := echo +$(call errorifneq,$(one),$(words $(call isTargetStem,echo,show))) + +TEST_MAKECMDGOALS := echo-123 +$(call errorifneq,$(one),$(words $(call isTargetStem,echo,show))) + +TEST_MAKECMDGOALS := show +$(call errorifneq,$(one),$(words $(call isTargetStem,echo,show))) + +TEST_MAKECMDGOALS := show-123 +$(call errorifneq,$(one),$(words $(call isTargetStem,echo,show))) + +TEST_MAKECMDGOALS := show-123-echo +$(call errorifneq,$(one),$(words $(call isTargetStem,echo,show))) + +TEST_MAKECMDGOALS := invalid +$(call errorifneq,$(zero),$(words $(call isTargetStem,echo,show))) + diff --git a/config/makefiles/xpcshell.mk b/config/makefiles/xpcshell.mk new file mode 100644 index 00000000000..bbdf5400cef --- /dev/null +++ b/config/makefiles/xpcshell.mk @@ -0,0 +1,128 @@ +# -*- makefile -*- +# vim:set ts=8 sw=8 sts=8 noet: +# +# 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/. +# + +ifndef INCLUDED_TESTS_XPCSHELL_MK #{ + +ifdef XPCSHELL_TESTS #{ + +ifndef relativesrcdir +$(error Must define relativesrcdir when defining XPCSHELL_TESTS.) +endif + +define _INSTALL_TESTS +$(DIR_INSTALL) $(wildcard $(srcdir)/$(dir)/*) $(testxpcobjdir)/$(relativesrcdir)/$(dir) + +endef # do not remove the blank line! + +SOLO_FILE ?= $(error Specify a test filename in SOLO_FILE when using check-interactive or check-one) + +testxpcsrcdir = $(topsrcdir)/testing/xpcshell + +libs:: libs-xpcshell-tests + +########################################################################### +libs-xpcshell-tests: + $(foreach dir,$(XPCSHELL_TESTS),$(_INSTALL_TESTS)) +ifndef NO_XPCSHELL_MANIFEST_CHECK #{ + $(PYTHON) $(MOZILLA_DIR)/build/xpccheck.py \ + $(topsrcdir) \ + $(topsrcdir)/testing/xpcshell/xpcshell.ini \ + $(addprefix $(MOZILLA_DIR)/$(relativesrcdir)/,$(XPCSHELL_TESTS)) +endif #} NO_XPCSHELL_MANIFEST_CHECK + +########################################################################### +# Execute all tests in the $(XPCSHELL_TESTS) directories. +# See also testsuite-targets.mk 'xpcshell-tests' target for global execution. +xpcshell-tests: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(DEPTH)/_tests/mozbase/mozinfo \ + $(testxpcsrcdir)/runxpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --tests-root-dir=$(testxpcobjdir) \ + --testing-modules-dir=$(DEPTH)/_tests/modules \ + --xunit-file=$(testxpcobjdir)/$(relativesrcdir)/results.xml \ + --xunit-suite-name=xpcshell \ + $(EXTRA_TEST_ARGS) \ + $(LIBXUL_DIST)/bin/xpcshell \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +xpcshell-tests-remote: DM_TRANS?=adb +xpcshell-tests-remote: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(topsrcdir)/build/mobile \ + $(topsrcdir)/testing/xpcshell/remotexpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + $(EXTRA_TEST_ARGS) \ + --dm_trans=$(DM_TRANS) \ + --deviceIP=${TEST_DEVICE} \ + --objdir=$(DEPTH) \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +########################################################################### +# Execute a single test, specified in $(SOLO_FILE), but don't automatically +# start the test. Instead, present the xpcshell prompt so the user can +# attach a debugger and then start the test. +check-interactive: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(DEPTH)/_tests/mozbase/mozinfo \ + $(testxpcsrcdir)/runxpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --test-path=$(SOLO_FILE) \ + --testing-modules-dir=$(DEPTH)/_tests/modules \ + --profile-name=$(MOZ_APP_NAME) \ + --interactive \ + $(LIBXUL_DIST)/bin/xpcshell \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +# Execute a single test, specified in $(SOLO_FILE) +check-one: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(DEPTH)/_tests/mozbase/mozinfo \ + $(testxpcsrcdir)/runxpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --test-path=$(SOLO_FILE) \ + --testing-modules-dir=$(DEPTH)/_tests/modules \ + --profile-name=$(MOZ_APP_NAME) \ + --verbose \ + $(EXTRA_TEST_ARGS) \ + $(LIBXUL_DIST)/bin/xpcshell \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +check-one-remote: DM_TRANS?=adb +check-one-remote: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(topsrcdir)/build/mobile \ + $(testxpcsrcdir)/remotexpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --test-path=$(SOLO_FILE) \ + --profile-name=$(MOZ_APP_NAME) \ + --verbose \ + $(EXTRA_TEST_ARGS) \ + --dm_trans=$(DM_TRANS) \ + --deviceIP=${TEST_DEVICE} \ + --objdir=$(DEPTH) \ + --noSetup \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + + +.PHONY: xpcshell-tests check-interactive check-one libs-xpcshell-tests + +endif #} XPCSHELL_TESTS + +INCLUDED_TESTS_XPCSHELL_MK = 1 +endif #} INCLUDED_TESTS_XPCSHELL_MK diff --git a/config/rules.mk b/config/rules.mk index ebcf62dc7d3..948f6b3dafb 100644 --- a/config/rules.mk +++ b/config/rules.mk @@ -85,108 +85,9 @@ ifdef ENABLE_TESTS # locally against non-current test code. DIRS += $(TEST_DIRS) -ifdef XPCSHELL_TESTS -ifndef relativesrcdir -$(error Must define relativesrcdir when defining XPCSHELL_TESTS.) -endif - -define _INSTALL_TESTS -$(DIR_INSTALL) $(wildcard $(srcdir)/$(dir)/*) $(testxpcobjdir)/$(relativesrcdir)/$(dir) - -endef # do not remove the blank line! - -SOLO_FILE ?= $(error Specify a test filename in SOLO_FILE when using check-interactive or check-one) - -libs:: - $(foreach dir,$(XPCSHELL_TESTS),$(_INSTALL_TESTS)) -ifndef NO_XPCSHELL_MANIFEST_CHECK - $(PYTHON) $(MOZILLA_DIR)/build/xpccheck.py \ - $(topsrcdir) \ - $(topsrcdir)/testing/xpcshell/xpcshell.ini \ - $(addprefix $(MOZILLA_DIR)/$(relativesrcdir)/,$(XPCSHELL_TESTS)) -endif - -testxpcsrcdir = $(topsrcdir)/testing/xpcshell - -# Execute all tests in the $(XPCSHELL_TESTS) directories. -# See also testsuite-targets.mk 'xpcshell-tests' target for global execution. -xpcshell-tests: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build -I$(DEPTH)/_tests/mozbase/mozinfo \ - $(testxpcsrcdir)/runxpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --tests-root-dir=$(testxpcobjdir) \ - --testing-modules-dir=$(DEPTH)/_tests/modules \ - --xunit-file=$(testxpcobjdir)/$(relativesrcdir)/results.xml \ - --xunit-suite-name=xpcshell \ - $(EXTRA_TEST_ARGS) \ - $(LIBXUL_DIST)/bin/xpcshell \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -xpcshell-tests-remote: DM_TRANS?=adb -xpcshell-tests-remote: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build \ - -I$(topsrcdir)/build/mobile \ - $(topsrcdir)/testing/xpcshell/remotexpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - $(EXTRA_TEST_ARGS) \ - --dm_trans=$(DM_TRANS) \ - --deviceIP=${TEST_DEVICE} \ - --objdir=$(DEPTH) \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -# Execute a single test, specified in $(SOLO_FILE), but don't automatically -# start the test. Instead, present the xpcshell prompt so the user can -# attach a debugger and then start the test. -check-interactive: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build -I$(DEPTH)/_tests/mozbase/mozinfo \ - $(testxpcsrcdir)/runxpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --test-path=$(SOLO_FILE) \ - --testing-modules-dir=$(DEPTH)/_tests/modules \ - --profile-name=$(MOZ_APP_NAME) \ - --interactive \ - $(LIBXUL_DIST)/bin/xpcshell \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -# Execute a single test, specified in $(SOLO_FILE) -check-one: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build -I$(DEPTH)/_tests/mozbase/mozinfo \ - $(testxpcsrcdir)/runxpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --test-path=$(SOLO_FILE) \ - --testing-modules-dir=$(DEPTH)/_tests/modules \ - --profile-name=$(MOZ_APP_NAME) \ - --verbose \ - $(EXTRA_TEST_ARGS) \ - $(LIBXUL_DIST)/bin/xpcshell \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -check-one-remote: DM_TRANS?=adb -check-one-remote: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build \ - -I$(topsrcdir)/build/mobile \ - $(testxpcsrcdir)/remotexpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --test-path=$(SOLO_FILE) \ - --profile-name=$(MOZ_APP_NAME) \ - --verbose \ - $(EXTRA_TEST_ARGS) \ - --dm_trans=$(DM_TRANS) \ - --deviceIP=${TEST_DEVICE} \ - --objdir=$(DEPTH) \ - --noSetup \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) -endif # XPCSHELL_TESTS +ifndef INCLUDED_TESTS_XPCSHELL_MK #{ + include $(topsrcdir)/config/makefiles/xpcshell.mk +endif #} ifdef CPP_UNIT_TESTS @@ -207,7 +108,7 @@ check:: endif # CPP_UNIT_TESTS -.PHONY: check xpcshell-tests check-interactive check-one +.PHONY: check endif # ENABLE_TESTS @@ -1375,6 +1276,7 @@ export:: $(AUTOCFG_JS_EXPORTS) $(FINAL_TARGET)/defaults/autoconfig endif endif + ################################################################################ # Export the elements of $(XPIDLSRCS) # generating .h and .xpt files and moving them to the appropriate places. @@ -1848,106 +1750,12 @@ TAGS: $(SUBMAKEFILES) $(CSRCS) $(CPPSRCS) $(wildcard *.h) $(LOOP_OVER_PARALLEL_DIRS) $(LOOP_OVER_DIRS) -echo-variable-%: - @echo "$($*)" - -echo-tiers: - @echo $(TIERS) - -echo-tier-dirs: - @$(foreach tier,$(TIERS),echo '$(tier):'; echo ' dirs: $(tier_$(tier)_dirs)'; echo ' staticdirs: $(tier_$(tier)_staticdirs)'; ) - -echo-dirs: - @echo $(DIRS) - -echo-module: - @echo $(MODULE) - -echo-depth-path: - @$(topsrcdir)/build/unix/print-depth-path.sh - -echo-module-name: - @$(topsrcdir)/build/package/rpm/print-module-name.sh - -echo-module-filelist: - @$(topsrcdir)/build/package/rpm/print-module-filelist.sh - -showtargs: -ifneq (,$(filter $(PROGRAM) $(HOST_PROGRAM) $(SIMPLE_PROGRAMS) $(HOST_LIBRARY) $(LIBRARY) $(SHARED_LIBRARY),$(TARGETS))) - @echo -------------------------------------------------------------------------------- - @echo "PROGRAM = $(PROGRAM)" - @echo "SIMPLE_PROGRAMS = $(SIMPLE_PROGRAMS)" - @echo "LIBRARY = $(LIBRARY)" - @echo "SHARED_LIBRARY = $(SHARED_LIBRARY)" - @echo "SHARED_LIBRARY_LIBS = $(SHARED_LIBRARY_LIBS)" - @echo "LIBS = $(LIBS)" - @echo "DEF_FILE = $(DEF_FILE)" - @echo "IMPORT_LIBRARY = $(IMPORT_LIBRARY)" - @echo "STATIC_LIBS = $(STATIC_LIBS)" - @echo "SHARED_LIBS = $(SHARED_LIBS)" - @echo "EXTRA_DSO_LIBS = $(EXTRA_DSO_LIBS)" - @echo "EXTRA_DSO_LDOPTS = $(EXTRA_DSO_LDOPTS)" - @echo "DEPENDENT_LIBS = $(DEPENDENT_LIBS)" - @echo -------------------------------------------------------------------------------- -endif - $(LOOP_OVER_PARALLEL_DIRS) - $(LOOP_OVER_DIRS) - -showbuild: - @echo "MOZ_BUILD_ROOT = $(MOZ_BUILD_ROOT)" - @echo "MOZ_WIDGET_TOOLKIT = $(MOZ_WIDGET_TOOLKIT)" - @echo "CC = $(CC)" - @echo "CXX = $(CXX)" - @echo "CCC = $(CCC)" - @echo "CPP = $(CPP)" - @echo "LD = $(LD)" - @echo "AR = $(AR)" - @echo "IMPLIB = $(IMPLIB)" - @echo "FILTER = $(FILTER)" - @echo "MKSHLIB = $(MKSHLIB)" - @echo "MKCSHLIB = $(MKCSHLIB)" - @echo "RC = $(RC)" - @echo "MC = $(MC)" - @echo "CFLAGS = $(CFLAGS)" - @echo "OS_CFLAGS = $(OS_CFLAGS)" - @echo "COMPILE_CFLAGS = $(COMPILE_CFLAGS)" - @echo "CXXFLAGS = $(CXXFLAGS)" - @echo "OS_CXXFLAGS = $(OS_CXXFLAGS)" - @echo "COMPILE_CXXFLAGS = $(COMPILE_CXXFLAGS)" - @echo "COMPILE_CMFLAGS = $(COMPILE_CMFLAGS)" - @echo "COMPILE_CMMFLAGS = $(COMPILE_CMMFLAGS)" - @echo "LDFLAGS = $(LDFLAGS)" - @echo "OS_LDFLAGS = $(OS_LDFLAGS)" - @echo "DSO_LDOPTS = $(DSO_LDOPTS)" - @echo "OS_INCLUDES = $(OS_INCLUDES)" - @echo "OS_LIBS = $(OS_LIBS)" - @echo "EXTRA_LIBS = $(EXTRA_LIBS)" - @echo "BIN_FLAGS = $(BIN_FLAGS)" - @echo "INCLUDES = $(INCLUDES)" - @echo "DEFINES = $(DEFINES)" - @echo "ACDEFINES = $(ACDEFINES)" - @echo "BIN_SUFFIX = $(BIN_SUFFIX)" - @echo "LIB_SUFFIX = $(LIB_SUFFIX)" - @echo "DLL_SUFFIX = $(DLL_SUFFIX)" - @echo "IMPORT_LIB_SUFFIX = $(IMPORT_LIB_SUFFIX)" - @echo "INSTALL = $(INSTALL)" - @echo "VPATH = $(VPATH)" - -showhost: - @echo "HOST_CC = $(HOST_CC)" - @echo "HOST_CXX = $(HOST_CXX)" - @echo "HOST_CFLAGS = $(HOST_CFLAGS)" - @echo "HOST_LDFLAGS = $(HOST_LDFLAGS)" - @echo "HOST_LIBS = $(HOST_LIBS)" - @echo "HOST_EXTRA_LIBS = $(HOST_EXTRA_LIBS)" - @echo "HOST_EXTRA_DEPS = $(HOST_EXTRA_DEPS)" - @echo "HOST_PROGRAM = $(HOST_PROGRAM)" - @echo "HOST_OBJS = $(HOST_OBJS)" - @echo "HOST_PROGOBJS = $(HOST_PROGOBJS)" - @echo "HOST_LIBRARY = $(HOST_LIBRARY)" - -showbuildmods:: - @echo "Module dirs = $(BUILD_MODULE_DIRS)" +ifndef INCLUDED_DEBUGMAKE_MK #{ + ## Only parse when an echo* or show* target is requested + ifneq (,$(call isTargetStem,echo,show)) + include $(topsrcdir)/config/makefiles/debugmake.mk + endif #} +endif #} documentation: @cd $(DEPTH) diff --git a/js/src/config/makefiles/debugmake.mk b/js/src/config/makefiles/debugmake.mk new file mode 100644 index 00000000000..dd21734003e --- /dev/null +++ b/js/src/config/makefiles/debugmake.mk @@ -0,0 +1,118 @@ +# -*- makefile -*- +# vim:set ts=8 sw=8 sts=8 noet: +# +# 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/. +# + +########################################################################### +## Intent: Helper targets for displaying variables and state information +########################################################################### + +# Support usage outside of config/rules.mk +ifndef INCLUDED_DEBUGMAKE_MK #{ + +echo-variable-%: + @echo "$($*)" + +echo-tiers: + @echo $(TIERS) + +echo-tier-dirs: + @$(foreach tier,$(TIERS),echo '$(tier):'; echo ' dirs: $(tier_$(tier)_dirs)'; echo ' staticdirs: $(tier_$(tier)_staticdirs)'; ) + +echo-dirs: + @echo $(DIRS) + +echo-module: + @echo $(MODULE) + +echo-depth-path: + @$(topsrcdir)/build/unix/print-depth-path.sh + +echo-module-name: + @$(topsrcdir)/build/package/rpm/print-module-name.sh + +echo-module-filelist: + @$(topsrcdir)/build/package/rpm/print-module-filelist.sh + +showtargs: +ifneq (,$(filter $(PROGRAM) $(HOST_PROGRAM) $(SIMPLE_PROGRAMS) $(HOST_LIBRARY) $(LIBRARY) $(SHARED_LIBRARY),$(TARGETS))) + @echo -------------------------------------------------------------------------------- + @echo "PROGRAM = $(PROGRAM)" + @echo "SIMPLE_PROGRAMS = $(SIMPLE_PROGRAMS)" + @echo "LIBRARY = $(LIBRARY)" + @echo "SHARED_LIBRARY = $(SHARED_LIBRARY)" + @echo "SHARED_LIBRARY_LIBS = $(SHARED_LIBRARY_LIBS)" + @echo "LIBS = $(LIBS)" + @echo "DEF_FILE = $(DEF_FILE)" + @echo "IMPORT_LIBRARY = $(IMPORT_LIBRARY)" + @echo "STATIC_LIBS = $(STATIC_LIBS)" + @echo "SHARED_LIBS = $(SHARED_LIBS)" + @echo "EXTRA_DSO_LIBS = $(EXTRA_DSO_LIBS)" + @echo "EXTRA_DSO_LDOPTS = $(EXTRA_DSO_LDOPTS)" + @echo "DEPENDENT_LIBS = $(DEPENDENT_LIBS)" + @echo -------------------------------------------------------------------------------- +endif + $(LOOP_OVER_PARALLEL_DIRS) + $(LOOP_OVER_DIRS) + +showbuild: + @echo "MOZ_BUILD_ROOT = $(MOZ_BUILD_ROOT)" + @echo "MOZ_WIDGET_TOOLKIT = $(MOZ_WIDGET_TOOLKIT)" + @echo "CC = $(CC)" + @echo "CXX = $(CXX)" + @echo "CCC = $(CCC)" + @echo "CPP = $(CPP)" + @echo "LD = $(LD)" + @echo "AR = $(AR)" + @echo "IMPLIB = $(IMPLIB)" + @echo "FILTER = $(FILTER)" + @echo "MKSHLIB = $(MKSHLIB)" + @echo "MKCSHLIB = $(MKCSHLIB)" + @echo "RC = $(RC)" + @echo "MC = $(MC)" + @echo "CFLAGS = $(CFLAGS)" + @echo "OS_CFLAGS = $(OS_CFLAGS)" + @echo "COMPILE_CFLAGS = $(COMPILE_CFLAGS)" + @echo "CXXFLAGS = $(CXXFLAGS)" + @echo "OS_CXXFLAGS = $(OS_CXXFLAGS)" + @echo "COMPILE_CXXFLAGS = $(COMPILE_CXXFLAGS)" + @echo "COMPILE_CMFLAGS = $(COMPILE_CMFLAGS)" + @echo "COMPILE_CMMFLAGS = $(COMPILE_CMMFLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" + @echo "OS_LDFLAGS = $(OS_LDFLAGS)" + @echo "DSO_LDOPTS = $(DSO_LDOPTS)" + @echo "OS_INCLUDES = $(OS_INCLUDES)" + @echo "OS_LIBS = $(OS_LIBS)" + @echo "EXTRA_LIBS = $(EXTRA_LIBS)" + @echo "BIN_FLAGS = $(BIN_FLAGS)" + @echo "INCLUDES = $(INCLUDES)" + @echo "DEFINES = $(DEFINES)" + @echo "ACDEFINES = $(ACDEFINES)" + @echo "BIN_SUFFIX = $(BIN_SUFFIX)" + @echo "LIB_SUFFIX = $(LIB_SUFFIX)" + @echo "DLL_SUFFIX = $(DLL_SUFFIX)" + @echo "IMPORT_LIB_SUFFIX = $(IMPORT_LIB_SUFFIX)" + @echo "INSTALL = $(INSTALL)" + @echo "VPATH = $(VPATH)" + +showhost: + @echo "HOST_CC = $(HOST_CC)" + @echo "HOST_CXX = $(HOST_CXX)" + @echo "HOST_CFLAGS = $(HOST_CFLAGS)" + @echo "HOST_LDFLAGS = $(HOST_LDFLAGS)" + @echo "HOST_LIBS = $(HOST_LIBS)" + @echo "HOST_EXTRA_LIBS = $(HOST_EXTRA_LIBS)" + @echo "HOST_EXTRA_DEPS = $(HOST_EXTRA_DEPS)" + @echo "HOST_PROGRAM = $(HOST_PROGRAM)" + @echo "HOST_OBJS = $(HOST_OBJS)" + @echo "HOST_PROGOBJS = $(HOST_PROGOBJS)" + @echo "HOST_LIBRARY = $(HOST_LIBRARY)" + +showbuildmods:: + @echo "Module dirs = $(BUILD_MODULE_DIRS)" + +INCLUDED_DEBUGMAKE_MK = 1 +endif #} diff --git a/js/src/config/makefiles/makeutils.mk b/js/src/config/makefiles/makeutils.mk index a0a9712f212..71ebe281c85 100644 --- a/js/src/config/makefiles/makeutils.mk +++ b/js/src/config/makefiles/makeutils.mk @@ -67,8 +67,11 @@ else endif # Intent: Conditionals for detecting common/tier target use -# Todo: are check, install, test needed ? -isTargetStem = $(sort $(foreach pat, $(1)% %$(1), $(call is_XinY,$(pat),${$(mcg_goals)}))) +isTargetStem = $(sort \ + $(foreach var,$(getargv),\ + $(foreach pat,$(var)% %$(var),\ + $(call is_XinY,$(pat),${$(mcg_goals)})\ + ))) isTargetStemClean = $(call isTargetStem,clean) isTargetStemExport = $(call isTargetStem,export) isTargetStemLibs = $(call isTargetStem,libs) diff --git a/js/src/config/makefiles/xpcshell.mk b/js/src/config/makefiles/xpcshell.mk new file mode 100644 index 00000000000..bbdf5400cef --- /dev/null +++ b/js/src/config/makefiles/xpcshell.mk @@ -0,0 +1,128 @@ +# -*- makefile -*- +# vim:set ts=8 sw=8 sts=8 noet: +# +# 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/. +# + +ifndef INCLUDED_TESTS_XPCSHELL_MK #{ + +ifdef XPCSHELL_TESTS #{ + +ifndef relativesrcdir +$(error Must define relativesrcdir when defining XPCSHELL_TESTS.) +endif + +define _INSTALL_TESTS +$(DIR_INSTALL) $(wildcard $(srcdir)/$(dir)/*) $(testxpcobjdir)/$(relativesrcdir)/$(dir) + +endef # do not remove the blank line! + +SOLO_FILE ?= $(error Specify a test filename in SOLO_FILE when using check-interactive or check-one) + +testxpcsrcdir = $(topsrcdir)/testing/xpcshell + +libs:: libs-xpcshell-tests + +########################################################################### +libs-xpcshell-tests: + $(foreach dir,$(XPCSHELL_TESTS),$(_INSTALL_TESTS)) +ifndef NO_XPCSHELL_MANIFEST_CHECK #{ + $(PYTHON) $(MOZILLA_DIR)/build/xpccheck.py \ + $(topsrcdir) \ + $(topsrcdir)/testing/xpcshell/xpcshell.ini \ + $(addprefix $(MOZILLA_DIR)/$(relativesrcdir)/,$(XPCSHELL_TESTS)) +endif #} NO_XPCSHELL_MANIFEST_CHECK + +########################################################################### +# Execute all tests in the $(XPCSHELL_TESTS) directories. +# See also testsuite-targets.mk 'xpcshell-tests' target for global execution. +xpcshell-tests: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(DEPTH)/_tests/mozbase/mozinfo \ + $(testxpcsrcdir)/runxpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --tests-root-dir=$(testxpcobjdir) \ + --testing-modules-dir=$(DEPTH)/_tests/modules \ + --xunit-file=$(testxpcobjdir)/$(relativesrcdir)/results.xml \ + --xunit-suite-name=xpcshell \ + $(EXTRA_TEST_ARGS) \ + $(LIBXUL_DIST)/bin/xpcshell \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +xpcshell-tests-remote: DM_TRANS?=adb +xpcshell-tests-remote: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(topsrcdir)/build/mobile \ + $(topsrcdir)/testing/xpcshell/remotexpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + $(EXTRA_TEST_ARGS) \ + --dm_trans=$(DM_TRANS) \ + --deviceIP=${TEST_DEVICE} \ + --objdir=$(DEPTH) \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +########################################################################### +# Execute a single test, specified in $(SOLO_FILE), but don't automatically +# start the test. Instead, present the xpcshell prompt so the user can +# attach a debugger and then start the test. +check-interactive: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(DEPTH)/_tests/mozbase/mozinfo \ + $(testxpcsrcdir)/runxpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --test-path=$(SOLO_FILE) \ + --testing-modules-dir=$(DEPTH)/_tests/modules \ + --profile-name=$(MOZ_APP_NAME) \ + --interactive \ + $(LIBXUL_DIST)/bin/xpcshell \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +# Execute a single test, specified in $(SOLO_FILE) +check-one: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(DEPTH)/_tests/mozbase/mozinfo \ + $(testxpcsrcdir)/runxpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --test-path=$(SOLO_FILE) \ + --testing-modules-dir=$(DEPTH)/_tests/modules \ + --profile-name=$(MOZ_APP_NAME) \ + --verbose \ + $(EXTRA_TEST_ARGS) \ + $(LIBXUL_DIST)/bin/xpcshell \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + +check-one-remote: DM_TRANS?=adb +check-one-remote: + $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ + -I$(topsrcdir)/build \ + -I$(topsrcdir)/build/mobile \ + $(testxpcsrcdir)/remotexpcshelltests.py \ + --symbols-path=$(DIST)/crashreporter-symbols \ + --build-info-json=$(DEPTH)/mozinfo.json \ + --test-path=$(SOLO_FILE) \ + --profile-name=$(MOZ_APP_NAME) \ + --verbose \ + $(EXTRA_TEST_ARGS) \ + --dm_trans=$(DM_TRANS) \ + --deviceIP=${TEST_DEVICE} \ + --objdir=$(DEPTH) \ + --noSetup \ + $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) + + +.PHONY: xpcshell-tests check-interactive check-one libs-xpcshell-tests + +endif #} XPCSHELL_TESTS + +INCLUDED_TESTS_XPCSHELL_MK = 1 +endif #} INCLUDED_TESTS_XPCSHELL_MK diff --git a/js/src/config/rules.mk b/js/src/config/rules.mk index ebcf62dc7d3..948f6b3dafb 100644 --- a/js/src/config/rules.mk +++ b/js/src/config/rules.mk @@ -85,108 +85,9 @@ ifdef ENABLE_TESTS # locally against non-current test code. DIRS += $(TEST_DIRS) -ifdef XPCSHELL_TESTS -ifndef relativesrcdir -$(error Must define relativesrcdir when defining XPCSHELL_TESTS.) -endif - -define _INSTALL_TESTS -$(DIR_INSTALL) $(wildcard $(srcdir)/$(dir)/*) $(testxpcobjdir)/$(relativesrcdir)/$(dir) - -endef # do not remove the blank line! - -SOLO_FILE ?= $(error Specify a test filename in SOLO_FILE when using check-interactive or check-one) - -libs:: - $(foreach dir,$(XPCSHELL_TESTS),$(_INSTALL_TESTS)) -ifndef NO_XPCSHELL_MANIFEST_CHECK - $(PYTHON) $(MOZILLA_DIR)/build/xpccheck.py \ - $(topsrcdir) \ - $(topsrcdir)/testing/xpcshell/xpcshell.ini \ - $(addprefix $(MOZILLA_DIR)/$(relativesrcdir)/,$(XPCSHELL_TESTS)) -endif - -testxpcsrcdir = $(topsrcdir)/testing/xpcshell - -# Execute all tests in the $(XPCSHELL_TESTS) directories. -# See also testsuite-targets.mk 'xpcshell-tests' target for global execution. -xpcshell-tests: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build -I$(DEPTH)/_tests/mozbase/mozinfo \ - $(testxpcsrcdir)/runxpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --tests-root-dir=$(testxpcobjdir) \ - --testing-modules-dir=$(DEPTH)/_tests/modules \ - --xunit-file=$(testxpcobjdir)/$(relativesrcdir)/results.xml \ - --xunit-suite-name=xpcshell \ - $(EXTRA_TEST_ARGS) \ - $(LIBXUL_DIST)/bin/xpcshell \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -xpcshell-tests-remote: DM_TRANS?=adb -xpcshell-tests-remote: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build \ - -I$(topsrcdir)/build/mobile \ - $(topsrcdir)/testing/xpcshell/remotexpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - $(EXTRA_TEST_ARGS) \ - --dm_trans=$(DM_TRANS) \ - --deviceIP=${TEST_DEVICE} \ - --objdir=$(DEPTH) \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -# Execute a single test, specified in $(SOLO_FILE), but don't automatically -# start the test. Instead, present the xpcshell prompt so the user can -# attach a debugger and then start the test. -check-interactive: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build -I$(DEPTH)/_tests/mozbase/mozinfo \ - $(testxpcsrcdir)/runxpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --test-path=$(SOLO_FILE) \ - --testing-modules-dir=$(DEPTH)/_tests/modules \ - --profile-name=$(MOZ_APP_NAME) \ - --interactive \ - $(LIBXUL_DIST)/bin/xpcshell \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -# Execute a single test, specified in $(SOLO_FILE) -check-one: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build -I$(DEPTH)/_tests/mozbase/mozinfo \ - $(testxpcsrcdir)/runxpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --test-path=$(SOLO_FILE) \ - --testing-modules-dir=$(DEPTH)/_tests/modules \ - --profile-name=$(MOZ_APP_NAME) \ - --verbose \ - $(EXTRA_TEST_ARGS) \ - $(LIBXUL_DIST)/bin/xpcshell \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) - -check-one-remote: DM_TRANS?=adb -check-one-remote: - $(PYTHON) -u $(topsrcdir)/config/pythonpath.py \ - -I$(topsrcdir)/build \ - -I$(topsrcdir)/build/mobile \ - $(testxpcsrcdir)/remotexpcshelltests.py \ - --symbols-path=$(DIST)/crashreporter-symbols \ - --build-info-json=$(DEPTH)/mozinfo.json \ - --test-path=$(SOLO_FILE) \ - --profile-name=$(MOZ_APP_NAME) \ - --verbose \ - $(EXTRA_TEST_ARGS) \ - --dm_trans=$(DM_TRANS) \ - --deviceIP=${TEST_DEVICE} \ - --objdir=$(DEPTH) \ - --noSetup \ - $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir)) -endif # XPCSHELL_TESTS +ifndef INCLUDED_TESTS_XPCSHELL_MK #{ + include $(topsrcdir)/config/makefiles/xpcshell.mk +endif #} ifdef CPP_UNIT_TESTS @@ -207,7 +108,7 @@ check:: endif # CPP_UNIT_TESTS -.PHONY: check xpcshell-tests check-interactive check-one +.PHONY: check endif # ENABLE_TESTS @@ -1375,6 +1276,7 @@ export:: $(AUTOCFG_JS_EXPORTS) $(FINAL_TARGET)/defaults/autoconfig endif endif + ################################################################################ # Export the elements of $(XPIDLSRCS) # generating .h and .xpt files and moving them to the appropriate places. @@ -1848,106 +1750,12 @@ TAGS: $(SUBMAKEFILES) $(CSRCS) $(CPPSRCS) $(wildcard *.h) $(LOOP_OVER_PARALLEL_DIRS) $(LOOP_OVER_DIRS) -echo-variable-%: - @echo "$($*)" - -echo-tiers: - @echo $(TIERS) - -echo-tier-dirs: - @$(foreach tier,$(TIERS),echo '$(tier):'; echo ' dirs: $(tier_$(tier)_dirs)'; echo ' staticdirs: $(tier_$(tier)_staticdirs)'; ) - -echo-dirs: - @echo $(DIRS) - -echo-module: - @echo $(MODULE) - -echo-depth-path: - @$(topsrcdir)/build/unix/print-depth-path.sh - -echo-module-name: - @$(topsrcdir)/build/package/rpm/print-module-name.sh - -echo-module-filelist: - @$(topsrcdir)/build/package/rpm/print-module-filelist.sh - -showtargs: -ifneq (,$(filter $(PROGRAM) $(HOST_PROGRAM) $(SIMPLE_PROGRAMS) $(HOST_LIBRARY) $(LIBRARY) $(SHARED_LIBRARY),$(TARGETS))) - @echo -------------------------------------------------------------------------------- - @echo "PROGRAM = $(PROGRAM)" - @echo "SIMPLE_PROGRAMS = $(SIMPLE_PROGRAMS)" - @echo "LIBRARY = $(LIBRARY)" - @echo "SHARED_LIBRARY = $(SHARED_LIBRARY)" - @echo "SHARED_LIBRARY_LIBS = $(SHARED_LIBRARY_LIBS)" - @echo "LIBS = $(LIBS)" - @echo "DEF_FILE = $(DEF_FILE)" - @echo "IMPORT_LIBRARY = $(IMPORT_LIBRARY)" - @echo "STATIC_LIBS = $(STATIC_LIBS)" - @echo "SHARED_LIBS = $(SHARED_LIBS)" - @echo "EXTRA_DSO_LIBS = $(EXTRA_DSO_LIBS)" - @echo "EXTRA_DSO_LDOPTS = $(EXTRA_DSO_LDOPTS)" - @echo "DEPENDENT_LIBS = $(DEPENDENT_LIBS)" - @echo -------------------------------------------------------------------------------- -endif - $(LOOP_OVER_PARALLEL_DIRS) - $(LOOP_OVER_DIRS) - -showbuild: - @echo "MOZ_BUILD_ROOT = $(MOZ_BUILD_ROOT)" - @echo "MOZ_WIDGET_TOOLKIT = $(MOZ_WIDGET_TOOLKIT)" - @echo "CC = $(CC)" - @echo "CXX = $(CXX)" - @echo "CCC = $(CCC)" - @echo "CPP = $(CPP)" - @echo "LD = $(LD)" - @echo "AR = $(AR)" - @echo "IMPLIB = $(IMPLIB)" - @echo "FILTER = $(FILTER)" - @echo "MKSHLIB = $(MKSHLIB)" - @echo "MKCSHLIB = $(MKCSHLIB)" - @echo "RC = $(RC)" - @echo "MC = $(MC)" - @echo "CFLAGS = $(CFLAGS)" - @echo "OS_CFLAGS = $(OS_CFLAGS)" - @echo "COMPILE_CFLAGS = $(COMPILE_CFLAGS)" - @echo "CXXFLAGS = $(CXXFLAGS)" - @echo "OS_CXXFLAGS = $(OS_CXXFLAGS)" - @echo "COMPILE_CXXFLAGS = $(COMPILE_CXXFLAGS)" - @echo "COMPILE_CMFLAGS = $(COMPILE_CMFLAGS)" - @echo "COMPILE_CMMFLAGS = $(COMPILE_CMMFLAGS)" - @echo "LDFLAGS = $(LDFLAGS)" - @echo "OS_LDFLAGS = $(OS_LDFLAGS)" - @echo "DSO_LDOPTS = $(DSO_LDOPTS)" - @echo "OS_INCLUDES = $(OS_INCLUDES)" - @echo "OS_LIBS = $(OS_LIBS)" - @echo "EXTRA_LIBS = $(EXTRA_LIBS)" - @echo "BIN_FLAGS = $(BIN_FLAGS)" - @echo "INCLUDES = $(INCLUDES)" - @echo "DEFINES = $(DEFINES)" - @echo "ACDEFINES = $(ACDEFINES)" - @echo "BIN_SUFFIX = $(BIN_SUFFIX)" - @echo "LIB_SUFFIX = $(LIB_SUFFIX)" - @echo "DLL_SUFFIX = $(DLL_SUFFIX)" - @echo "IMPORT_LIB_SUFFIX = $(IMPORT_LIB_SUFFIX)" - @echo "INSTALL = $(INSTALL)" - @echo "VPATH = $(VPATH)" - -showhost: - @echo "HOST_CC = $(HOST_CC)" - @echo "HOST_CXX = $(HOST_CXX)" - @echo "HOST_CFLAGS = $(HOST_CFLAGS)" - @echo "HOST_LDFLAGS = $(HOST_LDFLAGS)" - @echo "HOST_LIBS = $(HOST_LIBS)" - @echo "HOST_EXTRA_LIBS = $(HOST_EXTRA_LIBS)" - @echo "HOST_EXTRA_DEPS = $(HOST_EXTRA_DEPS)" - @echo "HOST_PROGRAM = $(HOST_PROGRAM)" - @echo "HOST_OBJS = $(HOST_OBJS)" - @echo "HOST_PROGOBJS = $(HOST_PROGOBJS)" - @echo "HOST_LIBRARY = $(HOST_LIBRARY)" - -showbuildmods:: - @echo "Module dirs = $(BUILD_MODULE_DIRS)" +ifndef INCLUDED_DEBUGMAKE_MK #{ + ## Only parse when an echo* or show* target is requested + ifneq (,$(call isTargetStem,echo,show)) + include $(topsrcdir)/config/makefiles/debugmake.mk + endif #} +endif #} documentation: @cd $(DEPTH)