☠☠ backed out by f25928e4847d ☠ ☠ | |
author | Joey Armstrong <joey@mozilla.com> |
Thu, 18 Aug 2011 17:16:21 -0400 | |
changeset 79262 | cb715f8a13635cee5de141aadc7c54c88a61ea9e |
parent 79261 | d1bbc6ce76823507aa3190a19b33893c3a1dfdc6 |
child 79263 | a2762135831ef473ddc590cceaa63c1fffeebab9 |
push id | 434 |
push user | clegnitto@mozilla.com |
push date | Wed, 21 Dec 2011 12:10:54 +0000 |
treeherder | mozilla-beta@bddb6ed8dd47 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | ted |
bugs | 680246 |
milestone | 10.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/allmakefiles.sh +++ b/allmakefiles.sh @@ -57,16 +57,17 @@ fi # add_makefiles " Makefile build/Makefile build/pgo/Makefile build/pgo/blueprint/Makefile build/pgo/js-input/Makefile build/unix/Makefile +build/unix/test/Makefile build/win32/Makefile build/win32/crashinjectdll/Makefile config/Makefile config/autoconf.mk config/mkdepend/Makefile config/nspr/Makefile config/doxygen.cfg config/expandlibs_config.py
--- a/build/unix/test/Makefile.in +++ b/build/unix/test/Makefile.in @@ -37,40 +37,34 @@ # ***** END LICENSE BLOCK ***** DEPTH = ../../.. topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk + +TS = .ts +GENERATED_DIRS += $(TS) +GARBAGE_DIRS += $(TS) + include $(topsrcdir)/config/rules.mk ################################################## ## Gather a list of tests, generate timestamp deps ################################################## -TS=.ts ifneq (,$(findstring check,$(MAKECMDGOALS))) allsrc = $(wildcard $(srcdir)/*) tests2run = $(notdir $(filter %.tpl,$(allsrc))) check_targets += $(addprefix $(TS)/,$(tests2run)) endif -check:: $(TS) $(check_targets) +check:: $(AUTO_DEPS) $(check_targets) ############################################# # Only invoke tests when sources have changed ############################################# $(TS)/%: $(srcdir)/% $(PERL) $(srcdir)/runtest $< @touch $@ -##################################################### -## Extra dep needed to synchronize parallel execution -##################################################### -$(TS): $(TS)/.done -$(TS)/.done: - $(MKDIR) -p $(dir $@) - touch $@ - -GARBAGE_DIRS += $(TS) - # EOF
new file mode 100644 --- /dev/null +++ b/config/makefiles/autotargets.mk @@ -0,0 +1,70 @@ +# -*- makefile -*- +# vim:set ts=8 sw=8 sts=8 noet: +# +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# The Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2011 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Joey Armstrong <joey@mozilla.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either of the GNU General Public License Version 2 or later (the "GPL"), +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +SPACE ?= $(NULL) $(NULL) + + get_auto_arg = $(word $(2),$(subst ^,$(SPACE),$(1))) # get(1=var, 2=offset) +gen_auto_macro = $(addsuffix ^$(1),$(2)) # gen(1=target_pattern, 2=value) + +# Library macros +mkdir_deps = $(foreach dir,$($(1)),$(dir)/.mkdir.done) + +########################################################################### +## Automatic dependency macro generation. +## Macros should be defined prior to the inclusion of rules.mk +## GENERATED_DIRS - a list of directories to create +## AUTO_DEPS - [returned] a list of generated deps targets can depend on +## Usage: +## all bootstrap: $(AUTO_DEPS) +## target: $(dir)/.mkdir.done $(dir)/foobar +## mydirs = $(call mkdir_deps,dirlist_macro_name) +########################################################################### +ifdef GENERATED_DIRS + AUTO_DEPS += $(call mkdir_deps,GENERATED_DIRS) +endif + +.SECONDARY: $(GENERATED_DIRS) # preserve intermediates: .mkdir.done + +################################################################### +## Thread safe directory creation +################################################################### +%/.mkdir.done: + $(MKDIR) -p $(dir $@) + @touch $@
--- a/config/rules.mk +++ b/config/rules.mk @@ -2025,8 +2025,17 @@ FREEZE_VARIABLES = \ CHECK_FROZEN_VARIABLES = $(foreach var,$(FREEZE_VARIABLES), \ $(if $(subst $($(var)_FROZEN),,'$($(var))'),$(error Makefile variable '$(var)' changed value after including rules.mk. Was $($(var)_FROZEN), now $($(var)).))) libs export libs:: $(CHECK_FROZEN_VARIABLES) default all:: if test -d $(DIST)/bin ; then touch $(DIST)/bin/.purgecaches ; fi + + +############################################################################# +# Derived targets and dependencies + +ifndef INCLUDED_AUTOTARGETS_MK +include $(topsrcdir)/config/makefiles/autotargets.mk +endif +
new file mode 100644 --- /dev/null +++ b/js/src/config/makefiles/autotargets.mk @@ -0,0 +1,70 @@ +# -*- makefile -*- +# vim:set ts=8 sw=8 sts=8 noet: +# +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# The Mozilla Foundation +# Portions created by the Initial Developer are Copyright (C) 2011 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Joey Armstrong <joey@mozilla.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either of the GNU General Public License Version 2 or later (the "GPL"), +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +SPACE ?= $(NULL) $(NULL) + + get_auto_arg = $(word $(2),$(subst ^,$(SPACE),$(1))) # get(1=var, 2=offset) +gen_auto_macro = $(addsuffix ^$(1),$(2)) # gen(1=target_pattern, 2=value) + +# Library macros +mkdir_deps = $(foreach dir,$($(1)),$(dir)/.mkdir.done) + +########################################################################### +## Automatic dependency macro generation. +## Macros should be defined prior to the inclusion of rules.mk +## GENERATED_DIRS - a list of directories to create +## AUTO_DEPS - [returned] a list of generated deps targets can depend on +## Usage: +## all bootstrap: $(AUTO_DEPS) +## target: $(dir)/.mkdir.done $(dir)/foobar +## mydirs = $(call mkdir_deps,dirlist_macro_name) +########################################################################### +ifdef GENERATED_DIRS + AUTO_DEPS += $(call mkdir_deps,GENERATED_DIRS) +endif + +.SECONDARY: $(GENERATED_DIRS) # preserve intermediates: .mkdir.done + +################################################################### +## Thread safe directory creation +################################################################### +%/.mkdir.done: + $(MKDIR) -p $(dir $@) + @touch $@
--- a/js/src/config/rules.mk +++ b/js/src/config/rules.mk @@ -2025,8 +2025,17 @@ FREEZE_VARIABLES = \ CHECK_FROZEN_VARIABLES = $(foreach var,$(FREEZE_VARIABLES), \ $(if $(subst $($(var)_FROZEN),,'$($(var))'),$(error Makefile variable '$(var)' changed value after including rules.mk. Was $($(var)_FROZEN), now $($(var)).))) libs export libs:: $(CHECK_FROZEN_VARIABLES) default all:: if test -d $(DIST)/bin ; then touch $(DIST)/bin/.purgecaches ; fi + + +############################################################################# +# Derived targets and dependencies + +ifndef INCLUDED_AUTOTARGETS_MK +include $(topsrcdir)/config/makefiles/autotargets.mk +endif +