mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1027890 - Remove all sorts of build system code dedicated to pymake. r=gps
This commit is contained in:
parent
56d17fc35d
commit
0fa0eb08c7
@ -3,7 +3,6 @@
|
||||
# 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/.
|
||||
|
||||
ifndef .PYMAKE
|
||||
ifeq (,$(MAKE_VERSION))
|
||||
$(error GNU Make is required)
|
||||
endif
|
||||
@ -11,7 +10,6 @@ make_min_ver := 3.81
|
||||
ifneq ($(make_min_ver),$(firstword $(sort $(make_min_ver) $(MAKE_VERSION))))
|
||||
$(error GNU Make $(make_min_ver) or higher is required)
|
||||
endif
|
||||
endif
|
||||
|
||||
export TOPLEVEL_BUILD := 1
|
||||
|
||||
|
@ -4,13 +4,6 @@
|
||||
|
||||
GAIA_PATH := gaia/profile
|
||||
|
||||
ifdef .PYMAKE
|
||||
# For use of GNU make in pymake builds.
|
||||
GAIA_MAKE=$(GMAKE)
|
||||
else
|
||||
GAIA_MAKE=$(MAKE)
|
||||
endif
|
||||
|
||||
# This is needed to avoid making run-b2g depend on mozglue
|
||||
WRAP_LDFLAGS :=
|
||||
|
||||
@ -19,6 +12,6 @@ GENERATED_DIRS += $(DIST)/bin/$(GAIA_PATH)
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
libs::
|
||||
+$(GAIA_MAKE) -j1 -C $(GAIADIR) clean
|
||||
+$(GAIA_MAKE) -j1 -C $(GAIADIR) profile
|
||||
+$(MAKE) -j1 -C $(GAIADIR) clean
|
||||
+$(MAKE) -j1 -C $(GAIADIR) profile
|
||||
(cd $(GAIADIR)/profile && tar $(TAR_CREATE_FLAGS) - .) | (cd $(abspath $(DIST))/bin/$(GAIA_PATH) && tar -xf -)
|
||||
|
@ -184,12 +184,6 @@ fi
|
||||
dnl A high level macro for selecting compiler options.
|
||||
AC_DEFUN([MOZ_COMPILER_OPTS],
|
||||
[
|
||||
if test "${MOZ_PSEUDO_DERECURSE-unset}" = unset; then
|
||||
dnl Don't enable on pymake, because of bug 918652. Bug 912979 is an annoyance
|
||||
dnl with pymake, too.
|
||||
MOZ_PSEUDO_DERECURSE=no-pymake
|
||||
fi
|
||||
|
||||
MOZ_DEBUGGING_OPTS
|
||||
MOZ_RTTI
|
||||
if test "$CLANG_CXX"; then
|
||||
|
@ -88,22 +88,9 @@ GB is likely entering the point of diminishing returns.
|
||||
|
||||
This cause impacts both clobber and incremental builds.
|
||||
|
||||
You are building with pymake
|
||||
============================
|
||||
|
||||
Pymake is slower than GNU make. One reason is Python is generally slower
|
||||
than C. The build system maintainers are consistently looking at
|
||||
optimizing pymake. However, it is death by a thousand cuts.
|
||||
|
||||
This cause impacts both clobber and incremental builds.
|
||||
|
||||
You are building on Windows
|
||||
===========================
|
||||
|
||||
Builds on Windows are slow for a few reasons. First, Windows builds use
|
||||
pymake, not GNU make (because of compatibility issues with GNU make).
|
||||
But, there are other sources of slowness.
|
||||
|
||||
New processes on Windows are about a magnitude slower to spawn than on
|
||||
UNIX-y systems such as Linux. This is because Windows has optimized new
|
||||
threads while the \*NIX platforms typically optimize new processes.
|
||||
|
@ -145,13 +145,6 @@ endif
|
||||
|
||||
ifndef MOZ_OBJDIR
|
||||
MOZ_OBJDIR = obj-$(CONFIG_GUESS)
|
||||
else
|
||||
# On Windows Pymake builds check MOZ_OBJDIR doesn't start with "/"
|
||||
ifneq (,$(findstring mingw,$(CONFIG_GUESS)))
|
||||
ifeq (1_a,$(.PYMAKE)_$(firstword a$(subst /, ,$(MOZ_OBJDIR))))
|
||||
$(error For Windows Pymake builds, MOZ_OBJDIR must be a Windows [and not MSYS] style path.)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef MOZ_BUILD_PROJECTS
|
||||
|
@ -194,16 +194,6 @@ endif
|
||||
CONFIG_TOOLS = $(MOZ_BUILD_ROOT)/config
|
||||
AUTOCONF_TOOLS = $(topsrcdir)/build/autoconf
|
||||
|
||||
# Disable MOZ_PSEUDO_DERECURSE when it contains no-pymake and we're running
|
||||
# pymake. This can be removed when no-pymake is removed from the default in
|
||||
# build/autoconf/compiler-opts.m4.
|
||||
ifdef .PYMAKE
|
||||
comma = ,
|
||||
ifneq (,$(filter no-pymake,$(subst $(comma), ,$(MOZ_PSEUDO_DERECURSE))))
|
||||
MOZ_PSEUDO_DERECURSE :=
|
||||
endif
|
||||
endif
|
||||
|
||||
# Disable MOZ_PSEUDO_DERECURSE on PGO builds until it's fixed.
|
||||
ifneq (,$(MOZ_PROFILE_USE)$(MOZ_PROFILE_GENERATE))
|
||||
MOZ_PSEUDO_DERECURSE :=
|
||||
@ -238,10 +228,6 @@ MKDIR ?= mkdir
|
||||
SLEEP ?= sleep
|
||||
TOUCH ?= touch
|
||||
|
||||
ifdef .PYMAKE
|
||||
PYCOMMANDPATH += $(PYTHON_SITE_PACKAGES)
|
||||
endif
|
||||
|
||||
PYTHON_PATH = $(PYTHON) $(topsrcdir)/config/pythonpath.py
|
||||
|
||||
# determine debug-related options
|
||||
@ -720,9 +706,6 @@ endif # NSINSTALL_BIN
|
||||
|
||||
ifeq (,$(CROSS_COMPILE)$(filter-out WINNT, $(OS_ARCH)))
|
||||
INSTALL = $(NSINSTALL) -t
|
||||
ifdef .PYMAKE
|
||||
install_cmd = $(NSINSTALL_NATIVECMD) -t $(1)
|
||||
endif # .PYMAKE
|
||||
|
||||
else
|
||||
|
||||
|
@ -27,8 +27,4 @@ core_winabspath = $(error core_winabspath is unsupported)
|
||||
#
|
||||
# libs::
|
||||
# $(call py_action,purge_manifests,_build_manifests/purge/foo.manifest)
|
||||
ifdef .PYMAKE
|
||||
py_action = %mozbuild.action.$(1) main $(2)
|
||||
else
|
||||
py_action = $(PYTHON) -m mozbuild.action.$(1) $(2)
|
||||
endif
|
||||
|
@ -35,23 +35,8 @@ endif
|
||||
USE_AUTOTARGETS_MK = 1
|
||||
include $(topsrcdir)/config/makefiles/makeutils.mk
|
||||
|
||||
# Only build with Pymake (not GNU make) on Windows.
|
||||
ifeq ($(HOST_OS_ARCH),WINNT)
|
||||
ifndef L10NBASEDIR
|
||||
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
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef REBUILD_CHECK
|
||||
ifdef .PYMAKE
|
||||
REPORT_BUILD = @%rebuild_check rebuild_check $@ $^
|
||||
else
|
||||
REPORT_BUILD = $(info $(shell $(PYTHON) $(MOZILLA_DIR)/config/rebuild_check.py $@ $^))
|
||||
endif
|
||||
else
|
||||
REPORT_BUILD = $(info $(notdir $@))
|
||||
endif
|
||||
@ -66,15 +51,11 @@ endif
|
||||
# ELOG prints out failed command when building silently (gmake -s). Pymake
|
||||
# prints out failed commands anyway, so ELOG just makes things worse by
|
||||
# forcing shell invocations.
|
||||
ifndef .PYMAKE
|
||||
ifneq (,$(findstring s, $(filter-out --%, $(MAKEFLAGS))))
|
||||
ELOG := $(EXEC) sh $(BUILD_TOOLS)/print-failed-commands.sh
|
||||
else
|
||||
ELOG :=
|
||||
endif # -s
|
||||
else
|
||||
ELOG :=
|
||||
endif # ifndef .PYMAKE
|
||||
|
||||
_VPATH_SRCS = $(abspath $<)
|
||||
|
||||
@ -1142,9 +1123,7 @@ else
|
||||
endif
|
||||
|
||||
# Cancel GNU make built-in implicit rules
|
||||
ifndef .PYMAKE
|
||||
MAKEFLAGS += -r
|
||||
endif
|
||||
|
||||
ifneq (,$(filter WINNT,$(OS_ARCH)))
|
||||
SEP := ;
|
||||
|
@ -22,7 +22,6 @@ tgts =\
|
||||
$(NULL)
|
||||
|
||||
export MAKE
|
||||
export .PYMAKE
|
||||
|
||||
##------------------_##
|
||||
##---] TARGETS [---##
|
||||
|
@ -44,32 +44,24 @@ include $(topsrcdir)/config/rules.mk
|
||||
|
||||
ifdef ENABLE_INTL_API
|
||||
ifndef MOZ_NATIVE_ICU
|
||||
ifdef .PYMAKE
|
||||
ICU_MAKE = $(GMAKE)
|
||||
else
|
||||
ICU_MAKE = $(MAKE)
|
||||
endif
|
||||
|
||||
default:: buildicu
|
||||
|
||||
# - ICU requires GNU make according to its readme.html. pymake can't be used
|
||||
# because it doesn't support order only dependencies.
|
||||
# - Force ICU to use the standard suffix for object files because expandlibs
|
||||
# will discard all files with a non-standard suffix (bug 857450).
|
||||
# - Options for genrb: -k strict parsing; -R omit collation tailoring rules.
|
||||
buildicu::
|
||||
# ICU's build system is full of races, so force non-parallel build.
|
||||
ifdef CROSS_COMPILE
|
||||
+$(ICU_MAKE) -j1 -C host STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R -C'
|
||||
+$(MAKE) -j1 -C host STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R -C'
|
||||
endif
|
||||
+$(ICU_MAKE) -j1 -C target STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R'
|
||||
+$(MAKE) -j1 -C target STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R'
|
||||
$(ICU_LIB_RENAME)
|
||||
|
||||
distclean clean::
|
||||
ifdef CROSS_COMPILE
|
||||
+$(ICU_MAKE) -C host $@ STATIC_O=$(OBJ_SUFFIX)
|
||||
+$(MAKE) -C host $@ STATIC_O=$(OBJ_SUFFIX)
|
||||
endif
|
||||
+$(ICU_MAKE) -C target $@ STATIC_O=$(OBJ_SUFFIX)
|
||||
+$(MAKE) -C target $@ STATIC_O=$(OBJ_SUFFIX)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
@ -4,7 +4,6 @@
|
||||
# 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/.
|
||||
|
||||
ifndef .PYMAKE
|
||||
ifeq (,$(MAKE_VERSION))
|
||||
$(error GNU Make is required)
|
||||
endif
|
||||
@ -12,7 +11,6 @@ make_min_ver := 3.81
|
||||
ifneq ($(make_min_ver),$(firstword $(sort $(make_min_ver) $(MAKE_VERSION))))
|
||||
$(error GNU Make $(make_min_ver) or higher is required)
|
||||
endif
|
||||
endif
|
||||
|
||||
TOPLEVEL_BUILD := 1
|
||||
|
||||
|
@ -434,9 +434,7 @@ class MozbuildObject(ProcessExecutionMixin):
|
||||
args.append('-s')
|
||||
|
||||
# Print entering/leaving directory messages. Some consumers look at
|
||||
# these to measure progress. Ideally, we'd do everything with pymake
|
||||
# and use hooks in its API. Unfortunately, it doesn't provide that
|
||||
# feature... yet.
|
||||
# these to measure progress.
|
||||
if print_directory:
|
||||
args.append('-w')
|
||||
|
||||
|
@ -460,11 +460,6 @@ $(addprefix export-,$(NSS_DIRS)): export-%: private_export-%
|
||||
$(addprefix private_export-,$(NSS_DIRS)): EXTRA_GMAKE_FLAGS =
|
||||
$(addprefix private_export-,$(NSS_DIRS)): private_export-%:
|
||||
|
||||
# Work around bug #836228 in pymake
|
||||
ifdef .PYMAKE
|
||||
$(foreach p,libs export private_export,$(addprefix $(p)-,$(NSS_DIRS))): *=$(subst $(NULL) $(NULL),-,$(wordlist 2,$(words $(subst -, ,$@)),$(subst -, ,$@)))
|
||||
endif
|
||||
|
||||
$(foreach p,libs export private_export,$(addprefix $(p)-,$(NSS_DIRS))):
|
||||
$(DEFAULT_GMAKE_ENV) $(MAKE) -C $(NSS_SRCDIR)/security/$* $(@:-$*=) $(DEFAULT_GMAKE_FLAGS)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user