# # 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/. # Configuration information for building in the "Core Components" source module ####################################################################### # [1.0] Master "Core Components" source and release # # tags # ####################################################################### ifndef MK_ARCH include $(CORE_DEPTH)/coreconf/arch.mk endif ####################################################################### # [2.0] Master "Core Components" default command macros # # (NOTE: may be overridden in $(OS_TARGET)$(OS_RELEASE).mk) # ####################################################################### ifndef MK_COMMAND include $(CORE_DEPTH)/coreconf/command.mk endif ####################################################################### # [3.0] Master "Core Components" -specific macros # # (dependent upon tags) # # # # We are moving towards just having a $(OS_TARGET).mk file # # as opposed to multiple $(OS_TARGET)$(OS_RELEASE).mk files, # # one for each OS release. # ####################################################################### TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin OpenBSD \ AIX RISCOS WINNT WIN95 Linux Android ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET))) include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk else ifeq ($(OS_TARGET),SunOS) include $(CORE_DEPTH)/coreconf/SunOS5.mk else include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk endif endif ####################################################################### # [4.0] Master "Core Components" source and release tags # # (dependent upon tags) # ####################################################################### PLATFORM = $(OBJDIR_NAME) ####################################################################### # [5.0] Master "Core Components" release tags # # (dependent upon tags) # ####################################################################### ifndef MK_TREE include $(CORE_DEPTH)/coreconf/tree.mk endif ####################################################################### # [6.0] Master "Core Components" source and release tags # # NOTE: A component is also called a module or a subsystem. # # (dependent upon $(MODULE) being defined on the # # command line, as an environment variable, or in individual # # makefiles, or more appropriately, manifest.mn) # ####################################################################### ifndef MK_MODULE include $(CORE_DEPTH)/coreconf/module.mk endif ####################################################################### # [7.0] Master "Core Components" release tags # # (dependent upon $(MODULE) being defined on the # # command line, as an environment variable, or in individual # # makefiles, or more appropriately, manifest.mn) # ####################################################################### ifndef MK_VERSION include $(CORE_DEPTH)/coreconf/version.mk endif ####################################################################### # [8.0] Master "Core Components" macros to figure out # # binary code location # # (dependent upon tags) # ####################################################################### ifndef MK_LOCATION include $(CORE_DEPTH)/coreconf/location.mk endif ####################################################################### # [9.0] Master "Core Components" -specific source path # # (dependent upon , , # # , and tags) # ####################################################################### ifndef MK_SOURCE include $(CORE_DEPTH)/coreconf/source.mk endif ####################################################################### # [10.0] Master "Core Components" include switch for support header # # files # # (dependent upon , , , # # and tags) # ####################################################################### ifndef MK_HEADERS include $(CORE_DEPTH)/coreconf/headers.mk endif ####################################################################### # [11.0] Master "Core Components" for computing program prefixes # ####################################################################### ifndef MK_PREFIX include $(CORE_DEPTH)/coreconf/prefix.mk endif ####################################################################### # [12.0] Master "Core Components" for computing program suffixes # # (dependent upon tags) # ####################################################################### ifndef MK_SUFFIX include $(CORE_DEPTH)/coreconf/suffix.mk endif ####################################################################### # [14.0] Master "Core Components" rule set # ####################################################################### ifndef MK_RULESET include $(CORE_DEPTH)/coreconf/ruleset.mk endif ####################################################################### # Master "Core Components" macros for Hardware features # ####################################################################### ifndef NSS_DISABLE_SSE3 NSS_DISABLE_SSE3 = 0 ifndef CC_IS_CLANG ifeq (,$(filter 0 1 2 3 4,$(word 1,$(GCC_VERSION)))) NSS_DISABLE_SSE3 = 1 endif endif ifeq (1,$(NSS_DISABLE_SSE3)) export NSS_DISABLE_SSE3 endif endif #ndef NSS_DISABLE_SSE3 ifndef NSS_DISABLE_AVX2 ifneq ($(CPU_ARCH),x86_64) # Disable AVX2 entirely on non-Intel platforms NSS_DISABLE_AVX2 = 1 $(warning CPU_ARCH is not x86_64, disabling -mavx2) else # Clang reports its version as an older gcc, but it's OK ifndef CC_IS_CLANG ifneq (,$(filter 0 1 2 3 4,$(word 1,$(GCC_VERSION)))) NSS_DISABLE_AVX2 = 1 endif endif ifeq (1,$(NSS_DISABLE_AVX2)) $(warning Unable to find gcc 4.8 or greater, disabling -mavx2) export NSS_DISABLE_AVX2 endif endif endif #ndef NSS_DISABLE_AVX2 ####################################################################### # [16.0] Global environ ment defines ####################################################################### ifdef NSS_ALLOW_UNSUPPORTED_CRITICAL DEFINES += -DNSS_ALLOW_UNSUPPORTED_CRITICAL endif ifdef BUILD_LIBPKIX_TESTS DEFINES += -DBUILD_LIBPKIX_TESTS endif ifdef NSS_DISABLE_LIBPKIX DEFINES += -DNSS_DISABLE_LIBPKIX endif ifdef NSS_DISABLE_DBM DEFINES += -DNSS_DISABLE_DBM endif ifdef NSS_DISABLE_AVX2 DEFINES += -DNSS_DISABLE_AVX2 endif ifdef NSS_DISABLE_SSE3 DEFINES += -DNSS_DISABLE_SSE3 endif ifdef NSS_DISABLE_CHACHAPOLY DEFINES += -DNSS_DISABLE_CHACHAPOLY endif ifdef NSS_DISABLE_DEPRECATED_SEED DEFINES += -DNSS_DISABLE_DEPRECATED_SEED endif ifdef NSS_DISABLE_DEPRECATED_RC2 DEFINES += -DNSS_DISABLE_DEPRECATED_RC2 endif ifdef NSS_PKIX_NO_LDAP DEFINES += -DNSS_PKIX_NO_LDAP endif # FIPS support requires startup tests to be executed at load time of shared modules. # For performance reasons, these tests are disabled by default. # When compiling binaries that must support FIPS mode, # you should define NSS_FORCE_FIPS # # NSS_NO_INIT_SUPPORT is always defined on platforms that don't support # executing the startup tests at library load time. ifndef NSS_FORCE_FIPS DEFINES += -DNSS_NO_INIT_SUPPORT endif ifdef NSS_SEED_ONLY_DEV_URANDOM DEFINES += -DSEED_ONLY_DEV_URANDOM endif ifdef NSS_PKCS1_AllowMissingParameters DEFINES += -DNSS_PKCS1_AllowMissingParameters endif # Avoid building object leak test code for optimized library ifndef BUILD_OPT ifdef PKIX_OBJECT_LEAK_TEST DEFINES += -DPKIX_OBJECT_LEAK_TEST endif endif # Avoid building with Neon acceleration on Arm32 ifdef NSS_DISABLE_ARM32_NEON DEFINES += -DNSS_DISABLE_ARM32_NEON endif # Avoid building with PowerPC's Altivec acceleration ifeq ($(NSS_DISABLE_ALTIVEC),1) DEFINES += -DNSS_DISABLE_ALTIVEC endif # Avoid building with PowerPC's Crypto and VSX instructions ifeq ($(NSS_DISABLE_CRYPTO_VSX),1) DEFINES += -DNSS_DISABLE_CRYPTO_VSX endif # This allows all library and tools code to use the util function # implementations directly from libnssutil3, rather than the wrappers # in libnss3 which are present for binary compatibility only DEFINES += -DUSE_UTIL_DIRECTLY USE_UTIL_DIRECTLY = 1 # Build with NO_NSPR_10_SUPPORT to avoid using obsolete NSPR features DEFINES += -DNO_NSPR_10_SUPPORT # Hide old, deprecated, TLS cipher suite names when building NSS DEFINES += -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES