Source code

Revision control

Copy as Markdown

Other Tools

#! gmake
#
# 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/.
CORE_DEPTH = ..
DEPTH = ..
include $(CORE_DEPTH)/coreconf/config.mk
# This "jungle" of conditionals evaluates which DIRS to build!
# The main reason for it is AFAIK /automation/taskcluster/scripts/split.sh
#
# The fundamental organisation is:
# if NSS_BUILD_UTIL_ONLY
# else
# if NSS_BUILD_SOFTOKEN_ONLY
# else # build "all" the rest of NSS
# endif
#
# But there is even some build (NSS_BUILD_WITHOUT_SOFTOKEN), which
# depends on a previous partial build!
#
# FWIW, the dependencies are sorted and "compacted" instead of single
# lines for smaller patches, as these probably won't change much and
# it's easier to read this way.
# Building softoken (and freebl) only requires that the paths
# to the locations where the util headers and libraries were
# previously installed by a prior util-only build - likely in
# in a system location that varies with the distribution. This
# cannot be addressed here and requires that downstream package
# mantainers add suitable modifications. Building full nss will
# not have that problem as everything is available.
ifndef USE_SYSTEM_ZLIB
ZLIB_SRCDIR = zlib
endif
ifndef MOZILLA_CLIENT
ifndef NSS_USE_SYSTEM_SQLITE
SQLITE_SRCDIR = sqlite
endif
ifeq ($(OS_ARCH),Linux)
SYSINIT_SRCDIR = sysinit
endif
endif # MOZILLA_CLIENT
ifndef NSS_DISABLE_DBM
DBM_SRCDIR = dbm
endif
ifndef NSS_DISABLE_LIBPKIX
LIBPKIX_SRCDIR = libpkix
endif
ifeq ($(NSS_BUILD_UTIL_ONLY),1)
UTIL_SRCDIR = util
else
ifeq ($(NSS_BUILD_SOFTOKEN_ONLY),1)
FREEBL_SRCDIR = freebl
SOFTOKEN_SRCDIR = softoken
else
# Not included when building nss without softoken
# This build type uses the build results of the prior
# NSS_BUILD_UTIL_ONLY and NSS_BUILD_SOFTOKEN_ONLY builds
ifneq ($(NSS_BUILD_WITHOUT_SOFTOKEN),1)
FREEBL_SRCDIR = freebl
SOFTOKEN_SRCDIR = softoken
UTIL_SRCDIR = util
endif
endif
SOFTOKEN_SRCDIRS = \
$(DBM_SRCDIR) $(FREEBL_SRCDIR) $(SOFTOKEN_SRCDIR) \
$(SQLITE_SRCDIR) $(NULL)
ifneq (,$(FREEBL_SRCDIR))
$(FREEBL_SRCDIR): $(UTIL_SRCDIR)
endif
ifneq (,$(SOFTOKEN_SRCDIR))
$(SOFTOKEN_SRCDIR): $(DBM_SRCDIR) $(FREEBL_SRCDIR) $(SQLITE_SRCDIR) $(UTIL_SRCDIR)
endif
ifndef NSS_BUILD_SOFTOKEN_ONLY
NSS_SRCDIRS = \
base certdb certhigh ckfw crmf cryptohi dev jar $(LIBPKIX_SRCDIR) \
nss pk11wrap pkcs12 pkcs7 pki smime ssl $(SYSINIT_SRCDIR) $(ZLIB_SRCDIR)
ifneq (,$(SYSINIT_SRCDIR))
$(SYSINIT_SRCDIR): $(UTIL_SRCDIR)
endif
nss: base certdb certhigh cryptohi dev $(LIBPKIX_SRCDIR) pk11wrap pki $(UTIL_SRCDIR)
smime: nss pkcs7 pkcs12
ssl: nss
ckfw: nss
endif # !NSS_BUILD_SOFTOKEN_ONLY
endif # !NSS_BUILD_UTIL_ONLY
DIRS = \
$(NSS_SRCDIRS) $(SOFTOKEN_SRCDIRS) $(UTIL_SRCDIR) $(NULL)
include $(CORE_DEPTH)/coreconf/rules.mk