mirror of https://github.com/roytam1/UXP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.4 KiB
68 lines
2.4 KiB
# -*- 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 |
|
|
|
|