b=255408 Need to be able to build mozilla --with-system-nss

r=wtc/bsmedberg
Note: patches for bugs 288647 and 317620 might be required before enabling this build feature works.
This commit is contained in:
kaie%kuix.de 2005-12-20 09:47:11 +00:00
Родитель 7455e48a05
Коммит a66df9148e
9 изменённых файлов: 978 добавлений и 728 удалений

1
aclocal.m4 поставляемый
Просмотреть файл

@ -8,6 +8,7 @@ builtin(include, build/autoconf/gtk.m4)dnl
builtin(include, build/autoconf/libIDL.m4)dnl
builtin(include, build/autoconf/libIDL-2.m4)dnl
builtin(include, build/autoconf/nspr.m4)dnl
builtin(include, build/autoconf/nss.m4)dnl
builtin(include, build/autoconf/libart.m4)dnl
builtin(include, build/autoconf/pkg.m4)dnl
builtin(include, build/autoconf/freetype2.m4)dnl

67
build/autoconf/nss.m4 Normal file
Просмотреть файл

@ -0,0 +1,67 @@
# -*- tab-width: 4; -*-
# Configure paths for NSS
# Public domain - Chris Seawood <cls@seawood.org> 2001-04-05
# Based upon gtk.m4 (also PD) by Owen Taylor
dnl AM_PATH_NSS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for NSS, and define NSS_CFLAGS and NSS_LIBS
AC_DEFUN(AM_PATH_NSS,
[dnl
AC_ARG_WITH(nss-prefix,
[ --with-nss-prefix=PFX Prefix where NSS is installed],
nss_config_prefix="$withval",
nss_config_prefix="")
AC_ARG_WITH(nss-exec-prefix,
[ --with-nss-exec-prefix=PFX
Exec prefix where NSS is installed],
nss_config_exec_prefix="$withval",
nss_config_exec_prefix="")
if test -n "$nss_config_exec_prefix"; then
nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
if test -z "$NSS_CONFIG"; then
NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
fi
fi
if test -n "$nss_config_prefix"; then
nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
if test -z "$NSS_CONFIG"; then
NSS_CONFIG=$nss_config_prefix/bin/nss-config
fi
fi
unset ac_cv_path_NSS_CONFIG
AC_PATH_PROG(NSS_CONFIG, nss-config, no)
min_nss_version=ifelse([$1], ,3.0.0,$1)
AC_MSG_CHECKING(for NSS - version >= $min_nss_version (skipping))
no_nss=""
if test "$NSS_CONFIG" = "no"; then
no_nss="yes"
else
NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
dnl Skip version check for now
nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
fi
if test -z "$no_nss"; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
fi
AC_SUBST(NSS_CFLAGS)
AC_SUBST(NSS_LIBS)
])

Просмотреть файл

@ -236,6 +236,7 @@ MOZ_INSURE_DIRS = @MOZ_INSURE_DIRS@
MOZ_INSURE_EXCLUDE_DIRS = @MOZ_INSURE_EXCLUDE_DIRS@
MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
MOZ_NATIVE_NSS = @MOZ_NATIVE_NSS@
CROSS_COMPILE = @CROSS_COMPILE@
@ -391,6 +392,11 @@ NSPR_CONFIG = @NSPR_CONFIG@
NSPR_CFLAGS = @NSPR_CFLAGS@
NSPR_LIBS = @NSPR_LIBS@
NSS_CONFIG = @NSS_CONFIG@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
NSS_DEP_LIBS = @NSS_DEP_LIBS@
LDAP_CFLAGS = @LDAP_CFLAGS@
LDAP_LIBS = @LDAP_LIBS@
XPCOM_GLUE_LDOPTS = @XPCOM_GLUE_LDOPTS@

Просмотреть файл

@ -136,39 +136,6 @@ FINAL_LINK_LIBS = $(DEPTH)/config/final-link-libs
FINAL_LINK_COMPS = $(DEPTH)/config/final-link-comps
FINAL_LINK_COMP_NAMES = $(DEPTH)/config/final-link-comp-names
#
# NSS libs needed for final link in static build
#
NSS_LIBS = \
$(LIBS_DIR) \
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
-lsmime3 \
-lssl3 \
-lnss3 \
-lsoftokn3 \
$(NULL)
ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
ifndef GNU_CC
NSS_LIBS = \
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
$(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
$(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
$(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
$(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
$(NULL)
endif
endif
NSS_DEP_LIBS = \
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
$(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
$(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
$(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
$(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
$(NULL)
MOZ_UNICHARUTIL_LIBS = $(DIST)/lib/$(LIB_PREFIX)unicharutil_s.$(LIB_SUFFIX)
MOZ_REGISTRY_LIBS = $(DIST)/lib/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX)
MOZ_WIDGET_SUPPORT_LIBS = $(DIST)/lib/$(LIB_PREFIX)widgetsupport_s.$(LIB_SUFFIX)

1484
configure поставляемый

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -86,6 +86,7 @@ MOZJPEG=62
MOZPNG=10207
MOZZLIB=1.2.3
NSPR_VERSION=4
NSS_VERSION=3
dnl Set the minimum version of toolkit libs used by mozilla
dnl ========================================================
@ -3558,6 +3559,42 @@ if test -z "$MOZ_NATIVE_NSPR"; then
fi
fi
dnl ========================================================
dnl = If NSS was not detected in the system,
dnl = use the one in the source tree (mozilla/security/nss)
dnl ========================================================
MOZ_ARG_WITH_BOOL(system-nss,
[ --with-system-nss Use system installed NSS],
_USE_SYSTEM_NSS=1 )
if test -n "$_USE_SYSTEM_NSS"; then
AM_PATH_NSS(3.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
fi
if test -n "$MOZ_NATIVE_NSS"; then
NSS_LIBS="$NSS_LIBS -lcrmf"
else
NSS_CFLAGS='-I$(DIST)/public/nss'
NSS_DEP_LIBS='\\\
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)smime'$NSS_VERSION'$(DLL_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)ssl'$NSS_VERSION'$(DLL_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)nss'$NSS_VERSION'$(DLL_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)softokn'$NSS_VERSION'$(DLL_SUFFIX)'
if test -z "$GNU_CC" && test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
NSS_LIBS='\\\
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)smime'$NSS_VERSION'$(IMPORT_LIB_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)ssl'$NSS_VERSION'$(IMPORT_LIB_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)nss'$NSS_VERSION'$(IMPORT_LIB_SUFFIX) \\\
$(DIST)/lib/$(DLL_PREFIX)softokn'$NSS_VERSION'$(IMPORT_LIB_SUFFIX)'
else
NSS_LIBS='-L$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lsoftokn$NSS_VERSION"
fi
fi
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl system JPEG support
dnl ========================================================
@ -7002,6 +7039,11 @@ AC_SUBST(NSPR_CFLAGS)
AC_SUBST(NSPR_LIBS)
AC_SUBST(MOZ_NATIVE_NSPR)
AC_SUBST(NSS_CFLAGS)
AC_SUBST(NSS_LIBS)
AC_SUBST(NSS_DEP_LIBS)
AC_SUBST(MOZ_NATIVE_NSS)
AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(CPPFLAGS)

Просмотреть файл

@ -46,6 +46,8 @@ include $(DEPTH)/config/autoconf.mk
MODULE = psm
PACKAGE_FILE = psm.pkg
ifndef MOZ_NATIVE_NSS
PACKAGE_VARS += \
NSS3_LIB \
SMIME3_LIB \
@ -57,6 +59,7 @@ PACKAGE_VARS += \
$(NULL)
LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
endif
NSS3_LIB = $(DLL_PREFIX)nss3$(DLL_SUFFIX)
SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
@ -150,6 +153,7 @@ include $(topsrcdir)/config/rules.mk
export:: .nss.cleaned
.nss.cleaned: .nss.checkout
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
ifndef SKIP_CHK
@ -157,9 +161,12 @@ ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
endif
touch $@
endif
.nss.checkout:
ifndef MOZ_NATIVE_NSS
touch $(srcdir)/$@
endif
dependclean export packages chrome::
$(MAKE) -C boot $@
@ -170,12 +177,15 @@ ifdef MOZ_XUL
endif
libs::
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
endif
ifeq ($(OS_ARCH),WINNT)
cd $(DIST)/lib; cp -f $(LIB_PREFIX)dbm$(MOZ_BITS).$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
else
cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
endif
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
@ -194,6 +204,7 @@ ifdef HAVE_FREEBL_MODULES
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(DIST)/bin
$(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DIST)/bin
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DIST)/bin
endif
endif
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
@ -203,6 +214,7 @@ ifdef MOZ_XUL
endif
install::
ifndef MOZ_NATIVE_NSS
$(SYSINSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DESTDIR)$(mozappdir)
ifndef SKIP_CHK
$(SYSINSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DESTDIR)$(mozappdir)
@ -216,6 +228,7 @@ ifdef HAVE_FREEBL_MODULES
$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(DESTDIR)$(mozappdir)
$(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DESTDIR)$(mozappdir)
$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DESTDIR)$(mozappdir)
endif
endif
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
@ -231,15 +244,18 @@ clean clobber clobber_all realclean distclean depend::
ifdef MOZ_XUL
$(MAKE) -C pki $@
endif
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
endif
endif
echo-requires-recursive::
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
$(MAKE) -C pki $@
$(MAKE) -C locales $@

Просмотреть файл

@ -123,8 +123,7 @@ EXTRA_DEPS = $(NSS_DEP_LIBS)
# Use local includes because they are inserted before INCLUDES
# so that Mozilla's nss.h is used, not glibc's
LOCAL_INCLUDES += -I$(DIST)/public/nss \
$(NULL)
LOCAL_INCLUDES = $(NSS_CFLAGS)
EXTRA_DSO_LDOPTS += \
$(MOZ_UNICHARUTIL_LIBS) \

Просмотреть файл

@ -485,14 +485,6 @@ nsNSSComponent::DispatchEventToWindow(nsIDOMWindow *domWin,
}
#ifdef XP_MAC
#ifdef DEBUG
#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbiDebug.shlb")
#else
#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbi.shlb")
#endif /*DEBUG*/
#endif /*XP_MAC*/
static void setOCSPOptions(nsIPrefBranch * pref);
NS_IMETHODIMP
@ -686,40 +678,42 @@ nsNSSComponent::InstallLoadableRoots()
const char *possible_ckbi_locations[] = {
NS_GRE_DIR,
NS_XPCOM_CURRENT_PROCESS_DIR
NS_XPCOM_CURRENT_PROCESS_DIR,
0 // This special value means:
// search for ckbi in the directories on the shared
// library/DLL search path
};
for (size_t il = 0; il < sizeof(possible_ckbi_locations)/sizeof(const char*); ++il) {
nsCOMPtr<nsILocalFile> mozFile;
directoryService->Get( possible_ckbi_locations[il],
NS_GET_IID(nsILocalFile),
getter_AddRefs(mozFile));
char *fullModuleName = nsnull;
if (!mozFile) {
continue;
if (!possible_ckbi_locations[il])
{
fullModuleName = PR_GetLibraryName(nsnull, "nssckbi");
}
else
{
directoryService->Get( possible_ckbi_locations[il],
NS_GET_IID(nsILocalFile),
getter_AddRefs(mozFile));
if (!mozFile) {
continue;
}
nsCAutoString processDir;
mozFile->GetNativePath(processDir);
fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
}
char *fullModuleName = nsnull;
#ifdef XP_MAC
nsCAutoString nativePath;
mozFile->AppendNative(NS_LITERAL_CSTRING("Essential Files"));
mozFile->AppendNative(LOADABLE_CERTS_MODULE);
mozFile->GetNativePath(nativePath);
fullModuleName = (char *) nativePath.get();
#else
nsCAutoString processDir;
mozFile->GetNativePath(processDir);
fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
#endif
/* If a module exists with the same name, delete it. */
NS_ConvertUCS2toUTF8 modNameUTF8(modName);
int modType;
SECMOD_DeleteModule(NS_CONST_CAST(char*, modNameUTF8.get()), &modType);
SECStatus rv_add =
SECMOD_AddNewModule(NS_CONST_CAST(char*, modNameUTF8.get()), fullModuleName, 0, 0);
#ifndef XP_MAC
PR_Free(fullModuleName); // allocated by NSPR
#endif
PR_FreeLibraryName(fullModuleName); // allocated by NSPR
if (SECSuccess == rv_add) {
// found a module, no need to try other directories
break;