mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-12 09:01:16 +00:00
c4e1894f04
Generated files marked as "required during compile" are limited to a number of extensions, most of which are source file types, so they get generated when compiling the corresponding object file. Other types, though, are currently handled via EXTRA_DEPS, which is clunky. As of now, these other types are limited to link-related items, but more would be useful (e.g. .inc files, which are only included in one location). This however works against the static analysis tasks (coverity and clang-tidy), which currently rely on everything they need being created via the export tier. That excludes using EXTRA_DEPS-based hacks. We create a "pre-compile" tier, that is not used during a normal build, but can be invoked manually, which the static analysis tasks will do. Differential Revision: https://phabricator.services.mozilla.com/D83035
76 lines
2.4 KiB
Makefile
76 lines
2.4 KiB
Makefile
# This file is normally included by autoconf.mk, but it is also used
|
|
# directly in python/mozbuild/mozbuild/base.py for gmake validation.
|
|
# We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
|
|
# whether a normal build is happening or whether the check is running.
|
|
installdir = $(libdir)/$(MOZ_APP_NAME)
|
|
ifeq (.,$(DEPTH))
|
|
DIST = dist
|
|
else
|
|
DIST = $(DEPTH)/dist
|
|
endif
|
|
ABS_DIST = $(topobjdir)/dist
|
|
|
|
ifeq ($(HOST_OS_ARCH),WINNT)
|
|
# We only support building with a non-msys gnu make version
|
|
# strictly above 4.0.
|
|
ifdef .PYMAKE
|
|
$(error Pymake is no longer supported. Please upgrade to MozillaBuild 1.9 or newer and build with 'mach' or 'mozmake')
|
|
endif
|
|
|
|
ifeq (a,$(firstword a$(subst /, ,$(abspath .))))
|
|
$(error MSYS make is not supported)
|
|
endif
|
|
# 4.0- happens to be greater than 4.0, lower than the mozmake version,
|
|
# and lower than 4.0.1 or 4.1, whatever next version of gnu make will
|
|
# be released.
|
|
ifneq (4.0-,$(firstword $(sort 4.0- $(MAKE_VERSION))))
|
|
$(error Make version too old. Only versions strictly greater than 4.0 are supported.)
|
|
endif
|
|
|
|
ifdef INCLUDED_AUTOCONF_MK
|
|
ifeq (a,$(firstword a$(subst /, ,$(srcdir))))
|
|
$(error MSYS-style srcdir are not supported for Windows builds.)
|
|
endif
|
|
endif
|
|
endif # WINNT
|
|
|
|
ifndef INCLUDED_AUTOCONF_MK
|
|
default::
|
|
else
|
|
# All possible tiers
|
|
ALL_TIERS := artifact win32-artifact android-fat-aar-artifact pre-export export pre-compile rust compile misc libs android-stage-package android-archive-geckoview tools check
|
|
|
|
# All tiers that may be used manually via `mach build $tier`
|
|
RUNNABLE_TIERS := $(ALL_TIERS)
|
|
ifndef MOZ_ARTIFACT_BUILDS
|
|
RUNNABLE_TIERS := $(filter-out artifact,$(RUNNABLE_TIERS))
|
|
endif
|
|
ifndef MOZ_EME_WIN32_ARTIFACT
|
|
RUNNABLE_TIERS := $(filter-out win32-artifact,$(RUNNABLE_TIERS))
|
|
endif
|
|
ifndef MOZ_ANDROID_FAT_AAR_ARCHITECTURES
|
|
RUNNABLE_TIERS := $(filter-out android-fat-aar-artifact,$(RUNNABLE_TIERS))
|
|
endif
|
|
ifneq ($(MOZ_BUILD_APP),mobile/android)
|
|
RUNNABLE_TIERS := $(filter-out android-stage-package,$(RUNNABLE_TIERS))
|
|
RUNNABLE_TIERS := $(filter-out android-archive-geckoview,$(RUNNABLE_TIERS))
|
|
endif
|
|
|
|
# All tiers that run automatically on `mach build`
|
|
TIERS := $(filter-out pre-compile check,$(RUNNABLE_TIERS))
|
|
ifndef COMPILE_ENVIRONMENT
|
|
TIERS := $(filter-out rust compile,$(TIERS))
|
|
endif
|
|
ifndef MOZ_RUST_TIER
|
|
TIERS := $(filter-out rust,$(TIERS))
|
|
endif
|
|
|
|
endif
|
|
|
|
# These defines are used to support the twin-topsrcdir model for comm-central.
|
|
ifdef MOZILLA_SRCDIR
|
|
MOZILLA_DIR = $(MOZILLA_SRCDIR)
|
|
else
|
|
MOZILLA_DIR = $(topsrcdir)
|
|
endif
|