зеркало из https://github.com/mozilla/gecko-dev.git
69 строки
2.4 KiB
Makefile
69 строки
2.4 KiB
Makefile
# -*- 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/.
|
|
|
|
# The purpose of this file is to pull in non-recursive targets when performing
|
|
# a partial tree (not top-level) build. This will allow people to continue to
|
|
# build individual directories while some of the targets may not be normally
|
|
# defined in that make file.
|
|
#
|
|
# Non-recursive targets are attached to existing make targets. The
|
|
# NONRECURSIVE_TARGETS variable lists the make targets that modified. For
|
|
# each target in this list, the NONRECURSIVE_TARGET_<target> variable will
|
|
# contain a list of partial variable names. We will then look in variables
|
|
# named NONRECURSIVE_TARGETS_<target>_<fragment>_* for information describing
|
|
# how to evaluate non-recursive make targets.
|
|
#
|
|
# Targets are defined by the following variables:
|
|
#
|
|
# FILE - The make file to evaluate. This is equivalent to
|
|
# |make -f <FILE>|
|
|
# DIRECTORY - The directory whose Makefile to evaluate. This is
|
|
# equivalent to |make -C <DIRECTORY>|.
|
|
# TARGETS - Targets to evaluate in that make file.
|
|
#
|
|
# Only 1 of FILE or DIRECTORY may be defined.
|
|
#
|
|
# For example:
|
|
#
|
|
# NONRECURSIVE_TARGETS = export libs
|
|
# NONRECURSIVE_TARGETS_export = headers
|
|
# NONRECURSIVE_TARGETS_export_headers_FILE = /path/to/exports.mk
|
|
# NONRECURSIVE_TARGETS_export_headers_TARGETS = $(DIST)/include/foo.h $(DIST)/include/bar.h
|
|
# NONRECURSIVE_TARGETS_libs = cppsrcs
|
|
# NONRECURSIVE_TARGETS_libs_cppsrcs_DIRECTORY = $(DEPTH)/foo
|
|
# NONRECURSIVE_TARGETS_libs_cppsrcs_TARGETS = /path/to/foo.o /path/to/bar.o
|
|
#
|
|
# Will get turned into the following:
|
|
#
|
|
# exports::
|
|
# $(MAKE) -C $(DEPTH) -f /path/to/exports.mk $(DIST)/include/foo.h $(DIST)/include/bar.h
|
|
#
|
|
# libs::
|
|
# $(MAKE) -C $(DEPTH)/foo /path/to/foo.o /path/to/bar.o
|
|
|
|
ifndef INCLUDED_NONRECURSIVE_MK
|
|
|
|
define define_nonrecursive_target
|
|
$(1)::
|
|
$$(MAKE) -C $(or $(4),$$(DEPTH)) $(addprefix -f ,$(3)) $(2)
|
|
endef
|
|
|
|
$(foreach target,$(NONRECURSIVE_TARGETS), \
|
|
$(foreach entry,$(NONRECURSIVE_TARGETS_$(target)), \
|
|
$(eval $(call define_nonrecursive_target, \
|
|
$(target), \
|
|
$(NONRECURSIVE_TARGETS_$(target)_$(entry)_TARGETS), \
|
|
$(NONRECURSIVE_TARGETS_$(target)_$(entry)_FILE), \
|
|
$(NONRECURSIVE_TARGETS_$(target)_$(entry)_DIRECTORY), \
|
|
)) \
|
|
) \
|
|
)
|
|
|
|
INCLUDED_NONRECURSIVE_MK := 1
|
|
endif
|
|
|