diff options
Diffstat (limited to 'config/makefiles/functions.mk')
-rw-r--r-- | config/makefiles/functions.mk | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/config/makefiles/functions.mk b/config/makefiles/functions.mk new file mode 100644 index 0000000000..65c9a6749f --- /dev/null +++ b/config/makefiles/functions.mk @@ -0,0 +1,41 @@ +# +# 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/. + +# +# functions.mk +# +# Defines functions that are needed by various Makefiles throughout the build +# system, which are needed before config.mk can be included. +# + +# Define an include-at-most-once flag +ifdef INCLUDED_FUNCTIONS_MK +$(error Do not include functions.mk twice!) +endif +INCLUDED_FUNCTIONS_MK = 1 + +core_abspath = $(error core_abspath is unsupported, use $$(abspath) instead) +core_realpath = $(error core_realpath is unsupported) + +core_winabspath = $(error core_winabspath is unsupported) + +# Run a named Python build action. The first argument is the name of the build +# action. The second argument are the arguments to pass to the action (space +# delimited arguments). e.g. +# +# libs:: +# $(call py_action,purge_manifests,_build_manifests/purge/foo.manifest) +# +# The first argument can optionally contain the name of the file being created +# or processed. e.g. +# libs:: +# $(call py_action,purge_manifests foo.manifest,_build_manifests/purge/foo.manifest) +# This optional name will be displayed in build profiles. +define py_action +$(call BUILDSTATUS,START_$(firstword $(1)) $(or $(word 2,$(1)),$(2))) +$(if $(3),cd $(3) && )$(PYTHON3) -m mozbuild.action.$(firstword $(1)) $(2) +$(call BUILDSTATUS,END_$(firstword $(1)) $(or $(word 2,$(1)),$(2))) + +endef |