Initial checkin of the NSS build environment for the open source release
authorrelyea%netscape.com
Fri, 31 Mar 2000 18:56:07 +0000
changeset 203 8067d3f62e67912df3dce20f6f01ca7f64f3ffaf
parent 199 a1e43ca5b9a7b58e142fbfdbda5c0530b2bd95b4
child 204 a4b83784947b7d8b5fc198586cbd2e67ac533056
push idunknown
push userunknown
push dateunknown
Initial checkin of the NSS build environment for the open source release
security/coreconf/.cshrc
security/coreconf/.profile
security/coreconf/AIX.mk
security/coreconf/AIX3.2.mk
security/coreconf/AIX4.1.mk
security/coreconf/AIX4.2.mk
security/coreconf/AIX4.3.mk
security/coreconf/FreeBSD2.mk
security/coreconf/HP-UX.mk
security/coreconf/HP-UXA.09.03.mk
security/coreconf/HP-UXA.09.07.mk
security/coreconf/HP-UXA.09.mk
security/coreconf/HP-UXB.10.01.mk
security/coreconf/HP-UXB.10.10.mk
security/coreconf/HP-UXB.10.20.mk
security/coreconf/HP-UXB.10.30.mk
security/coreconf/HP-UXB.10.mk
security/coreconf/HP-UXB.11.00.mk
security/coreconf/HP-UXB.11.mk
security/coreconf/IRIX.mk
security/coreconf/IRIX5.2.mk
security/coreconf/IRIX5.3.mk
security/coreconf/IRIX5.mk
security/coreconf/IRIX6.2.mk
security/coreconf/IRIX6.3.mk
security/coreconf/IRIX6.5.mk
security/coreconf/IRIX6.mk
security/coreconf/Linux.mk
security/coreconf/Linux2.1.mk
security/coreconf/Linux2.2.mk
security/coreconf/LinuxELF1.2.mk
security/coreconf/LinuxELF2.0.mk
security/coreconf/Makefile
security/coreconf/NCR3.0.mk
security/coreconf/NEC4.2.mk
security/coreconf/OSF1.mk
security/coreconf/OSF1V2.0.mk
security/coreconf/OSF1V3.0.mk
security/coreconf/OSF1V3.2.mk
security/coreconf/OSF1V4.0.mk
security/coreconf/OSF1V4.0B.mk
security/coreconf/OSF1V4.0D.mk
security/coreconf/README
security/coreconf/ReliantUNIX.mk
security/coreconf/ReliantUNIX5.4.mk
security/coreconf/SCOOS5.0.mk
security/coreconf/SCO_SV3.2.mk
security/coreconf/SunOS4.1.3_U1.mk
security/coreconf/SunOS5.3.mk
security/coreconf/SunOS5.4.mk
security/coreconf/SunOS5.4_i86pc.mk
security/coreconf/SunOS5.5.1.mk
security/coreconf/SunOS5.5.1_i86pc.mk
security/coreconf/SunOS5.5.mk
security/coreconf/SunOS5.6.mk
security/coreconf/SunOS5.6_i86pc.mk
security/coreconf/SunOS5.7.mk
security/coreconf/SunOS5.8.mk
security/coreconf/SunOS5.mk
security/coreconf/UNIX.mk
security/coreconf/UNIXWARE2.1.mk
security/coreconf/WIN16.mk
security/coreconf/WIN32.mk
security/coreconf/WIN954.0.mk
security/coreconf/WINNT3.51.mk
security/coreconf/WINNT4.0.mk
security/coreconf/arch.mk
security/coreconf/command.mk
security/coreconf/config.mk
security/coreconf/coreconf.pl
security/coreconf/cpdist.pl
security/coreconf/headers.mk
security/coreconf/import.pl
security/coreconf/jdk.mk
security/coreconf/jniregen.pl
security/coreconf/location.mk
security/coreconf/makefile.win
security/coreconf/module.mk
security/coreconf/nsinstall/Makefile
security/coreconf/nsinstall/nfspwd
security/coreconf/nsinstall/nfspwd.pl
security/coreconf/nsinstall/nsinstall.c
security/coreconf/nsinstall/pathsub.c
security/coreconf/nsinstall/pathsub.h
security/coreconf/nsinstall/sunos4.h
security/coreconf/outofdate.pl
security/coreconf/platform.mk
security/coreconf/prefix.mk
security/coreconf/release.pl
security/coreconf/rules.mk
security/coreconf/ruleset.mk
security/coreconf/source.mk
security/coreconf/suffix.mk
security/coreconf/tree.mk
security/coreconf/version.mk
security/coreconf/version.pl
new file mode 100644
--- /dev/null
+++ b/security/coreconf/.cshrc
@@ -0,0 +1,273 @@
+#!/bin/csh
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Startup file for csh and tcsh.  It is meant to work on:
+#
+#	SunOS 4.1.3_U1,
+#	Sun Solaris,
+#	Sun Solaris on Intel,
+#	SGI IRIX,
+#	SGI IRIX64,
+#	UNIX_SV,
+#	IBM AIX,
+#	Hewlett-Packard HP-UX,
+#	SCO_SV,
+#	FreeBSD,
+#	DEC OSF/1,
+#	Linux,
+#	and everything else.
+#
+
+###############################################
+# Set operating system name and release level #
+###############################################
+
+set os_name=`uname -s`
+set os_release=`uname -r`
+
+##########################################################
+#  Set environment variables based upon operating system #
+##########################################################
+
+if ($os_name == "SunOS" && $os_release == "4.1.3_U1") then
+	##############################
+	# SunOS 4.1.3_U1
+	#
+
+	setenv NO_MDUPDATE 1
+
+	set path = (	/tools/ns/soft/gcc-2.6.3/run/default/sparc_sun_sunos4.1.3_U1/bin \
+			/tools/ns/bin \
+			/sbin \
+			/usr/bin \
+			/usr/openwin/bin \
+			/usr/openwin/include \
+			/usr/ucb \
+			/usr/local/bin \
+			/etc \
+			/usr/etc \
+			/usr/etc/install \
+			. )
+
+else if ($os_name == "SunOS") then
+	################################
+	#  Assume it is Sun Solaris
+	#
+
+	# To build Navigator on Solaris 2.5, I must set the environment
+	# variable NO_MDUPDATE and use gcc-2.6.3.
+	setenv NO_MDUPDATE 1
+
+	set path = (	/share/builds/components/jdk/1.2.2_01/SunOS \
+			/usr/ccs/bin \
+			/usr/opt/bin \
+			/tools/ns/bin \
+			/usr/sbin \
+			/sbin \
+			/usr/bin \
+			/usr/dt/bin \
+			/usr/openwin/bin \
+			/usr/openwin/include \
+			/usr/ucb \
+			/usr/opt/java/bin \
+			/usr/local/bin \
+			/etc \
+			/usr/etc \
+			/usr/etc/install \
+			/opt/Acrobat3/bin \
+			. )
+
+	# To get the native Solaris cc
+	if (`uname -m` == i86pc) then
+		set path = (	/h/solx86/export/home/opt/SUNWspro/SC3.0.1/bin \
+				$path )
+	else
+		set path = (	/tools/ns/workshop/bin \
+				/tools/ns/soft/gcc-2.6.3/run/default/sparc_sun_solaris2.4/bin \
+				$path )
+	endif
+
+	setenv LD_LIBRARY_PATH /share/builds/components/jdk/1.2.2_01/SunOS/lib/sparc/native_threads
+
+	setenv MANPATH /usr/local/man:/usr/local/lib/mh/man:/usr/local/lib/rcscvs/man:/usr/local/lib/fvwm/man:/usr/local/lib/xscreensaver/man:/usr/share/man:/usr/openwin/man:/usr/opt/man
+
+	# For Purify
+	setenv PURIFYHOME /usr/local-sparc-solaris/pure/purify-4.0-solaris2
+	setenv PATH ${PURIFYHOME}:$PATH
+	setenv MANPATH $PURIFYHOME/man:$MANPATH
+	setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$PURIFYHOME
+	setenv PURIFYOPTIONS "-max_threads=1000 -follow-child-processes=yes"
+
+else if ($os_name == "IRIX" || $os_name == "IRIX64") then
+	#############
+	#  SGI Irix
+	#
+
+	set path = (	/share/builds/components/jdk/1.2.1/IRIX \
+			/tools/ns/bin \
+			/tools/contrib/bin \
+			/usr/local/bin \
+			/usr/sbin \
+			/usr/bsd \
+			/usr/bin \
+			/bin \
+			/etc \
+			/usr/etc \
+			/usr/bin/X11 \
+			. )
+
+else if ($os_name == "UNIX_SV") then
+	#################
+	# UNIX_SV
+	#
+
+	set path = (	/usr/local/bin \
+			/tools/ns/bin \
+			/bin \
+			/usr/bin \
+			/usr/bin/X11 \
+			/X11/bin \
+			/usr/X/bin \
+			/usr/ucb \
+			/usr/sbin \
+			/sbin \
+			/usr/ccs/bin \
+			. )
+
+else if ($os_name == "AIX") then
+	#################
+	#  IBM AIX
+	#
+
+	set path = (	/share/builds/components/jdk/1.2.2/AIX \
+			/usr/ucb/ \
+			/tools/ns-arch/rs6000_ibm_aix4.1/bin \
+			/tools/ns-arch/rs6000_ibm_aix3.2.5/bin \
+			/share/tools/ns/soft/cvs-1.8/run/default/rs6000_ibm_aix3.2.5/bin \
+			/bin \
+			/usr/bin \
+			/usr/ccs/bin \
+			/usr/sbin \
+			/usr/local/bin \
+			/usr/bin/X11 \
+			/usr/etc \
+			/etc \
+			/sbin \
+			. )
+
+else if ($os_name == "HP-UX") then
+	#################
+	# HP UX
+	#
+
+	set path = (	/share/builds/components/jdk/1.1.6/HP-UX \
+			/usr/bin \
+			/opt/ansic/bin \
+			/usr/ccs/bin \
+			/usr/contrib/bin \
+			/opt/nettladm/bin \
+			/opt/graphics/common/bin \
+			/usr/bin/X11 \
+			/usr/contrib/bin/X11 \
+			/opt/upgrade/bin \
+			/opt/CC/bin \
+			/opt/aCC/bin	\
+			/opt/langtools/bin \
+			/opt/imake/bin \
+			/etc \
+			/usr/etc \
+			/usr/local/bin \
+			/tools/ns/bin \
+			/tools/contrib/bin \
+			/usr/sbin \
+			/usr/local/bin \
+			/tools/ns/bin \
+			/tools/contrib/bin \
+			/usr/sbin \
+			/usr/include/X11R5 \
+			. )
+
+else if ($os_name == "SCO_SV") then
+	#################
+	# SCO
+	#
+
+	set path = (	/bin \
+			/usr/bin \
+			/tools/ns/bin \
+			/tools/contrib/bin \
+			/usr/sco/bin \
+			/usr/bin/X11 \
+			/usr/local/bin \
+			. )
+
+else if ($os_name == "FreeBSD") then
+	#################
+	# FreeBSD
+	#
+
+	setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/java/bin:/usr/local/bin:/usr/ucb:/usr/ccs/bin:/tools/contrib/bin:/tools/ns/bin:.
+
+else if ($os_name == "OSF1") then
+	#################
+	# DEC OSF1
+	#
+
+	set path = (	/share/builds/components/jdk/1.2.2_3/OSF1 \
+			/tools/ns-arch/alpha_dec_osf4.0/bin \
+			/tools/ns-arch/soft/cvs-1.8.3/run/default/alpha_dec_osf2.0/bin \
+			/usr/local-alpha-osf/bin \
+			/usr3/local/bin \
+			/usr/local/bin \
+			/usr/sbin \
+			/usr/bin \
+			/bin \
+			/usr/bin/X11 \
+			/usr/ucb \
+			. )
+
+else if ($os_name == "Linux") then
+	#################
+	# Linux
+	#
+
+	set path = (	/share/builds/components/jdk/1.2.2/Linux \
+			$path )
+
+endif
+
+###############################
+# Reset any "tracked" aliases #
+###############################
+
+rehash
new file mode 100644
--- /dev/null
+++ b/security/coreconf/.profile
@@ -0,0 +1,216 @@
+#!/bin/sh
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Startup file for sh, ksh and bash.  It is meant to work on:
+#
+#	SunOS 4.1.3_U1,
+#	Sun Solaris,
+#	Sun Solaris on Intel,
+#	SGI IRIX,
+#	SGI IRIX64,
+#	UNIX_SV,
+#	IBM AIX,
+#	Hewlett-Packard HP-UX,
+#	SCO_SV,
+#	FreeBSD,
+#	DEC OSF/1,
+#	Linux,
+#	and everything else.
+#
+
+###############################################
+# Set operating system name and release level #
+###############################################
+
+OS_NAME=`uname -s`
+export OS_NAME
+
+OS_RELEASE=`uname -r`
+export OS_RELEASE
+
+##########################################################
+#  Set environment variables based upon operating system #
+##########################################################
+
+case $OS_NAME in
+
+	SunOS)
+		##############################
+		# Sun
+		#
+
+		case $OS_RELEASE in
+
+			4.1.3_U1)
+				##############################
+				# SunOS 4.1.3_U1
+				#
+
+				NO_MDUPDATE=1
+				export NO_MDUPDATE
+
+				PATH=/tools/ns/soft/gcc-2.6.3/run/default/sparc_sun_sunos4.1.3_U1/bin:tools/ns/bin:/sbin:/usr/bin:/usr/openwin/bin:/usr/openwin/include:/usr/ucb:/usr/local/bin:/etc:/usr/etc:/usr/etc/install:.
+				export PATH
+				;;
+
+			*)
+				################################
+				#  Assume it is Sun Solaris
+				#
+
+				# To build Navigator on Solaris 2.5, I must set the environment
+				# variable NO_MDUPDATE and use gcc-2.6.3.
+				NO_MDUPDATE=1
+				export NO_MDUPDATE
+
+				PATH=/share/builds/components/jdk/1.2.2_01/SunOS:/usr/ccs/bin:/usr/opt/bin:/tools/ns/bin:/usr/sbin:/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/openwin/include:/usr/ucb:/usr/opt/java/bin:/usr/local/bin:/etc:/usr/etc:/usr/etc/install:/opt/Acrobat3/bin:.
+				export PATH
+
+				# To get the native Solaris cc
+				OS_TEST=`uname -m`
+				export OS_TEST
+
+				case $OS_TEST in
+
+					i86pc)
+						PATH=/h/solx86/export/home/opt/SUNWspro/SC3.0.1/bin:$PATH
+						export PATH
+						;;
+
+					*)
+						PATH=/tools/ns/workshop/bin:/tools/ns/soft/gcc-2.6.3/run/default/sparc_sun_solaris2.4/bin:$PATH
+						export PATH
+						;;
+				esac
+
+				LD_LIBRARY_PATH=/share/builds/components/jdk/1.2.2_01/SunOS/lib/sparc/native_threads
+				export LD_LIBRARY_PATH
+
+				MANPATH=/usr/local/man:/usr/local/lib/mh/man:/usr/local/lib/rcscvs/man:/usr/local/lib/fvwm/man:/usr/local/lib/xscreensaver/man:/usr/share/man:/usr/openwin/man:/usr/opt/man
+				export MANPATH
+
+				# For Purify
+				PURIFYHOME=/usr/local-sparc-solaris/pure/purify-4.0-solaris2
+				export PURIFYHOME
+				PATH=/usr/local-sparc-solaris/pure/purify-4.0-solaris2:$PATH
+				export PATH
+				MANPATH=$PURIFYHOME/man:$MANPATH
+				export MANPATH
+				LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local-sparc-solaris/pure/purify-4.0-solaris2
+				export LD_LIBRARY_PATH
+				PURIFYOPTIONS="-max_threads=1000 -follow-child-processes=yes"
+				export PURIFYOPTIONS
+				;;
+		esac
+		;;
+
+	IRIX | IRIX64)
+		#############
+		#  SGI Irix
+		#
+
+		PATH=/share/builds/components/jdk/1.2.1/IRIX:/tools/ns/bin:/tools/contrib/bin:/usr/local/bin:/usr/sbin:/usr/bsd:/usr/bin:/bin:/etc:/usr/etc:/usr/bin/X11:.
+		export PATH
+		;;
+
+	UNIX_SV)
+		#################
+		# UNIX_SV
+		#
+
+		PATH=/usr/local/bin:/tools/ns/bin:/bin:/usr/bin:/usr/bin/X11:/X11/bin:/usr/X/bin:/usr/ucb:/usr/sbin:/sbin:/usr/ccs/bin:.
+		export PATH
+		;;
+
+	AIX)
+		#################
+		#  IBM AIX
+		#
+
+		PATH=/share/builds/components/jdk/1.2.2/AIX:/usr/ucb/:/tools/ns-arch/rs6000_ibm_aix4.1/bin:/tools/ns-arch/rs6000_ibm_aix3.2.5/bin:/share/tools/ns/soft/cvs-1.8/run/default/rs6000_ibm_aix3.2.5/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/usr/local/bin:/usr/bin/X11:/usr/etc:/etc:/sbin:.
+		export PATH
+		;;
+
+	HP-UX)
+		#################
+		# HP UX
+		#
+
+		PATH=/share/builds/components/jdk/1.1.6/HP-UX:/usr/bin:/opt/ansic/bin:/usr/ccs/bin:/usr/contrib/bin:/opt/nettladm/bin:/opt/graphics/common/bin:/usr/bin/X11:/usr/contrib/bin/X11:/opt/upgrade/bin:/opt/CC/bin:/opt/aCC/bin:/opt/langtools/bin:/opt/imake/bin:/etc:/usr/etc:/usr/local/bin:/tools/ns/bin:/tools/contrib/bin:/usr/sbin:/usr/local/bin:/tools/ns/bin:/tools/contrib/bin:/usr/sbin:/usr/include/X11R5:.
+		export PATH
+		;;
+
+	SCO_SV)
+		#################
+		# SCO
+		#
+
+		PATH=/bin:/usr/bin:/tools/ns/bin:/tools/contrib/bin:/usr/sco/bin:/usr/bin/X11:/usr/local/bin:.
+		export PATH
+		;;
+
+	FreeBSD)
+
+		#################
+		# FreeBSD
+		#
+
+		PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/java/bin:/usr/local/bin:/usr/ucb:/usr/ccs/bin:/tools/contrib/bin:/tools/ns/bin:.
+		export PATH
+		;;
+
+	OSF1)
+		#################
+		# DEC OSF1
+		#
+
+		PATH=/share/builds/components/jdk/1.2.2_3/OSF1:/tools/ns-arch/alpha_dec_osf4.0/bin:/tools/ns-arch/soft/cvs-1.8.3/run/default/alpha_dec_osf2.0/bin:/usr/local-alpha-osf/bin:/usr3/local/bin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/usr/bin/X11:/usr/ucb:.
+		export PATH
+		;;
+
+	Linux)
+
+		#################
+		# Linux
+		#
+
+		PATH=/share/builds/components/jdk/1.2.2/Linux:$PATH
+		export PATH
+		;;
+esac
+
+###############################
+# Reset any "tracked" aliases #
+###############################
+
+hash -r
new file mode 100644
--- /dev/null
+++ b/security/coreconf/AIX.mk
@@ -0,0 +1,74 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for AIX.
+#
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+#
+# There are two implementation strategies available on AIX:
+# pthreads, and pthreads-user.  The default is pthreads.
+# In both strategies, we need to use pthread_user.c, instead of
+# aix.c.  The fact that aix.c is never used is somewhat strange.
+# 
+# So we need to do the following:
+# - Default (PTHREADS_USER not defined in the environment or on
+#   the command line):
+#   Set PTHREADS_USER=1, USE_PTHREADS=1
+# - PTHREADS_USER=1 set in the environment or on the command line:
+#   Do nothing.
+#
+ifeq ($(PTHREADS_USER),1)
+	USE_PTHREADS =            # just to be safe
+	IMPL_STRATEGY = _PTH_USER
+else
+	USE_PTHREADS = 1
+	PTHREADS_USER = 1
+endif
+
+DEFAULT_COMPILER = xlC_r
+
+CC		= xlC_r
+CCC		= xlC_r
+
+CPU_ARCH	= rs6000
+
+RANLIB		= ranlib
+
+OS_CFLAGS	= -DAIX -DSYSV
+ifeq ($(CC),xlC_r)
+	OS_CFLAGS += -qarch=com
+endif
+
+AIX_WRAP	= $(DIST)/lib/aixwrap.o
+AIX_TMP		= $(OBJDIR)/_aix_tmp.o
+OS_LIBS		+= -lsvld
new file mode 100644
--- /dev/null
+++ b/security/coreconf/AIX3.2.mk
@@ -0,0 +1,35 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for AIX3.2.5
+#
+include $(CORE_DEPTH)/coreconf/AIX.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/AIX4.1.mk
@@ -0,0 +1,46 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for AIX4.1
+#
+
+include $(CORE_DEPTH)/coreconf/AIX.mk
+
+
+AIX_LINK_OPTS  += -bnso -berok
+#AIX_LINK_OPTS += -bnso -berok -brename:.select,.wrap_select -brename:.poll,.wrap_poll -bI:/usr/lib/syscalls.exp
+
+# The AIX4.1 linker had a bug which always looked for a dynamic library
+# with an extension of .a.  AIX4.2 fixed this problem
+DLL_SUFFIX = a
+
+OS_LIBS		+= -lsvld
new file mode 100644
--- /dev/null
+++ b/security/coreconf/AIX4.2.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+
+#
+# Config stuff for AIX4.2
+#
+
+include $(CORE_DEPTH)/coreconf/AIX.mk
+
+OS_CFLAGS	+= -DAIX4_2
+DSO_LDOPTS	= -brtl -bM:SRE -bnoentry -bexpall
+MKSHLIB		= $(LD) $(DSO_LDOPTS) -lsvld -L/usr/lpp/xlC/lib -lc -lm
+
+OS_LIBS		+= -L/usr/lpp/xlC/lib -lc -lm
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/AIX4.3.mk
@@ -0,0 +1,51 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for AIX4.3
+#
+
+include $(CORE_DEPTH)/coreconf/AIX.mk
+
+
+ifeq ($(USE_64), 1)
+# Next line replaced by generic name handling in arch.mk
+#	COMPILER_TAG    = _64
+	OS_CFLAGS	+= -O2 -DAIX_64BIT
+	OBJECT_MODE=64
+	export OBJECT_MODE
+endif
+OS_CFLAGS	+= -DAIX4_3
+DSO_LDOPTS	= -brtl -bM:SRE -bnoentry -bexpall
+MKSHLIB		= $(LD) $(DSO_LDOPTS) -lsvld -L/usr/lpp/xlC/lib -lc -lm
+
+OS_LIBS		+= -L/usr/lpp/xlC/lib -lc -lm
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/FreeBSD2.mk
@@ -0,0 +1,65 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for FreeBSD2
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER	= gcc
+CC			= gcc
+CCC			= g++
+RANLIB			= ranlib
+
+OS_REL_CFLAGS		= -mno-486 -Di386
+CPU_ARCH		= x86
+
+OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
+
+ifdef USE_PTHREADS
+	OS_LIBS		= -lc_r
+	DEFINES		+= -D_PR_NEED_FAKE_POLL
+else
+	OS_LIBS		= -lc
+endif
+
+ARCH			= freebsd
+
+DSO_CFLAGS		= -fPIC
+DSO_LDOPTS		= -Bshareable
+DSO_LDFLAGS		=
+
+MKSHLIB			= $(LD) $(DSO_LDOPTS)
+
+G++INCLUDES		= -I/usr/include/g++
+
+INCLUDES		+= -I/usr/X11R6/include
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UX.mk
@@ -0,0 +1,70 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+
+#
+# Config stuff for HP-UX
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = cc
+
+CPU_ARCH   = hppa
+DLL_SUFFIX = sl
+CCC        = CC
+OS_CFLAGS  += -Ae $(DSO_CFLAGS) -DHPUX -D$(CPU_ARCH) -D_HPUX_SOURCE
+
+ifeq ($(DEFAULT_IMPL_STRATEGY),_PTH)
+	USE_PTHREADS = 1
+	ifeq ($(CLASSIC_NSPR),1)
+		USE_PTHREADS =
+		IMPL_STRATEGY = _CLASSIC
+	endif
+	ifeq ($(PTHREADS_USER),1)
+		USE_PTHREADS =
+		IMPL_STRATEGY = _PTH_USER
+	endif
+endif
+
+ifdef PTHREADS_USER
+	OS_CFLAGS	+= -D_POSIX_C_SOURCE=199506L
+endif
+
+MKSHLIB			= $(LD) $(DSO_LDOPTS)
+
+DSO_LDOPTS		= -b
+DSO_LDFLAGS		=
+
+# +Z generates position independent code for use in shared libraries.
+DSO_CFLAGS = +Z
+
+HAVE_PURIFY		= 1
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXA.09.03.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+
+#
+# On HP-UX 9, the default (and only) implementation strategy is
+# classic nspr.
+#
+ifeq ($(OS_RELEASE),A.09.03)
+	DEFAULT_IMPL_STRATEGY	 = _CLASSIC
+endif
+
+#
+# Config stuff for HP-UXA.09.03
+#
+include $(CORE_DEPTH)/coreconf/HP-UXA.09.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXA.09.07.mk
@@ -0,0 +1,43 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# On HP-UX 9, the default (and only) implementation strategy is
+# classic nspr.
+#
+ifeq ($(OS_RELEASE),A.09.07)
+	DEFAULT_IMPL_STRATEGY	 = _CLASSIC
+endif
+
+#
+# Config stuff for HP-UXA.09.07
+#
+include $(CORE_DEPTH)/coreconf/HP-UXA.09.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXA.09.mk
@@ -0,0 +1,38 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+
+#
+# Config stuff for HP-UXA.09
+#
+include $(CORE_DEPTH)/coreconf/HP-UX.mk
+
+OS_CFLAGS += -DHPUX9
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXB.10.01.mk
@@ -0,0 +1,40 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+ifeq ($(OS_RELEASE),B.10.01)
+	DEFAULT_IMPL_STRATEGY	 = _CLASSIC
+endif
+
+#
+# Config stuff for HP-UXB.10.01
+#
+include $(CORE_DEPTH)/coreconf/HP-UXB.10.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXB.10.10.mk
@@ -0,0 +1,50 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# On HP-UX 10.10 and 10.20, the default implementation strategy is
+# pthreads (actually DCE threads).  Classic nspr is also available.
+#
+
+ifeq ($(OS_RELEASE),B.10.10)
+	DEFAULT_IMPL_STRATEGY 	 = _PTH
+endif
+
+#
+# Config stuff for HP-UXB.10.10
+#
+include $(CORE_DEPTH)/coreconf/HP-UXB.10.mk
+
+OS_CFLAGS += -DHPUX10_10
+
+ifeq ($(USE_PTHREADS),1)
+	OS_CFLAGS	+= -D_REENTRANT -D_PR_DCETHREADS
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXB.10.20.mk
@@ -0,0 +1,50 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# On HP-UX 10.10 and 10.20, the default implementation strategy is
+# pthreads (actually DCE threads).  Classic nspr is also available.
+#
+
+ifeq ($(OS_RELEASE),B.10.20)
+	DEFAULT_IMPL_STRATEGY = _PTH
+endif
+
+#
+# Config stuff for HP-UXB.10.20
+#
+include $(CORE_DEPTH)/coreconf/HP-UXB.10.mk
+
+OS_CFLAGS		+= -DHPUX10_20
+
+ifeq ($(USE_PTHREADS),1)
+	OS_CFLAGS	+= -D_REENTRANT -D_PR_DCETHREADS
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXB.10.30.mk
@@ -0,0 +1,56 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# On HP-UX 10.30 and 11.00, the default implementation strategy is
+# pthreads.  Classic nspr and pthreads-user are also available.
+#
+
+ifeq ($(OS_RELEASE),B.10.30)
+	DEFAULT_IMPL_STRATEGY	 = _PTH
+endif
+
+#
+# Config stuff for HP-UXB.10.30.
+#
+include $(CORE_DEPTH)/coreconf/HP-UXB.10.mk
+
+OS_CFLAGS		+= -DHPUX10_30
+
+#
+# To use the true pthread (kernel thread) library on 10.30 and
+# 11.00, we should define _POSIX_C_SOURCE to be 199506L.
+# The _REENTRANT macro is deprecated.
+#
+
+ifdef USE_PTHREADS
+	OS_CFLAGS	+= -D_POSIX_C_SOURCE=199506L
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXB.10.mk
@@ -0,0 +1,38 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for HP-UXB.10
+#
+include $(CORE_DEPTH)/coreconf/HP-UX.mk
+
+OS_CFLAGS += -DHPUX10
+OS_LIBS   += -lpthread -lm
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXB.11.00.mk
@@ -0,0 +1,55 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# On HP-UX 10.30 and 11.00, the default implementation strategy is
+# pthreads.  Classic nspr and pthreads-user are also available.
+#
+
+ifeq ($(OS_RELEASE),B.11.00)
+OS_CFLAGS		+= -DHPUX10
+DEFAULT_IMPL_STRATEGY = _PTH
+endif
+
+#
+# To use the true pthread (kernel thread) library on 10.30 and
+# 11.00, we should define _POSIX_C_SOURCE to be 199506L.
+# The _REENTRANT macro is deprecated.
+#
+
+ifdef USE_PTHREADS
+	OS_CFLAGS	+= -D_POSIX_C_SOURCE=199506L
+endif
+
+#
+# Config stuff for HP-UXB.11.00.
+#
+include $(CORE_DEPTH)/coreconf/HP-UXB.11.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/HP-UXB.11.mk
@@ -0,0 +1,56 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for HP-UXB.11
+#
+include $(CORE_DEPTH)/coreconf/HP-UX.mk
+
+ifndef NS_USE_GCC
+    CCC                 = /opt/aCC/bin/aCC -ext
+    ifeq ($(USE_64), 1)
+	OS_CFLAGS       +=  -Aa +e +DA2.0W +DS2.0 +DChpux
+# Next line replaced by generic name handling in arch.mk
+#	COMPILER_TAG    = _64
+    else
+	ifdef USE_LONG_LONGS
+	    OS_CFLAGS 	+= -Aa +e +DA2.0 +DS2.0 
+	else
+	    OS_CFLAGS   += +DAportable +DS1.1
+	endif
+    endif
+else
+    CCC = aCC
+endif
+
+OS_CFLAGS += -DHPUX11 
+OS_LIBS   += -lpthread -lm -lrt
+HPUX11	= 1
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX.mk
@@ -0,0 +1,122 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+#
+# The default implementation strategy for Irix is classic nspr.
+#
+ifeq ($(USE_PTHREADS),1)
+	ifeq ($(USE_N32),1)
+		IMPL_STRATEGY = _n32_PTH
+	else
+		IMPL_STRATEGY = _PTH
+	endif
+endif
+
+DEFAULT_COMPILER = cc
+
+ifdef NS_USE_GCC
+	CC		= gcc
+	AS		= $(CC) -x assembler-with-cpp
+	ODD_CFLAGS	= -Wall -Wno-format
+	ifdef BUILD_OPT
+		OPTIMIZER	= -O6
+	endif
+else
+	CC	= cc
+	CCC		= CC
+	ODD_CFLAGS	= -fullwarn -xansi
+	ifdef BUILD_OPT
+		ifeq ($(USE_N32),1)
+			OPTIMIZER	= -O -OPT:Olimit=4000
+		else
+			OPTIMIZER	= -O -Olimit 4000
+		endif
+	endif
+
+	# For 6.x machines, include this flag
+	ifeq (6., $(findstring 6., $(OS_RELEASE)))
+		ifeq ($(USE_N32),1)
+			ODD_CFLAGS	+= -n32 -mips3 -exceptions
+		else
+			ODD_CFLAGS	+= -32 -multigot
+		endif
+	else
+		ODD_CFLAGS		+= -xgot
+	endif
+	ifeq ($(USE_N32),1)
+		OS_CFLAGS	+= -dollar
+	endif
+endif
+
+ODD_CFLAGS	+= -DSVR4 -DIRIX 
+
+CPU_ARCH	= mips
+
+RANLIB		= /bin/true
+# For purify
+# NOTE: should always define _SGI_MP_SOURCE
+NOMD_OS_CFLAGS += $(ODD_CFLAGS) -D_SGI_MP_SOURCE
+
+ifndef NO_MDUPDATE
+	OS_CFLAGS += $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
+else
+	OS_CFLAGS += $(NOMD_OS_CFLAGS)
+endif
+
+ifeq ($(USE_N32),1)
+	SHLIB_LD_OPTS	+= -n32 -mips3
+endif
+
+MKSHLIB     += $(LD) $(SHLIB_LD_OPTS) -shared -soname $(@:$(OBJDIR)/%.so=%.so)
+
+HAVE_PURIFY	= 1
+
+DSO_LDOPTS	= -elf -shared -all
+
+ifdef DSO_BACKEND
+	DSO_LDOPTS += -soname $(DSO_NAME)
+endif
+
+#
+# Revision notes:
+#
+# In the IRIX compilers prior to version 7.2, -n32 implied -mips3.
+# Beginning in the 7.2 compilers, -n32 implies -mips4 when the compiler
+# is running on a system with a mips4 CPU (e.g. R8K, R10K).
+# We want our code to explicitly be mips3 code, so we now explicitly
+# set -mips3 whenever we set -n32.
+#
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX5.2.mk
@@ -0,0 +1,35 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX 5.2
+#
+include $(CORE_DEPTH)/coreconf/IRIX5.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX5.3.mk
@@ -0,0 +1,37 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX 5.3
+#
+include $(CORE_DEPTH)/coreconf/IRIX5.mk
+
+OS_CFLAGS += -DIRIX5_3
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX5.mk
@@ -0,0 +1,40 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX 5
+#
+
+include $(CORE_DEPTH)/coreconf/IRIX.mk
+
+ifndef NS_USE_GCC
+	ODD_CFLAGS += -xgot
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX6.2.mk
@@ -0,0 +1,43 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX 6.2
+#
+
+
+# catch unresolved symbols
+
+SHLIB_LD_OPTS += -no_unresolved
+
+include $(CORE_DEPTH)/coreconf/IRIX6.mk
+
+OS_CFLAGS += -DIRIX6_2
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX6.3.mk
@@ -0,0 +1,42 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX 6.3
+#
+
+# catch unresolved symbols
+
+SHLIB_LD_OPTS += -no_unresolved
+
+include $(CORE_DEPTH)/coreconf/IRIX6.mk
+
+OS_CFLAGS += -DIRIX6_3
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX6.5.mk
@@ -0,0 +1,42 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX 6.5
+#
+
+# catch unresolved symbols
+
+SHLIB_LD_OPTS += -no_unresolved
+
+include $(CORE_DEPTH)/coreconf/IRIX6.mk
+
+OS_CFLAGS += -DIRIX6_5 -mips3
new file mode 100644
--- /dev/null
+++ b/security/coreconf/IRIX6.mk
@@ -0,0 +1,47 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for IRIX 6
+#
+
+include $(CORE_DEPTH)/coreconf/IRIX.mk
+
+ifndef NS_USE_GCC
+	ifneq ($(USE_N32),1)
+	OS_CFLAGS  += -32
+	endif
+	ODD_CFLAGS += -multigot
+endif
+
+ifeq ($(USE_PTHREADS),1)
+OS_LIBS += -lpthread
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/Linux.mk
@@ -0,0 +1,97 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Linux
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+#
+# The default implementation strategy for Linux is now pthreads
+#
+USE_PTHREADS = 1
+
+ifeq ($(USE_PTHREADS),1)
+	IMPL_STRATEGY = _PTH
+endif
+
+CC			= gcc
+CCC			= g++
+RANLIB			= ranlib
+
+DEFAULT_COMPILER = gcc
+
+ifeq ($(OS_TEST),ppc)
+	OS_REL_CFLAGS	= -DMACLINUX -DLINUX1_2
+	CPU_ARCH	= ppc	
+else
+ifeq ($(OS_TEST),alpha)
+        OS_REL_CFLAGS   = -D_ALPHA_ -DLINUX1_2 -D_XOPEN_SOURCE
+	CPU_ARCH	= alpha
+else
+	OS_REL_CFLAGS	= -mno-486 -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+	CPU_ARCH	= x86
+endif
+endif
+
+
+LIBC_TAG		= _glibc
+
+ifeq ($(OS_RELEASE),2.0)
+	OS_REL_CFLAGS	+= -DLINUX2_0
+	MKSHLIB		= $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+	ifdef BUILD_OPT
+		OPTIMIZER	= -O2
+	endif
+endif
+
+ifeq ($(USE_PTHREADS),1)
+OS_PTHREAD = -lpthread 
+endif
+
+OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR
+OS_LIBS			= -L/lib $(OS_PTHREAD) -ldl -lc
+
+ifdef USE_PTHREADS
+	DEFINES		+= -D_REENTRANT -D_PR_NEED_FAKE_POLL
+else
+	DEFINES		+= -D_PR_LOCAL_THREADS_ONLY
+endif
+
+ARCH			= linux
+
+DSO_CFLAGS		= -fPIC
+DSO_LDOPTS		= -shared
+DSO_LDFLAGS		=
+
+# INCLUDES += -I/usr/include -Y/usr/include/linux
+G++INCLUDES		= -I/usr/include/g++
new file mode 100644
--- /dev/null
+++ b/security/coreconf/Linux2.1.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Linux 2.1 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
+ifeq ($(OS_RELEASE),2.1)
+        OS_REL_CFLAGS   += -DLINUX2_1
+        MKSHLIB         = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+        ifdef BUILD_OPT
+                OPTIMIZER       = -O2
+        endif
+endif
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/Linux2.2.mk
@@ -0,0 +1,43 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Linux 2.2 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
+
+OS_REL_CFLAGS   += -DLINUX2_1
+MKSHLIB         = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ifdef BUILD_OPT
+            OPTIMIZER       = -O2
+endif
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/LinuxELF1.2.mk
@@ -0,0 +1,36 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Linux 1.2 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/LinuxELF2.0.mk
@@ -0,0 +1,36 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Linux 2.0 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/Makefile
@@ -0,0 +1,43 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+DEPTH		= ..
+CORE_DEPTH	= ..
+
+MODULE		= coreconf
+
+DIRS		= nsinstall mkdepend md
+
+include $(DEPTH)/coreconf/config.mk
+include $(DEPTH)/coreconf/rules.mk
+
+export:: libs
new file mode 100644
--- /dev/null
+++ b/security/coreconf/NCR3.0.mk
@@ -0,0 +1,90 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for NCR SysVr4 v 3.0
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = cc
+
+###
+NS_USE_NATIVE = 1
+
+# NS_USE_GCC = 1
+
+export PATH:=$(PATH):/opt/ncc/bin
+###
+
+RANLIB           = true
+GCC_FLAGS_EXTRA += -pipe
+
+DEFINES		+= -DSVR4 -DSYSV -DHAVE_STRERROR -DNCR
+
+OS_CFLAGS	+= -Hnocopyr -DSVR4 -DSYSV -DHAVE_STRERROR -DNCR -DPRFSTREAMS_BROKEN
+
+ifdef NS_USE_NATIVE
+	CC       = cc
+	CCC      = ncc
+	CXX      = ncc
+#	OS_LIBS += -L/opt/ncc/lib 
+else
+#	OS_LIBS	+=
+endif
+
+#OS_LIBS    += -lsocket -lnsl -ldl -lc
+
+MKSHLIB     += $(LD) $(DSO_LDOPTS)
+#DSO_LDOPTS += -G -z defs
+DSO_LDOPTS += -G
+
+CPU_ARCH    = x86
+ARCH        = ncr
+
+NOSUCHFILE  = /solaris-rm-f-sucks
+
+# now take care of default GCC (rus@5/5/97)
+ 
+ifdef NS_USE_GCC
+	# if gcc-settings are redefined already - don't touch it
+	#
+	ifeq (,$(findstring gcc, $(CC)))
+		CC   = gcc
+		CCC  = g++
+		CXX  = g++
+		# always use -fPIC - some makefiles are still broken and don't distinguish
+		# situation when they build shared and static libraries
+		CFLAGS  += -fPIC -Wall $(GCC_FLAGS_EXTRA)
+#		OS_LIBS += -L/usr/local/lib -lstdc++ -lg++ -lgcc
+	endif
+endif
+###
new file mode 100644
--- /dev/null
+++ b/security/coreconf/NEC4.2.mk
@@ -0,0 +1,61 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for NEC Mips SYSV
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = $(CORE_DEPTH)/build/hcc
+
+CPU_ARCH		= mips
+
+ifdef NS_USE_GCC
+CC			= gcc
+CCC			= g++
+else
+CC			= $(CORE_DEPTH)/build/hcc
+OS_CFLAGS		= -Xa -KGnum=0 -KOlimit=4000
+CCC			= g++
+endif
+
+MKSHLIB			= $(LD) $(DSO_LDOPTS)
+
+RANLIB			= /bin/true
+
+OS_CFLAGS		+= $(ODD_CFLAGS) -DSVR4 -D__SVR4 -DNEC -Dnec_ews -DHAVE_STRERROR
+OS_LIBS			= -lsocket -lnsl -ldl $(LDOPTIONS)
+LDOPTIONS		= -lc -L/usr/ucblib -lucb
+
+NOSUCHFILE		= /nec-rm-f-sucks
+
+DSO_LDOPTS		= -G
new file mode 100644
--- /dev/null
+++ b/security/coreconf/OSF1.mk
@@ -0,0 +1,74 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for DEC OSF/1
+#
+
+#
+# The Bourne shell (sh) on OSF1 doesn't handle "set -e" correctly,
+# which we use to stop LOOP_OVER_DIRS submakes as soon as any
+# submake fails.  So we use the Korn shell instead.
+#
+SHELL = /usr/bin/ksh
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = cc
+
+CC         = cc
+OS_CFLAGS += $(NON_LD_FLAGS) -std1
+CCC        = cxx
+RANLIB     = /bin/true
+CPU_ARCH   = alpha
+
+ifdef BUILD_OPT
+	OPTIMIZER += -Olimit 4000
+endif
+
+NON_LD_FLAGS += -ieee_with_inexact
+OS_CFLAGS    += -DOSF1 -D_REENTRANT 
+
+ifneq ($(USE_64), 1)
+	LDFLAGS += -taso
+endif
+
+ifeq ($(USE_PTHREADS),1)
+	OS_CFLAGS += -pthread
+endif
+
+ifeq ($(USE_IPV6),1)
+	OS_CFLAGS += -D_PR_INET6
+endif
+
+# The command to build a shared library on OSF1.
+MKSHLIB    += ld -shared -all -expect_unresolved "*"
+DSO_LDOPTS += -shared
new file mode 100644
--- /dev/null
+++ b/security/coreconf/OSF1V2.0.mk
@@ -0,0 +1,35 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for DEC OSF/1 V2.0
+#
+include $(CORE_DEPTH)/coreconf/OSF1.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/OSF1V3.0.mk
@@ -0,0 +1,35 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for DEC OSF/1 V3.0
+#
+include $(CORE_DEPTH)/coreconf/OSF1.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/OSF1V3.2.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# On OSF1 V3.2, classic nspr is the default (and only) implementation
+# strategy.
+#
+
+#
+# Config stuff for DEC OSF/1 V3.2
+#
+include $(CORE_DEPTH)/coreconf/OSF1.mk
+
+ifeq ($(OS_RELEASE),V3.2)
+	OS_CFLAGS += -DOSF1V3
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/OSF1V4.0.mk
@@ -0,0 +1,51 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# On OSF1 V4.0, pthreads is the default implementation strategy.
+# Classic nspr is also available.
+#
+ifneq ($(OS_RELEASE),V3.2)
+	USE_PTHREADS = 1
+	ifeq ($(CLASSIC_NSPR), 1)
+		USE_PTHREADS =
+		IMPL_STRATEGY := _CLASSIC
+	endif
+endif
+
+#
+# Config stuff for DEC OSF/1 V4.0
+#
+include $(CORE_DEPTH)/coreconf/OSF1.mk
+
+ifeq ($(OS_RELEASE),V4.0)
+	OS_CFLAGS += -DOSF1V4
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/OSF1V4.0B.mk
@@ -0,0 +1,35 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for DEC OSF/1 V4.0B
+#
+include $(CORE_DEPTH)/coreconf/OSF1V4.0.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/OSF1V4.0D.mk
@@ -0,0 +1,39 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for DEC OSF/1 V4.0D
+#
+include $(CORE_DEPTH)/coreconf/OSF1V4.0.mk
+DEFINES	+= -DOSF1V4D
+
+OS_LIBS += -lpthread -lrt
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/README
@@ -0,0 +1,568 @@
+OVERVIEW of "ns/coreconf":
+
+    This README file is an attempt to provide the reader with a simple
+    synopsis of the "ns/coreconf" build system which was originally
+    fundamentally designed and built to accomodate Netscape's binary
+    release model.  Wherever possible, an attempt has been made to
+    comply with the NSPR 2.0 build system, including mimicing the
+    compiler/linker flags, and directory naming structure.  The reader
+    should keep in mind that the system builds binary releases of
+    header files, class files, libraries, and executables on numerous
+    flavors of UNIX and Windows operating systems.  Unfortunately,
+    no serious attempt has ever been made to incorporate an ability to
+    generate cross-platform binaries on an Apple MacIntosh platform.
+
+    Note that this file will not attempt to redefine or document the
+    architecture of this system.  However, documents on this subject
+    are available at the following URL:
+
+        http://warp/hardcore/prj-ttools/specs/release/index.html
+
+
+
+DEPENDENCIES of "ns/coreconf":
+
+    The "ns/coreconf" build system requires the specified versions of
+    the following platform-dependent tools:
+
+        UNIX Platforms:
+        --------------
+        gmake (version 3.74 or later)
+        perl 4.0 (NOTE:  perl 5.003 or later recommended)
+        uname
+
+        Windows Platforms:
+        -----------------
+        gmake 3.74 (must use hacked Netscape version)
+        shmsdos.exe (contained in Netscape gmake.exe)
+        nsinstall.exe (contained in Netscape gmake.exe)
+        perl.exe (version 4.0 for everything except testing;
+                  NOTE:  MKS toolkit perl 5.002 is broken)
+        perl5.exe (for testing;
+                   NOTE:  perl 5.003 or later recommended;
+                          MKS toolkit perl 5.002 is broken)
+        uname.exe (use nstools version)
+
+ENHANCEMENTS to "ns/coreconf":
+
+    With the advent of Certificate Server 4.0 using the ns/coreconf
+    build system, several changes had to be made to enhance
+    ns/coreconf support for building Java/JNI classes/programs, as
+    well as libraries slated to be released as binaries.  While the
+    following may not represent an exhaustive list of these changes,
+    it does attempt to be at least somewhat comprehensive:
+
+        (1) During the course of these enhancements, a total of
+            four files have been modified, and four new files have
+            been added.
+
+            The following files have been modified:
+
+                - command.mk:    removed old definition of JAR
+
+                - config.mk:     added include statement of new
+                                 "jdk.mk" file
+
+                - ruleset.mk:    allowed the $(MKPROG) variable to be
+                                 overridden by supplying it with a
+                                 default value of $(CC); augmented
+                                 numerous definitions to enhance
+                                 ability of ns/coreconf to produce
+                                 a more robust set of libraries;
+                                 added some JNI definitions; PACKAGE
+                                 definition may be overridden by new
+                                 "jdk.mk" file
+
+                - rules.mk:      separated the compile phase of a
+                                 program from the link phase of a
+                                 program such that a developer can
+                                 now strictly override program linkage
+                                 by simply supplying a $(MKPROG)
+                                 variable; augmented NETLIBDEPTH
+                                 to use CORE_DEPTH but retain backward
+                                 compatibility; added JNI section;
+                                 modified .PRECIOUS rule;
+
+            The following files have been added:
+
+                - README:        this file; an ASCII-based text
+                                 document used to summarize the
+                                 ns/coreconf build system and
+                                 suitable (paginated) for printing
+
+                - jdk.mk:        a file comprising most (if not all)
+                                 of the default Java related build
+                                 information; the definitions in this
+                                 file are only included if NS_USE_JDK
+                                 has been defined
+
+                - jniregen.pl:   a perl script used to create a
+                                 dependency for when JNI files should
+                                 be regenerated (based upon any change
+                                 to the ".class" file from which the
+                                 ".h" file was originally generated)
+
+                - outofdate.pl:  a perl script used to create a
+                                 dependency for when ".class" files
+                                 should be regenerated (based upon
+                                 any change to the ".java" file
+                                 from which the ".class" file was
+                                 originally generated)
+
+        (2) As stated above, the ns/coreconf build system now separates
+            the link phase of a program from its compilation phase.
+            While ns/coreconf still works exactly as it used to because
+            the $(MKPROG) variable is assigned $(CC) by default, a developer
+            may now override this behavior by simply supplying their
+            own unique value for $(MKPROG) on every platform.  This allows
+            a program compiled with $(CC) to link with external libraries
+            that may contain "C++" linkage.  Before this change, a
+            programmer would need to reference their own local copy of
+            rules.mk (see the ns/sectools/cmd/pk12util program for
+            an example of how this used to be accomplished).
+
+        (3) Currently, the ns/coreconf build system differs from the
+            NSPR 2.0 build system which utilizes an "_s" to denote
+            static libraries from import libraries.  In fact, the
+            ns/coreconf build system adds no prefixes or suffixes to
+            distinguish one version of static libraries from another.
+            Note that both the ns/coreconf build system as well as the
+            NSPR 2.0 build system do nothing to provide a method of
+            distinguishing 16-bit from 32-bit static libraries on the
+            same machine, either, since:
+
+                a) this might only provide difficulty during
+                   development, since static libraries always
+                   need to be embedded within a program
+                   (note this is highly unlikely, since libraries
+                    for different platforms are subdivided via
+                    a well-known subdirectory structure, and
+                    a developer may use multiple trees for
+                    development),
+
+                b) this maintains backwards compatibility,
+                   something very important since no legacy
+                   programs will need to change their link phase, and
+
+                c) Netscape as a company has dropped any plans
+                   of future development of 16-bit products.
+
+        (4) Since several members of the Hardcore Security group did
+            not favor NSPR 2.0's solution of adding an "_s" to static
+            libraries on Windows platforms as a method to distinguish
+            them from their import library cousins, a different solution
+            was proposed and has been recently implemented for ns/coreconf:
+
+                - a 16 has been added as a suffix to both dynamic and
+                  import libraries built on 16-bit Windows platforms
+
+                - a 32 has been added as a suffix to both dynamic and
+                  import libraries built on 32-bit Windows platforms
+
+            Since, the HCL release process currently only contains a
+            single instance of building a dynamic library,
+            ns/security/lib/fortcrypt/fort12.dll, the impact of this
+            change should be relatively small.
+
+            It should be noted that although this would additionally
+            limit the 8.3 namespace on 16-bit platforms, it is highly
+            unlikely that any future development will be performed on
+            this platform.
+
+        (5) The $(LIBRARY_VERSION) tag has been added to all non-static
+            libraries created on UNIX operating systems to alleviate
+            any future confusion for binary releases which utilize this
+            tag.  Again, it should be noted that this tag is only
+            utilized on non-static libraries, since more than one
+            version of the library may need to exist simultaneously
+            if multiple products are utilized.
+
+            Currently, only one HCL released library utilizes this tag:
+
+                ns/security/lib/fortcrypt/fort12.a
+                (e. g. - in this library, the tag has been set to '12')
+
+            Again, it should be noted that although this would
+            additionally limit the 8.3 namespace on 16-bit platforms,
+            it is highly unlikely that any future development will be
+            performed on this platform.
+
+        (6) The $(JDK_DEBUG_SUFFIX) extension has been added to all
+            library and program names to support debug versions of
+            Java programs (e. g. - java_g, javac_g, etc).
+
+            Once again, it should be noted that although this would
+            additionally limit the 8.3 namespace on 16-bit platforms,
+            it is highly unlikely that any future Java development
+            will be performed on this platform.
+
+        (7) Most (if not all) default definitions for java have been
+            encapsulated within their own file, jdk.mk, which is
+            always included by default in ns/coreconf/config.mk.
+            However, the definitions within this file are only ever
+            activated if NS_USE_JDK has been set to be 1.
+
+
+        (8) Two perl scripts (jniregen.pl and outofdate.pl) have been
+            added to the system to foster a more robust development
+            environment for composing Java and JNI programs
+            utilizing the ns/coreconf build system.  Both of these
+            perl scripts are related to resolving dependencies which
+            can not be accomplished through normal makefile dependencies.
+
+        (9) This file, README, was created in an attempt to allow
+            developers who have familiarity with ns/coreconf a simple
+            roadmap for what has changed, as well as a top-level view of
+            what comprises ns/coreconf.  This file was written in
+            ASCII (rather than HTML) primarily to promote simple
+            paginated printing.
+
+OVERVIEW of "config.mk":
+
+    This file contains the configuration information necessary to
+    build each "Core Components" source module:
+
+        include file name       Purpose
+        ===================     =======================================
+        arch.mk                 source and release <architecture> tags
+
+        command.mk              default command macros 
+				(NOTE: may be overridden in $(OS_CONFIG).mk)
+
+        $(OS_CONFIG).mk         <architecture>-specific macros
+                                (dependent upon <architecture> tags)
+
+        platform.mk             source and release <platform> tags 
+				(dependent upon <architecture> tags)
+
+        tree.mk                 release <tree> tags 
+				(dependent upon <architecture> tags)
+
+        module.mk               source and release <component> tags 
+				(NOTE:  A component is also called a module 
+				or a subsystem.  This file is dependent upon
+                                $(MODULE) being defined on the command
+                                line, as an environment variable, or in
+                                individual makefiles, or more
+                                appropriately, manifest.mn)
+
+        version.mk              release <version> tags 
+				(dependent upon $(MODULE) being defined on 
+				the command line, as an environment variable, 
+				or in individual makefiles, or more
+                                appropriately, manifest.mn)
+
+        location.mk             macros to figure out binary code location
+                                (dependent upon <platform> tags)
+
+        source.mk               <component>-specific source path
+                                (dependent upon <user_source_tree>,
+                                <source_component>, <version>, and
+                                <platform> tags)
+
+        headers.mk              include switch for support header files 
+				(dependent upon <tree>, <component>, <version>,
+                                and <platform> tags)
+
+        prefix.mk               compute program prefixes
+
+        suffix.mk               compute program suffixes 
+				(dependent upon <architecture> tags)
+
+        jdk.mk                  define JDK 
+				(dependent upon <architecture>,
+                                <source>, and <suffix> tags)
+
+        ruleset.mk              Master "Core Components" rule set
+                                (should always be the last file
+                                included by config.mk)
+
+
+
+OVERVIEW of "rules.mk":
+
+    The "rules.mk" file consists of four sections.  The first section
+    contains the "master" build rules for all binary releases.  While
+    this section can (and should) largely be thought of as "language"
+    independent, it does utilize the "perl" scripting language to
+    perform both the "import" and "release" of binary modules.
+
+    The rules which dwell in this section and their purpose:
+
+
+        CATEGORY/rule::         Purpose
+        ===================     =======================================
+
+        GENERAL
+        -------
+        all::                   "default" all-encompassing rule which
+                                performs "export libs program install"
+
+        export::                recursively copy specified
+                                cross-platform header files to the
+                                $(SOURCE_XPHEADERS_DIR) directory;
+                                recursively copy specified
+                                machine-dependent header files to the
+                                $(SOURCE_MDHEADERS_DIR) directory;
+                                although all rules can be written to
+                                repetively "chain" into other sections,
+                                this rule is the most commonly used
+                                rule to "chain" into other sections
+                                such as Java providing a simple
+                                mechanism which allows no need for
+                                developers to memorize specialized
+                                rules
+
+        libs::                  recursively build
+                                static (archival) $(LIBRARY), shared
+                                (dynamic link) $(SHARED_LIBRARY),
+                                import $(IMPORT_LIBRARY), and/or
+                                "purified" $(PURE_LIBRARY)
+                                libraries
+
+        program::               recursively build $(PROGRAM)
+                                executable
+
+        install::               recursively copy all libraries to
+                                $(SOURCE_LIB_DIR) directory;
+                                recursively copy all executables to
+                                $(SOURCE_BIN_DIR) directory
+
+        clean::                 remove all files specified in the
+                                $(ALL_TRASH) variable
+
+        clobber::               synonym for "clean::" rule
+
+        realclean::             remove all files specified by
+                                $(wildcard *.OBJ), dist, and in
+                                the $(ALL_TRASH) variable
+
+        clobber_all::           synonym for "realclean::" rule
+
+        private_export::        recursively copy specified
+                                cross-platform header files to the
+                                $(SOURCE_XPPRIVATE_DIR) directory
+
+
+        IMPORT
+        ------
+        import::                uses perl script to retrieve specified
+                                VERSION of the binary release from
+                                $(RELEASE_TREE)
+
+        RELEASE
+        -------
+        release_clean::         remove all files from the
+                                $(SOURCE_RELEASE_PREFIX) directory
+
+        release::               place specified VERSION of the
+                                binary release in the appropriate
+                                $(RELEASE_TREE) directory
+
+        release_export::        recursively copy specified
+                                cross-platform header files to the
+                                $(SOURCE_XPHEADERS_DIR)/include
+                                directory
+
+        release_md::            recursively copy all libraries to
+                                $(SOURCE_RELEASE_PREFIX)/
+                                $(SOURCE_RELEASE_LIB_DIR) directory;
+                                recursively copy all executables to
+                                $(SOURCE_RELEASE_PREFIX)/
+                                $(SOURCE_RELEASE_BIN_DIR) directory
+
+        release_jars::          use perl script to package appropriate
+                                files in the $(XPCLASS_JAR),
+                                $(XPHEADER_JAR), $(MDHEADER_JAR), and
+                                $(MDBINARY_JAR) jar files
+
+        release_cpdistdir::     use perl script to copy the
+                                $(XPCLASS_JAR), $(XPHEADER_JAR),
+                                $(MDHEADER_JAR), and $(MDBINARY_JAR)
+                                jar files to the specified VERSION
+                                of the $(RELEASE_TREE) directory
+
+
+
+        TOOLS and AUTOMATION
+        --------------------
+        platform::              tool used to display the platform name
+                                as composed within the "arch.mk" file
+
+        autobuild::             automation rule used by "Bonsai" and
+                                "Tinderbox" to automatically generate
+                                binary releases on various platforms
+
+        tests::                 automation tool used to run the
+                                "regress" and "reporter" tools 
+                                on various regression test suites
+
+    The second section of "rules.mk" primarily contains several
+    "language" dependent build rules for binary releases.  These are
+    generally "computed" rules (created on the "fly"), and include
+    rules used by "C", "C++", assembly, the preprocessor, perl, and
+    the shell.
+
+    The rules which dwell in this section and their purpose:
+
+
+        CATEGORY/rule::                   Purpose
+        ===================               =============================
+
+        LIBRARIES
+        ---------
+        $(LIBRARY):                       build the static library
+                                          specified by the $(LIBRARY)
+                                          variable
+
+        $(IMPORT_LIBRARY):                build the import library
+                                          specified by the
+                                          $(IMPORT_LIBRARY) variable
+
+        $(SHARED_LIBRARY):                build the shared
+                                          (dynamic link) library
+                                          specified by the
+                                          $(SHARED_LIBRARY) variable
+
+        $(PURE_LIBRARY):                  build the "purified" library
+                                          specified by the
+                                          $(PURE_LIBRARY) variable
+
+
+        PROGRAMS
+        --------
+        $(PROGRAM):                       build the binary executable
+                                          specified by the $(PROGRAM)
+                                          rule
+
+        $(OBJDIR)/
+        $(PROG_PREFIX)%.pure:             build the "purified" binary
+                                          executable specified by this
+                                          rule
+
+
+        OBJECTS
+        -------
+        $(OBJDIR)/
+        $(PROG_PREFIX)%$(OBJ_SUFFIX):     build the object file
+                                          associated with the
+                                          makefile rule dependency:
+
+                                              %.c   = C file
+                                              %.cpp = C++ file
+                                              %.cc  = C++ file
+                                              %.s   = assembly file
+                                              %.S   = assembly file
+
+        $(OBJDIR)/
+        $(PROG_PREFIX)%:                  (NOTE: deprecated rule)
+                                          build the object file
+                                          associated with the
+                                          makefile rule dependency:
+
+                                              %.cpp = C++ file
+
+        MISCELLANEOUS
+        -------------
+        $(DIRS)::                         specifies a helper method
+                                          used by $(LOOP_THROUGH_DIRS)
+                                          to recursively change
+                                          directories and invoke
+                                          $(MAKE)
+
+        %.i:                              build the preprocessor file
+                                          associated with the
+                                          makefile rule dependency:
+
+                                              %.c   = C file
+                                              %.cpp = C++ file
+
+        %:                                process the specified file
+                                          using the method associated
+                                          with the makefile rule
+                                          dependency:
+
+                                              %.pl = perl script
+                                              %.sh = shell script
+
+        alltags:                          tool used to recursively
+                                          create a "ctags"-style
+                                          file for reference
+
+    The third section of "rules.mk' primarily contains several JAVA
+    "language" build rules for binary releases.  These are also
+    generally "computed" rules (created on the "fly").
+
+    The rules which dwell in this section and their purpose:
+
+
+        CATEGORY/rule::                   Purpose
+        ===================               =============================
+        $(JAVA_DESTPATH)::                create directory specified
+                                          as the Java destination path
+                                          for where classes are
+                                          deposited
+
+        $(JAVA_DESTPATH)/$(PACKAGE)::     create directories specified
+                                          within the $(PACKAGE)
+                                          variable
+
+        $(JMCSRCDIR)::                    create directory specified
+                                          as the JMC destination path
+
+        $(JRI_HEADER_CFILES):             used to generate/regenerate
+                                          JRI header files for "C"
+
+        $(JRI_STUB_CFILES):               used to generate/regenerate
+                                          JRI stub files for "C"
+
+        $(JNI_HEADERS):                   used to generate/regenerate
+                                          JNI header files for "C"
+
+    The fourth section of "rules.mk" primarily contains miscellaneous
+    build rules for binary releases.  Many of these rules are here to
+    create new subdirectories, manage dependencies, and/or override
+    standard gmake "Makefile" rules.
+
+    The rules which dwell in this section and their purpose:
+
+
+        CATEGORY/rule::                   Purpose
+        ===================               =============================
+
+        $(PUBLIC_EXPORT_DIR)::            create directory used to
+                                          house public "C" header files
+
+        $(PRIVATE_EXPORT_DIR)::           create directory used to
+                                          house private "C" header
+                                          files
+
+        $(SOURCE_XP_DIR)/
+        release/include::                 create directory used to
+                                          house "C" header files
+                                          contained in a release
+
+        $(MKDEPENDENCIES)::               for UNIX systems, create
+                                          a directory used to house
+                                          dependencies and utilize
+                                          the $(MKDEPEND) rule to
+                                          create them
+
+        $(MKDEPEND)::                     cd to the dependency
+                                          directory and create them
+
+        depend::                          if $(OBJS) exist, perform the
+                                          $(MKDEPEND) rule followed by
+                                          the $(MKDEPENDENCIES) rule
+
+        dependclean::                     remove all files contained
+                                          in the dependency repository
+
+        .DEFAULT:                         standard gmake rule
+
+        .SUFFIXES:                        standard gmake rule
+
+        .PRECIOUS:                        standard gmake rule
+
+        .PHONY:                           standard gmake rule
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/ReliantUNIX.mk
@@ -0,0 +1,84 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for ReliantUNIX
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = cc
+
+ifdef NS_USE_GCC
+	## gcc-2.7.2 homebrewn
+	CC          = gcc
+	CCC         = g++
+	AS          = $(CC)
+	ASFLAGS     += -x assembler-with-cpp
+	LD          = gld
+	ODD_CFLAGS  = -pipe -Wall -Wno-format
+	ifdef BUILD_OPT
+		OPTIMIZER += -O6
+	endif
+	MKSHLIB     = $(LD)
+	MKSHLIB    += -G -h $(@:$(OBJDIR)/%.so=%.so)
+	DSO_LDOPTS += -G -Xlinker -Blargedynsym
+else
+	## native compiler (CDS++ 1.0)
+#	CC   = /usr/bin/cc
+	CC   = cc
+	CCC  = /usr/bin/CC
+	AS   = /usr/bin/cc
+	ODD_CFLAGS  = 
+	ifdef BUILD_OPT
+		OPTIMIZER += -O -F Olimit,4000
+	endif
+	MKSHLIB     = $(CC)
+	MKSHLIB    += -G -h $(@:$(OBJDIR)/%.so=%.so)
+	DSO_LDOPTS += -G -W l,-Blargedynsym
+endif
+
+NOSUCHFILE  = /sni-rm-f-sucks
+ODD_CFLAGS += -DSVR4 -DSNI -DRELIANTUNIX
+CPU_ARCH    = mips
+RANLIB      = /bin/true
+
+# For purify
+NOMD_OS_CFLAGS += $(ODD_CFLAGS)
+
+# we do not have -MDupdate ...
+OS_CFLAGS   += $(NOMD_OS_CFLAGS)
+OS_LIBS     += -lsocket -lnsl -lresolv -lgen -ldl -lc /usr/ucblib/libucb.a
+HAVE_PURIFY  = 0
+
+ifdef DSO_BACKEND
+	DSO_LDOPTS += -h $(DSO_NAME)
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/ReliantUNIX5.4.mk
@@ -0,0 +1,35 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for ReliantUNIX5.4
+#
+include $(CORE_DEPTH)/coreconf/ReliantUNIX.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SCOOS5.0.mk
@@ -0,0 +1,36 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SCO OpenServer 5.0 for x86.
+#
+
+include $(CORE_DEPTH)/coreconf/SCO_SV3.2.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SCO_SV3.2.mk
@@ -0,0 +1,86 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SCO Unix for x86.
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = cc
+
+CC         = cc
+OS_CFLAGS += -b elf -KPIC
+CCC        = g++
+CCC       += -b elf -DPRFSTREAMS_BROKEN -I/usr/local/lib/g++-include
+# CCC      = $(CORE_DEPTH)/build/hcpp
+# CCC     += +.cpp +w
+RANLIB     = /bin/true
+
+#
+# -DSCO_PM - Policy Manager AKA: SCO Licensing
+# -DSCO - Changes to Netscape source (consistent with AIX, LINUX, etc..)
+# -Dsco - Needed for /usr/include/X11/*
+#
+OS_CFLAGS   += -DSCO_SV -DSYSV -D_SVID3 -DHAVE_STRERROR -DSW_THREADS -DSCO_PM -DSCO -Dsco
+#OS_LIBS     += -lpmapi -lsocket -lc
+MKSHLIB      = $(LD)
+MKSHLIB     += $(DSO_LDOPTS)
+XINC         = /usr/include/X11
+MOTIFLIB    += -lXm
+INCLUDES    += -I$(XINC)
+CPU_ARCH     = x86
+GFX_ARCH     = x
+ARCH         = sco
+LOCALE_MAP   = $(CORE_DEPTH)/cmd/xfe/intl/sco.lm
+EN_LOCALE    = C
+DE_LOCALE    = de_DE.ISO8859-1
+FR_LOCALE    = fr_FR.ISO8859-1
+JP_LOCALE    = ja
+SJIS_LOCALE  = ja_JP.SJIS
+KR_LOCALE    = ko_KR.EUC
+CN_LOCALE    = zh
+TW_LOCALE    = zh
+I2_LOCALE    = i2
+LOC_LIB_DIR  = /usr/lib/X11
+NOSUCHFILE   = /solaris-rm-f-sucks
+BSDECHO      = /bin/echo
+
+#
+# These defines are for building unix plugins
+#
+BUILD_UNIX_PLUGINS  = 1
+#DSO_LDOPTS         += -b elf -G -z defs
+DSO_LDOPTS         += -b elf -G
+DSO_LDFLAGS        += -nostdlib -L/lib -L/usr/lib -lXm -lXt -lX11 -lgen
+
+# Used for Java compiler
+EXPORT_FLAGS += -W l,-Bexport
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS4.1.3_U1.mk
@@ -0,0 +1,59 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS4.1
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = cc
+
+INCLUDES += -I/usr/dt/include -I/usr/openwin/include -I/home/motif/usr/include
+
+# SunOS 4 _requires_ that shared libs have a version number.
+# XXX FIXME: Version number should use NSPR_VERSION_NUMBER?
+DLL_SUFFIX = so.1.0
+CC         = gcc
+RANLIB     = ranlib
+CPU_ARCH   = sparc
+
+# Purify doesn't like -MDupdate
+NOMD_OS_CFLAGS += -Wall -Wno-format -DSUNOS4
+OS_CFLAGS      += $(DSO_CFLAGS) $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
+MKSHLIB         = $(LD)
+MKSHLIB        += $(DSO_LDOPTS)
+HAVE_PURIFY     = 1
+NOSUCHFILE      = /solaris-rm-f-sucks
+DSO_LDOPTS      =
+
+# -fPIC generates position-independent code for use in a shared library.
+DSO_CFLAGS += -fPIC
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.3.mk
@@ -0,0 +1,38 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.3
+#
+
+SOL_CFLAGS =
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.4.mk
@@ -0,0 +1,38 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.4
+#
+
+SOL_CFLAGS =
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.4_i86pc.mk
@@ -0,0 +1,68 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Solaris 2.4 on x86
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = cc
+
+ifdef NS_USE_GCC
+	CC		= gcc
+	OS_CFLAGS	+= -Wall -Wno-format
+	CCC		= g++
+	CCC		+= -Wall -Wno-format
+	ASFLAGS		+= -x assembler-with-cpp
+	ifdef NO_MDUPDATE
+		OS_CFLAGS += $(NOMD_OS_CFLAGS)
+	else
+		OS_CFLAGS += $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
+	endif
+else
+	CC		= cc
+	CCC		= CC
+	ASFLAGS		+= -Wa,-P
+	OS_CFLAGS	+= $(NOMD_OS_CFLAGS)
+endif
+
+CPU_ARCH	= x86
+
+MKSHLIB		= $(LD)
+MKSHLIB		+= $(DSO_LDOPTS)
+NOSUCHFILE	= /solx86-rm-f-sucks
+RANLIB		= echo
+
+# for purify
+NOMD_OS_CFLAGS	+= -DSVR4 -DSYSV -D_REENTRANT -DSOLARIS -D__svr4__ -Di386
+
+DSO_LDOPTS	+= -G
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.5.1.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.5.1
+#
+
+SOL_CFLAGS += -D_SVID_GETTOD
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
+
+ifeq ($(OS_RELEASE),5.5.1)
+	OS_DEFINES += -DSOLARIS2_5
+endif
+
+OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.5.1_i86pc.mk
@@ -0,0 +1,45 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Solaris 2.5.1 on x86
+# 
+
+SOL_CFLAGS	= -D_SVID_GETTOD
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
+
+CPU_ARCH		= x86
+OS_DEFINES		+= -Di386
+
+ifeq ($(OS_RELEASE),5.5.1_i86pc)
+	OS_DEFINES += -DSOLARIS2_5
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.5.mk
@@ -0,0 +1,42 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.5
+#
+
+SOL_CFLAGS += -D_SVID_GETTOD
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
+
+ifeq ($(OS_RELEASE),5.5)
+	OS_DEFINES += -DSOLARIS2_5
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.6.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.6
+#
+
+SOL_CFLAGS += -D_SVID_GETTOD
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
+
+ifeq ($(OS_RELEASE),5.6)
+	OS_DEFINES += -DSOLARIS2_6
+endif
+
+OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.6_i86pc.mk
@@ -0,0 +1,45 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for Solaris 2.6 on x86
+# 
+
+SOL_CFLAGS	= -D_SVID_GETTOD
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
+
+CPU_ARCH		= x86
+OS_DEFINES		+= -Di386
+
+ifeq ($(OS_RELEASE),5.6_i86pc)
+	OS_DEFINES += -DSOLARIS2_6
+endif
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.7.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.7
+#
+
+SOL_CFLAGS += -D_SVID_GETTOD
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
+
+ifeq ($(OS_RELEASE),5.7)
+	OS_DEFINES += -DSOLARIS2_7
+endif
+
+OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.8.mk
@@ -0,0 +1,44 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.8
+#
+
+SOL_CFLAGS += -D_SVID_GETTOD
+
+include $(CORE_DEPTH)/coreconf/SunOS5.mk
+
+ifeq ($(OS_RELEASE),5.8)
+	OS_DEFINES += -DSOLARIS2_8
+endif
+
+OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
new file mode 100644
--- /dev/null
+++ b/security/coreconf/SunOS5.mk
@@ -0,0 +1,133 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Config stuff for SunOS5.x
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+ifeq ($(USE_64), 1)
+	ARCHFLAG=-xarch=v9
+	LD=/usr/ccs/bin/ld
+else
+	ARCHFLAG=-xarch=v8
+endif
+
+#
+# Temporary define for the Client; to be removed when binary release is used
+#
+ifdef MOZILLA_CLIENT
+	LOCAL_THREADS_ONLY = 1
+	ifndef NS_USE_NATIVE
+		NS_USE_GCC = 1
+	endif
+endif
+
+#
+# The default implementation strategy for Solaris is classic nspr.
+#
+ifeq ($(USE_PTHREADS),1)
+	IMPL_STRATEGY = _PTH
+else
+	ifeq ($(LOCAL_THREADS_ONLY),1)
+		IMPL_STRATEGY = _LOCAL
+		DEFINES += -D_PR_LOCAL_THREADS_ONLY
+	else
+		DEFINES += -D_PR_GLOBAL_THREADS_ONLY
+	endif
+endif
+
+#
+# Temporary define for the Client; to be removed when binary release is used
+#
+ifdef MOZILLA_CLIENT
+	IMPL_STRATEGY =
+endif
+
+DEFAULT_COMPILER = cc
+
+ifdef NS_USE_GCC
+	CC         = gcc
+	OS_CFLAGS += -Wall -Wno-format
+	CCC        = g++
+	CCC       += -Wall -Wno-format
+	ASFLAGS	  += -x assembler-with-cpp
+	ifdef NO_MDUPDATE
+		OS_CFLAGS += $(NOMD_OS_CFLAGS)
+	else
+		OS_CFLAGS += $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
+	endif
+else
+	CC         = cc
+	CCC        = CC
+	ASFLAGS   += -Wa,-P
+	OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
+	ifndef BUILD_OPT
+		OS_CFLAGS  += -xs
+#	else
+#		OPTIMIZER += -fast
+	endif
+
+endif
+
+INCLUDES   += -I/usr/dt/include -I/usr/openwin/include
+
+RANLIB      = echo
+CPU_ARCH    = sparc
+OS_DEFINES += -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS
+
+ifneq ($(LOCAL_THREADS_ONLY),1)
+	OS_DEFINES		+= -D_REENTRANT
+endif
+
+# Purify doesn't like -MDupdate
+NOMD_OS_CFLAGS += $(DSO_CFLAGS) $(OS_DEFINES) $(SOL_CFLAGS)
+
+MKSHLIB  = $(LD)
+MKSHLIB += $(DSO_LDOPTS)
+
+# ld options:
+# -G: produce a shared object
+# -z defs: no unresolved symbols allowed
+DSO_LDOPTS += -G
+
+# -KPIC generates position independent code for use in shared libraries.
+# (Similarly for -fPIC in case of gcc.)
+ifdef NS_USE_GCC
+	DSO_CFLAGS += -fPIC
+else
+	DSO_CFLAGS += -KPIC
+endif
+
+HAVE_PURIFY  = 1
+NOSUCHFILE   = /solaris-rm-f-sucks
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/UNIX.mk
@@ -0,0 +1,87 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+XP_DEFINE  += -DXP_UNIX
+LIB_SUFFIX  = a
+DLL_SUFFIX  = so
+AR          = ar
+AR         += cr $@
+LDOPTS     += -L$(SOURCE_LIB_DIR)
+
+ifdef BUILD_OPT
+	OPTIMIZER  += -O
+	DEFINES    += -UDEBUG -DNDEBUG
+else
+	OPTIMIZER  += -g
+	DEFINES    += -DDEBUG -UNDEBUG -DDEBUG_$(shell whoami)
+endif
+
+NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
+NSINSTALL      = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
+
+MKDEPEND_DIR    = $(CORE_DEPTH)/coreconf/mkdepend
+MKDEPEND        = $(MKDEPEND_DIR)/$(OBJDIR_NAME)/mkdepend
+MKDEPENDENCIES  = $(OBJDIR_NAME)/depend.mk
+
+####################################################################
+#
+# One can define the makefile variable NSDISTMODE to control
+# how files are published to the 'dist' directory.  If not
+# defined, the default is "install using relative symbolic
+# links".  The two possible values are "copy", which copies files
+# but preserves source mtime, and "absolute_symlink", which
+# installs using absolute symbolic links.  The "absolute_symlink"
+# option requires NFSPWD.
+#   - THIS IS NOT PART OF THE NEW BINARY RELEASE PLAN for 9/30/97
+#   - WE'RE KEEPING IT ONLY FOR BACKWARDS COMPATIBILITY
+####################################################################
+
+ifeq ($(NSDISTMODE),copy)
+	# copy files, but preserve source mtime
+	INSTALL  = $(NSINSTALL)
+	INSTALL += -t
+else
+	ifeq ($(NSDISTMODE),absolute_symlink)
+		# install using absolute symbolic links
+		INSTALL  = $(NSINSTALL)
+		INSTALL += -L `$(NFSPWD)`
+	else
+		# install using relative symbolic links
+		INSTALL  = $(NSINSTALL)
+		INSTALL += -R
+	endif
+endif
+
+define MAKE_OBJDIR
+if test ! -d $(@D); then rm -rf $(@D); $(NSINSTALL) -D $(@D); fi
+endef
new file mode 100644
--- /dev/null
+++ b/security/coreconf/UNIXWARE2.1.mk
@@ -0,0 +1,51 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#
+# Config stuff for SCO Unixware 2.1
+#
+
+include $(CORE_DEPTH)/coreconf/UNIX.mk
+
+DEFAULT_COMPILER = $(CORE_DEPTH)/build/hcc
+
+CC         = $(CORE_DEPTH)/build/hcc
+CCC         = $(CORE_DEPTH)/build/hcpp
+RANLIB      = true
+OS_CFLAGS   = -KPIC -DSVR4 -DSYSV -DUNIXWARE
+MKSHLIB     = $(LD)
+MKSHLIB    += $(DSO_LDOPTS)
+DSO_LDOPTS += -G
+CPU_ARCH    = x86
+ARCH        = sco
+NOSUCHFILE  = /solaris-rm-f-sucks
new file mode 100644
--- /dev/null
+++ b/security/coreconf/WIN16.mk
@@ -0,0 +1,117 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#
+# win16_3.11.mk -- Make configuration for Win16
+#
+# This file configures gmake to build the Win16 variant of
+# NSPR 2.0. This file has the function of two files commonly
+# used on other platforms, for example: winnt.mk and
+# winnt4.0.mk. ... The packaging is easier and there is only
+# one variant of the Win16 target.
+# 
+# Win16 is built using the Watcom C/C++ version 11.0
+# compiler. You gotta set up the compiler first. 
+# The Watcom compiler depends on a few environment
+# variables; these environment variables define where the
+# compiler components are installed; they must be set before
+# running the make.
+# 
+# Notes:
+# OS_CFLAGS is the command line options for the compiler when
+#   building the .DLL object files.
+# OS_EXE_CFLAGS is the command line options for the compiler
+#   when building the .EXE object files; this is for the test
+#   programs.
+# the macro OS_CFLAGS is set to OS_EXE_CFLAGS inside of the
+#   makefile for the pr/tests directory. ... Hack.
+# 
+# 
+# 
+# 
+
+# -- configuration -----------------------------------------
+
+DEFAULT_COMPILER = wcc
+
+CC           = wcc
+CCC          = wcl
+LINK         = wlink
+AR           = wlib
+AR          += -q $@
+RC           = wrc.exe
+RC          += /r /dWIN16=1 /bt=windows
+RANLIB       = echo
+BSDECHO      = echo
+NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
+NSINSTALL      = nsinstall
+INSTALL	     = $(NSINSTALL)
+MAKE_OBJDIR  = mkdir
+MAKE_OBJDIR += $(OBJDIR)
+XP_DEFINE   += -DXP_PC
+LIB_SUFFIX   = lib
+DLL_SUFFIX   = dll
+
+ifdef BUILD_OPT
+	OPTIMIZER   = -oneatx -oh -oi -ei -3 -fpi87 -fp3
+else
+	OPTIMIZER  += -d2 -hc -DDEBUG
+#	OPTIMIZER  += -d2 -hw -DDEBUG
+#	LDFLAGS  += -DEBUG -DEBUGTYPE:CV
+endif
+
+#
+# $(CPU_ARCH) has been commented out so that its contents
+# are not added to the WIN16_?.OBJ names thus expanding
+# them beyond the 8.3 character limit for this platform.
+#
+#CPU_ARCH       = x386
+#
+# added "-s" to avoid dependency on watcom's libs (e.g. on _STK)
+# added "-zt3" for compatibility with MSVC's "/Gt3" option
+#
+OS_CFLAGS     += -ml -3 -bd -zc -zu -bt=windows -s -zt3 -d_X86_ -dWIN16 -d_WINDLL 
+#OS_EXE_CFLAGS += -ml -3 -bt=windows -d_X86_ -dWIN16
+OS_LIB_FLAGS   = -c -iro
+
+# Name of the binary code directories
+OS_DLL_OPTION = CASEEXACT
+OS_DLLFLAGS  =
+OS_LIBS      =
+W16_EXPORTS  = #
+
+#
+#  The following is NOT needed for the NSPR 2.0 library.
+#
+
+OS_CFLAGS += -d_WINDOWS -d_MSC_VER=700
new file mode 100644
--- /dev/null
+++ b/security/coreconf/WIN32.mk
@@ -0,0 +1,100 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#
+# Configuration common to all versions of Windows NT
+# and Windows 95
+#
+
+DEFAULT_COMPILER = cl
+
+CC           = cl
+CCC          = cl
+LINK         = link
+AR           = lib
+AR          += -NOLOGO -OUT:"$@"
+RANLIB       = echo
+BSDECHO      = echo
+
+NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
+NSINSTALL      = nsinstall
+
+MKDEPEND_DIR    = $(CORE_DEPTH)/coreconf/mkdepend
+MKDEPEND        = $(MKDEPEND_DIR)/$(OBJDIR_NAME)/mkdepend.exe
+# Note: MKDEPENDENCIES __MUST__ be a relative pathname, not absolute.
+# If it is absolute, gmake will crash unless the named file exists.
+MKDEPENDENCIES  = $(OBJDIR_NAME)/depend.mk
+
+INSTALL      = $(NSINSTALL)
+MAKE_OBJDIR  = mkdir
+MAKE_OBJDIR += $(OBJDIR)
+RC           = rc.exe
+GARBAGE     += $(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb
+XP_DEFINE   += -DXP_PC
+LIB_SUFFIX   = lib
+DLL_SUFFIX   = dll
+
+ifdef BUILD_OPT
+	OS_CFLAGS  += -MD
+	OPTIMIZER  += -O2
+	DEFINES    += -UDEBUG -U_DEBUG -DNDEBUG
+	DLLFLAGS   += -OUT:"$@"
+else
+	#
+	# Define USE_DEBUG_RTL if you want to use the debug runtime library
+	# (RTL) in the debug build
+	#
+	ifdef USE_DEBUG_RTL
+		OS_CFLAGS += -MDd
+	else
+		OS_CFLAGS += -MD
+	endif
+	OPTIMIZER  += -Od -Z7
+	#OPTIMIZER += -Zi -Fd$(OBJDIR)/ -Od
+	DEFINES    += -DDEBUG -D_DEBUG -UNDEBUG -DDEBUG_$(USERNAME)
+	DLLFLAGS   += -DEBUG -DEBUGTYPE:CV -OUT:"$@"
+	LDFLAGS    += -DEBUG -DEBUGTYPE:CV
+endif
+
+DEFINES += -DWIN32
+
+#
+#  The following is NOT needed for the NSPR 2.0 library.
+#
+
+DEFINES += -D_WINDOWS
+
+# override default, which is ASFLAGS = CFLAGS
+AS	= ml.exe
+ASFLAGS = -Cp -Sn -Zi -coff $(INCLUDES)
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/WIN954.0.mk
@@ -0,0 +1,63 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#
+# Config stuff for WIN95
+#
+# This makefile defines the following variables:
+# CPU_ARCH, OS_CFLAGS, and OS_DLLFLAGS.
+# PROCESSOR is an internal variable.
+
+include $(CORE_DEPTH)/coreconf/WIN32.mk
+
+PROCESSOR := $(shell uname -p)
+ifeq ($(PROCESSOR), I386)
+	CPU_ARCH   = x386
+	OS_CFLAGS += -W3 -nologo -D_X86_
+else 
+	ifeq ($(PROCESSOR), MIPS)
+		CPU_ARCH    = MIPS
+		#OS_CFLAGS += -W3 -nologo -D_MIPS_
+		OS_CFLAGS  += -W3 -nologo
+	else 
+		ifeq ($(PROCESSOR), ALPHA)
+			CPU_ARCH  = ALPHA
+			OS_CFLAGS += -W3 -nologo -D_ALPHA_=1
+		else 
+			CPU_ARCH  = processor_is_undefined
+		endif
+	endif
+endif
+
+OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE
+DEFINES += -DWIN95
new file mode 100644
--- /dev/null
+++ b/security/coreconf/WINNT3.51.mk
@@ -0,0 +1,70 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#
+# Config stuff for WINNT 3.51
+#
+# This makefile defines the following variables:
+# CPU_ARCH, OS_CFLAGS, and OS_DLLFLAGS.
+# It has the following internal variables:
+# OS_PROC_CFLAGS and OS_WIN_CFLAGS.
+
+include $(CORE_DEPTH)/coreconf/WIN32.mk
+
+PROCESSOR := $(shell uname -p)
+ifeq ($(PROCESSOR), I386)
+	CPU_ARCH        = x386
+	OS_PROC_CFLAGS += -D_X86_
+else 
+	ifeq ($(PROCESSOR), MIPS)
+		CPU_ARCH        = MIPS
+		OS_PROC_CFLAGS += -D_MIPS_
+	else 
+		ifeq ($(PROCESSOR), ALPHA)
+			CPU_ARCH        = ALPHA
+			OS_PROC_CFLAGS += -D_ALPHA_
+		else 
+			CPU_ARCH  = processor_is_undefined
+		endif
+	endif
+endif
+
+OS_WIN_CFLAGS += -W3
+OS_CFLAGS     += -nologo $(OS_WIN_CFLAGS) $(OS_PROC_CFLAGS)
+#OS_DLLFLAGS  += -nologo -DLL -PDB:NONE -SUBSYSTEM:WINDOWS
+OS_DLLFLAGS   += -nologo -DLL -PDB:NONE -SUBSYSTEM:WINDOWS
+#
+# Win NT needs -GT so that fibers can work
+#
+OS_CFLAGS     += -GT
+OS_CFLAGS     += -DWINNT
new file mode 100644
--- /dev/null
+++ b/security/coreconf/WINNT4.0.mk
@@ -0,0 +1,69 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#
+# Config stuff for WINNT 4.0
+#
+# This makefile defines the following variables:
+# CPU_ARCH, OS_CFLAGS, and OS_DLLFLAGS.
+# PROCESSOR is an internal variable.
+
+include $(CORE_DEPTH)/coreconf/WIN32.mk
+
+PROCESSOR := $(shell uname -p)
+ifeq ($(PROCESSOR), I386)
+	CPU_ARCH   = x386
+	OS_CFLAGS += -W3 -nologo -D_X86_
+else 
+	ifeq ($(PROCESSOR), MIPS)
+		CPU_ARCH  = MIPS
+		#OS_CFLAGS += -W3 -nologo -D_MIPS_
+		OS_CFLAGS += -W3 -nologo
+	else 
+		ifeq ($(PROCESSOR), ALPHA)
+			CPU_ARCH  = ALPHA
+			OS_CFLAGS += -W3 -nologo -D_ALPHA_=1
+		else 
+			CPU_ARCH  = processor_is_undefined
+		endif
+	endif
+endif
+
+OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE
+#
+# Win NT needs -GT so that fibers can work
+#
+OS_CFLAGS += -GT
+OS_CFLAGS += -DWINNT
+
+NSPR31_LIB_PREFIX = lib
new file mode 100644
--- /dev/null
+++ b/security/coreconf/arch.mk
@@ -0,0 +1,292 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+# Master "Core Components" macros for getting the OS architecture     #
+#######################################################################
+
+#
+# Macros for getting the OS architecture
+#
+
+ifeq ($(USE_64), 1)
+	64BIT_TAG=_64
+else
+	64BIT_TAG=
+endif
+
+OS_ARCH := $(subst /,_,$(shell uname -s))
+
+#
+# Attempt to differentiate between sparc and x86 Solaris
+#
+
+OS_TEST := $(shell uname -m)
+ifeq ($(OS_TEST),i86pc)
+	OS_RELEASE := $(shell uname -r)_$(OS_TEST)
+else
+	OS_RELEASE := $(shell uname -r)
+endif
+
+#
+# Force the IRIX64 machines to use IRIX.
+#
+
+ifeq ($(OS_ARCH),IRIX64)
+	OS_ARCH = IRIX
+endif
+
+#
+# Force the newer BSDI versions to use the old arch name.
+#
+
+ifeq ($(OS_ARCH),BSD_OS)
+	OS_ARCH = BSD_386
+endif
+
+#
+# Catch Deterim if SVR4 is NCR or UNIXWARE
+#
+
+ifeq ($(OS_ARCH),UNIX_SV)
+	ifneq ($(findstring NCR, $(shell grep NCR /etc/bcheckrc | head -1 )),)
+		OS_ARCH = NCR
+	else
+		# Make UnixWare something human readable
+		OS_ARCH = UNIXWARE
+	endif
+
+	# Get the OS release number, not 4.2
+	OS_RELEASE := $(shell uname -v)
+endif
+
+ifeq ($(OS_ARCH),UNIX_System_V)
+	OS_ARCH	= NEC
+endif
+
+ifeq ($(OS_ARCH),AIX)
+	OS_RELEASE := $(shell uname -v).$(shell uname -r)
+endif
+
+#
+# Distinguish between OSF1 V4.0B and V4.0D
+#
+
+ifeq ($(OS_ARCH)$(OS_RELEASE),OSF1V4.0)
+	OS_VERSION := $(shell uname -v)
+	ifeq ($(OS_VERSION),564)
+		OS_RELEASE := V4.0B
+	endif
+	ifeq ($(OS_VERSION),878)
+		OS_RELEASE := V4.0D
+	endif
+endif
+
+#
+# SINIX changes name to ReliantUNIX with 5.43
+#
+
+ifeq ($(OS_ARCH),ReliantUNIX-N)
+	OS_ARCH    = ReliantUNIX
+	OS_RELEASE = 5.4
+endif
+
+ifeq ($(OS_ARCH),SINIX-N)
+	OS_ARCH    = ReliantUNIX
+	OS_RELEASE = 5.4
+endif
+
+#
+# Handle FreeBSD 2.2-STABLE and Linux 2.0.30-osfmach3
+#
+
+ifeq (,$(filter-out Linux FreeBSD,$(OS_ARCH)))
+OS_RELEASE	:= $(shell echo $(OS_RELEASE) | sed 's/-.*//')
+endif
+
+ifeq ($(OS_ARCH),Linux)
+	OS_RELEASE := $(basename $(OS_RELEASE))
+endif
+
+#######################################################################
+# Master "Core Components" macros for getting the OS target           #
+#######################################################################
+
+#
+# Note: OS_TARGET should be specified on the command line for gmake.
+# When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
+# The difference between the Win95 target and the WinNT target is that
+# the WinNT target uses Windows NT specific features not available
+# in Windows 95. The Win95 target will run on Windows NT, but (supposedly)
+# at lesser performance (the Win95 target uses threads; the WinNT target
+# uses fibers).
+#
+# When OS_TARGET=WIN16 is specified, then a Windows 3.11 (16bit) target
+# is built. See: win16_3.11.mk for lots more about the Win16 target.
+#
+# If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
+# cross-compilation.
+#
+
+#
+# The following hack allows one to build on a WIN95 machine (as if
+# s/he were cross-compiling on a WINNT host for a WIN95 target).
+# It also accomodates for MKS's uname.exe.  If you never intend
+# to do development on a WIN95 machine, you don't need this. It doesn't
+# work any more anyway.
+#
+ifeq ($(OS_ARCH),WIN95)
+	OS_ARCH   = WINNT
+	OS_TARGET = WIN95
+endif
+ifeq ($(OS_ARCH),Windows_95)
+	OS_ARCH   = Windows_NT
+	OS_TARGET = WIN95
+endif
+
+#
+# On WIN32, we also define the variable CPU_ARCH.
+#
+
+ifeq ($(OS_ARCH), WINNT)
+	CPU_ARCH := $(shell uname -p)
+	ifeq ($(CPU_ARCH),I386)
+		CPU_ARCH = x386
+	endif
+else
+#
+# If uname -s returns "Windows_NT", we assume that we are using
+# the uname.exe in MKS toolkit.
+#
+# The -r option of MKS uname only returns the major version number.
+# So we need to use its -v option to get the minor version number.
+# Moreover, it doesn't have the -p option, so we need to use uname -m.
+#
+ifeq ($(OS_ARCH), Windows_NT)
+	OS_ARCH = WINNT
+	OS_MINOR_RELEASE := $(shell uname -v)
+	ifeq ($(OS_MINOR_RELEASE),00)
+		OS_MINOR_RELEASE = 0
+	endif
+	OS_RELEASE = $(OS_RELEASE).$(OS_MINOR_RELEASE)
+	CPU_ARCH := $(shell uname -m)
+	#
+	# MKS's uname -m returns "586" on a Pentium machine.
+	#
+	ifneq (,$(findstring 86,$(CPU_ARCH)))
+		CPU_ARCH = x386
+	endif
+endif
+endif
+
+ifndef OS_TARGET
+	OS_TARGET = $(OS_ARCH)
+endif
+
+ifeq ($(OS_TARGET), WIN95)
+	OS_RELEASE = 4.0
+endif
+
+ifeq ($(OS_TARGET), WIN16)
+	OS_RELEASE =
+#	OS_RELEASE = _3.11
+endif
+
+#
+# This variable is used to get OS_CONFIG.mk.
+#
+
+OS_CONFIG = $(OS_TARGET)$(OS_RELEASE)
+
+#
+# OBJDIR_TAG depends on the predefined variable BUILD_OPT,
+# to distinguish between debug and release builds.
+#
+
+ifdef BUILD_OPT
+	ifeq ($(OS_TARGET),WIN16)
+		OBJDIR_TAG = _O
+	else
+		OBJDIR_TAG = $(64BIT_TAG)_OPT
+	endif
+else
+	ifdef BUILD_IDG
+		ifeq ($(OS_TARGET),WIN16)
+			OBJDIR_TAG = _I
+		else
+			OBJDIR_TAG = $(64BIT_TAG)_IDG
+		endif
+	else
+		ifeq ($(OS_TARGET),WIN16)
+			OBJDIR_TAG = _D
+		else
+			OBJDIR_TAG = $(64BIT_TAG)_DBG
+		endif
+	endif
+endif
+
+#
+# The following flags are defined in the individual $(OS_CONFIG).mk
+# files.
+#
+# CPU_TAG is defined if the CPU is not the most common CPU.
+# COMPILER_TAG is defined if the compiler is not the native compiler.
+# IMPL_STRATEGY may be defined too.
+#
+
+# Name of the binary code directories
+ifeq ($(OS_ARCH), WINNT)
+	ifeq ($(CPU_ARCH),x386)
+		OBJDIR_NAME = $(OS_CONFIG)$(OBJDIR_TAG).OBJ
+	else
+		OBJDIR_NAME = $(OS_CONFIG)$(CPU_ARCH)$(OBJDIR_TAG).OBJ
+	endif
+else
+endif
+
+OBJDIR_NAME = $(OS_CONFIG)$(CPU_TAG)$(COMPILER_TAG)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJ
+
+ifeq ($(OS_ARCH), WINNT)
+ifneq ($(OS_TARGET),WIN16)
+ifndef BUILD_OPT
+#
+# Define USE_DEBUG_RTL if you want to use the debug runtime library
+# (RTL) in the debug build
+#
+ifdef USE_DEBUG_RTL
+	OBJDIR_NAME = $(OS_CONFIG)$(CPU_TAG)$(COMPILER_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJD
+endif
+endif
+endif
+endif
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/command.mk
@@ -0,0 +1,55 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+# Master "Core Components" default command macros;                    #
+# can be overridden in <arch>.mk                                      #
+#######################################################################
+
+AS            = $(CC)
+ASFLAGS      += $(CFLAGS)
+CCF           = $(CC) $(CFLAGS)
+PURIFY        = purify $(PURIFYOPTIONS)
+LINK_DLL      = $(LINK) $(OS_DLLFLAGS) $(DLLFLAGS)
+LINK_EXE      = $(LINK) $(OS_LFLAGS) $(LFLAGS)
+NFSPWD        = $(NSINSTALL_DIR)/nfspwd
+CFLAGS       += $(OPTIMIZER) $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \
+		$(XCFLAGS)
+RANLIB        = echo
+TAR           = /bin/tar
+#
+# For purify
+#
+NOMD_CFLAGS  += $(OPTIMIZER) $(NOMD_OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \
+		$(XCFLAGS)
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/config.mk
@@ -0,0 +1,142 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+# Configuration information for building in the "Core Components" source module
+#
+
+#######################################################################
+# [1.0] Master "Core Components" source and release <architecture>    #
+#       tags                                                          #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/arch.mk
+
+#######################################################################
+# [2.0] Master "Core Components" default command macros               #
+#       (NOTE: may be overridden in $(OS_CONFIG).mk)                  #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/command.mk
+
+#######################################################################
+# [3.0] Master "Core Components" <architecture>-specific macros       #
+#       (dependent upon <architecture> tags)                          #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/$(OS_CONFIG).mk
+
+#######################################################################
+# [4.0] Master "Core Components" source and release <platform> tags   #
+#       (dependent upon <architecture> tags)                          #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/platform.mk
+
+#######################################################################
+# [5.0] Master "Core Components" release <tree> tags                  #
+#       (dependent upon <architecture> tags)                          #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/tree.mk
+
+#######################################################################
+# [6.0] Master "Core Components" source and release <component> tags  #
+#       NOTE:  A component is also called a module or a subsystem.    #
+#       (dependent upon $(MODULE) being defined on the                #
+#        command line, as an environment variable, or in individual   #
+#        makefiles, or more appropriately, manifest.mn)               #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/module.mk
+
+#######################################################################
+# [7.0] Master "Core Components" release <version> tags               #
+#       (dependent upon $(MODULE) being defined on the                #
+#        command line, as an environment variable, or in individual   #
+#        makefiles, or more appropriately, manifest.mn)               #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/version.mk
+
+#######################################################################
+# [8.0] Master "Core Components" macros to figure out                 #
+#       binary code location                                          #
+#       (dependent upon <platform> tags)                              #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/location.mk
+
+#######################################################################
+# [9.0] Master "Core Components" <component>-specific source path     #
+#       (dependent upon <user_source_tree>, <source_component>,       #
+#        <version>, and <platform> tags)                              #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/source.mk
+
+#######################################################################
+# [10.0] Master "Core Components" include switch for support header   #
+#        files                                                        #
+#        (dependent upon <tree>, <component>, <version>,              #
+#         and <platform> tags)                                        #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/headers.mk
+
+#######################################################################
+# [11.0] Master "Core Components" for computing program prefixes      #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/prefix.mk
+
+#######################################################################
+# [12.0] Master "Core Components" for computing program suffixes      #
+#        (dependent upon <architecture> tags)                         #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/suffix.mk
+
+#######################################################################
+# [13.0] Master "Core Components" for defining JDK                    #
+#        (dependent upon <architecture>, <source>, and <suffix>  tags)#
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/jdk.mk
+
+#######################################################################
+# [14.0] Master "Core Components" rule set                            #
+#        (should always be the last file included by config.mk)       #
+#######################################################################
+
+include $(CORE_DEPTH)/coreconf/ruleset.mk
+-include $(MKDEPENDENCIES)
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/coreconf.pl
@@ -0,0 +1,156 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+sub recursive_copy {
+    local($fromdir);
+    local($todir);
+    local(@dirlist);
+    $fromdir = shift;
+    $todir = shift;
+  
+    print STDERR "recursive copy called with $fromdir, $todir\n";
+
+#remove any trailing slashes.
+    $fromdir =~ s/\/$//;
+    $todir =~ s/\/$//;
+    
+    opendir(DIR, $fromdir);
+    @dirlist = readdir DIR;
+    close DIR;
+
+
+    foreach $file (@dirlist) {
+	if  (! (($file eq "." ) || ($file eq "..") )) {
+	    
+	    if (-d "$fromdir/$file") {
+		print STDERR "handling directory $todir/$file\n";
+		&rec_mkdir("$todir/$file");
+		&recursive_copy("$fromdir/$file","$todir/$file");
+	    }
+	    else {
+		print STDERR "handling file $fromdir/$file\n";
+		&my_copy("$fromdir/$file","$todir/$file");
+	    }
+	}
+    }
+}
+
+sub parse_argv {
+
+#    print STDERR "Parsing Variables\n";
+
+    foreach $q ( @ARGV ) {
+	if (! ($q =~ /=/)) {
+	    $var{$lastassigned} .= " $q";
+	}
+	else {
+	   $q =~ /^([^=]*)=(.*)/;
+	   $left = $1;
+	   $right = $2;
+	
+	   $right =~ s/ *$//;
+	   $var{$left} = $right;
+
+	   $lastassigned = $left;
+	
+	   }
+	print STDERR "Assigned $lastassigned = $var{$lastassigned}\n";
+    }
+}
+
+
+# usage: &my_copy("dir/fromfile","dir2/tofile");
+# do a 'copy' - files only, 'to' MUST be a filename, not a directory.
+
+# fix this to be able to use copy on win nt.
+
+sub my_copy {
+    local($from);
+    local($to);
+    local($cpcmd);
+
+    $from = shift;
+    $to = shift;
+
+    if ( ! defined $var{OS_ARCH}) {
+	die "OS_ARCH not defined!";
+    }
+    else {
+	if ($var{OS_ARCH} eq 'WINNT') {
+	    $cpcmd = 'cp';
+	    	}
+	else {
+	    $cpcmd = 'cp';
+	    }
+	print STDERR "COPYING: $cpcmd $from $to\n";
+	system("$cpcmd $from $to");
+    }
+}
+
+
+sub old_my_copy {
+    local($from);
+    local($to);
+
+    $from = shift;
+    $to = shift;
+    open(FIN, "<$from") || die("Can't read from file $from\n");
+    if ( ! open(FOUT,">$to")) {
+	close FIN;
+	die "Can't write to file $to\n";
+    }
+    while (read(FIN, $buf, 100000)) {
+	print FOUT $buf;
+    }
+    close (FIN);
+    close (FOUT);
+}
+
+sub rec_mkdir {
+    local($arg);
+    local($t);
+    local($q);
+
+    $arg = shift;
+    $t = "";
+    foreach $q (split(/\//,$arg)) {
+	$t .= $q;
+	if (! ($t =~ /\.\.$/)) {
+	    if ($t =~ /./) {
+		mkdir($t,0775);
+	    }
+	}
+	$t.= '/';
+    }
+}
+
+1;
new file mode 100755
--- /dev/null
+++ b/security/coreconf/cpdist.pl
@@ -0,0 +1,195 @@
+#! /usr/local/bin/perl
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+require('coreconf.pl');
+
+#######-- read in variables on command line into %var
+
+&parse_argv;
+ 
+### do the copy
+
+print STDERR "RELEASE TREE / MODULE =  $var{RELEASE_TREE} $var{MODULE}\n";
+
+
+
+# 1
+if ($var{RELEASE} eq "") { exit; } # Can't do release here, so exit.
+
+# 2
+#if (! ($var{RELEASE} =~ /\//)) {   # if no specific version is specified in RELEASE variable
+#    $component = $var{RELEASE};
+#}
+#else {  # if a subcomponent/version is given in the RELEASE variable
+#        $var{RELEASE} =~ m|^([^/]*)/|;  
+#	$component = $1;           # everything before the first slash;
+#    }
+
+# 3
+$path = $var{RELEASE};
+
+
+# 4
+# find out what directory we would create for 'today'
+
+$year = (localtime)[5] + 1900;
+$month = (localtime)[4] + 1;
+$day = (localtime)[3];
+$today = sprintf( "%d%02d%02d", $year, $month, $day );
+
+# 5
+# if version is null, then set the version to today.
+if ($var{"RELEASE_VERSION"} eq "") {
+    $var{"RELEASE_VERSION"} = $today;
+}
+
+#6
+$version = $var{"RELEASE_VERSION"};  # set RELEASE_VERSION to passed in variable
+
+#7
+# if version is today, then we will want to make a 'current' link.
+
+if ($version eq $today) {
+    $create_current = 1;
+}
+
+#8
+# version can be a) passed in value from command line, b) value in manifest.mn
+# or c) computed value such as '19970909'
+
+
+$dir = "$var{'RELEASE_TREE'}/$path";
+
+#9
+if (! (-e "$dir/$version" && -d "$dir/$version")) {
+    print "making dir $dir \n";
+    &rec_mkdir("$dir/$version");
+}
+
+
+
+print "version = $version\n";
+print "path = $path\n";
+print "var{release_tree} = $var{'RELEASE_TREE'}\n";
+print "dir = $dir   = RELEASE_TREE/path\n";
+
+
+#10
+if ($create_current == 1) {
+
+# unlinking and linking always occurs, even if the link is correct
+    print "unlinking $dir/current\n";
+    unlink("$dir/current");
+    
+    print "putting version number $today into 'current' file..";
+
+    open(FILE,">$dir/current") || die " couldn't open current\n";
+    print FILE "$today\n";
+    close(FILE);
+    print " ..done\n"
+    
+}
+
+&rec_mkdir("$dir/$version/$var{'RELEASE_MD_DIR'}");
+&rec_mkdir("$dir/$version/$var{'RELEASE_XP_DIR'}");
+
+
+
+
+foreach $jarfile (split(/ /,$var{FILES}) ) {
+    print STDERR "---------------------------------------------\n";
+    
+    $jarinfo = $var{$jarfile};
+ 
+    ($jardir,$jaropts) = split(/\|/,$jarinfo);
+ 
+    if ($jaropts =~ /f/) {
+      print STDERR "Copying files $jardir....\n";
+    }
+    else {
+      print STDERR "Copying jar file $jarfile....\n";
+    }
+    
+    print "jaropts = $jaropts\n";
+    
+    if ($jaropts =~ /m/) {
+      $destdir = $var{"RELEASE_MD_DIR"};
+      print "found m, using MD dir $destdir\n";
+    }
+    elsif ($jaropts =~ /x/) {
+      $destdir = $var{"RELEASE_XP_DIR"};
+      print "found x, using XP dir $destdir\n";
+    }
+    else {
+      die "Error: must specify m or x in jar options in $jarinfo line\n";
+    }
+    
+    
+    $distdir = "$dir/$version/$destdir";
+    
+
+
+    if ($jaropts =~ /f/) {
+
+      print "splitting: \"$jardir\"\n";
+      for $srcfile (split(/ /,$jardir)) {
+
+#if srcfile has a slash
+	if ($srcfile =~ m|/|) {
+#pull out everything before the last slash into $1
+	  $srcfile =~ m|(.*)/|;
+	  $distsubdir = "/$1";
+	  print "making dir $distdir$distsubdir\n";
+	  &rec_mkdir("$distdir$distsubdir");
+	}
+	print "copy: from $srcfile\n";
+	print "      to   $distdir$distsubdir\n";
+	$srcprefix = "";
+	if ($jaropts =~/m/) {
+	  $srcprefix = "$var{'PLATFORM'}/";
+	}
+	system("cp $srcprefix$srcfile $distdir$distsubdir");
+      }
+    }
+    else {
+      $srcfile = "$var{SOURCE_RELEASE_PREFIX}/$jardir/$jarfile";
+      
+      print "copy: from $srcfile\n";
+      print "      to   $distdir\n";
+      
+      system("cp $srcfile $distdir");
+      
+    }
+    
+  }
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/headers.mk
@@ -0,0 +1,54 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+# Master "Core Components" include switch for support header files    #
+#######################################################################
+
+#
+#  Always append source-side machine-dependent (md) and cross-platform
+#  (xp) include paths
+#
+
+INCLUDES  += -I$(SOURCE_MDHEADERS_DIR) 
+
+ifneq ($(OS_TARGET),WIN16)
+INCLUDES  += -I$(SOURCE_XPHEADERS_DIR)
+endif
+
+#
+#  Only append source-side private cross-platform include paths for
+#  sectools
+#
+
+INCLUDES += -I$(SOURCE_XPPRIVATE_DIR)
new file mode 100755
--- /dev/null
+++ b/security/coreconf/import.pl
@@ -0,0 +1,218 @@
+#! /usr/local/bin/perl
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+print STDERR "import.pl\n";
+
+require('coreconf.pl');
+
+
+$returncode =0;
+
+
+#######-- read in variables on command line into %var
+
+$var{ZIP} = "zip";
+$var{UNZIP} = "unzip -o";
+
+&parse_argv;
+
+if (! ($var{IMPORTS} =~ /\w/)) {
+    print STDERR "nothing to import\n";
+}
+
+######-- Do the import!
+
+foreach $import (split(/ /,$var{IMPORTS}) ) {
+
+    print STDERR "\n\nIMPORTING .... $import\n-----------------------------\n";
+
+
+# if a specific version specified in IMPORT variable
+# (if $import has a slash in it)
+
+    if ($import =~ /\//) {
+        # $component=everything before the first slash of $import
+
+	$import =~ m|^([^/]*)/|; 
+	$component = $1;
+
+	$import =~ m|^(.*)/([^/]*)$|;
+
+	# $path=everything before the last slash of $import
+	$path = $1;
+
+	# $version=everything after the last slash of $import
+	$version = $2;
+
+	if ($var{VERSION} ne "current") {
+	    $version = $var{VERSION};
+	}
+    }
+    else {
+	$component = $import;
+	$path = $import;
+	$version = $var{VERSION};
+    }
+
+    $releasejardir = "$var{RELEASE_TREE}/$path";
+    if ($version eq "current") {
+	print STDERR "Current version specified. Reading 'current' file ... \n";
+	
+	open(CURRENT,"$releasejardir/current") || die "NO CURRENT FILE\n";
+	$version = <CURRENT>;
+	$version =~ s/(\r?\n)*$//; # remove any trailing [CR/]LF's
+	close(CURRENT);
+	print STDERR "Using version $version\n";
+	if ( $version eq "") {
+	    die "Current version file empty. Stopping\n";
+	}
+    }
+    
+    $releasejardir = "$releasejardir/$version";
+    if ( ! -d $releasejardir) {
+	die "$releasejardir doesn't exist (Invalid Version?)\n";
+    }
+    foreach $jarfile (split(/ /,$var{FILES})) {
+
+	($relpath,$distpath,$options) = split(/\|/, $var{$jarfile});
+
+	if ($var{'OVERRIDE_IMPORT_CHECK'} eq 'YES') {
+	    $options =~ s/v//g;
+	}
+
+	if ( $relpath ne "") { $releasejarpathname = "$releasejardir/$relpath";}
+	else { $releasejarpathname = $releasejardir; }
+
+# If a component doesn't have IDG versions, import the DBG ones
+    if( ! -e "$releasejarpathname/$jarfile" ) {
+        if( $relpath =~ /IDG\.OBJ$/ ) {
+            $relpath =~ s/IDG.OBJ/DBG.OBJ/;
+            $releasejarpathname = "$releasejardir/$relpath";
+        } elsif( $relpath =~ /IDG\.OBJD$/ ) {
+            $relpath =~ s/IDG.OBJD/DBG.OBJD/;
+            $releasejarpathname = "$releasejardir/$relpath";
+        }
+    }
+
+	if (-e "$releasejarpathname/$jarfile") {
+	    print STDERR "\nWorking on jarfile: $jarfile\n";
+	    
+	    if ($distpath =~ m|/$|) {
+		$distpathname = "$distpath$component";
+	    }
+	    else {
+		$distpathname = "$distpath"; 
+	    }
+	  
+	  
+#the block below is used to determine whether or not the xp headers have
+#already been imported for this component
+
+	    $doimport = 1;
+	  if ($options =~ /v/) {   # if we should check the imported version
+	      print STDERR "Checking if version file exists $distpathname/version\n";
+	      if (-e "$distpathname/version") {
+		  open( VFILE, "<$distpathname/version") ||
+		      die "Cannot open $distpathname/version for reading. Permissions?\n";
+		  $importversion = <VFILE>;
+		  close (VFILE);
+		  $importversion =~ s/\r?\n$//;   # Strip off any trailing CR/LF
+		  if ($version eq $importversion) {
+		      print STDERR "$distpathname version '$importversion' already imported. Skipping...\n";
+		      $doimport =0;
+		  }
+	      }
+	  }
+	  
+	  if ($doimport == 1) {
+	      if (! -d "$distpathname") {
+		  &rec_mkdir("$distpathname");
+	      }
+	      # delete the stuff in there already.
+	      # (this should really be recursive delete.)
+	      
+	      if ($options =~ /v/) {
+		  $remheader = "\nREMOVING files in '$distpathname/' :";
+		  opendir(DIR,"$distpathname") ||
+		      die ("Cannot read directory $distpathname\n");
+		  @filelist = readdir(DIR);
+		  closedir(DIR);
+		  foreach $file ( @filelist ) {
+		      if (! ($file =~ m!/.?.$!) ) {
+			  if (! (-d $file)) {
+			      $file =~ m!([^/]*)$!;
+			      print STDERR "$remheader $1";
+			      $remheader = " ";
+			      unlink "$distpathname/$file";
+			  }
+		      }
+		  }
+	      }
+
+
+	      print STDERR "\n\n";
+
+	      print STDERR "\nExtracting jarfile '$jarfile' to local directory $distpathname/\n";
+	      
+	      print STDERR "$var{UNZIP} $releasejarpathname/$jarfile -d $distpathname\n";
+	      system("$var{UNZIP} $releasejarpathname/$jarfile -d $distpathname");
+	      
+	      $r = $?;
+
+	      if ($options =~ /v/) {
+		  if ($r == 0) {
+		      unlink ("$distpathname/version");
+		      if (open(VFILE,">$distpathname/version")) {
+			  print VFILE "$version\n";
+			  close(VFILE);
+		      }
+		  }
+		  else {
+		      print STDERR "Could not create '$distpathname/version'. Permissions?\n";
+		      $returncode ++;
+		  }
+	      }
+	  }  # if (doimport)
+	} # if (-e releasejarpathname/jarfile)
+    } # foreach jarfile)
+} # foreach IMPORT
+
+
+
+exit($returncode);
+
+
+
+
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/jdk.mk
@@ -0,0 +1,652 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+ifdef NS_USE_JDK
+#######################################################################
+# [1] Define preliminary JDK "Core Components" toolset options        #
+#######################################################################
+
+# set default JDK java threading model
+ifeq ($(JDK_THREADING_MODEL),)
+	JDK_THREADING_MODEL     = native_threads
+# no such thing as -native flag
+	JDK_THREADING_MODEL_OPT =
+endif
+
+#######################################################################
+# [2] Define platform-independent JDK "Core Components" options       #
+#######################################################################
+
+# set default location of the java classes repository
+ifeq ($(JAVA_DESTPATH),)
+ifdef BUILD_OPT
+	JAVA_DESTPATH  = $(SOURCE_CLASSES_DIR)
+else
+	JAVA_DESTPATH  = $(SOURCE_CLASSES_DBG_DIR)
+endif
+endif
+
+# set default location of the package under the java classes repository
+# note that this overrides the default package value in ruleset.mk
+ifeq ($(PACKAGE),)
+	PACKAGE = .
+endif
+
+# set default location of the java source code repository
+ifeq ($(JAVA_SOURCEPATH),)
+	JAVA_SOURCEPATH	= .
+endif
+
+# add JNI directory to default include search path
+ifneq ($(JNI_GEN),)
+	ifdef NSBUILDROOT
+		INCLUDES += -I$(JNI_GEN_DIR) -I$(SOURCE_XP_DIR)
+	else
+		INCLUDES += -I$(JNI_GEN_DIR)
+	endif
+endif
+
+#######################################################################
+# [3] Define platform-dependent JDK "Core Components" options         #
+#######################################################################
+
+# set [Microsoft Windows] platforms
+ifeq ($(OS_ARCH), WINNT)
+	# (1) specify "location" information
+	ifeq ($(JAVA_HOME),)
+		JAVA_HOME = //iridium/components/jdk/1.2.2_01/WINNT
+	endif
+
+	JAVA_CLASSES = $(JAVA_HOME)/lib/classes.zip
+
+	ifeq ($(JRE_HOME),)
+		JRE_HOME = $(JAVA_HOME)
+		JRE_CLASSES = $(JAVA_CLASSES)
+	else
+		ifeq ($(JRE_CLASSES),)
+			JRE_CLASSES = $(JRE_HOME)/lib/classes.zip
+		endif
+	endif
+
+	PATH_SEPARATOR = ;
+
+	# (2) specify "header" information
+	JAVA_ARCH = win32
+
+	INCLUDES += -I$(JAVA_HOME)/include
+	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
+
+	# (3) specify "linker" information
+	JAVA_CPU =
+
+	JAVA_LIBDIR = lib
+
+	JAVA_CLIBS =
+
+	JAVA_LIBS  = -LIBPATH:$(JAVA_HOME)/$(JAVA_LIBDIR) jvm.lib
+	JAVA_LIBS += $(JAVA_CLIBS)
+
+	LDFLAGS += $(JAVA_LIBS)
+
+	#     currently, disable JIT option on this platform
+	JDK_JIT_OPT = -nojit
+endif
+
+# set [Sun Solaris] platforms
+ifeq ($(OS_ARCH), SunOS)
+	# (1) specify "location" information
+	ifeq ($(JAVA_HOME),)
+		JAVA_HOME = /share/builds/components/jdk/1.2.2_01/SunOS
+	endif
+
+	JAVA_CLASSES = $(JAVA_HOME)/lib/classes.zip
+
+	ifeq ($(JRE_HOME),)
+		JRE_HOME = $(JAVA_HOME)
+		JRE_CLASSES = $(JAVA_CLASSES)
+	else
+		ifeq ($(JRE_CLASSES),)
+			JRE_CLASSES = $(JRE_HOME)/lib/classes.zip
+		endif
+	endif
+
+	PATH_SEPARATOR = :
+
+	# (2) specify "header" information
+	JAVA_ARCH = solaris
+
+	INCLUDES += -I$(JAVA_HOME)/include
+	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
+
+	# (3) specify "linker" information
+	JAVA_CPU = sparc
+
+	JAVA_LIBDIR = jre/lib/$(JAVA_CPU)
+
+	#     ** IMPORTANT ** having -lthread before -lnspr is critical on solaris
+	#     when linking with -ljava as nspr redefines symbols in libthread that
+	#     cause JNI executables to fail with assert of bad thread stack values.
+	JAVA_CLIBS = -lthread
+
+	JAVA_LIBS  = -L$(JAVA_HOME)/$(JAVA_LIBDIR)/$(JDK_THREADING_MODEL) -lhpi
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR)/classic -ljvm
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR) -ljava
+	JAVA_LIBS += $(JAVA_CLIBS)
+
+	LDFLAGS += $(JAVA_LIBS)
+
+	#     currently, disable JIT option on this platform
+	JDK_JIT_OPT =
+endif
+
+# set [Hewlett Packard HP-UX] platforms
+ifeq ($(OS_ARCH), HP-UX)
+	# (1) specify "location" information  (currently ONLY on "orville")
+	ifeq ($(JAVA_HOME),)
+		JAVA_HOME = /opt/java1.2
+	endif
+
+	JAVA_CLASSES = $(JAVA_HOME)/lib/classes.zip
+
+	ifeq ($(JRE_HOME),)
+		JRE_HOME = $(JAVA_HOME)
+		JRE_CLASSES = $(JAVA_CLASSES)
+	else
+		ifeq ($(JRE_CLASSES),)
+			JRE_CLASSES = $(JRE_HOME)/lib/classes.zip
+		endif
+	endif
+
+	PATH_SEPARATOR = :
+
+	# (2) specify "header" information
+	JAVA_ARCH = hp-ux
+
+	INCLUDES += -I$(JAVA_HOME)/include
+	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
+
+	# (3) specify "linker" information
+	JAVA_CPU = PA_RISC
+
+	JAVA_LIBDIR = jre/lib/$(JAVA_CPU)
+
+	JAVA_CLIBS =
+
+	JAVA_LIBS  = -L$(JAVA_HOME)/$(JAVA_LIBDIR)/$(JDK_THREADING_MODEL) -lhpi
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR)/classic -ljvm
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR) -ljava
+	JAVA_LIBS += $(JAVA_CLIBS)
+
+	LDFLAGS += $(JAVA_LIBS)
+
+	# no JIT option available on this platform
+	JDK_JIT_OPT =
+endif
+
+# set [Redhat Linux] platforms
+ifeq ($(OS_ARCH), Linux)
+	# (1) specify "location" information
+	ifeq ($(JAVA_HOME),)
+		JAVA_HOME = /share/builds/components/jdk/1.2.2/Linux
+	endif
+
+	JAVA_CLASSES = $(JAVA_HOME)/lib/classes.zip
+
+	ifeq ($(JRE_HOME),)
+		JRE_HOME = $(JAVA_HOME)
+		JRE_CLASSES = $(JAVA_CLASSES)
+	else
+		ifeq ($(JRE_CLASSES),)
+			JRE_CLASSES = $(JRE_HOME)/lib/classes.zip
+		endif
+	endif
+
+	PATH_SEPARATOR = :
+
+	# (2) specify "header" information
+	JAVA_ARCH = linux
+
+	INCLUDES += -I$(JAVA_HOME)/include
+	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
+
+	# (3) specify "linker" information
+	JAVA_CPU = i386
+
+	JAVA_LIBDIR = jre/lib/$(JAVA_CPU)
+
+	JAVA_CLIBS =
+
+	JAVA_LIBS  = -L$(JAVA_HOME)/$(JAVA_LIBDIR)/$(JDK_THREADING_MODEL) -lhpi
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR)/classic -ljvm
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR) -ljava
+	JAVA_LIBS += $(JAVA_CLIBS)
+
+	LDFLAGS += $(JAVA_LIBS)
+
+	# no JIT option available on this platform
+	JDK_JIT_OPT =
+endif
+
+# set [IBM AIX] platforms
+ifeq ($(OS_ARCH), AIX)
+	# (1) specify "location" information
+	ifeq ($(JAVA_HOME),)
+		JAVA_HOME = /share/builds/components/jdk/1.2.2/AIX
+	endif
+
+	JAVA_CLASSES = $(JAVA_HOME)/lib/classes.zip
+
+	ifeq ($(JRE_HOME),)
+		JRE_HOME = $(JAVA_HOME)
+		JRE_CLASSES = $(JAVA_CLASSES)
+	else
+		ifeq ($(JRE_CLASSES),)
+			JRE_CLASSES = $(JRE_HOME)/lib/classes.zip
+		endif
+	endif
+
+	PATH_SEPARATOR = :
+
+	# (2) specify "header" information
+	JAVA_ARCH = aix
+
+	INCLUDES += -I$(JAVA_HOME)/include
+
+	# (3) specify "linker" information
+	JAVA_CPU = aix
+
+	JAVA_LIBDIR = jre/bin
+
+	JAVA_CLIBS =
+
+	JAVA_LIBS  = -L$(JAVA_HOME)/$(JAVA_LIBDIR) -lhpi
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR)/classic -ljvm
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR) -ljava
+	JAVA_LIBS += $(JAVA_CLIBS)
+
+	LDFLAGS += $(JAVA_LIBS)
+
+	# no JIT option available on this platform
+	JDK_JIT_OPT =
+endif
+
+# set [Digital UNIX] platforms
+ifeq ($(OS_ARCH), OSF1)
+	# (1) specify "location" information
+	ifeq ($(JAVA_HOME),)
+		JAVA_HOME = /share/builds/components/jdk/1.2.2_3/OSF1
+	endif
+
+	JAVA_CLASSES = $(JAVA_HOME)/lib/classes.zip
+
+	ifeq ($(JRE_HOME),)
+		JRE_HOME = $(JAVA_HOME)
+		JRE_CLASSES = $(JAVA_CLASSES)
+	else
+		ifeq ($(JRE_CLASSES),)
+			JRE_CLASSES = $(JRE_HOME)/lib/classes.zip
+		endif
+	endif
+
+	PATH_SEPARATOR = :
+
+	# (2) specify "header" information
+	JAVA_ARCH = alpha
+
+	INCLUDES += -I$(JAVA_HOME)/include
+	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
+
+	# (3) specify "linker" information
+	JAVA_CPU = alpha
+
+	JAVA_LIBDIR = jre/lib/$(JAVA_CPU)
+
+	JAVA_CLIBS =
+
+	JAVA_LIBS  = -L$(JAVA_HOME)/$(JAVA_LIBDIR)/$(JDK_THREADING_MODEL) -lhpi
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR)/classic -ljvm
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR) -ljava
+	JAVA_LIBS += $(JAVA_CLIBS)
+
+	LDFLAGS += $(JAVA_LIBS)
+
+	# no JIT option available on this platform
+	JDK_JIT_OPT =
+endif
+
+# set [Silicon Graphics IRIX] platforms
+ifeq ($(OS_ARCH), IRIX)
+	# (1) specify "location" information
+	ifeq ($(JAVA_HOME),)
+		JAVA_HOME = /share/builds/components/jdk/1.2.1/IRIX
+	endif
+
+	JAVA_CLASSES = $(JAVA_HOME)/lib/dev.jar:$(JAVA_HOME)/lib/rt.jar
+
+	ifeq ($(JRE_HOME),)
+		JRE_HOME = $(JAVA_HOME)
+		JRE_CLASSES = $(JAVA_CLASSES)
+	else
+		ifeq ($(JRE_CLASSES),)
+			JRE_CLASSES = $(JRE_HOME)/lib/dev.jar:$(JRE_HOME)/lib/rt.jar
+		endif
+	endif
+
+	PATH_SEPARATOR = :
+
+	# (2) specify "header" information
+	JAVA_ARCH = irix
+
+	INCLUDES += -I$(JAVA_HOME)/include
+	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
+
+	# (3) specify "-n32 linker" information
+	JAVA_CPU = sgi
+
+	JAVA_LIBDIR = lib32/$(JAVA_CPU)
+
+	JAVA_CLIBS =
+
+	JAVA_LIBS  = -L$(JAVA_HOME)/$(JAVA_LIBDIR)/$(JDK_THREADING_MODEL) -lhpi
+	JAVA_LIBS += -lirixextra
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR)/classic -ljvm
+	JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR) -ljava
+	JAVA_LIBS += $(JAVA_CLIBS)
+
+	LDFLAGS += $(JAVA_LIBS)
+
+	# no JIT option available on this platform
+	JDK_JIT_OPT =
+endif
+
+#######################################################################
+# [4] Define remaining JDK "Core Components" default toolset options  #
+#######################################################################
+
+# set JDK optimization model
+ifeq ($(BUILD_OPT),1)
+	JDK_OPTIMIZER_OPT = -O
+else
+	JDK_OPTIMIZER_OPT = -g
+endif
+
+# set minimal JDK debugging model
+ifeq ($(JDK_DEBUG),1)
+	JDK_DEBUG_OPT    = -debug
+else
+	JDK_DEBUG_OPT    =
+endif
+
+# set default path to repository for JDK classes
+ifeq ($(JDK_CLASS_REPOSITORY_OPT),)
+	JDK_CLASS_REPOSITORY_OPT = -d $(JAVA_DESTPATH)
+endif
+
+# initialize the JDK heap size option to a default value
+ifeq ($(JDK_INIT_HEAP_OPT),)
+	JDK_INIT_HEAP_OPT = -ms8m
+endif
+
+# define a default JDK classpath
+ifeq ($(JDK_CLASSPATH),)
+	JDK_CLASSPATH = "$(JAVA_DESTPATH)$(PATH_SEPARATOR)$(JAVA_SOURCEPATH)$(PATH_SEPARATOR)$(JAVA_CLASSES)"
+endif
+
+# by default, override CLASSPATH environment variable using the JDK classpath option with $(JDK_CLASSPATH)
+ifeq ($(JDK_CLASSPATH_OPT),)
+	JDK_CLASSPATH_OPT = -classpath $(JDK_CLASSPATH)
+endif
+
+
+endif
+
+
+ifdef NS_USE_JDK_TOOLSET
+#######################################################################
+# [5] Define JDK "Core Components" toolset;                           #
+#     (always allow a user to override these values)                  #
+#######################################################################
+
+#
+# (1) appletviewer
+#
+
+ifeq ($(APPLETVIEWER),)
+	APPLETVIEWER_PROG   = $(JAVA_HOME)/bin/appletviewer$(PROG_SUFFIX)
+	APPLETVIEWER_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	APPLETVIEWER_FLAGS += $(JDK_DEBUG_OPT)
+	APPLETVIEWER_FLAGS += $(JDK_JIT_OPT)
+	APPLETVIEWER        = $(APPLETVIEWER_PROG) $(APPLETVIEWER_FLAGS)
+endif
+
+#
+# (2) jar
+#
+
+ifeq ($(JAR),)
+	JAR_PROG   = $(JAVA_HOME)/bin/jar$(PROG_SUFFIX)
+	JAR_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAR        = $(JAR_PROG) $(JAR_FLAGS)
+endif
+
+#
+# (3) java
+#
+
+ifeq ($(JAVA),)
+	JAVA_PROG   = $(JAVA_HOME)/bin/java$(PROG_SUFFIX)
+	JAVA_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVA_FLAGS += $(JDK_DEBUG_OPT)
+	JAVA_FLAGS += $(JDK_CLASSPATH_OPT)
+	JAVA_FLAGS += $(JDK_INIT_HEAP_OPT)
+	JAVA_FLAGS += $(JDK_JIT_OPT)
+	JAVA        = $(JAVA_PROG) $(JAVA_FLAGS) 
+endif
+
+#
+# (4) javac
+#
+
+ifeq ($(JAVAC),)
+	JAVAC_PROG   = $(JAVA_HOME)/bin/javac$(PROG_SUFFIX)
+	JAVAC_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVAC_FLAGS += $(JDK_OPTIMIZER_OPT)
+	JAVAC_FLAGS += $(JDK_DEBUG_OPT)
+	JAVAC_FLAGS += $(JDK_CLASSPATH_OPT)
+	JAVAC_FLAGS += -J$(JDK_INIT_HEAP_OPT)
+	JAVAC_FLAGS += $(JDK_CLASS_REPOSITORY_OPT)
+	JAVAC        = $(JAVAC_PROG) $(JAVAC_FLAGS)
+endif
+
+#
+# (5) javadoc
+#
+
+ifeq ($(JAVADOC),)
+	JAVADOC_PROG   = $(JAVA_HOME)/bin/javadoc$(PROG_SUFFIX)
+	JAVADOC_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVADOC_FLAGS += $(JDK_CLASSPATH_OPT)
+	JAVADOC_FLAGS += -J$(JDK_INIT_HEAP_OPT)
+	JAVADOC        = $(JAVADOC_PROG) $(JAVADOC_FLAGS)
+endif
+
+#
+# (6) javah
+#
+
+ifeq ($(JAVAH),)
+	JAVAH_PROG   = $(JAVA_HOME)/bin/javah$(PROG_SUFFIX)
+	JAVAH_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVAH_FLAGS += $(JDK_CLASSPATH_OPT)
+	JAVAH        = $(JAVAH_PROG) $(JAVAH_FLAGS)
+endif
+
+#
+# (7) javakey
+#
+
+ifeq ($(JAVAKEY),)
+	JAVAKEY_PROG   = $(JAVA_HOME)/bin/javakey$(PROG_SUFFIX)
+	JAVAKEY_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVAKEY        = $(JAVAKEY_PROG) $(JAVAKEY_FLAGS)
+endif
+
+#
+# (8) javap
+#
+
+ifeq ($(JAVAP),)
+	JAVAP_PROG   = $(JAVA_HOME)/bin/javap$(PROG_SUFFIX)
+	JAVAP_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVAP_FLAGS += $(JDK_CLASSPATH_OPT)
+	JAVAP_FLAGS += -J$(JDK_INIT_HEAP_OPT)
+	JAVAP        = $(JAVAP_PROG) $(JAVAP_FLAGS)
+endif
+
+#
+# (9) javat
+#
+
+ifeq ($(JAVAT),)
+	JAVAT_PROG   = $(JAVA_HOME)/bin/javat$(PROG_SUFFIX)
+	JAVAT_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVAT        = $(JAVAT_PROG) $(JAVAT_FLAGS)
+endif
+
+#
+# (10) javaverify
+#
+
+ifeq ($(JAVAVERIFY),)
+	JAVAVERIFY_PROG   = $(JAVA_HOME)/bin/javaverify$(PROG_SUFFIX)
+	JAVAVERIFY_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JAVAVERIFY        = $(JAVAVERIFY_PROG) $(JAVAVERIFY_FLAGS)
+endif
+
+#
+# (11) javaw
+#
+
+ifeq ($(JAVAW),)
+	jJAVAW_PROG   = $(JAVA_HOME)/bin/javaw$(PROG_SUFFIX)
+	jJAVAW_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	jJAVAW_FLAGS += $(JDK_DEBUG_OPT)
+	jJAVAW_FLAGS += $(JDK_CLASSPATH_OPT)
+	jJAVAW_FLAGS += $(JDK_INIT_HEAP_OPT)
+	jJAVAW_FLAGS += $(JDK_JIT_OPT)
+	jJAVAW        = $(JAVAW_PROG) $(JAVAW_FLAGS)
+endif
+
+#
+# (12) jdb
+#
+
+ifeq ($(JDB),)
+	JDB_PROG   = $(JAVA_HOME)/bin/jdb$(PROG_SUFFIX)
+	JDB_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JDB_FLAGS += $(JDK_DEBUG_OPT)
+	JDB_FLAGS += $(JDK_CLASSPATH_OPT)
+	JDB_FLAGS += $(JDK_INIT_HEAP_OPT)
+	JDB_FLAGS += $(JDK_JIT_OPT)
+	JDB        = $(JDB_PROG) $(JDB_FLAGS)
+endif
+
+#
+# (13) jre
+#
+
+ifeq ($(JRE),)
+	JRE_PROG   = $(JAVA_HOME)/bin/jre$(PROG_SUFFIX)
+	JRE_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JRE_FLAGS += $(JDK_CLASSPATH_OPT)
+	JRE_FLAGS += $(JDK_INIT_HEAP_OPT)
+	JRE_FLAGS += $(JDK_JIT_OPT)
+	JRE        = $(JRE_PROG) $(JRE_FLAGS) 
+endif
+
+#
+# (14) jrew
+#
+
+ifeq ($(JREW),)
+	JREW_PROG   = $(JAVA_HOME)/bin/jrew$(PROG_SUFFIX)
+	JREW_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	JREW_FLAGS += $(JDK_CLASSPATH_OPT)
+	JREW_FLAGS += $(JDK_INIT_HEAP_OPT)
+	JREW_FLAGS += $(JDK_JIT_OPT)
+	JREW        = $(JREW_PROG) $(JREW_FLAGS) 
+endif
+
+#
+# (15) native2ascii
+#
+
+ifeq ($(NATIVE2ASCII),)
+	NATIVE2ASCII_PROG   = $(JAVA_HOME)/bin/native2ascii$(PROG_SUFFIX)
+	NATIVE2ASCII_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	NATIVE2ASCII        = $(NATIVE2ASCII_PROG) $(NATIVE2ASCII_FLAGS) 
+endif
+
+#
+# (16) rmic
+#
+
+ifeq ($(RMIC),)
+	RMIC_PROG   = $(JAVA_HOME)/bin/rmic$(PROG_SUFFIX)
+	RMIC_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	RMIC_FLAGS += $(JDK_OPTIMIZER_OPT)
+	RMIC_FLAGS += $(JDK_CLASSPATH_OPT)
+	RMIC        = $(RMIC_PROG) $(RMIC_FLAGS) 
+endif
+
+#
+# (17) rmiregistry
+#
+
+ifeq ($(RMIREGISTRY),)
+	RMIREGISTRY_PROG   = $(JAVA_HOME)/bin/rmiregistry$(PROG_SUFFIX)
+	RMIREGISTRY_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	RMIREGISTRY        = $(RMIREGISTRY_PROG) $(RMIREGISTRY_FLAGS) 
+endif
+
+#
+# (18) serialver
+#
+
+ifeq ($(SERIALVER),)
+	SERIALVER_PROG   = $(JAVA_HOME)/bin/serialver$(PROG_SUFFIX)
+	SERIALVER_FLAGS  = $(JDK_THREADING_MODEL_OPT)
+	SERIALVER        = $(SERIALVER_PROG) $(SERIALVER_FLAGS) 
+endif
+ 
+endif
new file mode 100755
--- /dev/null
+++ b/security/coreconf/jniregen.pl
@@ -0,0 +1,92 @@
+#!/usr/local/bin/perl
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+# Input: -d dir foo1 foo2 . . .
+#        Compares generated "_jni/foo1.h" file with "foo1.class", and
+#        generated "_jni/foo2.h" file with "foo2.class", etc.
+#        (NOTE:  unlike its closely related cousin, outofdate.pl,
+#                the "-d dir" must always be specified)
+#
+# Returns: list of headers which are OLDER than corresponding class
+#          files (non-existant class files are considered to be real old :-)
+
+$found = 1;
+
+if ($ARGV[0] eq '-d')
+{
+    $classdir = $ARGV[1];
+    $classdir .= "/";
+    shift;
+    shift;
+}
+else
+{
+    print STDERR "Usage:  perl ", $0, " -d dir foo1 foo2 . . .\n";
+    exit -1;
+}
+
+foreach $filename (@ARGV)
+{
+    $headerfilename = "_jni/";
+    $headerfilename .= $filename;
+    $headerfilename =~ s/\./_/g;
+    $headerfilename .= ".h";
+
+    $classfilename = $filename;
+    $classfilename =~ s|\.|/|g;
+    $classfilename .= ".class";
+
+    $classfilename = $classdir . $classfilename;
+
+
+    ( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $headermtime,
+      $ctime, $blksize, $blocks ) = stat( $headerfilename );
+
+    ( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $classmtime,
+      $ctime, $blksize, $blocks ) = stat( $classfilename );
+
+    if( $headermtime < $classmtime )
+    {
+	# NOTE:  Since this is used by "javah", and "javah" refuses to overwrite
+	#        an existing file, we force an unlink from this script, since
+	#        we actually want to regenerate the header file at this time.
+	unlink $headerfilename;
+        print $filename, " ";
+        $found = 0;
+    }
+}
+
+print "\n";
+exit 0;
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/location.mk
@@ -0,0 +1,60 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+# Master "Core Components" macros to figure out binary code location  #
+#######################################################################
+
+#
+# Figure out where the binary code lives.
+#
+
+BUILD         = $(PLATFORM)
+OBJDIR        = $(PLATFORM)
+ifdef MOZILLA_SECURITY_BUILD
+DIST          = $(CORE_DEPTH)/../dist/$(PLATFORM)
+else
+ifdef MOZILLA_CLIENT
+DIST          = $(CORE_DEPTH)/../mozilla/dist/$(PLATFORM)
+else
+DIST          = $(CORE_DEPTH)/dist/$(PLATFORM)
+endif
+endif
+VPATH         = $(NSINSTALL_DIR)/$(PLATFORM)
+DEPENDENCIES  = $(PLATFORM)/.md
+
+ifdef BUILD_DEBUG_GC
+	DEFINES += -DDEBUG_GC
+endif
+
+GARBAGE += $(DEPENDENCIES) core $(wildcard core.[0-9]*)
new file mode 100644
--- /dev/null
+++ b/security/coreconf/makefile.win
@@ -0,0 +1,100 @@
+# 
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#
+# An NMAKE file to set up and adjust coreconf's build system for
+# Client build.  Client build should invoke NMAKE on this file
+# instead of invoking gmake directly.
+#
+
+NS_DEPTH = ..
+include <$(NS_DEPTH)\config\config.mak>
+#include <$(NS_DEPTH)\config\rules.mak>
+
+#
+# Backslashes are escape characters to gmake, so flip all backslashes
+# in $(MOZ_TOOLS) to forward slashes and pass that to gmake.
+#
+
+GMAKE = $(MOZ_TOOLS)\bin\gmake.exe MOZ_TOOLS_FLIPPED=$(MOZ_TOOLS:\=/)
+
+GMAKE = $(GMAKE) PR_CLIENT_BUILD=1 PR_CLIENT_BUILD_WINDOWS=1
+
+#
+# The Client's debug build uses MSVC's debug runtime library (/MDd).
+#
+
+!ifdef MOZ_DEBUG
+GMAKE = $(GMAKE) USE_DEBUG_RTL=1
+!else
+GMAKE = $(GMAKE) BUILD_OPT=1
+!endif
+
+!if "$(MOZ_BITS)" == "16"
+GMAKE = $(GMAKE) OS_TARGET=WIN16
+!else
+
+GMAKE = $(GMAKE) OS_TARGET=WIN95
+!ifdef MOZ_DEBUG
+PR_OBJDIR = WIN954.0_DBG.OBJD
+!else
+PR_OBJDIR = WIN954.0_OPT.OBJ
+!endif
+
+!endif
+
+#
+# The rules.  Simply invoke gmake with the same target
+# for Win16, use the watcom compiler with the MSVC headers and libs
+#
+
+# this rule is needed so that nmake with no explicit target will only build
+# all, and not build all the targets named below in succession!
+default:: all
+
+# a rule like this one must only be used for explicitly named targets!
+all depend export libs install clobber clobber_all clean::
+!if "$(MOZ_BITS)" == "16"
+	set PATH=%WATCPATH%
+	set INCLUDE=%MSVC_INC%
+	set LIB=%MSVC_LIB%
+!endif
+	$(GMAKE) $@
+!if "$(MOZ_BITS)" == "16"
+	set PATH=%MSVCPATH%
+	set INCLUDE=%MSVC_INC%
+	set LIB=%MSVC_LIB%
+!endif
+
+show:
+	@echo "MAKEFLAGS = $(MAKEFLAGS)"
new file mode 100644
--- /dev/null
+++ b/security/coreconf/module.mk
@@ -0,0 +1,64 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+# The master "Core Components" source and release component directory #
+# names are ALWAYS identical and are the value of $(MODULE).          #
+# NOTE:  A component is also called a module or a subsystem.          #
+#######################################################################
+
+#
+#  All "Core Components" <component>-specific source-side tags must
+#  always be identified for compiling/linking purposes
+#
+
+ifndef JAVA_SOURCE_COMPONENT
+	JAVA_SOURCE_COMPONENT = java
+endif
+
+ifndef NETLIB_SOURCE_COMPONENT
+	NETLIB_SOURCE_COMPONENT = netlib
+endif
+
+ifndef NSPR_SOURCE_COMPONENT
+	NSPR_SOURCE_COMPONENT = nspr20
+endif
+
+ifndef SECTOOLS_SOURCE_COMPONENT
+	SECTOOLS_SOURCE_COMPONENT = sectools
+endif
+
+ifndef SECURITY_SOURCE_COMPONENT
+	SECURITY_SOURCE_COMPONENT = security
+endif
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/nsinstall/Makefile
@@ -0,0 +1,59 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+DEPTH		= ../..
+CORE_DEPTH	= ../..
+
+MODULE		= coreconf
+
+CSRCS		= nsinstall.c pathsub.c
+
+PLSRCS		= nfspwd.pl
+
+PROGRAM		= nsinstall
+
+include $(DEPTH)/coreconf/config.mk
+
+ifeq ($(OS_ARCH),WINNT)
+PROGRAM		=
+else
+TARGETS		= $(PROGRAM) $(PLSRCS:.pl=)
+endif
+
+include $(DEPTH)/coreconf/rules.mk
+
+# Redefine MAKE_OBJDIR for just this directory
+define MAKE_OBJDIR
+if test ! -d $(@D); then rm -rf $(@D); mkdir $(@D); fi
+endef
+
new file mode 100755
--- /dev/null
+++ b/security/coreconf/nsinstall/nfspwd
@@ -0,0 +1,46 @@
+#! perl
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+require "fastcwd.pl";
+
+$_ = &fastcwd;
+if (m@^/[uh]/@o || s@^/tmp_mnt/@/@o) {
+    print("$_\n");
+} elsif ((($user, $rest) = m@^/usr/people/(\w+)/(.*)@o)
+      && readlink("/u/$user") eq "/usr/people/$user") {
+    print("/u/$user/$rest\n");
+} else {
+    chop($host = `hostname`);
+    print("/h/$host$_\n");
+}
new file mode 100644
--- /dev/null
+++ b/security/coreconf/nsinstall/nfspwd.pl
@@ -0,0 +1,46 @@
+#! perl
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+require "fastcwd.pl";
+
+$_ = &fastcwd;
+if (m@^/[uh]/@o || s@^/tmp_mnt/@/@o) {
+    print("$_\n");
+} elsif ((($user, $rest) = m@^/usr/people/(\w+)/(.*)@o)
+      && readlink("/u/$user") eq "/usr/people/$user") {
+    print("/u/$user/$rest\n");
+} else {
+    chop($host = `hostname`);
+    print("/h/$host$_\n");
+}
new file mode 100644
--- /dev/null
+++ b/security/coreconf/nsinstall/nsinstall.c
@@ -0,0 +1,403 @@
+/* 
+ * The contents of this file are subject to the Mozilla Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ * 
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ * 
+ * The Original Code is the Netscape security libraries.
+ * 
+ * The Initial Developer of the Original Code is Netscape
+ * Communications Corporation.  Portions created by Netscape are 
+ * Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+ * Rights Reserved.
+ * 
+ * Contributor(s):
+ * 
+ * Alternatively, the contents of this file may be used under the
+ * terms of the GNU General Public License Version 2 or later (the
+ * "GPL"), in which case the provisions of the GPL are applicable 
+ * instead of those above.  If you wish to allow use of your 
+ * version of this file only under the terms of the GPL and not to
+ * allow others to use your version of this file under the MPL,
+ * indicate your decision by deleting the provisions above and
+ * replace them with the notice and other provisions required by
+ * the GPL.  If you do not delete the provisions above, a recipient
+ * may use your version of this file under either the MPL or the
+ * GPL.
+ */
+
+/*
+** Netscape portable install command.
+*/
+#include <stdio.h>  /* OSF/1 requires this before grp.h, so put it first */
+#include <assert.h>
+#include <fcntl.h>
+#include <string.h>
+#if defined(_WINDOWS)
+#include <windows.h>
+typedef unsigned int mode_t;
+#else
+#include <grp.h>
+#include <pwd.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <utime.h>
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include "pathsub.h"
+
+#define HAVE_LCHOWN
+
+#if defined(AIX) || defined(BSDI) || defined(HPUX) || defined(LINUX) || defined(SUNOS4) || defined(SCO) || defined(UNIXWARE)
+#undef HAVE_LCHOWN
+#endif
+
+#ifdef LINUX
+#include <getopt.h>
+#endif
+
+#if defined(SCO) || defined(UNIXWARE) || defined(SNI) || defined(NCR) || defined(NEC)
+#if !defined(S_ISLNK) && defined(S_IFLNK)
+#define S_ISLNK(a)	(((a) & S_IFMT) == S_IFLNK)
+#endif
+#endif
+
+#if defined(SNI)
+extern int fchmod(int fildes, mode_t mode);
+#endif
+
+static void
+usage(void)
+{
+    fprintf(stderr,
+	"usage: %s [-C cwd] [-L linkprefix] [-m mode] [-o owner] [-g group]\n"
+	"       %*s [-DdltR] file [file ...] directory\n",
+	program, strlen(program), "");
+    exit(2);
+}
+
+/* this is more-or-less equivalent to mkdir -p */
+static int
+mkdirs(char *path, mode_t mode)
+{
+    char *      cp;
+    int         rv;
+    struct stat sb;
+    
+    if (!path || !path[0]) 
+	fail("Null pointer or empty string passed to mkdirs()");
+    while (*path == '/' && path[1] == '/')
+	path++;
+    while ((cp = strrchr(path, '/')) && cp[1] == '\0')
+	*cp = '\0';
+    if (cp && cp != path) {
+	*cp = '\0';
+	if ((stat(path, &sb) < 0 || !S_ISDIR(sb.st_mode)) &&
+	    mkdirs(path, mode) < 0) {
+	    return -1;
+	}
+	*cp = '/';
+    }
+    rv = mkdir(path, mode);
+    if (rv) {
+	if (errno != EEXIST)
+	    fail("mkdirs cannot make %s", path);
+	fprintf(stderr, "directory creation race: %s\n", path);
+	if (!stat(path, &sb) && S_ISDIR(sb.st_mode)) 
+	    rv = 0;
+    }
+    return rv;
+}
+
+static uid_t
+touid(char *owner)
+{
+    struct passwd *pw;
+    uid_t uid;
+    char *cp;
+
+    if (!owner || !owner[0]) 
+	fail("Null pointer or empty string passed to touid()");
+    pw = getpwnam(owner);
+    if (pw)
+	return pw->pw_uid;
+    uid = strtol(owner, &cp, 0);
+    if (uid == 0 && cp == owner)
+	fail("cannot find uid for %s", owner);
+    return uid;
+}
+
+static gid_t
+togid(char *group)
+{
+    struct group *gr;
+    gid_t gid;
+    char *cp;
+
+    if (!group || !group[0]) 
+	fail("Null pointer or empty string passed to togid()");
+    gr = getgrnam(group);
+    if (gr)
+	return gr->gr_gid;
+    gid = strtol(group, &cp, 0);
+    if (gid == 0 && cp == group)
+	fail("cannot find gid for %s", group);
+    return gid;
+}
+
+void * const uninit = (void *)0xdeadbeef;
+
+int
+main(int argc, char **argv)
+{
+    char *	base		= uninit;
+    char *	bp		= uninit;
+    char *	cp		= uninit;
+    char *	cwd		= 0;
+    char *	group		= 0;
+    char *	linkname	= 0;
+    char *	linkprefix	= 0;
+    char *	name		= uninit;
+    char *	owner		= 0;
+    char *	todir		= uninit;
+    char *	toname		= uninit;
+
+    int 	bnlen		= -1;
+    int 	cc		= 0;
+    int 	dodir		= 0;
+    int 	dolink		= 0;
+    int 	dorelsymlink	= 0;
+    int 	dotimes		= 0;
+    int 	exists		= 0;
+    int 	fromfd		= -1;
+    int 	len		= -1;
+    int 	lplen		= 0;
+    int		onlydir		= 0;
+    int 	opt		= -1;
+    int 	tdlen		= -1;
+    int 	tofd		= -1;
+    int 	wc		= -1;
+
+    mode_t 	mode		= 0755;
+
+    uid_t 	uid		= -1;
+    gid_t 	gid		= -1;
+
+    struct stat sb;
+    struct stat tosb;
+    struct utimbuf utb;
+    char 	buf[BUFSIZ];
+
+    program = strrchr(argv[0], '/');
+    if (!program)
+	program = strrchr(argv[0], '\\');
+    program = program ? program+1 : argv[0];
+
+
+    while ((opt = getopt(argc, argv, "C:DdlL:Rm:o:g:t")) != EOF) {
+	switch (opt) {
+	  case 'C': cwd = optarg;	break;
+	  case 'D': onlydir = 1; 	break;
+	  case 'd': dodir = 1; 		break;
+	  case 'l': dolink = 1;		break;
+	  case 'L':
+	    linkprefix = optarg;
+	    lplen = strlen(linkprefix);
+	    dolink = 1;
+	    break;
+	  case 'R': dolink = dorelsymlink = 1; break;
+	  case 'm':
+	    mode = strtoul(optarg, &cp, 8);
+	    if (mode == 0 && cp == optarg)
+		usage();
+	    break;
+	  case 'o': owner = optarg; 	break;
+	  case 'g': group = optarg; 	break;
+	  case 't': dotimes = 1; 	break;
+	  default:  usage();
+	}
+    }
+
+    argc -= optind;
+    argv += optind;
+    if (argc < 2 - onlydir)
+	usage();
+
+    todir = argv[argc-1];
+    if ((stat(todir, &sb) < 0 || !S_ISDIR(sb.st_mode)) &&
+	mkdirs(todir, 0777) < 0) {
+	fail("cannot mkdir -p %s", todir);
+    }
+    if (onlydir)
+	return 0;
+
+    if (!cwd) {
+	cwd = getcwd(0, PATH_MAX);
+	if (!cwd)
+	    fail("could not get CWD");
+    }
+
+    /* make sure we can get into todir. */
+    xchdir(todir);
+    todir = getcwd(0, PATH_MAX);
+    if (!todir)
+	fail("could not get CWD in todir");
+    tdlen = strlen(todir);
+
+    /* back to original directory. */
+    xchdir(cwd);
+
+    uid = owner ? touid(owner) : -1;
+    gid = group ? togid(group) : -1;
+
+    while (--argc > 0) {
+	name   = *argv++;
+	len    = strlen(name);
+	base   = xbasename(name);
+	bnlen  = strlen(base);
+	toname = (char*)xmalloc(tdlen + 1 + bnlen + 1);
+	sprintf(toname, "%s/%s", todir, base);
+retry:
+	exists = (lstat(toname, &tosb) == 0);
+
+	if (dodir) {
+	    /* -d means create a directory, always */
+	    if (exists && !S_ISDIR(tosb.st_mode)) {
+		int rv = unlink(toname);
+		if (rv)
+		    fail("cannot unlink %s", toname);
+		exists = 0;
+	    }
+	    if (!exists && mkdir(toname, mode) < 0) {
+	    	/* we probably have two nsinstall programs in a race here. */
+		if (errno == EEXIST && !stat(toname, &sb) && 
+		    S_ISDIR(sb.st_mode)) {
+		    fprintf(stderr, "directory creation race: %s\n", toname);
+		    goto retry;
+	    	}
+		fail("cannot make directory %s", toname);
+	    }
+	    if ((owner || group) && chown(toname, uid, gid) < 0)
+		fail("cannot change owner of %s", toname);
+	} else if (dolink) {
+	    if (*name == '/') {
+		/* source is absolute pathname, link to it directly */
+		linkname = 0;
+	    } else {
+		if (linkprefix) {
+		    /* -L implies -l and prefixes names with a $cwd arg. */
+		    len += lplen + 1;
+		    linkname = (char*)xmalloc(len + 1);
+		    sprintf(linkname, "%s/%s", linkprefix, name);
+		} else if (dorelsymlink) {
+		    /* Symlink the relative path from todir to source name. */
+		    linkname = (char*)xmalloc(PATH_MAX);
+
+		    if (*todir == '/') {
+			/* todir is absolute: skip over common prefix. */
+			lplen = relatepaths(todir, cwd, linkname);
+			strcpy(linkname + lplen, name);
+		    } else {
+			/* todir is named by a relative path: reverse it. */
+			reversepath(todir, name, len, linkname);
+			xchdir(cwd);
+		    }
+
+		    len = strlen(linkname);
+		}
+		name = linkname;
+	    }
+
+	    /* Check for a pre-existing symlink with identical content. */
+	    if (exists &&
+		(!S_ISLNK(tosb.st_mode) ||
+		 readlink(toname, buf, sizeof buf) != len ||
+		 strncmp(buf, name, len) != 0)) {
+		int rmrv;
+		rmrv = (S_ISDIR(tosb.st_mode) ? rmdir : unlink)(toname);
+		if (rmrv < 0) {
+		    fail("destination exists, cannot remove %s", toname);
+		}
+		exists = 0;
+	    }
+	    if (!exists && symlink(name, toname) < 0) {
+		if (errno == EEXIST) {
+		    fprintf(stderr, "symlink creation race: %s\n", toname);
+		    goto retry;
+		}
+		diagnosePath(toname);
+		fail("cannot make symbolic link %s", toname);
+	    }
+#ifdef HAVE_LCHOWN
+	    if ((owner || group) && lchown(toname, uid, gid) < 0)
+		fail("cannot change owner of %s", toname);
+#endif
+
+	    if (linkname) {
+		free(linkname);
+		linkname = 0;
+	    }
+	} else {
+	    /* Copy from name to toname, which might be the same file. */
+	    fromfd = open(name, O_RDONLY);
+	    if (fromfd < 0 || fstat(fromfd, &sb) < 0)
+		fail("cannot access %s", name);
+	    if (exists && 
+	        (!S_ISREG(tosb.st_mode) || access(toname, W_OK) < 0)) {
+		int rmrv;
+		rmrv = (S_ISDIR(tosb.st_mode) ? rmdir : unlink)(toname);
+		if (rmrv < 0) {
+		    fail("destination exists, cannot remove %s", toname);
+		}
+	    }
+	    tofd = open(toname, O_CREAT | O_WRONLY, 0666);
+	    if (tofd < 0)
+		fail("cannot create %s", toname);
+
+	    bp = buf;
+	    while ((cc = read(fromfd, bp, sizeof buf)) > 0) {
+		while ((wc = write(tofd, bp, cc)) > 0) {
+		    if ((cc -= wc) == 0)
+			break;
+		    bp += wc;
+		}
+		if (wc < 0)
+		    fail("cannot write to %s", toname);
+	    }
+	    if (cc < 0)
+		fail("cannot read from %s", name);
+
+	    if (ftruncate(tofd, sb.st_size) < 0)
+		fail("cannot truncate %s", toname);
+	    if (dotimes) {
+		utb.actime = sb.st_atime;
+		utb.modtime = sb.st_mtime;
+		if (utime(toname, &utb) < 0)
+		    fail("cannot set times of %s", toname);
+	    }
+	    if (fchmod(tofd, mode) < 0)
+		fail("cannot change mode of %s", toname);
+	    if ((owner || group) && fchown(tofd, uid, gid) < 0)
+		fail("cannot change owner of %s", toname);
+
+	    /* Must check for delayed (NFS) write errors on close. */
+	    if (close(tofd) < 0)
+		fail("close reports write error on %s", toname);
+	    close(fromfd);
+	}
+
+	free(toname);
+    }
+
+    free(cwd);
+    free(todir);
+    return 0;
+}
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/nsinstall/pathsub.c
@@ -0,0 +1,302 @@
+/* 
+ * The contents of this file are subject to the Mozilla Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ * 
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ * 
+ * The Original Code is the Netscape security libraries.
+ * 
+ * The Initial Developer of the Original Code is Netscape
+ * Communications Corporation.  Portions created by Netscape are 
+ * Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+ * Rights Reserved.
+ * 
+ * Contributor(s):
+ * 
+ * Alternatively, the contents of this file may be used under the
+ * terms of the GNU General Public License Version 2 or later (the
+ * "GPL"), in which case the provisions of the GPL are applicable 
+ * instead of those above.  If you wish to allow use of your 
+ * version of this file only under the terms of the GPL and not to
+ * allow others to use your version of this file under the MPL,
+ * indicate your decision by deleting the provisions above and
+ * replace them with the notice and other provisions required by
+ * the GPL.  If you do not delete the provisions above, a recipient
+ * may use your version of this file under either the MPL or the
+ * GPL.
+ */
+
+/*
+** Pathname subroutines.
+*/
+#include <assert.h>
+#ifdef FREEBSD
+#include <sys/types.h>
+#endif /* FREEBSD */
+#include <dirent.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include "pathsub.h"
+#ifdef USE_REENTRANT_LIBC
+#include "libc_r.h"
+#endif /* USE_REENTRANT_LIBC */
+
+char *program;
+
+void
+fail(char *format, ...)
+{
+    int error;
+    va_list ap;
+
+#ifdef USE_REENTRANT_LIBC
+    R_STRERROR_INIT_R();
+#endif
+
+    error = errno;
+    fprintf(stderr, "%s: ", program);
+    va_start(ap, format);
+    vfprintf(stderr, format, ap);
+    va_end(ap);
+    if (error)
+
+#ifdef USE_REENTRANT_LIBC
+    R_STRERROR_R(errno);
+	fprintf(stderr, ": %s", r_strerror_r);
+#else
+	fprintf(stderr, ": %s", strerror(errno));
+#endif
+
+    putc('\n', stderr);
+    abort();
+    exit(1);
+}
+
+char *
+getcomponent(char *path, char *name)
+{
+    if (*path == '\0')
+	return 0;
+    if (*path == '/') {
+	*name++ = '/';
+    } else {
+	do {
+	    *name++ = *path++;
+	} while (*path != '/' && *path != '\0');
+    }
+    *name = '\0';
+    while (*path == '/')
+	path++;
+    return path;
+}
+
+#ifdef UNIXWARE
+/* The static buffer in Unixware's readdir is too small. */
+struct dirent * readdir(DIR *d)
+{
+    static struct dirent *buf = NULL;
+#define MAX_PATH_LEN 1024
+
+    if (buf == NULL)
+	buf = (struct dirent *)xmalloc(sizeof(struct dirent) + MAX_PATH_LEN) ;
+    return readdir_r(d, buf);
+}
+#endif
+
+/* APPARENT BUG - ignores argument "dir", uses ".." instead. */
+char *
+ino2name(ino_t ino, char *dir)
+{
+    DIR *dp;
+    struct dirent *ep;
+    char *name;
+
+    dp = opendir("..");		/* XXX */
+    if (!dp)
+	fail("cannot read parent directory");
+    for (;;) {
+	if (!(ep = readdir(dp)))
+	    fail("cannot find current directory");
+	if (ep->d_ino == ino)
+	    break;
+    }
+    name = xstrdup(ep->d_name);
+    closedir(dp);
+    return name;
+}
+
+void *
+xmalloc(size_t size)
+{
+    void *p;
+
+    if (size <= 0)
+	fail("attempted to allocate %u bytes", size);
+    p = malloc(size);
+    if (!p)
+	fail("cannot allocate %u bytes", size);
+    return p;
+}
+
+char *
+xstrdup(char *s)
+{
+    if (!s || !s[0]) 
+	fail("Null pointer or empty string passed to xstrdup()");
+    return strcpy((char*)xmalloc(strlen(s) + 1), s);
+}
+
+char *
+xbasename(char *path)
+{
+    char *cp;
+
+    if (!path || !path[0]) 
+	fail("Null pointer or empty string passed to xbasename()");
+    while ((cp = strrchr(path, '/')) && cp[1] == '\0')
+	*cp = '\0';
+    if (!cp) return path;
+    return cp + 1;
+}
+
+void
+xchdir(char *dir)
+{
+    if (!dir || !dir[0]) 
+	fail("Null pointer or empty string passed to xchdir()");
+    if (chdir(dir) < 0)
+	fail("cannot change directory to %s", dir);
+}
+
+int
+relatepaths(char *from, char *to, char *outpath)
+{
+    char *cp, *cp2;
+    int len;
+    char buf[NAME_MAX];
+
+    assert(*from == '/' && *to == '/');
+    if (!from || *from != '/')
+	fail("relatepaths: from path does not start with /");
+    if (!to || *to != '/')
+	fail("relatepaths: to   path does not start with /");
+
+    for (cp = to, cp2 = from; *cp == *cp2; cp++, cp2++)
+	if (*cp == '\0')
+	    break;
+    while (cp[-1] != '/')
+	cp--, cp2--;
+    if (cp - 1 == to) {
+	/* closest common ancestor is /, so use full pathname */
+	len = strlen(strcpy(outpath, to));
+	if (outpath[len] != '/') {
+	    outpath[len++] = '/';
+	    outpath[len] = '\0';
+	}
+    } else {
+	len = 0;
+	while ((cp2 = getcomponent(cp2, buf)) != 0) {
+	    strcpy(outpath + len, "../");
+	    len += 3;
+	}
+	while ((cp = getcomponent(cp, buf)) != 0) {
+	    sprintf(outpath + len, "%s/", buf);
+	    len += strlen(outpath + len);
+	}
+    }
+    return len;
+}
+
+void
+reversepath(char *inpath, char *name, int len, char *outpath)
+{
+    char *cp, *cp2;
+    char buf[NAME_MAX];
+    struct stat sb;
+
+    cp = strcpy(outpath + PATH_MAX - (len + 1), name);
+    cp2 = inpath;
+    while ((cp2 = getcomponent(cp2, buf)) != 0) {
+	if (strcmp(buf, ".") == 0)
+	    continue;
+	if (strcmp(buf, "..") == 0) {
+	    if (stat(".", &sb) < 0)
+		fail("cannot stat current directory");
+	    name = ino2name(sb.st_ino, "..");
+	    len = strlen(name);
+	    cp -= len + 1;
+	    strcpy(cp, name);
+	    cp[len] = '/';
+	    free(name);
+	    xchdir("..");
+	} else {
+	    cp -= 3;
+	    strncpy(cp, "../", 3);
+	    xchdir(buf);
+	}
+    }
+    strcpy(outpath, cp);
+}
+
+void
+diagnosePath(const char * path)
+{
+    char *	myPath;
+    char *      slash;
+    int		rv;
+    struct stat sb;
+    char 	buf[BUFSIZ];
+
+    if (!path || !path[0]) 
+	fail("Null pointer or empty string passed to mkdirs()");
+    myPath = strdup(path);
+    if (!myPath)
+	fail("strdup() failed!");
+    do {
+    	rv = lstat(myPath, &sb);
+	if (rv < 0) {
+	    perror(myPath);
+	} else if (S_ISLNK(sb.st_mode)) {
+	    rv = readlink(myPath, buf, sizeof buf);
+	    if (rv < 0) {
+	    	perror("readlink");
+		buf[0] = 0;
+	    } else {
+	    	buf[rv] = 0;
+	    }
+	    fprintf(stderr, "%s is a link to %s\n", myPath, buf);
+	} else if (S_ISDIR(sb.st_mode)) {
+	    fprintf(stderr, "%s is a directory\n", myPath);
+	    rv = access(myPath, X_OK);
+	    if (rv < 0) {
+	    	fprintf(stderr, "%s: no search permission\n", myPath);
+	    }
+	} else {
+	    fprintf(stderr, "%s is a file !?!\n", myPath);
+	    rv = access(myPath, F_OK);
+	    if (rv < 0) {
+	    	fprintf(stderr, "%s does not exist\n", myPath);
+	    }
+	}
+
+	/* chop path off one level. */
+	slash = strrchr(myPath, '/');
+	if (!slash)
+	    slash = strrchr(myPath, '\\');
+	if (!slash)
+	    slash = myPath;
+	*slash = 0;
+    } while (myPath[0]);
+    free(myPath);
+}
new file mode 100644
--- /dev/null
+++ b/security/coreconf/nsinstall/pathsub.h
@@ -0,0 +1,77 @@
+/* 
+ * The contents of this file are subject to the Mozilla Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ * 
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ * 
+ * The Original Code is the Netscape security libraries.
+ * 
+ * The Initial Developer of the Original Code is Netscape
+ * Communications Corporation.  Portions created by Netscape are 
+ * Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+ * Rights Reserved.
+ * 
+ * Contributor(s):
+ * 
+ * Alternatively, the contents of this file may be used under the
+ * terms of the GNU General Public License Version 2 or later (the
+ * "GPL"), in which case the provisions of the GPL are applicable 
+ * instead of those above.  If you wish to allow use of your 
+ * version of this file only under the terms of the GPL and not to
+ * allow others to use your version of this file under the MPL,
+ * indicate your decision by deleting the provisions above and
+ * replace them with the notice and other provisions required by
+ * the GPL.  If you do not delete the provisions above, a recipient
+ * may use your version of this file under either the MPL or the
+ * GPL.
+ */
+
+#ifndef pathsub_h___
+#define pathsub_h___
+/*
+** Pathname subroutines.
+**
+** Brendan Eich, 8/29/95
+*/
+#include <limits.h>
+#include <sys/types.h>
+
+#if SUNOS4
+#include "sunos4.h"
+#endif
+
+#ifndef PATH_MAX
+#define PATH_MAX 1024
+#endif
+
+/*
+ * Just keep sane lengths
+ */
+#undef NAME_MAX
+#define NAME_MAX 256
+
+extern char *program;
+
+extern void fail(char *format, ...);
+extern char *getcomponent(char *path, char *name);
+extern char *ino2name(ino_t ino, char *dir);
+extern void *xmalloc(size_t size);
+extern char *xstrdup(char *s);
+extern char *xbasename(char *path);
+extern void xchdir(char *dir);
+
+/* Relate absolute pathnames from and to returning the result in outpath. */
+extern int relatepaths(char *from, char *to, char *outpath);
+
+/* NOTE: changes current working directory -- caveat emptor */
+extern void reversepath(char *inpath, char *name, int len, char *outpath);
+
+/* stats every directory in path, reports results. */
+extern void diagnosePath(const char * path);
+
+#endif /* pathsub_h___ */
new file mode 100644
--- /dev/null
+++ b/security/coreconf/nsinstall/sunos4.h
@@ -0,0 +1,163 @@
+/* 
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+ */
+
+#ifndef pr_sunos4_h___
+#define pr_sunos4_h___
+
+#ifndef SVR4
+
+/*
+** Hodge podge of random missing prototypes for the Sunos4 system
+*/
+#include <stdio.h>
+#include <stdarg.h>
+#include <time.h>
+#include <limits.h>
+#include <sys/types.h>
+
+#define PATH_MAX _POSIX_PATH_MAX
+
+struct timeval;
+struct timezone;
+struct itimerval;
+struct sockaddr;
+struct stat;
+struct tm;
+
+/* ctype.h */
+extern int tolower(int);
+extern int toupper(int);
+
+/* errno.h */
+extern char *sys_errlist[];
+extern int sys_nerr;
+
+#define strerror(e) sys_errlist[((unsigned)(e) < sys_nerr) ? e : 0]
+
+extern void perror(const char *);
+
+/* getopt */
+extern char *optarg;
+extern int optind;
+extern int getopt(int argc, char **argv, char *spec);
+
+/* math.h */
+extern int srandom(long val);
+extern long random(void);
+
+/* memory.h */
+#define memmove(to,from,len) bcopy((char*)(from),(char*)(to),len)
+
+extern void bcopy(const char *, char *, int);
+
+/* signal.h */
+/*
+** SunOS4 sigaction hides interrupts by default, so we can safely define
+** SA_RESTART to 0 (HP-UX is a counter-example -- its sigaction does not
+** hide interrupts but lacks an SA_RESTART option; you must use sigvector
+** and tweak the sigcontext from within each signal handler!).
+*/
+#define SA_RESTART 0
+#define SA_SIGINFO 0
+
+/* stdio.h */
+extern int printf(const char *, ...);
+extern int fprintf(FILE *, const char *, ...);
+extern int vprintf(const char *, va_list);
+extern int vfprintf(FILE *, const char *, va_list);
+extern char *vsprintf(char *, const char *, va_list);
+extern int scanf(const char *, ...);
+extern int sscanf(const char *, const char *, ...);
+extern int fscanf(FILE *, const char *, ...);
+extern int fgetc(FILE *);
+extern int fputc(int, FILE *);
+extern int fputs(const char *, FILE *);
+extern int puts(const char *);
+extern int fread(void *, size_t, size_t, FILE *);
+extern int fwrite(const char *, int, int, FILE *);
+extern int fseek(FILE *, long, int);
+extern long ftell(FILE *);
+extern int rewind(FILE *);
+extern int fflush(FILE *);
+extern int _flsbuf(unsigned char, FILE *);
+extern int fclose(FILE *);
+extern int remove(const char *);
+extern int setvbuf(FILE *, char *, int, size_t);
+extern int system(const char *);
+extern FILE *popen(const char *, const char *);
+extern int pclose(FILE *);
+
+/* stdlib.h */
+#define strtoul strtol
+
+extern int isatty(int fildes);
+extern long strtol(const char *, char **, int);
+extern int putenv(const char *);
+extern void srand48(long);
+extern long lrand48(void);
+extern double drand48(void);
+
+/* string.h */
+extern int strcasecmp(const char *, const char *);
+extern int strncasecmp(const char *, const char *, size_t);
+extern int strcoll(const char *, const char *);
+
+/* time.h */
+extern time_t mktime(struct tm *);
+extern size_t strftime(char *, size_t, const char *, const struct tm *);
+extern int gettimeofday(struct timeval *, struct timezone *);
+extern int setitimer(int, struct itimerval *, struct itimerval *);
+extern time_t time(time_t *);
+extern time_t timegm(struct tm *);
+extern struct tm *localtime(const time_t *);
+extern struct tm *gmtime(const time_t *);
+
+/* unistd.h */
+extern int rename(const char *, const char *);
+extern int ioctl(int, int, int *arg);
+extern int connect(int, struct sockaddr *, int);
+extern int readlink(const char *, char *, int);
+extern int symlink(const char *, const char *);
+extern int ftruncate(int, off_t);
+extern int fchmod(int, mode_t);
+extern int fchown(int, uid_t, gid_t);
+extern int lstat(const char *, struct stat *);
+extern int fstat(int, struct stat *);
+extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
+extern int gethostname(char *, int);
+extern char *getwd(char *);
+extern int getpagesize(void);
+
+#endif /* SVR4 */
+
+#endif /* pr_sunos4_h___ */
new file mode 100755
--- /dev/null
+++ b/security/coreconf/outofdate.pl
@@ -0,0 +1,67 @@
+#!/usr/local/bin/perl
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#Input: [-d dir] foo1.java foo2.java
+#Compares with: foo1.class foo2.class (if -d specified, checks in 'dir', 
+#  otherwise assumes .class files in same directory as .java files)
+#Returns: list of input arguments which are newer than corresponding class
+#files (non-existant class files are considered to be real old :-)
+
+$found = 1;
+
+if ($ARGV[0] eq '-d') {
+    $classdir = $ARGV[1];
+    $classdir .= "/";
+    shift;
+    shift;
+} else {
+    $classdir = "./";
+}
+
+foreach $filename (@ARGV) {
+    $classfilename = $classdir;
+    $classfilename .= $filename;
+    $classfilename =~ s/.java$/.class/;
+    ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,
+     $ctime,$blksize,$blocks) = stat($filename);
+    ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$classmtime,
+     $ctime,$blksize,$blocks) = stat($classfilename);
+#    print $filename, " ", $mtime, ", ", $classfilename, " ", $classmtime, "\n";
+    if ($mtime > $classmtime) {
+        print $filename, " ";
+        $found = 0;
+    }
+}
+
+print "\n";
new file mode 100644
--- /dev/null
+++ b/security/coreconf/platform.mk
@@ -0,0 +1,38 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+# Master "Core Components" <platform> tag                             #
+#######################################################################
+
+PLATFORM = $(OBJDIR_NAME)
new file mode 100644
--- /dev/null
+++ b/security/coreconf/prefix.mk
@@ -0,0 +1,88 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+# Master "Core Components" for computing program prefixes             #
+#######################################################################
+
+#
+# Object prefixes
+#
+
+ifndef OBJ_PREFIX
+	OBJ_PREFIX = 
+endif
+
+#
+# Library suffixes
+#
+
+ifndef LIB_PREFIX
+	ifeq ($(OS_ARCH), WINNT)
+		LIB_PREFIX = 
+	else
+		LIB_PREFIX = lib
+	endif
+endif
+
+
+ifndef DLL_PREFIX
+	ifeq ($(OS_ARCH), WINNT)
+		DLL_PREFIX = 
+	else
+		DLL_PREFIX = lib
+	endif
+endif
+
+
+ifndef IMPORT_LIB_PREFIX
+	IMPORT_LIB_PREFIX = 
+endif
+
+
+ifndef PURE_LIB_PREFIX
+	ifeq ($(OS_ARCH), WINNT)
+		PURE_LIB_PREFIX =
+	else
+		PURE_LIB_PREFIX = purelib
+	endif
+endif
+
+#
+# Program prefixes
+#
+
+ifndef PROG_PREFIX
+	PROG_PREFIX = 
+endif
+
new file mode 100755
--- /dev/null
+++ b/security/coreconf/release.pl
@@ -0,0 +1,136 @@
+#! /usr/local/bin/perl
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+
+require('coreconf.pl');
+
+#######-- read in variables on command line into %var
+
+$var{ZIP} = "zip";
+
+&parse_argv;
+
+ 
+######-- Do the packaging of jars.
+
+foreach $jarfile (split(/ /,$var{FILES}) ) {
+    print STDERR "---------------------------------------------\n";
+    print STDERR "Packaging jar file $jarfile....\n";
+
+    $jarinfo = $var{$jarfile};
+
+    ($jardir,$jaropts) = split(/\|/,$jarinfo);
+
+    $zipoptions = "-T";
+    if ($jaropts =~ /a/) {
+	if ($var{OS_ARCH} eq 'WINNT') {
+	    $zipoptions .= ' -ll';
+	}
+    }
+
+# don't compress jar files containing classes since some java
+# implementations do not implement decompression correctly
+	if ( ($jarfile eq 'xpclass.jar') || ($jarfile eq 'xpclass_dbg.jar') ) {
+	    $zipoptions .= ' -0';
+	}
+
+
+# just in case the directory ends in a /, remove it
+    if ($jardir =~ /\/$/) {
+	chop $jardir;
+    }
+
+    $dirdepth --;
+    
+    print STDERR "jardir = $jardir\n";
+    system("ls $jardir");
+
+    if (-d $jardir) {
+
+
+# count the number of slashes
+
+	$slashes =0;
+	
+	foreach $i (split(//,$jardir)) {
+	    if ($i =~ /\//) {
+		$slashes++;
+	    }
+	}
+
+	$dotdots =0;
+	
+	foreach $i (split(m|/|,$jardir)) {
+	    if ($i eq '..') {
+		$dotdots ++;
+	    }
+	}
+
+	$dirdepth = ($slashes +1) - (2*$dotdots);
+
+	print STDERR "changing dir $jardir\n";
+	chdir($jardir);
+	print STDERR "making dir META-INF\n";
+	mkdir("META-INF",0755);
+
+	$filelist = "";
+	opendir(DIR,".");
+	while ($_ = readdir(DIR)) {
+	    if (! ( ($_ eq '.') || ($_ eq '..'))) {
+		if ( $jaropts =~ /i/) {
+		    if (! /^include$/) {
+			$filelist .= "$_ ";
+		    }
+		}
+		else {
+		    $filelist .= "$_ ";
+		}
+	    }
+	}
+	closedir(DIR);	
+
+	print STDERR "zip $zipoptions -r $jarfile $filelist\n";
+	system("zip $zipoptions -r $jarfile $filelist");
+	rmdir("META-INF");
+	    for $i (1 .. $dirdepth) {
+	    chdir("..");
+	    print STDERR "chdir ..\n";
+	}
+    }
+    else {
+        print STDERR "Directory $jardir doesn't exist\n";
+    }
+
+}
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/rules.mk
@@ -0,0 +1,971 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+###                                                                 ###
+###              R U L E S   O F   E N G A G E M E N T              ###
+###                                                                 ###
+#######################################################################
+
+#######################################################################
+# Double-Colon rules for utilizing the binary release model.          #
+#######################################################################
+
+all:: export libs program install
+
+ifeq ($(AUTOCLEAN),1)
+autobuild:: clean export private_export libs program install
+else
+autobuild:: export private_export libs program install
+endif
+
+platform::
+	@echo $(OBJDIR_NAME)
+
+
+#
+# IMPORTS will always be associated with a component.  Therefore,
+# the "import" rule will always change directory to the top-level
+# of a component, and traverse the IMPORTS keyword from the
+# "manifest.mn" file located at this level only.
+#
+# note: if there is a trailing slash, the component will be appended
+#       (see import.pl - only used for xpheader.jar)
+
+import::
+	@echo "== import.pl =="
+	@perl -I$(CORE_DEPTH)/coreconf $(CORE_DEPTH)/coreconf/import.pl \
+		"RELEASE_TREE=$(RELEASE_TREE)"   \
+		"IMPORTS=$(IMPORTS)"             \
+		"VERSION=$(VERSION)" \
+		"OS_ARCH=$(OS_ARCH)"             \
+		"PLATFORM=$(PLATFORM)" \
+		"OVERRIDE_IMPORT_CHECK=$(OVERRIDE_IMPORT_CHECK)"   \
+		"ALLOW_VERSION_OVERRIDE=$(ALLOW_VERSION_OVERRIDE)" \
+		"SOURCE_RELEASE_PREFIX=$(SOURCE_RELEASE_XP_DIR)"   \
+		"SOURCE_MD_DIR=$(SOURCE_MD_DIR)"      \
+		"SOURCE_XP_DIR=$(SOURCE_XP_DIR)"      \
+		"FILES=$(IMPORT_XPCLASS_JAR) $(XPHEADER_JAR) $(MDHEADER_JAR) $(MDBINARY_JAR)" \
+		"$(IMPORT_XPCLASS_JAR)=$(IMPORT_XP_DIR)|$(IMPORT_XPCLASS_DIR)|"    \
+		"$(XPHEADER_JAR)=$(IMPORT_XP_DIR)|$(SOURCE_XP_DIR)/public/|v" \
+		"$(MDHEADER_JAR)=$(IMPORT_MD_DIR)|$(SOURCE_MD_DIR)/include|"        \
+		"$(MDBINARY_JAR)=$(IMPORT_MD_DIR)|$(SOURCE_MD_DIR)|"
+
+export::
+	+$(LOOP_OVER_DIRS)
+
+private_export::
+	+$(LOOP_OVER_DIRS)
+
+release_export::
+	+$(LOOP_OVER_DIRS)
+
+release_classes::
+	+$(LOOP_OVER_DIRS)
+
+libs program install:: $(TARGETS)
+ifdef LIBRARY
+	$(INSTALL) -m 664 $(LIBRARY) $(SOURCE_LIB_DIR)
+endif
+ifdef SHARED_LIBRARY
+	$(INSTALL) -m 775 $(SHARED_LIBRARY) $(SOURCE_LIB_DIR)
+endif
+ifdef IMPORT_LIBRARY
+	$(INSTALL) -m 775 $(IMPORT_LIBRARY) $(SOURCE_LIB_DIR)
+endif
+ifdef PURE_LIBRARY
+	$(INSTALL) -m 775 $(PURE_LIBRARY) $(SOURCE_LIB_DIR)
+endif
+ifdef PROGRAM
+	$(INSTALL) -m 775 $(PROGRAM) $(SOURCE_BIN_DIR)
+endif
+ifdef PROGRAMS
+	$(INSTALL) -m 775 $(PROGRAMS) $(SOURCE_BIN_DIR)
+endif
+	+$(LOOP_OVER_DIRS)
+
+tests::
+	+$(LOOP_OVER_DIRS)
+
+clean clobber::
+	rm -rf $(ALL_TRASH)
+	+$(LOOP_OVER_DIRS)
+
+realclean clobber_all::
+	rm -rf $(wildcard *.OBJ) dist $(ALL_TRASH)
+	+$(LOOP_OVER_DIRS)
+
+#ifdef ALL_PLATFORMS
+#all_platforms:: $(NFSPWD)
+#	@d=`$(NFSPWD)`;							\
+#	if test ! -d LOGS; then rm -rf LOGS; mkdir LOGS; fi;		\
+#	for h in $(PLATFORM_HOSTS); do					\
+#		echo "On $$h: $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log";\
+#		rsh $$h -n "(chdir $$d;					\
+#			     $(MAKE) $(ALL_PLATFORMS) >& LOGS/$$h.log;	\
+#			     echo DONE) &" 2>&1 > LOGS/$$h.pid &	\
+#		sleep 1;						\
+#	done
+#
+#$(NFSPWD):
+#	cd $(@D); $(MAKE) $(@F)
+#endif
+
+#######################################################################
+# Double-Colon rules for populating the binary release model.         #
+#######################################################################
+
+
+release_clean::
+	rm -rf $(SOURCE_XP_DIR)/release/$(RELEASE_MD_DIR)
+
+release:: release_clean release_export release_classes release_policy release_md release_jars release_cpdistdir
+
+release_cpdistdir::
+	@echo "== cpdist.pl =="
+	@perl -I$(CORE_DEPTH)/coreconf $(CORE_DEPTH)/coreconf/cpdist.pl \
+		"RELEASE_TREE=$(RELEASE_TREE)" \
+		"CORE_DEPTH=$(CORE_DEPTH)" \
+		"MODULE=${MODULE}" \
+		"OS_ARCH=$(OS_ARCH)" \
+		"RELEASE=$(RELEASE)" \
+		"PLATFORM=$(PLATFORM)" \
+		"RELEASE_VERSION=$(RELEASE_VERSION)" \
+		"SOURCE_RELEASE_PREFIX=$(SOURCE_RELEASE_XP_DIR)" \
+		"RELEASE_XP_DIR=$(RELEASE_XP_DIR)" \
+		"RELEASE_MD_DIR=$(RELEASE_MD_DIR)" \
+		"FILES=$(XPCLASS_JAR) $(XPCLASS_DBG_JAR) $(XPHEADER_JAR) $(MDHEADER_JAR) $(MDBINARY_JAR) XP_FILES MD_FILES" \
+		"$(XPCLASS_JAR)=$(SOURCE_RELEASE_CLASSES_DIR)|x"\
+		"$(XPCLASS_DBG_JAR)=$(SOURCE_RELEASE_CLASSES_DBG_DIR)|x"\
+		"$(XPHEADER_JAR)=$(SOURCE_RELEASE_XPHEADERS_DIR)|x" \
+		"$(MDHEADER_JAR)=$(SOURCE_RELEASE_MDHEADERS_DIR)|m" \
+		"$(MDBINARY_JAR)=$(SOURCE_RELEASE_MD_DIR)|m" \
+		"XP_FILES=$(XP_FILES)|xf" \
+		"MD_FILES=$(MD_FILES)|mf"
+
+
+# $(SOURCE_RELEASE_xxx_JAR) is a name like yyy.jar
+# $(SOURCE_RELEASE_xx_DIR)  is a name like 
+
+release_jars::
+	@echo "== release.pl =="
+	@perl -I$(CORE_DEPTH)/coreconf $(CORE_DEPTH)/coreconf/release.pl \
+		"RELEASE_TREE=$(RELEASE_TREE)" \
+		"PLATFORM=$(PLATFORM)" \
+		"OS_ARCH=$(OS_ARCH)" \
+		"RELEASE_VERSION=$(RELEASE_VERSION)" \
+		"SOURCE_RELEASE_DIR=$(SOURCE_RELEASE_DIR)" \
+		"FILES=$(XPCLASS_JAR) $(XPCLASS_DBG_JAR) $(XPHEADER_JAR) $(MDHEADER_JAR) $(MDBINARY_JAR)" \
+		"$(XPCLASS_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DIR)|b"\
+		"$(XPCLASS_DBG_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DBG_DIR)|b"\
+		"$(XPHEADER_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_XPHEADERS_DIR)|a" \
+		"$(MDHEADER_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_MDHEADERS_DIR)|a" \
+		"$(MDBINARY_JAR)=$(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_MD_DIR)|bi"
+
+# Rules for releasing classes.
+# We have to do some REALLY gross stuff to deal with multiple classes in one
+# file, as well as nested classes, which have a filename of the form
+# ContainingClass$NestedClass.class.
+# RELEASE_CLASSES simply performs a required patsubst on CLASSES
+# RELEASE_CLASS_PATH is RELEASE_CLASSES with the path (in ns/dist) prepended
+# RELEASE_NESTED is all the nested classes in RELEASE_CLASS_PATH.  We use a
+#   foreach and wildcard to get all the files that start out like one of the
+#   class files, then have a $.  So, for each class file, we look for file$*
+# RELEASE_FILES is the combination of RELEASE_NESTED and the class files
+#   specified by RELEASE_CLASSES which have .class appended to them.  Note that
+#   the RELEASE_NESTED don't need to have .class appended because they were
+#   read in from the wildcard as complete filenames.
+#
+# The _DBG versions are the debuggable ones.
+ifneq ($(CLASSES),)
+
+RELEASE_CLASSES := $(patsubst %,%,$(CLASSES))
+
+ifdef BUILD_OPT
+	RELEASE_CLASS_PATH := $(patsubst %,$(SOURCE_CLASSES_DIR)/$(PACKAGE)/%, $(RELEASE_CLASSES))
+	RELEASE_NESTED := $(foreach file,$(RELEASE_CLASS_PATH),$(wildcard $(file)$$*))
+	RELEASE_FILES := $(patsubst %,%.class,$(RELEASE_CLASS_PATH)) $(RELEASE_NESTED)
+else
+	RELEASE_DBG_CLASS_PATH:= $(patsubst %,$(SOURCE_CLASSES_DBG_DIR)/$(PACKAGE)/%, $(RELEASE_CLASSES))
+	RELEASE_DBG_NESTED := $(foreach file,$(RELEASE_DBG_CLASS_PATH),$(wildcard $(file)$$*))
+	RELEASE_DBG_FILES := $(patsubst %,%.class,$(RELEASE_DBG_CLASS_PATH)) $(RELEASE_DBG_NESTED)
+endif
+
+# Substitute \$ for $ so the shell doesn't choke
+ifdef BUILD_OPT
+release_classes::
+	$(INSTALL) -m 444 $(subst $$,\$$,$(RELEASE_FILES)) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DIR)/$(PACKAGE)
+else
+release_classes::
+	$(INSTALL) -m 444 $(subst $$,\$$,$(RELEASE_DBG_FILES)) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_CLASSES_DBG_DIR)/$(PACKAGE)
+endif
+
+endif
+
+ifneq ($(POLICY),)
+release_policy::
+ifdef LIBRARY
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(LIBRARY)
+endif
+ifdef SHARED_LIBRARY
+ifdef COMPRESS_TARGET
+	if test -f $(SHARED_LIBRARY).bak; then 			\
+		cp $(SHARED_LIBRARY).bak $(SHARED_LIBRARY);	\
+	fi;
+endif
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(SHARED_LIBRARY)
+ifdef COMPRESS_TARGET
+	$(COMPRESS_TARGET) $(SHARED_LIBRARY)
+endif
+endif
+ifdef IMPORT_LIBRARY
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(IMPORT_LIBRARY)
+endif
+ifdef PURE_LIBRARY
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(PURE_LIBRARY)
+endif
+ifdef PROGRAM
+ifdef COMPRESS_TARGET
+	if test -f $(PROGRAM).bak; then		\
+		cp $(PROGRAM).bak $(PROGRAM);	\
+	fi;
+endif
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(PROGRAM)
+ifdef COMPRESS_TARGET
+	$(COMPRESS_TARGET) $(PROGRAM)
+endif
+endif
+ifdef PROGRAMS
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $(PROGRAMS)
+endif
+	+$(LOOP_OVER_DIRS)
+else
+release_policy::
+	+$(LOOP_OVER_DIRS)
+endif
+
+release_md::
+ifdef LIBRARY
+	$(INSTALL) -m 444 $(LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)
+endif
+ifdef SHARED_LIBRARY
+	$(INSTALL) -m 555 $(SHARED_LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)
+endif
+ifdef IMPORT_LIBRARY
+	$(INSTALL) -m 555 $(IMPORT_LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)
+endif
+ifdef PURE_LIBRARY
+	$(INSTALL) -m 555 $(PURE_LIBRARY) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)
+endif
+ifdef PROGRAM
+	$(INSTALL) -m 555 $(PROGRAM) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_BIN_DIR)
+endif
+ifdef PROGRAMS
+	$(INSTALL) -m 555 $(PROGRAMS) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_BIN_DIR)
+endif
+	+$(LOOP_OVER_DIRS)
+
+
+alltags:
+	rm -f TAGS
+	find . -name dist -prune -o \( -name '*.[hc]' -o -name '*.cp' -o -name '*.cpp' \) -print | xargs etags -a
+	find . -name dist -prune -o \( -name '*.[hc]' -o -name '*.cp' -o -name '*.cpp' \) -print | xargs ctags -a
+
+$(PROGRAM): $(OBJS) $(EXTRA_LIBS)
+	@$(MAKE_OBJDIR)
+ifeq ($(OS_ARCH),WINNT)
+ifeq ($(OS_TARGET),WIN16)
+	echo system windows >w16link
+	echo option map >>w16link
+	echo option oneautodata >>w16link
+	echo option heapsize=32K >>w16link
+	echo debug watcom all >>w16link
+	echo name $@ >>w16link
+	echo file >>w16link
+	echo $(W16OBJS) , >>w16link
+	echo $(W16LDFLAGS) >> w16link
+	echo library >>w16link
+	echo winsock.lib >>w16link
+	$(LINK) @w16link.
+	rm w16link
+else
+	$(MKPROG) $(OBJS) -Fe$@ -link $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
+endif
+else
+	$(MKPROG) -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
+endif
+ifneq ($(POLICY),)
+#ifdef COMPRESS_TARGET
+#	$(COMPRESS_TARGET)
+# We're going to cache a copy to keep around
+#	cp $(PROGRAM) $(PROGRAM).org
+#endif
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $@
+endif
+
+$(LIBRARY): $(OBJS)
+	@$(MAKE_OBJDIR)
+	rm -f $@
+	$(AR) $(OBJS)
+	$(RANLIB) $@
+
+ifeq ($(OS_TARGET), WIN16)
+$(IMPORT_LIBRARY): $(SHARED_LIBRARY)
+	wlib +$(SHARED_LIBRARY)
+endif
+
+$(SHARED_LIBRARY): $(OBJS)
+	@$(MAKE_OBJDIR)
+	rm -f $@
+ifeq ($(OS_ARCH)$(OS_RELEASE), AIX4.1)
+	echo "#!" > $(OBJDIR)/lib$(LIBRARY_NAME)_syms
+	nm -B -C -g $(OBJS) \
+	| awk '/ [T,D] / {print $$3}' \
+	| sed -e 's/^\.//' \
+	| sort -u >> $(OBJDIR)/lib$(LIBRARY_NAME)_syms
+	$(LD) $(XCFLAGS) -o $@ $(OBJS) -bE:$(OBJDIR)/lib$(LIBRARY_NAME)_syms \
+	-bM:SRE -bnoentry $(OS_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS)
+else
+ifeq ($(OS_ARCH), WINNT)
+ifeq ($(OS_TARGET), WIN16)
+	echo system windows dll initinstance >w16link
+	echo option map >>w16link
+	echo option oneautodata >>w16link
+	echo option heapsize=32K >>w16link
+	echo debug watcom all >>w16link
+	echo name $@ >>w16link
+	echo file >>w16link
+	echo $(W16OBJS) >>w16link
+	echo $(W16LIBS) >>w16link
+	echo libfile libentry >>w16link
+	$(LINK) @w16link.
+	rm w16link
+else
+	$(LINK_DLL) -MAP $(DLLBASE) $(OBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS)
+endif
+else
+	$(MKSHLIB) -o $@ $(OBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS)
+	chmod +x $@
+endif
+endif
+ifneq ($(POLICY),)
+#ifdef COMPRESS_TARGET
+#	$(COMPRESS_TARGET)
+#	cp $@ $@.org
+#endif
+	-$(PLCYPATCH) $(PLCYPATCH_ARGS) $@
+endif
+
+$(PURE_LIBRARY):
+	rm -f $@
+ifneq ($(OS_ARCH), WINNT)
+	$(AR) $(OBJS)
+endif
+	$(RANLIB) $@
+
+ifeq ($(OS_ARCH), WINNT)
+$(RES): $(RESNAME)
+	@$(MAKE_OBJDIR)
+	$(RC) -Fo$(RES) $(RESNAME)
+	@echo $(RES) finished
+endif
+
+$(OBJDIR)/$(PROG_PREFIX)%$(PROG_SUFFIX): $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX)
+	@$(MAKE_OBJDIR)
+ifeq ($(OS_ARCH),WINNT)
+	$(MKPROG) $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) -Fe$@ -link \
+	$(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
+else
+	$(MKPROG) -o $@ $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) \
+	$(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
+endif
+
+ifdef HAVE_PURIFY
+$(OBJDIR)/$(PROG_PREFIX)%.pure: $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX)
+	@$(MAKE_OBJDIR)
+ifeq ($(OS_ARCH),WINNT)
+	$(PURIFY) $(CC) -Fo$@ -c $(CFLAGS) $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) $(PURELDFLAGS)
+else
+	$(PURIFY) $(CC) -o $@ $(CFLAGS) $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) $(PURELDFLAGS)
+endif
+endif
+
+WCCFLAGS1 := $(subst /,\\,$(CFLAGS))
+WCCFLAGS2 := $(subst -I,-i=,$(WCCFLAGS1))
+WCCFLAGS3 := $(subst -D,-d,$(WCCFLAGS2))
+
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c
+	@$(MAKE_OBJDIR)
+ifeq ($(OS_ARCH), WINNT)
+ifeq ($(OS_TARGET), WIN16)
+	echo $(WCCFLAGS3) >w16wccf
+	$(CC) -zq -fo$(OBJDIR)\\$(PROG_PREFIX)$*$(OBJ_SUFFIX)  @w16wccf $*.c
+	rm w16wccf
+else
+	$(CC) -Fo$@ -c $(CFLAGS) $*.c
+endif
+else
+	$(CC) -o $@ -c $(CFLAGS) $*.c
+endif
+
+ifneq ($(OS_ARCH), WINNT)
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.s
+	@$(MAKE_OBJDIR)
+	$(AS) -o $@ $(ASFLAGS) -c $*.s
+endif
+
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.asm
+	@$(MAKE_OBJDIR)
+	$(AS) -Fo$@ $(ASFLAGS) -c $*.asm
+
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.S
+	@$(MAKE_OBJDIR)
+	$(AS) -o $@ $(ASFLAGS) -c $*.S
+
+$(OBJDIR)/$(PROG_PREFIX)%: %.cpp
+	@$(MAKE_OBJDIR)
+ifeq ($(OS_ARCH), WINNT)
+	$(CCC) -Fo$@ -c $(CFLAGS) $<
+else
+	$(CCC) -o $@ -c $(CFLAGS) $<
+endif
+
+#
+# Please keep the next two rules in sync.
+#
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.cc
+	@$(MAKE_OBJDIR)
+	$(CCC) -o $@ -c $(CFLAGS) $*.cc
+
+$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.cpp
+	@$(MAKE_OBJDIR)
+ifdef STRICT_CPLUSPLUS_SUFFIX
+	echo "#line 1 \"$*.cpp\"" | cat - $*.cpp > $(OBJDIR)/t_$*.cc
+	$(CCC) -o $@ -c $(CFLAGS) $(OBJDIR)/t_$*.cc
+	rm -f $(OBJDIR)/t_$*.cc
+else
+ifeq ($(OS_ARCH),WINNT)
+	$(CCC) -Fo$@ -c $(CFLAGS) $*.cpp
+else
+	$(CCC) -o $@ -c $(CFLAGS) $*.cpp
+endif
+endif #STRICT_CPLUSPLUS_SUFFIX
+
+%.i: %.cpp
+ifeq ($(OS_TARGET), WIN16)
+	echo $(WCCFLAGS3) >w16wccf
+	$(CCC) -pl -fo=$* @w16wccf $*.cpp
+	rm w16wccf
+else
+	$(CCC) -C -E $(CFLAGS) $< > $*.i
+endif
+
+%.i: %.c
+ifeq ($(OS_TARGET), WIN16)
+	echo $(WCCFLAGS3) >w16wccf
+	$(CC) -pl -fo=$* @w16wccf $*.c
+	rm w16wccf
+else
+ifeq ($(OS_ARCH),WINNT)
+	$(CC) -C /P $(CFLAGS) $< 
+else
+	$(CC) -C -E $(CFLAGS) $< > $*.i
+endif
+endif
+
+ifneq ($(OS_ARCH), WINNT)
+%.i: %.s
+	$(CC) -C -E $(CFLAGS) $< > $*.i
+endif
+
+%: %.pl
+	rm -f $@; cp $*.pl $@; chmod +x $@
+
+%: %.sh
+	rm -f $@; cp $*.sh $@; chmod +x $@
+
+ifdef DIRS
+$(DIRS)::
+	@if test -d $@; then				\
+		set $(EXIT_ON_ERROR);			\
+		echo "cd $@; $(MAKE)";			\
+		cd $@; $(MAKE);				\
+		set +e;					\
+	else						\
+		echo "Skipping non-directory $@...";	\
+	fi;						\
+	$(CLICK_STOPWATCH)
+endif
+
+################################################################################
+# Bunch of things that extend the 'export' rule (in order):
+################################################################################
+
+$(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE) $(JMCSRCDIR)::
+	@if test ! -d $@; then	    \
+		echo Creating $@;   \
+		rm -rf $@;	    \
+		$(NSINSTALL) -D $@; \
+	fi
+
+################################################################################
+## IDL_GEN
+
+ifneq ($(IDL_GEN),)
+
+#export::
+#	$(IDL2JAVA) $(IDL_GEN)
+
+#all:: export
+
+#clobber::
+#	rm -f $(IDL_GEN:.idl=.class)	# XXX wrong!
+
+endif
+
+################################################################################
+### JSRCS -- for compiling java files
+###
+###          NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,
+###                 replace $(CORE_DEPTH) with $(NETLIBDEPTH).
+###
+
+ifneq ($(JSRCS),)
+ifneq ($(JAVAC),)
+ifdef NETLIBDEPTH
+	CORE_DEPTH := $(NETLIBDEPTH)
+endif
+
+JAVA_EXPORT_SRCS=$(shell perl $(CORE_DEPTH)/coreconf/outofdate.pl $(PERLARG)	-d $(JAVA_DESTPATH)/$(PACKAGE) $(JSRCS) $(PRIVATE_JSRCS))
+
+export:: $(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE)
+ifneq ($(JAVA_EXPORT_SRCS),)
+	$(JAVAC) $(JAVA_EXPORT_SRCS)
+endif
+
+all:: export
+
+clobber::
+	rm -f $(SOURCE_XP_DIR)/classes/$(PACKAGE)/*.class
+
+endif
+endif
+
+#
+# JDIRS -- like JSRCS, except you can give a list of directories and it will
+# compile all the out-of-date java files in those directories.
+#
+# NOTE: recursing through these can speed things up, but they also cause
+# some builds to run out of memory
+#
+# NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,
+#        replace $(CORE_DEPTH) with $(NETLIBDEPTH).
+#
+ifdef JDIRS
+ifneq ($(JAVAC),)
+ifdef NETLIBDEPTH
+	CORE_DEPTH := $(NETLIBDEPTH)
+endif
+
+export:: $(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE)
+	@for d in $(JDIRS); do							\
+		if test -d $$d; then						\
+			set $(EXIT_ON_ERROR);					\
+			files=`echo $$d/*.java`;				\
+			list=`perl $(CORE_DEPTH)/coreconf/outofdate.pl $(PERLARG)	\
+				    -d $(JAVA_DESTPATH)/$(PACKAGE) $$files`;	\
+			if test "$${list}x" != "x"; then			\
+			    echo Building all java files in $$d;		\
+			    echo $(JAVAC) $$list;				\
+			    $(JAVAC) $$list;					\
+			fi;							\
+			set +e;							\
+		else								\
+			echo "Skipping non-directory $$d...";			\
+		fi;								\
+		$(CLICK_STOPWATCH);						\
+	done
+endif
+endif
+
+#
+# JDK_GEN -- for generating "old style" native methods 
+#
+# Generate JDK Headers and Stubs into the '_gen' and '_stubs' directory
+#
+# NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,
+#        replace $(CORE_DEPTH) with $(NETLIBDEPTH).
+#
+ifneq ($(JDK_GEN),)
+ifneq ($(JAVAH),)
+ifdef NSBUILDROOT
+	INCLUDES += -I$(JDK_GEN_DIR) -I$(SOURCE_XP_DIR)
+else
+	INCLUDES += -I$(JDK_GEN_DIR)
+endif
+
+ifdef NETLIBDEPTH
+	CORE_DEPTH := $(NETLIBDEPTH)
+endif
+
+JDK_PACKAGE_CLASSES	:= $(JDK_GEN)
+JDK_PATH_CLASSES	:= $(subst .,/,$(JDK_PACKAGE_CLASSES))
+JDK_HEADER_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JDK_PATH_CLASSES))
+JDK_STUB_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JDK_PATH_CLASSES))
+JDK_HEADER_CFILES	:= $(patsubst %,$(JDK_GEN_DIR)/%.h,$(JDK_GEN))
+JDK_STUB_CFILES		:= $(patsubst %,$(JDK_STUB_DIR)/%.c,$(JDK_GEN))
+
+$(JDK_HEADER_CFILES): $(JDK_HEADER_CLASSFILES)
+$(JDK_STUB_CFILES): $(JDK_STUB_CLASSFILES)
+
+export::
+	@echo Generating/Updating JDK headers 
+	$(JAVAH) -d $(JDK_GEN_DIR) $(JDK_PACKAGE_CLASSES)
+	@echo Generating/Updating JDK stubs
+	$(JAVAH) -stubs -d $(JDK_STUB_DIR) $(JDK_PACKAGE_CLASSES)
+ifndef NO_MAC_JAVA_SHIT
+	@if test ! -d $(CORE_DEPTH)/lib/mac/Java/; then						\
+		echo "!!! You need to have a ns/lib/mac/Java directory checked out.";		\
+		echo "!!! This allows us to automatically update generated files for the mac.";	\
+		echo "!!! If you see any modified files there, please check them in.";		\
+	fi
+	@echo Generating/Updating JDK headers for the Mac
+	$(JAVAH) -mac -d $(CORE_DEPTH)/lib/mac/Java/_gen $(JDK_PACKAGE_CLASSES)
+	@echo Generating/Updating JDK stubs for the Mac
+	$(JAVAH) -mac -stubs -d $(CORE_DEPTH)/lib/mac/Java/_stubs $(JDK_PACKAGE_CLASSES)
+endif
+endif
+endif
+
+#
+# JRI_GEN -- for generating "old style" JRI native methods
+#
+# Generate JRI Headers and Stubs into the 'jri' directory
+#
+# NOTE:  For backwards compatibility, if $(NETLIBDEPTH) is defined,
+#        replace $(CORE_DEPTH) with $(NETLIBDEPTH).
+#
+ifneq ($(JRI_GEN),)
+ifneq ($(JAVAH),)
+ifdef NSBUILDROOT
+	INCLUDES += -I$(JRI_GEN_DIR) -I$(SOURCE_XP_DIR)
+else
+	INCLUDES += -I$(JRI_GEN_DIR)
+endif
+
+ifdef NETLIBDEPTH
+	CORE_DEPTH := $(NETLIBDEPTH)
+endif
+
+JRI_PACKAGE_CLASSES	:= $(JRI_GEN)
+JRI_PATH_CLASSES	:= $(subst .,/,$(JRI_PACKAGE_CLASSES))
+JRI_HEADER_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JRI_PATH_CLASSES))
+JRI_STUB_CLASSFILES	:= $(patsubst %,$(JAVA_DESTPATH)/%.class,$(JRI_PATH_CLASSES))
+JRI_HEADER_CFILES	:= $(patsubst %,$(JRI_GEN_DIR)/%.h,$(JRI_GEN))
+JRI_STUB_CFILES		:= $(patsubst %,$(JRI_GEN_DIR)/%.c,$(JRI_GEN))
+
+$(JRI_HEADER_CFILES): $(JRI_HEADER_CLASSFILES)
+$(JRI_STUB_CFILES): $(JRI_STUB_CLASSFILES)
+
+export::
+	@echo Generating/Updating JRI headers 
+	$(JAVAH) -jri -d $(JRI_GEN_DIR) $(JRI_PACKAGE_CLASSES)
+	@echo Generating/Updating JRI stubs
+	$(JAVAH) -jri -stubs -d $(JRI_GEN_DIR) $(JRI_PACKAGE_CLASSES)
+ifndef NO_MAC_JAVA_SHIT
+	@if test ! -d $(CORE_DEPTH)/lib/mac/Java/; then						\
+		echo "!!! You need to have a ns/lib/mac/Java directory checked out.";		\
+		echo "!!! This allows us to automatically update generated files for the mac.";	\
+		echo "!!! If you see any modified files there, please check them in.";		\
+	fi
+	@echo Generating/Updating JRI headers for the Mac
+	$(JAVAH) -jri -mac -d $(CORE_DEPTH)/lib/mac/Java/_jri $(JRI_PACKAGE_CLASSES)
+	@echo Generating/Updating JRI stubs for the Mac
+	$(JAVAH) -jri -mac -stubs -d $(CORE_DEPTH)/lib/mac/Java/_jri $(JRI_PACKAGE_CLASSES)
+endif
+endif
+endif
+
+#
+# JNI_GEN -- for generating JNI native methods
+#
+# Generate JNI Headers into the 'jni' directory
+#
+ifneq ($(JNI_GEN),)
+ifneq ($(JAVAH),)
+JNI_HEADERS		:= $(patsubst %,$(JNI_GEN_DIR)/%.h,$(JNI_GEN))
+
+export::
+	@if test ! -d $(JNI_GEN_DIR); then						\
+		echo $(JAVAH) -jni -d $(JNI_GEN_DIR) $(JNI_GEN);			\
+		$(JAVAH) -jni -d $(JNI_GEN_DIR) $(JNI_GEN);				\
+	else										\
+		echo "Checking for out of date header files" ;                          \
+		cmd="perl $(CORE_DEPTH)/coreconf/jniregen.pl $(PERLARG)			\
+				-d $(JAVA_DESTPATH) $(JNI_GEN)";			\
+		echo $$cmd;								\
+		list=`$$cmd`;								\
+		if test "$${list}x" != "x"; then					\
+			echo $(JAVAH) -jni -d $(JNI_GEN_DIR) $$list;			\
+			$(JAVAH) -jni -d $(JNI_GEN_DIR) $$list;				\
+		fi									\
+	fi
+endif
+endif
+
+#
+# JMC_EXPORT -- for declaring which java classes are to be exported for jmc
+#
+ifneq ($(JMC_EXPORT),)
+JMC_EXPORT_PATHS	:= $(subst .,/,$(JMC_EXPORT))
+JMC_EXPORT_FILES	:= $(patsubst %,$(JAVA_DESTPATH)/$(PACKAGE)/%.class,$(JMC_EXPORT_PATHS))
+
+#
+# We're doing NSINSTALL -t here (copy mode) because calling INSTALL will pick up 
+# your NSDISTMODE and make links relative to the current directory. This is a
+# problem because the source isn't in the current directory:
+#
+export:: $(JMC_EXPORT_FILES) $(JMCSRCDIR)
+	$(NSINSTALL) -t -m 444 $(JMC_EXPORT_FILES) $(JMCSRCDIR)
+endif
+
+#
+# JMC_GEN -- for generating java modules
+#
+# Provide default export & install rules when using JMC_GEN
+#
+ifneq ($(JMC_GEN),)
+ifneq ($(JMC),)
+	INCLUDES    += -I$(JMC_GEN_DIR) -I.
+	JMC_HEADERS := $(patsubst %,$(JMC_GEN_DIR)/%.h,$(JMC_GEN))
+	JMC_STUBS   := $(patsubst %,$(JMC_GEN_DIR)/%.c,$(JMC_GEN))
+	JMC_OBJS    := $(patsubst %,$(OBJDIR)/%$(OBJ_SUFFIX),$(JMC_GEN))
+
+$(JMC_GEN_DIR)/M%.h: $(JMCSRCDIR)/%.class
+	$(JMC) -d $(JMC_GEN_DIR) -interface $(JMC_GEN_FLAGS) $(?F:.class=)
+
+$(JMC_GEN_DIR)/M%.c: $(JMCSRCDIR)/%.class
+	$(JMC) -d $(JMC_GEN_DIR) -module $(JMC_GEN_FLAGS) $(?F:.class=)
+
+$(OBJDIR)/M%$(OBJ_SUFFIX): $(JMC_GEN_DIR)/M%.h $(JMC_GEN_DIR)/M%.c
+	@$(MAKE_OBJDIR)
+	$(CC) -o $@ -c $(CFLAGS) $(JMC_GEN_DIR)/M$*.c
+
+export:: $(JMC_HEADERS) $(JMC_STUBS)
+endif
+endif
+
+#
+# Copy each element of EXPORTS to $(SOURCE_XP_DIR)/public/$(MODULE)/
+#
+PUBLIC_EXPORT_DIR = $(SOURCE_XP_DIR)/public/$(MODULE)
+ifeq ($(OS_ARCH),WINNT)
+ifeq ($(OS_TARGET),WIN16)
+PUBLIC_EXPORT_DIR = $(SOURCE_XP_DIR)/public/win16
+endif
+endif
+
+ifneq ($(EXPORTS),)
+$(PUBLIC_EXPORT_DIR)::
+	@if test ! -d $@; then	    \
+		echo Creating $@;   \
+		$(NSINSTALL) -D $@; \
+	fi
+
+export:: $(EXPORTS) $(PUBLIC_EXPORT_DIR)
+	$(INSTALL) -m 444 $(EXPORTS) $(PUBLIC_EXPORT_DIR)
+endif
+
+# Duplicate export rule for private exports, with different directories
+
+PRIVATE_EXPORT_DIR = $(SOURCE_XP_DIR)/private/$(MODULE)
+ifeq ($(OS_ARCH),WINNT)
+ifeq ($(OS_TARGET),WIN16)
+PRIVATE_EXPORT_DIR = $(SOURCE_XP_DIR)/public/win16
+endif
+endif
+
+ifneq ($(PRIVATE_EXPORTS),)
+$(PRIVATE_EXPORT_DIR)::
+	@if test ! -d $@; then	    \
+		echo Creating $@;   \
+		$(NSINSTALL) -D $@; \
+	fi
+
+private_export:: $(PRIVATE_EXPORTS) $(PRIVATE_EXPORT_DIR)
+	$(INSTALL) -m 444 $(PRIVATE_EXPORTS) $(PRIVATE_EXPORT_DIR)
+else
+private_export:: 
+	@echo There are no private exports.;
+endif
+
+##########################################################################
+###   RULES FOR RUNNING REGRESSION SUITE TESTS
+###   REQUIRES 'REGRESSION_SPEC' TO BE SET TO THE NAME OF A REGRESSION SPECFILE
+###   AND RESULTS_SUBDIR TO BE SET TO SOMETHING LIKE SECURITY/PKCS5
+##########################################################################
+
+TESTS_DIR = $(RESULTS_DIR)/$(RESULTS_SUBDIR)/$(OS_CONFIG)$(CPU_TAG)$(COMPILER_TAG)$(IMPL_STRATEGY)
+
+ifneq ($(REGRESSION_SPEC),)
+tests:: $(REGRESSION_SPEC) 
+	cd $(PLATFORM); \
+	../$(SOURCE_MD_DIR)/bin/regress$(PROG_SUFFIX) specfile=../$(REGRESSION_SPEC) progress $(EXTRA_REGRESS_OPTIONS); \
+	if test ! -d $(TESTS_DIR); then \
+		echo Creating $(TESTS_DIR);   \
+		$(NSINSTALL) -D $(TESTS_DIR); \
+	fi
+ifneq ($(BUILD_OPT),)
+	$(NSINSTALL) -m 664 $(PLATFORM)/$(REGDATE).sum $(TESTS_DIR); \
+	$(NSINSTALL) -m 664 $(PLATFORM)/$(REGDATE).htm $(TESTS_DIR); \
+	echo "Please now make sure your results files are copied to $(TESTS_DIR), "; \
+	echo "then run 'reporter specfile=$(RESULTS_DIR)/rptspec'"
+endif
+else
+tests:: 
+	@echo Error: you didn't specify REGRESSION_SPEC in your manifest.mn file!;
+endif
+
+
+# Duplicate export rule for releases, with different directories
+
+ifneq ($(EXPORTS),)
+$(SOURCE_RELEASE_XP_DIR)/include::
+	@if test ! -d $@; then	    \
+		echo Creating $@;   \
+		$(NSINSTALL) -D $@; \
+	fi
+
+release_export:: $(EXPORTS) $(SOURCE_RELEASE_XP_DIR)/include
+	$(INSTALL) -m 444 $(EXPORTS) $(SOURCE_RELEASE_XP_DIR)/include
+endif
+
+
+
+
+################################################################################
+
+-include $(DEPENDENCIES)
+
+ifneq ($(OS_ARCH),WINNT)
+# Can't use sed because of its 4000-char line length limit, so resort to perl
+.DEFAULT:
+	@perl -e '                                                            \
+	    open(MD, "< $(DEPENDENCIES)");                                    \
+	    while (<MD>) {                                                    \
+		if (m@ \.*/*$< @) {                                           \
+		    $$found = 1;                                              \
+		    last;                                                     \
+		}                                                             \
+	    }                                                                 \
+	    if ($$found) {                                                    \
+		print "Removing stale dependency $< from $(DEPENDENCIES)\n";  \
+		seek(MD, 0, 0);                                               \
+		$$tmpname = "$(OBJDIR)/fix.md" . $$$$;                        \
+		open(TMD, "> " . $$tmpname);                                  \
+		while (<MD>) {                                                \
+		    s@ \.*/*$< @ @;                                           \
+		    if (!print TMD "$$_") {                                   \
+			unlink(($$tmpname));                                  \
+			exit(1);                                              \
+		    }                                                         \
+		}                                                             \
+		close(TMD);                                                   \
+		if (!rename($$tmpname, "$(DEPENDENCIES)")) {                  \
+		    unlink(($$tmpname));                                      \
+		}                                                             \
+	    } elsif ("$<" ne "$(DEPENDENCIES)") {                             \
+		print "$(MAKE): *** No rule to make target $<.  Stop.\n";     \
+		exit(1);                                                      \
+	    }'
+endif
+
+#############################################################################
+# X dependency system
+#############################################################################
+
+ifdef MKDEPENDENCIES
+
+# For Windows, $(MKDEPENDENCIES) must be -included before including rules.mk
+
+$(MKDEPENDENCIES)::
+	@$(MAKE_OBJDIR)
+	touch $(MKDEPENDENCIES) 
+	chmod u+w $(MKDEPENDENCIES) 
+#on NT, the preceeding touch command creates a read-only file !?!?!
+#which is why we have to explicitly chmod it.
+	$(MKDEPEND) -p$(OBJDIR_NAME)/ -o'$(OBJ_SUFFIX)' -f$(MKDEPENDENCIES) \
+$(NOMD_CFLAGS) $(YOPT) $(CSRCS) $(CPPSRCS) $(ASFILES)
+
+$(MKDEPEND):: $(MKDEPEND_DIR)/*.c $(MKDEPEND_DIR)/*.h
+	cd $(MKDEPEND_DIR); $(MAKE)
+
+ifdef OBJS
+depend:: $(MKDEPEND) $(MKDEPENDENCIES)
+else
+depend::
+endif
+	+$(LOOP_OVER_DIRS)
+
+dependclean::
+	rm -f $(MKDEPENDENCIES)
+	+$(LOOP_OVER_DIRS)
+
+#-include $(NSINSTALL_DIR)/$(OBJDIR)/depend.mk
+
+else
+depend::
+endif
+
+################################################################################
+# Special gmake rules.
+################################################################################
+
+#
+# Re-define the list of default suffixes, so gmake won't have to churn through
+# hundreds of built-in suffix rules for stuff we don't need.
+#
+.SUFFIXES:
+.SUFFIXES: .out .a .ln .o .obj .c .cc .C .cpp .y .l .s .S .h .sh .i .pl .class .java .html .asm
+
+#
+# Don't delete these files if we get killed.
+#
+.PRECIOUS: .java $(JDK_HEADERS) $(JDK_STUBS) $(JRI_HEADERS) $(JRI_STUBS) $(JMC_HEADERS) $(JMC_STUBS) $(JNI_HEADERS)
+
+#
+# Fake targets.  Always run these rules, even if a file/directory with that
+# name already exists.
+#
+.PHONY: all all_platforms alltags boot clean clobber clobber_all export install libs realclean release $(OBJDIR) $(DIRS)
+
new file mode 100644
--- /dev/null
+++ b/security/coreconf/ruleset.mk
@@ -0,0 +1,362 @@
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+# 
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+# 
+# The Original Code is the Netscape security libraries.
+# 
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are 
+# Copyright (C) 1994-2000 Netscape Communications Corporation.  All
+# Rights Reserved.
+# 
+# Contributor(s):
+# 
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable 
+# instead of those above.  If you wish to allow use of your 
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL.  If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+#######################################################################
+#                                                                     #
+# Parameters to this makefile (set these in this file):               #
+#                                                                     #
+# a)                                                                  #
+#	TARGETS	-- the target to create                               #
+#			(defaults to $LIBRARY $PROGRAM)               #
+# b)                                                                  #
+#	DIRS	-- subdirectories for make to recurse on              #
+#			(the 'all' rule builds $TARGETS $DIRS)        #
+# c)                                                                  #
+#	CSRCS, CPPSRCS -- .c and .cpp files to compile                #
+#			(used to define $OBJS)                        #
+# d)                                                                  #
+#	PROGRAM	-- the target program name to create from $OBJS       #
+#			($OBJDIR automatically prepended to it)       #
+# e)                                                                  #
+#	LIBRARY	-- the target library name to create from $OBJS       #
+#			($OBJDIR automatically prepended to it)       #
+# f)                                                                  #
+#	JSRCS	-- java source files to compile into class files      #
+#			(if you don't specify this it will default    #
+#			 to *.java)                                   #
+# g)                                                                  #
+#	PACKAGE	-- the package to put the .class files into           #
+#			(e.g. netscape/applet)                        #
+#			(NOTE: the default definition for this may be #
+#                              overridden if "jdk.mk" is included)    #
+# h)                                                                  #
+#	JMC_EXPORT -- java files to be exported for use by JMC_GEN    #
+#			(this is a list of Class names)               #
+# i)                                                                  #
+#	JRI_GEN	-- files to run through javah to generate headers     #
+#                  and stubs                                          #
+#			(output goes into the _jri sub-dir)           #
+# j)                                                                  #
+#	JMC_GEN	-- files to run through jmc to generate headers       #
+#                  and stubs                                          #
+#			(output goes into the _jmc sub-dir)           #
+# k)                                                                  #
+#	JNI_GEN	-- files to run through javah to generate headers     #
+#			(output goes into the _jni sub-dir)           #
+#                                                                     #