security/build/Makefile.in

Wed, 31 Dec 2014 07:16:47 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:16:47 +0100
branch
TOR_BUG_9701
changeset 3
141e0f1194b1
permissions
-rw-r--r--

Revert simplistic fix pending revisit of Mozilla integration attempt.

     1 #
     2 # This Source Code Form is subject to the terms of the Mozilla Public
     3 # License, v. 2.0. If a copy of the MPL was not distributed with this
     4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6 CC_WRAPPER =
     7 CXX_WRAPPER =
     9 default::
    11 include $(topsrcdir)/config/makefiles/functions.mk
    13 NSS_LIBS = \
    14   nss3 \
    15   nssutil3 \
    16   smime3 \
    17   ssl3 \
    18   $(NULL)
    20 ifdef MOZ_FOLD_LIBS
    21 NSS_DLLS = $(LIBRARY_NAME)
    22 else
    23 NSS_DLLS = $(NSS_LIBS)
    24 endif
    26 NSS_EXTRA_DLLS = \
    27   nssckbi \
    28   softokn3 \
    29   $(NULL)
    31 ifndef NSS_DISABLE_DBM
    32 NSS_EXTRA_DLLS += nssdbm3
    33 endif
    35 SDK_LIBS = crmf
    37 ifneq (,$(filter WINNT,$(OS_ARCH)))
    38 SDK_LIBS += $(NSS_DLLS)
    39 endif
    41 # Default
    42 HAVE_FREEBL_LIBS = 1
    44 # 32-bit HP-UX PA-RISC
    45 ifeq ($(OS_ARCH), HP-UX)
    46 ifneq ($(OS_TEST), ia64)
    47 ifndef HAVE_64BIT_OS
    48 HAVE_FREEBL_LIBS =
    49 HAVE_FREEBL_LIBS_32INT32 = 1
    50 HAVE_FREEBL_LIBS_32FPU = 1
    51 endif
    52 endif
    53 endif
    55 # SunOS SPARC
    56 ifeq ($(OS_ARCH), SunOS)
    57 ifneq (86,$(findstring 86,$(OS_TEST)))
    58 ifdef HAVE_64BIT_OS
    59 HAVE_FREEBL_LIBS =
    60 HAVE_FREEBL_LIBS_64 = 1
    61 else
    62 HAVE_FREEBL_LIBS =
    63 HAVE_FREEBL_LIBS_32FPU = 1
    64 HAVE_FREEBL_LIBS_32INT64 = 1
    65 endif
    66 endif
    67 endif
    69 ifdef HAVE_FREEBL_LIBS
    70 NSS_EXTRA_DLLS += freebl3
    71 endif
    72 ifdef HAVE_FREEBL_LIBS_32INT32
    73 NSS_EXTRA_DLLS += freebl_32int_3
    74 endif
    75 ifdef HAVE_FREEBL_LIBS_32FPU
    76 NSS_EXTRA_DLLS += freebl_32fpu_3
    77 endif
    78 ifdef HAVE_FREEBL_LIBS_32INT64
    79 NSS_EXTRA_DLLS += freebl_32int64_3
    80 endif
    81 ifdef HAVE_FREEBL_LIBS_64
    82 NSS_EXTRA_DLLS += freebl_64int_3
    83 NSS_EXTRA_DLLS += freebl_64fpu_3
    84 endif
    86 ABS_DIST := $(abspath $(DIST))
    87 ifeq ($(HOST_OS_ARCH),WINNT)
    88 ifdef CYGDRIVE_MOUNT
    89 ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\|/|g')
    90 endif
    91 ifneq (,$(filter mingw%,$(host_os)))
    92 ABS_DIST := $(shell cd $(DIST) && pwd -W)
    93 endif
    94 endif
    95 # For all variables such as DLLFLAGS, that may contain $(DIST)
    96 DIST := $(ABS_DIST)
    97 NSPR_INCLUDE_DIR = $(firstword $(filter -I%,$(NSPR_CFLAGS)))
    98 ifneq (,$(strip $(NSPR_INCLUDE_DIR)))
    99 NSPR_INCLUDE_DIR := $(subst -I,,$(subst -I$(DIST),-I$(ABS_DIST),$(NSPR_INCLUDE_DIR)))
   100 else
   101 NSPR_INCLUDE_DIR = $(ABS_DIST)/include/nspr
   102 endif
   103 NSPR_LIB_DIR = $(firstword $(filter -L%,$(NSPR_LIBS)))
   104 ifneq (,$(strip $(NSPR_LIB_DIR)))
   105 NSPR_LIB_DIR := $(subst -L,,$(subst -L$(DIST),-L$(ABS_DIST),$(NSPR_LIB_DIR)))
   106 else
   107 NSPR_LIB_DIR = $(ABS_DIST)/lib
   108 endif
   109 # Can't pass this in DEFAULT_GMAKE_FLAGS because that overrides
   110 # definitions in NSS, so just export it into the sub-make's environment.
   111 ifeq (WINNT_1,$(OS_TARGET)_$(MOZ_MEMORY))
   112 export DLLFLAGS
   113 endif
   115 # To get debug symbols from NSS
   116 export MOZ_DEBUG_SYMBOLS
   118 DEFAULT_GMAKE_FLAGS =
   119 DEFAULT_GMAKE_FLAGS += CC='$(CC)'
   120 DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST)
   121 DEFAULT_GMAKE_FLAGS += SOURCE_MDHEADERS_DIR=$(NSPR_INCLUDE_DIR)
   122 DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST)
   123 DEFAULT_GMAKE_FLAGS += NSPR_INCLUDE_DIR=$(NSPR_INCLUDE_DIR)
   124 DEFAULT_GMAKE_FLAGS += NSPR_LIB_DIR=$(NSPR_LIB_DIR)
   125 DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1
   126 DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1
   127 DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ECC=1
   128 ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_1)
   129 DEFAULT_GMAKE_FLAGS += OS_DLLFLAGS='-static-libgcc'
   130 endif
   131 ifndef MOZ_NATIVE_SQLITE
   132 ifdef MOZ_FOLD_LIBS
   133 DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=nss3
   134 else
   135 DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=mozsqlite3
   136 endif # MOZ_FOLD_LIBS
   137 DEFAULT_GMAKE_FLAGS += SQLITE_INCLUDE_DIR=$(ABS_DIST)/include
   138 endif
   139 ifdef NSS_DISABLE_DBM 
   140 DEFAULT_GMAKE_FLAGS += NSS_DISABLE_DBM=1
   141 endif
   142 # Hack to force NSS build system to use "normal" object directories
   143 DEFAULT_GMAKE_FLAGS += topsrcdir='$(topsrcdir)'
   144 # topsrcdir can't be expanded here because msys path mangling likes to break
   145 # paths in that case.
   146 DEFAULT_GMAKE_FLAGS += BUILD='$(MOZ_BUILD_ROOT)/security/$$(subst $$(topsrcdir)/security/,,$$(CURDIR))'
   147 DEFAULT_GMAKE_FLAGS += BUILD_TREE='$$(BUILD)' OBJDIR='$$(BUILD)' DEPENDENCIES='$$(BUILD)/.deps' SINGLE_SHLIB_DIR='$$(BUILD)'
   148 DEFAULT_GMAKE_FLAGS += SOURCE_XP_DIR=$(ABS_DIST)
   149 ifndef MOZ_DEBUG
   150 DEFAULT_GMAKE_FLAGS += BUILD_OPT=1 OPT_CODE_SIZE=1
   151 endif
   152 ifdef GNU_CC
   153 DEFAULT_GMAKE_FLAGS += NS_USE_GCC=1
   154 else
   155 DEFAULT_GMAKE_FLAGS += NS_USE_GCC=
   156 endif
   157 ifdef USE_N32
   158 # It is not really necessary to specify USE_PTHREADS=1.  USE_PTHREADS
   159 # merely adds _PTH to coreconf's OBJDIR name.
   160 DEFAULT_GMAKE_FLAGS += USE_N32=1 USE_PTHREADS=1
   161 endif
   162 ifdef HAVE_64BIT_OS
   163 DEFAULT_GMAKE_FLAGS += USE_64=1
   164 endif
   165 ifeq ($(OS_ARCH),WINNT)
   166 DEFAULT_GMAKE_FLAGS += OS_TARGET=WIN95
   167 ifdef MOZ_DEBUG
   168 ifndef MOZ_NO_DEBUG_RTL
   169 DEFAULT_GMAKE_FLAGS += USE_DEBUG_RTL=1
   170 endif
   171 endif
   172 endif # WINNT
   173 ifeq ($(OS_ARCH),Darwin)
   174 # Make nsinstall use absolute symlinks by default when building NSS
   175 # for Mozilla on Mac OS X. (Bugzilla bug 193164)
   176 ifndef NSDISTMODE
   177 DEFAULT_GMAKE_FLAGS += NSDISTMODE=absolute_symlink
   178 endif
   179 ifdef MACOS_SDK_DIR
   180 DEFAULT_GMAKE_FLAGS += MACOS_SDK_DIR=$(MACOS_SDK_DIR)
   181 endif
   182 endif
   184 # Turn off TLS compression support because it requires system zlib.
   185 # See bug 580679 comment 18.
   186 DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ZLIB=
   188 # Disable building of the test programs in security/nss/lib/zlib
   189 DEFAULT_GMAKE_FLAGS += PROGRAMS=
   191 # Disable creating .chk files. They will be generated from packager.mk
   192 # When bug 681624 lands, we can replace CHECKLOC= with SKIP_SHLIBSIGN=1
   193 DEFAULT_GMAKE_FLAGS += CHECKLOC=
   195 ifdef CROSS_COMPILE
   197 DEFAULT_GMAKE_FLAGS += \
   198 	NATIVE_CC='$(HOST_CC)' \
   199 	CC='$(CC)' \
   200 	CCC='$(CXX)' \
   201 	LINK='$(LD)' \
   202 	AS='$(AS)' \
   203 	AR='$(AR) $(AR_FLAGS:$@=$$@)' \
   204 	RANLIB='$(RANLIB)' \
   205 	RC='$(RC) $(RCFLAGS)' \
   206 	OS_ARCH='$(OS_ARCH)' \
   207 	OS_TEST='$(OS_TEST)' \
   208 	CPU_ARCH='$(TARGET_CPU)' \
   209 	$(NULL)
   211 # Android has pthreads integrated into -lc, so OS_PTHREAD is set to nothing
   212 ifeq ($(OS_TARGET), Android)
   213 DEFAULT_GMAKE_FLAGS += \
   214 	OS_RELEASE='2.6' \
   215 	OS_PTHREAD= \
   216 	$(NULL)
   218 DEFAULT_GMAKE_FLAGS += ARCHFLAG='$(CFLAGS) -DCHECK_FORK_GETPID -DRTLD_NOLOAD=0 -include $(topsrcdir)/security/manager/android_stub.h'
   219 endif
   220 endif
   222 ifdef WRAP_LDFLAGS
   223 DEFAULT_GMAKE_FLAGS += \
   224 	LDFLAGS='$(LDFLAGS) $(WRAP_LDFLAGS)' \
   225 	DSO_LDOPTS='$(DSO_LDOPTS) $(LDFLAGS) $(WRAP_LDFLAGS)' \
   226 	$(NULL)
   227 endif
   229 DEFAULT_GMAKE_FLAGS += FREEBL_NO_DEPEND=0
   230 ifeq ($(OS_TARGET),Linux)
   231 DEFAULT_GMAKE_FLAGS += FREEBL_LOWHASH=1
   232 endif
   234 ifdef MOZ_NO_WLZDEFS
   235 DEFAULT_GMAKE_FLAGS += ZDEFS_FLAG=
   236 endif
   237 ifdef MOZ_CFLAGS_NSS
   238 DEFAULT_GMAKE_FLAGS += XCFLAGS='$(CFLAGS)'
   239 DEFAULT_GMAKE_FLAGS += DARWIN_DYLIB_VERSIONS='-compatibility_version 1 -current_version 1 $(LDFLAGS)'
   240 endif
   242 DEFAULT_GMAKE_FLAGS += NSS_NO_PKCS11_BYPASS=1
   244 # Put NSS headers directly under $(DIST)/include
   245 DEFAULT_GMAKE_FLAGS += PUBLIC_EXPORT_DIR='$(ABS_DIST)/include/$$(MODULE)'
   246 DEFAULT_GMAKE_FLAGS += SOURCE_XPHEADERS_DIR='$$(SOURCE_XP_DIR)/include/$$(MODULE)'
   247 DEFAULT_GMAKE_FLAGS += MODULE_INCLUDES='$$(addprefix -I$$(SOURCE_XP_DIR)/include/,$$(REQUIRES))'
   249 # Work around NSS's MAKE_OBJDIR being racy. See bug #836220
   250 DEFAULT_GMAKE_FLAGS += MAKE_OBJDIR='$$(INSTALL) -D $$(OBJDIR)'
   252 # Work around NSS adding IMPORT_LIBRARY to TARGETS with no rule for
   253 # it, creating race conditions. See bug #836220
   254 DEFAULT_GMAKE_FLAGS += TARGETS='$$(LIBRARY) $$(SHARED_LIBRARY) $$(PROGRAM)'
   256 ifdef MOZ_B2G_CERTDATA
   257 include $(srcdir)/b2g-certdata.mk
   258 endif
   260 ifdef MOZ_NSS_PATCH
   261 # If we're applying a patch, we'll copy the NSS source to the objdir
   262 # and build it from there.
   263 NSS_SRCDIR = $(CURDIR)/nss
   265 # This will copy and patch the NSS source for every build.
   266 # Since we "cp -p", it won't force rebuilds for most files, just
   267 # for patched files, but that's easier than trying to track
   268 # dependencies for patched files.
   269 export::
   270 	rm -rf $(NSS_SRCDIR)
   271 	$(NSINSTALL) -D $(NSS_SRCDIR)/security
   272 	cp -Rp $(topsrcdir)/security/nss $(NSS_SRCDIR)/security
   273 	cp -Rp $(topsrcdir)/security/coreconf $(NSS_SRCDIR)/security
   274 	cp -Rp $(topsrcdir)/security/dbm $(NSS_SRCDIR)/security
   275 	cp -Rp $(topsrcdir)/dbm $(NSS_SRCDIR)
   276 	(cd $(NSS_SRCDIR) && patch -p1 < $(abspath $(MOZ_NSS_PATCH)))
   277 else
   278 NSS_SRCDIR = $(topsrcdir)
   279 endif
   281 NSS_DIRS =
   282 ifndef MOZ_FOLD_LIBS
   283 NSS_DIRS += nss/lib
   284 else
   285 ifndef NSS_DISABLE_DBM
   286 NSS_DIRS += nss/lib/dbm
   287 endif
   288 endif
   289 NSS_DIRS += \
   290   nss/cmd/lib \
   291   nss/cmd/shlibsign \
   292   $(NULL)
   294 ifdef ENABLE_TESTS
   295 NSS_DIRS += \
   296   nss/cmd/certutil \
   297   nss/cmd/pk12util \
   298   nss/cmd/modutil \
   299   $(NULL)
   300 endif
   302 ifneq (,$(filter %--build-id,$(LDFLAGS)))
   303 DEFAULT_GMAKE_ENV = LDFLAGS=-Wl,--build-id
   304 endif
   306 ifdef MOZ_FOLD_LIBS
   307 # TODO: The following can be replaced by something simpler when bug 844880
   308 # is fixed.
   309 # All static libraries required for nss, smime, ssl and nssutil.
   310 # The strip is needed to remove potential linefeed characters, since they hang
   311 # around in some cases on Windows.
   312 NSS_STATIC_LIBS := $(strip $(shell $(MAKE) --no-print-directory -f $(srcdir)/nss.mk DEPTH='$(DEPTH)' topsrcdir='$(topsrcdir)' srcdir='$(srcdir)' echo-variable-libs))
   313 # Corresponding build directories
   314 NSS_STATIC_DIRS := $(foreach lib,$(NSS_STATIC_LIBS),$(patsubst %/,%,$(dir $(lib))))
   315 NSS_DIRS += $(NSS_STATIC_DIRS)
   317 # TODO: The following can be replaced by something simpler when bug 844884
   318 # is fixed.
   319 # Remaining nss/lib directories
   320 NSS_DIRS += nss/lib/freebl nss/lib/softoken nss/lib/jar nss/lib/crmf nss/lib/ckfw nss/lib/libpkix
   321 ifeq (WINNT,$(OS_TARGET))
   322 NSS_DIRS += nss/lib/zlib
   323 endif
   324 endif # MOZ_FOLD_LIBS
   326 # Filter-out $(LIBRARY_NAME) because it's already handled in config/rules.mk.
   327 NSS_DIST_DLL_FILES := $(addprefix $(DIST)/lib/$(DLL_PREFIX),$(addsuffix $(DLL_SUFFIX),$(filter-out $(LIBRARY_NAME),$(NSS_DLLS)) $(NSS_EXTRA_DLLS)))
   328 NSS_DIST_DLL_DEST := $(DIST)/bin
   329 INSTALL_TARGETS += NSS_DIST_DLL
   331 ifeq ($(OS_ARCH)_$(1), SunOS_softokn3)
   332 # has to use copy mode on Solaris, see #665509
   333 $(DIST)/bin/$(DLL_PREFIX)softokn3$(DLL_SUFFIX): INSTALL := $(INSTALL) -t
   334 endif
   336 NSS_SDK_LIB_FILES := \
   337   $(addprefix $(DIST)/lib/$(LIB_PREFIX),$(addsuffix .$(LIB_SUFFIX),$(SDK_LIBS))) \
   338   $(addprefix $(DIST)/bin/$(DLL_PREFIX),$(addsuffix $(DLL_SUFFIX),$(NSS_DLLS))) \
   339   $(NULL)
   340 NSS_SDK_LIB_DEST := $(DIST)/sdk/lib
   341 INSTALL_TARGETS += NSS_SDK_LIB
   343 ifdef MOZ_FOLD_LIBS
   344 ifeq (WINNT,$(OS_TARGET))
   345 SUFFIX = _s.$(LIB_SUFFIX)
   346 else
   347 SUFFIX = .$(LIB_SUFFIX)
   348 endif
   350 # Fold NSPR libs
   351 EXTRA_DSO_LDOPTS += $(DEPTH)/nsprpub/pr/src/$(LIB_PREFIX)nspr4$(SUFFIX)
   352 EXTRA_DSO_LDOPTS += $(DEPTH)/nsprpub/lib/ds/$(LIB_PREFIX)plds4$(SUFFIX)
   353 EXTRA_DSO_LDOPTS += $(DEPTH)/nsprpub/lib/libc/src/$(LIB_PREFIX)plc4$(SUFFIX)
   355 # Fold SQLite
   356 EXTRA_DSO_LDOPTS += $(DEPTH)/db/sqlite3/src/$(LIB_PREFIX)mozsqlite3.$(LIB_SUFFIX)
   358 # Add all static libraries for nss, smime, ssl and nssutil
   359 SHARED_LIBRARY_LIBS = $(addprefix ../,$(NSS_STATIC_LIBS))
   361 ifeq (WINNT,$(OS_TARGET))
   362 # Create a .def file based on the various .def files for nss, smime, ssl and
   363 # nssutil.
   364 NSS_STATIC_LIBS_DEFS := $(wildcard $(addprefix $(srcdir)/../,$(NSS_STATIC_LIBS:.$(LIB_SUFFIX)=.def)))
   366 nss3.def: $(NSS_STATIC_LIBS_DEFS) $(DEPTH)/db/sqlite3/src/sqlite-processed.def
   367 	echo LIBRARY nss3$(DLL_SUFFIX) > $@.tmp
   368 	echo EXPORTS >> $@.tmp
   369 	grep -v -h -e ^LIBRARY -e ^EXPORTS -e ^\; $^ >> $@.tmp
   370 	mv $@.tmp $@
   371 endif
   373 ifneq (,$(filter WINNT,$(OS_ARCH)))
   374 SDK_LIBRARY = $(IMPORT_LIBRARY)
   375 else
   376 SDK_LIBRARY = $(SHARED_LIBRARY)
   377 endif
   379 endif # MOZ_FOLD_LIBS
   381 include $(topsrcdir)/config/rules.mk
   383 ifdef MOZ_FOLD_LIBS
   384 # Force the linker to include everything from the static libraries.
   385 EXPAND_LIBS_EXEC += --extract
   387 $(SHARED_LIBRARY): $(SHARED_LIBRARY_LIBS)
   389 EXTRA_DSO_LDOPTS += $(REALTIME_LIBS)
   391 ifdef IMPORT_LIB_SUFFIX
   392 IMPORT_PREFIX = $(LIB_PREFIX)
   393 IMPORT_SUFFIX = .$(IMPORT_LIB_SUFFIX)
   394 else
   395 IMPORT_PREFIX = $(DLL_PREFIX)
   396 IMPORT_SUFFIX = $(DLL_SUFFIX)
   397 endif
   399 NSPR_IMPORT_LIBS = $(addprefix $(DIST)/lib/$(IMPORT_PREFIX),$(addsuffix $(IMPORT_SUFFIX),nspr4 plc4 plds4))
   400 SQLITE_IMPORT_LIB = $(DIST)/lib/$(IMPORT_PREFIX)mozsqlite3$(IMPORT_SUFFIX)
   402 # TODO: The following can be replaced by something simpler when bug 844884
   403 # is fixed.
   404 # Associate target files with the rules that build them.
   405 $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX): libs-nss/lib/crmf
   406 $(DIST)/lib/$(DLL_PREFIX)freebl3$(DLL_SUFFIX): libs-nss/lib/freebl
   407 $(DIST)/lib/$(DLL_PREFIX)nssckbi$(DLL_SUFFIX): libs-nss/lib/ckfw
   408 $(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX): libs-nss/lib/softoken
   409 $(DIST)/lib/$(DLL_PREFIX)nssdbm3$(DLL_SUFFIX): libs-nss/lib/softoken
   410 $(foreach lib,$(NSS_STATIC_LIBS),$(eval ../$(lib): libs-$(patsubst %/,%,$(dir $(lib)))))
   412 # Create fake import libraries for the folded libraries, so that linking
   413 # against them works both for the NSS build system (see dependencies below)
   414 # and for the rest of the mozilla build system.
   415 $(NSPR_IMPORT_LIBS) \
   416 $(SQLITE_IMPORT_LIB) \
   417 $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX) \
   418 $(DIST)/lib/$(IMPORT_PREFIX)ssl3$(IMPORT_SUFFIX) \
   419 $(DIST)/lib/$(IMPORT_PREFIX)smime3$(IMPORT_SUFFIX): $(DIST)/lib/$(IMPORT_PREFIX)nss3$(IMPORT_SUFFIX)
   420 ifeq (WINNT,$(OS_TARGET))
   421 	cp $< $@
   422 else
   423 	ln -sf $< $@
   424 endif
   426 # Interdependencies between nss sub-directories, and dependencies on NSPR/SQLite
   427 libs-nss/lib/ckfw: libs-nss/lib/nss/../base $(NSPR_IMPORT_LIBS)
   428 libs-nss/lib/softoken: $(NSPR_IMPORT_LIBS) $(SQLITE_IMPORT_LIB)
   429 libs-nss/lib/softoken: libs-nss/lib/freebl
   430 ifndef NSS_DISABLE_DBM
   431 libs-nss/lib/softoken: libs-nss/lib/dbm
   432 endif
   433 libs-nss/lib/softoken: $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX)
   434 libs-nss/lib/freebl: $(DIST)/lib/$(IMPORT_PREFIX)nssutil3$(IMPORT_SUFFIX) $(NSPR_IMPORT_LIBS)
   436 # For each directory where we build static libraries, force the NSS build system
   437 # to only build static libraries.
   438 $(addprefix libs-,$(NSS_STATIC_DIRS)): DEFAULT_GMAKE_FLAGS += SHARED_LIBRARY= IMPORT_LIBRARY=
   439 else
   440 $(NSS_DIST_DLL_FILES) $(NSS_SDK_LIB_FILES): libs-nss/lib
   441 endif # MOZ_FOLD_LIBS
   443 ifeq ($(NSINSTALL_PY),$(NSINSTALL))
   444 DEFAULT_GMAKE_FLAGS += PYTHON='$(PYTHON)'
   445 DEFAULT_GMAKE_FLAGS += NSINSTALL_PY='$(abspath $(topsrcdir)/config/nsinstall.py)'
   446 DEFAULT_GMAKE_FLAGS += NSINSTALL='$$(PYTHON) $$(NSINSTALL_PY)'
   447 else
   448 DEFAULT_GMAKE_FLAGS += NSINSTALL='$(NSINSTALL)'
   449 endif
   450 ifeq ($(OS_ARCH),WINNT)
   451 DEFAULT_GMAKE_FLAGS += INSTALL='$$(NSINSTALL) -t'
   452 endif
   453 DEFAULT_GMAKE_FLAGS += $(EXTRA_GMAKE_FLAGS)
   455 $(addprefix libs-,$(NSS_DIRS)): libs-%:
   456 # Work around NSS's export rule being racy when recursing for private_export
   457 # See bug #836220.
   458 $(addprefix export-,$(NSS_DIRS)): EXTRA_GMAKE_FLAGS = PRIVATE_EXPORTS=
   459 $(addprefix export-,$(NSS_DIRS)): export-%: private_export-%
   460 $(addprefix private_export-,$(NSS_DIRS)): EXTRA_GMAKE_FLAGS =
   461 $(addprefix private_export-,$(NSS_DIRS)): private_export-%:
   463 # Work around bug #836228 in pymake
   464 ifdef .PYMAKE
   465 $(foreach p,libs export private_export,$(addprefix $(p)-,$(NSS_DIRS))): *=$(subst $(NULL) $(NULL),-,$(wordlist 2,$(words $(subst -, ,$@)),$(subst -, ,$@)))
   466 endif
   468 $(foreach p,libs export private_export,$(addprefix $(p)-,$(NSS_DIRS))):
   469 	$(DEFAULT_GMAKE_ENV) $(MAKE) -C $(NSS_SRCDIR)/security/$* $(@:-$*=) $(DEFAULT_GMAKE_FLAGS)
   471 export:: $(addprefix export-,$(NSS_DIRS))
   473 $(addprefix clean-,$(NSS_DIRS)): clean-%:
   474 	$(MAKE) -C $(NSS_SRCDIR)/security/$* $(DEFAULT_GMAKE_FLAGS) clean
   476 clean clobber clobber_all realclean distclean depend:: $(addprefix clean-,$(NSS_DIRS))
   478 NSS_CMD_TARGETS := $(addprefix libs-,$(filter-out nss/cmd/lib,$(filter nss/cmd/%,$(NSS_DIRS))))
   479 libs:: $(NSS_CMD_TARGETS)
   481 ifdef MOZ_FOLD_LIBS
   482 $(NSS_CMD_TARGETS): $(addprefix $(DIST)/lib/$(IMPORT_PREFIX),$(addsuffix $(IMPORT_SUFFIX),$(NSS_LIBS)))
   483 libs-nss/cmd/modutil: libs-nss/lib/jar
   484 ifeq (WINNT,$(OS_TARGET))
   485 libs-nss/cmd/modutil: libs-nss/lib/zlib
   486 endif
   487 $(NSS_CMD_TARGETS): libs-nss/cmd/lib
   488 else
   489 $(NSS_CMD_TARGETS): libs-nss/lib libs-nss/cmd/lib
   490 endif # MOZ_FOLD_LIBS
   492 # Work around NSS build system race condition creating certdata.c in
   493 # security/nss/lib/ckfw/builtins. See bug #836220.
   494 libs-nss/lib$(if $(MOZ_FOLD_LIBS),/ckfw): $(call mkdir_deps,../nss/lib/ckfw/builtins)

mercurial