author | Wes Kocher <wkocher@mozilla.com> |
Tue, 15 Oct 2013 16:57:00 -0700 | |
changeset 150845 | f6cd58cf99ff7ffa8c0dba46d584b20ad79ff87a |
parent 150844 | f5838290c7059fc279c1135e1a9f62690954548d |
child 150846 | 63321a464309937658f29bbb0be94498f1f8c261 |
push id | 25469 |
push user | cbook@mozilla.com |
push date | Wed, 16 Oct 2013 10:46:01 +0000 |
treeherder | mozilla-central@afae5911a1e0 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 925605 |
milestone | 27.0a1 |
backs out | 5f0bfb16fa4a5fd22e5828277e7e4ed0c9747f88 |
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/client.mk +++ b/client.mk @@ -80,16 +80,23 @@ endif #################################### # Sanity checks # Windows checks. ifneq (,$(findstring mingw,$(CONFIG_GUESS))) +# Require pymake (as opposed to GNU make). +ifndef .PYMAKE +$(error Pymake is required to build on Windows. Run |./mach build| to \ +automatically use pymake. Or, invoke pymake directly via \ +|python build/pymake/make.py|.) +endif + # check for CRLF line endings ifneq (0,$(shell $(PERL) -e 'binmode(STDIN); while (<STDIN>) { if (/\r/) { print "1"; exit } } print "0"' < $(TOPSRCDIR)/client.mk)) $(error This source tree appears to have Windows-style line endings. To \ convert it to Unix-style line endings, run \ "python mozilla/build/win32/mozilla-dos2unix.py") endif endif
--- a/config/baseconfig.mk +++ b/config/baseconfig.mk @@ -4,25 +4,26 @@ installdir = $(libdir)/$(MOZ_APP_NAME)-$ sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) DIST = $(DEPTH)/dist # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't # manually use it before config.mk inclusion _OBJ_SUFFIX := $(OBJ_SUFFIX) OBJ_SUFFIX = $(error config/config.mk needs to be included before using OBJ_SUFFIX) +# We only want to do the pymake sanity on Windows, other os's can cope ifeq ($(HOST_OS_ARCH),WINNT) -# We only support building with pymake or a specially built gnu make. -ifndef .PYMAKE -ifeq (,$(filter mozmake%,$(notdir $(MAKE)))) -$(error Only building with pymake or mozmake is supported.) +# Ensure invariants between GNU Make and pymake +# Checked here since we want the sane error in a file that +# actually can be found regardless of path-style. +ifeq (_:,$(.PYMAKE)_$(findstring :,$(srcdir))) +$(error Windows-style srcdir being used with GNU make. Did you mean to run $(topsrcdir)/build/pymake/make.py instead? [see-also: https://developer.mozilla.org/en/Gmake_vs._Pymake]) endif -endif -ifeq (a,$(firstword a$(subst /, ,$(srcdir)))) -$(error MSYS-style srcdir are not supported for Windows builds.) +ifeq (1_a,$(.PYMAKE)_$(firstword a$(subst /, ,$(srcdir)))) +$(error MSYS-style srcdir being used with Pymake. Did you mean to run GNU Make instead? [see-also: https://developer.mozilla.org/ en/Gmake_vs._Pymake]) endif endif # WINNT ifdef .PYMAKE include_deps = $(eval -includedeps $(1)) else include_deps = $(eval -include $(1)) endif
--- a/config/rules.mk +++ b/config/rules.mk @@ -215,23 +215,23 @@ cppunittests-remote: fi endif # CPP_UNIT_TESTS .PHONY: check ifdef PYTHON_UNIT_TESTS -RUN_PYTHON_UNIT_TESTS := $(addsuffix -run,$(PYTHON_UNIT_TESTS)) +RUN_PYTHON_UNIT_TESTS := $(addprefix run-,$(PYTHON_UNIT_TESTS)) .PHONY: $(RUN_PYTHON_UNIT_TESTS) check:: $(RUN_PYTHON_UNIT_TESTS) -$(RUN_PYTHON_UNIT_TESTS): %-run: % +$(RUN_PYTHON_UNIT_TESTS): run-%: % @PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $< endif # PYTHON_UNIT_TESTS endif # ENABLE_TESTS #
--- a/js/src/config/baseconfig.mk +++ b/js/src/config/baseconfig.mk @@ -11,25 +11,26 @@ DIST = $(DEPTH)/$(TOP_DIST) endif endif # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't # manually use it before config.mk inclusion _OBJ_SUFFIX := $(OBJ_SUFFIX) OBJ_SUFFIX = $(error config/config.mk needs to be included before using OBJ_SUFFIX) +# We only want to do the pymake sanity on Windows, other os's can cope ifeq ($(HOST_OS_ARCH),WINNT) -# We only support building with pymake or a specially built gnu make. -ifndef .PYMAKE -ifeq (,$(filter mozmake%,$(notdir $(MAKE)))) -$(error Only building with pymake or mozmake is supported.) +# Ensure invariants between GNU Make and pymake +# Checked here since we want the sane error in a file that +# actually can be found regardless of path-style. +ifeq (_:,$(.PYMAKE)_$(findstring :,$(srcdir))) +$(error Windows-style srcdir being used with GNU make. Did you mean to run $(topsrcdir)/build/pymake/make.py instead? [see-also: https://developer.mozilla.org/en/Gmake_vs._Pymake]) endif -endif -ifeq (a,$(firstword a$(subst /, ,$(srcdir)))) -$(error MSYS-style srcdir are not supported for Windows builds.) +ifeq (1_a,$(.PYMAKE)_$(firstword a$(subst /, ,$(srcdir)))) +$(error MSYS-style srcdir being used with Pymake. Did you mean to run GNU Make instead? [see-also: https://developer.mozilla.org/ en/Gmake_vs._Pymake]) endif endif # WINNT ifdef .PYMAKE include_deps = $(eval -includedeps $(1)) else include_deps = $(eval -include $(1)) endif
--- a/js/src/config/rules.mk +++ b/js/src/config/rules.mk @@ -215,23 +215,23 @@ cppunittests-remote: fi endif # CPP_UNIT_TESTS .PHONY: check ifdef PYTHON_UNIT_TESTS -RUN_PYTHON_UNIT_TESTS := $(addsuffix -run,$(PYTHON_UNIT_TESTS)) +RUN_PYTHON_UNIT_TESTS := $(addprefix run-,$(PYTHON_UNIT_TESTS)) .PHONY: $(RUN_PYTHON_UNIT_TESTS) check:: $(RUN_PYTHON_UNIT_TESTS) -$(RUN_PYTHON_UNIT_TESTS): %-run: % +$(RUN_PYTHON_UNIT_TESTS): run-%: % @PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $< endif # PYTHON_UNIT_TESTS endif # ENABLE_TESTS #
--- a/js/src/configure.in +++ b/js/src/configure.in @@ -4192,28 +4192,26 @@ if test -n "$ENABLE_INTL_API" -a -z "$MO # don't include obsolete header files ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" # remove chunks of the library that we don't need (yet) ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION" ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_TRANSLITERATION" ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_REGULAR_EXPRESSIONS" ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_BREAK_ITERATION" - ICU_SRCDIR="" # Set OS dependent options for ICU case "$OS_TARGET" in Darwin) ICU_TARGET=MacOSX ;; Linux) ICU_TARGET=Linux ;; WINNT) ICU_TARGET=MSYS/MSVC - ICU_SRCDIR="--srcdir=$(cd $srcdir/../../intl/icu/source; pwd -W)" ;; DragonFly|FreeBSD|NetBSD|OpenBSD) ICU_TARGET=BSD ;; esac # To reduce library size, use static linking ICU_LINK_OPTS="--enable-static --disable-shared" @@ -4237,18 +4235,16 @@ if test -n "$ENABLE_INTL_API" -a -z "$MO (cd $_objdir/intl/icu MOZ_SUBCONFIGURE_WRAP([.],[ CC="$CC" CXX="$CXX" \ CFLAGS="$ICU_CFLAGS" CPPFLAGS="$ICU_CPPFLAGS" CXXFLAGS="$ICU_CXXFLAGS" \ $SHELL $abs_srcdir/../../intl/icu/source/runConfigureICU \ $ICU_BUILD_OPTS \ $ICU_TARGET \ $ICU_LINK_OPTS \ -dnl Shell quoting is fun. - ${ICU_SRCDIR+"$ICU_SRCDIR"} \ --enable-extras=no --enable-icuio=no --enable-layout=no \ --enable-tests=no --enable-samples=no || exit 1 ]) ) || exit 1 fi dnl ========================================================
--- a/python/mozbuild/mozbuild/base.py +++ b/python/mozbuild/mozbuild/base.py @@ -453,23 +453,16 @@ class MozbuildObject(ProcessExecutionMix } if log: params['log_name'] = 'make' return fn(**params) def _make_path(self, force_pymake=False): - if self._is_windows() and not force_pymake: - # Use mozmake if it's available. - try: - return [which.which('mozmake')] - except which.WhichError: - pass - if self._is_windows() or force_pymake: make_py = os.path.join(self.topsrcdir, 'build', 'pymake', 'make.py').replace(os.sep, '/') # We might want to consider invoking with the virtualenv's Python # some day. But, there is a chicken-and-egg problem w.r.t. when the # virtualenv is created. return [sys.executable, make_py]
--- a/security/build/Makefile.in +++ b/security/build/Makefile.in @@ -124,50 +124,42 @@ DEFAULT_GMAKE_FLAGS += CC="$(CC)" DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST) DEFAULT_GMAKE_FLAGS += SOURCE_MDHEADERS_DIR=$(NSPR_INCLUDE_DIR) DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST) DEFAULT_GMAKE_FLAGS += NSPR_INCLUDE_DIR=$(NSPR_INCLUDE_DIR) DEFAULT_GMAKE_FLAGS += NSPR_LIB_DIR=$(NSPR_LIB_DIR) DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1 DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1 DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ECC=1 -ifeq ($(NSINSTALL_PY),$(NSINSTALL)) -DEFAULT_GMAKE_FLAGS += PYTHON='$(PYTHON)' -DEFAULT_GMAKE_FLAGS += NSINSTALL_PY='$(call core_abspath,$(topsrcdir)/config/nsinstall.py)' -DEFAULT_GMAKE_FLAGS += NSINSTALL='$$(PYTHON) $$(NSINSTALL_PY)' -else -DEFAULT_GMAKE_FLAGS += NSINSTALL='$(NSINSTALL)' -endif +DEFAULT_GMAKE_FLAGS += NSINSTALL="$(NSINSTALL)" ifeq ($(OS_ARCH),WINNT) -DEFAULT_GMAKE_FLAGS += INSTALL='$$(NSINSTALL) -t' +DEFAULT_GMAKE_FLAGS += INSTALL="$(NSINSTALL) -t" endif ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_1) DEFAULT_GMAKE_FLAGS += OS_DLLFLAGS="-static-libgcc" endif ifndef MOZ_NATIVE_SQLITE ifdef MOZ_FOLD_LIBS DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=nss3 else DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=mozsqlite3 endif # MOZ_FOLD_LIBS DEFAULT_GMAKE_FLAGS += SQLITE_INCLUDE_DIR=$(ABS_DIST)/include endif ifdef NSS_DISABLE_DBM DEFAULT_GMAKE_FLAGS += NSS_DISABLE_DBM=1 endif +ABS_topsrcdir := $(shell cd $(topsrcdir); pwd) ifeq ($(HOST_OS_ARCH),WINNT) +ifdef .PYMAKE ABS_topsrcdir := $(shell cd $(topsrcdir); pwd -W) -else -ABS_topsrcdir := $(shell cd $(topsrcdir); pwd) +endif endif # Hack to force NSS build system to use "normal" object directories -DEFAULT_GMAKE_FLAGS += ABS_topsrcdir='$(ABS_topsrcdir)' -# ABS_topsrcdir can't be expanded here because msys path mangling likes to break -# paths in that case. -DEFAULT_GMAKE_FLAGS += BUILD='$(MOZ_BUILD_ROOT)/security/$$(subst $$(ABS_topsrcdir)/security/,,$$(CURDIR))' +DEFAULT_GMAKE_FLAGS += BUILD='$(MOZ_BUILD_ROOT)/security/$$(subst $(ABS_topsrcdir)/security/,,$$(CURDIR))' DEFAULT_GMAKE_FLAGS += BUILD_TREE='$$(BUILD)' OBJDIR='$$(BUILD)' DEPENDENCIES='$$(BUILD)/.deps' SINGLE_SHLIB_DIR='$$(BUILD)' DEFAULT_GMAKE_FLAGS += SOURCE_XP_DIR=$(ABS_DIST) ifndef MOZ_DEBUG DEFAULT_GMAKE_FLAGS += BUILD_OPT=1 OPT_CODE_SIZE=1 endif ifdef GNU_CC DEFAULT_GMAKE_FLAGS += NS_USE_GCC=1 else