123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470 |
- #
- # 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/.
- CC_WRAPPER =
- CXX_WRAPPER =
- default::
- include $(topsrcdir)/config/makefiles/functions.mk
- NSS_LIBS = \
- nss3 \
- nssutil3 \
- smime3 \
- ssl3 \
- $(NULL)
- ifdef MOZ_FOLD_LIBS
- NSS_DLLS = $(LIBRARY_NAME)
- else
- NSS_DLLS = $(NSS_LIBS)
- endif
- NSS_EXTRA_DLLS = \
- nssckbi \
- softokn3 \
- $(NULL)
- ifndef NSS_DISABLE_DBM
- NSS_EXTRA_DLLS += nssdbm3
- endif
- SDK_LIBS = crmf
- ifneq (,$(filter WINNT,$(OS_ARCH)))
- SDK_LIBS += $(NSS_DLLS)
- endif
- # Default
- HAVE_FREEBL_LIBS = 1
- # SunOS SPARC
- ifeq ($(OS_ARCH), SunOS)
- ifneq (86,$(findstring 86,$(OS_TEST)))
- ifdef HAVE_64BIT_BUILD
- HAVE_FREEBL_LIBS =
- HAVE_FREEBL_LIBS_64 = 1
- else
- HAVE_FREEBL_LIBS =
- HAVE_FREEBL_LIBS_32FPU = 1
- HAVE_FREEBL_LIBS_32INT64 = 1
- endif
- endif
- endif
- ifeq ($(OS_TARGET),Linux)
- HAVE_FREEBL_LIBS =
- HAVE_FREEBL_LIBS_PRIV = 1
- FREEBL_LOWHASH_FLAG = FREEBL_LOWHASH=1
- endif
- ifdef HAVE_FREEBL_LIBS
- NSS_EXTRA_DLLS += freebl3
- endif
- ifdef HAVE_FREEBL_LIBS_PRIV
- NSS_EXTRA_DLLS += freeblpriv3
- endif
- ifdef HAVE_FREEBL_LIBS_32INT32
- NSS_EXTRA_DLLS += freebl_32int_3
- endif
- ifdef HAVE_FREEBL_LIBS_32FPU
- NSS_EXTRA_DLLS += freebl_32fpu_3
- endif
- ifdef HAVE_FREEBL_LIBS_32INT64
- NSS_EXTRA_DLLS += freebl_32int64_3
- endif
- ifdef HAVE_FREEBL_LIBS_64
- NSS_EXTRA_DLLS += freebl_64int_3
- NSS_EXTRA_DLLS += freebl_64fpu_3
- endif
- # For all variables such as DLLFLAGS, that may contain $(DIST)
- DIST := $(ABS_DIST)
- # TODO: move this all to configure, but in Python
- ifndef MOZ_BUILD_NSPR
- NSPR_INCLUDE_DIR = $(firstword $(filter -I%,$(NSPR_CFLAGS)))
- ifneq (,$(strip $(NSPR_INCLUDE_DIR)))
- NSPR_INCLUDE_DIR := $(subst -I,,$(subst -I$(DIST),-I$(ABS_DIST),$(NSPR_INCLUDE_DIR)))
- else
- $(error Your NSPR CFLAGS are broken!)
- endif
- NSPR_LIB_DIR = $(firstword $(filter -L%,$(NSPR_LIBS)))
- ifneq (,$(strip $(NSPR_LIB_DIR)))
- NSPR_LIB_DIR := $(subst -L,,$(subst -L$(DIST),-L$(ABS_DIST),$(NSPR_LIB_DIR)))
- else
- $(error Your NSPR LDFLAGS are broken!)
- endif
- endif
- # To get debug symbols from NSS
- export MOZ_DEBUG_SYMBOLS
- DEFAULT_GMAKE_FLAGS =
- DEFAULT_GMAKE_FLAGS += CC='$(CC)'
- DEFAULT_GMAKE_FLAGS += MT='$(MT)'
- DEFAULT_GMAKE_FLAGS += LD='$(LD)'
- DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST)
- DEFAULT_GMAKE_FLAGS += SOURCE_MDHEADERS_DIR=$(NSPR_INCLUDE_DIR)
- DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST)
- DEFAULT_GMAKE_FLAGS += NSPR_INCLUDE_DIR=$(NSPR_INCLUDE_DIR)
- DEFAULT_GMAKE_FLAGS += NSPR_LIB_DIR=$(NSPR_LIB_DIR)
- DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1
- DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1
- DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ECC=1
- DEFAULT_GMAKE_FLAGS += NSS_ENABLE_TLS_1_3=1
- ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_1)
- DEFAULT_GMAKE_FLAGS += OS_DLLFLAGS='-static-libgcc' NSPR31_LIB_PREFIX=lib
- endif
- DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=mozsqlite3
- DEFAULT_GMAKE_FLAGS += SQLITE_LIB_DIR=$(ABS_DIST)/../db/sqlite3/src
- DEFAULT_GMAKE_FLAGS += SQLITE_INCLUDE_DIR=$(ABS_DIST)/include
- ifdef NSS_DISABLE_DBM
- DEFAULT_GMAKE_FLAGS += NSS_DISABLE_DBM=1
- endif
- # Hack to force NSS build system to use "normal" object directories
- DEFAULT_GMAKE_FLAGS += topsrcdir='$(topsrcdir)'
- # topsrcdir can't be expanded here because msys path mangling likes to break
- # paths in that case.
- DEFAULT_GMAKE_FLAGS += BUILD='$(MOZ_BUILD_ROOT)/security/$$(subst $$(topsrcdir)/security/,,$$(CURDIR))'
- DEFAULT_GMAKE_FLAGS += BUILD_TREE='$$(BUILD)' OBJDIR='$$(BUILD)' DEPENDENCIES='$$(BUILD)/.deps' SINGLE_SHLIB_DIR='$$(BUILD)'
- DEFAULT_GMAKE_FLAGS += SOURCE_XP_DIR=$(ABS_DIST)
- ifndef MOZ_DEBUG
- DEFAULT_GMAKE_FLAGS += BUILD_OPT=1 OPT_CODE_SIZE=1
- endif
- ifdef GNU_CC
- DEFAULT_GMAKE_FLAGS += NS_USE_GCC=1
- else
- DEFAULT_GMAKE_FLAGS += NS_USE_GCC=
- endif
- ifdef USE_N32
- # It is not really necessary to specify USE_PTHREADS=1. USE_PTHREADS
- # merely adds _PTH to coreconf's OBJDIR name.
- DEFAULT_GMAKE_FLAGS += USE_N32=1 USE_PTHREADS=1
- endif
- ifdef HAVE_64BIT_BUILD
- DEFAULT_GMAKE_FLAGS += USE_64=1
- endif
- ifeq ($(OS_ARCH),WINNT)
- DEFAULT_GMAKE_FLAGS += OS_TARGET=WIN95
- ifdef MOZ_DEBUG
- ifndef MOZ_NO_DEBUG_RTL
- DEFAULT_GMAKE_FLAGS += USE_DEBUG_RTL=1
- endif
- endif
- endif # WINNT
- ifeq ($(OS_ARCH),Darwin)
- # Make nsinstall use absolute symlinks by default when building NSS
- # for Mozilla on Mac OS X. (Bugzilla bug 193164)
- ifndef NSDISTMODE
- DEFAULT_GMAKE_FLAGS += NSDISTMODE=absolute_symlink
- endif
- ifdef MACOS_SDK_DIR
- DEFAULT_GMAKE_FLAGS += MACOS_SDK_DIR=$(MACOS_SDK_DIR)
- endif
- endif
- # Turn off TLS compression support because it requires system zlib.
- # See bug 580679 comment 18.
- DEFAULT_GMAKE_FLAGS += NSS_SSL_ENABLE_ZLIB=
- # Disable building of the test programs in security/nss/lib/zlib
- DEFAULT_GMAKE_FLAGS += PROGRAMS=
- # Disable creating .chk files. They will be generated from packager.mk
- # When bug 681624 lands, we can replace CHECKLOC= with SKIP_SHLIBSIGN=1
- DEFAULT_GMAKE_FLAGS += CHECKLOC=
- ifdef CROSS_COMPILE
- DEFAULT_GMAKE_FLAGS += \
- NATIVE_CC='$(HOST_CC)' \
- CC='$(CC)' \
- CCC='$(CXX)' \
- AS='$(AS)' \
- AR='$(AR) $(AR_FLAGS:$@=$$@)' \
- RANLIB='$(RANLIB)' \
- RC='$(RC) $(RCFLAGS)' \
- OS_ARCH='$(OS_ARCH)' \
- OS_TEST='$(OS_TEST)' \
- CPU_ARCH='$(TARGET_CPU)' \
- $(NULL)
- # Android has pthreads integrated into -lc, so OS_PTHREAD is set to nothing
- ifeq ($(OS_TARGET), Android)
- DEFAULT_GMAKE_FLAGS += \
- OS_RELEASE='2.6' \
- OS_PTHREAD= \
- $(NULL)
- DEFAULT_GMAKE_FLAGS += ARCHFLAG='$(filter-out -W%,$(CFLAGS)) -DCHECK_FORK_GETPID $(addprefix -DANDROID_VERSION=,$(ANDROID_VERSION)) -include $(topsrcdir)/security/manager/android_stub.h'
- endif
- endif
- ifdef WRAP_LDFLAGS
- NSS_EXTRA_LDFLAGS += $(WRAP_LDFLAGS)
- endif
- # The SHARED_LIBS part is needed unconditionally on Android. It's not
- # clear why this is the case, but see bug 1133073 (starting around
- # comment #8) for context.
- ifneq (,$(or $(MOZ_GLUE_WRAP_LDFLAGS), $(filter Android, $(OS_TARGET))))
- NSS_EXTRA_LDFLAGS += $(SHARED_LIBS:$(DEPTH)%=$(MOZ_BUILD_ROOT)%) $(MOZ_GLUE_WRAP_LDFLAGS)
- endif
- ifneq (,$(NSS_EXTRA_LDFLAGS))
- DEFAULT_GMAKE_FLAGS += \
- LDFLAGS='$(LDFLAGS) $(NSS_EXTRA_LDFLAGS)' \
- DSO_LDOPTS='$(DSO_LDOPTS) $(LDFLAGS) $(NSS_EXTRA_LDFLAGS)' \
- $(NULL)
- endif
- DEFAULT_GMAKE_FLAGS += FREEBL_NO_DEPEND=0 $(FREEBL_LOWHASH_FLAG)
- DEFAULT_GMAKE_FLAGS += NSS_ALLOW_SSLKEYLOGFILE=1
- ifdef MOZ_NO_WLZDEFS
- DEFAULT_GMAKE_FLAGS += ZDEFS_FLAG=
- endif
- ifdef MOZ_CFLAGS_NSS
- NSS_XCFLAGS += $(filter-out -W%,$(CFLAGS))
- DEFAULT_GMAKE_FLAGS += DARWIN_DYLIB_VERSIONS='-compatibility_version 1 -current_version 1 $(LDFLAGS)'
- endif
- ifeq (1_1,$(CLANG_CL)_$(MOZ_ASAN))
- XLDFLAGS := $(OS_LDFLAGS)
- DEFAULT_GMAKE_FLAGS += XLDFLAGS='$(XLDFLAGS)'
- endif
- DEFAULT_GMAKE_FLAGS += NSS_NO_PKCS11_BYPASS=1
- # Put NSS headers directly under $(DIST)/include
- DEFAULT_GMAKE_FLAGS += PUBLIC_EXPORT_DIR='$(ABS_DIST)/include/$$(MODULE)'
- DEFAULT_GMAKE_FLAGS += SOURCE_XPHEADERS_DIR='$$(SOURCE_XP_DIR)/include/$$(MODULE)'
- DEFAULT_GMAKE_FLAGS += MODULE_INCLUDES='$$(addprefix -I$$(SOURCE_XP_DIR)/include/,$$(REQUIRES))'
- # Work around NSS's MAKE_OBJDIR being racy. See bug #836220
- DEFAULT_GMAKE_FLAGS += MAKE_OBJDIR='$$(INSTALL) -D $$(OBJDIR)'
- # Work around NSS adding IMPORT_LIBRARY to TARGETS with no rule for
- # it, creating race conditions. See bug #836220
- DEFAULT_GMAKE_FLAGS += TARGETS='$$(LIBRARY) $$(SHARED_LIBRARY) $$(PROGRAM)'
- ifdef MOZ_FOLD_LIBS_FLAGS
- NSS_XCFLAGS += $(MOZ_FOLD_LIBS_FLAGS)
- endif
- # Pass on the MSVC target arch from the main build system.
- # Note this is case- and switch-character sensitive, while
- # the MSVC option is not.
- ifeq (WINNT,$(OS_TARGET))
- NSS_XCFLAGS += $(filter -arch:%,$(CFLAGS))
- endif
- # Enable short header experiment. Firefox only.
- NSS_XCFLAGS += -DNSS_ENABLE_TLS13_SHORT_HEADERS
- # Export accumulated XCFLAGS to modify nss defaults.
- DEFAULT_GMAKE_FLAGS += XCFLAGS='$(NSS_XCFLAGS)'
- NSS_SRCDIR = $(topsrcdir)
- NSS_DIRS =
- ifndef MOZ_FOLD_LIBS
- NSS_DIRS += nss/lib
- else
- ifndef NSS_DISABLE_DBM
- NSS_DIRS += nss/lib/dbm
- endif
- endif
- NSS_DIRS += \
- nss/cmd/lib \
- nss/cmd/shlibsign \
- $(NULL)
- ifdef ENABLE_TESTS
- NSS_DIRS += \
- nss/cmd/certutil \
- nss/cmd/pk12util \
- nss/cmd/modutil \
- $(NULL)
- endif
- ifneq (,$(filter %--build-id,$(LDFLAGS)))
- DEFAULT_GMAKE_ENV = LDFLAGS=-Wl,--build-id
- endif
- ifdef MOZ_FOLD_LIBS
- # TODO: The following can be replaced by something simpler when bug 844880
- # is fixed.
- # All static libraries required for nss, smime, ssl and nssutil.
- # The strip is needed to remove potential linefeed characters, since they hang
- # around in some cases on Windows.
- NSS_STATIC_LIBS := $(strip $(shell $(MAKE) --no-print-directory -f $(srcdir)/nss.mk DEPTH='$(DEPTH)' topsrcdir='$(topsrcdir)' srcdir='$(srcdir)' echo-variable-libs))
- # Corresponding build directories
- NSS_STATIC_DIRS := $(foreach lib,$(NSS_STATIC_LIBS),$(patsubst %/,%,$(dir $(lib))))
- NSS_DIRS += $(NSS_STATIC_DIRS)
- # TODO: The following can be replaced by something simpler when bug 844884
- # is fixed.
- # Remaining nss/lib directories
- NSS_DIRS += nss/lib/freebl nss/lib/softoken nss/lib/jar nss/lib/crmf nss/lib/ckfw
- DEFAULT_GMAKE_FLAGS += NSS_DISABLE_LIBPKIX=1
- ifeq (WINNT,$(OS_TARGET))
- NSS_DIRS += nss/lib/zlib
- endif
- endif # MOZ_FOLD_LIBS
- # Filter-out $(LIBRARY_NAME) because it's already handled in config/rules.mk.
- NSS_DIST_DLL_FILES := $(addprefix $(DIST)/lib/$(DLL_PREFIX),$(addsuffix $(DLL_SUFFIX),$(filter-out $(LIBRARY_NAME),$(NSS_DLLS)) $(NSS_EXTRA_DLLS)))
- NSS_DIST_DLL_DEST := $(DIST)/bin
- NSS_DIST_DLL_TARGET := target
- INSTALL_TARGETS += NSS_DIST_DLL
- ifeq ($(OS_ARCH)_$(1), SunOS_softokn3)
- # has to use copy mode on Solaris, see #665509
- $(DIST)/bin/$(DLL_PREFIX)softokn3$(DLL_SUFFIX): INSTALL := $(NSINSTALL) -t
- endif
- NSS_SDK_LIB_FILES := \
- $(addprefix $(DIST)/lib/$(LIB_PREFIX),$(addsuffix .$(LIB_SUFFIX),$(SDK_LIBS))) \
- $(addprefix $(DIST)/bin/$(DLL_PREFIX),$(addsuffix $(DLL_SUFFIX),$(NSS_DLLS))) \
- $(NULL)
- NSS_SDK_LIB_DEST := $(DIST)/sdk/lib
- NSS_SDK_LIB_TARGET := target
- INSTALL_TARGETS += NSS_SDK_LIB
- ifdef MOZ_FOLD_LIBS
- # Add all static libraries for nss, smime, ssl and nssutil
- STATIC_LIBS += $(addprefix $(DEPTH)/security/,$(NSS_STATIC_LIBS))
- IMPORT_LIB_FILES = $(IMPORT_LIBRARY)
- IMPORT_LIB_DEST ?= $(DIST)/lib
- IMPORT_LIB_TARGET = target
- INSTALL_TARGETS += IMPORT_LIB
- endif # MOZ_FOLD_LIBS
- include $(topsrcdir)/config/rules.mk
- ifeq (1,$(ALLOW_COMPILER_WARNINGS))
- DEFAULT_GMAKE_FLAGS += NSS_ENABLE_WERROR=0
- endif
- # Can't pass this in DEFAULT_GMAKE_FLAGS because that overrides
- # definitions in NSS, so just export it into the sub-make's environment.
- ifeq (WINNT_1,$(OS_TARGET)_$(MOZ_MEMORY))
- DLLFLAGS := -LIBPATH:$(ABS_DIST)/../mozglue/build -DEFAULTLIB:mozglue
- export DLLFLAGS
- endif
- ifdef MOZ_FOLD_LIBS
- # Force the linker to include everything from the static libraries.
- EXPAND_LIBS_EXEC += --extract
- $(SHARED_LIBRARY): $(addprefix $(DEPTH)/security/,$(NSS_STATIC_LIBS))
- ifdef IMPORT_LIB_SUFFIX
- IMPORT_PREFIX = $(LIB_PREFIX)
- IMPORT_SUFFIX = .$(IMPORT_LIB_SUFFIX)
- else
- IMPORT_PREFIX = $(DLL_PREFIX)
- IMPORT_SUFFIX = $(DLL_SUFFIX)
- endif
- NSPR_IMPORT_LIBS = $(addprefix $(DIST)/lib/$(IMPORT_PREFIX),$(addsuffix $(IMPORT_SUFFIX),nspr4 plc4 plds4))
- SQLITE_IMPORT_LIB = $(DIST)/lib/$(IMPORT_PREFIX)mozsqlite3$(IMPORT_SUFFIX)
- # TODO: The following can be replaced by something simpler when bug 844884
- # is fixed.
- # Associate target files with the rules that build them.
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX): libs-nss/lib/crmf
- $(DIST)/lib/$(DLL_PREFIX)freebl3$(DLL_SUFFIX): libs-nss/lib/freebl
- $(DIST)/lib/$(DLL_PREFIX)nssckbi$(DLL_SUFFIX): libs-nss/lib/ckfw
- $(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX): libs-nss/lib/softoken
- $(DIST)/lib/$(DLL_PREFIX)nssdbm3$(DLL_SUFFIX): libs-nss/lib/softoken
- $(foreach lib,$(NSS_STATIC_LIBS),$(eval $(DEPTH)/security/$(lib): libs-$(patsubst %/,%,$(dir $(lib)))))
- # Create fake import libraries for the folded libraries, so that linking
- # against them works both for the NSS build system (see dependencies below)
- # and for the rest of the mozilla build system.
- $(NSPR_IMPORT_LIBS) \
- $(SQLITE_IMPORT_LIB) \
- $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX) \
- $(DIST)/lib/$(IMPORT_PREFIX)ssl3$(IMPORT_SUFFIX) \
- $(DIST)/lib/$(IMPORT_PREFIX)smime3$(IMPORT_SUFFIX): $(DIST)/lib/$(IMPORT_PREFIX)nss3$(IMPORT_SUFFIX)
- ifeq (WINNT,$(OS_TARGET))
- cp $< $@
- else
- ln -sf $< $@
- endif
- # Interdependencies between nss sub-directories, and dependencies on NSPR/SQLite
- libs-nss/lib/ckfw: libs-nss/lib/nss/../base $(NSPR_IMPORT_LIBS)
- libs-nss/lib/softoken: $(NSPR_IMPORT_LIBS) $(SQLITE_IMPORT_LIB)
- libs-nss/lib/softoken: libs-nss/lib/freebl
- ifndef NSS_DISABLE_DBM
- libs-nss/lib/softoken: libs-nss/lib/dbm
- endif
- libs-nss/lib/softoken: $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX)
- libs-nss/lib/freebl: $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX) $(NSPR_IMPORT_LIBS)
- # For each directory where we build static libraries, force the NSS build system
- # to only build static libraries.
- $(addprefix libs-,$(NSS_STATIC_DIRS)): DEFAULT_GMAKE_FLAGS += SHARED_LIBRARY= IMPORT_LIBRARY=
- else
- $(STATIC_LIBS) $(NSS_DIST_DLL_FILES) $(NSS_SDK_LIB_FILES): libs-nss/lib
- endif # MOZ_FOLD_LIBS
- ifeq ($(NSINSTALL_PY),$(NSINSTALL))
- DEFAULT_GMAKE_FLAGS += PYTHON='$(PYTHON)'
- DEFAULT_GMAKE_FLAGS += NSINSTALL_PY='$(abspath $(topsrcdir)/config/nsinstall.py)'
- DEFAULT_GMAKE_FLAGS += NSINSTALL='$$(PYTHON) $$(NSINSTALL_PY)'
- else
- DEFAULT_GMAKE_FLAGS += NSINSTALL='$(abspath $(NSINSTALL))'
- endif
- ifeq ($(OS_ARCH),WINNT)
- DEFAULT_GMAKE_FLAGS += INSTALL='$$(NSINSTALL) -t'
- endif
- DEFAULT_GMAKE_FLAGS += $(EXTRA_GMAKE_FLAGS)
- $(addprefix libs-,$(NSS_DIRS)): libs-%:
- # Work around NSS's export rule being racy when recursing for private_export
- # See bug #836220.
- $(addprefix export-,$(NSS_DIRS)): EXTRA_GMAKE_FLAGS = PRIVATE_EXPORTS=
- $(addprefix export-,$(NSS_DIRS)): export-%: private_export-%
- $(addprefix private_export-,$(NSS_DIRS)): EXTRA_GMAKE_FLAGS =
- $(addprefix private_export-,$(NSS_DIRS)): private_export-%:
- $(foreach p,libs export private_export,$(addprefix $(p)-,$(NSS_DIRS))):
- $(DEFAULT_GMAKE_ENV) $(MAKE) -C $(NSS_SRCDIR)/security/$* $(@:-$*=) $(DEFAULT_GMAKE_FLAGS)
- export:: $(addprefix export-,$(NSS_DIRS))
- $(addprefix clean-,$(NSS_DIRS)): clean-%:
- $(MAKE) -C $(NSS_SRCDIR)/security/$* $(DEFAULT_GMAKE_FLAGS) clean
- clean clobber clobber_all realclean distclean depend:: $(addprefix clean-,$(NSS_DIRS))
- NSS_CMD_TARGETS := $(addprefix libs-,$(filter-out nss/cmd/lib,$(filter nss/cmd/%,$(NSS_DIRS))))
- target:: $(NSS_CMD_TARGETS)
- ifdef MOZ_FOLD_LIBS
- $(NSS_CMD_TARGETS): $(addprefix $(DIST)/lib/$(IMPORT_PREFIX),$(addsuffix $(IMPORT_SUFFIX),$(NSS_LIBS)))
- libs-nss/cmd/modutil: libs-nss/lib/jar
- ifeq (WINNT,$(OS_TARGET))
- libs-nss/cmd/modutil: libs-nss/lib/zlib
- endif
- $(NSS_CMD_TARGETS): libs-nss/cmd/lib
- else
- $(NSS_CMD_TARGETS): libs-nss/lib libs-nss/cmd/lib
- endif # MOZ_FOLD_LIBS
- # Work around NSS build system race condition creating certdata.c in
- # security/nss/lib/ckfw/builtins. See bug #836220.
- libs-nss/lib$(if $(MOZ_FOLD_LIBS),/ckfw): $(call mkdir_deps,$(DEPTH)/security/nss/lib/ckfw/builtins)
|