From 291b85778669b4e4e276faab22add9d0e80046df Mon Sep 17 00:00:00 2001 From: Jan Holesovsky Date: Tue, 30 Aug 2011 15:37:03 +0200 Subject: Build our mozilla (module moz) against the nss we have built anyway. Reduces the build time of the 'moz' module by 30% or so. --- moz/extractfiles.mk | 2 +- moz/makefile.mk | 12 +++- moz/zipped/makefile.mk | 2 +- nss/makefile.mk | 22 ++++++-- nss/nss-config.patch | 147 +++++++++++++++++++++++++++++++++++++++++++++++++ nss/prj/d.lst | 2 + 6 files changed, 179 insertions(+), 8 deletions(-) create mode 100644 nss/nss-config.patch diff --git a/moz/extractfiles.mk b/moz/extractfiles.mk index faba88b7822f..57b53a8af10d 100644 --- a/moz/extractfiles.mk +++ b/moz/extractfiles.mk @@ -166,7 +166,7 @@ DEFAULTS_RUNTIMELIST= \ .IF "$(ENABLE_NSS_MODULE)"=="YES" #These headers come from the separate NSS module if enabled -NSS_INCLUDE_LIST= nspr nss +NSS_INCLUDE_LIST= .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" diff --git a/moz/makefile.mk b/moz/makefile.mk index 0ee92d305044..f41743ec000e 100644 --- a/moz/makefile.mk +++ b/moz/makefile.mk @@ -128,6 +128,8 @@ MOZILLA_CONFIGURE_FLAGS += --disable-tests \ --disable-xprint \ --disable-postscript \ --without-system-zlib \ + --with-system-nss \ + --with-system-nspr \ --disable-installer \ --disable-accessibility \ --disable-xpfe-components \ @@ -145,6 +147,14 @@ MOZILLA_CONFIGURE_FLAGS += --disable-tests \ --disable-pango \ --enable-extensions="pref" +.IF "$(ENABLE_NSS_MODULE)"=="YES" + +MOZILLA_CONFIGURE_FLAGS += \ + --with-nss-prefix=$(OUTDIR) \ + --with-nspr-prefix=$(OUTDIR) + +.ENDIF + #disable profilelocking to share profile with mozilla #disable activex and activex-scripting to remove the dependence of Microsoft_SDK\src\mfc\atlbase.h #disable gnomevfs to remove the needed of gnome develop files @@ -174,7 +184,7 @@ MOZ_CROSSCOMPILE=CROSS_COMPILE=1 CC="$(CC) -arch $(MOZ_ARCH)" CXX="$(CXX) -arch CONFIGURE_ACTION=$(null,$(MOZ_ARCH) $(NULL) $(MOZ_CROSSCOMPILE)) ../configure $(MOZILLA_CONFIGURE_FLAGS) -BUILD_ACTION:=$(GNUMAKE) -j$(EXTMAXPROCESS) +BUILD_ACTION:=cd mozilla/X_objdir/xpcom ; $(GNUMAKE) -j$(EXTMAXPROCESS) .IF "$(GUI)"=="UNX" .IF "$(COMNAME)"=="sunpro5" diff --git a/moz/zipped/makefile.mk b/moz/zipped/makefile.mk index 0ea80c02dc3e..36469cbd2887 100644 --- a/moz/zipped/makefile.mk +++ b/moz/zipped/makefile.mk @@ -154,7 +154,7 @@ LIBLIST= \ .ENDIF # .IF "$(GUI)"=="WNT" -NSS_INCLUDE_LIST= nspr nss +NSS_INCLUDE_LIST= .IF "$(OS)" == "SOLARIS" diff --git a/nss/makefile.mk b/nss/makefile.mk index 45f1feb22680..aa242bdbd11b 100644 --- a/nss/makefile.mk +++ b/nss/makefile.mk @@ -41,10 +41,14 @@ all: @echo "NSS will not be built. ENABLE_NSS_MODULE is '$(ENABLE_NSS_MODULE)'" .ENDIF -TARFILE_NAME=nss-3.12.8-with-nspr-4.8.6 +VER_MAJOR=3 +VER_MINOR=12 +VER_PATCH=8 + +TARFILE_NAME=nss-$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)-with-nspr-4.8.6 TARFILE_MD5=71474203939fafbe271e1263e61d083e -TARFILE_ROOTDIR=nss-3.12.8 -PATCH_FILES=nss.patch nss.aix.patch +TARFILE_ROOTDIR=nss-$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH) +PATCH_FILES=nss.patch nss.aix.patch nss-config.patch .IF "$(OS)"=="MACOSX" PATCH_FILES+=nss_macosx.patch @@ -56,6 +60,10 @@ BUILD_OPT=1 .EXPORT: BUILD_OPT .ENDIF +CONFIGURE_ACTION=mozilla/nsprpub/configure --prefix=$(OUTDIR) --includedir=$(OUTDIR)/inc/mozilla/nspr ; \ + sed -e 's\#@prefix@\#$(OUTDIR)\#' -e 's\#@includedir@\#$(OUTDIR)/inc/mozilla/nss\#' -e 's\#@MOD_MAJOR_VERSION@\#$(VER_MAJOR)\#' -e 's\#@MOD_MINOR_VERSION@\#$(VER_MINOR)\#' -e 's\#@MOD_PATCH_VERSION@\#$(VER_PATCH)\#' mozilla/security/nss/nss-config.in > mozilla/security/nss/nss-config ; \ + chmod a+x mozilla/security/nss/nss-config + .IF "$(GUI)"=="UNX" .IF "$(OS)$(COM)"=="LINUXGCC" .IF "$(BUILD64)"=="1" @@ -85,6 +93,8 @@ MACOS_SDK_DIR*=$(MACDEVSDK) OUT2LIB=mozilla$/dist$/out$/lib$/*$(DLLPOST) +OUT2BIN=config$/nspr-config mozilla$/security$/nss$/nss-config + BUILD_DIR=mozilla$/security$/nss BUILD_ACTION= $(GNUMAKE) nss_build_all #See #i105566# && moz#513024# @@ -116,7 +126,6 @@ nss_LIBS= nss_LIBS+=$(MINGW_SHARED_LIBSTDCPP) .ENDIF - BUILD_DIR=mozilla$/security$/nss BUILD_ACTION=NS_USE_GCC=1 CC="$(nss_CC)" CXX="$(nss_CXX)" OS_LIBS="$(nss_LIBS)" OS_TARGET=WIN95 _WIN32_IE=0x500 PATH="$(PATH)" DEFINES=-D_WIN32_IE=0x500 $(GNUMAKE) nss_build_all @@ -164,7 +173,10 @@ OUT2LIB= \ .ENDIF # "$(COM)"=="GCC" -OUT2BIN=mozilla$/dist$/out$/lib$/*$(DLLPOST) +OUT2BIN=mozilla$/dist$/out$/lib$/*$(DLLPOST) \ + config$/nspr-config \ + mozilla$/security$/nss$/nss-config + .ENDIF # "$(GUI)"=="WNT" diff --git a/nss/nss-config.patch b/nss/nss-config.patch new file mode 100644 index 000000000000..3f67f84ae85c --- /dev/null +++ b/nss/nss-config.patch @@ -0,0 +1,147 @@ +--- /dev/null ++++ misc/build/nss-3.12.8/mozilla/security/nss/nss-config.in 2010-06-11 16:35:54.946870871 +0200 +@@ -0,0 +1,144 @@ ++#!/bin/sh ++ ++prefix=@prefix@ ++ ++major_version=@MOD_MAJOR_VERSION@ ++minor_version=@MOD_MINOR_VERSION@ ++patch_version=@MOD_PATCH_VERSION@ ++ ++usage() ++{ ++ cat <&2 ++fi ++ ++lib_ssl=yes ++lib_smime=yes ++lib_nss=yes ++lib_nssutil=yes ++ ++while test $# -gt 0; do ++ case "$1" in ++ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) optarg= ;; ++ esac ++ ++ case $1 in ++ --prefix=*) ++ prefix=$optarg ++ ;; ++ --prefix) ++ echo_prefix=yes ++ ;; ++ --exec-prefix=*) ++ exec_prefix=$optarg ++ ;; ++ --exec-prefix) ++ echo_exec_prefix=yes ++ ;; ++ --includedir=*) ++ includedir=$optarg ++ ;; ++ --includedir) ++ echo_includedir=yes ++ ;; ++ --libdir=*) ++ libdir=$optarg ++ ;; ++ --libdir) ++ echo_libdir=yes ++ ;; ++ --version) ++ echo ${major_version}.${minor_version}.${patch_version} ++ ;; ++ --cflags) ++ echo_cflags=yes ++ ;; ++ --libs) ++ echo_libs=yes ++ ;; ++ ssl) ++ lib_ssl=yes ++ ;; ++ smime) ++ lib_smime=yes ++ ;; ++ nss) ++ lib_nss=yes ++ ;; ++ nssutil) ++ lib_nssutil=yes ++ ;; ++ *) ++ usage 1 1>&2 ++ ;; ++ esac ++ shift ++done ++ ++# Set variables that may be dependent upon other variables ++if test -z "$exec_prefix"; then ++ exec_prefix=${prefix} ++fi ++if test -z "$includedir"; then ++ includedir=@includedir@ ++fi ++if test -z "$libdir"; then ++ libdir=${exec_prefix}/lib ++fi ++ ++if test "$echo_prefix" = "yes"; then ++ echo $prefix ++fi ++ ++if test "$echo_exec_prefix" = "yes"; then ++ echo $exec_prefix ++fi ++ ++if test "$echo_includedir" = "yes"; then ++ echo $includedir ++fi ++ ++if test "$echo_libdir" = "yes"; then ++ echo $libdir ++fi ++ ++if test "$echo_cflags" = "yes"; then ++ echo -I$includedir ++fi ++ ++if test "$echo_libs" = "yes"; then ++ libdirs="-Wl,-rpath-link,$libdir -L$libdir" ++ if test -n "$lib_ssl"; then ++ libdirs="$libdirs -lssl${major_version}" ++ fi ++ if test -n "$lib_smime"; then ++ libdirs="$libdirs -lsmime${major_version}" ++ fi ++ if test -n "$lib_nss"; then ++ libdirs="$libdirs -lnss${major_version}" ++ fi ++ if test -n "$lib_nssutil"; then ++ libdirs="$libdirs -lnssutil${major_version}" ++ fi ++ echo $libdirs ++fi ++ diff --git a/nss/prj/d.lst b/nss/prj/d.lst index e5695b9d2dc6..cc36eb1260df 100644 --- a/nss/prj/d.lst +++ b/nss/prj/d.lst @@ -1,10 +1,12 @@ mkdir: %_DEST%\inc\mozilla\nspr mkdir: %_DEST%\inc\mozilla\nspr\obsolete +mkdir: %_DEST%\inc\mozilla\nspr\private mkdir: %_DEST%\inc\mozilla\nss mkdir: %_DEST%\lib\sqlite ..\%__SRC%\inc\include\* %_DEST%\inc\mozilla\nspr ..\%__SRC%\inc\include\obsolete\protypes.h %_DEST%\inc\mozilla\nspr\obsolete\protypes.h +..\%__SRC%\inc\include\private\*.h %_DEST%\inc\mozilla\nspr\private ..\%__SRC%\inc\nss\*.h %_DEST%\inc\mozilla\nss ..\%__SRC%\lib\libfreebl3.* %_DEST%\lib\libfreebl.* -- cgit