123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- #
- # 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 <architecture> #
- # 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" <architecture>-specific macros #
- # (dependent upon <architecture> 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 BeOS 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 <platform> tags #
- # (dependent upon <architecture> tags) #
- #######################################################################
- PLATFORM = $(OBJDIR_NAME)
- #######################################################################
- # [5.0] Master "Core Components" release <tree> tags #
- # (dependent upon <architecture> tags) #
- #######################################################################
- ifndef MK_TREE
- include $(CORE_DEPTH)/coreconf/tree.mk
- endif
- #######################################################################
- # [6.0] Master "Core Components" source and release <component> 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 <version> 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 <platform> tags) #
- #######################################################################
- ifndef MK_LOCATION
- include $(CORE_DEPTH)/coreconf/location.mk
- endif
- #######################################################################
- # [9.0] Master "Core Components" <component>-specific source path #
- # (dependent upon <user_source_tree>, <source_component>, #
- # <version>, and <platform> tags) #
- #######################################################################
- ifndef MK_SOURCE
- include $(CORE_DEPTH)/coreconf/source.mk
- endif
- #######################################################################
- # [10.0] Master "Core Components" include switch for support header #
- # files #
- # (dependent upon <tree>, <component>, <version>, #
- # and <platform> 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 <architecture> tags) #
- #######################################################################
- ifndef MK_SUFFIX
- include $(CORE_DEPTH)/coreconf/suffix.mk
- endif
- #######################################################################
- # [13.0] Master "Core Components" for defining JDK #
- # (dependent upon <architecture>, <source>, and <suffix> tags)#
- #######################################################################
- ifdef NS_USE_JDK
- include $(CORE_DEPTH)/coreconf/jdk.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 #
- #######################################################################
- # NSS Build system does not properly support MozillaBuild 2 MSYS1
- # So we simply aren't going to enable AVX2 at all
- # Plus there seems to be an issue with it anyway for other reasons
- NSS_DISABLE_AVX2 = 1
- export NSS_DISABLE_AVX2
- #######################################################################
- # [15.0] Dependencies.
- #######################################################################
- -include $(MKDEPENDENCIES)
- #######################################################################
- # [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_CHACHAPOLY
- DEFINES += -DNSS_DISABLE_CHACHAPOLY
- 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
- ifdef NSS_DISABLE_ALTIVEC
- DEFINES += -DNSS_DISABLE_ALTIVEC
- 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
|