Skip to content

Commit

Permalink
bug 742391: split config/rules.mk - file batch #1
Browse files Browse the repository at this point in the history
UltraBlame original commit: 98ca9bd48170aac6a183a165a57b28f05a41b4f5
  • Loading branch information
marco-c committed Sep 28, 2019
1 parent 999cef1 commit fc493ca
Show file tree
Hide file tree
Showing 9 changed files with 549 additions and 410 deletions.
118 changes: 118 additions & 0 deletions config/makefiles/debugmake.mk
Original file line number Diff line number Diff line change
@@ -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 #}
7 changes: 5 additions & 2 deletions config/makefiles/makeutils.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
25 changes: 25 additions & 0 deletions config/makefiles/test/check_XinY.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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)))

128 changes: 128 additions & 0 deletions config/makefiles/xpcshell.mk
Original file line number Diff line number Diff line change
@@ -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
Loading

0 comments on commit fc493ca

Please sign in to comment.