mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 860957 - Support for invoking non-recursive targets during partial tree builds; r=glandium
This commit is contained in:
parent
19dc83c3d3
commit
2a72dc0d95
@ -17,6 +17,8 @@ $(error GNU Make 3.80 or higher is required)
|
||||
endif
|
||||
endif
|
||||
|
||||
export TOPLEVEL_BUILD := 1
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
default::
|
||||
|
62
config/makefiles/nonrecursive.mk
Normal file
62
config/makefiles/nonrecursive.mk
Normal file
@ -0,0 +1,62 @@
|
||||
# -*- 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.
|
||||
# TARGETS - Targets to evaluate in that make file.
|
||||
#
|
||||
# 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_FILE = /path/to/compilation.mk
|
||||
# NONRECURSIVE_TARGETS_libs_cppsrcs_TARGETS = /path/to/foo.o /path/to/bar.o
|
||||
#
|
||||
# Will get turned into the following:
|
||||
#
|
||||
# exports::
|
||||
# $(MAKE) -f /path/to/exports.mk $(DIST)/include/foo.h $(DIST)/include/bar.h
|
||||
#
|
||||
# libs::
|
||||
# $(MAKE) -f /path/to/compilation.mk /path/to/foo.o /path/to/bar.o
|
||||
|
||||
ifndef INCLUDED_NONRECURSIVE_MK
|
||||
|
||||
define define_nonrecursive_target
|
||||
$(1)::
|
||||
cd $$(DEPTH) && $$(MAKE) -f $(2) $(3)
|
||||
endef
|
||||
|
||||
$(foreach target,$(NONRECURSIVE_TARGETS), \
|
||||
$(foreach entry,$(NONRECURSIVE_TARGETS_$(target)), \
|
||||
$(eval $(call define_nonrecursive_target, \
|
||||
$(target), \
|
||||
$(NONRECURSIVE_TARGETS_$(target)_$(entry)_FILE), \
|
||||
$(NONRECURSIVE_TARGETS_$(target)_$(entry)_TARGETS) \
|
||||
)) \
|
||||
) \
|
||||
)
|
||||
|
||||
INCLUDED_NONRECURSIVE_MK := 1
|
||||
endif
|
||||
|
@ -1728,6 +1728,11 @@ $(foreach category,$(PP_TARGETS), \
|
||||
) \
|
||||
)
|
||||
|
||||
# Pull in non-recursive targets if this is a partial tree build.
|
||||
ifndef TOPLEVEL_BUILD
|
||||
include $(topsrcdir)/config/makefiles/nonrecursive.mk
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Special gmake rules.
|
||||
################################################################################
|
||||
|
@ -8,6 +8,8 @@ DEPTH = @DEPTH@
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
|
||||
TOPLEVEL_BUILD := 1
|
||||
|
||||
run_for_side_effects := $(shell echo "MAKE: $(MAKE)")
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
|
62
js/src/config/makefiles/nonrecursive.mk
Normal file
62
js/src/config/makefiles/nonrecursive.mk
Normal file
@ -0,0 +1,62 @@
|
||||
# -*- 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.
|
||||
# TARGETS - Targets to evaluate in that make file.
|
||||
#
|
||||
# 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_FILE = /path/to/compilation.mk
|
||||
# NONRECURSIVE_TARGETS_libs_cppsrcs_TARGETS = /path/to/foo.o /path/to/bar.o
|
||||
#
|
||||
# Will get turned into the following:
|
||||
#
|
||||
# exports::
|
||||
# $(MAKE) -f /path/to/exports.mk $(DIST)/include/foo.h $(DIST)/include/bar.h
|
||||
#
|
||||
# libs::
|
||||
# $(MAKE) -f /path/to/compilation.mk /path/to/foo.o /path/to/bar.o
|
||||
|
||||
ifndef INCLUDED_NONRECURSIVE_MK
|
||||
|
||||
define define_nonrecursive_target
|
||||
$(1)::
|
||||
cd $$(DEPTH) && $$(MAKE) -f $(2) $(3)
|
||||
endef
|
||||
|
||||
$(foreach target,$(NONRECURSIVE_TARGETS), \
|
||||
$(foreach entry,$(NONRECURSIVE_TARGETS_$(target)), \
|
||||
$(eval $(call define_nonrecursive_target, \
|
||||
$(target), \
|
||||
$(NONRECURSIVE_TARGETS_$(target)_$(entry)_FILE), \
|
||||
$(NONRECURSIVE_TARGETS_$(target)_$(entry)_TARGETS) \
|
||||
)) \
|
||||
) \
|
||||
)
|
||||
|
||||
INCLUDED_NONRECURSIVE_MK := 1
|
||||
endif
|
||||
|
@ -1728,6 +1728,11 @@ $(foreach category,$(PP_TARGETS), \
|
||||
) \
|
||||
)
|
||||
|
||||
# Pull in non-recursive targets if this is a partial tree build.
|
||||
ifndef TOPLEVEL_BUILD
|
||||
include $(topsrcdir)/config/makefiles/nonrecursive.mk
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Special gmake rules.
|
||||
################################################################################
|
||||
|
Loading…
Reference in New Issue
Block a user