1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/build/Makefile.in Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,494 @@ 1.4 +# 1.5 +# This Source Code Form is subject to the terms of the Mozilla Public 1.6 +# License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 +# file, You can obtain one at http://mozilla.org/MPL/2.0/. 1.8 + 1.9 +CC_WRAPPER = 1.10 +CXX_WRAPPER = 1.11 + 1.12 +default:: 1.13 + 1.14 +include $(topsrcdir)/config/makefiles/functions.mk 1.15 + 1.16 +NSS_LIBS = \ 1.17 + nss3 \ 1.18 + nssutil3 \ 1.19 + smime3 \ 1.20 + ssl3 \ 1.21 + $(NULL) 1.22 + 1.23 +ifdef MOZ_FOLD_LIBS 1.24 +NSS_DLLS = $(LIBRARY_NAME) 1.25 +else 1.26 +NSS_DLLS = $(NSS_LIBS) 1.27 +endif 1.28 + 1.29 +NSS_EXTRA_DLLS = \ 1.30 + nssckbi \ 1.31 + softokn3 \ 1.32 + $(NULL) 1.33 + 1.34 +ifndef NSS_DISABLE_DBM 1.35 +NSS_EXTRA_DLLS += nssdbm3 1.36 +endif 1.37 + 1.38 +SDK_LIBS = crmf 1.39 + 1.40 +ifneq (,$(filter WINNT,$(OS_ARCH))) 1.41 +SDK_LIBS += $(NSS_DLLS) 1.42 +endif 1.43 + 1.44 +# Default 1.45 +HAVE_FREEBL_LIBS = 1 1.46 + 1.47 +# 32-bit HP-UX PA-RISC 1.48 +ifeq ($(OS_ARCH), HP-UX) 1.49 +ifneq ($(OS_TEST), ia64) 1.50 +ifndef HAVE_64BIT_OS 1.51 +HAVE_FREEBL_LIBS = 1.52 +HAVE_FREEBL_LIBS_32INT32 = 1 1.53 +HAVE_FREEBL_LIBS_32FPU = 1 1.54 +endif 1.55 +endif 1.56 +endif 1.57 + 1.58 +# SunOS SPARC 1.59 +ifeq ($(OS_ARCH), SunOS) 1.60 +ifneq (86,$(findstring 86,$(OS_TEST))) 1.61 +ifdef HAVE_64BIT_OS 1.62 +HAVE_FREEBL_LIBS = 1.63 +HAVE_FREEBL_LIBS_64 = 1 1.64 +else 1.65 +HAVE_FREEBL_LIBS = 1.66 +HAVE_FREEBL_LIBS_32FPU = 1 1.67 +HAVE_FREEBL_LIBS_32INT64 = 1 1.68 +endif 1.69 +endif 1.70 +endif 1.71 + 1.72 +ifdef HAVE_FREEBL_LIBS 1.73 +NSS_EXTRA_DLLS += freebl3 1.74 +endif 1.75 +ifdef HAVE_FREEBL_LIBS_32INT32 1.76 +NSS_EXTRA_DLLS += freebl_32int_3 1.77 +endif 1.78 +ifdef HAVE_FREEBL_LIBS_32FPU 1.79 +NSS_EXTRA_DLLS += freebl_32fpu_3 1.80 +endif 1.81 +ifdef HAVE_FREEBL_LIBS_32INT64 1.82 +NSS_EXTRA_DLLS += freebl_32int64_3 1.83 +endif 1.84 +ifdef HAVE_FREEBL_LIBS_64 1.85 +NSS_EXTRA_DLLS += freebl_64int_3 1.86 +NSS_EXTRA_DLLS += freebl_64fpu_3 1.87 +endif 1.88 + 1.89 +ABS_DIST := $(abspath $(DIST)) 1.90 +ifeq ($(HOST_OS_ARCH),WINNT) 1.91 +ifdef CYGDRIVE_MOUNT 1.92 +ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\|/|g') 1.93 +endif 1.94 +ifneq (,$(filter mingw%,$(host_os))) 1.95 +ABS_DIST := $(shell cd $(DIST) && pwd -W) 1.96 +endif 1.97 +endif 1.98 +# For all variables such as DLLFLAGS, that may contain $(DIST) 1.99 +DIST := $(ABS_DIST) 1.100 +NSPR_INCLUDE_DIR = $(firstword $(filter -I%,$(NSPR_CFLAGS))) 1.101 +ifneq (,$(strip $(NSPR_INCLUDE_DIR))) 1.102 +NSPR_INCLUDE_DIR := $(subst -I,,$(subst -I$(DIST),-I$(ABS_DIST),$(NSPR_INCLUDE_DIR))) 1.103 +else 1.104 +NSPR_INCLUDE_DIR = $(ABS_DIST)/include/nspr 1.105 +endif 1.106 +NSPR_LIB_DIR = $(firstword $(filter -L%,$(NSPR_LIBS))) 1.107 +ifneq (,$(strip $(NSPR_LIB_DIR))) 1.108 +NSPR_LIB_DIR := $(subst -L,,$(subst -L$(DIST),-L$(ABS_DIST),$(NSPR_LIB_DIR))) 1.109 +else 1.110 +NSPR_LIB_DIR = $(ABS_DIST)/lib 1.111 +endif 1.112 +# Can't pass this in DEFAULT_GMAKE_FLAGS because that overrides 1.113 +# definitions in NSS, so just export it into the sub-make's environment. 1.114 +ifeq (WINNT_1,$(OS_TARGET)_$(MOZ_MEMORY)) 1.115 +export DLLFLAGS 1.116 +endif 1.117 + 1.118 +# To get debug symbols from NSS 1.119 +export MOZ_DEBUG_SYMBOLS 1.120 + 1.121 +DEFAULT_GMAKE_FLAGS = 1.122 +DEFAULT_GMAKE_FLAGS += CC='$(CC)' 1.123 +DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST) 1.124 +DEFAULT_GMAKE_FLAGS += SOURCE_MDHEADERS_DIR=$(NSPR_INCLUDE_DIR) 1.125 +DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST) 1.126 +DEFAULT_GMAKE_FLAGS += NSPR_INCLUDE_DIR=$(NSPR_INCLUDE_DIR) 1.127 +DEFAULT_GMAKE_FLAGS += NSPR_LIB_DIR=$(NSPR_LIB_DIR) 1.128 +DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1 1.129 +DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1 1.130 +DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ECC=1 1.131 +ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_1) 1.132 +DEFAULT_GMAKE_FLAGS += OS_DLLFLAGS='-static-libgcc' 1.133 +endif 1.134 +ifndef MOZ_NATIVE_SQLITE 1.135 +ifdef MOZ_FOLD_LIBS 1.136 +DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=nss3 1.137 +else 1.138 +DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=mozsqlite3 1.139 +endif # MOZ_FOLD_LIBS 1.140 +DEFAULT_GMAKE_FLAGS += SQLITE_INCLUDE_DIR=$(ABS_DIST)/include 1.141 +endif 1.142 +ifdef NSS_DISABLE_DBM 1.143 +DEFAULT_GMAKE_FLAGS += NSS_DISABLE_DBM=1 1.144 +endif 1.145 +# Hack to force NSS build system to use "normal" object directories 1.146 +DEFAULT_GMAKE_FLAGS += topsrcdir='$(topsrcdir)' 1.147 +# topsrcdir can't be expanded here because msys path mangling likes to break 1.148 +# paths in that case. 1.149 +DEFAULT_GMAKE_FLAGS += BUILD='$(MOZ_BUILD_ROOT)/security/$$(subst $$(topsrcdir)/security/,,$$(CURDIR))' 1.150 +DEFAULT_GMAKE_FLAGS += BUILD_TREE='$$(BUILD)' OBJDIR='$$(BUILD)' DEPENDENCIES='$$(BUILD)/.deps' SINGLE_SHLIB_DIR='$$(BUILD)' 1.151 +DEFAULT_GMAKE_FLAGS += SOURCE_XP_DIR=$(ABS_DIST) 1.152 +ifndef MOZ_DEBUG 1.153 +DEFAULT_GMAKE_FLAGS += BUILD_OPT=1 OPT_CODE_SIZE=1 1.154 +endif 1.155 +ifdef GNU_CC 1.156 +DEFAULT_GMAKE_FLAGS += NS_USE_GCC=1 1.157 +else 1.158 +DEFAULT_GMAKE_FLAGS += NS_USE_GCC= 1.159 +endif 1.160 +ifdef USE_N32 1.161 +# It is not really necessary to specify USE_PTHREADS=1. USE_PTHREADS 1.162 +# merely adds _PTH to coreconf's OBJDIR name. 1.163 +DEFAULT_GMAKE_FLAGS += USE_N32=1 USE_PTHREADS=1 1.164 +endif 1.165 +ifdef HAVE_64BIT_OS 1.166 +DEFAULT_GMAKE_FLAGS += USE_64=1 1.167 +endif 1.168 +ifeq ($(OS_ARCH),WINNT) 1.169 +DEFAULT_GMAKE_FLAGS += OS_TARGET=WIN95 1.170 +ifdef MOZ_DEBUG 1.171 +ifndef MOZ_NO_DEBUG_RTL 1.172 +DEFAULT_GMAKE_FLAGS += USE_DEBUG_RTL=1 1.173 +endif 1.174 +endif 1.175 +endif # WINNT 1.176 +ifeq ($(OS_ARCH),Darwin) 1.177 +# Make nsinstall use absolute symlinks by default when building NSS 1.178 +# for Mozilla on Mac OS X. (Bugzilla bug 193164) 1.179 +ifndef NSDISTMODE 1.180 +DEFAULT_GMAKE_FLAGS += NSDISTMODE=absolute_symlink 1.181 +endif 1.182 +ifdef MACOS_SDK_DIR 1.183 +DEFAULT_GMAKE_FLAGS += MACOS_SDK_DIR=$(MACOS_SDK_DIR) 1.184 +endif 1.185 +endif 1.186 + 1.187 +# Turn off TLS compression support because it requires system zlib. 1.188 +# See bug 580679 comment 18. 1.189 +DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ZLIB= 1.190 + 1.191 +# Disable building of the test programs in security/nss/lib/zlib 1.192 +DEFAULT_GMAKE_FLAGS += PROGRAMS= 1.193 + 1.194 +# Disable creating .chk files. They will be generated from packager.mk 1.195 +# When bug 681624 lands, we can replace CHECKLOC= with SKIP_SHLIBSIGN=1 1.196 +DEFAULT_GMAKE_FLAGS += CHECKLOC= 1.197 + 1.198 +ifdef CROSS_COMPILE 1.199 + 1.200 +DEFAULT_GMAKE_FLAGS += \ 1.201 + NATIVE_CC='$(HOST_CC)' \ 1.202 + CC='$(CC)' \ 1.203 + CCC='$(CXX)' \ 1.204 + LINK='$(LD)' \ 1.205 + AS='$(AS)' \ 1.206 + AR='$(AR) $(AR_FLAGS:$@=$$@)' \ 1.207 + RANLIB='$(RANLIB)' \ 1.208 + RC='$(RC) $(RCFLAGS)' \ 1.209 + OS_ARCH='$(OS_ARCH)' \ 1.210 + OS_TEST='$(OS_TEST)' \ 1.211 + CPU_ARCH='$(TARGET_CPU)' \ 1.212 + $(NULL) 1.213 + 1.214 +# Android has pthreads integrated into -lc, so OS_PTHREAD is set to nothing 1.215 +ifeq ($(OS_TARGET), Android) 1.216 +DEFAULT_GMAKE_FLAGS += \ 1.217 + OS_RELEASE='2.6' \ 1.218 + OS_PTHREAD= \ 1.219 + $(NULL) 1.220 + 1.221 +DEFAULT_GMAKE_FLAGS += ARCHFLAG='$(CFLAGS) -DCHECK_FORK_GETPID -DRTLD_NOLOAD=0 -include $(topsrcdir)/security/manager/android_stub.h' 1.222 +endif 1.223 +endif 1.224 + 1.225 +ifdef WRAP_LDFLAGS 1.226 +DEFAULT_GMAKE_FLAGS += \ 1.227 + LDFLAGS='$(LDFLAGS) $(WRAP_LDFLAGS)' \ 1.228 + DSO_LDOPTS='$(DSO_LDOPTS) $(LDFLAGS) $(WRAP_LDFLAGS)' \ 1.229 + $(NULL) 1.230 +endif 1.231 + 1.232 +DEFAULT_GMAKE_FLAGS += FREEBL_NO_DEPEND=0 1.233 +ifeq ($(OS_TARGET),Linux) 1.234 +DEFAULT_GMAKE_FLAGS += FREEBL_LOWHASH=1 1.235 +endif 1.236 + 1.237 +ifdef MOZ_NO_WLZDEFS 1.238 +DEFAULT_GMAKE_FLAGS += ZDEFS_FLAG= 1.239 +endif 1.240 +ifdef MOZ_CFLAGS_NSS 1.241 +DEFAULT_GMAKE_FLAGS += XCFLAGS='$(CFLAGS)' 1.242 +DEFAULT_GMAKE_FLAGS += DARWIN_DYLIB_VERSIONS='-compatibility_version 1 -current_version 1 $(LDFLAGS)' 1.243 +endif 1.244 + 1.245 +DEFAULT_GMAKE_FLAGS += NSS_NO_PKCS11_BYPASS=1 1.246 + 1.247 +# Put NSS headers directly under $(DIST)/include 1.248 +DEFAULT_GMAKE_FLAGS += PUBLIC_EXPORT_DIR='$(ABS_DIST)/include/$$(MODULE)' 1.249 +DEFAULT_GMAKE_FLAGS += SOURCE_XPHEADERS_DIR='$$(SOURCE_XP_DIR)/include/$$(MODULE)' 1.250 +DEFAULT_GMAKE_FLAGS += MODULE_INCLUDES='$$(addprefix -I$$(SOURCE_XP_DIR)/include/,$$(REQUIRES))' 1.251 + 1.252 +# Work around NSS's MAKE_OBJDIR being racy. See bug #836220 1.253 +DEFAULT_GMAKE_FLAGS += MAKE_OBJDIR='$$(INSTALL) -D $$(OBJDIR)' 1.254 + 1.255 +# Work around NSS adding IMPORT_LIBRARY to TARGETS with no rule for 1.256 +# it, creating race conditions. See bug #836220 1.257 +DEFAULT_GMAKE_FLAGS += TARGETS='$$(LIBRARY) $$(SHARED_LIBRARY) $$(PROGRAM)' 1.258 + 1.259 +ifdef MOZ_B2G_CERTDATA 1.260 +include $(srcdir)/b2g-certdata.mk 1.261 +endif 1.262 + 1.263 +ifdef MOZ_NSS_PATCH 1.264 +# If we're applying a patch, we'll copy the NSS source to the objdir 1.265 +# and build it from there. 1.266 +NSS_SRCDIR = $(CURDIR)/nss 1.267 + 1.268 +# This will copy and patch the NSS source for every build. 1.269 +# Since we "cp -p", it won't force rebuilds for most files, just 1.270 +# for patched files, but that's easier than trying to track 1.271 +# dependencies for patched files. 1.272 +export:: 1.273 + rm -rf $(NSS_SRCDIR) 1.274 + $(NSINSTALL) -D $(NSS_SRCDIR)/security 1.275 + cp -Rp $(topsrcdir)/security/nss $(NSS_SRCDIR)/security 1.276 + cp -Rp $(topsrcdir)/security/coreconf $(NSS_SRCDIR)/security 1.277 + cp -Rp $(topsrcdir)/security/dbm $(NSS_SRCDIR)/security 1.278 + cp -Rp $(topsrcdir)/dbm $(NSS_SRCDIR) 1.279 + (cd $(NSS_SRCDIR) && patch -p1 < $(abspath $(MOZ_NSS_PATCH))) 1.280 +else 1.281 +NSS_SRCDIR = $(topsrcdir) 1.282 +endif 1.283 + 1.284 +NSS_DIRS = 1.285 +ifndef MOZ_FOLD_LIBS 1.286 +NSS_DIRS += nss/lib 1.287 +else 1.288 +ifndef NSS_DISABLE_DBM 1.289 +NSS_DIRS += nss/lib/dbm 1.290 +endif 1.291 +endif 1.292 +NSS_DIRS += \ 1.293 + nss/cmd/lib \ 1.294 + nss/cmd/shlibsign \ 1.295 + $(NULL) 1.296 + 1.297 +ifdef ENABLE_TESTS 1.298 +NSS_DIRS += \ 1.299 + nss/cmd/certutil \ 1.300 + nss/cmd/pk12util \ 1.301 + nss/cmd/modutil \ 1.302 + $(NULL) 1.303 +endif 1.304 + 1.305 +ifneq (,$(filter %--build-id,$(LDFLAGS))) 1.306 +DEFAULT_GMAKE_ENV = LDFLAGS=-Wl,--build-id 1.307 +endif 1.308 + 1.309 +ifdef MOZ_FOLD_LIBS 1.310 +# TODO: The following can be replaced by something simpler when bug 844880 1.311 +# is fixed. 1.312 +# All static libraries required for nss, smime, ssl and nssutil. 1.313 +# The strip is needed to remove potential linefeed characters, since they hang 1.314 +# around in some cases on Windows. 1.315 +NSS_STATIC_LIBS := $(strip $(shell $(MAKE) --no-print-directory -f $(srcdir)/nss.mk DEPTH='$(DEPTH)' topsrcdir='$(topsrcdir)' srcdir='$(srcdir)' echo-variable-libs)) 1.316 +# Corresponding build directories 1.317 +NSS_STATIC_DIRS := $(foreach lib,$(NSS_STATIC_LIBS),$(patsubst %/,%,$(dir $(lib)))) 1.318 +NSS_DIRS += $(NSS_STATIC_DIRS) 1.319 + 1.320 +# TODO: The following can be replaced by something simpler when bug 844884 1.321 +# is fixed. 1.322 +# Remaining nss/lib directories 1.323 +NSS_DIRS += nss/lib/freebl nss/lib/softoken nss/lib/jar nss/lib/crmf nss/lib/ckfw nss/lib/libpkix 1.324 +ifeq (WINNT,$(OS_TARGET)) 1.325 +NSS_DIRS += nss/lib/zlib 1.326 +endif 1.327 +endif # MOZ_FOLD_LIBS 1.328 + 1.329 +# Filter-out $(LIBRARY_NAME) because it's already handled in config/rules.mk. 1.330 +NSS_DIST_DLL_FILES := $(addprefix $(DIST)/lib/$(DLL_PREFIX),$(addsuffix $(DLL_SUFFIX),$(filter-out $(LIBRARY_NAME),$(NSS_DLLS)) $(NSS_EXTRA_DLLS))) 1.331 +NSS_DIST_DLL_DEST := $(DIST)/bin 1.332 +INSTALL_TARGETS += NSS_DIST_DLL 1.333 + 1.334 +ifeq ($(OS_ARCH)_$(1), SunOS_softokn3) 1.335 +# has to use copy mode on Solaris, see #665509 1.336 +$(DIST)/bin/$(DLL_PREFIX)softokn3$(DLL_SUFFIX): INSTALL := $(INSTALL) -t 1.337 +endif 1.338 + 1.339 +NSS_SDK_LIB_FILES := \ 1.340 + $(addprefix $(DIST)/lib/$(LIB_PREFIX),$(addsuffix .$(LIB_SUFFIX),$(SDK_LIBS))) \ 1.341 + $(addprefix $(DIST)/bin/$(DLL_PREFIX),$(addsuffix $(DLL_SUFFIX),$(NSS_DLLS))) \ 1.342 + $(NULL) 1.343 +NSS_SDK_LIB_DEST := $(DIST)/sdk/lib 1.344 +INSTALL_TARGETS += NSS_SDK_LIB 1.345 + 1.346 +ifdef MOZ_FOLD_LIBS 1.347 +ifeq (WINNT,$(OS_TARGET)) 1.348 +SUFFIX = _s.$(LIB_SUFFIX) 1.349 +else 1.350 +SUFFIX = .$(LIB_SUFFIX) 1.351 +endif 1.352 + 1.353 +# Fold NSPR libs 1.354 +EXTRA_DSO_LDOPTS += $(DEPTH)/nsprpub/pr/src/$(LIB_PREFIX)nspr4$(SUFFIX) 1.355 +EXTRA_DSO_LDOPTS += $(DEPTH)/nsprpub/lib/ds/$(LIB_PREFIX)plds4$(SUFFIX) 1.356 +EXTRA_DSO_LDOPTS += $(DEPTH)/nsprpub/lib/libc/src/$(LIB_PREFIX)plc4$(SUFFIX) 1.357 + 1.358 +# Fold SQLite 1.359 +EXTRA_DSO_LDOPTS += $(DEPTH)/db/sqlite3/src/$(LIB_PREFIX)mozsqlite3.$(LIB_SUFFIX) 1.360 + 1.361 +# Add all static libraries for nss, smime, ssl and nssutil 1.362 +SHARED_LIBRARY_LIBS = $(addprefix ../,$(NSS_STATIC_LIBS)) 1.363 + 1.364 +ifeq (WINNT,$(OS_TARGET)) 1.365 +# Create a .def file based on the various .def files for nss, smime, ssl and 1.366 +# nssutil. 1.367 +NSS_STATIC_LIBS_DEFS := $(wildcard $(addprefix $(srcdir)/../,$(NSS_STATIC_LIBS:.$(LIB_SUFFIX)=.def))) 1.368 + 1.369 +nss3.def: $(NSS_STATIC_LIBS_DEFS) $(DEPTH)/db/sqlite3/src/sqlite-processed.def 1.370 + echo LIBRARY nss3$(DLL_SUFFIX) > $@.tmp 1.371 + echo EXPORTS >> $@.tmp 1.372 + grep -v -h -e ^LIBRARY -e ^EXPORTS -e ^\; $^ >> $@.tmp 1.373 + mv $@.tmp $@ 1.374 +endif 1.375 + 1.376 +ifneq (,$(filter WINNT,$(OS_ARCH))) 1.377 +SDK_LIBRARY = $(IMPORT_LIBRARY) 1.378 +else 1.379 +SDK_LIBRARY = $(SHARED_LIBRARY) 1.380 +endif 1.381 + 1.382 +endif # MOZ_FOLD_LIBS 1.383 + 1.384 +include $(topsrcdir)/config/rules.mk 1.385 + 1.386 +ifdef MOZ_FOLD_LIBS 1.387 +# Force the linker to include everything from the static libraries. 1.388 +EXPAND_LIBS_EXEC += --extract 1.389 + 1.390 +$(SHARED_LIBRARY): $(SHARED_LIBRARY_LIBS) 1.391 + 1.392 +EXTRA_DSO_LDOPTS += $(REALTIME_LIBS) 1.393 + 1.394 +ifdef IMPORT_LIB_SUFFIX 1.395 +IMPORT_PREFIX = $(LIB_PREFIX) 1.396 +IMPORT_SUFFIX = .$(IMPORT_LIB_SUFFIX) 1.397 +else 1.398 +IMPORT_PREFIX = $(DLL_PREFIX) 1.399 +IMPORT_SUFFIX = $(DLL_SUFFIX) 1.400 +endif 1.401 + 1.402 +NSPR_IMPORT_LIBS = $(addprefix $(DIST)/lib/$(IMPORT_PREFIX),$(addsuffix $(IMPORT_SUFFIX),nspr4 plc4 plds4)) 1.403 +SQLITE_IMPORT_LIB = $(DIST)/lib/$(IMPORT_PREFIX)mozsqlite3$(IMPORT_SUFFIX) 1.404 + 1.405 +# TODO: The following can be replaced by something simpler when bug 844884 1.406 +# is fixed. 1.407 +# Associate target files with the rules that build them. 1.408 +$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX): libs-nss/lib/crmf 1.409 +$(DIST)/lib/$(DLL_PREFIX)freebl3$(DLL_SUFFIX): libs-nss/lib/freebl 1.410 +$(DIST)/lib/$(DLL_PREFIX)nssckbi$(DLL_SUFFIX): libs-nss/lib/ckfw 1.411 +$(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX): libs-nss/lib/softoken 1.412 +$(DIST)/lib/$(DLL_PREFIX)nssdbm3$(DLL_SUFFIX): libs-nss/lib/softoken 1.413 +$(foreach lib,$(NSS_STATIC_LIBS),$(eval ../$(lib): libs-$(patsubst %/,%,$(dir $(lib))))) 1.414 + 1.415 +# Create fake import libraries for the folded libraries, so that linking 1.416 +# against them works both for the NSS build system (see dependencies below) 1.417 +# and for the rest of the mozilla build system. 1.418 +$(NSPR_IMPORT_LIBS) \ 1.419 +$(SQLITE_IMPORT_LIB) \ 1.420 +$(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX) \ 1.421 +$(DIST)/lib/$(IMPORT_PREFIX)ssl3$(IMPORT_SUFFIX) \ 1.422 +$(DIST)/lib/$(IMPORT_PREFIX)smime3$(IMPORT_SUFFIX): $(DIST)/lib/$(IMPORT_PREFIX)nss3$(IMPORT_SUFFIX) 1.423 +ifeq (WINNT,$(OS_TARGET)) 1.424 + cp $< $@ 1.425 +else 1.426 + ln -sf $< $@ 1.427 +endif 1.428 + 1.429 +# Interdependencies between nss sub-directories, and dependencies on NSPR/SQLite 1.430 +libs-nss/lib/ckfw: libs-nss/lib/nss/../base $(NSPR_IMPORT_LIBS) 1.431 +libs-nss/lib/softoken: $(NSPR_IMPORT_LIBS) $(SQLITE_IMPORT_LIB) 1.432 +libs-nss/lib/softoken: libs-nss/lib/freebl 1.433 +ifndef NSS_DISABLE_DBM 1.434 +libs-nss/lib/softoken: libs-nss/lib/dbm 1.435 +endif 1.436 +libs-nss/lib/softoken: $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX) 1.437 +libs-nss/lib/freebl: $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX) $(NSPR_IMPORT_LIBS) 1.438 + 1.439 +# For each directory where we build static libraries, force the NSS build system 1.440 +# to only build static libraries. 1.441 +$(addprefix libs-,$(NSS_STATIC_DIRS)): DEFAULT_GMAKE_FLAGS += SHARED_LIBRARY= IMPORT_LIBRARY= 1.442 +else 1.443 +$(NSS_DIST_DLL_FILES) $(NSS_SDK_LIB_FILES): libs-nss/lib 1.444 +endif # MOZ_FOLD_LIBS 1.445 + 1.446 +ifeq ($(NSINSTALL_PY),$(NSINSTALL)) 1.447 +DEFAULT_GMAKE_FLAGS += PYTHON='$(PYTHON)' 1.448 +DEFAULT_GMAKE_FLAGS += NSINSTALL_PY='$(abspath $(topsrcdir)/config/nsinstall.py)' 1.449 +DEFAULT_GMAKE_FLAGS += NSINSTALL='$$(PYTHON) $$(NSINSTALL_PY)' 1.450 +else 1.451 +DEFAULT_GMAKE_FLAGS += NSINSTALL='$(NSINSTALL)' 1.452 +endif 1.453 +ifeq ($(OS_ARCH),WINNT) 1.454 +DEFAULT_GMAKE_FLAGS += INSTALL='$$(NSINSTALL) -t' 1.455 +endif 1.456 +DEFAULT_GMAKE_FLAGS += $(EXTRA_GMAKE_FLAGS) 1.457 + 1.458 +$(addprefix libs-,$(NSS_DIRS)): libs-%: 1.459 +# Work around NSS's export rule being racy when recursing for private_export 1.460 +# See bug #836220. 1.461 +$(addprefix export-,$(NSS_DIRS)): EXTRA_GMAKE_FLAGS = PRIVATE_EXPORTS= 1.462 +$(addprefix export-,$(NSS_DIRS)): export-%: private_export-% 1.463 +$(addprefix private_export-,$(NSS_DIRS)): EXTRA_GMAKE_FLAGS = 1.464 +$(addprefix private_export-,$(NSS_DIRS)): private_export-%: 1.465 + 1.466 +# Work around bug #836228 in pymake 1.467 +ifdef .PYMAKE 1.468 +$(foreach p,libs export private_export,$(addprefix $(p)-,$(NSS_DIRS))): *=$(subst $(NULL) $(NULL),-,$(wordlist 2,$(words $(subst -, ,$@)),$(subst -, ,$@))) 1.469 +endif 1.470 + 1.471 +$(foreach p,libs export private_export,$(addprefix $(p)-,$(NSS_DIRS))): 1.472 + $(DEFAULT_GMAKE_ENV) $(MAKE) -C $(NSS_SRCDIR)/security/$* $(@:-$*=) $(DEFAULT_GMAKE_FLAGS) 1.473 + 1.474 +export:: $(addprefix export-,$(NSS_DIRS)) 1.475 + 1.476 +$(addprefix clean-,$(NSS_DIRS)): clean-%: 1.477 + $(MAKE) -C $(NSS_SRCDIR)/security/$* $(DEFAULT_GMAKE_FLAGS) clean 1.478 + 1.479 +clean clobber clobber_all realclean distclean depend:: $(addprefix clean-,$(NSS_DIRS)) 1.480 + 1.481 +NSS_CMD_TARGETS := $(addprefix libs-,$(filter-out nss/cmd/lib,$(filter nss/cmd/%,$(NSS_DIRS)))) 1.482 +libs:: $(NSS_CMD_TARGETS) 1.483 + 1.484 +ifdef MOZ_FOLD_LIBS 1.485 +$(NSS_CMD_TARGETS): $(addprefix $(DIST)/lib/$(IMPORT_PREFIX),$(addsuffix $(IMPORT_SUFFIX),$(NSS_LIBS))) 1.486 +libs-nss/cmd/modutil: libs-nss/lib/jar 1.487 +ifeq (WINNT,$(OS_TARGET)) 1.488 +libs-nss/cmd/modutil: libs-nss/lib/zlib 1.489 +endif 1.490 +$(NSS_CMD_TARGETS): libs-nss/cmd/lib 1.491 +else 1.492 +$(NSS_CMD_TARGETS): libs-nss/lib libs-nss/cmd/lib 1.493 +endif # MOZ_FOLD_LIBS 1.494 + 1.495 +# Work around NSS build system race condition creating certdata.c in 1.496 +# security/nss/lib/ckfw/builtins. See bug #836220. 1.497 +libs-nss/lib$(if $(MOZ_FOLD_LIBS),/ckfw): $(call mkdir_deps,../nss/lib/ckfw/builtins)