mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-06-06 06:29:31 +00:00
3f33f8a6e5
* ycbcr: intel assembly fixes for old gcc-as in Tiger minor changes in assembly that are friendly to the older gcc-as in Tiger * libvpx/moz.build: only use force_cpusubtype_all on PPC this flag is not accepted by the intel assembler * libvpx: compiler/assembler fixes for intel use clang-3.4 as the primary compiler use yasm for the assembly * nss: use clang-3.4 as compiler on Intel nss contains assembly that the old gas assembler can't manage using clang-3.4 is the easiest fix for this, as it is already needed elsewhere for libvpx * Intel mozconfig: update we need to force the old gas assembler to be used for the majority of the build as the newer clang one will fail * client.mk: use original which MacPorts has a newer version of the which command that is supposed to be more like current 'which' versions, but there is an error in it at present and the construct used in TFF doesn't work correctly. Until this is fixed, use the original /usr/bin/which (and that one can in fact be used forever, of course).
512 lines
15 KiB
Makefile
512 lines
15 KiB
Makefile
#
|
|
# 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/.
|
|
|
|
ifndef MOZ_NATIVE_NSS
|
|
|
|
CC_WRAPPER =
|
|
CXX_WRAPPER =
|
|
|
|
default::
|
|
|
|
ifeq (86,$(findstring 86,$(OS_TEST)))
|
|
# TenFourFox Intel fix
|
|
# TO DO - pass the compiler in as an environment variable
|
|
CC=clang-mp-3.4
|
|
CC += -arch i386
|
|
CC += -O3
|
|
CCC=clang++-mp-3.4
|
|
CCC += -arch i386
|
|
CCC += -O3
|
|
endif
|
|
|
|
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
|
|
|
|
# 32-bit HP-UX PA-RISC
|
|
ifeq ($(OS_ARCH), HP-UX)
|
|
ifneq ($(OS_TEST), ia64)
|
|
ifndef HAVE_64BIT_BUILD
|
|
HAVE_FREEBL_LIBS =
|
|
HAVE_FREEBL_LIBS_32INT32 = 1
|
|
HAVE_FREEBL_LIBS_32FPU = 1
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
# 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
|
|
|
|
ifdef HAVE_FREEBL_LIBS
|
|
NSS_EXTRA_DLLS += freebl3
|
|
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
|
|
|
|
ABS_DIST := $(abspath $(DIST))
|
|
ifeq ($(HOST_OS_ARCH),WINNT)
|
|
ifdef CYGDRIVE_MOUNT
|
|
ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\|/|g')
|
|
endif
|
|
ifneq (,$(filter mingw%,$(host_os)))
|
|
ABS_DIST := $(shell cd $(DIST) && pwd -W)
|
|
endif
|
|
endif
|
|
# For all variables such as DLLFLAGS, that may contain $(DIST)
|
|
DIST := $(ABS_DIST)
|
|
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
|
|
NSPR_INCLUDE_DIR = $(ABS_DIST)/include/nspr
|
|
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
|
|
NSPR_LIB_DIR = $(ABS_DIST)/lib
|
|
endif
|
|
|
|
# To get debug symbols from NSS
|
|
export MOZ_DEBUG_SYMBOLS
|
|
|
|
DEFAULT_GMAKE_FLAGS =
|
|
DEFAULT_GMAKE_FLAGS += CC='$(CC)'
|
|
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
|
|
ifndef MOZ_NATIVE_SQLITE
|
|
ifdef MOZ_FOLD_LIBS
|
|
DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=nss3
|
|
else
|
|
DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=mozsqlite3
|
|
DEFAULT_GMAKE_FLAGS += SQLITE_LIB_DIR=$(ABS_DIST)/../config/external/sqlite
|
|
endif # MOZ_FOLD_LIBS
|
|
DEFAULT_GMAKE_FLAGS += SQLITE_INCLUDE_DIR=$(ABS_DIST)/include
|
|
endif
|
|
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_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)' \
|
|
LINK='$(LD)' \
|
|
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
|
|
|
|
ifdef MOZ_GLUE_WRAP_LDFLAGS
|
|
NSS_EXTRA_LDFLAGS += $(SHARED_LIBS:$(DEPTH)%=$(MOZ_BUILD_ROOT)%) $(MOZ_GLUE_WRAP_LDFLAGS)
|
|
endif
|
|
|
|
ifneq (,$(WRAP_LDFLAGS)$(MOZ_GLUE_WRAP_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
|
|
ifeq ($(OS_TARGET),Linux)
|
|
DEFAULT_GMAKE_FLAGS += FREEBL_LOWHASH=1
|
|
endif
|
|
|
|
ifdef MOZ_NO_WLZDEFS
|
|
DEFAULT_GMAKE_FLAGS += ZDEFS_FLAG=
|
|
endif
|
|
ifdef MOZ_CFLAGS_NSS
|
|
DEFAULT_GMAKE_FLAGS += 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
|
|
DEFAULT_GMAKE_FLAGS += XCFLAGS='$(MOZ_FOLD_LIBS_FLAGS)'
|
|
endif
|
|
|
|
ifndef WARNINGS_AS_ERRORS
|
|
DEFAULT_GMAKE_FLAGS += NSS_ENABLE_WERROR=0
|
|
endif
|
|
ifeq ($(OS_TARGET),Android)
|
|
DEFAULT_GMAKE_FLAGS += NSS_ENABLE_WERROR=0
|
|
endif
|
|
|
|
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 nss/lib/libpkix
|
|
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 := $(INSTALL) -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))
|
|
|
|
nss_def_file := $(srcdir)/nss.def
|
|
|
|
ifeq (WINNT,$(OS_TARGET))
|
|
# Create a .def file based on the various .def files for nss, smime, ssl and
|
|
# nssutil.
|
|
nss3.def: $(nss_def_file) $(DEPTH)/db/sqlite3/src/sqlite-processed.def $(NSS_EXTRA_SYMBOLS_FILE)
|
|
echo LIBRARY nss3$(DLL_SUFFIX) > $@.tmp
|
|
echo EXPORTS >> $@.tmp
|
|
grep -v -h -e ^LIBRARY -e ^EXPORTS -e ^\; $^ >> $@.tmp
|
|
mv $@.tmp $@
|
|
else
|
|
ifdef GCC_USE_GNU_LD
|
|
sqlite_def_file := $(topsrcdir)/db/sqlite3/src/sqlite.def
|
|
nspr_def_file := $(srcdir)/nspr-dummy.def
|
|
|
|
nss3.def: $(nss_def_file) $(sqlite_def_file) $(nspr_def_file) $(NSS_EXTRA_SYMBOLS_FILE)
|
|
@$(call py_action,convert_def_file, \
|
|
$(DEFINES) $(ACDEFINES) $(MOZ_DEBUG_DEFINES) -o $@ $^)
|
|
|
|
GARBAGE += \
|
|
nss3.def \
|
|
$(NULL)
|
|
endif # GCC_USE_GNU_LD
|
|
endif # WINNT
|
|
|
|
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
|
|
|
|
# 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))
|
|
ifdef MOZ_CRT
|
|
# OS_LIBS comes from having mozcrt as a dependency in moz.build.
|
|
DLLFLAGS := $(OS_LIBS)
|
|
else
|
|
DLLFLAGS := -LIBPATH:$(ABS_DIST)/../mozglue/build -DEFAULTLIB:mozglue
|
|
endif
|
|
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)
|
|
|
|
endif
|