Initial sic_team packages oi-extras
authorAndrzej Szeszo <aszeszo@gmail.com>
Thu, 21 Apr 2011 11:06:30 +0100
branchoi-extras
changeset 186 2eb177537214
parent 185 58ea2eba0c94
child 187 341fa9f87fac
Initial sic_team packages
sic_team/java-commons-logging/Makefile
sic_team/java-commons-logging/java-commons-logging.license
sic_team/java-commons-logging/java-commons-logging.p5m
sic_team/java-jss/Makefile
sic_team/java-jss/java-jss.license
sic_team/java-jss/java-jss.p5m
sic_team/java-jss/patches/coreconf.patch
sic_team/mozilla-nspr/Makefile
sic_team/mozilla-nspr/library-nspr-header-nspr.p5m
sic_team/mozilla-nspr/library-nspr.p5m
sic_team/mozilla-nspr/nspr.license
sic_team/mozilla-nspr/nspr.pc
sic_team/mozilla-nss/Makefile
sic_team/mozilla-nss/nss.license
sic_team/mozilla-nss/nss.pc
sic_team/mozilla-nss/system-library-mozilla-nss-header-nss.p5m
sic_team/mozilla-nss/system-library-mozilla-nss.p5m
sic_team/mozilla-nss/system-mozilla-nss.p5m
sic_team/sic_team-incorporation/Makefile
sic_team/sic_team-incorporation/sic_team-incorporation.p5m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/java-commons-logging/Makefile	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,38 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo 
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		commons-logging
+COMPONENT_VERSION=	1.0.4
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:633cad7b22536388da2c0b3ddb0661f25a07e849
+COMPONENT_ARCHIVE_URL=	http://archive.apache.org/dist/commons/logging/binaries/$(COMPONENT_ARCHIVE)
+
+include ../../make-rules/prep.mk
+include ../../make-rules/ips.mk
+
+PKGMANGLE = true
+PKGLINT = true
+
+build:
+
+install: prep
+	[ -d $(PROTO_DIR)/usr/share/lib ] || mkdir -p $(PROTO_DIR)/usr/share/lib
+	[ -f $(PROTO_DIR)/usr/share/lib/commons-logging.jar ] || \
+		cp $(SOURCE_DIR)/commons-logging.jar $(PROTO_DIR)/usr/share/lib
+
+clean::
+	[ -d $(BUILD_DIR) ] && rm -rf $(BUILD_DIR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/java-commons-logging/java-commons-logging.license	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/java-commons-logging/java-commons-logging.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,34 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo 
+#
+
+set name=pkg.fmri value=pkg:/library/java/[email protected],$(BUILD_VERSION)
+set name=pkg.description value="Apache Common Logging"
+set name=pkg.summary value="Apache Common Logging"
+set name=description value="Apache Common Logging"
+set name=info.classification value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=variant.opensolaris.zone value=global value=nonglobal
+set name=org.opensolaris.consolidation value=sic_team
+set name=variant.arch value=$(MACH)
+legacy arch=$(MACH) category=system desc="Apache Common Logging" \
+	hotline="Please contact your local service provider" \
+	name="Apache Common Logging" pkg=SUNWaclg vendor="OpenIndiana Project" \
+	version=$(IPS_COMPONENT_VERSION),REV=2011.04.21.00.52
+
+depend fmri=consolidation/sic_team/sic_team-incorporation type=require
+
+license java-commons-logging.license license="APLv2"
+
+dir path=usr/share
+dir path=usr/share/lib
+file usr/share/lib/commons-logging.jar path=usr/share/lib/commons-logging.jar
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/java-jss/Makefile	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,72 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		jss
+COMPONENT_VERSION=	4.3.1
+COMPONENT_SRC=		mozilla
+COMPONENT_ARCHIVE=	$(COMPONENT_NAME)-$(COMPONENT_VERSION).tar.bz2
+COMPONENT_ARCHIVE_HASH=	sha1:457157d4e93a8cb3de96155a0991c3735dfff7db
+COMPONENT_ARCHIVE_URL=	ftp://ftp.mozilla.org/pub/mozilla.org/security/jss/releases/JSS_4_3_1_RTM/src/$(COMPONENT_ARCHIVE)
+
+# Enable compiler optimizations and disable debugging code
+COMPONENT_BUILD_ENV += BUILD_OPT=1
+
+# Generate symbolic info for debuggers
+COMPONENT_BUILD_ENV += XCFLAGS="-g"
+
+COMPONENT_BUILD_ENV += PATH=$(SPRO_VROOT)/bin:$(PATH)
+COMPONENT_BUILD_ENV += PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+COMPONENT_BUILD_ENV += PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
+
+MPS.32=/usr/lib/mps
+MPS.64=/usr/lib/mps/$(MACH64)
+COMPONENT_BUILD_ENV += NSPR_INCLUDE_DIR=/usr/include/mps
+COMPONENT_BUILD_ENV += NSPR_LIB_DIR=$(MPS.$(BITS))
+COMPONENT_BUILD_ENV += NSS_INCLUDE_DIR=/usr/include/mps
+COMPONENT_BUILD_ENV += NSS_LIB_DIR=$(MPS.$(BITS))
+
+COMPONENT_BUILD_ENV.64 += USE_64=1
+COMPONENT_BUILD_ENV += $(COMPONENT_BUILD_ENV.$(BITS))
+
+
+include ../../make-rules/prep.mk
+include ../../make-rules/justmake.mk
+include ../../make-rules/ips.mk
+
+PKGMANGLE = true
+PKGLINT = true
+
+$(BUILD_DIR)/%/.built:	$(SOURCE_DIR)/.prep
+	$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	$(CLONEY) $(SOURCE_DIR) $(@D)
+	$(COMPONENT_PRE_BUILD_ACTION)
+	(cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) $(GMAKE) -C security/coreconf)
+	(cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) $(GMAKE) -C security/jss)
+	(cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) $(GMAKE) -C security/jss javadoc)
+	$(COMPONENT_POST_BUILD_ACTION)
+	$(TOUCH) $@
+
+build: $(BUILD_32_and_64)
+
+install: build
+	$(MKDIR) -p $(PROTO_DIR)/usr/lib/mps
+	$(MKDIR) -p $(PROTO_DIR)/usr/lib/mps/$(MACH64)
+	$(MKDIR) -p $(PROTO_DIR)/usr/share/lib/mps
+	$(MKDIR) -p $(PROTO_DIR)/usr/share/lib/mps/$(MACH64)
+	$(INSTALL) $(BUILD_DIR_32)/security/jss/lib/SunOS5.11_*_OPT.OBJ/libjss4.so $(PROTO_DIR)/usr/lib/mps
+	$(INSTALL) $(BUILD_DIR_64)/security/jss/lib/SunOS5.11_*_OPT.OBJ/libjss4.so $(PROTO_DIR)/usr/lib/mps/$(MACH64)
+	$(INSTALL) $(BUILD_DIR_32)/dist/xpclass.jar $(PROTO_DIR)/usr/share/lib/mps
+	$(INSTALL) $(BUILD_DIR_64)/dist/xpclass.jar $(PROTO_DIR)/usr/share/lib/mps/$(MACH64)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/java-jss/java-jss.license	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,35 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# 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 Services for Java.
+#
+# The Initial Developer of the Original Code is
+# Netscape Communications Corporation.
+# Portions created by the Initial Developer are Copyright (C) 1998-2000
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/java-jss/java-jss.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,58 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+set name=pkg.fmri value=pkg:/library/java/[email protected],$(BUILD_VERSION)
+set name=org.opensolaris.consolidation value=sic_team
+set name=variant.arch value=$(MACH)
+set name=description value="Network Security Services for Java (JSS)"
+set name=info.classification value=org.opensolaris.category.2008:System/Services
+set name=variant.opensolaris.zone value=global value=nonglobal
+set name=pkg.summary value="Network Security Services for Java (JSS)"
+set name=pkg.description value="Network Security Services for Java (JSS)"
+legacy arch=$(MACH) category=system desc="Network Security Services for Java (JSS)" \
+    hotline="Please contact your local service provider" name="Network Security Services for Java (JSS)" \
+    pkg=SUNWjss variant.arch=$(MACH) vendor="OpenIndiana Project" \
+    version=$(IPS_COMPONENT_VERSION),REV=2011.04.21.00.52
+
+depend fmri=library/nspr@$(BUILD_VERSION) type=require
+depend fmri=system/library@$(BUILD_VERSION) type=require
+depend fmri=system/library/mozilla-nss@$(BUILD_VERSION) type=require
+depend fmri=consolidation/sic_team/sic_team-incorporation type=require
+
+license java-jss.license license="MPL 1.1/GPL 2.0/LGPL 2.1"
+
+dir path=usr
+dir path=usr/lib
+dir path=usr/lib/mps
+dir path=usr/lib/mps/$(MACH64)
+dir path=usr/lib/mps/secv1
+dir path=usr/lib/mps/secv1/$(MACH64)
+dir path=usr/share
+dir path=usr/share/lib
+dir path=usr/share/lib/mps
+dir path=usr/share/lib/mps/$(MACH64)
+dir path=usr/share/lib/mps/secv1
+dir path=usr/share/lib/mps/secv1/$(MACH64)
+file path=usr/lib/mps/$(MACH64)/libjss4.so
+file path=usr/lib/mps/libjss4.so
+file path=usr/share/lib/mps/$(MACH64)/xpclass.jar
+file path=usr/share/lib/mps/xpclass.jar
+link path=usr/lib/mps/64 target=$(MACH64)
+link path=usr/lib/mps/secv1/$(MACH64)/libjss4.so \
+    target=../../$(MACH64)/libjss4.so
+link path=usr/lib/mps/secv1/64 target=$(MACH64)
+link path=usr/lib/mps/secv1/libjss4.so target=../libjss4.so
+link path=usr/share/lib/mps/secv1/$(MACH64)/xpclass.jar \
+    target=../../$(MACH64)/xpclass.jar
+link path=usr/share/lib/mps/secv1/xpclass.jar target=../xpclass.jar
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/java-jss/patches/coreconf.patch	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,16558 @@
+diff -ruN mozilla.orig/security/coreconf/AIX.mk mozilla/security/coreconf/AIX.mk
+--- mozilla.orig/security/coreconf/AIX.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/AIX.mk	2005-09-16 18:09:23.000000000 +0100
+@@ -0,0 +1,99 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
++OS_LIBS 	+= -blibpath:/usr/lib:/lib -lc -lm
++
++DSO_LDOPTS	= -brtl -bnortllib -bM:SRE -bnoentry
++MKSHLIB 	= $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm
++
++AIX_WRAP	= $(DIST)/lib/aixwrap.o
++AIX_TMP		= $(OBJDIR)/_aix_tmp.o
++
++ifdef MAPFILE
++DSO_LDOPTS	+= -bexport:$(MAPFILE)
++else
++DSO_LDOPTS	+= -bexpall
++endif
++
++PROCESS_MAP_FILE = grep -v ';+' $< | grep -v ';-' | \
++                sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' > $@
++
++ifdef BUILD_OPT
++	OPTIMIZER += -qmaxmem=-1
++endif
++
++ifeq ($(USE_64), 1)
++	OS_CFLAGS	+= -DAIX_64BIT
++	OBJECT_MODE=64
++	export OBJECT_MODE
++endif
++
+diff -ruN mozilla.orig/security/coreconf/BSD_OS.mk mozilla/security/coreconf/BSD_OS.mk
+--- mozilla.orig/security/coreconf/BSD_OS.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/BSD_OS.mk	2009-09-03 05:56:59.000000000 +0100
+@@ -0,0 +1,89 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#   Kurt J. Lidl
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++DEFAULT_COMPILER	= gcc
++CC			= gcc
++CCC			= g++
++RANLIB			= ranlib
++
++ifeq ($(OS_TEST),i386)
++	OS_REL_CFLAGS	= -D__i386__
++	CPU_ARCH	= x86
++else
++ifeq ($(OS_TEST),ppc)
++	OS_REL_CFLAGS	= -D__ppc__
++	CPU_ARCH	= ppc
++else
++ifeq ($(OS_TEST),sparc)
++	OS_REL_CFLAGS	= -D__sparc__
++	CPU_ARCH	= sparc
++else
++# treat the ultrasparc like a regular sparc, at least for now!
++ifeq ($(OS_TEST),sparc_v9)
++	OS_REL_CFLAGS	= -D__sparc__
++	CPU_ARCH	= sparc
++endif
++endif
++endif
++endif
++
++DLL_SUFFIX		= so
++
++OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -Wno-switch -DBSD_OS -DBSDI -Dunix -DHAVE_STRERROR -DHAVE_BSD_FLOCK
++
++ARCH			= bsdos
++
++DSO_CFLAGS		= -fPIC -DPIC
++DSO_LDOPTS		= -shared -Wl,-soname,lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
++
++ifdef LIBRUNPATH
++DSO_LDOPTS		+= -Wl,-R$(LIBRUNPATH)
++endif
++
++MKSHLIB			= $(CC) $(DSO_LDOPTS)
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++G++INCLUDES		= -I/usr/include/g++
++
++INCLUDES		+= -I/usr/X11R6/include
+diff -ruN mozilla.orig/security/coreconf/BeOS.mk mozilla/security/coreconf/BeOS.mk
+--- mozilla.orig/security/coreconf/BeOS.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/BeOS.mk	2009-09-03 05:56:59.000000000 +0100
+@@ -0,0 +1,79 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2002
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++XP_DEFINE := $(XP_DEFINE:-DXP_UNIX=-DXP_BEOS)
++
++USE_PTHREADS = 
++
++ifeq ($(USE_PTHREADS),1)
++	IMPL_STRATEGY = _PTH
++endif
++
++CC			= gcc
++CCC			= g++
++RANLIB			= ranlib
++
++DEFAULT_COMPILER = gcc
++
++ifeq ($(OS_TEST),ppc)
++	OS_REL_CFLAGS	= -Dppc
++	CPU_ARCH	= ppc
++else
++	OS_REL_CFLAGS	= -Di386
++	CPU_ARCH	= x86
++endif
++
++MKSHLIB		= $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
++ifdef BUILD_OPT
++	OPTIMIZER	= -O2
++endif
++
++OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -Wno-switch -pipe
++OS_LIBS			= -lbe
++
++DEFINES			+= -DBEOS
++
++ifdef USE_PTHREADS
++	DEFINES		+= -D_REENTRANT
++endif
++
++ARCH			= beos
++
++DSO_CFLAGS		= -fPIC
++DSO_LDOPTS		=
+diff -ruN mozilla.orig/security/coreconf/CVS/Entries mozilla/security/coreconf/CVS/Entries
+--- mozilla.orig/security/coreconf/CVS/Entries	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/CVS/Entries	2011-04-20 22:18:12.000000000 +0100
+@@ -0,0 +1,108 @@
++/AIX.mk/1.10/Fri Sep 16 17:09:23 2005//
++/BSD_OS.mk/1.6/Thu Sep  3 04:56:59 2009//
++/BeOS.mk/1.4/Thu Sep  3 04:56:59 2009//
++/Darwin.mk/1.29/Wed Apr  6 19:11:21 2011//
++/FreeBSD.mk/1.12/Sat Aug 22 05:33:09 2009//
++/HP-UX.mk/1.16/Sat May  1 19:07:17 2010//
++/HP-UXA.09.03.mk/1.2/Sun Apr 25 15:02:17 2004//
++/HP-UXA.09.07.mk/1.2/Sun Apr 25 15:02:17 2004//
++/HP-UXA.09.mk/1.2/Sun Apr 25 15:02:17 2004//
++/HP-UXB.10.01.mk/1.2/Sun Apr 25 15:02:17 2004//
++/HP-UXB.10.10.mk/1.3/Sun Apr 25 15:02:17 2004//
++/HP-UXB.10.20.mk/1.3/Sun Apr 25 15:02:17 2004//
++/HP-UXB.10.30.mk/1.2/Sun Apr 25 15:02:17 2004//
++/HP-UXB.10.mk/1.2/Sun Apr 25 15:02:17 2004//
++/HP-UXB.11.00.mk/1.3/Thu Dec  7 18:28:40 2006//
++/HP-UXB.11.11.mk/1.3/Thu Dec  7 18:28:40 2006//
++/HP-UXB.11.20.mk/1.4/Thu Dec  7 18:28:40 2006//
++/HP-UXB.11.22.mk/1.3/Thu Dec  7 18:28:40 2006//
++/HP-UXB.11.23.mk/1.2/Thu Dec  7 18:28:40 2006//
++/HP-UXB.11.mk/1.10/Thu Dec  7 18:31:49 2006//
++/IRIX.mk/1.7/Thu Nov 22 04:39:56 2007//
++/IRIX5.2.mk/1.2/Sun Apr 25 15:02:17 2004//
++/IRIX5.3.mk/1.2/Sun Apr 25 15:02:17 2004//
++/IRIX5.mk/1.2/Sun Apr 25 15:02:17 2004//
++/IRIX6.2.mk/1.2/Sun Apr 25 15:02:17 2004//
++/IRIX6.3.mk/1.2/Sun Apr 25 15:02:17 2004//
++/IRIX6.5.mk/1.3/Sun Apr 25 15:02:17 2004//
++/IRIX6.mk/1.2/Sun Apr 25 15:02:17 2004//
++/Linux.mk/1.48/Fri Aug 13 01:31:13 2010//
++/Linux2.1.mk/1.7/Thu Jun 11 00:55:32 2009//
++/Linux2.2.mk/1.7/Thu Jun 11 00:55:32 2009//
++/Linux2.4.mk/1.10/Wed Jul 21 16:23:15 2010//
++/Linux2.5.mk/1.6/Thu Jun 11 00:55:32 2009//
++/Linux2.6.mk/1.6/Thu Jun 11 00:55:32 2009//
++/LinuxELF1.2.mk/1.2/Sun Apr 25 15:02:17 2004//
++/LinuxELF2.0.mk/1.2/Sun Apr 25 15:02:17 2004//
++/Makefile/1.3/Sun Apr 25 15:02:17 2004//
++/NCR3.0.mk/1.5/Thu Nov 22 04:39:56 2007//
++/NEC4.2.mk/1.4/Fri Sep 16 17:09:23 2005//
++/NetBSD.mk/1.7/Thu Sep  3 04:57:00 2009//
++/OS2.mk/1.30/Sat May 16 00:31:47 2009//
++/OSF1.mk/1.9/Thu Apr  9 22:25:09 2009//
++/OSF1V2.0.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OSF1V3.0.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OSF1V3.2.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OSF1V4.0.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OSF1V4.0B.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OSF1V4.0D.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OSF1V5.0.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OSF1V5.1.mk/1.2/Sun Apr 25 15:02:17 2004//
++/OpenBSD.mk/1.7/Thu Sep  3 04:57:00 2009//
++/OpenUNIX.mk/1.4/Thu Sep  3 04:57:00 2009//
++/QNX.mk/1.4/Thu Sep  3 04:57:00 2009//
++/README/1.4/Thu Jan 27 19:14:15 2005//
++/RISCOS.mk/1.4/Thu Sep  3 04:57:00 2009//
++/ReliantUNIX.mk/1.6/Thu Nov 22 04:39:56 2007//
++/ReliantUNIX5.4.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SCOOS5.0.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SCO_SV3.2.mk/1.5/Thu Sep  3 04:57:00 2009//
++/SunOS4.1.3_U1.mk/1.4/Thu Nov 22 04:39:56 2007//
++/SunOS5.10.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.10_i86pc.mk/1.3/Mon Oct 11 02:15:42 2004//
++/SunOS5.11.mk/1.1/Tue Jan  3 23:02:11 2006//
++/SunOS5.11_i86pc.mk/1.1/Tue Jan  3 23:02:11 2006//
++/SunOS5.3.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.4.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.4_i86pc.mk/1.4/Thu Nov 22 04:39:56 2007//
++/SunOS5.5.1.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.5.1_i86pc.mk/1.3/Sun Apr 25 15:02:17 2004//
++/SunOS5.5.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.6.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.6_i86pc.mk/1.3/Sun Apr 25 15:02:17 2004//
++/SunOS5.7.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.7_i86pc.mk/1.3/Sun Apr 25 15:02:17 2004//
++/SunOS5.8.mk/1.2/Sun Apr 25 15:02:17 2004//
++/SunOS5.8_i86pc.mk/1.4/Sun Apr 25 15:02:17 2004//
++/SunOS5.9.mk/1.3/Sun Apr 25 15:02:17 2004//
++/SunOS5.9_i86pc.mk/1.4/Sun Apr 25 15:02:17 2004//
++/SunOS5.mk/1.26/Thu Jun 11 00:55:32 2009//
++/UNIX.mk/1.6/Fri Oct  3 19:12:41 2008//
++/UNIXWARE2.1.mk/1.4/Fri Sep 16 17:09:23 2005//
++/WIN32.mk/1.43/Wed Sep  1 18:06:44 2010//
++/WIN95.mk/1.2/Sat Feb 14 05:51:10 2009//
++/WINCE.mk/1.6/Wed Jun 17 23:01:50 2009//
++/WINNT.mk/1.2/Sat Feb 14 05:51:10 2009//
++/arch.mk/1.23/Fri Jun  5 02:14:49 2009//
++/command.mk/1.13/Tue Oct 23 21:55:00 2007//
++/config.mk/1.30/Tue Aug 25 22:35:11 2009//
++/coreconf.dep/1.4/Wed Jul 29 21:50:47 2009//
++/coreconf.pl/1.2/Sun Apr 25 15:02:17 2004//
++/cpdist.pl/1.2/Sun Apr 25 15:02:17 2004//
++/headers.mk/1.10/Fri Jul 30 02:25:55 2010//
++/import.pl/1.3/Fri Sep 16 00:33:23 2005//
++/jdk.mk/1.19/Sat Aug  5 01:27:37 2006//
++/jniregen.pl/1.5/Sun Apr 25 23:37:40 2010//
++/location.mk/1.13/Sat Jun 12 00:58:32 2010//
++/module.mk/1.3/Sun Apr 25 15:02:17 2004//
++/outofdate.pl/1.3/Sun Apr 25 23:37:40 2010//
++/prefix.mk/1.6/Sun Apr 25 15:02:17 2004//
++/release.pl/1.4/Fri Sep 16 00:33:23 2005//
++/rules.mk/1.83/Sun Apr 25 23:37:40 2010//
++/ruleset.mk/1.22/Wed Jul  8 18:15:21 2009//
++/source.mk/1.9/Sun Apr 25 15:02:17 2004//
++/suffix.mk/1.6/Sun Apr 25 15:02:17 2004//
++/tree.mk/1.10/Tue Mar 10 18:01:49 2009//
++/version.mk/1.3/Sun Apr 25 15:02:17 2004//
++/version.pl/1.2/Sun Apr 25 15:02:17 2004//
++D
+diff -ruN mozilla.orig/security/coreconf/CVS/Entries.Log mozilla/security/coreconf/CVS/Entries.Log
+--- mozilla.orig/security/coreconf/CVS/Entries.Log	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/CVS/Entries.Log	2011-04-20 22:18:12.000000000 +0100
+@@ -0,0 +1,2 @@
++A D/mkdepend////
++A D/nsinstall////
+diff -ruN mozilla.orig/security/coreconf/CVS/Repository mozilla/security/coreconf/CVS/Repository
+--- mozilla.orig/security/coreconf/CVS/Repository	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/CVS/Repository	2011-04-20 22:18:10.000000000 +0100
+@@ -0,0 +1 @@
++mozilla/security/coreconf
+diff -ruN mozilla.orig/security/coreconf/CVS/Root mozilla/security/coreconf/CVS/Root
+--- mozilla.orig/security/coreconf/CVS/Root	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/CVS/Root	2011-04-20 22:18:10.000000000 +0100
+@@ -0,0 +1 @@
++:pserver:[email protected]:/cvsroot
+diff -ruN mozilla.orig/security/coreconf/Darwin.mk mozilla/security/coreconf/Darwin.mk
+--- mozilla.orig/security/coreconf/Darwin.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Darwin.mk	2011-04-06 20:11:21.000000000 +0100
+@@ -0,0 +1,143 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++DEFAULT_COMPILER = gcc
++
++CC		= gcc
++CCC		= g++
++RANLIB		= ranlib
++
++ifndef CPU_ARCH
++# When cross-compiling, CPU_ARCH should already be defined as the target
++# architecture, set to powerpc or i386.
++CPU_ARCH	:= $(shell uname -p)
++endif
++
++ifeq (,$(filter-out i%86,$(CPU_ARCH)))
++ifdef USE_64
++CC              += -arch x86_64
++override CPU_ARCH	= x86_64
++else
++OS_REL_CFLAGS	= -Di386
++CC              += -arch i386
++override CPU_ARCH	= x86
++endif
++else
++OS_REL_CFLAGS	= -Dppc
++CC              += -arch ppc
++endif
++
++ifneq (,$(MACOS_SDK_DIR))
++    GCC_VERSION_FULL := $(shell $(CC) -dumpversion)
++    GCC_VERSION_MAJOR := $(shell echo $(GCC_VERSION_FULL) | awk -F. '{ print $$1 }')
++    GCC_VERSION_MINOR := $(shell echo $(GCC_VERSION_FULL) | awk -F. '{ print $$2 }')
++    GCC_VERSION = $(GCC_VERSION_MAJOR).$(GCC_VERSION_MINOR)
++
++    ifeq (,$(filter-out 2 3,$(GCC_VERSION_MAJOR)))
++        # GCC <= 3
++        DARWIN_SDK_FRAMEWORKS = -F$(MACOS_SDK_DIR)/System/Library/Frameworks
++        ifneq (,$(shell find $(MACOS_SDK_DIR)/Library/Frameworks -maxdepth 0))
++            DARWIN_SDK_FRAMEWORKS += -F$(MACOS_SDK_DIR)/Library/Frameworks
++        endif
++        DARWIN_SDK_CFLAGS = -nostdinc -isystem $(MACOS_SDK_DIR)/usr/include/gcc/darwin/$(GCC_VERSION) -isystem $(MACOS_SDK_DIR)/usr/include $(DARWIN_SDK_FRAMEWORKS)
++        DARWIN_SDK_LDFLAGS = -L$(MACOS_SDK_DIR)/usr/lib/gcc/darwin -L$(MACOS_SDK_DIR)/usr/lib/gcc/darwin/$(GCC_VERSION_FULL) -L$(MACOS_SDK_DIR)/usr/lib
++        DARWIN_SDK_SHLIBFLAGS = $(DARWIN_SDK_LDFLAGS) $(DARWIN_SDK_FRAMEWORKS)
++        NEXT_ROOT = $(MACOS_SDK_DIR)
++        export NEXT_ROOT
++    else
++        # GCC >= 4
++        DARWIN_SDK_CFLAGS = -isysroot $(MACOS_SDK_DIR)
++        ifneq (4.0.0,$(GCC_VERSION_FULL))
++            # gcc > 4.0.0 passes -syslibroot to ld based on -isysroot.
++            # Don't add -isysroot to DARWIN_SDK_LDFLAGS, because the programs
++            # that are linked with those flags also get DARWIN_SDK_CFLAGS.
++            DARWIN_SDK_SHLIBFLAGS = -isysroot $(MACOS_SDK_DIR)
++        else
++            # gcc 4.0.0 doesn't pass -syslibroot to ld, it needs to be
++            # explicit.
++            DARWIN_SDK_LDFLAGS = -Wl,-syslibroot,$(MACOS_SDK_DIR)
++            DARWIN_SDK_SHLIBFLAGS = $(DARWIN_SDK_LDFLAGS)
++        endif
++    endif
++
++    LDFLAGS += $(DARWIN_SDK_LDFLAGS)
++endif
++
++# "Commons" are tentative definitions in a global scope, like this:
++#     int x;
++# The meaning of a common is ambiguous.  It may be a true definition:
++#     int x = 0;
++# or it may be a declaration of a symbol defined in another file:
++#     extern int x;
++# Use the -fno-common option to force all commons to become true
++# definitions so that the linker can catch multiply-defined symbols.
++# Also, common symbols are not allowed with Darwin dynamic libraries.
++
++OS_CFLAGS	= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -fno-common -pipe -DDARWIN -DHAVE_STRERROR -DHAVE_BSD_FLOCK $(DARWIN_SDK_CFLAGS)
++
++ifdef BUILD_OPT
++ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
++	OPTIMIZER       = -Oz
++else
++	OPTIMIZER	= -O2
++endif
++ifdef MOZ_DEBUG_SYMBOLS
++	ifdef MOZ_DEBUG_FLAGS
++		OPTIMIZER += $(MOZ_DEBUG_FLAGS)
++	else
++		OPTIMIZER += -gdwarf-2 -gfull
++	endif
++endif
++endif
++
++ARCH		= darwin
++
++DSO_CFLAGS	= -fPIC
++# May override this with different compatibility and current version numbers.
++DARWIN_DYLIB_VERSIONS = -compatibility_version 1 -current_version 1
++# May override this with -bundle to create a loadable module.
++DSO_LDOPTS	= -dynamiclib $(DARWIN_DYLIB_VERSIONS) -install_name @executable_path/$(notdir $@) -headerpad_max_install_names
++
++MKSHLIB		= $(CC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS)
++DLL_SUFFIX	= dylib
++PROCESS_MAP_FILE = grep -v ';+' $< | grep -v ';-' | \
++                sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' -e 's,^,_,' > $@
++
++USE_SYSTEM_ZLIB = 1
++ZLIB_LIBS	= -lz
+diff -ruN mozilla.orig/security/coreconf/FreeBSD.mk mozilla/security/coreconf/FreeBSD.mk
+--- mozilla.orig/security/coreconf/FreeBSD.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/FreeBSD.mk	2009-08-22 06:33:09.000000000 +0100
+@@ -0,0 +1,90 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++DEFAULT_COMPILER	= gcc
++CC			= gcc
++CCC			= g++
++RANLIB			= ranlib
++
++CPU_ARCH		= $(OS_TEST)
++ifeq ($(CPU_ARCH),i386)
++CPU_ARCH		= x86
++endif
++ifeq ($(CPU_ARCH),pc98)
++CPU_ARCH		= x86
++endif
++ifeq ($(CPU_ARCH),amd64)
++CPU_ARCH		= x86_64
++endif
++
++OS_CFLAGS		= $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
++
++DSO_CFLAGS		= -fPIC
++DSO_LDOPTS		= -shared -Wl,-soname -Wl,$(notdir $@)
++
++#
++# The default implementation strategy for FreeBSD is pthreads.
++#
++ifndef CLASSIC_NSPR
++USE_PTHREADS		= 1
++DEFINES			+= -D_THREAD_SAFE -D_REENTRANT
++OS_LIBS			+= -pthread
++DSO_LDOPTS		+= -pthread
++endif
++
++ARCH			= freebsd
++
++MOZ_OBJFORMAT		:= $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo elf)
++
++ifeq ($(MOZ_OBJFORMAT),elf)
++DLL_SUFFIX		= so
++else
++DLL_SUFFIX		= so.1.0
++endif
++
++MKSHLIB			= $(CC) $(DSO_LDOPTS)
++ifdef MAPFILE
++	MKSHLIB += -Wl,--version-script,$(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';-' $< | \
++        sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++
++G++INCLUDES		= -I/usr/include/g++
++
++INCLUDES		+= -I/usr/X11R6/include
+diff -ruN mozilla.orig/security/coreconf/HP-UX.mk mozilla/security/coreconf/HP-UX.mk
+--- mozilla.orig/security/coreconf/HP-UX.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UX.mk	2010-05-01 20:07:17.000000000 +0100
+@@ -0,0 +1,116 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# Config stuff for HP-UX
++#
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++DEFAULT_COMPILER = cc
++
++ifeq ($(OS_TEST),ia64)
++	CPU_ARCH = ia64
++	CPU_TAG = _$(CPU_ARCH)
++	ifneq ($(USE_64),1)
++		64BIT_TAG = _32
++	endif
++	DLL_SUFFIX = so
++else
++	CPU_ARCH = hppa
++	DLL_SUFFIX = sl
++endif
++CC         = cc
++CCC        = CC
++ifndef NS_USE_GCC
++OS_CFLAGS  += -Ae
++endif
++OS_CFLAGS  += $(DSO_CFLAGS) -DHPUX -D$(CPU_ARCH) -D_HPUX_SOURCE -D_USE_BIG_FDS
++
++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
++
++LDFLAGS			= -z -Wl,+s
++
++ifdef NS_USE_GCC
++LD = $(CC)
++endif
++MKSHLIB			= $(LD) $(DSO_LDOPTS) $(RPATH)
++ifdef MAPFILE
++ifndef NS_USE_GCC
++MKSHLIB += -c $(MAPFILE)
++else
++MKSHLIB += -Wl,-c,$(MAPFILE)
++endif
++endif
++PROCESS_MAP_FILE = grep -v ';+' $< | grep -v ';-' | \
++         sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' -e 's,^,+e ,' > $@
++
++ifndef NS_USE_GCC
++DSO_LDOPTS		= -b +h $(notdir $@)
++RPATH			= +b '$$ORIGIN'
++else
++DSO_LDOPTS		= -shared -Wl,+h,$(notdir $@)
++RPATH			= -Wl,+b,'$$ORIGIN'
++endif
++ifneq ($(OS_TEST),ia64)
++# pa-risc
++ifndef USE_64
++RPATH			=
++endif
++endif
++
++# +Z generates position independent code for use in shared libraries.
++ifndef NS_USE_GCC
++DSO_CFLAGS = +Z
++else
++DSO_CFLAGS = -fPIC
++ASFLAGS   += -x assembler-with-cpp
++endif
+diff -ruN mozilla.orig/security/coreconf/HP-UXA.09.03.mk mozilla/security/coreconf/HP-UXA.09.03.mk
+--- mozilla.orig/security/coreconf/HP-UXA.09.03.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXA.09.03.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# 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
+diff -ruN mozilla.orig/security/coreconf/HP-UXA.09.07.mk mozilla/security/coreconf/HP-UXA.09.07.mk
+--- mozilla.orig/security/coreconf/HP-UXA.09.07.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXA.09.07.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
+diff -ruN mozilla.orig/security/coreconf/HP-UXA.09.mk mozilla/security/coreconf/HP-UXA.09.mk
+--- mozilla.orig/security/coreconf/HP-UXA.09.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXA.09.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,43 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# Config stuff for HP-UXA.09
++#
++include $(CORE_DEPTH)/coreconf/HP-UX.mk
++
++OS_CFLAGS += -DHPUX9
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.10.01.mk mozilla/security/coreconf/HP-UXB.10.01.mk
+--- mozilla.orig/security/coreconf/HP-UXB.10.01.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.10.01.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,44 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++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
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.10.10.mk mozilla/security/coreconf/HP-UXB.10.10.mk
+--- mozilla.orig/security/coreconf/HP-UXB.10.10.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.10.10.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,54 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
++endif
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.10.20.mk mozilla/security/coreconf/HP-UXB.10.20.mk
+--- mozilla.orig/security/coreconf/HP-UXB.10.20.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.10.20.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,54 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
++endif
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.10.30.mk mozilla/security/coreconf/HP-UXB.10.30.mk
+--- mozilla.orig/security/coreconf/HP-UXB.10.30.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.10.30.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,60 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.10.mk mozilla/security/coreconf/HP-UXB.10.mk
+--- mozilla.orig/security/coreconf/HP-UXB.10.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.10.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,40 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/HP-UX.mk
++
++OS_CFLAGS += -DHPUX10
++OS_LIBS   += -lpthread -lm
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.11.00.mk mozilla/security/coreconf/HP-UXB.11.00.mk
+--- mozilla.orig/security/coreconf/HP-UXB.11.00.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.11.00.mk	2006-12-07 18:28:40.000000000 +0000
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
++
++#
++# Config stuff for HP-UXB.11.00.
++#
++include $(CORE_DEPTH)/coreconf/HP-UXB.11.mk
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.11.11.mk mozilla/security/coreconf/HP-UXB.11.11.mk
+--- mozilla.orig/security/coreconf/HP-UXB.11.11.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.11.11.mk	2006-12-07 18:28:40.000000000 +0000
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2001
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# On HP-UX 10.30 and 11.x, the default implementation strategy is
++# pthreads.  Classic nspr and pthreads-user are also available.
++
++ifeq ($(OS_RELEASE),B.11.11)
++OS_CFLAGS		+= -DHPUX10
++DEFAULT_IMPL_STRATEGY = _PTH
++endif
++
++#
++# Config stuff for HP-UXB.11.11.
++#
++include $(CORE_DEPTH)/coreconf/HP-UXB.11.mk
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.11.20.mk mozilla/security/coreconf/HP-UXB.11.20.mk
+--- mozilla.orig/security/coreconf/HP-UXB.11.20.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.11.20.mk	2006-12-07 18:28:40.000000000 +0000
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2002
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# On HP-UX 10.30 and 11.x, the default implementation strategy is
++# pthreads.  Classic nspr and pthreads-user are also available.
++
++ifeq ($(OS_RELEASE),B.11.20)
++OS_CFLAGS		+= -DHPUX10
++DEFAULT_IMPL_STRATEGY = _PTH
++endif
++
++#
++# Config stuff for HP-UXB.11.x.
++#
++include $(CORE_DEPTH)/coreconf/HP-UXB.11.mk
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.11.22.mk mozilla/security/coreconf/HP-UXB.11.22.mk
+--- mozilla.orig/security/coreconf/HP-UXB.11.22.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.11.22.mk	2006-12-07 18:28:40.000000000 +0000
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2002
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# On HP-UX 10.30 and 11.x, the default implementation strategy is
++# pthreads.  Classic nspr and pthreads-user are also available.
++
++ifeq ($(OS_RELEASE),B.11.22)
++OS_CFLAGS		+= -DHPUX10
++DEFAULT_IMPL_STRATEGY = _PTH
++endif
++
++#
++# Config stuff for HP-UXB.11.x.
++#
++include $(CORE_DEPTH)/coreconf/HP-UXB.11.mk
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.11.23.mk mozilla/security/coreconf/HP-UXB.11.23.mk
+--- mozilla.orig/security/coreconf/HP-UXB.11.23.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.11.23.mk	2006-12-07 18:28:40.000000000 +0000
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2002
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# On HP-UX 10.30 and 11.x, the default implementation strategy is
++# pthreads.  Classic nspr and pthreads-user are also available.
++
++ifeq ($(OS_RELEASE),B.11.23)
++OS_CFLAGS		+= -DHPUX10
++DEFAULT_IMPL_STRATEGY = _PTH
++endif
++
++#
++# Config stuff for HP-UXB.11.x.
++#
++include $(CORE_DEPTH)/coreconf/HP-UXB.11.mk
+diff -ruN mozilla.orig/security/coreconf/HP-UXB.11.mk mozilla/security/coreconf/HP-UXB.11.mk
+--- mozilla.orig/security/coreconf/HP-UXB.11.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/HP-UXB.11.mk	2006-12-07 18:31:49.000000000 +0000
+@@ -0,0 +1,80 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/HP-UX.mk
++
++ifndef NS_USE_GCC
++    CCC                 = /opt/aCC/bin/aCC -ext
++    ifeq ($(USE_64), 1)
++	ifeq ($(OS_TEST), ia64)
++	    ARCHFLAG	= -Aa +e +p +DD64
++	else
++	    # Our HP-UX build machine has a strange problem.  If
++	    # a 64-bit PA-RISC executable calls getcwd() in a
++	    # network-mounted directory, it fails with ENOENT.
++	    # We don't know why.  Since nsinstall calls getcwd(),
++	    # this breaks our 64-bit HP-UX nightly builds.  None
++	    # of our other HP-UX machines have this problem.
++	    #
++	    # We worked around this problem by building nsinstall
++	    # as a 32-bit PA-RISC executable for 64-bit PA-RISC
++	    # builds.  -- wtc 2003-06-03
++	    ifdef INTERNAL_TOOLS
++	    ARCHFLAG	= +DAportable +DS2.0
++	    else
++	    ARCHFLAG	= -Aa +e +DA2.0W +DS2.0 +DChpux
++	    endif
++	endif
++    else
++	ifeq ($(OS_TEST), ia64)
++	    ARCHFLAG	= -Aa +e +p +DD32
++	else
++	    ARCHFLAG	= +DAportable +DS2.0
++	endif
++    endif
++else
++    CCC = aCC
++endif
++
++#
++# To use the true pthread (kernel thread) library on HP-UX
++# 11.x, we should define _POSIX_C_SOURCE to be 199506L.
++# The _REENTRANT macro is deprecated.
++#
++
++OS_CFLAGS += $(ARCHFLAG) -DHPUX11 -D_POSIX_C_SOURCE=199506L
++OS_LIBS   += -lpthread -lm -lrt
++HPUX11	= 1
+diff -ruN mozilla.orig/security/coreconf/IRIX.mk mozilla/security/coreconf/IRIX.mk
+--- mozilla.orig/security/coreconf/IRIX.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX.mk	2007-11-22 04:39:56.000000000 +0000
+@@ -0,0 +1,126 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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 -Wno-switch
++	ifdef BUILD_OPT
++		OPTIMIZER	= -O6
++	endif
++else
++	CC	= cc
++	CCC		= CC
++	ODD_CFLAGS	= -fullwarn -xansi -woff 1209
++	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
++
++OS_CFLAGS += $(NOMD_OS_CFLAGS)
++ifdef USE_MDUPDATE
++	OS_CFLAGS += -MDupdate $(DEPENDENCIES)
++endif
++
++ifeq ($(USE_N32),1)
++	SHLIB_LD_OPTS	+= -n32 -mips3
++endif
++
++MKSHLIB     += $(LD) $(SHLIB_LD_OPTS) -shared -soname $(@:$(OBJDIR)/%.so=%.so)
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++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.
++#
+diff -ruN mozilla.orig/security/coreconf/IRIX5.2.mk mozilla/security/coreconf/IRIX5.2.mk
+--- mozilla.orig/security/coreconf/IRIX5.2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX5.2.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,37 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/IRIX5.mk
+diff -ruN mozilla.orig/security/coreconf/IRIX5.3.mk mozilla/security/coreconf/IRIX5.3.mk
+--- mozilla.orig/security/coreconf/IRIX5.3.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX5.3.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,39 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/IRIX5.mk
++
++OS_CFLAGS += -DIRIX5_3
+diff -ruN mozilla.orig/security/coreconf/IRIX5.mk mozilla/security/coreconf/IRIX5.mk
+--- mozilla.orig/security/coreconf/IRIX5.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX5.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,42 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/IRIX.mk
++
++ifndef NS_USE_GCC
++	ODD_CFLAGS += -xgot
++endif
+diff -ruN mozilla.orig/security/coreconf/IRIX6.2.mk mozilla/security/coreconf/IRIX6.2.mk
+--- mozilla.orig/security/coreconf/IRIX6.2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX6.2.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,45 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++
++# catch unresolved symbols
++
++SHLIB_LD_OPTS += -no_unresolved
++
++include $(CORE_DEPTH)/coreconf/IRIX6.mk
++
++OS_CFLAGS += -DIRIX6_2
+diff -ruN mozilla.orig/security/coreconf/IRIX6.3.mk mozilla/security/coreconf/IRIX6.3.mk
+--- mozilla.orig/security/coreconf/IRIX6.3.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX6.3.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,44 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# catch unresolved symbols
++
++SHLIB_LD_OPTS += -no_unresolved
++
++include $(CORE_DEPTH)/coreconf/IRIX6.mk
++
++OS_CFLAGS += -DIRIX6_3
+diff -ruN mozilla.orig/security/coreconf/IRIX6.5.mk mozilla/security/coreconf/IRIX6.5.mk
+--- mozilla.orig/security/coreconf/IRIX6.5.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX6.5.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,47 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# catch unresolved symbols
++
++SHLIB_LD_OPTS += -no_unresolved
++
++include $(CORE_DEPTH)/coreconf/IRIX6.mk
++
++OS_CFLAGS += -DIRIX6_5
++ifndef NS_USE_GCC
++OS_CFLAGS += -mips3
++endif
+diff -ruN mozilla.orig/security/coreconf/IRIX6.mk mozilla/security/coreconf/IRIX6.mk
+--- mozilla.orig/security/coreconf/IRIX6.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/IRIX6.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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
+diff -ruN mozilla.orig/security/coreconf/Linux.mk mozilla/security/coreconf/Linux.mk
+--- mozilla.orig/security/coreconf/Linux.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Linux.mk	2010-08-13 02:31:13.000000000 +0100
+@@ -0,0 +1,194 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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),ppc64)
++	CPU_ARCH	= ppc
++ifeq ($(USE_64),1)
++	ARCHFLAG	= -m64
++endif
++else
++ifeq ($(OS_TEST),alpha)
++        OS_REL_CFLAGS   = -D_ALPHA_
++	CPU_ARCH	= alpha
++else
++ifeq ($(OS_TEST),x86_64)
++ifeq ($(USE_64),1)
++	CPU_ARCH	= x86_64
++else
++	OS_REL_CFLAGS	= -Di386
++	CPU_ARCH	= x86
++	ARCHFLAG	= -m32
++endif
++else
++ifeq ($(OS_TEST),sparc64)
++	CPU_ARCH        = sparc
++else
++ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
++	CPU_ARCH        = arm
++else
++ifeq (,$(filter-out parisc%,$(OS_TEST)))
++	CPU_ARCH        = hppa
++else
++ifeq (,$(filter-out i%86,$(OS_TEST)))
++	OS_REL_CFLAGS	= -Di386
++	CPU_ARCH	= x86
++else
++ifeq ($(OS_TEST),sh4a)
++	CPU_ARCH        = sh4
++else
++# $(OS_TEST) == m68k, ppc, ia64, sparc, s390, s390x, mips, sh3, sh4
++	CPU_ARCH	= $(OS_TEST)
++endif
++endif
++endif
++endif
++endif
++endif
++endif
++endif
++
++
++LIBC_TAG		= _glibc
++
++ifeq ($(OS_RELEASE),2.0)
++	OS_REL_CFLAGS	+= -DLINUX2_0
++	MKSHLIB		= $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
++	ifdef MAPFILE
++		MKSHLIB += -Wl,--version-script,$(MAPFILE)
++	endif
++	PROCESS_MAP_FILE = grep -v ';-' $< | \
++         sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++endif
++
++ifdef BUILD_OPT
++ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
++	OPTIMIZER = -Os
++else
++	OPTIMIZER = -O2
++endif
++ifdef MOZ_DEBUG_SYMBOLS
++	ifdef MOZ_DEBUG_FLAGS
++		OPTIMIZER += $(MOZ_DEBUG_FLAGS)
++	else
++		OPTIMIZER += -gdwarf-2
++	endif
++endif
++endif
++
++
++ifeq ($(USE_PTHREADS),1)
++OS_PTHREAD = -lpthread 
++endif
++
++# See bug 537829, in particular comment 23.
++# Place -ansi and *_SOURCE before $(DSO_CFLAGS) so DSO_CFLAGS can override
++# -ansi on platforms like Android where the system headers are C99 and do
++# not build with -ansi.
++STANDARDS_CFLAGS	= -ansi -D_POSIX_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE
++OS_CFLAGS		= $(STANDARDS_CFLAGS) $(DSO_CFLAGS) $(OS_REL_CFLAGS) $(ARCHFLAG) -Wall -Werror-implicit-function-declaration -Wno-switch -pipe -DLINUX -Dlinux -DHAVE_STRERROR
++OS_LIBS			= $(OS_PTHREAD) -ldl -lc
++
++ifdef USE_PTHREADS
++	DEFINES		+= -D_REENTRANT
++endif
++
++ARCH			= linux
++
++DSO_CFLAGS		= -fPIC
++DSO_LDOPTS		= -shared $(ARCHFLAG)
++# The linker on Red Hat Linux 7.2 and RHEL 2.1 (GNU ld version 2.11.90.0.8)
++# incorrectly reports undefined references in the libraries we link with, so
++# we don't use -z defs there.
++ZDEFS_FLAG		= -Wl,-z,defs
++DSO_LDOPTS		+= $(if $(findstring 2.11.90.0.8,$(shell ld -v)),,$(ZDEFS_FLAG))
++LDFLAGS			+= $(ARCHFLAG)
++
++# On Maemo, we need to use the -rpath-link flag for even the standard system
++# library directories.
++ifdef _SBOX_DIR
++LDFLAGS			+= -Wl,-rpath-link,/usr/lib:/lib
++endif
++
++# INCLUDES += -I/usr/include -Y/usr/include/linux
++G++INCLUDES		= -I/usr/include/g++
++
++#
++# Always set CPU_TAG on Linux, WINCE.
++#
++CPU_TAG = _$(CPU_ARCH)
++
++#
++# On Linux 2.6 or later, build libfreebl3.so with no NSPR and libnssutil3.so
++# dependencies by default.  Set FREEBL_NO_DEPEND to 0 in the environment to
++# override this.
++#
++ifeq (2.6,$(firstword $(sort 2.6 $(OS_RELEASE))))
++ifndef FREEBL_NO_DEPEND
++FREEBL_NO_DEPEND = 1
++endif
++endif
++
++USE_SYSTEM_ZLIB = 1
++ZLIB_LIBS = -lz
++
++# The -rpath '$$ORIGIN' linker option instructs this library to search for its
++# dependencies in the same directory where it resides.
++ifeq ($(BUILD_SUN_PKG), 1)
++ifeq ($(USE_64), 1)
++RPATH = -Wl,-rpath,'$$ORIGIN:/opt/sun/private/lib64:/opt/sun/private/lib'
++else
++RPATH = -Wl,-rpath,'$$ORIGIN:/opt/sun/private/lib'
++endif
++endif
++
+diff -ruN mozilla.orig/security/coreconf/Linux2.1.mk mozilla/security/coreconf/Linux2.1.mk
+--- mozilla.orig/security/coreconf/Linux2.1.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Linux2.1.mk	2009-06-11 01:55:32.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
++ifeq ($(OS_RELEASE),2.1)
++        OS_REL_CFLAGS   += -DLINUX2_1
++        MKSHLIB         = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
++	ifdef MAPFILE
++		MKSHLIB += -Wl,--version-script,$(MAPFILE)
++	endif
++	PROCESS_MAP_FILE = grep -v ';-' $< | \
++       	 sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++endif
++
+diff -ruN mozilla.orig/security/coreconf/Linux2.2.mk mozilla/security/coreconf/Linux2.2.mk
+--- mozilla.orig/security/coreconf/Linux2.2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Linux2.2.mk	2009-06-11 01:55:32.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
++
++OS_REL_CFLAGS   += -DLINUX2_1
++MKSHLIB         = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
++
++ifdef MAPFILE
++	MKSHLIB += -Wl,--version-script,$(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';-' $< | \
++        sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++
+diff -ruN mozilla.orig/security/coreconf/Linux2.4.mk mozilla/security/coreconf/Linux2.4.mk
+--- mozilla.orig/security/coreconf/Linux2.4.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Linux2.4.mk	2010-07-21 17:23:15.000000000 +0100
+@@ -0,0 +1,49 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
++
++OS_REL_CFLAGS   += -DLINUX2_1
++MKSHLIB         = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
++
++ifdef MAPFILE
++	MKSHLIB += -Wl,--version-script,$(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';-' $< | \
++        sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++        
++DEFINES += -DNO_FORK_CHECK
+diff -ruN mozilla.orig/security/coreconf/Linux2.5.mk mozilla/security/coreconf/Linux2.5.mk
+--- mozilla.orig/security/coreconf/Linux2.5.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Linux2.5.mk	2009-06-11 01:55:32.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
++
++OS_REL_CFLAGS   += -DLINUX2_1
++MKSHLIB         = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
++
++ifdef MAPFILE
++	MKSHLIB += -Wl,--version-script,$(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';-' $< | \
++        sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++
+diff -ruN mozilla.orig/security/coreconf/Linux2.6.mk mozilla/security/coreconf/Linux2.6.mk
+--- mozilla.orig/security/coreconf/Linux2.6.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Linux2.6.mk	2009-06-11 01:55:32.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
++
++OS_REL_CFLAGS   += -DLINUX2_1
++MKSHLIB         = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) $(RPATH)
++
++ifdef MAPFILE
++	MKSHLIB += -Wl,--version-script,$(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';-' $< | \
++        sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++
+diff -ruN mozilla.orig/security/coreconf/LinuxELF1.2.mk mozilla/security/coreconf/LinuxELF1.2.mk
+--- mozilla.orig/security/coreconf/LinuxELF1.2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/LinuxELF1.2.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,38 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
+diff -ruN mozilla.orig/security/coreconf/LinuxELF2.0.mk mozilla/security/coreconf/LinuxELF2.0.mk
+--- mozilla.orig/security/coreconf/LinuxELF2.0.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/LinuxELF2.0.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,38 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
+diff -ruN mozilla.orig/security/coreconf/Makefile mozilla/security/coreconf/Makefile
+--- mozilla.orig/security/coreconf/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/Makefile	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,47 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++DEPTH		= ..
++CORE_DEPTH	= ..
++
++MODULE		= coreconf
++
++DIRS		= nsinstall
++
++include $(DEPTH)/coreconf/config.mk
++include $(DEPTH)/coreconf/rules.mk
++
++export:: libs
+diff -ruN mozilla.orig/security/coreconf/NCR3.0.mk mozilla/security/coreconf/NCR3.0.mk
+--- mozilla.orig/security/coreconf/NCR3.0.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/NCR3.0.mk	2007-11-22 04:39:56.000000000 +0000
+@@ -0,0 +1,97 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++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 -Wno-switch $(GCC_FLAGS_EXTRA)
++#		OS_LIBS += -L/usr/local/lib -lstdc++ -lg++ -lgcc
++	endif
++endif
++###
+diff -ruN mozilla.orig/security/coreconf/NEC4.2.mk mozilla/security/coreconf/NEC4.2.mk
+--- mozilla.orig/security/coreconf/NEC4.2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/NEC4.2.mk	2005-09-16 18:09:23.000000000 +0100
+@@ -0,0 +1,68 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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)
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++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
+diff -ruN mozilla.orig/security/coreconf/NetBSD.mk mozilla/security/coreconf/NetBSD.mk
+--- mozilla.orig/security/coreconf/NetBSD.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/NetBSD.mk	2009-09-03 05:57:00.000000000 +0100
+@@ -0,0 +1,87 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++DEFAULT_COMPILER	= gcc
++CC			= gcc
++CCC			= g++
++RANLIB			= ranlib
++
++CPU_ARCH		:= $(shell uname -p)
++ifeq ($(CPU_ARCH),i386)
++OS_REL_CFLAGS		= -Di386
++CPU_ARCH		= x86
++endif
++
++ifndef OBJECT_FMT
++OBJECT_FMT		:= $(shell if echo __ELF__ | $${CC:-cc} -E - | grep -q __ELF__ ; then echo a.out ; else echo ELF ; fi)
++endif
++
++ifeq ($(OBJECT_FMT),ELF)
++DLL_SUFFIX		= so
++else
++DLL_SUFFIX		= so.1.0
++endif
++
++OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -Wno-switch -pipe -DNETBSD -Dunix -DHAVE_STRERROR -DHAVE_BSD_FLOCK
++
++OS_LIBS			= -lcompat
++
++ARCH			= netbsd
++
++DSO_CFLAGS		= -fPIC -DPIC
++DSO_LDOPTS		= -shared
++ifeq ($(OBJECT_FMT),ELF)
++DSO_LDOPTS		+= -Wl,-soname,lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
++endif
++
++ifdef LIBRUNPATH
++DSO_LDOPTS		+= -Wl,-R$(LIBRUNPATH)
++endif
++
++MKSHLIB			= $(CC) $(DSO_LDOPTS)
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++
++G++INCLUDES		= -I/usr/include/g++
++
++INCLUDES		+= -I/usr/X11R6/include
+diff -ruN mozilla.orig/security/coreconf/OS2.mk mozilla/security/coreconf/OS2.mk
+--- mozilla.orig/security/coreconf/OS2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OS2.mk	2009-05-16 01:31:47.000000000 +0100
+@@ -0,0 +1,188 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++MOZ_WIDGET_TOOLKIT = os2
++
++# XP_PC is for Window and OS2 on Intel X86
++# XP_OS2 is strictly for OS2 only
++XP_DEFINE  += -DXP_PC=1  -DXP_OS2=1
++
++# Override prefix
++LIB_PREFIX  = $(NULL)
++
++# Override suffix in suffix.mk
++LIB_SUFFIX  = lib
++# the DLL_SUFFIX must be uppercase for FIPS mode to work. bugzilla 240784
++DLL_SUFFIX  = DLL
++PROG_SUFFIX = .exe
++
++
++CCC			= gcc
++LINK			= gcc
++AR                      = emxomfar r $@
++# Keep AR_FLAGS blank so that we do not have to change rules.mk
++AR_FLAGS                = 
++RANLIB 			= @echo OS2 RANLIB
++BSDECHO 		= @echo OS2 BSDECHO
++IMPLIB			= emximp -o
++FILTER			= emxexp -o
++
++# GCC for OS/2 currently predefines these, but we don't want them
++DEFINES 		+= -Uunix -U__unix -U__unix__
++
++DEFINES			+= -DTCPV40HDRS
++
++ifeq ($(MOZ_OS2_HIGH_MEMORY),1)
++HIGHMEM_LDFLAG          = -Zhigh-mem
++endif
++
++ifndef NO_SHARED_LIB
++WRAP_MALLOC_LIB         = 
++WRAP_MALLOC_CFLAGS      = 
++DSO_CFLAGS              = 
++DSO_PIC_CFLAGS          = 
++MKSHLIB                 = $(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@
++MKCSHLIB                = $(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@
++MKSHLIB_FORCE_ALL       = 
++MKSHLIB_UNFORCE_ALL     = 
++DSO_LDOPTS              = -Zomf -Zdll -Zmap $(HIGHMEM_LDFLAG)
++SHLIB_LDSTARTFILE	= 
++SHLIB_LDENDFILE		= 
++ifdef MAPFILE
++MKSHLIB += $(MAPFILE)
++endif
++PROCESS_MAP_FILE = \
++	echo LIBRARY $(LIBRARY_NAME)$(LIBRARY_VERSION) INITINSTANCE TERMINSTANCE > $@; \
++	echo PROTMODE >> $@; \
++	echo CODE    LOADONCALL MOVEABLE DISCARDABLE >> $@; \
++	echo DATA    PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@; \
++	echo EXPORTS >> $@; \
++	grep -v ';+' $< | grep -v ';-' | \
++	sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' -e 's,\([\t ]*\),\1_,' | \
++	awk 'BEGIN {ord=1;} { print($$0 " @" ord " RESIDENTNAME"); ord++;}' >> $@
++
++endif   #NO_SHARED_LIB
++
++OS_CFLAGS          = -Wall -Wno-unused -Wpointer-arith -Wcast-align -Wno-switch -Zomf -DDEBUG -DTRACING -g
++
++ifdef BUILD_OPT
++ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
++	OPTIMIZER += -Os -s
++else
++	OPTIMIZER += -O2 -s
++endif
++DEFINES 		+= -UDEBUG -U_DEBUG -DNDEBUG
++DLLFLAGS		= -DLL -OUT:$@ -MAP:$(@:.dll=.map) $(HIGHMEM_LDFLAG)
++EXEFLAGS    		= -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE $(HIGHMEM_LDFLAG)
++OBJDIR_TAG 		= _OPT
++else
++#OPTIMIZER		= -O+ -Oi
++DEFINES 		+= -DDEBUG -D_DEBUG -DDEBUGPRINTS     #HCT Need += to avoid overidding manifest.mn 
++DLLFLAGS		= -DEBUG -DLL -OUT:$@ -MAP:$(@:.dll=.map) $(HIGHMEM_LDFLAG)
++EXEFLAGS    		= -DEBUG -PMTYPE:VIO -OUT:$@ -MAP:$(@:.exe=.map) -nologo -NOE $(HIGHMEM_LDFLAG)
++OBJDIR_TAG 		= _DBG
++LDFLAGS 		= -DEBUG $(HIGHMEM_LDFLAG)
++endif   # BUILD_OPT
++
++# OS/2 use nsinstall that is included in the toolkit.
++# since we do not wish to support and maintain 3 version of nsinstall in mozilla, nspr and nss
++
++ifdef BUILD_TREE
++NSINSTALL_DIR  = $(BUILD_TREE)/nss
++else
++NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
++endif
++# NSINSTALL      = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
++NSINSTALL 	= nsinstall             # HCT4OS2
++INSTALL		= $(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.
++#   - 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 `pwd`
++	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
++
++#
++# override the definition of DLL_PREFIX in prefix.mk
++#
++
++ifndef DLL_PREFIX
++    DLL_PREFIX = $(NULL)
++endif
++
++#
++# override the TARGETS defined in ruleset.mk, adding IMPORT_LIBRARY
++#
++ifndef TARGETS
++    TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) $(PROGRAM)
++endif
++
++
++ifdef LIBRARY_NAME
++    IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)$(JDK_DEBUG_SUFFIX).lib
++endif
++
+diff -ruN mozilla.orig/security/coreconf/OSF1.mk mozilla/security/coreconf/OSF1.mk
+--- mozilla.orig/security/coreconf/OSF1.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1.mk	2009-04-09 23:25:09.000000000 +0100
+@@ -0,0 +1,80 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# 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 
++
++ifeq ($(USE_PTHREADS),1)
++	OS_CFLAGS += -pthread
++endif
++
++# The command to build a shared library on OSF1.
++MKSHLIB    += ld -shared -expect_unresolved "*" -soname $(notdir $@)
++ifdef MAPFILE
++MKSHLIB += -hidden -input $(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';+' $< | grep -v ';-' | \
++ sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' -e 's,^,-exported_symbol ,' > $@
++
++DSO_LDOPTS += -shared
++
++# required for freebl
++USE_64=1
++# this platform name does not use a bit tag due to only having a 64-bit ABI
++64BIT_TAG=
++
+diff -ruN mozilla.orig/security/coreconf/OSF1V2.0.mk mozilla/security/coreconf/OSF1V2.0.mk
+--- mozilla.orig/security/coreconf/OSF1V2.0.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V2.0.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,37 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/OSF1.mk
+diff -ruN mozilla.orig/security/coreconf/OSF1V3.0.mk mozilla/security/coreconf/OSF1V3.0.mk
+--- mozilla.orig/security/coreconf/OSF1V3.0.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V3.0.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,37 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/OSF1.mk
+diff -ruN mozilla.orig/security/coreconf/OSF1V3.2.mk mozilla/security/coreconf/OSF1V3.2.mk
+--- mozilla.orig/security/coreconf/OSF1V3.2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V3.2.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
+diff -ruN mozilla.orig/security/coreconf/OSF1V4.0.mk mozilla/security/coreconf/OSF1V4.0.mk
+--- mozilla.orig/security/coreconf/OSF1V4.0.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V4.0.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,56 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# 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
+diff -ruN mozilla.orig/security/coreconf/OSF1V4.0B.mk mozilla/security/coreconf/OSF1V4.0B.mk
+--- mozilla.orig/security/coreconf/OSF1V4.0B.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V4.0B.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,37 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/OSF1V4.0.mk
+diff -ruN mozilla.orig/security/coreconf/OSF1V4.0D.mk mozilla/security/coreconf/OSF1V4.0D.mk
+--- mozilla.orig/security/coreconf/OSF1V4.0D.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V4.0D.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,41 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/OSF1V4.0.mk
++DEFINES	+= -DOSF1V4D
++
++OS_LIBS += -lpthread -lrt
++
+diff -ruN mozilla.orig/security/coreconf/OSF1V5.0.mk mozilla/security/coreconf/OSF1V5.0.mk
+--- mozilla.orig/security/coreconf/OSF1V5.0.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V5.0.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,52 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# On OSF1 V5.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 V5.0
++#
++include $(CORE_DEPTH)/coreconf/OSF1.mk
+diff -ruN mozilla.orig/security/coreconf/OSF1V5.1.mk mozilla/security/coreconf/OSF1V5.1.mk
+--- mozilla.orig/security/coreconf/OSF1V5.1.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OSF1V5.1.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,52 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2001
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# On OSF1 V5.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 V5.1
++#
++include $(CORE_DEPTH)/coreconf/OSF1.mk
+diff -ruN mozilla.orig/security/coreconf/OpenBSD.mk mozilla/security/coreconf/OpenBSD.mk
+--- mozilla.orig/security/coreconf/OpenBSD.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OpenBSD.mk	2009-09-03 05:57:00.000000000 +0100
+@@ -0,0 +1,73 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++CC			?= gcc
++CXX			?= g++
++DEFAULT_COMPILER	= ${CC}
++CCC			= ${CXX}
++RANLIB			= ranlib
++
++CPU_ARCH		:= $(shell arch -s)
++ifeq ($(CPU_ARCH),i386)
++OS_REL_CFLAGS		= -Di386
++CPU_ARCH		= x86
++endif
++
++ifndef CLASSIC_NSPR
++USE_PTHREADS		= 1
++DEFINES			+= -pthread
++OS_LIBS			+= -pthread
++DSO_LDOPTS		+= -pthread
++endif
++
++DLL_SUFFIX		= so.1.0
++
++OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -Wno-switch -pipe -DOPENBSD
++
++OS_LIBS			= 
++
++ARCH			= openbsd
++
++DSO_CFLAGS		= -fPIC -DPIC
++DSO_LDOPTS		= -shared -fPIC -Wl,-soname,lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
++
++MKSHLIB			= $(CC) $(DSO_LDOPTS)
++
++USE_SYSTEM_ZLIB		= 1
++ZLIB_LIBS		= -lz
+diff -ruN mozilla.orig/security/coreconf/OpenUNIX.mk mozilla/security/coreconf/OpenUNIX.mk
+--- mozilla.orig/security/coreconf/OpenUNIX.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/OpenUNIX.mk	2009-09-03 05:57:00.000000000 +0100
+@@ -0,0 +1,92 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++DEFAULT_COMPILER = gcc
++
++CC         = gcc
++OS_CFLAGS += -fPIC
++CCC        = g++
++CCC       += -DPRFSTREAMS_BROKEN -I/usr/gnu/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
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++#
++# These defines are for building unix plugins
++#
++BUILD_UNIX_PLUGINS  = 1
++#DSO_LDOPTS         += -b elf -G -z defs
++DSO_LDOPTS         += -G
++
++# Used for Java compiler
++EXPORT_FLAGS += -W l,-Bexport
+diff -ruN mozilla.orig/security/coreconf/QNX.mk mozilla/security/coreconf/QNX.mk
+--- mozilla.orig/security/coreconf/QNX.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/QNX.mk	2009-09-03 05:57:00.000000000 +0100
+@@ -0,0 +1,71 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2001
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++USE_PTHREADS = 1
++
++ifeq ($(USE_PTHREADS),1)
++	IMPL_STRATEGY = _PTH
++endif
++
++CC			= qcc
++CCC			= qcc
++RANLIB			= ranlib
++
++DEFAULT_COMPILER = qcc
++ifeq ($(OS_TEST),mips)
++	CPU_ARCH	= mips
++else
++	CPU_ARCH	= x86
++endif
++
++MKSHLIB		= $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
++ifdef BUILD_OPT
++	OPTIMIZER	= -O2
++endif
++
++OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Vgcc_ntox86 -Wall -pipe -DNTO -DHAVE_STRERROR -D_QNX_SOURCE -D_POSIX_C_SOURCE=199506 -D_XOPEN_SOURCE=500
++
++ifdef USE_PTHREADS
++	DEFINES		+= -D_REENTRANT
++endif
++
++ARCH			= QNX
++
++DSO_CFLAGS		= -Wc,-fPIC
++DSO_LDOPTS		= -shared
+diff -ruN mozilla.orig/security/coreconf/README mozilla/security/coreconf/README
+--- mozilla.orig/security/coreconf/README	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/README	2005-01-27 19:14:15.000000000 +0000
+@@ -0,0 +1,561 @@
++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.  (Note: HCL was the
++            old name of NSS.)
++
++            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)
++
++        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),
++                                and/or import $(IMPORT_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
++
++
++        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
++
+diff -ruN mozilla.orig/security/coreconf/RISCOS.mk mozilla/security/coreconf/RISCOS.mk
+--- mozilla.orig/security/coreconf/RISCOS.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/RISCOS.mk	2009-09-03 05:57:00.000000000 +0100
+@@ -0,0 +1,55 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#   Peter Naulls
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++LIB_SUFFIX  = a
++DLL_SUFFIX  = so
++AR          = ar cr $@
++LDOPTS     += -L$(SOURCE_LIB_DIR)
++MKSHLIB     = $(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
++
++OS_RELEASE  =
++OS_TARGET   = RISCOS
++
++DSO_CFLAGS  = -fPIC
++DSO_LDOPTS  = -shared
++
++ifdef BUILD_OPT
++	OPTIMIZER = -O3
++endif
+diff -ruN mozilla.orig/security/coreconf/ReliantUNIX.mk mozilla/security/coreconf/ReliantUNIX.mk
+--- mozilla.orig/security/coreconf/ReliantUNIX.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/ReliantUNIX.mk	2007-11-22 04:39:56.000000000 +0000
+@@ -0,0 +1,90 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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 -Wno-switch
++	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
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++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
++
++ifdef DSO_BACKEND
++	DSO_LDOPTS += -h $(DSO_NAME)
++endif
+diff -ruN mozilla.orig/security/coreconf/ReliantUNIX5.4.mk mozilla/security/coreconf/ReliantUNIX5.4.mk
+--- mozilla.orig/security/coreconf/ReliantUNIX5.4.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/ReliantUNIX5.4.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,37 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++include $(CORE_DEPTH)/coreconf/ReliantUNIX.mk
+diff -ruN mozilla.orig/security/coreconf/SCOOS5.0.mk mozilla/security/coreconf/SCOOS5.0.mk
+--- mozilla.orig/security/coreconf/SCOOS5.0.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SCOOS5.0.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,38 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/SCO_SV3.2.mk
+diff -ruN mozilla.orig/security/coreconf/SCO_SV3.2.mk mozilla/security/coreconf/SCO_SV3.2.mk
+--- mozilla.orig/security/coreconf/SCO_SV3.2.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SCO_SV3.2.mk	2009-09-03 05:57:00.000000000 +0100
+@@ -0,0 +1,92 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++#
++# These defines are for building unix plugins
++#
++BUILD_UNIX_PLUGINS  = 1
++#DSO_LDOPTS         += -b elf -G -z defs
++DSO_LDOPTS         += -b elf -G
++
++# Used for Java compiler
++EXPORT_FLAGS += -W l,-Bexport
+diff -ruN mozilla.orig/security/coreconf/SunOS4.1.3_U1.mk mozilla/security/coreconf/SunOS4.1.3_U1.mk
+--- mozilla.orig/security/coreconf/SunOS4.1.3_U1.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS4.1.3_U1.mk	2007-11-22 04:39:56.000000000 +0000
+@@ -0,0 +1,60 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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 -Wno-switch -DSUNOS4
++OS_CFLAGS      += $(DSO_CFLAGS) $(NOMD_OS_CFLAGS) -MDupdate $(DEPENDENCIES)
++MKSHLIB         = $(LD)
++MKSHLIB        += $(DSO_LDOPTS)
++NOSUCHFILE      = /solaris-rm-f-sucks
++DSO_LDOPTS      =
++
++# -fPIC generates position-independent code for use in a shared library.
++DSO_CFLAGS += -fPIC
+diff -ruN mozilla.orig/security/coreconf/SunOS5.10.mk mozilla/security/coreconf/SunOS5.10.mk
+--- mozilla.orig/security/coreconf/SunOS5.10.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.10.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,46 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS += -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++ifeq ($(OS_RELEASE),5.10)
++	OS_DEFINES += -DSOLARIS2_10
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
+diff -ruN mozilla.orig/security/coreconf/SunOS5.10_i86pc.mk mozilla/security/coreconf/SunOS5.10_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.10_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.10_i86pc.mk	2004-10-11 03:15:42.000000000 +0100
+@@ -0,0 +1,53 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS	= -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++ifeq ($(USE_64),1)
++    CPU_ARCH		= x86_64
++else
++    CPU_ARCH		= x86
++    OS_DEFINES		+= -Di386
++endif
++
++ifeq ($(OS_RELEASE),5.10_i86pc)
++	OS_DEFINES += -DSOLARIS2_10
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc
+diff -ruN mozilla.orig/security/coreconf/SunOS5.11.mk mozilla/security/coreconf/SunOS5.11.mk
+--- mozilla.orig/security/coreconf/SunOS5.11.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.11.mk	2006-01-03 23:02:11.000000000 +0000
+@@ -0,0 +1,46 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS += -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++ifeq ($(OS_RELEASE),5.11)
++	OS_DEFINES += -DSOLARIS2_11
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
+diff -ruN mozilla.orig/security/coreconf/SunOS5.11_i86pc.mk mozilla/security/coreconf/SunOS5.11_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.11_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.11_i86pc.mk	2006-01-03 23:02:11.000000000 +0000
+@@ -0,0 +1,53 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS	= -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++ifeq ($(USE_64),1)
++    CPU_ARCH		= x86_64
++else
++    CPU_ARCH		= x86
++    OS_DEFINES		+= -Di386
++endif
++
++ifeq ($(OS_RELEASE),5.11_i86pc)
++	OS_DEFINES += -DSOLARIS2_11
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc
+diff -ruN mozilla.orig/security/coreconf/SunOS5.3.mk mozilla/security/coreconf/SunOS5.3.mk
+--- mozilla.orig/security/coreconf/SunOS5.3.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.3.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,40 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS =
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
+diff -ruN mozilla.orig/security/coreconf/SunOS5.4.mk mozilla/security/coreconf/SunOS5.4.mk
+--- mozilla.orig/security/coreconf/SunOS5.4.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.4.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,40 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS =
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
+diff -ruN mozilla.orig/security/coreconf/SunOS5.4_i86pc.mk mozilla/security/coreconf/SunOS5.4_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.4_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.4_i86pc.mk	2007-11-22 04:39:56.000000000 +0000
+@@ -0,0 +1,69 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++DEFAULT_COMPILER = cc
++
++ifdef NS_USE_GCC
++	CC		= gcc
++	OS_CFLAGS	+= -Wall -Wno-format -Wno-switch
++	CCC		= g++
++	CCC		+= -Wall -Wno-format
++	ASFLAGS		+= -x assembler-with-cpp
++	OS_CFLAGS	+= $(NOMD_OS_CFLAGS)
++	ifdef USE_MDUPDATE
++		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
+diff -ruN mozilla.orig/security/coreconf/SunOS5.5.1.mk mozilla/security/coreconf/SunOS5.5.1.mk
+--- mozilla.orig/security/coreconf/SunOS5.5.1.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.5.1.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,46 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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 
+diff -ruN mozilla.orig/security/coreconf/SunOS5.5.1_i86pc.mk mozilla/security/coreconf/SunOS5.5.1_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.5.1_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.5.1_i86pc.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS	= -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++CPU_ARCH		= x86
++ARCHFLAG		=
++OS_DEFINES		+= -Di386
++
++ifeq ($(OS_RELEASE),5.5.1_i86pc)
++	OS_DEFINES += -DSOLARIS2_5
++endif
+diff -ruN mozilla.orig/security/coreconf/SunOS5.5.mk mozilla/security/coreconf/SunOS5.5.mk
+--- mozilla.orig/security/coreconf/SunOS5.5.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.5.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,44 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS += -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++ifeq ($(OS_RELEASE),5.5)
++	OS_DEFINES += -DSOLARIS2_5
++endif
+diff -ruN mozilla.orig/security/coreconf/SunOS5.6.mk mozilla/security/coreconf/SunOS5.6.mk
+--- mozilla.orig/security/coreconf/SunOS5.6.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.6.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,46 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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 
+diff -ruN mozilla.orig/security/coreconf/SunOS5.6_i86pc.mk mozilla/security/coreconf/SunOS5.6_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.6_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.6_i86pc.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,48 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS	= -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++CPU_ARCH		= x86
++ARCHFLAG		=
++OS_DEFINES		+= -Di386
++
++ifeq ($(OS_RELEASE),5.6_i86pc)
++	OS_DEFINES += -DSOLARIS2_6
++endif
+diff -ruN mozilla.orig/security/coreconf/SunOS5.7.mk mozilla/security/coreconf/SunOS5.7.mk
+--- mozilla.orig/security/coreconf/SunOS5.7.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.7.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,46 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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 
+diff -ruN mozilla.orig/security/coreconf/SunOS5.7_i86pc.mk mozilla/security/coreconf/SunOS5.7_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.7_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.7_i86pc.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,50 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS	= -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++CPU_ARCH		= x86
++ARCHFLAG		=
++OS_DEFINES		+= -Di386
++
++ifeq ($(OS_RELEASE),5.7_i86pc)
++	OS_DEFINES += -DSOLARIS2_7
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc
+diff -ruN mozilla.orig/security/coreconf/SunOS5.8.mk mozilla/security/coreconf/SunOS5.8.mk
+--- mozilla.orig/security/coreconf/SunOS5.8.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.8.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,46 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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 
+diff -ruN mozilla.orig/security/coreconf/SunOS5.8_i86pc.mk mozilla/security/coreconf/SunOS5.8_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.8_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.8_i86pc.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,50 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS	= -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++CPU_ARCH		= x86
++ARCHFLAG		=
++OS_DEFINES		+= -Di386
++
++ifeq ($(OS_RELEASE),5.8_i86pc)
++	OS_DEFINES += -DSOLARIS2_8
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc
+diff -ruN mozilla.orig/security/coreconf/SunOS5.9.mk mozilla/security/coreconf/SunOS5.9.mk
+--- mozilla.orig/security/coreconf/SunOS5.9.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.9.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,46 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS += -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++ifeq ($(OS_RELEASE),5.9)
++	OS_DEFINES += -DSOLARIS2_9
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc 
+diff -ruN mozilla.orig/security/coreconf/SunOS5.9_i86pc.mk mozilla/security/coreconf/SunOS5.9_i86pc.mk
+--- mozilla.orig/security/coreconf/SunOS5.9_i86pc.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.9_i86pc.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,50 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++SOL_CFLAGS	= -D_SVID_GETTOD
++
++include $(CORE_DEPTH)/coreconf/SunOS5.mk
++
++CPU_ARCH		= x86
++ARCHFLAG		=
++OS_DEFINES		+= -Di386
++
++ifeq ($(OS_RELEASE),5.9_i86pc)
++	OS_DEFINES += -DSOLARIS2_9
++endif
++
++OS_LIBS += -lthread -lnsl -lsocket -lposix4 -ldl -lc
+diff -ruN mozilla.orig/security/coreconf/SunOS5.mk mozilla/security/coreconf/SunOS5.mk
+--- mozilla.orig/security/coreconf/SunOS5.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/SunOS5.mk	2009-06-11 01:55:32.000000000 +0100
+@@ -0,0 +1,180 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++include $(CORE_DEPTH)/coreconf/UNIX.mk
++
++#
++# Temporary define for the Client; to be removed when binary release is used
++#
++ifdef MOZILLA_CLIENT
++	ifndef NS_USE_NATIVE
++		NS_USE_GCC = 1
++	endif
++endif
++
++# Sun's WorkShop defines v8, v8plus and v9 architectures.
++# gcc on Solaris defines v8 and v9 "cpus".  
++# gcc's v9 is equivalent to Workshop's v8plus.
++# gcc's -m64 is equivalent to Workshop's v9
++
++ifeq ($(USE_64), 1)
++  ifdef NS_USE_GCC
++      ARCHFLAG=-m64
++  else
++      ifeq ($(OS_TEST),i86pc)
++        ARCHFLAG=-xarch=amd64
++      else
++        ARCHFLAG=-xarch=v9
++      endif
++  endif
++else
++  ifneq ($(OS_TEST),i86pc)
++    ifdef NS_USE_GCC
++      ARCHFLAG=-mcpu=v8
++    else
++      ARCHFLAG=-xarch=v8
++    endif
++  endif
++endif
++
++DEFAULT_COMPILER = cc
++
++ifdef NS_USE_GCC
++	CC         = gcc
++	OS_CFLAGS += -Wall -Wno-format -Werror-implicit-function-declaration -Wno-switch
++	CCC        = g++
++	CCC       += -Wall -Wno-format
++	ASFLAGS	  += -x assembler-with-cpp
++	OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
++	ifdef USE_MDUPDATE
++		OS_CFLAGS += -MDupdate $(DEPENDENCIES)
++	endif
++	ifdef BUILD_OPT
++	    OPTIMIZER = -O2
++	    # Enable this for accurate dtrace profiling
++	    # OPTIMIZER += -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
++	endif
++else
++	CC         = cc
++	CCC        = CC
++	ASFLAGS   += -Wa,-P
++	OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
++	ifndef BUILD_OPT
++		OS_CFLAGS  += -xs
++	else
++		OPTIMIZER = -xO4
++	endif
++	ifdef USE_TCOV
++		CC += -xprofile=tcov
++		CCC += -xprofile=tcov
++	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 -D_REENTRANT
++
++# Purify doesn't like -MDupdate
++NOMD_OS_CFLAGS += $(DSO_CFLAGS) $(OS_DEFINES) $(SOL_CFLAGS)
++
++MKSHLIB  = $(CC) $(DSO_LDOPTS) $(RPATH)
++ifdef NS_USE_GCC
++ifeq (GNU,$(findstring GNU,$(shell `$(CC) -print-prog-name=ld` -v 2>&1)))
++	GCC_USE_GNU_LD = 1
++endif
++endif
++ifdef MAPFILE
++ifdef NS_USE_GCC
++ifdef GCC_USE_GNU_LD
++    MKSHLIB += -Wl,--version-script,$(MAPFILE)
++else
++    MKSHLIB += -Wl,-M,$(MAPFILE)
++endif
++else
++    MKSHLIB += -M $(MAPFILE)
++endif
++endif
++PROCESS_MAP_FILE = grep -v ';-' $< | \
++         sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++
++
++
++
++# ld options:
++# -G: produce a shared object
++# -z defs: no unresolved symbols allowed
++ifdef NS_USE_GCC
++ifeq ($(USE_64), 1)
++	DSO_LDOPTS += -m64
++endif
++	DSO_LDOPTS += -shared -h $(notdir $@)
++else
++ifeq ($(USE_64), 1)
++	ifeq ($(OS_TEST),i86pc)
++	    DSO_LDOPTS +=-xarch=amd64
++	else
++	    DSO_LDOPTS +=-xarch=v9
++	endif
++endif
++	DSO_LDOPTS += -G -h $(notdir $@)
++endif
++DSO_LDOPTS += -z combreloc -z defs -z ignore
++
++# -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
++
++NOSUCHFILE   = /solaris-rm-f-sucks
++
++ifeq ($(BUILD_SUN_PKG), 1)
++# The -R '$ORIGIN' linker option instructs this library to search for its
++# dependencies in the same directory where it resides.
++ifeq ($(USE_64), 1)
++RPATH = -R '$$ORIGIN:/usr/lib/mps/secv1/64:/usr/lib/mps/64'
++else
++RPATH = -R '$$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps'
++endif
++else
++RPATH = -R '$$ORIGIN'
++endif
++
+diff -ruN mozilla.orig/security/coreconf/UNIX.mk mozilla/security/coreconf/UNIX.mk
+--- mozilla.orig/security/coreconf/UNIX.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/UNIX.mk	2008-10-03 20:12:41.000000000 +0100
+@@ -0,0 +1,96 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++XP_DEFINE  += -DXP_UNIX
++LIB_SUFFIX  = a
++DLL_SUFFIX  = so
++AR          = ar cr $@
++LDOPTS     += -L$(SOURCE_LIB_DIR)
++
++ifdef BUILD_OPT
++	OPTIMIZER  += -O
++	DEFINES    += -UDEBUG -DNDEBUG
++else
++	OPTIMIZER  += -g
++	USERNAME   := $(shell whoami)
++	USERNAME   := $(subst -,_,$(USERNAME))
++	DEFINES    += -DDEBUG -UNDEBUG -DDEBUG_$(USERNAME)
++endif
++
++ifdef BUILD_TREE
++NSINSTALL_DIR  = $(BUILD_TREE)/nss
++NSINSTALL      = $(BUILD_TREE)/nss/nsinstall
++else
++NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
++NSINSTALL      = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
++endif
++
++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.
++#   - 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 `pwd`
++	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
+diff -ruN mozilla.orig/security/coreconf/UNIXWARE2.1.mk mozilla/security/coreconf/UNIXWARE2.1.mk
+--- mozilla.orig/security/coreconf/UNIXWARE2.1.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/UNIXWARE2.1.mk	2005-09-16 18:09:23.000000000 +0100
+@@ -0,0 +1,61 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# 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
++ifdef MAPFILE
++# Add LD options to restrict exported symbols to those in the map file
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
+diff -ruN mozilla.orig/security/coreconf/WIN32.mk mozilla/security/coreconf/WIN32.mk
+--- mozilla.orig/security/coreconf/WIN32.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/WIN32.mk	2010-09-01 19:06:44.000000000 +0100
+@@ -0,0 +1,390 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# Configuration common to all versions of Windows NT
++# and Windows 95
++#
++
++DEFAULT_COMPILER = cl
++
++ifdef NS_USE_GCC
++	CC           = gcc
++	CCC          = g++
++	LINK         = ld
++	AR           = ar
++	AR          += cr $@
++	RANLIB       = ranlib
++	BSDECHO      = echo
++	RC           = windres.exe -O coff --use-temp-file
++	LINK_DLL      = $(CC) $(OS_DLLFLAGS) $(DLLFLAGS)
++else
++	CC           = cl
++	CCC          = cl
++	LINK         = link
++	AR           = lib
++	AR          += -NOLOGO -OUT:"$@"
++	RANLIB       = echo
++	BSDECHO      = echo
++	RC           = rc.exe
++	MT           = mt.exe
++	# Determine compiler version
++	CC_VERSION  := $(shell $(CC) 2>&1 | sed -ne \
++		's|.* \([0-9]\+\.[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?\).*|\1|p')
++	# Change the dots to spaces.
++	_CC_VERSION_WORDS := $(subst ., ,$(CC_VERSION))
++	_CC_VMAJOR  := $(word 1,$(_CC_VERSION_WORDS))
++	_CC_VMINOR  := $(word 2,$(_CC_VERSION_WORDS))
++	_CC_RELEASE := $(word 3,$(_CC_VERSION_WORDS))
++	_CC_BUILD   := $(word 4,$(_CC_VERSION_WORDS))
++	_MSC_VER     = $(_CC_VMAJOR)$(_CC_VMINOR)
++	_MSC_VER_6   = 1200
++	ifeq ($(_CC_VMAJOR),14)
++	    # -DYNAMICBASE is only supported on VC8SP1 or newer,
++	    # so be very specific here!
++	    # VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762
++	    ifeq ($(_CC_RELEASE).$(_CC_BUILD),50727.42)
++		USE_DYNAMICBASE =
++	    else
++	    ifeq ($(_CC_RELEASE).$(_CC_BUILD),50727.762)
++		USE_DYNAMICBASE = 1
++	    else
++		_LOSER := $(error Unknown compiler version $(CC_VERSION))
++	    endif
++	    endif
++	endif
++	# if $(_CC_VMAJOR) >= 15
++	# NOTE: 'sort' sorts the words in lexical order, so this test works
++	# only if $(_CC_VMAJOR) is two digits.
++	ifeq ($(firstword $(sort $(_CC_VMAJOR) 15)),15)
++	    USE_DYNAMICBASE = 1
++	endif
++endif
++
++ifdef BUILD_TREE
++NSINSTALL_DIR  = $(BUILD_TREE)/nss
++else
++NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
++endif
++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)
++GARBAGE     += $(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb
++XP_DEFINE   += -DXP_PC
++ifdef NS_USE_GCC
++LIB_SUFFIX   = a
++else
++LIB_SUFFIX   = lib
++endif
++DLL_SUFFIX   = dll
++
++ifdef NS_USE_GCC
++    # The -mnop-fun-dllimport flag allows us to avoid a drawback of
++    # the dllimport attribute that a pointer to a function marked as
++    # dllimport cannot be used as as a constant address.
++    OS_CFLAGS += -mno-cygwin -mms-bitfields -mnop-fun-dllimport
++    _GEN_IMPORT_LIB=-Wl,--out-implib,$(IMPORT_LIBRARY)
++    DLLFLAGS  += -mno-cygwin -o $@ -shared -Wl,--export-all-symbols $(if $(IMPORT_LIBRARY),$(_GEN_IMPORT_LIB))
++    ifdef BUILD_OPT
++	ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
++		OPTIMIZER += -Os
++	else
++		OPTIMIZER += -O2
++	endif
++	DEFINES    += -UDEBUG -U_DEBUG -DNDEBUG
++    else
++	OPTIMIZER  += -g
++	NULLSTRING :=
++	SPACE      := $(NULLSTRING) # end of the line
++	USERNAME   := $(subst $(SPACE),_,$(USERNAME))
++	USERNAME   := $(subst -,_,$(USERNAME))
++	DEFINES    += -DDEBUG -D_DEBUG -UNDEBUG -DDEBUG_$(USERNAME)
++    endif
++else # !NS_USE_GCC
++    OS_CFLAGS += -W3 -nologo -D_CRT_SECURE_NO_WARNINGS \
++		 -D_CRT_NONSTDC_NO_WARNINGS
++    OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS
++    ifeq ($(_MSC_VER),$(_MSC_VER_6))
++    ifndef MOZ_DEBUG_SYMBOLS
++	OS_DLLFLAGS += -PDB:NONE
++    endif
++    endif
++    ifdef USE_DYNAMICBASE
++	OS_DLLFLAGS += -DYNAMICBASE
++    endif
++    ifdef BUILD_OPT
++	OS_CFLAGS  += -MD
++	ifeq (11,$(ALLOW_OPT_CODE_SIZE)$(OPT_CODE_SIZE))
++		OPTIMIZER += -O1
++	else
++		OPTIMIZER += -O2
++	endif
++	DEFINES    += -UDEBUG -U_DEBUG -DNDEBUG
++	DLLFLAGS   += -OUT:"$@"
++	ifdef MOZ_DEBUG_SYMBOLS
++		ifdef MOZ_DEBUG_FLAGS
++			OPTIMIZER += $(MOZ_DEBUG_FLAGS) -Fd$(OBJDIR)/
++		else
++			OPTIMIZER += -Zi -Fd$(OBJDIR)/
++		endif
++		DLLFLAGS += -DEBUG -OPT:REF
++		LDFLAGS += -DEBUG -OPT:REF
++	endif
++    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 -D_CRTDBG_MAP_ALLOC
++	else
++		OS_CFLAGS += -MD
++	endif
++	OPTIMIZER += -Zi -Fd$(OBJDIR)/ -Od
++	NULLSTRING :=
++	SPACE      := $(NULLSTRING) # end of the line
++	USERNAME   := $(subst $(SPACE),_,$(USERNAME))
++	USERNAME   := $(subst -,_,$(USERNAME))
++	DEFINES    += -DDEBUG -D_DEBUG -UNDEBUG -DDEBUG_$(USERNAME)
++	DLLFLAGS   += -DEBUG -OUT:"$@"
++	LDFLAGS    += -DEBUG 
++ifeq ($(_MSC_VER),$(_MSC_VER_6))
++ifndef MOZ_DEBUG_SYMBOLS
++	LDFLAGS    += -PDB:NONE 
++endif
++endif
++	# Purify requires /FIXED:NO when linking EXEs.
++	LDFLAGS    += /FIXED:NO
++    endif
++ifneq ($(_MSC_VER),$(_MSC_VER_6))
++    # Convert certain deadly warnings to errors (see list at end of file)
++    OS_CFLAGS += -we4002 -we4003 -we4004 -we4006 -we4009 -we4013 \
++     -we4015 -we4028 -we4033 -we4035 -we4045 -we4047 -we4053 -we4054 -we4063 \
++     -we4064 -we4078 -we4087 -we4098 -we4390 -we4551 -we4553 -we4715
++endif # !MSVC6
++endif # NS_USE_GCC
++
++ifdef USE_64
++DEFINES += -DWIN64
++else
++DEFINES += -DWIN32
++endif
++
++ifeq (,$(filter-out x386 x86_64,$(CPU_ARCH)))
++ifdef USE_64
++	DEFINES += -D_AMD64_
++else
++	DEFINES += -D_X86_
++endif
++endif
++ifeq ($(CPU_ARCH), ALPHA)
++	DEFINES += -D_ALPHA_=1
++endif
++
++ifdef MAPFILE
++ifndef NS_USE_GCC
++DLLFLAGS += -DEF:$(MAPFILE)
++endif
++endif
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++
++#
++#  The following is NOT needed for the NSPR 2.0 library.
++#
++
++DEFINES += -D_WINDOWS
++
++# override default, which is ASFLAGS = CFLAGS
++ifdef NS_USE_GCC
++	AS	= $(CC)
++	ASFLAGS = $(INCLUDES)
++else
++ifdef USE_64
++	AS	= ml64.exe
++	ASFLAGS = -Cp -Sn -Zi $(INCLUDES)
++else
++	AS	= ml.exe
++	ASFLAGS = -Cp -Sn -Zi -coff $(INCLUDES)
++endif
++endif
++
++#
++# override the definitions of RELEASE_TREE found in tree.mk
++#
++ifndef RELEASE_TREE
++    ifdef BUILD_SHIP
++	ifdef USE_SHIPS
++	    RELEASE_TREE = $(NTBUILD_SHIP)
++	else
++	    RELEASE_TREE = //redbuild/components
++	endif
++    else
++	RELEASE_TREE = //redbuild/components
++    endif
++endif
++
++#
++# override the definitions of IMPORT_LIB_PREFIX, LIB_PREFIX, and
++# DLL_PREFIX in prefix.mk
++#
++
++ifndef IMPORT_LIB_PREFIX
++    ifdef NS_USE_GCC
++	IMPORT_LIB_PREFIX = lib
++    else
++	IMPORT_LIB_PREFIX = $(NULL)
++    endif
++endif
++
++ifndef LIB_PREFIX
++    ifdef NS_USE_GCC
++	LIB_PREFIX = lib
++    else
++	LIB_PREFIX = $(NULL)
++    endif
++endif
++
++ifndef DLL_PREFIX
++    DLL_PREFIX =  $(NULL)
++endif
++
++#
++# override the definitions of various _SUFFIX symbols in suffix.mk
++#
++
++#
++# Object suffixes
++#
++ifndef OBJ_SUFFIX
++    ifdef NS_USE_GCC
++	OBJ_SUFFIX = .o
++    else
++	OBJ_SUFFIX = .obj
++    endif
++endif
++
++#
++# Assembler source suffixes
++#
++ifndef ASM_SUFFIX
++    ifdef NS_USE_GCC
++	ASM_SUFFIX = .s
++    else
++	ASM_SUFFIX = .asm
++    endif
++endif
++
++#
++# Library suffixes
++#
++
++ifndef IMPORT_LIB_SUFFIX
++    IMPORT_LIB_SUFFIX = .$(LIB_SUFFIX)
++endif
++
++ifndef DYNAMIC_LIB_SUFFIX_FOR_LINKING
++    DYNAMIC_LIB_SUFFIX_FOR_LINKING = $(IMPORT_LIB_SUFFIX)
++endif
++
++#
++# Program suffixes
++#
++ifndef PROG_SUFFIX
++    PROG_SUFFIX = .exe
++endif
++
++#
++# When the processor is NOT 386-based on Windows NT, override the
++# value of $(CPU_TAG).  For WinNT, 95, 16, not CE.
++#
++ifneq ($(CPU_ARCH),x386)
++    CPU_TAG = _$(CPU_ARCH)
++endif
++
++#
++# override ruleset.mk, removing the "lib" prefix for library names, and
++# adding the "32" after the LIBRARY_VERSION.
++#
++ifdef LIBRARY_NAME
++    SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)32$(JDK_DEBUG_SUFFIX).dll
++    IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)32$(JDK_DEBUG_SUFFIX).lib
++endif
++
++#
++# override the TARGETS defined in ruleset.mk, adding IMPORT_LIBRARY
++#
++ifndef TARGETS
++    TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) $(PROGRAM)
++endif
++
++# list of MSVC warnings converted to errors above:
++# 4002: too many actual parameters for macro 'identifier'
++# 4003: not enough actual parameters for macro 'identifier'
++# 4004: incorrect construction after 'defined'
++# 4006: #undef expected an identifier
++# 4009: string too big; trailing characters truncated
++# 4015: 'identifier' : type of bit field must be integral
++# 4028: formal parameter different from declaration
++# 4033: 'function' must return a value
++# 4035: 'function' : no return value
++# 4045: 'identifier' : array bounds overflow
++# 4047: 'function' : 'type 1' differs in levels of indirection from 'type 2'
++# 4053: one void operand for '?:'
++# 4054: 'conversion' : from function pointer 'type1' to data pointer 'type2'
++# 4059: pascal string too big, length byte is length % 256
++# 4063: case 'identifier' is not a valid value for switch of enum 'identifier'
++# 4064: switch of incomplete enum 'identifier'
++# 4078: case constant 'value' too big for the type of the switch expression
++# 4087: 'function' : declared with 'void' parameter list
++# 4098: 'function' : void function returning a value
++# 4390: ';' : empty controlled statement found; is this the intent?
++# 4541: RTTI train wreck
++# 4715: not all control paths return a value
++# 4013: function undefined; assuming extern returning int
++# 4553: '==' : operator has no effect; did you intend '='?
++# 4551: function call missing argument list
++
+diff -ruN mozilla.orig/security/coreconf/WIN95.mk mozilla/security/coreconf/WIN95.mk
+--- mozilla.orig/security/coreconf/WIN95.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/WIN95.mk	2009-02-14 05:51:10.000000000 +0000
+@@ -0,0 +1,47 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# Config stuff for OS_TARGET=WIN95
++#
++
++include $(CORE_DEPTH)/coreconf/WIN32.mk
++
++DEFINES += -DWIN95
++
++# WINNT uses the lib prefix, Win95 and WinCE don't
++NSPR31_LIB_PREFIX = $(NULL)
+diff -ruN mozilla.orig/security/coreconf/WINCE.mk mozilla/security/coreconf/WINCE.mk
+--- mozilla.orig/security/coreconf/WINCE.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/WINCE.mk	2009-06-18 00:01:50.000000000 +0100
+@@ -0,0 +1,214 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# Configuration common to all versions of Windows CE and Pocket PC x.
++#
++
++ifeq ($(CPU_ARCH),x86)
++    DEFAULT_COMPILER = cl
++    CC           = cl
++    CCC          = cl
++else
++ifeq ($(CPU_ARCH),ARM)
++    DEFAULT_COMPILER = clarm
++    CC           = clarm
++    CCC          = clarm
++else
++include CPU_ARCH_is_not_recognized
++include _$(CPU_ARCH)
++endif
++endif
++
++LINK         = link
++AR           = lib
++AR          += -NOLOGO -OUT:"$@"
++RANLIB       = echo
++BSDECHO      = echo
++
++ifdef BUILD_TREE
++NSINSTALL_DIR  = $(BUILD_TREE)/nss
++else
++NSINSTALL_DIR  = $(CORE_DEPTH)/coreconf/nsinstall
++endif
++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
++OS_DLLFLAGS  += -DLL
++
++EXTRA_EXE_LD_FLAGS += -ENTRY:mainWCRTStartup
++
++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
++
++ifdef MAPFILE
++    DLLFLAGS += -DEF:$(MAPFILE)
++endif
++
++# Change PROCESS to put the mapfile in the correct format for this platform
++PROCESS_MAP_FILE = cp $< $@
++
++#
++#  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)
++
++#
++# override the definitions of RELEASE_TREE found in tree.mk
++#
++ifndef RELEASE_TREE
++    ifdef BUILD_SHIP
++	ifdef USE_SHIPS
++	    RELEASE_TREE = $(NTBUILD_SHIP)
++	else
++	    RELEASE_TREE = //redbuild/components
++	endif
++    else
++	RELEASE_TREE = //redbuild/components
++    endif
++endif
++
++#
++# override the definitions of LIB_PREFIX and DLL_PREFIX in prefix.mk
++#
++
++ifndef LIB_PREFIX
++    LIB_PREFIX =  $(NULL)
++endif
++
++ifndef DLL_PREFIX
++    DLL_PREFIX =  $(NULL)
++endif
++
++#
++# override the definitions of various _SUFFIX symbols in suffix.mk
++#
++
++#
++# Object suffixes
++#
++ifndef OBJ_SUFFIX
++    OBJ_SUFFIX = .obj
++endif
++
++#
++# Assembler source suffixes
++#
++ifndef ASM_SUFFIX
++    ASM_SUFFIX = .asm
++endif
++
++#
++# Library suffixes
++#
++
++ifndef IMPORT_LIB_SUFFIX
++    IMPORT_LIB_SUFFIX = .$(LIB_SUFFIX)
++endif
++
++ifndef DYNAMIC_LIB_SUFFIX_FOR_LINKING
++    DYNAMIC_LIB_SUFFIX_FOR_LINKING = $(IMPORT_LIB_SUFFIX)
++endif
++
++#
++# Program suffixes
++#
++ifndef PROG_SUFFIX
++    PROG_SUFFIX = .exe
++endif
++
++#
++# override ruleset.mk, removing the "lib" prefix for library names, and
++# adding the "32" after the LIBRARY_VERSION.
++#
++ifdef LIBRARY_NAME
++    SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)32$(JDK_DEBUG_SUFFIX).dll
++    IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)32$(JDK_DEBUG_SUFFIX).lib
++endif
++
++#
++# override the TARGETS defined in ruleset.mk, adding IMPORT_LIBRARY
++#
++ifndef TARGETS
++    TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) $(PROGRAM)
++endif
++
++
++#
++# Always set CPU_TAG on Linux, WINCE.
++#
++CPU_TAG = _$(CPU_ARCH)
++
+diff -ruN mozilla.orig/security/coreconf/WINNT.mk mozilla/security/coreconf/WINNT.mk
+--- mozilla.orig/security/coreconf/WINNT.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/WINNT.mk	2009-02-14 05:51:10.000000000 +0000
+@@ -0,0 +1,52 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#
++# Config stuff for OS_TARGET=WINNT
++#
++
++include $(CORE_DEPTH)/coreconf/WIN32.mk
++
++DEFINES += -DWINNT
++
++#
++# Win NT needs -GT so that fibers can work
++#
++OS_CFLAGS += -GT
++
++# WINNT uses the lib prefix, Win95 and WinCE don't
++NSPR31_LIB_PREFIX = lib
+diff -ruN mozilla.orig/security/coreconf/arch.mk mozilla/security/coreconf/arch.mk
+--- mozilla.orig/security/coreconf/arch.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/arch.mk	2009-06-05 03:14:49.000000000 +0100
+@@ -0,0 +1,341 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++# 		Howard Chu <[email protected]>
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Master "Core Components" macros for getting the OS architecture     #
++# defines these symbols:
++# 64BIT_TAG
++# OS_ARCH	(from uname -r)
++# OS_TEST	(from uname -m)
++# OS_RELEASE	(from uname -v and/or -r)
++# OS_TARGET	User defined, or set to OS_ARCH
++# CPU_ARCH  	(from unmame -m or -p, ONLY on WINNT)
++# OS_CONFIG	OS_TARGET + OS_RELEASE
++# OBJDIR_TAG
++# OBJDIR_NAME
++#######################################################################
++
++#
++# 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 older BSD/OS versions to use the new arch name.
++#
++
++ifeq ($(OS_ARCH),BSD_386)
++    OS_ARCH = BSD_OS
++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, Linux 2.0.30-osfmach3, and
++# IRIX 6.5-ALPHA-1289139620.
++#
++
++ifeq (,$(filter-out Linux FreeBSD IRIX,$(OS_ARCH)))
++    OS_RELEASE := $(shell echo $(OS_RELEASE) | sed 's/-.*//')
++endif
++
++ifeq ($(OS_ARCH),Linux)
++    OS_RELEASE := $(subst ., ,$(OS_RELEASE))
++    ifneq ($(words $(OS_RELEASE)),1)
++	OS_RELEASE := $(word 1,$(OS_RELEASE)).$(word 2,$(OS_RELEASE))
++    endif
++endif
++
++#
++# For OS/2
++#
++ifeq ($(OS_ARCH),OS_2)
++    OS_ARCH = OS2
++    OS_RELEASE := $(shell uname -v)
++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).
++#
++# 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 and Cygwin's uname.exe.
++#
++ifeq ($(OS_ARCH),WIN95)
++    OS_ARCH   = WINNT
++    OS_TARGET = WIN95
++endif
++ifeq ($(OS_ARCH),Windows_95)
++    OS_ARCH   = Windows_NT
++    OS_TARGET = WIN95
++endif
++ifeq ($(OS_ARCH),CYGWIN_95-4.0)
++	OS_ARCH   = CYGWIN_NT-4.0
++	OS_TARGET = WIN95
++endif
++ifeq ($(OS_ARCH),CYGWIN_98-4.10)
++	OS_ARCH   = CYGWIN_NT-4.0
++	OS_TARGET = WIN95
++endif
++ifeq ($(OS_ARCH),CYGWIN_ME-4.90)
++	OS_ARCH   = CYGWIN_NT-4.0
++	OS_TARGET = WIN95
++endif
++
++#
++# On WIN32, we also define the variable CPU_ARCH, if it isn't already.
++#
++ifndef CPU_ARCH
++    ifeq ($(OS_ARCH), WINNT)
++	CPU_ARCH := $(shell uname -p)
++	ifeq ($(CPU_ARCH),I386)
++	    CPU_ARCH = x386
++	endif
++    endif
++endif
++
++# 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)
++    # strip leading 0
++    OS_MINOR_RELEASE := $(patsubst 0%,%,$(OS_MINOR_RELEASE))
++    OS_RELEASE := $(OS_RELEASE).$(OS_MINOR_RELEASE)
++    ifndef CPU_ARCH
++	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
++#
++# If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
++# the uname.exe in the Cygwin tools.
++#
++ifeq (CYGWIN_NT,$(findstring CYGWIN_NT,$(OS_ARCH)))
++    OS_RELEASE := $(patsubst CYGWIN_NT-%,%,$(OS_ARCH))
++    OS_ARCH = WINNT
++    ifndef CPU_ARCH
++    ifeq (WOW64,$(findstring WOW64,$(OS_RELEASE)))
++        OS_RELEASE := $(patsubst %-WOW64,%,$(OS_RELEASE))
++    endif    
++	CPU_ARCH := $(shell uname -m)
++	#
++	# Cygwin's uname -m returns "i686" on a Pentium Pro machine.
++	#
++	ifneq (,$(findstring 86,$(CPU_ARCH)))
++	    CPU_ARCH = x386
++	endif
++    endif
++endif
++#
++# If uname -s returns "MINGW32_NT-5.1", we assume that we are using
++# the uname.exe in the MSYS toolkit.
++#
++ifeq (MINGW32_NT,$(findstring MINGW32_NT,$(OS_ARCH)))
++    OS_RELEASE := $(patsubst MINGW32_NT-%,%,$(OS_ARCH))
++    OS_ARCH = WINNT
++    USE_MSYS = 1
++    ifndef CPU_ARCH
++	CPU_ARCH := $(shell uname -m)
++	#
++	# MSYS's uname -m returns "i686" on a Pentium Pro 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
++
++ifdef OS_TARGET_RELEASE
++    OS_RELEASE = $(OS_TARGET_RELEASE)
++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
++    OBJDIR_TAG = $(64BIT_TAG)_OPT
++else
++    ifdef BUILD_IDG
++	OBJDIR_TAG = $(64BIT_TAG)_IDG
++    else
++	OBJDIR_TAG = $(64BIT_TAG)_DBG
++    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 default compiler.
++# IMPL_STRATEGY may be defined too.
++#
++
++OBJDIR_NAME = $(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(COMPILER_TAG)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJ
++
++ifeq (,$(filter-out WIN%,$(OS_TARGET)))
++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_TARGET)$(OS_RELEASE)$(CPU_TAG)$(COMPILER_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG).OBJD
++endif
++endif
++endif
++
++MK_ARCH = included
+diff -ruN mozilla.orig/security/coreconf/command.mk mozilla/security/coreconf/command.mk
+--- mozilla.orig/security/coreconf/command.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/command.mk	2007-10-23 22:55:00.000000000 +0100
+@@ -0,0 +1,72 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Master "Core Components" default command macros;                    #
++# can be overridden in <arch>.mk                                      #
++#######################################################################
++
++AS            = $(CC)
++ASFLAGS      += $(CFLAGS)
++CCF           = $(CC) $(CFLAGS)
++LINK_DLL      = $(LINK) $(OS_DLLFLAGS) $(DLLFLAGS)
++LINK_EXE      = $(LINK) $(OS_LFLAGS) $(LFLAGS)
++CFLAGS        = $(OPTIMIZER) $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \
++		$(XCFLAGS)
++PERL          = perl
++RANLIB        = echo
++TAR           = /bin/tar
++#
++# For purify
++#
++NOMD_CFLAGS  += $(OPTIMIZER) $(NOMD_OS_CFLAGS) $(XP_DEFINE) $(DEFINES) \
++		$(INCLUDES) $(XCFLAGS)
++
++# Optimization of code for size
++# OPT_CODE_SIZE
++# =1: The code can be optimized for size.
++#     The code is actually optimized for size only if ALLOW_OPT_CODE_SIZE=1
++#     in a given source code directory (in manifest.mn)
++# =0: Never optimize the code for size.
++#
++# Default value = 0 
++# Can be overridden from the make command line.
++ifndef OPT_CODE_SIZE
++OPT_CODE_SIZE = 0
++endif
++
++MK_COMMAND = included
+diff -ruN mozilla.orig/security/coreconf/config.mk mozilla/security/coreconf/config.mk
+--- mozilla.orig/security/coreconf/config.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/config.mk	2009-08-25 23:35:11.000000000 +0100
+@@ -0,0 +1,209 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# Configuration information for building in the "Core Components" source module
++
++#######################################################################
++# [1.0] Master "Core Components" source and release <architecture>    #
++#       tags                                                          #
++#######################################################################
++ifndef MK_ARCH
++include $(CORE_DEPTH)/coreconf/arch.mk
++endif
++
++#######################################################################
++# [2.0] Master "Core Components" default command macros               #
++#       (NOTE: may be overridden in $(OS_TARGET)$(OS_RELEASE).mk)     #
++#######################################################################
++ifndef MK_COMMAND
++include $(CORE_DEPTH)/coreconf/command.mk
++endif
++
++#######################################################################
++# [3.0] Master "Core Components" <architecture>-specific macros       #
++#       (dependent upon <architecture> tags)                          #
++#                                                                     #
++#       We are moving towards just having a $(OS_TARGET).mk file      #
++#       as opposed to multiple $(OS_TARGET)$(OS_RELEASE).mk files,    #
++#       one for each OS release.                                      #
++#######################################################################
++
++TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \
++              AIX RISCOS WINNT WIN95 WINCE
++
++ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET)))
++include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk
++else
++include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk
++endif
++
++#######################################################################
++# [4.0] Master "Core Components" source and release <platform> tags   #
++#       (dependent upon <architecture> tags)                          #
++#######################################################################
++PLATFORM = $(OBJDIR_NAME)
++
++#######################################################################
++# [5.0] Master "Core Components" release <tree> tags                  #
++#       (dependent upon <architecture> tags)                          #
++#######################################################################
++ifndef MK_TREE
++include $(CORE_DEPTH)/coreconf/tree.mk
++endif
++
++#######################################################################
++# [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)               #
++#######################################################################
++ifndef MK_MODULE
++include $(CORE_DEPTH)/coreconf/module.mk
++endif
++
++#######################################################################
++# [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)               #
++#######################################################################
++ifndef MK_VERSION
++include $(CORE_DEPTH)/coreconf/version.mk
++endif
++
++#######################################################################
++# [8.0] Master "Core Components" macros to figure out                 #
++#       binary code location                                          #
++#       (dependent upon <platform> tags)                              #
++#######################################################################
++ifndef MK_LOCATION
++include $(CORE_DEPTH)/coreconf/location.mk
++endif
++
++#######################################################################
++# [9.0] Master "Core Components" <component>-specific source path     #
++#       (dependent upon <user_source_tree>, <source_component>,       #
++#        <version>, and <platform> tags)                              #
++#######################################################################
++ifndef MK_SOURCE
++include $(CORE_DEPTH)/coreconf/source.mk
++endif
++
++#######################################################################
++# [10.0] Master "Core Components" include switch for support header   #
++#        files                                                        #
++#        (dependent upon <tree>, <component>, <version>,              #
++#         and <platform> tags)                                        #
++#######################################################################
++ifndef MK_HEADERS
++include $(CORE_DEPTH)/coreconf/headers.mk
++endif
++
++#######################################################################
++# [11.0] Master "Core Components" for computing program prefixes      #
++#######################################################################
++ifndef MK_PREFIX
++include $(CORE_DEPTH)/coreconf/prefix.mk
++endif
++
++#######################################################################
++# [12.0] Master "Core Components" for computing program suffixes      #
++#        (dependent upon <architecture> tags)                         #
++#######################################################################
++ifndef MK_SUFFIX
++include $(CORE_DEPTH)/coreconf/suffix.mk
++endif
++
++#######################################################################
++# [13.0] Master "Core Components" for defining JDK                    #
++#        (dependent upon <architecture>, <source>, and <suffix>  tags)#
++#######################################################################
++ifdef NS_USE_JDK
++include $(CORE_DEPTH)/coreconf/jdk.mk
++endif
++
++#######################################################################
++# [14.0] Master "Core Components" rule set                            #
++#######################################################################
++ifndef MK_RULESET
++include $(CORE_DEPTH)/coreconf/ruleset.mk
++endif
++
++#######################################################################
++# [15.0] Dependencies.
++#######################################################################
++
++-include $(MKDEPENDENCIES)
++
++#######################################################################
++# [16.0] Global environ ment defines
++#######################################################################
++
++ifdef NSS_ENABLE_ECC
++DEFINES += -DNSS_ENABLE_ECC
++endif
++
++ifdef NSS_ECC_MORE_THAN_SUITE_B
++DEFINES += -DNSS_ECC_MORE_THAN_SUITE_B
++endif
++
++ifdef NSS_ALLOW_UNSUPPORTED_CRITICAL
++DEFINES += -DNSS_ALLOW_UNSUPPORTED_CRITICAL
++endif
++
++ifdef BUILD_LIBPKIX_TESTS
++DEFINES += -DBUILD_LIBPKIX_TESTS
++endif
++
++ifdef NSS_DISABLE_DBM
++DEFINES += -DNSS_DISABLE_DBM
++endif
++
++# Avoid building object leak test code for optimized library
++ifndef BUILD_OPT
++ifdef PKIX_OBJECT_LEAK_TEST
++DEFINES += -DPKIX_OBJECT_LEAK_TEST
++endif
++endif
++
++# This allows all library and tools code to use the util function
++# implementations directly from libnssutil3, rather than the wrappers
++# in libnss3 which are present for binary compatibility only
++DEFINES += -DUSE_UTIL_DIRECTLY
++USE_UTIL_DIRECTLY = 1
++
+diff -ruN mozilla.orig/security/coreconf/coreconf.dep mozilla/security/coreconf/coreconf.dep
+--- mozilla.orig/security/coreconf/coreconf.dep	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/coreconf.dep	2009-07-29 22:50:47.000000000 +0100
+@@ -0,0 +1,45 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * 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 the Initial Developer are Copyright (C) 2009
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++/*
++ * A dummy header file that is a dependency for all the object files.
++ * Used to force a full recompilation of NSS in Mozilla's Tinderbox
++ * depend builds.  See comments in rules.mk.
++ */
++
++#error "Do not include this header file."
++
+diff -ruN mozilla.orig/security/coreconf/coreconf.pl mozilla/security/coreconf/coreconf.pl
+--- mozilla.orig/security/coreconf/coreconf.pl	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/coreconf.pl	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,160 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++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;
+diff -ruN mozilla.orig/security/coreconf/cpdist.pl mozilla/security/coreconf/cpdist.pl
+--- mozilla.orig/security/coreconf/cpdist.pl	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/cpdist.pl	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,199 @@
++#! /usr/local/bin/perl
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++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");
++      
++    }
++    
++  }
++
+diff -ruN mozilla.orig/security/coreconf/headers.mk mozilla/security/coreconf/headers.mk
+--- mozilla.orig/security/coreconf/headers.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/headers.mk	2010-07-30 03:25:55.000000000 +0100
+@@ -0,0 +1,56 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# 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) -I$(SOURCE_XPHEADERS_DIR)
++
++#
++#  Only append source-side private cross-platform include paths for
++#  sectools
++#
++
++INCLUDES += -I$(SOURCE_XPPRIVATE_DIR)
++
++MK_HEADERS = included
+diff -ruN mozilla.orig/security/coreconf/import.pl mozilla/security/coreconf/import.pl
+--- mozilla.orig/security/coreconf/import.pl	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/import.pl	2005-09-16 01:33:23.000000000 +0100
+@@ -0,0 +1,221 @@
++#! /usr/local/bin/perl
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++print STDERR "import.pl\n";
++
++require('coreconf.pl');
++
++
++$returncode =0;
++
++
++#######-- read in variables on command line into %var
++
++$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);
++
++
++
++
++
+diff -ruN mozilla.orig/security/coreconf/jdk.mk mozilla/security/coreconf/jdk.mk
+--- mozilla.orig/security/coreconf/jdk.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/jdk.mk	2006-08-05 02:27:37.000000000 +0100
+@@ -0,0 +1,536 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++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)
++	JAVA_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar
++
++	ifeq ($(JRE_HOME),)
++		JRE_HOME = $(JAVA_HOME)
++		JRE_CLASSES = $(JAVA_CLASSES)
++	else
++		ifeq ($(JRE_CLASSES),)
++			JRE_CLASSES = $(JRE_HOME)/lib/rt.jar
++		endif
++	endif
++
++	PATH_SEPARATOR = ;
++
++	# (2) specify "header" information
++	JAVA_ARCH = win32
++
++	INCLUDES += -I$(JAVA_HOME)/include
++	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
++
++	#     currently, disable JIT option on this platform
++	JDK_JIT_OPT = -nojit
++endif
++
++# set [Sun Solaris] platforms
++ifeq ($(OS_ARCH), SunOS)
++	JAVA_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar
++
++	ifeq ($(JRE_HOME),)
++		JRE_HOME = $(JAVA_HOME)
++		JRE_CLASSES = $(JAVA_CLASSES)
++	else
++		ifeq ($(JRE_CLASSES),)
++			JRE_CLASSES = $(JRE_HOME)/lib/rt.jar
++		endif
++	endif
++
++	PATH_SEPARATOR = :
++
++	# (2) specify "header" information
++	JAVA_ARCH = solaris
++
++	INCLUDES += -I$(JAVA_HOME)/include
++	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
++
++	#     currently, disable JIT option on this platform
++	JDK_JIT_OPT =
++endif
++
++# set [Hewlett Packard HP-UX] platforms
++ifeq ($(OS_ARCH), HP-UX)
++	JAVA_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar
++
++	ifeq ($(JRE_HOME),)
++		JRE_HOME = $(JAVA_HOME)
++		JRE_CLASSES = $(JAVA_CLASSES)
++	else
++		ifeq ($(JRE_CLASSES),)
++			JRE_CLASSES = $(JRE_HOME)/lib/rt.jar
++		endif
++	endif
++
++	PATH_SEPARATOR = :
++
++	# (2) specify "header" information
++	JAVA_ARCH = hp-ux
++
++	INCLUDES += -I$(JAVA_HOME)/include
++	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
++
++	# no JIT option available on this platform
++	JDK_JIT_OPT =
++endif
++
++# set [Redhat Linux] platforms
++ifeq ($(OS_ARCH), Linux)
++	JAVA_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar
++
++	ifeq ($(JRE_HOME),)
++		JRE_HOME = $(JAVA_HOME)
++		JRE_CLASSES = $(JAVA_CLASSES)
++	else
++		ifeq ($(JRE_CLASSES),)
++			JRE_CLASSES = $(JRE_HOME)/lib/rt.jar
++		endif
++	endif
++
++	PATH_SEPARATOR = :
++
++	# (2) specify "header" information
++	JAVA_ARCH = linux
++
++	INCLUDES += -I$(JAVA_HOME)/include
++	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
++
++	# no JIT option available on this platform
++	JDK_JIT_OPT =
++endif
++
++# set [Mac OS X] platforms
++ifeq ($(OS_ARCH), Darwin)
++	JAVA_CLASSES = $(JAVA_HOME)/../Classes/classes.jar
++
++	ifeq ($(JRE_HOME),)
++		JRE_HOME = $(JAVA_HOME)
++		JRE_CLASSES = $(JAVA_CLASSES)
++	else
++		ifeq ($(JRE_CLASSES),)
++			JRE_CLASSES = $(JRE_HOME)/../Classes/classes.jar
++		endif
++	endif
++
++	PATH_SEPARATOR = :
++
++	# (2) specify "header" information
++	JAVA_ARCH = darwin
++
++	INCLUDES += -I$(JAVA_HOME)/include
++	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
++
++	# no JIT option available on this platform
++	JDK_JIT_OPT =
++endif
++
++# set [IBM AIX] platforms
++ifeq ($(OS_ARCH), AIX)
++	JAVA_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar
++
++	ifeq ($(JRE_HOME),)
++		JRE_HOME = $(JAVA_HOME)
++		JRE_CLASSES = $(JAVA_CLASSES)
++	else
++		ifeq ($(JRE_CLASSES),)
++			JRE_CLASSES = $(JRE_HOME)/lib/rt.jar
++		endif
++	endif
++
++	PATH_SEPARATOR = :
++
++	# (2) specify "header" information
++	JAVA_ARCH = aix
++
++	INCLUDES += -I$(JAVA_HOME)/include
++	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
++
++	# no JIT option available on this platform
++	JDK_JIT_OPT =
++endif
++
++# set [Digital UNIX] platforms
++ifeq ($(OS_ARCH), OSF1)
++	JAVA_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar
++
++	ifeq ($(JRE_HOME),)
++		JRE_HOME = $(JAVA_HOME)
++		JRE_CLASSES = $(JAVA_CLASSES)
++	else
++		ifeq ($(JRE_CLASSES),)
++			JRE_CLASSES = $(JRE_HOME)/lib/rt.jar
++		endif
++	endif
++
++	PATH_SEPARATOR = :
++
++	# (2) specify "header" information
++	JAVA_ARCH = alpha
++
++	INCLUDES += -I$(JAVA_HOME)/include
++	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)
++
++	# no JIT option available on this platform
++	JDK_JIT_OPT =
++endif
++
++# set [Silicon Graphics IRIX] platforms
++ifeq ($(OS_ARCH), IRIX)
++	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)
++
++	# 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
++
++# 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
++
++ifeq ($(USE_64), 1)
++	JDK_USE_64 = -d64
++endif
++
++endif
++
++
++#######################################################################
++# [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_JIT_OPT)
++	JAVA_FLAGS += $(JDK_USE_64)
++	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 += $(JDK_CLASS_REPOSITORY_OPT)
++	JAVAC_FLAGS += $(JDK_USE_64)
++	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        = $(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        = $(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_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_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_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_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
+diff -ruN mozilla.orig/security/coreconf/jniregen.pl mozilla/security/coreconf/jniregen.pl
+--- mozilla.orig/security/coreconf/jniregen.pl	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/jniregen.pl	2010-04-26 00:37:40.000000000 +0100
+@@ -0,0 +1,111 @@
++#!/usr/local/bin/perl
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# Input: -d dir -j javahcmd 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)
++#        Runs the javahcmd on all files that are different.
++#
++# Returns: list of headers which are OLDER than corresponding class
++#          files (non-existent class files are considered to be real old :-)
++
++my $javah = "";
++my $classdir = "";
++
++while(1) {
++    if ($ARGV[0] eq '-d') {
++        $classdir = $ARGV[1];
++        $classdir .= "/";
++        shift;
++        shift;
++    } elsif($ARGV[0] eq '-j') {
++        $javah = $ARGV[1];
++        shift;
++        shift;
++    } else {
++        last;
++    }
++}
++
++if( $javah  eq "") {
++    die "Must specify -j <javah command>";
++}
++if( $classdir eq "") {
++    die "Must specify -d <classdir>";
++}
++
++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;
++        push @filelist, $filename;
++    }
++}
++
++if( @filelist ) {
++    $cmd = "$javah " . join(" ",@filelist);
++    $cmd =~ s/\'/\"/g;  # because windows doesn't understand single quote
++    print "$cmd\n";
++    exit (system($cmd) >> 8);
++} else {
++    print "All JNI header files up to date.\n"
++}
+diff -ruN mozilla.orig/security/coreconf/location.mk mozilla/security/coreconf/location.mk
+--- mozilla.orig/security/coreconf/location.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/location.mk	2010-06-12 01:58:32.000000000 +0100
+@@ -0,0 +1,106 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Master "Core Components" macros to figure out binary code location  #
++#######################################################################
++
++#
++# Figure out where the binary code lives.
++#
++
++ifdef BUILD_TREE
++ifdef LIBRARY_NAME
++BUILD         = $(BUILD_TREE)/nss/$(LIBRARY_NAME)
++OBJDIR        = $(BUILD_TREE)/nss/$(LIBRARY_NAME)
++DEPENDENCIES  = $(BUILD_TREE)/nss/$(LIBRARY_NAME)/.md
++else
++BUILD         = $(BUILD_TREE)/nss
++OBJDIR        = $(BUILD_TREE)/nss
++DEPENDENCIES  = $(BUILD_TREE)/nss/.md
++endif
++else
++BUILD         = $(PLATFORM)
++OBJDIR        = $(PLATFORM)
++DEPENDENCIES  = $(PLATFORM)/.md
++endif
++
++DIST          = $(SOURCE_PREFIX)/$(PLATFORM)
++
++ifdef BUILD_DEBUG_GC
++    DEFINES += -DDEBUG_GC
++endif
++
++GARBAGE += $(DEPENDENCIES) core $(wildcard core.[0-9]*)
++
++ifdef NSPR_INCLUDE_DIR
++    INCLUDES += -I$(NSPR_INCLUDE_DIR)
++endif
++
++ifndef NSPR_LIB_DIR
++    NSPR_LIB_DIR = $(DIST)/lib
++endif
++
++ifdef NSS_INCLUDE_DIR
++    INCLUDES += -I$(NSS_INCLUDE_DIR)
++endif
++
++ifndef NSS_LIB_DIR
++    NSS_LIB_DIR = $(DIST)/lib
++endif
++
++ifdef NSSUTIL_INCLUDE_DIR
++    INCLUDES += -I$(NSSUTIL_INCLUDE_DIR)
++endif
++
++ifndef NSSUTIL_LIB_DIR
++    NSSUTIL_LIB_DIR = $(DIST)/lib
++endif
++
++ifdef SOFTOKEN_INCLUDE_DIR
++    INCLUDES += -I$(SOFTOKEN_INCLUDE_DIR)
++endif
++
++ifndef SOFTOKEN_LIB_DIR
++    SOFTOKEN_LIB_DIR = $(DIST)/lib
++endif
++
++ifndef SQLITE_LIB_NAME
++    SQLITE_LIB_NAME = sqlite3
++endif
++
++MK_LOCATION = included
+diff -ruN mozilla.orig/security/coreconf/mkdepend/CVS/Entries mozilla/security/coreconf/mkdepend/CVS/Entries
+--- mozilla.orig/security/coreconf/mkdepend/CVS/Entries	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/CVS/Entries	2011-04-20 22:18:12.000000000 +0100
+@@ -0,0 +1,12 @@
++/Makefile/1.1/Sat Feb 14 01:06:13 2009//
++/cppsetup.c/1.2/Sat Feb 14 00:37:00 2009//
++/def.h/1.2/Sat Feb 14 00:37:00 2009//
++/ifparser.c/1.3/Sat Feb 14 19:40:54 2009//
++/ifparser.h/1.2/Sat Feb 14 00:37:01 2009//
++/imakemdep.h/1.3/Sat Feb 14 01:06:13 2009//
++/include.c/1.2/Sat Feb 14 00:37:01 2009//
++/main.c/1.4/Sat Feb 14 19:40:55 2009//
++/mkdepend.man/1.2/Sat Feb 14 00:37:01 2009//
++/parse.c/1.2/Sat Feb 14 00:37:01 2009//
++/pr.c/1.2/Sat Feb 14 00:37:01 2009//
++D
+diff -ruN mozilla.orig/security/coreconf/mkdepend/CVS/Repository mozilla/security/coreconf/mkdepend/CVS/Repository
+--- mozilla.orig/security/coreconf/mkdepend/CVS/Repository	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/CVS/Repository	2011-04-20 22:18:12.000000000 +0100
+@@ -0,0 +1 @@
++mozilla/security/coreconf/mkdepend
+diff -ruN mozilla.orig/security/coreconf/mkdepend/CVS/Root mozilla/security/coreconf/mkdepend/CVS/Root
+--- mozilla.orig/security/coreconf/mkdepend/CVS/Root	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/CVS/Root	2011-04-20 22:18:12.000000000 +0100
+@@ -0,0 +1 @@
++:pserver:[email protected]:/cvsroot
+diff -ruN mozilla.orig/security/coreconf/mkdepend/Makefile mozilla/security/coreconf/mkdepend/Makefile
+--- mozilla.orig/security/coreconf/mkdepend/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/Makefile	2009-02-14 01:06:13.000000000 +0000
+@@ -0,0 +1,93 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++DEPTH		= ../..
++CORE_DEPTH	= ../..
++
++MODULE		= coreconf
++
++CSRCS		= \
++                cppsetup.c \
++                ifparser.c \
++                include.c \
++                main.c \
++                parse.c \
++                pr.c
++
++PROGRAM		= mkdepend
++
++# Indicate that this directory builds build tools.
++INTERNAL_TOOLS  = 1
++
++
++include $(DEPTH)/coreconf/config.mk
++
++TARGETS		= $(PROGRAM)
++ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
++DEFINES		+= -DNO_X11
++else
++INSTALL		= true
++endif
++
++ifdef NATIVE_CC
++CC=$(NATIVE_CC)
++endif
++
++ifdef NATIVE_FLAGS
++OS_CFLAGS=$(NATIVE_FLAGS)
++endif
++
++include $(DEPTH)/coreconf/rules.mk
++
++ifdef GNU_CC
++OPTIMIZER = -O3
++else
++ifeq ($(OS_ARCH),SunOS)
++OPTIMIZER = -fast
++endif
++ifeq ($(OS_ARCH),WINNT)
++OPTIMIZER = -Ox
++endif
++endif
++
++DEFINES += -DINCLUDEDIR=\"/usr/include\" -DOBJSUFFIX=\".$(OBJ_SUFFIX)\"
++
++# Redefine MAKE_OBJDIR for just this directory
++define MAKE_OBJDIR
++if test ! -d $(@D); then rm -rf $(@D); mkdir $(@D); fi
++endef
++
+diff -ruN mozilla.orig/security/coreconf/mkdepend/cppsetup.c mozilla/security/coreconf/mkdepend/cppsetup.c
+--- mozilla.orig/security/coreconf/mkdepend/cppsetup.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/cppsetup.c	2009-02-14 00:37:00.000000000 +0000
+@@ -0,0 +1,233 @@
++/* $Xorg: cppsetup.c,v 1.5 2001/02/09 02:03:16 xorgcvs Exp $ */
++/*
++
++Copyright (c) 1993, 1994, 1998  The Open Group
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that
++the above copyright notice appear in all copies and that both that
++copyright notice and this permission notice appear in supporting
++documentation.
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of The Open Group shall not be
++used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from The Open Group.
++
++*/
++/* $XFree86: xc/config/makedepend/cppsetup.c,v 3.11 2001/12/17 20:52:22 dawes Exp $ */
++
++#include "def.h"
++
++#ifdef	CPP
++/*
++ * This file is strictly for the sake of cpy.y and yylex.c (if
++ * you indeed have the source for cpp).
++ */
++#define IB 1
++#define SB 2
++#define NB 4
++#define CB 8
++#define QB 16
++#define WB 32
++#define SALT '#'
++#if defined(pdp11) || defined(vax) || defined(ns16000) || defined(mc68000) || defined(ibm032)
++#define COFF 128
++#else
++#define COFF 0
++#endif
++/*
++ * These variables used by cpy.y and yylex.c
++ */
++extern char	*outp, *inp, *newp, *pend;
++extern char	*ptrtab;
++extern char	fastab[];
++extern char	slotab[];
++
++/*
++ * cppsetup
++ */
++struct filepointer	*currentfile;
++struct inclist		*currentinc;
++
++int
++cppsetup(char *line, struct filepointer *filep, struct inclist *inc)
++{
++	char *p, savec;
++	static boolean setupdone = FALSE;
++	boolean	value;
++
++	if (!setupdone) {
++		cpp_varsetup();
++		setupdone = TRUE;
++	}
++
++	currentfile = filep;
++	currentinc = inc;
++	inp = newp = line;
++	for (p=newp; *p; p++)
++		;
++
++	/*
++	 * put a newline back on the end, and set up pend, etc.
++	 */
++	*p++ = '\n';
++	savec = *p;
++	*p = '\0';
++	pend = p;
++
++	ptrtab = slotab+COFF;
++	*--inp = SALT; 
++	outp=inp; 
++	value = yyparse();
++	*p = savec;
++	return(value);
++}
++
++struct symtab **lookup(symbol)
++	char	*symbol;
++{
++	static struct symtab    *undefined;
++	struct symtab   **sp;
++
++	sp = isdefined(symbol, currentinc, NULL);
++	if (sp == NULL) {
++		sp = &undefined;
++		(*sp)->s_value = NULL;
++	}
++	return (sp);
++}
++
++pperror(tag, x0,x1,x2,x3,x4)
++	int	tag,x0,x1,x2,x3,x4;
++{
++	warning("\"%s\", line %d: ", currentinc->i_file, currentfile->f_line);
++	warning(x0,x1,x2,x3,x4);
++}
++
++
++yyerror(s)
++	register char	*s;
++{
++	fatalerr("Fatal error: %s\n", s);
++}
++#else /* not CPP */
++
++#include "ifparser.h"
++struct _parse_data {
++    struct filepointer *filep;
++    struct inclist *inc;
++    char *filename;
++    const char *line;
++};
++
++static const char *
++my_if_errors (IfParser *ip, const char *cp, const char *expecting)
++{
++    struct _parse_data *pd = (struct _parse_data *) ip->data;
++    int lineno = pd->filep->f_line;
++    char *filename = pd->filename;
++    char prefix[300];
++    int prefixlen;
++    int i;
++
++    sprintf (prefix, "\"%s\":%d", filename, lineno);
++    prefixlen = strlen(prefix);
++    fprintf (stderr, "%s:  %s", prefix, pd->line);
++    i = cp - pd->line;
++    if (i > 0 && pd->line[i-1] != '\n') {
++	putc ('\n', stderr);
++    }
++    for (i += prefixlen + 3; i > 0; i--) {
++	putc (' ', stderr);
++    }
++    fprintf (stderr, "^--- expecting %s\n", expecting);
++    return NULL;
++}
++
++
++#define MAXNAMELEN 256
++
++static struct symtab **
++lookup_variable (IfParser *ip, const char *var, int len)
++{
++    char tmpbuf[MAXNAMELEN + 1];
++    struct _parse_data *pd = (struct _parse_data *) ip->data;
++
++    if (len > MAXNAMELEN)
++	return 0;
++
++    strncpy (tmpbuf, var, len);
++    tmpbuf[len] = '\0';
++    return isdefined (tmpbuf, pd->inc, NULL);
++}
++
++
++static int
++my_eval_defined (IfParser *ip, const char *var, int len)
++{
++    if (lookup_variable (ip, var, len))
++	return 1;
++    else
++	return 0;
++}
++
++#define isvarfirstletter(ccc) (isalpha(ccc) || (ccc) == '_')
++
++static long
++my_eval_variable (IfParser *ip, const char *var, int len)
++{
++    long val;
++    struct symtab **s;
++
++    s = lookup_variable (ip, var, len);
++    if (!s)
++	return 0;
++    do {
++	var = (*s)->s_value;
++	if (!isvarfirstletter(*var) || !strcmp((*s)->s_name, var))
++	    break;
++	s = lookup_variable (ip, var, strlen(var));
++    } while (s);
++
++    var = ParseIfExpression(ip, var, &val);
++    if (var && *var) debug(4, ("extraneous: '%s'\n", var));
++    return val;
++}
++
++int
++cppsetup(char *filename,
++	 char *line,
++	 struct filepointer *filep,
++	 struct inclist *inc)
++{
++    IfParser ip;
++    struct _parse_data pd;
++    long val = 0;
++
++    pd.filep = filep;
++    pd.inc = inc;
++    pd.line = line;
++    pd.filename = filename;
++    ip.funcs.handle_error = my_if_errors;
++    ip.funcs.eval_defined = my_eval_defined;
++    ip.funcs.eval_variable = my_eval_variable;
++    ip.data = (char *) &pd;
++
++    (void) ParseIfExpression (&ip, line, &val);
++    if (val)
++	return IF;
++    else
++	return IFFALSE;
++}
++#endif /* CPP */
++
+diff -ruN mozilla.orig/security/coreconf/mkdepend/def.h mozilla/security/coreconf/mkdepend/def.h
+--- mozilla.orig/security/coreconf/mkdepend/def.h	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/def.h	2009-02-14 00:37:00.000000000 +0000
+@@ -0,0 +1,184 @@
++/* $Xorg: def.h,v 1.4 2001/02/09 02:03:16 xorgcvs Exp $ */
++/*
++
++Copyright (c) 1993, 1994, 1998 The Open Group.
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that
++the above copyright notice appear in all copies and that both that
++copyright notice and this permission notice appear in supporting
++documentation.
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of The Open Group shall not be
++used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from The Open Group.
++
++*/
++/* $XFree86: xc/config/makedepend/def.h,v 3.14 2003/01/17 17:09:49 tsi Exp $ */
++
++#ifndef NO_X11
++#include <X11/Xos.h>
++#include <X11/Xfuncproto.h>
++#endif
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include <ctype.h>
++#if 0
++#ifndef X_NOT_POSIX
++#ifndef _POSIX_SOURCE
++#define _POSIX_SOURCE
++#endif
++#endif
++#endif
++#include <sys/types.h>
++#include <fcntl.h>
++#include <sys/stat.h>
++
++#define MAXDEFINES	512
++#define MAXFILES	1024
++#define MAXINCFILES	256	/* "-include" files */
++#define MAXDIRS		1024
++#define SYMTABINC	10	/* must be > 1 for define() to work right */
++#define	TRUE		1
++#define	FALSE		0
++
++/* the following must match the directives table in main.c */
++#define	IF		0
++#define	IFDEF		1
++#define	IFNDEF		2
++#define	ELSE		3
++#define	ENDIF		4
++#define	DEFINE		5
++#define	UNDEF		6
++#define	INCLUDE		7
++#define	LINE		8
++#define	PRAGMA		9
++#define ERROR           10
++#define IDENT           11
++#define SCCS            12
++#define ELIF            13
++#define EJECT           14
++#define WARNING         15
++#define INCLUDENEXT     16
++#define IFFALSE         17     /* pseudo value --- never matched */
++#define ELIFFALSE       18     /* pseudo value --- never matched */
++#define INCLUDEDOT      19     /* pseudo value --- never matched */
++#define IFGUESSFALSE    20     /* pseudo value --- never matched */
++#define ELIFGUESSFALSE  21     /* pseudo value --- never matched */
++#define INCLUDENEXTDOT  22     /* pseudo value --- never matched */
++
++#ifdef DEBUG
++extern int	_debugmask;
++/*
++ * debug levels are:
++ * 
++ *     0	show ifn*(def)*,endif
++ *     1	trace defined/!defined
++ *     2	show #include
++ *     3	show #include SYMBOL
++ *     4-6	unused
++ */
++#define debug(level,arg) { if (_debugmask & (1 << level)) warning arg; }
++#else
++#define	debug(level,arg) /**/
++#endif /* DEBUG */
++
++typedef	unsigned char boolean;
++
++struct symtab {
++	char	*s_name;
++	char	*s_value;
++};
++
++/* possible i_flag */
++#define DEFCHECKED	(1<<0)	/* whether defines have been checked */
++#define NOTIFIED	(1<<1)	/* whether we have revealed includes */
++#define MARKED		(1<<2)	/* whether it's in the makefile */
++#define SEARCHED	(1<<3)	/* whether we have read this */
++#define FINISHED	(1<<4)	/* whether we are done reading this */
++#define INCLUDED_SYM	(1<<5)	/* whether #include SYMBOL was found
++				   Can't use i_list if TRUE */
++struct	inclist {
++	char		*i_incstring;	/* string from #include line */
++	char		*i_file;	/* path name of the include file */
++	struct inclist	**i_list;	/* list of files it itself includes */
++	int		i_listlen;	/* length of i_list */
++	struct symtab	**i_defs;	/* symbol table for this file and its
++					   children when merged */
++	int		i_ndefs;	/* current # defines */
++	boolean		*i_merged;      /* whether we have merged child
++					   defines */
++	unsigned char   i_flags;
++};
++
++struct filepointer {
++	char	*f_name;
++	char	*f_p;
++	char	*f_base;
++	char	*f_end;
++	long	f_len;
++	long	f_line;
++	long	cmdinc_count;
++	char	**cmdinc_list;
++	long	cmdinc_line;
++};
++
++#include <stdlib.h>
++#if defined(macII) && !defined(__STDC__)  /* stdlib.h fails to define these */
++char *malloc(), *realloc();
++#endif /* macII */
++
++char			*copy(char *str);
++int                     match(char *str, char **list);
++char			*base_name(char *file);
++char			*getnextline(struct filepointer *fp);
++struct symtab		**slookup(char *symbol, struct inclist *file);
++struct symtab		**isdefined(char *symbol, struct inclist *file,
++				    struct inclist **srcfile);
++struct symtab		**fdefined(char *symbol, struct inclist *file,
++				   struct inclist **srcfile);
++struct filepointer	*getfile(char *file);
++void                    included_by(struct inclist *ip, 
++				    struct inclist *newfile);
++struct inclist		*newinclude(char *newfile, char *incstring);
++void                    inc_clean (void);
++struct inclist		*inc_path(char *file, char *include, int type);
++
++void                    freefile(struct filepointer *fp);
++
++void                    define2(char *name, char *val, struct inclist *file);
++void                    define(char *def, struct inclist *file);
++void                    undefine(char *symbol, struct inclist *file);
++int                     find_includes(struct filepointer *filep, 
++				      struct inclist *file, 
++				      struct inclist *file_red, 
++				      int recursion, boolean failOK);
++
++void                    recursive_pr_include(struct inclist *head, 
++					     char *file, char *base);
++void                    add_include(struct filepointer *filep, 
++				    struct inclist *file, 
++				    struct inclist *file_red, 
++				    char *include, int type,
++				    boolean failOK);
++
++int                     cppsetup(char *filename,
++				 char *line,
++				 struct filepointer *filep,
++				 struct inclist *inc);
++
++
++extern void fatalerr(char *, ...);
++extern void warning(char *, ...);
++extern void warning1(char *, ...);
+diff -ruN mozilla.orig/security/coreconf/mkdepend/ifparser.c mozilla/security/coreconf/mkdepend/ifparser.c
+--- mozilla.orig/security/coreconf/mkdepend/ifparser.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/ifparser.c	2009-02-14 19:40:54.000000000 +0000
+@@ -0,0 +1,551 @@
++/*
++ * $Xorg: ifparser.c,v 1.3 2000/08/17 19:41:50 cpqbld Exp $
++ *
++ * Copyright 1992 Network Computing Devices, Inc.
++ * 
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation for any purpose and without fee is hereby granted, provided
++ * that the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of Network Computing Devices may not be
++ * used in advertising or publicity pertaining to distribution of the software
++ * without specific, written prior permission.  Network Computing Devices makes
++ * no representations about the suitability of this software for any purpose.
++ * It is provided ``as is'' without express or implied warranty.
++ * 
++ * NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
++ * IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
++ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ * 
++ * Author:  Jim Fulton
++ *          Network Computing Devices, Inc.
++ * 
++ * Simple if statement processor
++ *
++ * This module can be used to evaluate string representations of C language
++ * if constructs.  It accepts the following grammar:
++ * 
++ *     EXPRESSION	:=	VALUE
++ * 			 |	VALUE  BINOP	EXPRESSION
++ *			 |	VALUE	'?'	EXPRESSION ':'	EXPRESSION
++ * 
++ *     VALUE		:=	'('  EXPRESSION  ')'
++ * 			 |	'!'  VALUE
++ * 			 |	'-'  VALUE
++ * 			 |	'+'  VALUE
++ *			 |	'~'  VALUE
++ * 			 |	'defined'  '('  variable  ')'
++ * 			 |	'defined'  variable
++ *			 |	# variable '(' variable-list ')'
++ * 			 |	variable
++ * 			 |	number
++ * 
++ *     BINOP		:=	'*'	|  '/'	|  '%'
++ * 			 |	'+'	|  '-'
++ * 			 |	'<<'	|  '>>'
++ * 			 |	'<'	|  '>'	|  '<='  |  '>='
++ * 			 |	'=='	|  '!='
++ * 			 |	'&'	|  '^'  |  '|'
++ * 			 |	'&&'	|  '||'
++ * 
++ * The normal C order of precedence is supported.
++ * 
++ * 
++ * External Entry Points:
++ * 
++ *     ParseIfExpression		parse a string for #if
++ */
++/* $XFree86: xc/config/makedepend/ifparser.c,v 3.11 2002/09/23 01:48:08 tsi Exp $ */
++
++#include "ifparser.h"
++#include <ctype.h>
++#include <stdlib.h>
++#include <string.h>
++
++/****************************************************************************
++		   Internal Macros and Utilities for Parser
++ ****************************************************************************/
++
++#define DO(val) if (!(val)) return NULL
++#define CALLFUNC(ggg,fff) (*((ggg)->funcs.fff))
++#define SKIPSPACE(ccc) while (isspace(*ccc)) ccc++
++#define isvarfirstletter(ccc) (isalpha(ccc) || (ccc) == '_')
++
++
++static const char *
++parse_variable (IfParser *g, const char *cp, const char **varp)
++{
++    SKIPSPACE (cp);
++
++    if (!isvarfirstletter (*cp))
++	return CALLFUNC(g, handle_error) (g, cp, "variable name");
++
++    *varp = cp;
++    /* EMPTY */
++    for (cp++; isalnum(*cp) || *cp == '_'; cp++) ;
++    return cp;
++}
++
++
++static const char *
++parse_number (IfParser *g, const char *cp, long *valp)
++{
++    long base = 10;
++    SKIPSPACE (cp);
++
++    if (!isdigit(*cp))
++	return CALLFUNC(g, handle_error) (g, cp, "number");
++
++    *valp = 0;
++
++    if (*cp == '0') {
++	cp++;
++	if ((*cp == 'x') || (*cp == 'X')) {
++	    base = 16;
++	    cp++;
++	} else {
++	    base = 8;
++	}
++    }
++
++    /* Ignore overflows and assume ASCII, what source is usually written in */
++    while (1) {
++	int increment = -1;
++	if (base == 8) {
++	    if ((*cp >= '0') && (*cp <= '7'))
++		increment = *cp++ - '0';
++	} else if (base == 16) {
++	    if ((*cp >= '0') && (*cp <= '9'))
++		increment = *cp++ - '0';
++	    else if ((*cp >= 'A') &&  (*cp <= 'F'))
++		increment = *cp++ - ('A' - 10);
++	    else if ((*cp >= 'a') && (*cp <= 'f'))
++		increment = *cp++ - ('a' - 10);
++	} else {	/* Decimal */
++	    if ((*cp >= '0') && (*cp <= '9'))
++		increment = *cp++ - '0';
++	}
++	if (increment < 0)
++	    break;
++	*valp = (*valp * base) + increment;
++    }
++
++    /* Skip trailing qualifiers */
++    while (*cp == 'U' || *cp == 'u' || *cp == 'L' || *cp == 'l') cp++;
++    return cp;
++}
++
++static const char *
++parse_character (IfParser *g, const char *cp, long *valp)
++{
++    char val;
++
++    SKIPSPACE (cp);
++    if (*cp == '\\')
++	switch (cp[1]) {
++	case 'n': val = '\n'; break;
++	case 't': val = '\t'; break;
++	case 'v': val = '\v'; break;
++	case 'b': val = '\b'; break;
++	case 'r': val = '\r'; break;
++	case 'f': val = '\f'; break;
++	case 'a': val = '\a'; break;
++	case '\\': val = '\\'; break;
++	case '?': val = '\?'; break;
++	case '\'': val = '\''; break;
++	case '\"': val = '\"'; break;
++	case 'x': val = (char) strtol (cp + 2, NULL, 16); break;
++	default: val = (char) strtol (cp + 1, NULL, 8); break;
++	}
++    else
++	val = *cp;
++    while (*cp != '\'') cp++;
++    *valp = (long) val;
++    return cp;
++}
++
++static const char *
++parse_value (IfParser *g, const char *cp, long *valp)
++{
++    const char *var, *varend;
++
++    *valp = 0;
++
++    SKIPSPACE (cp);
++    if (!*cp)
++	return cp;
++
++    switch (*cp) {
++      case '(':
++	DO (cp = ParseIfExpression (g, cp + 1, valp));
++	SKIPSPACE (cp);
++	if (*cp != ')') 
++	    return CALLFUNC(g, handle_error) (g, cp, ")");
++
++	return cp + 1;			/* skip the right paren */
++
++      case '!':
++	DO (cp = parse_value (g, cp + 1, valp));
++	*valp = !(*valp);
++	return cp;
++
++      case '-':
++	DO (cp = parse_value (g, cp + 1, valp));
++	*valp = -(*valp);
++	return cp;
++
++      case '+':
++	DO (cp = parse_value (g, cp + 1, valp));
++	return cp;
++
++      case '~':
++	DO (cp = parse_value (g, cp + 1, valp));
++	*valp = ~(*valp);
++	return cp;
++
++      case '#':
++	DO (cp = parse_variable (g, cp + 1, &var));
++	SKIPSPACE (cp);
++	if (*cp != '(')
++	    return CALLFUNC(g, handle_error) (g, cp, "(");
++	do {
++	    DO (cp = parse_variable (g, cp + 1, &var));
++	    SKIPSPACE (cp);
++	} while (*cp && *cp != ')');
++	if (*cp != ')')
++	    return CALLFUNC(g, handle_error) (g, cp, ")");
++	*valp = 1; /* XXX */
++	return cp + 1;
++
++      case '\'':
++	DO (cp = parse_character (g, cp + 1, valp));
++	if (*cp != '\'')
++	    return CALLFUNC(g, handle_error) (g, cp, "'");
++	return cp + 1;
++
++      case 'd':
++	if (strncmp (cp, "defined", 7) == 0 && !isalnum(cp[7])) {
++	    int paren = 0;
++	    int len;
++
++	    cp += 7;
++	    SKIPSPACE (cp);
++	    if (*cp == '(') {
++		paren = 1;
++		cp++;
++	    }
++	    DO (cp = parse_variable (g, cp, &var));
++	    len = cp - var;
++	    SKIPSPACE (cp);
++	    if (paren && *cp != ')')
++		return CALLFUNC(g, handle_error) (g, cp, ")");
++	    *valp = (*(g->funcs.eval_defined)) (g, var, len);
++	    return cp + paren;		/* skip the right paren */
++	}
++	/* fall out */
++    }
++
++    if (isdigit(*cp)) {
++	DO (cp = parse_number (g, cp, valp));
++    } else if (!isvarfirstletter(*cp))
++	return CALLFUNC(g, handle_error) (g, cp, "variable or number");
++    else {
++	DO (cp = parse_variable (g, cp, &var));
++	varend = cp;
++	SKIPSPACE(cp);
++	if (*cp != '(') {
++	    *valp = (*(g->funcs.eval_variable)) (g, var, varend - var);
++	} else {
++	    do {
++		long dummy;
++		DO (cp = ParseIfExpression (g, cp + 1, &dummy));
++		SKIPSPACE(cp);
++		if (*cp == ')')
++		    break;
++		if (*cp != ',')
++		    return CALLFUNC(g, handle_error) (g, cp, ",");
++	    } while (1);
++
++	    *valp = 1;	/* XXX */
++	    cp++;
++	}
++    }
++    
++    return cp;
++}
++
++
++
++static const char *
++parse_product (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_value (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '*':
++	DO (cp = parse_product (g, cp + 1, &rightval));
++	*valp = (*valp * rightval);
++	break;
++
++      case '/':
++	DO (cp = parse_product (g, cp + 1, &rightval));
++	if (rightval == 0)
++	  return CALLFUNC(g, handle_error) (g, cp, "0");
++	*valp = (*valp / rightval);
++	break;
++
++      case '%':
++	DO (cp = parse_product (g, cp + 1, &rightval));
++	*valp = (*valp % rightval);
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_sum (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_product (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '+':
++	DO (cp = parse_sum (g, cp + 1, &rightval));
++	*valp = (*valp + rightval);
++	break;
++
++      case '-':
++	DO (cp = parse_sum (g, cp + 1, &rightval));
++	*valp = (*valp - rightval);
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_shift (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_sum (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '<':
++	if (cp[1] == '<') {
++	    DO (cp = parse_shift (g, cp + 2, &rightval));
++	    *valp = (*valp << rightval);
++	}
++	break;
++
++      case '>':
++	if (cp[1] == '>') {
++	    DO (cp = parse_shift (g, cp + 2, &rightval));
++	    *valp = (*valp >> rightval);
++	}
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_inequality (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_shift (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '<':
++	if (cp[1] == '=') {
++	    DO (cp = parse_inequality (g, cp + 2, &rightval));
++	    *valp = (*valp <= rightval);
++	} else {
++	    DO (cp = parse_inequality (g, cp + 1, &rightval));
++	    *valp = (*valp < rightval);
++	}
++	break;
++
++      case '>':
++	if (cp[1] == '=') {
++	    DO (cp = parse_inequality (g, cp + 2, &rightval));
++	    *valp = (*valp >= rightval);
++	} else {
++	    DO (cp = parse_inequality (g, cp + 1, &rightval));
++	    *valp = (*valp > rightval);
++	}
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_equality (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_inequality (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '=':
++	if (cp[1] == '=')
++	    cp++;
++	DO (cp = parse_equality (g, cp + 1, &rightval));
++	*valp = (*valp == rightval);
++	break;
++
++      case '!':
++	if (cp[1] != '=')
++	    break;
++	DO (cp = parse_equality (g, cp + 2, &rightval));
++	*valp = (*valp != rightval);
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_band (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_equality (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '&':
++	if (cp[1] != '&') {
++	    DO (cp = parse_band (g, cp + 1, &rightval));
++	    *valp = (*valp & rightval);
++	}
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_bxor (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_band (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '^':
++	DO (cp = parse_bxor (g, cp + 1, &rightval));
++	*valp = (*valp ^ rightval);
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_bor (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_bxor (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '|':
++	if (cp[1] != '|') {
++	    DO (cp = parse_bor (g, cp + 1, &rightval));
++	    *valp = (*valp | rightval);
++	}
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_land (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_bor (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '&':
++	if (cp[1] != '&')
++	    return CALLFUNC(g, handle_error) (g, cp, "&&");
++	DO (cp = parse_land (g, cp + 2, &rightval));
++	*valp = (*valp && rightval);
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_lor (IfParser *g, const char *cp, long *valp)
++{
++    long rightval;
++
++    DO (cp = parse_land (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '|':
++	if (cp[1] != '|')
++	    return CALLFUNC(g, handle_error) (g, cp, "||");
++	DO (cp = parse_lor (g, cp + 2, &rightval));
++	*valp = (*valp || rightval);
++	break;
++    }
++    return cp;
++}
++
++
++static const char *
++parse_cond(IfParser *g, const char *cp, long *valp)
++{
++    long trueval, falseval;
++
++    DO (cp = parse_lor (g, cp, valp));
++    SKIPSPACE (cp);
++
++    switch (*cp) {
++      case '?':
++	DO (cp = parse_cond (g, cp + 1, &trueval));
++	SKIPSPACE (cp);
++	if (*cp != ':')
++	    return CALLFUNC(g, handle_error) (g, cp, ":");
++	DO (cp = parse_cond (g, cp + 1, &falseval));
++	*valp = (*valp ? trueval : falseval);
++	break;
++    }
++    return cp;
++}
++
++
++/****************************************************************************
++			     External Entry Points
++ ****************************************************************************/
++
++const char *
++ParseIfExpression (IfParser *g, const char *cp, long *valp)
++{
++    return parse_cond (g, cp, valp);
++}
+diff -ruN mozilla.orig/security/coreconf/mkdepend/ifparser.h mozilla/security/coreconf/mkdepend/ifparser.h
+--- mozilla.orig/security/coreconf/mkdepend/ifparser.h	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/ifparser.h	2009-02-14 00:37:01.000000000 +0000
+@@ -0,0 +1,83 @@
++/*
++ * $Xorg: ifparser.h,v 1.3 2000/08/17 19:41:51 cpqbld Exp $
++ *
++ * Copyright 1992 Network Computing Devices, Inc.
++ * 
++ * Permission to use, copy, modify, and distribute this software and its
++ * documentation for any purpose and without fee is hereby granted, provided
++ * that the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of Network Computing Devices may not be
++ * used in advertising or publicity pertaining to distribution of the software
++ * without specific, written prior permission.  Network Computing Devices makes
++ * no representations about the suitability of this software for any purpose.
++ * It is provided ``as is'' without express or implied warranty.
++ * 
++ * NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
++ * IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
++ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ * 
++ * Author:  Jim Fulton
++ *          Network Computing Devices, Inc.
++ * 
++ * Simple if statement processor
++ *
++ * This module can be used to evaluate string representations of C language
++ * if constructs.  It accepts the following grammar:
++ * 
++ *     EXPRESSION	:=	VALUE
++ * 			 |	VALUE  BINOP	EXPRESSION
++ *			 |	VALUE	'?'	EXPRESSION ':'	EXPRESSION
++ * 
++ *     VALUE		:=	'('  EXPRESSION  ')'
++ * 			 |	'!'  VALUE
++ * 			 |	'-'  VALUE
++ *			 |	'~'  VALUE
++ * 			 |	'defined'  '('  variable  ')'
++ * 			 |	variable
++ * 			 |	number
++ * 
++ *     BINOP		:=	'*'	|  '/'	|  '%'
++ * 			 |	'+'	|  '-'
++ * 			 |	'<<'	|  '>>'
++ * 			 |	'<'	|  '>'	|  '<='  |  '>='
++ * 			 |	'=='	|  '!='
++ * 			 |	'&'	|  '^'  |  '|'
++ * 			 |	'&&'	|  '||'
++ * 
++ * The normal C order of precedence is supported.
++ * 
++ * 
++ * External Entry Points:
++ * 
++ *     ParseIfExpression		parse a string for #if
++ */
++
++/* $XFree86: xc/config/makedepend/ifparser.h,v 3.5 2001/07/25 15:04:40 dawes Exp $ */
++
++#include <stdio.h>
++
++typedef int Bool;
++#define False 0
++#define True 1
++
++typedef struct _if_parser {
++    struct {				/* functions */
++	const char *(*handle_error) (struct _if_parser *, const char *,
++				     const char *);
++	long (*eval_variable) (struct _if_parser *, const char *, int);
++	int (*eval_defined) (struct _if_parser *, const char *, int);
++    } funcs;
++    char *data;
++} IfParser;
++
++const char *ParseIfExpression (
++    IfParser *, 
++    const char *, 
++    long *
++);
++
+diff -ruN mozilla.orig/security/coreconf/mkdepend/imakemdep.h mozilla/security/coreconf/mkdepend/imakemdep.h
+--- mozilla.orig/security/coreconf/mkdepend/imakemdep.h	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/imakemdep.h	2009-02-14 01:06:13.000000000 +0000
+@@ -0,0 +1,782 @@
++
++/* $XConsortium: imakemdep.h,v 1.83 95/04/07 19:47:46 kaleb Exp $ */
++/* $XFree86: xc/config/imake/imakemdep.h,v 3.12 1995/07/08 10:22:17 dawes Exp $ */
++/*
++
++Copyright (c) 1993, 1994  X Consortium
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of the X Consortium shall not be
++used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from the X Consortium.
++
++*/
++
++
++/* 
++ * This file contains machine-dependent constants for the imake utility.
++ * When porting imake, read each of the steps below and add in any necessary
++ * definitions.  In general you should *not* edit ccimake.c or imake.c!
++ */
++
++#ifdef CCIMAKE
++/*
++ * Step 1:  imake_ccflags
++ *     Define any special flags that will be needed to get imake.c to compile.
++ *     These will be passed to the compile along with the contents of the
++ *     make variable BOOTSTRAPCFLAGS.
++ */
++#ifdef hpux
++#ifdef hp9000s800
++#define imake_ccflags "-DSYSV"
++#else
++#define imake_ccflags "-Wc,-Nd4000,-Ns3000 -DSYSV"
++#endif
++#endif
++
++#if defined(macII) || defined(_AUX_SOURCE)
++#define imake_ccflags "-DmacII -DSYSV"
++#endif
++
++#ifdef stellar
++#define imake_ccflags "-DSYSV"
++#endif
++
++#if defined(USL) || defined(Oki) || defined(NCR)
++#define imake_ccflags "-Xc -DSVR4"
++#endif
++
++#ifdef sony
++#if defined(SYSTYPE_SYSV) || defined(_SYSTYPE_SYSV)
++#define imake_ccflags "-DSVR4"
++#else
++#include <sys/param.h>
++#if NEWSOS < 41
++#define imake_ccflags "-Dbsd43 -DNOSTDHDRS"
++#else
++#if NEWSOS < 42
++#define imake_ccflags "-Dbsd43"
++#endif
++#endif
++#endif
++#endif
++
++#ifdef _CRAY
++#define imake_ccflags "-DSYSV -DUSG"
++#endif
++
++#if defined(_IBMR2) || defined(aix)
++#define imake_ccflags "-Daix -DSYSV"
++#endif
++
++#ifdef Mips
++#  if defined(SYSTYPE_BSD) || defined(BSD) || defined(BSD43)
++#    define imake_ccflags "-DBSD43"
++#  else 
++#    define imake_ccflags "-DSYSV"
++#  endif
++#endif 
++
++#ifdef is68k
++#define imake_ccflags "-Dluna -Duniosb"
++#endif
++
++#ifdef SYSV386
++# ifdef SVR4
++#  define imake_ccflags "-Xc -DSVR4"
++# else
++#  define imake_ccflags "-DSYSV"
++# endif
++#endif
++
++#ifdef SVR4
++# ifdef i386
++#  define imake_ccflags "-Xc -DSVR4"
++# endif
++#endif
++
++#ifdef SYSV
++# ifdef i386
++#  define imake_ccflags "-DSYSV"
++# endif
++#endif
++
++#ifdef __convex__
++#define imake_ccflags "-fn -tm c1"
++#endif
++
++#ifdef apollo
++#define imake_ccflags "-DX_NOT_POSIX"
++#endif
++
++#ifdef WIN32
++#define imake_ccflags "-nologo -batch -D__STDC__"
++#endif
++
++#ifdef __uxp__
++#define imake_ccflags "-DSVR4 -DANSICPP"
++#endif
++
++#ifdef __sxg__
++#define imake_ccflags "-DSYSV -DUSG -DNOSTDHDRS"
++#endif
++
++#ifdef sequent
++#define imake_ccflags "-DX_NOT_STDC_ENV -DX_NOT_POSIX"
++#endif
++
++#ifdef _SEQUENT_
++#define imake_ccflags "-DSYSV -DUSG"
++#endif
++
++#if defined(SX) || defined(PC_UX)
++#define imake_ccflags "-DSYSV"
++#endif
++
++#ifdef nec_ews_svr2
++#define imake_ccflags "-DUSG"
++#endif
++
++#if defined(nec_ews_svr4) || defined(_nec_ews_svr4) || defined(_nec_up) || defined(_nec_ft)
++#define imake_ccflags "-DSVR4"
++#endif
++
++#ifdef	MACH
++#define imake_ccflags "-DNOSTDHDRS"
++#endif
++
++/* this is for OS/2 under EMX. This won't work with DOS */
++#if defined(__EMX__) 
++#define imake_ccflags "-DBSD43"
++#endif
++
++#else /* not CCIMAKE */
++#ifndef MAKEDEPEND
++/*
++ * Step 2:  dup2
++ *     If your OS doesn't have a dup2() system call to duplicate one file
++ *     descriptor onto another, define such a mechanism here (if you don't
++ *     already fall under the existing category(ies).
++ */
++#if defined(SYSV) && !defined(_CRAY) && !defined(Mips) && !defined(_SEQUENT_)
++#define	dup2(fd1,fd2)	((fd1 == fd2) ? fd1 : (close(fd2), \
++					       fcntl(fd1, F_DUPFD, fd2)))
++#endif
++
++
++/*
++ * Step 3:  FIXUP_CPP_WHITESPACE
++ *     If your cpp collapses tabs macro expansions into a single space and
++ *     replaces escaped newlines with a space, define this symbol.  This will
++ *     cause imake to attempt to patch up the generated Makefile by looking
++ *     for lines that have colons in them (this is why the rules file escapes
++ *     all colons).  One way to tell if you need this is to see whether or not
++ *     your Makefiles have no tabs in them and lots of @@ strings.
++ */
++#if defined(sun) || defined(SYSV) || defined(SVR4) || defined(hcx) || defined(WIN32) || (defined(AMOEBA) && defined(CROSS_COMPILE))
++#define FIXUP_CPP_WHITESPACE
++#endif
++#ifdef WIN32
++#define REMOVE_CPP_LEADSPACE
++#define INLINE_SYNTAX
++#define MAGIC_MAKE_VARS
++#endif
++#ifdef __minix_vmd
++#define FIXUP_CPP_WHITESPACE
++#endif
++
++/*
++ * Step 4:  USE_CC_E, DEFAULT_CC, DEFAULT_CPP
++ *     If you want to use cc -E instead of cpp, define USE_CC_E.
++ *     If use cc -E but want a different compiler, define DEFAULT_CC.
++ *     If the cpp you need is not in /lib/cpp, define DEFAULT_CPP.
++ */
++#ifdef hpux
++#define USE_CC_E
++#endif
++#ifdef WIN32
++#define USE_CC_E
++#define DEFAULT_CC "cl"
++#endif
++#ifdef apollo
++#define DEFAULT_CPP "/usr/lib/cpp"
++#endif
++#if defined(_IBMR2) && !defined(DEFAULT_CPP)
++#define DEFAULT_CPP "/usr/lpp/X11/Xamples/util/cpp/cpp"
++#endif
++#if defined(sun) && defined(SVR4)
++#define DEFAULT_CPP "/usr/ccs/lib/cpp"
++#endif
++#ifdef __bsdi__
++#define DEFAULT_CPP "/usr/bin/cpp"
++#endif
++#ifdef __uxp__
++#define DEFAULT_CPP "/usr/ccs/lib/cpp"
++#endif
++#ifdef __sxg__
++#define DEFAULT_CPP "/usr/lib/cpp"
++#endif
++#ifdef _CRAY
++#define DEFAULT_CPP "/lib/pcpp"
++#endif
++#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
++#define DEFAULT_CPP "/usr/libexec/cpp"
++#endif
++#ifdef	MACH
++#define USE_CC_E
++#endif
++#ifdef __minix_vmd
++#define DEFAULT_CPP "/usr/lib/cpp"
++#endif
++#if defined(__EMX__)
++/* expects cpp in PATH */
++#define DEFAULT_CPP "cpp"
++#endif
++
++/*
++ * Step 5:  cpp_argv
++ *     The following table contains the flags that should be passed
++ *     whenever a Makefile is being generated.  If your preprocessor 
++ *     doesn't predefine any unique symbols, choose one and add it to the
++ *     end of this table.  Then, do the following:
++ * 
++ *         a.  Use this symbol in Imake.tmpl when setting MacroFile.
++ *         b.  Put this symbol in the definition of BootstrapCFlags in your
++ *             <platform>.cf file.
++ *         c.  When doing a make World, always add "BOOTSTRAPCFLAGS=-Dsymbol" 
++ *             to the end of the command line.
++ * 
++ *     Note that you may define more than one symbol (useful for platforms 
++ *     that support multiple operating systems).
++ */
++
++#define	ARGUMENTS 50	/* number of arguments in various arrays */
++char *cpp_argv[ARGUMENTS] = {
++	"cc",		/* replaced by the actual program to exec */
++	"-I.",		/* add current directory to include path */
++#ifdef unix
++	"-Uunix",	/* remove unix symbol so that filename unix.c okay */
++#endif
++#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(MACH)
++# ifdef __i386__
++	"-D__i386__",
++# endif
++# ifdef __x86_64__
++	"-D__x86_64__",
++# endif
++# ifdef __GNUC__
++	"-traditional",
++# endif
++#endif
++#ifdef M4330
++	"-DM4330",	/* Tektronix */
++#endif
++#ifdef M4310
++	"-DM4310",	/* Tektronix */
++#endif
++#if defined(macII) || defined(_AUX_SOURCE)
++	"-DmacII",	/* Apple A/UX */
++#endif
++#ifdef USL
++	"-DUSL",	/* USL */
++#endif
++#ifdef sony
++	"-Dsony",	/* Sony */
++#if !defined(SYSTYPE_SYSV) && !defined(_SYSTYPE_SYSV) && NEWSOS < 42
++	"-Dbsd43",
++#endif
++#endif
++#ifdef _IBMR2
++	"-D_IBMR2",	/* IBM RS-6000 (we ensured that aix is defined above */
++#ifndef aix
++#define aix		/* allow BOOTSTRAPCFLAGS="-D_IBMR2" */
++#endif
++#endif /* _IBMR2 */
++#ifdef aix
++	"-Daix",	/* AIX instead of AOS */
++#ifndef ibm
++#define ibm		/* allow BOOTSTRAPCFLAGS="-Daix" */
++#endif
++#endif /* aix */
++#ifdef ibm
++	"-Dibm",	/* IBM PS/2 and RT under both AOS and AIX */
++#endif
++#ifdef luna
++	"-Dluna",	/* OMRON luna 68K and 88K */
++#ifdef luna1
++	"-Dluna1",
++#endif
++#ifdef luna88k		/* need not on UniOS-Mach Vers. 1.13 */
++	"-traditional", /* for some older version            */
++#endif			/* instead of "-DXCOMM=\\#"          */
++#ifdef uniosb
++	"-Duniosb",
++#endif
++#ifdef uniosu
++	"-Duniosu",
++#endif
++#endif /* luna */
++#ifdef _CRAY		/* Cray */
++	"-Ucray",
++#endif
++#ifdef Mips
++	"-DMips",	/* Define and use Mips for Mips Co. OS/mach. */
++# if defined(SYSTYPE_BSD) || defined(BSD) || defined(BSD43)
++	"-DBSD43",	/* Mips RISCOS supports two environments */
++# else
++	"-DSYSV",	/* System V environment is the default */
++# endif
++#endif /* Mips */
++#ifdef MOTOROLA
++	"-DMOTOROLA",    /* Motorola Delta Systems */
++# ifdef SYSV
++	"-DSYSV", 
++# endif
++# ifdef SVR4
++	"-DSVR4",
++# endif
++#endif /* MOTOROLA */
++#ifdef i386
++	"-Di386",
++# ifdef SVR4
++	"-DSVR4",
++# endif
++# ifdef SYSV
++	"-DSYSV",
++#  ifdef ISC
++	"-DISC",
++#   ifdef ISC40
++	"-DISC40",       /* ISC 4.0 */
++#   else
++#    ifdef ISC202
++	"-DISC202",      /* ISC 2.0.2 */
++#    else
++#     ifdef ISC30
++	"-DISC30",       /* ISC 3.0 */
++#     else
++	"-DISC22",       /* ISC 2.2.1 */
++#     endif
++#    endif
++#   endif
++#  endif
++#  ifdef SCO
++	"-DSCO",
++#   ifdef SCO324
++	"-DSCO324",
++#   endif
++#  endif
++# endif
++# ifdef ESIX
++	"-DESIX",
++# endif
++# ifdef ATT
++	"-DATT",
++# endif
++# ifdef DELL
++	"-DDELL",
++# endif
++#endif
++#ifdef SYSV386           /* System V/386 folks, obsolete */
++	"-Di386",
++# ifdef SVR4
++	"-DSVR4",
++# endif
++# ifdef ISC
++	"-DISC",
++#  ifdef ISC40
++	"-DISC40",       /* ISC 4.0 */
++#  else
++#   ifdef ISC202
++	"-DISC202",      /* ISC 2.0.2 */
++#   else
++#    ifdef ISC30
++	"-DISC30",       /* ISC 3.0 */
++#    else
++	"-DISC22",       /* ISC 2.2.1 */
++#    endif
++#   endif
++#  endif
++# endif
++# ifdef SCO
++	"-DSCO",
++#  ifdef SCO324
++	"-DSCO324",
++#  endif
++# endif
++# ifdef ESIX
++	"-DESIX",
++# endif
++# ifdef ATT
++	"-DATT",
++# endif
++# ifdef DELL
++	"-DDELL",
++# endif
++#endif
++#ifdef __osf__
++	"-D__osf__",
++# ifdef __mips__
++	"-D__mips__",
++# endif
++# ifdef __alpha
++	"-D__alpha",
++# endif
++# ifdef __i386__
++	"-D__i386__",
++# endif
++# ifdef __GNUC__
++	"-traditional",
++# endif
++#endif
++#ifdef Oki
++	"-DOki",
++#endif
++#ifdef sun
++#ifdef SVR4
++	"-DSVR4",
++#endif
++#endif
++#ifdef WIN32
++	"-DWIN32",
++	"-nologo",
++	"-batch",
++	"-D__STDC__",
++#endif
++#ifdef NCR
++	"-DNCR",	/* NCR */
++#endif
++#ifdef linux
++        "-traditional",
++        "-Dlinux",
++#endif
++#ifdef __uxp__
++	"-D__uxp__",
++#endif
++#ifdef __sxg__
++	"-D__sxg__",
++#endif
++#ifdef nec_ews_svr2
++	"-Dnec_ews_svr2",
++#endif
++#ifdef AMOEBA
++	"-DAMOEBA",
++# ifdef CROSS_COMPILE
++	"-DCROSS_COMPILE",
++#  ifdef CROSS_i80386
++	"-Di80386",
++#  endif
++#  ifdef CROSS_sparc
++	"-Dsparc",
++#  endif
++#  ifdef CROSS_mc68000
++	"-Dmc68000",
++#  endif
++# else
++#  ifdef i80386
++	"-Di80386",
++#  endif
++#  ifdef sparc
++	"-Dsparc",
++#  endif
++#  ifdef mc68000
++	"-Dmc68000",
++#  endif
++# endif
++#endif
++#ifdef __minix_vmd
++        "-Dminix",
++#endif
++
++#if defined(__EMX__)
++	"-traditional",
++	"-Demxos2",
++#endif
++
++};
++#else /* else MAKEDEPEND */
++/*
++ * Step 6:  predefs
++ *     If your compiler and/or preprocessor define any specific symbols, add
++ *     them to the the following table.  The definition of struct symtab is
++ *     in util/makedepend/def.h.
++ */
++#define QUOTEIT(x) #x
++#define QUOTEEXPANSION(x) QUOTEIT(x)
++
++struct symtab	predefs[] = {
++#ifdef apollo
++	{"apollo", "1"},
++#endif
++#ifdef ibm032
++	{"ibm032", "1"},
++#endif
++#ifdef ibm
++	{"ibm", "1"},
++#endif
++#ifdef aix
++	{"aix", "1"},
++#endif
++#ifdef sun
++	{"sun", "1"},
++#endif
++#ifdef sun2
++	{"sun2", "1"},
++#endif
++#ifdef sun3
++	{"sun3", "1"},
++#endif
++#ifdef sun4
++	{"sun4", "1"},
++#endif
++#ifdef sparc
++	{"sparc", "1"},
++#endif
++#ifdef __sparc__
++	{"__sparc__", "1"},
++#endif
++#ifdef hpux
++	{"hpux", "1"},
++#endif
++#ifdef __hpux
++	{"__hpux", "1"},
++#endif
++#ifdef __hp9000s800
++	{"__hp9000s800", "1"},
++#endif
++#ifdef __hp9000s700
++	{"__hp9000s700", "1"},
++#endif
++#ifdef vax
++	{"vax", "1"},
++#endif
++#ifdef VMS
++	{"VMS", "1"},
++#endif
++#ifdef cray
++	{"cray", "1"},
++#endif
++#ifdef CRAY
++	{"CRAY", "1"},
++#endif
++#ifdef _CRAY
++	{"_CRAY", "1"},
++#endif
++#ifdef att
++	{"att", "1"},
++#endif
++#ifdef mips
++	{"mips", "1"},
++#endif
++#ifdef __mips__
++	{"__mips__", "1"},
++#endif
++#ifdef ultrix
++	{"ultrix", "1"},
++#endif
++#ifdef stellar
++	{"stellar", "1"},
++#endif
++#ifdef mc68000
++	{"mc68000", "1"},
++#endif
++#ifdef mc68020
++	{"mc68020", "1"},
++#endif
++#ifdef __GNUC__
++	{"__GNUC__", "1"},
++#endif
++#if __STDC__
++	{"__STDC__", "1"},
++#endif
++#ifdef __HIGHC__
++	{"__HIGHC__", "1"},
++#endif
++#ifdef CMU
++	{"CMU", "1"},
++#endif
++#ifdef luna
++	{"luna", "1"},
++#ifdef luna1
++	{"luna1", "1"},
++#endif
++#ifdef luna2
++	{"luna2", "1"},
++#endif
++#ifdef luna88k
++	{"luna88k", "1"},
++#endif
++#ifdef uniosb
++	{"uniosb", "1"},
++#endif
++#ifdef uniosu
++	{"uniosu", "1"},
++#endif
++#endif
++#ifdef ieeep754
++	{"ieeep754", "1"},
++#endif
++#ifdef is68k
++	{"is68k", "1"},
++#endif
++#ifdef m68k
++        {"m68k", "1"},
++#endif
++#ifdef m88k
++        {"m88k", "1"},
++#endif
++#ifdef __m88k__
++	{"__m88k__", "1"},
++#endif
++#ifdef bsd43
++	{"bsd43", "1"},
++#endif
++#ifdef hcx
++	{"hcx", "1"},
++#endif
++#ifdef sony
++	{"sony", "1"},
++#ifdef SYSTYPE_SYSV
++	{"SYSTYPE_SYSV", "1"},
++#endif
++#ifdef _SYSTYPE_SYSV
++	{"_SYSTYPE_SYSV", "1"},
++#endif
++#endif
++#ifdef __OSF__
++	{"__OSF__", "1"},
++#endif
++#ifdef __osf__
++	{"__osf__", "1"},
++#endif
++#ifdef __alpha
++	{"__alpha", "1"},
++#endif
++#ifdef __DECC
++	{"__DECC",  "1"},
++#endif
++#ifdef __decc
++	{"__decc",  "1"},
++#endif
++#ifdef __uxp__
++	{"__uxp__", "1"},
++#endif
++#ifdef __sxg__
++	{"__sxg__", "1"},
++#endif
++#ifdef _SEQUENT_
++	{"_SEQUENT_", "1"},
++	{"__STDC__", "1"},
++#endif
++#ifdef __bsdi__
++	{"__bsdi__", "1"},
++#endif
++#ifdef nec_ews_svr2
++	{"nec_ews_svr2", "1"},
++#endif
++#ifdef nec_ews_svr4
++	{"nec_ews_svr4", "1"},
++#endif
++#ifdef _nec_ews_svr4
++	{"_nec_ews_svr4", "1"},
++#endif
++#ifdef _nec_up
++	{"_nec_up", "1"},
++#endif
++#ifdef SX
++	{"SX", "1"},
++#endif
++#ifdef nec
++	{"nec", "1"},
++#endif
++#ifdef _nec_ft
++	{"_nec_ft", "1"},
++#endif
++#ifdef PC_UX
++	{"PC_UX", "1"},
++#endif
++#ifdef sgi
++	{"sgi", "1"},
++#endif
++#ifdef __sgi
++	{"__sgi", "1"},
++#endif
++#ifdef __FreeBSD__
++	{"__FreeBSD__", "1"},
++#endif
++#ifdef __NetBSD__
++	{"__NetBSD__", "1"},
++#endif
++#ifdef __OpenBSD__
++	{"__OpenBSD__", "1"},
++#endif
++#ifdef __EMX__
++	{"__EMX__", "1"},
++#endif
++	/* ADDED THE FOLLOWING SYMBOLS FOR WINDOWS */
++#ifdef _WIN32
++	{"_WIN32", QUOTEEXPANSION(_WIN32) },
++#endif
++#ifdef _WIN64
++	{"_WIN64", QUOTEEXPANSION(_WIN64) },
++#endif
++#ifdef _X86
++	{"_X86", QUOTEEXPANSION(_X86) },
++#endif
++#ifdef _X86_
++	{"_X86_", QUOTEEXPANSION(_X86_) },
++#endif
++#ifdef _X86_64
++	{"_X86_64", QUOTEEXPANSION(_X86_64) },
++#endif
++#ifdef _X86_64_
++	{"_X86_64_", QUOTEEXPANSION(_X86_64_) },
++#endif
++#ifdef _DEBUG
++	{"_DEBUG", QUOTEEXPANSION(_DEBUG) },
++#endif
++#ifdef _DLL
++	{"_DLL", QUOTEEXPANSION(_DLL) },
++#endif
++#ifdef _M_IX86
++	{"_M_IX86", QUOTEEXPANSION(_M_IX86) },
++#endif
++#ifdef _M_X64
++	{"_M_X64", QUOTEEXPANSION(_M_X64) },
++#endif
++#ifdef _MSC_FULL_VER
++	{"_MSC_FULL_VER", QUOTEEXPANSION(_MSC_FULL_VER) },
++#endif
++#ifdef _MSC_VER
++	{"_MSC_VER", QUOTEEXPANSION(_MSC_VER) },
++#endif
++#ifdef _MSVC_RUNTIME_CHECKS
++	{"_MSVC_RUNTIME_CHECKS", QUOTEEXPANSION(_MSVC_RUNTIME_CHECKS) },
++#endif
++#ifdef _MT
++	{"_MT", QUOTEEXPANSION(_MT) },
++#endif
++#ifdef _CHAR_UNSIGNED
++	{"_CHAR_UNSIGNED", QUOTEEXPANSION(_CHAR_UNSIGNED) },
++#endif
++	/* add any additional symbols before this line */
++	{NULL, NULL}
++};
++
++#endif /* MAKEDEPEND */
++#endif /* CCIMAKE */
+diff -ruN mozilla.orig/security/coreconf/mkdepend/include.c mozilla/security/coreconf/mkdepend/include.c
+--- mozilla.orig/security/coreconf/mkdepend/include.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/include.c	2009-02-14 00:37:01.000000000 +0000
+@@ -0,0 +1,337 @@
++/* $Xorg: include.c,v 1.4 2001/02/09 02:03:16 xorgcvs Exp $ */
++/*
++
++Copyright (c) 1993, 1994, 1998 The Open Group
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that
++the above copyright notice appear in all copies and that both that
++copyright notice and this permission notice appear in supporting
++documentation.
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of The Open Group shall not be
++used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from The Open Group.
++
++*/
++/* $XFree86: xc/config/makedepend/include.c,v 3.7 2001/12/14 19:53:20 dawes Exp $ */
++
++
++#include "def.h"
++
++#ifdef _MSC_VER
++#include <windows.h>
++static int
++does_file_exist(char *file)
++{
++  WIN32_FILE_ATTRIBUTE_DATA data;
++  BOOL b = GetFileAttributesExA(file, GetFileExInfoStandard, &data);
++  if (!b)
++    return 0;
++  return (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0;
++}
++#else
++static int
++does_file_exist(char *file)
++{
++  struct stat sb;
++  return stat(file, &sb) == 0 && !S_ISDIR(sb.st_mode);
++}
++#endif
++
++extern struct	inclist	inclist[ MAXFILES ],
++			*inclistp, *inclistnext;
++extern char	*includedirs[ ],
++		**includedirsnext;
++extern char	*notdotdot[ ];
++extern boolean show_where_not;
++extern boolean warn_multiple;
++
++static boolean
++isdot(char *p)
++{
++	if(p && *p++ == '.' && *p++ == '\0')
++		return(TRUE);
++	return(FALSE);
++}
++
++static boolean
++isdotdot(char *p)
++{
++	if(p && *p++ == '.' && *p++ == '.' && *p++ == '\0')
++		return(TRUE);
++	return(FALSE);
++}
++
++static boolean
++issymbolic(char *dir, char *component)
++{
++#ifdef S_IFLNK
++	struct stat	st;
++	char	buf[ BUFSIZ ], **pp;
++
++	sprintf(buf, "%s%s%s", dir, *dir ? "/" : "", component);
++	for (pp=notdotdot; *pp; pp++)
++		if (strcmp(*pp, buf) == 0)
++			return (TRUE);
++	if (lstat(buf, &st) == 0
++	&& (st.st_mode & S_IFMT) == S_IFLNK) {
++		*pp++ = copy(buf);
++		if (pp >= &notdotdot[ MAXDIRS ])
++			fatalerr("out of .. dirs, increase MAXDIRS\n");
++		return(TRUE);
++	}
++#endif
++	return(FALSE);
++}
++
++/*
++ * Occasionally, pathnames are created that look like .../x/../y
++ * Any of the 'x/..' sequences within the name can be eliminated.
++ * (but only if 'x' is not a symbolic link!!)
++ */
++static void
++remove_dotdot(char *path)
++{
++	register char	*end, *from, *to, **cp;
++	char		*components[ MAXFILES ],
++			newpath[ BUFSIZ ];
++	boolean		component_copied;
++
++	/*
++	 * slice path up into components.
++	 */
++	to = newpath;
++	if (*path == '/')
++		*to++ = '/';
++	*to = '\0';
++	cp = components;
++	for (from=end=path; *end; end++)
++		if (*end == '/') {
++			while (*end == '/')
++				*end++ = '\0';
++			if (*from)
++				*cp++ = from;
++			from = end;
++		}
++	*cp++ = from;
++	*cp = NULL;
++
++	/*
++	 * Recursively remove all 'x/..' component pairs.
++	 */
++	cp = components;
++	while(*cp) {
++		if (!isdot(*cp) && !isdotdot(*cp) && isdotdot(*(cp+1))
++		    && !issymbolic(newpath, *cp))
++		{
++		    char **fp = cp + 2;
++		    char **tp = cp;
++
++		    do 
++			*tp++ = *fp; /* move all the pointers down */
++		    while (*fp++);
++		    if (cp != components)
++			cp--;	/* go back and check for nested ".." */
++		} else {
++		    cp++;
++		}
++	}
++	/*
++	 * Concatenate the remaining path elements.
++	 */
++	cp = components;
++	component_copied = FALSE;
++	while(*cp) {
++		if (component_copied)
++			*to++ = '/';
++		component_copied = TRUE;
++		for (from = *cp; *from; )
++			*to++ = *from++;
++		*to = '\0';
++		cp++;
++	}
++	*to++ = '\0';
++
++	/*
++	 * copy the reconstituted path back to our pointer.
++	 */
++	strcpy(path, newpath);
++}
++
++/*
++ * Add an include file to the list of those included by 'file'.
++ */
++struct inclist *
++newinclude(char *newfile, char *incstring)
++{
++	register struct inclist	*ip;
++
++	/*
++	 * First, put this file on the global list of include files.
++	 */
++	ip = inclistp++;
++	if (inclistp == inclist + MAXFILES - 1)
++		fatalerr("out of space: increase MAXFILES\n");
++	ip->i_file = copy(newfile);
++
++	if (incstring == NULL)
++		ip->i_incstring = ip->i_file;
++	else
++		ip->i_incstring = copy(incstring);
++
++	inclistnext = inclistp;
++	return(ip);
++}
++
++void
++included_by(struct inclist *ip, struct inclist *newfile)
++{
++	register int i;
++
++	if (ip == NULL)
++		return;
++	/*
++	 * Put this include file (newfile) on the list of files included
++	 * by 'file'.  If 'file' is NULL, then it is not an include
++	 * file itself (i.e. was probably mentioned on the command line).
++	 * If it is already on the list, don't stick it on again.
++	 */
++	if (ip->i_list == NULL) {
++		ip->i_list = (struct inclist **)
++			malloc(sizeof(struct inclist *) * ++ip->i_listlen);
++		ip->i_merged = (boolean *)
++		    malloc(sizeof(boolean) * ip->i_listlen);
++	} else {
++		for (i=0; i<ip->i_listlen; i++)
++			if (ip->i_list[ i ] == newfile) {
++			    i = strlen(newfile->i_file);
++			    if (!(ip->i_flags & INCLUDED_SYM) &&
++				!(i > 2 &&
++				  newfile->i_file[i-1] == 'c' &&
++				  newfile->i_file[i-2] == '.'))
++			    {
++				/* only bitch if ip has */
++				/* no #include SYMBOL lines  */
++				/* and is not a .c file */
++				if (warn_multiple)
++				{
++					warning("%s includes %s more than once!\n",
++						ip->i_file, newfile->i_file);
++					warning1("Already have\n");
++					for (i=0; i<ip->i_listlen; i++)
++						warning1("\t%s\n", ip->i_list[i]->i_file);
++				}
++			    }
++			    return;
++			}
++		ip->i_list = (struct inclist **) realloc(ip->i_list,
++			sizeof(struct inclist *) * ++ip->i_listlen);
++		ip->i_merged = (boolean *)
++		    realloc(ip->i_merged, sizeof(boolean) * ip->i_listlen);
++	}
++	ip->i_list[ ip->i_listlen-1 ] = newfile;
++	ip->i_merged[ ip->i_listlen-1 ] = FALSE;
++}
++
++void
++inc_clean (void)
++{
++	register struct inclist *ip;
++
++	for (ip = inclist; ip < inclistp; ip++) {
++		ip->i_flags &= ~MARKED;
++	}
++}
++
++struct inclist *
++inc_path(char *file, char *include, int type)
++{
++	static char		path[ BUFSIZ ];
++	register char		**pp, *p;
++	register struct inclist	*ip;
++
++	/*
++	 * Check all previously found include files for a path that
++	 * has already been expanded.
++	 */
++	if ((type == INCLUDE) || (type == INCLUDEDOT))
++		inclistnext = inclist;
++	ip = inclistnext;
++
++	for (; ip->i_file; ip++) {
++		if ((strcmp(ip->i_incstring, include) == 0) &&
++		    !(ip->i_flags & INCLUDED_SYM)) {
++			inclistnext = ip + 1;
++			return ip;
++		}
++	}
++
++	if (inclistnext == inclist) {
++		/*
++		 * If the path was surrounded by "" or is an absolute path,
++		 * then check the exact path provided.
++		 */
++		if ((type == INCLUDEDOT) ||
++		    (type == INCLUDENEXTDOT) ||
++		    (*include == '/')) {
++			if (does_file_exist(include))
++				return newinclude(include, include);
++			if (show_where_not)
++				warning1("\tnot in %s\n", include);
++		}
++
++		/*
++		 * If the path was surrounded by "" see if this include file is
++		 * in the directory of the file being parsed.
++		 */
++		if ((type == INCLUDEDOT) || (type == INCLUDENEXTDOT)) {
++			for (p=file+strlen(file); p>file; p--)
++				if (*p == '/')
++					break;
++			if (p == file) {
++				strcpy(path, include);
++			} else {
++				strncpy(path, file, (p-file) + 1);
++				path[ (p-file) + 1 ] = '\0';
++				strcpy(path + (p-file) + 1, include);
++			}
++			remove_dotdot(path);
++			if (does_file_exist(path))
++				return newinclude(path, include);
++			if (show_where_not)
++				warning1("\tnot in %s\n", path);
++		}
++	}
++
++	/*
++	 * Check the include directories specified.  Standard include dirs
++	 * should be at the end.
++	 */
++	if ((type == INCLUDE) || (type == INCLUDEDOT))
++		includedirsnext = includedirs;
++	pp = includedirsnext;
++
++	for (; *pp; pp++) {
++		sprintf(path, "%s/%s", *pp, include);
++		remove_dotdot(path);
++		if (does_file_exist(path)) {
++			includedirsnext = pp + 1;
++			return newinclude(path, include);
++		}
++		if (show_where_not)
++			warning1("\tnot in %s\n", path);
++	}
++
++	return NULL;
++}
+diff -ruN mozilla.orig/security/coreconf/mkdepend/main.c mozilla/security/coreconf/mkdepend/main.c
+--- mozilla.orig/security/coreconf/mkdepend/main.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/main.c	2009-02-14 19:40:55.000000000 +0000
+@@ -0,0 +1,870 @@
++/* $Xorg: main.c,v 1.5 2001/02/09 02:03:16 xorgcvs Exp $ */
++/*
++
++Copyright (c) 1993, 1994, 1998 The Open Group
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that
++the above copyright notice appear in all copies and that both that
++copyright notice and this permission notice appear in supporting
++documentation.
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of The Open Group shall not be
++used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from The Open Group.
++
++*/
++/* $XFree86: xc/config/makedepend/main.c,v 3.32 2003/03/26 20:43:48 tsi Exp $ */
++
++#include "def.h"
++#ifdef hpux
++#define sigvec sigvector
++#endif /* hpux */
++
++#ifdef X_POSIX_C_SOURCE
++#define _POSIX_C_SOURCE X_POSIX_C_SOURCE
++#include <signal.h>
++#undef _POSIX_C_SOURCE
++#else
++#if defined(X_NOT_POSIX) || defined(_POSIX_SOURCE)
++#include <signal.h>
++#else
++#define _POSIX_SOURCE
++#include <signal.h>
++#undef _POSIX_SOURCE
++#endif
++#endif
++
++#include <stdarg.h>
++#ifdef _WIN32
++#include <io.h>
++#endif
++
++#ifdef MINIX
++#define USE_CHMOD	1
++#endif
++
++#ifdef DEBUG
++int	_debugmask;
++#endif
++
++/* #define DEBUG_DUMP */
++#ifdef DEBUG_DUMP
++#define DBG_PRINT(file, fmt, args)   fprintf(file, fmt, args)
++#else
++#define DBG_PRINT(file, fmt, args)   /* empty */
++#endif
++
++#define DASH_INC_PRE    "#include \""
++#define DASH_INC_POST   "\""
++
++char *ProgramName;
++
++char	*directives[] = {
++	"if",
++	"ifdef",
++	"ifndef",
++	"else",
++	"endif",
++	"define",
++	"undef",
++	"include",
++	"line",
++	"pragma",
++	"error",
++	"ident",
++	"sccs",
++	"elif",
++	"eject",
++	"warning",
++	"include_next",
++	NULL
++};
++
++#define MAKEDEPEND
++#include "imakemdep.h"	/* from config sources */
++#undef MAKEDEPEND
++
++struct	inclist inclist[ MAXFILES ],
++		*inclistp = inclist,
++		*inclistnext = inclist,
++		maininclist;
++
++static char	*filelist[ MAXFILES ];
++char		*includedirs[ MAXDIRS + 1 ],
++		**includedirsnext = includedirs;
++char		*notdotdot[ MAXDIRS ];
++static int	cmdinc_count = 0;
++static char	*cmdinc_list[ 2 * MAXINCFILES ];
++char		*objprefix = "";
++char		*objsuffix = OBJSUFFIX;
++static char	*startat = "# DO NOT DELETE";
++int		width = 78;
++static boolean	append = FALSE;
++boolean		printed = FALSE;
++boolean		verbose = FALSE;
++boolean		show_where_not = FALSE;
++/* Warn on multiple includes of same file */
++boolean 	warn_multiple = FALSE;
++
++static void setfile_cmdinc(struct filepointer *filep, long count, char **list);
++static void redirect(char *line, char *makefile);
++
++static
++#ifdef SIGNALRETURNSINT
++int
++#else
++void
++#endif
++catch (int sig)
++{
++	fflush (stdout);
++	fatalerr ("got signal %d\n", sig);
++}
++
++#if defined(USG) || (defined(i386) && defined(SYSV)) || defined(WIN32) || defined(__UNIXOS2__) || defined(Lynx_22) || defined(__CYGWIN__)
++#define USGISH
++#endif
++
++#ifndef USGISH
++#ifdef X_NOT_POSIX
++#define sigaction sigvec
++#define sa_handler sv_handler
++#define sa_mask sv_mask
++#define sa_flags sv_flags
++#endif
++struct sigaction sig_act;
++#endif /* USGISH */
++
++int
++main(int argc, char *argv[])
++{
++	char	**fp = filelist;
++	char	**incp = includedirs;
++	char	*p;
++	struct inclist	*ip;
++	char	*makefile = NULL;
++	struct filepointer	*filecontent;
++	struct symtab *psymp = predefs;
++	char *endmarker = NULL;
++	char *defincdir = NULL;
++	char **undeflist = NULL;
++	int numundefs = 0, i;
++	register char offset;
++
++	ProgramName = argv[0];
++
++	while (psymp->s_name)
++	{
++	    define2(psymp->s_name, psymp->s_value, &maininclist);
++	    psymp++;
++	}
++	if (argc == 2 && argv[1][0] == '@') {
++	    struct stat ast;
++	    int afd;
++	    char *args;
++	    char **nargv;
++	    int nargc;
++	    char quotechar = '\0';
++
++	    nargc = 1;
++	    if ((afd = open(argv[1]+1, O_RDONLY)) < 0)
++		fatalerr("cannot open \"%s\"\n", argv[1]+1);
++	    fstat(afd, &ast);
++	    args = (char *)malloc(ast.st_size + 1);
++	    if ((ast.st_size = read(afd, args, ast.st_size)) < 0)
++		fatalerr("failed to read %s\n", argv[1]+1);
++	    args[ast.st_size] = '\0';
++	    close(afd);
++	    for (p = args; *p; p++) {
++		if (quotechar) {
++		    if (quotechar == '\\' ||
++			(*p == quotechar && p[-1] != '\\'))
++			quotechar = '\0';
++		    continue;
++		}
++		switch (*p) {
++		case '\\':
++		case '"':
++		case '\'':
++		    quotechar = *p;
++		    break;
++		case ' ':
++		case '\n':
++		    *p = '\0';
++		    if (p > args && p[-1])
++			nargc++;
++		    break;
++		}
++	    }
++	    if (p[-1])
++		nargc++;
++	    nargv = (char **)malloc(nargc * sizeof(char *));
++	    nargv[0] = argv[0];
++	    argc = 1;
++	    for (p = args; argc < nargc; p += strlen(p) + 1)
++		if (*p) nargv[argc++] = p;
++	    argv = nargv;
++	}
++	for(argc--, argv++; argc; argc--, argv++) {
++	    	/* if looking for endmarker then check before parsing */
++		if (endmarker && strcmp (endmarker, *argv) == 0) {
++		    endmarker = NULL;
++		    continue;
++		}
++		if (**argv != '-') {
++			/* treat +thing as an option for C++ */
++			if (endmarker && **argv == '+')
++				continue;
++			*fp++ = argv[0];
++			continue;
++		}
++		switch(argv[0][1]) {
++		case '-':
++			endmarker = &argv[0][2];
++			if (endmarker[0] == '\0') endmarker = "--";
++			break;
++		case 'D':
++			offset = 2;
++			if (argv[0][2] == '\0') {
++				argv++;
++				argc--;
++				offset = 0;
++			}
++			/* offset +1 here since first def letter
++			 * cannot be `=`
++			 */
++			for (p = argv[0] + offset + 1; *p; p++)
++				if (*p == '=') {
++					*p = ' ';
++					break;
++				}
++			define(argv[0] + offset, &maininclist);
++			break;
++		case 'I':
++			if (incp >= includedirs + MAXDIRS)
++			    fatalerr("Too many -I flags.\n");
++			*incp++ = argv[0]+2;
++			if (**(incp-1) == '\0') {
++				*(incp-1) = *(++argv);
++				argc--;
++			}
++			break;
++		case 'U':
++			/* Undef's override all -D's so save them up */
++			numundefs++;
++			if (numundefs == 1)
++			    undeflist = malloc(sizeof(char *));
++			else
++			    undeflist = realloc(undeflist,
++						numundefs * sizeof(char *));
++			offset = 2;
++			if (argv[0][2] == '\0') {
++				argv++;
++				argc--;
++				offset = 0;
++			}
++			undeflist[numundefs - 1] = argv[0] + offset;
++			break;
++		case 'Y':
++			defincdir = argv[0]+2;
++			break;
++		/* do not use if endmarker processing */
++		case 'a':
++			if (endmarker) break;
++			append = TRUE;
++			break;
++		case 'w':
++			if (endmarker) break;
++			if (argv[0][2] == '\0') {
++				argv++;
++				argc--;
++				width = atoi(argv[0]);
++			} else
++				width = atoi(argv[0]+2);
++			break;
++		case 'o':
++			if (endmarker) break;
++			if (argv[0][2] == '\0') {
++				argv++;
++				argc--;
++				objsuffix = argv[0];
++			} else
++				objsuffix = argv[0]+2;
++			break;
++		case 'p':
++			if (endmarker) break;
++			if (argv[0][2] == '\0') {
++				argv++;
++				argc--;
++				objprefix = argv[0];
++			} else
++				objprefix = argv[0]+2;
++			break;
++		case 'v':
++			if (endmarker) break;
++			verbose = TRUE;
++#ifdef DEBUG
++			if (argv[0][2])
++				_debugmask = atoi(argv[0]+2);
++#endif
++			break;
++		case 's':
++			if (endmarker) break;
++			startat = argv[0]+2;
++			if (*startat == '\0') {
++				startat = *(++argv);
++				argc--;
++			}
++			if (*startat != '#')
++				fatalerr("-s flag's value should start %s\n",
++					"with '#'.");
++			break;
++		case 'f':
++			if (endmarker) break;
++			makefile = argv[0]+2;
++			if (*makefile == '\0') {
++				makefile = *(++argv);
++				argc--;
++			}
++			break;
++
++		case 'm':
++			warn_multiple = TRUE;
++			break;
++			
++		/* Ignore -O, -g so we can just pass ${CFLAGS} to
++		   makedepend
++		 */
++		case 'O':
++		case 'g':
++			break;
++		case 'i':
++			if (strcmp(&argv[0][1],"include") == 0) {
++				char *buf;
++				if (argc<2)
++					fatalerr("option -include is a "
++						 "missing its parameter\n");
++				if (cmdinc_count >= MAXINCFILES)
++					fatalerr("Too many -include flags.\n");
++				argc--;
++				argv++;
++				buf = malloc(strlen(DASH_INC_PRE) +
++					     strlen(argv[0]) +
++					     strlen(DASH_INC_POST) + 1);
++                		if(!buf)
++					fatalerr("out of memory at "
++						 "-include string\n");
++				cmdinc_list[2 * cmdinc_count + 0] = argv[0];
++				cmdinc_list[2 * cmdinc_count + 1] = buf;
++				cmdinc_count++;
++				break;
++			}
++			/* intentional fall through */
++		default:
++			if (endmarker) break;
++	/*		fatalerr("unknown opt = %s\n", argv[0]); */
++			warning("ignoring option %s\n", argv[0]);
++		}
++	}
++	/* Now do the undefs from the command line */
++	for (i = 0; i < numundefs; i++)
++	    undefine(undeflist[i], &maininclist);
++	if (numundefs > 0)
++	    free(undeflist);
++
++	if (!defincdir) {
++#ifdef PREINCDIR
++	    if (incp >= includedirs + MAXDIRS)
++		fatalerr("Too many -I flags.\n");
++	    *incp++ = PREINCDIR;
++#endif
++#if defined(__UNIXOS2__) || defined(_MSC_VER)
++	    {
++#if defined(_MSC_VER)
++		char *includepath = getenv("INCLUDE");
++#else
++		char *includepath = getenv("C_INCLUDE_PATH");
++#endif
++		/* can have more than one component */
++		if (includepath) {
++		    char *beg, *end;
++		    beg= (char*)strdup(includepath);
++		    for (;;) {
++			end = (char*)strchr(beg,';');
++			if (end) *end = 0;
++		    	if (incp >= includedirs + MAXDIRS)
++				fatalerr("Too many include dirs\n");
++			*incp++ = beg;
++			if (!end) break;
++			beg = end+1;
++		    }
++		}
++	    }
++#else /* !__UNIXOS2__ && !_MSC_VER, does not use INCLUDEDIR at all */
++	    if (incp >= includedirs + MAXDIRS)
++		fatalerr("Too many -I flags.\n");
++	    *incp++ = INCLUDEDIR;
++#endif
++
++#ifdef EXTRAINCDIR
++	    if (incp >= includedirs + MAXDIRS)
++		fatalerr("Too many -I flags.\n");
++	    *incp++ = EXTRAINCDIR;
++#endif
++
++#ifdef POSTINCDIR
++	    if (incp >= includedirs + MAXDIRS)
++		fatalerr("Too many -I flags.\n");
++	    *incp++ = POSTINCDIR;
++#endif
++	} else if (*defincdir) {
++	    if (incp >= includedirs + MAXDIRS)
++		fatalerr("Too many -I flags.\n");
++	    *incp++ = defincdir;
++	}
++
++	redirect(startat, makefile);
++
++	/*
++	 * catch signals.
++	 */
++#ifdef USGISH
++/*  should really reset SIGINT to SIG_IGN if it was.  */
++#ifdef SIGHUP
++	signal (SIGHUP, catch);
++#endif
++	signal (SIGINT, catch);
++#ifdef SIGQUIT
++	signal (SIGQUIT, catch);
++#endif
++	signal (SIGILL, catch);
++#ifdef SIGBUS
++	signal (SIGBUS, catch);
++#endif
++	signal (SIGSEGV, catch);
++#ifdef SIGSYS
++	signal (SIGSYS, catch);
++#endif
++#else
++	sig_act.sa_handler = catch;
++#if defined(_POSIX_SOURCE) || !defined(X_NOT_POSIX)
++	sigemptyset(&sig_act.sa_mask);
++	sigaddset(&sig_act.sa_mask, SIGINT);
++	sigaddset(&sig_act.sa_mask, SIGQUIT);
++#ifdef SIGBUS
++	sigaddset(&sig_act.sa_mask, SIGBUS);
++#endif
++	sigaddset(&sig_act.sa_mask, SIGILL);
++	sigaddset(&sig_act.sa_mask, SIGSEGV);
++	sigaddset(&sig_act.sa_mask, SIGHUP);
++	sigaddset(&sig_act.sa_mask, SIGPIPE);
++#ifdef SIGSYS
++	sigaddset(&sig_act.sa_mask, SIGSYS);
++#endif
++#else
++	sig_act.sa_mask = ((1<<(SIGINT -1))
++			   |(1<<(SIGQUIT-1))
++#ifdef SIGBUS
++			   |(1<<(SIGBUS-1))
++#endif
++			   |(1<<(SIGILL-1))
++			   |(1<<(SIGSEGV-1))
++			   |(1<<(SIGHUP-1))
++			   |(1<<(SIGPIPE-1))
++#ifdef SIGSYS
++			   |(1<<(SIGSYS-1))
++#endif
++			   );
++#endif /* _POSIX_SOURCE */
++	sig_act.sa_flags = 0;
++	sigaction(SIGHUP, &sig_act, (struct sigaction *)0);
++	sigaction(SIGINT, &sig_act, (struct sigaction *)0);
++	sigaction(SIGQUIT, &sig_act, (struct sigaction *)0);
++	sigaction(SIGILL, &sig_act, (struct sigaction *)0);
++#ifdef SIGBUS
++	sigaction(SIGBUS, &sig_act, (struct sigaction *)0);
++#endif
++	sigaction(SIGSEGV, &sig_act, (struct sigaction *)0);
++#ifdef SIGSYS
++	sigaction(SIGSYS, &sig_act, (struct sigaction *)0);
++#endif
++#endif /* USGISH */
++
++	/*
++	 * now peruse through the list of files.
++	 */
++	for(fp=filelist; *fp; fp++) {
++		DBG_PRINT(stderr,"file: %s\n",*fp);
++		filecontent = getfile(*fp);
++		setfile_cmdinc(filecontent, cmdinc_count, cmdinc_list);
++		ip = newinclude(*fp, (char *)NULL);
++
++		find_includes(filecontent, ip, ip, 0, FALSE);
++		freefile(filecontent);
++		recursive_pr_include(ip, ip->i_file, base_name(*fp));
++		inc_clean();
++	}
++	if (printed)
++		printf("\n");
++	return 0;
++}
++
++#ifdef __UNIXOS2__
++/*
++ * eliminate \r chars from file
++ */
++static int 
++elim_cr(char *buf, int sz)
++{
++	int i,wp;
++	for (i= wp = 0; i<sz; i++) {
++		if (buf[i] != '\r')
++			buf[wp++] = buf[i];
++	}
++	return wp;
++}
++#endif
++
++struct filepointer *
++getfile(char *file)
++{
++	int	fd;
++	struct filepointer	*content;
++	struct stat	st;
++
++	content = (struct filepointer *)malloc(sizeof(struct filepointer));
++	content->f_name = file;
++	if ((fd = open(file, O_RDONLY)) < 0) {
++		warning("cannot open \"%s\"\n", file);
++		content->f_p = content->f_base = content->f_end = (char *)malloc(1);
++		*content->f_p = '\0';
++		return(content);
++	}
++	fstat(fd, &st);
++	content->f_base = (char *)malloc(st.st_size+1);
++	if (content->f_base == NULL)
++		fatalerr("cannot allocate mem\n");
++	if ((st.st_size = read(fd, content->f_base, st.st_size)) < 0)
++		fatalerr("failed to read %s\n", file);
++#ifdef __UNIXOS2__
++	st.st_size = elim_cr(content->f_base,st.st_size);
++#endif
++	close(fd);
++	content->f_len = st.st_size+1;
++	content->f_p = content->f_base;
++	content->f_end = content->f_base + st.st_size;
++	*content->f_end = '\0';
++	content->f_line = 0;
++	content->cmdinc_count = 0;
++	content->cmdinc_list = NULL;
++	content->cmdinc_line = 0;
++	return(content);
++}
++
++void
++setfile_cmdinc(struct filepointer* filep, long count, char** list)
++{
++	filep->cmdinc_count = count;
++	filep->cmdinc_list = list;
++	filep->cmdinc_line = 0;
++}
++
++void
++freefile(struct filepointer *fp)
++{
++	free(fp->f_base);
++	free(fp);
++}
++
++char *copy(char *str)
++{
++	char	*p = (char *)malloc(strlen(str) + 1);
++
++	strcpy(p, str);
++	return(p);
++}
++
++int
++match(char *str, char **list)
++{
++	int	i;
++
++	for (i=0; *list; i++, list++)
++		if (strcmp(str, *list) == 0)
++			return(i);
++	return(-1);
++}
++
++/*
++ * Get the next line.  We only return lines beginning with '#' since that
++ * is all this program is ever interested in.
++ */
++char *getnextline(struct filepointer *filep)
++{
++	char	*p,	/* walking pointer */
++		*eof,	/* end of file pointer */
++		*bol;	/* beginning of line pointer */
++	int	lineno;	/* line number */
++	boolean whitespace = FALSE;
++
++	/*
++	 * Fake the "-include" line files in form of #include to the
++	 * start of each file.
++	 */
++	if (filep->cmdinc_line < filep->cmdinc_count) {
++		char *inc = filep->cmdinc_list[2 * filep->cmdinc_line + 0];
++		char *buf = filep->cmdinc_list[2 * filep->cmdinc_line + 1];
++		filep->cmdinc_line++;
++		sprintf(buf,"%s%s%s",DASH_INC_PRE,inc,DASH_INC_POST);
++		DBG_PRINT(stderr,"%s\n",buf);
++		return(buf);
++	}
++
++	p = filep->f_p;
++	eof = filep->f_end;
++	if (p >= eof)
++		return((char *)NULL);
++	lineno = filep->f_line;
++
++	for (bol = p--; ++p < eof; ) {
++		if ((bol == p) && ((*p == ' ') || (*p == '\t')))
++		{
++			/* Consume leading white-spaces for this line */
++			while (((p+1) < eof) && ((*p == ' ') || (*p == '\t')))
++			{
++				p++;
++				bol++;
++			}
++			whitespace = TRUE;
++		}
++        
++		if (*p == '/' && (p+1) < eof && *(p+1) == '*') {
++			/* Consume C comments */
++			*(p++) = ' ';
++			*(p++) = ' ';
++			while (p < eof && *p) {
++				if (*p == '*' && (p+1) < eof && *(p+1) == '/') {
++					*(p++) = ' ';
++					*(p++) = ' ';
++					break;
++				}
++				if (*p == '\n')
++					lineno++;
++				*(p++) = ' ';
++			}
++			--p;
++		}
++		else if (*p == '/' && (p+1) < eof && *(p+1) == '/') {
++			/* Consume C++ comments */
++			*(p++) = ' ';
++			*(p++) = ' ';
++			while (p < eof && *p) {
++				if (*p == '\\' && (p+1) < eof &&
++				    *(p+1) == '\n') {
++					*(p++) = ' ';
++					lineno++;
++				}
++				else if (*p == '?' && (p+3) < eof &&
++					 *(p+1) == '?' && 
++					 *(p+2) == '/' &&
++					 *(p+3) == '\n') {
++					*(p++) = ' ';
++					*(p++) = ' ';
++					*(p++) = ' ';
++					lineno++;
++				}
++				else if (*p == '\n')
++					break;	/* to process end of line */
++				*(p++) = ' ';
++			}
++			--p;
++		}
++		else if (*p == '\\' && (p+1) < eof && *(p+1) == '\n') {
++			/* Consume backslash line terminations */
++			*(p++) = ' ';
++			*p = ' ';
++			lineno++;
++		}
++		else if (*p == '?' && (p+3) < eof &&
++			 *(p+1) == '?' && *(p+2) == '/' && *(p+3) == '\n') {
++			/* Consume trigraph'ed backslash line terminations */
++			*(p++) = ' ';
++			*(p++) = ' ';
++			*(p++) = ' ';
++			*p = ' ';
++			lineno++;
++		}
++		else if (*p == '\n') {
++			lineno++;
++			if (*bol == '#') {
++				char *cp;
++
++				*(p++) = '\0';
++				/* punt lines with just # (yacc generated) */
++				for (cp = bol+1; 
++				     *cp && (*cp == ' ' || *cp == '\t'); cp++);
++				if (*cp) goto done;
++				--p;
++			}
++			bol = p+1;
++			whitespace = FALSE;
++		}
++	}
++	if (*bol != '#')
++		bol = NULL;
++done:
++#if !defined(__UNIXOS2__) && !defined(_MSC_VER) && !defined(_WIN32)
++	/* Don't print warnings for system header files */
++	if (bol && whitespace && !strstr(filep->f_name, INCLUDEDIR)) {
++		warning("%s:  non-portable whitespace encountered at line %d\n",
++			filep->f_name, lineno);
++	}
++#endif
++	filep->f_p = p;
++	filep->f_line = lineno;
++#ifdef DEBUG_DUMP
++	if (bol)
++		DBG_PRINT(stderr,"%s\n",bol);
++#endif
++	return(bol);
++}
++
++/*
++ * Strip the file name down to what we want to see in the Makefile.
++ * It will have objprefix and objsuffix around it.
++ */
++char *base_name(char *file)
++{
++	char	*p;
++
++	file = copy(file);
++	for(p=file+strlen(file); p>file && *p != '.'; p--) ;
++
++	if (*p == '.')
++		*p = '\0';
++	return(file);
++}
++
++#if defined(USG) && !defined(CRAY) && !defined(SVR4) && !defined(__UNIXOS2__) && !defined(clipper) && !defined(__clipper__)
++int rename (char *from, char *to)
++{
++    (void) unlink (to);
++    if (link (from, to) == 0) {
++	unlink (from);
++	return 0;
++    } else {
++	return -1;
++    }
++}
++#endif /* USGISH */
++
++void
++redirect(char *line, char *makefile)
++{
++	struct stat	st;
++	FILE	*fdin, *fdout;
++	char	backup[ BUFSIZ ],
++		buf[ BUFSIZ ];
++	boolean	found = FALSE;
++	int	len;
++
++	/*
++	 * if makefile is "-" then let it pour onto stdout.
++	 */
++	if (makefile && *makefile == '-' && *(makefile+1) == '\0') {
++		puts(line);
++		return;
++	}
++
++	/*
++	 * use a default makefile is not specified.
++	 */
++	if (!makefile) {
++		if (stat("Makefile", &st) == 0)
++			makefile = "Makefile";
++		else if (stat("makefile", &st) == 0)
++			makefile = "makefile";
++		else
++			fatalerr("[mM]akefile is not present\n");
++	}
++	else
++	    stat(makefile, &st);
++	if ((fdin = fopen(makefile, "r")) == NULL)
++		fatalerr("cannot open \"%s\"\n", makefile);
++	sprintf(backup, "%s.bak", makefile);
++	unlink(backup);
++#if defined(WIN32) || defined(__UNIXOS2__) || defined(__CYGWIN__)
++	fclose(fdin);
++#endif
++	if (rename(makefile, backup) < 0)
++		fatalerr("cannot rename %s to %s\n", makefile, backup);
++#if defined(WIN32) || defined(__UNIXOS2__) || defined(__CYGWIN__)
++	if ((fdin = fopen(backup, "r")) == NULL)
++		fatalerr("cannot open \"%s\"\n", backup);
++#endif
++	if ((fdout = freopen(makefile, "w", stdout)) == NULL)
++		fatalerr("cannot open \"%s\"\n", backup);
++	len = strlen(line);
++	while (!found && fgets(buf, BUFSIZ, fdin)) {
++		if (*buf == '#' && strncmp(line, buf, len) == 0)
++			found = TRUE;
++		fputs(buf, fdout);
++	}
++	if (!found) {
++		if (verbose)
++		warning("Adding new delimiting line \"%s\" and dependencies...\n",
++			line);
++		puts(line); /* same as fputs(fdout); but with newline */
++	} else if (append) {
++	    while (fgets(buf, BUFSIZ, fdin)) {
++		fputs(buf, fdout);
++	    }
++	}
++	fflush(fdout);
++#if defined(USGISH) || defined(_SEQUENT_) || defined(USE_CHMOD)
++	chmod(makefile, st.st_mode);
++#else
++        fchmod(fileno(fdout), st.st_mode);
++#endif /* USGISH */
++}
++
++void
++fatalerr(char *msg, ...)
++{
++	va_list args;
++	fprintf(stderr, "%s: error:  ", ProgramName);
++	va_start(args, msg);
++	vfprintf(stderr, msg, args);
++	va_end(args);
++	exit (1);
++}
++
++void
++warning(char *msg, ...)
++{
++	va_list args;
++	fprintf(stderr, "%s: warning:  ", ProgramName);
++	va_start(args, msg);
++	vfprintf(stderr, msg, args);
++	va_end(args);
++}
++
++void
++warning1(char *msg, ...)
++{
++	va_list args;
++	va_start(args, msg);
++	vfprintf(stderr, msg, args);
++	va_end(args);
++}
+diff -ruN mozilla.orig/security/coreconf/mkdepend/mkdepend.man mozilla/security/coreconf/mkdepend/mkdepend.man
+--- mozilla.orig/security/coreconf/mkdepend/mkdepend.man	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/mkdepend.man	2009-02-14 00:37:01.000000000 +0000
+@@ -0,0 +1,382 @@
++.\" $Xorg: mkdepend.man,v 1.5 2001/02/09 02:03:16 xorgcvs Exp $
++.\" Copyright (c) 1993, 1994, 1998 The Open Group
++.\" 
++.\" Permission to use, copy, modify, distribute, and sell this software and its
++.\" documentation for any purpose is hereby granted without fee, provided that
++.\" the above copyright notice appear in all copies and that both that
++.\" copyright notice and this permission notice appear in supporting
++.\" documentation.
++.\" 
++.\" The above copyright notice and this permission notice shall be included in
++.\" all copies or substantial portions of the Software.
++.\" 
++.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++.\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
++.\" THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
++.\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 
++.\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
++.\" SOFTWARE.
++.\" 
++.\" Except as contained in this notice, the name of The Open Group shall not 
++.\" be used in advertising or otherwise to promote the sale, use or other 
++.\" dealing in this Software without prior written authorization from The
++.\" Open Group.
++.\"
++.\" $XFree86: xc/config/makedepend/mkdepend.man,v 1.7 2002/12/14 02:39:45 dawes Exp $
++.\"
++.TH MAKEDEPEND 1 __xorgversion__
++.UC 4
++.SH NAME
++makedepend \- create dependencies in makefiles
++.SH SYNOPSIS
++.B makedepend
++[
++.BI \-D name\fB=\fPdef
++] [
++.BI \-D name
++] [
++.BI \-I includedir
++] [
++.BI \-Y includedir
++] [
++.B \-a
++] [
++.BI \-f makefile
++] [
++.BI \-include \ file
++] [
++.BI \-o objsuffix
++] [
++.BI \-p objprefix
++] [
++.BI \-s string
++] [
++.BI \-w width
++] [
++.B \-v
++] [
++.B \-m
++] [
++\-\^\-
++.I otheroptions
++\-\^\-
++]
++.I sourcefile
++\&.\|.\|.
++.br
++.SH DESCRIPTION
++The
++.B makedepend
++program reads each
++.I sourcefile
++in sequence and parses it like a C-preprocessor,
++processing all
++.I #include,
++.I #define,
++.I #undef,
++.I #ifdef,
++.I #ifndef,
++.I #endif,
++.I #if,
++.I #elif
++and
++.I #else
++directives so that it can correctly tell which
++.I #include,
++directives would be used in a compilation.
++Any
++.I #include,
++directives can reference files having other
++.I #include
++directives, and parsing will occur in these files as well.
++.PP
++Every file that a
++.I sourcefile
++includes,
++directly or indirectly,
++is what
++.B makedepend
++calls a \fIdependency.\fP
++These dependencies are then written to a
++.I makefile
++in such a way that
++.B make(1)
++will know which object files must be recompiled when a dependency has changed.
++.PP
++By default,
++.B makedepend
++places its output in the file named
++.I makefile
++if it exists, otherwise
++.I Makefile.
++An alternate makefile may be specified with the
++.B \-f
++option.
++It first searches the makefile for
++the line
++.sp
++\&    # DO NOT DELETE THIS LINE \-\^\- make depend depends on it.
++.sp
++or one provided with the
++.B \-s
++option,
++as a delimiter for the dependency output.
++If it finds it, it will delete everything
++following this to the end of the makefile
++and put the output after this line.
++If it doesn't find it, the program
++will append the string to the end of the makefile
++and place the output following that.
++For each
++.I sourcefile
++appearing on the command line,
++.B makedepend
++puts lines in the makefile of the form
++.sp
++     sourcefile.o:\0dfile .\|.\|.
++.sp
++Where \fIsourcefile.o\fP is the name from the command
++line with its suffix replaced with ``.o'',
++and \fIdfile\fP is a dependency discovered in a
++.I #include
++directive while parsing
++.I sourcefile
++or one of the files it included.
++.SH EXAMPLE
++Normally,
++.B makedepend
++will be used in a makefile target so that typing ``make depend'' will
++bring the dependencies up to date for the makefile.
++For example,
++.nf
++    SRCS\0=\0file1.c\0file2.c\0.\|.\|.
++    CFLAGS\0=\0\-O\0\-DHACK\0\-I\^.\^.\^/foobar\0\-xyz
++    depend:
++            makedepend\0\-\^\-\0$(CFLAGS)\0\-\^\-\0$(SRCS)
++.fi
++.SH OPTIONS
++The program
++will ignore any option that it does not understand so that you may use
++the same arguments that you would for
++.B cc(1).
++.TP 5
++.B \-D\fIname\fP=\fIdef\fP \fRor\fP \-D\fIname\fP
++Define.
++This places a definition for
++.I name
++in
++.B makedepend's
++symbol table.
++Without 
++.I =def\|
++the symbol becomes defined as ``1''.
++.TP 5
++.B \-I\fIincludedir\fP
++Include directory.
++This option tells
++.B makedepend
++to prepend
++.I includedir
++to its list of directories to search when it encounters
++a
++.I #include
++directive.
++By default,
++.B makedepend
++only searches the standard include directories (usually /usr/include
++and possibly a compiler-dependent directory).
++.TP 5
++.B \-Y\fIincludedir\fP
++Replace all of the standard include directories with the single specified
++include directory; you can omit the
++.I includedir
++to simply prevent searching the standard include directories.
++.TP 5
++.B \-a
++Append the dependencies to the end of the file instead of replacing them. 
++.TP 5
++.B \-f\fImakefile\fP
++Filename.
++This allows you to specify an alternate makefile in which
++.B makedepend
++can place its output.
++Specifying ``\-'' as the file name (i.e., \fB\-f\-\fP) sends the
++output to standard output instead of modifying an existing file.
++.TP 5
++.B \-include \fIfile\fP
++Process file as input, and include all the resulting output
++before processing the regular input file. This has the same
++affect as if the specified file is an include statement that
++appears before the very first line of the regular input file.
++.TP 5
++.B \-o\fIobjsuffix\fP
++Object file suffix.
++Some systems may have object files whose suffix is something other
++than ``.o''.
++This option allows you to specify another suffix, such as
++``.b'' with
++.I \-o.b
++or ``:obj''
++with
++.I \-o:obj
++and so forth.
++.TP 5
++.B \-p\fIobjprefix\fP
++Object file prefix.
++The prefix is prepended to the name of the object file. This is
++usually used to designate a different directory for the object file.
++The default is the empty string.
++.TP 5
++.B \-s\fIstring\fP
++Starting string delimiter.
++This option permits you to specify
++a different string for
++.B makedepend
++to look for in the makefile.
++.TP 5
++.B \-w\fIwidth\fP
++Line width.
++Normally,
++.B makedepend
++will ensure that every output line that it writes will be no wider than
++78 characters for the sake of readability.
++This option enables you to change this width.
++.TP 5
++.B \-v
++Verbose operation.
++This option causes 
++.B makedepend
++to emit the list of files included by each input file.
++.TP 5
++.B \-m
++Warn about multiple inclusion.
++This option causes 
++.B makedepend
++to produce a warning if any input file includes another file more than
++once.  In previous versions of 
++.B makedepend
++this was the default behavior; the default has been changed to better
++match the behavior of the C compiler, which does not consider multiple
++inclusion to be an error.  This option is provided for backward 
++compatibility, and to aid in debugging problems related to multiple
++inclusion.
++.TP 5
++.B "\-\^\- \fIoptions\fP \-\^\-"
++If
++.B makedepend
++encounters a double hyphen (\-\^\-) in the argument list,
++then any unrecognized argument following it
++will be silently ignored; a second double hyphen terminates this
++special treatment.
++In this way,
++.B makedepend
++can be made to safely ignore esoteric compiler arguments that might
++normally be found in a CFLAGS
++.B make
++macro (see the
++.B EXAMPLE
++section above).
++All options that
++.B makedepend
++recognizes and appear between the pair of double hyphens
++are processed normally.
++.SH ALGORITHM
++The approach used in this program enables it to run an order of magnitude
++faster than any other ``dependency generator'' I have ever seen.
++Central to this performance are two assumptions:
++that all files compiled by a single
++makefile will be compiled with roughly the same
++.I \-I
++and
++.I \-D
++options;
++and that most files in a single directory will include largely the
++same files.
++.PP
++Given these assumptions,
++.B makedepend
++expects to be called once for each makefile, with
++all source files that are maintained by the
++makefile appearing on the command line.
++It parses each source and include
++file exactly once, maintaining an internal symbol table
++for each.
++Thus, the first file on the command line will take an amount of time
++proportional to the amount of time that a normal C preprocessor takes.
++But on subsequent files, if it encounters an include file
++that it has already parsed, it does not parse it again.
++.PP
++For example,
++imagine you are compiling two files,
++.I file1.c
++and
++.I file2.c,
++they each include the header file
++.I header.h,
++and the file
++.I header.h
++in turn includes the files
++.I def1.h
++and
++.I def2.h.
++When you run the command
++.sp
++    makedepend\0file1.c\0file2.c
++.sp
++.B makedepend
++will parse
++.I file1.c
++and consequently,
++.I header.h
++and then
++.I def1.h
++and
++.I def2.h.
++It then decides that the dependencies for this file are
++.sp
++    file1.o:\0header.h\0def1.h\0def2.h
++.sp
++But when the program parses
++.I file2.c
++and discovers that it, too, includes
++.I header.h,
++it does not parse the file,
++but simply adds
++.I header.h,
++.I def1.h
++and
++.I def2.h
++to the list of dependencies for
++.I file2.o.
++.SH "SEE ALSO"
++cc(1), make(1)
++.SH BUGS
++.B makedepend
++parses, but does not currently evaluate, the SVR4 #predicate(token-list)
++preprocessor expression; such expressions are simply assumed to be true.
++This may cause the wrong
++.I #include
++directives to be evaluated.
++.PP
++Imagine you are parsing two files,
++say
++.I file1.c
++and
++.I file2.c,
++each includes the file
++.I def.h.
++The list of files that
++.I def.h
++includes might truly be different when
++.I def.h
++is included by
++.I file1.c
++than when it is included by
++.I file2.c.
++But once
++.B makedepend
++arrives at a list of dependencies for a file,
++it is cast in concrete.
++.SH AUTHOR
++Todd Brunhoff, Tektronix, Inc. and MIT Project Athena
+diff -ruN mozilla.orig/security/coreconf/mkdepend/parse.c mozilla/security/coreconf/mkdepend/parse.c
+--- mozilla.orig/security/coreconf/mkdepend/parse.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/parse.c	2009-02-14 00:37:01.000000000 +0000
+@@ -0,0 +1,686 @@
++/* $Xorg: parse.c,v 1.6 2001/02/09 02:03:16 xorgcvs Exp $ */
++/*
++
++Copyright (c) 1993, 1994, 1998 The Open Group
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that
++the above copyright notice appear in all copies and that both that
++copyright notice and this permission notice appear in supporting
++documentation.
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of The Open Group shall not be
++used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from The Open Group.
++
++*/
++/* $XFree86: xc/config/makedepend/parse.c,v 1.12 2002/02/26 05:09:10 tsi Exp $ */
++
++#include "def.h"
++
++extern char	*directives[];
++extern struct inclist	inclist[ MAXFILES ],
++			*inclistnext,
++			maininclist;
++extern char	*includedirs[ ],
++		**includedirsnext;
++
++static int deftype (char *line, struct filepointer *filep,
++		    struct inclist *file_red, struct inclist *file,
++		    int parse_it);
++static int zero_value(char *filename, char *exp, struct filepointer *filep,
++		    struct inclist *file_red);
++static int merge2defines(struct inclist *file1, struct inclist *file2);
++
++static int
++gobble(struct filepointer *filep, struct inclist *file,
++       struct inclist *file_red)
++{
++	char	*line;
++	int	type;
++
++	while ((line = getnextline(filep))) {
++		switch(type = deftype(line, filep, file_red, file, FALSE)) {
++		case IF:
++		case IFFALSE:
++		case IFGUESSFALSE:
++		case IFDEF:
++		case IFNDEF:
++			type = gobble(filep, file, file_red);
++			while ((type == ELIF) || (type == ELIFFALSE) ||
++			       (type == ELIFGUESSFALSE))
++			    type = gobble(filep, file, file_red);
++			if (type == ELSE)
++			        (void)gobble(filep, file, file_red);
++			break;
++		case ELSE:
++		case ENDIF:
++			debug(0,("%s, line %d: #%s\n",
++				file->i_file, filep->f_line,
++				directives[type]));
++			return(type);
++		case DEFINE:
++		case UNDEF:
++		case INCLUDE:
++		case INCLUDEDOT:
++		case PRAGMA:
++		case ERROR:
++		case IDENT:
++		case SCCS:
++		case EJECT:
++		case WARNING:
++		case INCLUDENEXT:
++		case INCLUDENEXTDOT:
++			break;
++		case ELIF:
++		case ELIFFALSE:
++		case ELIFGUESSFALSE:
++			return(type);
++		case -1:
++			warning("%s", file_red->i_file);
++			if (file_red != file)
++				warning1(" (reading %s)", file->i_file);
++			warning1(", line %d: unknown directive == \"%s\"\n",
++				filep->f_line, line);
++			break;
++		}
++	}
++	return(-1);
++}
++
++/*
++ * Decide what type of # directive this line is.
++ */
++static int 
++deftype (char *line, struct filepointer *filep, 
++	     struct inclist *file_red, struct inclist *file, int parse_it)
++{
++	register char	*p;
++	char	*directive, savechar, *q;
++	register int	ret;
++
++	/*
++	 * Parse the directive...
++	 */
++	directive=line+1;
++	while (*directive == ' ' || *directive == '\t')
++		directive++;
++
++	p = directive;
++	while ((*p == '_') || (*p >= 'a' && *p <= 'z'))
++		p++;
++	savechar = *p;
++	*p = '\0';
++	ret = match(directive, directives);
++	*p = savechar;
++
++	/* If we don't recognize this compiler directive or we happen to just
++	 * be gobbling up text while waiting for an #endif or #elif or #else
++	 * in the case of an #elif we must check the zero_value and return an
++	 * ELIF or an ELIFFALSE.
++	 */
++
++	if (ret == ELIF && !parse_it)
++	{
++	    while (*p == ' ' || *p == '\t')
++		p++;
++	    /*
++	     * parse an expression.
++	     */
++	    debug(0,("%s, line %d: #elif %s ",
++		   file->i_file, filep->f_line, p));
++	    ret = zero_value(file->i_file, p, filep, file_red);
++	    if (ret != IF)
++	    {
++		debug(0,("false...\n"));
++		if (ret == IFFALSE)
++		    return(ELIFFALSE);
++		else
++		    return(ELIFGUESSFALSE);
++	    }
++	    else
++	    {
++		debug(0,("true...\n"));
++		return(ELIF);
++	    }
++	}
++
++	if (ret < 0 || ! parse_it)
++		return(ret);
++
++	/*
++	 * now decide how to parse the directive, and do it.
++	 */
++	while (*p == ' ' || *p == '\t')
++		p++;
++	q = p + strlen(p);
++	do {
++		q--;
++	} while (*q == ' ' || *q == '\t');
++	q[1] = '\0';
++	switch (ret) {
++	case IF:
++		/*
++		 * parse an expression.
++		 */
++		ret = zero_value(file->i_file, p, filep, file_red);
++		debug(0,("%s, line %d: %s #if %s\n",
++			 file->i_file, filep->f_line, ret?"false":"true", p));
++		break;
++	case IFDEF:
++	case IFNDEF:
++		debug(0,("%s, line %d: #%s %s\n",
++			file->i_file, filep->f_line, directives[ret], p));
++	case UNDEF:
++		/*
++		 * separate the name of a single symbol.
++		 */
++		while (isalnum(*p) || *p == '_')
++			*line++ = *p++;
++		*line = '\0';
++		break;
++	case INCLUDE:
++	case INCLUDENEXT:
++		debug(2,("%s, line %d: #include%s %s\n",
++			file->i_file, filep->f_line,
++			(ret == INCLUDE) ? "" : "_next", p));
++
++		/* Support ANSI macro substitution */
++		while (1) {
++			struct symtab **sym;
++
++			if (!*p || *p == '"' || *p == '<')
++				break;
++
++		    	sym = isdefined(p, file_red, NULL);
++			if (!sym)
++				break;
++
++			p = (*sym)->s_value;
++			debug(3,("%s : #includes SYMBOL %s = %s\n",
++			       file->i_incstring,
++			       (*sym) -> s_name,
++			       (*sym) -> s_value));
++			/* mark file as having included a 'soft include' */
++			file->i_flags |= INCLUDED_SYM; 
++		}
++
++		/*
++		 * Separate the name of the include file.
++		 */
++		while (*p && *p != '"' && *p != '<')
++			p++;
++		if (! *p)
++			return(-2);
++		if (*p++ == '"') {
++			if (ret == INCLUDE)
++				ret = INCLUDEDOT;
++			else
++				ret = INCLUDENEXTDOT;
++			while (*p && *p != '"')
++				*line++ = *p++;
++		} else
++			while (*p && *p != '>')
++				*line++ = *p++;
++		*line = '\0';
++		break;
++	case DEFINE:
++		/*
++		 * copy the definition back to the beginning of the line.
++		 */
++		strcpy (line, p);
++		break;
++	case ELSE:
++	case ENDIF:
++	case ELIF:
++	case PRAGMA:
++	case ERROR:
++	case IDENT:
++	case SCCS:
++	case EJECT:
++	case WARNING:
++		debug(0,("%s, line %d: #%s\n",
++			file->i_file, filep->f_line, directives[ret]));
++		/*
++		 * nothing to do.
++		 */
++		break;
++	}
++	return(ret);
++}
++
++struct symtab **
++fdefined(char *symbol, struct inclist *file, struct inclist **srcfile)
++{
++	struct inclist	**ip;
++	struct symtab	**val;
++	int	i;
++	static int	recurse_lvl = 0;
++
++	if (file->i_flags & DEFCHECKED)
++		return(NULL);
++	debug(2,("Looking for %s in %s\n", symbol, file->i_file));
++	file->i_flags |= DEFCHECKED;
++	if ((val = slookup(symbol, file)))
++		debug(1,("%s defined in %s as %s\n",
++			 symbol, file->i_file, (*val)->s_value));
++	if (val == NULL && file->i_list)
++	{
++		for (ip = file->i_list, i=0; i < file->i_listlen; i++, ip++)
++			if (file->i_merged[i]==FALSE) {
++				val = fdefined(symbol, *ip, srcfile);
++				file->i_merged[i]=merge2defines(file,*ip);
++				if (val!=NULL) break;
++			}
++	}
++	else if (val != NULL && srcfile != NULL) *srcfile = file;
++	recurse_lvl--;
++	file->i_flags &= ~DEFCHECKED;
++
++	return(val);
++}
++
++struct symtab **
++isdefined(char *symbol, struct inclist *file, struct inclist **srcfile)
++{
++	struct symtab	**val;
++
++	if ((val = slookup(symbol, &maininclist))) {
++		debug(1,("%s defined on command line\n", symbol));
++		if (srcfile != NULL) *srcfile = &maininclist;
++		return(val);
++	}
++	if ((val = fdefined(symbol, file, srcfile)))
++		return(val);
++	debug(1,("%s not defined in %s\n", symbol, file->i_file));
++	return(NULL);
++}
++
++/*
++ * Return type based on if the #if expression evaluates to 0
++ */
++static int
++zero_value(char *filename,
++	   char *exp,
++	   struct filepointer *filep,
++	   struct inclist *file_red)
++{
++	if (cppsetup(filename, exp, filep, file_red))
++	    return(IFFALSE);
++	else
++	    return(IF);
++}
++
++void
++define2(char *name, char *val, struct inclist *file)
++{
++    int first, last, below;
++    register struct symtab **sp = NULL, **dest;
++    struct symtab *stab;
++
++    /* Make space if it's needed */
++    if (file->i_defs == NULL)
++    {
++	file->i_defs = (struct symtab **)
++			malloc(sizeof (struct symtab*) * SYMTABINC);
++	file->i_ndefs = 0;
++    }
++    else if (!(file->i_ndefs % SYMTABINC))
++	file->i_defs = (struct symtab **)
++			realloc(file->i_defs,
++			   sizeof(struct symtab*)*(file->i_ndefs+SYMTABINC));
++
++    if (file->i_defs == NULL)
++	fatalerr("malloc()/realloc() failure in insert_defn()\n");
++
++    below = first = 0;
++    last = file->i_ndefs - 1;
++    while (last >= first)
++    {
++	/* Fast inline binary search */
++	register char *s1;
++	register char *s2;
++	register int middle = (first + last) / 2;
++
++	/* Fast inline strchr() */
++	s1 = name;
++	s2 = file->i_defs[middle]->s_name;
++	while (*s1++ == *s2++)
++	    if (s2[-1] == '\0') break;
++
++	/* If exact match, set sp and break */
++	if (*--s1 == *--s2) 
++	{
++	    sp = file->i_defs + middle;
++	    break;
++	}
++
++	/* If name > i_defs[middle] ... */
++	if (*s1 > *s2) 
++	{
++	    below = first;
++	    first = middle + 1;
++	}
++	/* else ... */
++	else
++	{
++	    below = last = middle - 1;
++	}
++    }
++
++    /* Search is done.  If we found an exact match to the symbol name,
++       just replace its s_value */
++    if (sp != NULL)
++    {
++	debug(1,("redefining %s from %s to %s in file %s\n",
++		name, (*sp)->s_value, val, file->i_file));
++	free((*sp)->s_value);
++	(*sp)->s_value = copy(val);
++	return;
++    }
++
++    sp = file->i_defs + file->i_ndefs++;
++    dest = file->i_defs + below + 1;
++    while (sp > dest)
++    {
++	*sp = sp[-1];
++	sp--;
++    }
++    stab = (struct symtab *) malloc(sizeof (struct symtab));
++    if (stab == NULL)
++	fatalerr("malloc()/realloc() failure in insert_defn()\n");
++
++    debug(1,("defining %s to %s in file %s\n", name, val, file->i_file));
++    stab->s_name = copy(name);
++    stab->s_value = copy(val);
++    *sp = stab;
++}
++
++void
++define(char *def, struct inclist *file)
++{
++    char *val;
++
++    /* Separate symbol name and its value */
++    val = def;
++    while (isalnum(*val) || *val == '_')
++	val++;
++    if (*val)
++	*val++ = '\0';
++    while (*val == ' ' || *val == '\t')
++	val++;
++
++    if (!*val)
++	val = "1";
++    define2(def, val, file);
++}
++
++struct symtab **
++slookup(char *symbol, struct inclist *file)
++{
++	register int first = 0;
++	register int last = file->i_ndefs - 1;
++
++	if (file) while (last >= first)
++	{
++	    /* Fast inline binary search */
++	    register char *s1;
++	    register char *s2;
++	    register int middle = (first + last) / 2;
++
++	    /* Fast inline strchr() */
++	    s1 = symbol;
++	    s2 = file->i_defs[middle]->s_name;
++	    while (*s1++ == *s2++)
++	        if (s2[-1] == '\0') break;
++
++	    /* If exact match, we're done */
++	    if (*--s1 == *--s2) 
++	    {
++	        return file->i_defs + middle;
++	    }
++
++	    /* If symbol > i_defs[middle] ... */
++	    if (*s1 > *s2) 
++	    {
++	        first = middle + 1;
++	    }
++	    /* else ... */
++	    else
++	    {
++	        last = middle - 1;
++	    }
++	}
++	return(NULL);
++}
++
++static int 
++merge2defines(struct inclist *file1, struct inclist *file2)
++{
++	int i;
++
++	if ((file1==NULL) || (file2==NULL) ||
++	    !(file2->i_flags & FINISHED))
++		return 0;
++
++	for (i=0; i < file2->i_listlen; i++)
++		if (file2->i_merged[i]==FALSE)
++			return 0;
++
++	{
++		int first1 = 0;
++		int last1 = file1->i_ndefs - 1;
++
++		int first2 = 0;
++		int last2 = file2->i_ndefs - 1;
++
++                int first=0;
++                struct symtab** i_defs = NULL;
++		int deflen=file1->i_ndefs+file2->i_ndefs;
++
++		debug(2,("merging %s into %s\n",
++			file2->i_file, file1->i_file));
++
++                if (deflen>0)
++                { 
++                	/* make sure deflen % SYMTABINC == 0 is still true */
++                	deflen += (SYMTABINC - deflen % SYMTABINC) % SYMTABINC;
++                	i_defs=(struct symtab**)
++			    malloc(deflen*sizeof(struct symtab*));
++                	if (i_defs==NULL) return 0;
++        	}
++
++        	while ((last1 >= first1) && (last2 >= first2))
++        	{
++	    		char *s1=file1->i_defs[first1]->s_name;
++	    		char *s2=file2->i_defs[first2]->s_name;
++
++     			if (strcmp(s1,s2) < 0)
++                        	i_defs[first++]=file1->i_defs[first1++];
++     			else if (strcmp(s1,s2) > 0)
++                        	i_defs[first++]=file2->i_defs[first2++];
++                        else /* equal */
++                        {
++                        	i_defs[first++]=file2->i_defs[first2++];
++                                first1++;
++                        }
++        	}
++        	while (last1 >= first1)
++        	{
++                        i_defs[first++]=file1->i_defs[first1++];
++        	}
++        	while (last2 >= first2)
++        	{
++                        i_defs[first++]=file2->i_defs[first2++];
++        	}
++
++                if (file1->i_defs) free(file1->i_defs);
++                file1->i_defs=i_defs;
++                file1->i_ndefs=first;
++                
++		return 1;
++  	}
++}
++
++void
++undefine(char *symbol, struct inclist *file)
++{
++	register struct symtab **ptr;
++	struct inclist *srcfile;
++	while ((ptr = isdefined(symbol, file, &srcfile)) != NULL)
++	{
++	    srcfile->i_ndefs--;
++	    for (; ptr < srcfile->i_defs + srcfile->i_ndefs; ptr++)
++		*ptr = ptr[1];
++	}
++}
++
++int
++find_includes(struct filepointer *filep, struct inclist *file, 
++	      struct inclist *file_red, int recursion, boolean failOK)
++{
++	struct inclist	*inclistp;
++	char		**includedirsp;
++	register char	*line;
++	register int	type;
++	boolean recfailOK;
++
++	while ((line = getnextline(filep))) {
++		switch(type = deftype(line, filep, file_red, file, TRUE)) {
++		case IF:
++		doif:
++			type = find_includes(filep, file,
++				file_red, recursion+1, failOK);
++			while ((type == ELIF) || (type == ELIFFALSE) ||
++			       (type == ELIFGUESSFALSE))
++				type = gobble(filep, file, file_red);
++			if (type == ELSE)
++				gobble(filep, file, file_red);
++			break;
++		case IFFALSE:
++		case IFGUESSFALSE:
++		    doiffalse:
++			if (type == IFGUESSFALSE || type == ELIFGUESSFALSE)
++			    recfailOK = TRUE;
++			else
++			    recfailOK = failOK;
++			type = gobble(filep, file, file_red);
++			if (type == ELSE)
++			    find_includes(filep, file,
++					  file_red, recursion+1, recfailOK);
++			else
++			if (type == ELIF)
++			    goto doif;
++			else
++			if ((type == ELIFFALSE) || (type == ELIFGUESSFALSE))
++			    goto doiffalse;
++			break;
++		case IFDEF:
++		case IFNDEF:
++			if ((type == IFDEF && isdefined(line, file_red, NULL))
++			 || (type == IFNDEF && !isdefined(line, file_red, NULL))) {
++				debug(1,(type == IFNDEF ?
++				    "line %d: %s !def'd in %s via %s%s\n" : "",
++				    filep->f_line, line,
++				    file->i_file, file_red->i_file, ": doit"));
++				type = find_includes(filep, file,
++					file_red, recursion+1, failOK);
++				while (type == ELIF || type == ELIFFALSE || type == ELIFGUESSFALSE)
++					type = gobble(filep, file, file_red);
++				if (type == ELSE)
++					gobble(filep, file, file_red);
++			}
++			else {
++				debug(1,(type == IFDEF ?
++				    "line %d: %s !def'd in %s via %s%s\n" : "",
++				    filep->f_line, line,
++				    file->i_file, file_red->i_file, ": gobble"));
++				type = gobble(filep, file, file_red);
++				if (type == ELSE)
++					find_includes(filep, file,
++						file_red, recursion+1, failOK);
++				else if (type == ELIF)
++				    	goto doif;
++				else if (type == ELIFFALSE || type == ELIFGUESSFALSE)
++				    	goto doiffalse;
++			}
++			break;
++		case ELSE:
++		case ELIFFALSE:
++		case ELIFGUESSFALSE:
++		case ELIF:
++			if (!recursion)
++				gobble(filep, file, file_red);
++		case ENDIF:
++			if (recursion)
++				return(type);
++		case DEFINE:
++			define(line, file);
++			break;
++		case UNDEF:
++			if (!*line) {
++			    warning("%s", file_red->i_file);
++			    if (file_red != file)
++				warning1(" (reading %s)", file->i_file);
++			    warning1(", line %d: incomplete undef == \"%s\"\n",
++				filep->f_line, line);
++			    break;
++			}
++			undefine(line, file_red);
++			break;
++		case INCLUDE:
++		case INCLUDEDOT:
++		case INCLUDENEXT:
++		case INCLUDENEXTDOT:
++			inclistp = inclistnext;
++			includedirsp = includedirsnext;
++			debug(2,("%s, reading %s, includes %s\n",
++				file_red->i_file, file->i_file, line));
++			add_include(filep, file, file_red, line, type, failOK);
++			inclistnext = inclistp;
++			includedirsnext = includedirsp;
++			break;
++		case ERROR:
++		case WARNING:
++		    	warning("%s", file_red->i_file);
++			if (file_red != file)
++				warning1(" (reading %s)", file->i_file);
++			warning1(", line %d: %s\n",
++				 filep->f_line, line);
++		    	break;
++		    
++		case PRAGMA:
++		case IDENT:
++		case SCCS:
++		case EJECT:
++			break;
++		case -1:
++			warning("%s", file_red->i_file);
++			if (file_red != file)
++			    warning1(" (reading %s)", file->i_file);
++			warning1(", line %d: unknown directive == \"%s\"\n",
++				 filep->f_line, line);
++			break;
++		case -2:
++			warning("%s", file_red->i_file);
++			if (file_red != file)
++			    warning1(" (reading %s)", file->i_file);
++			warning1(", line %d: incomplete include == \"%s\"\n",
++				 filep->f_line, line);
++			break;
++		}
++	}
++	file->i_flags |= FINISHED;
++	debug(2,("finished with %s\n", file->i_file));
++	return(-1);
++}
+diff -ruN mozilla.orig/security/coreconf/mkdepend/pr.c mozilla/security/coreconf/mkdepend/pr.c
+--- mozilla.orig/security/coreconf/mkdepend/pr.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/mkdepend/pr.c	2009-02-14 00:37:01.000000000 +0000
+@@ -0,0 +1,124 @@
++/* $Xorg: pr.c,v 1.4 2001/02/09 02:03:16 xorgcvs Exp $ */
++/*
++
++Copyright (c) 1993, 1994, 1998 The Open Group
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that
++the above copyright notice appear in all copies and that both that
++copyright notice and this permission notice appear in supporting
++documentation.
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of The Open Group shall not be
++used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from The Open Group.
++
++*/
++/* $XFree86: xc/config/makedepend/pr.c,v 1.5 2001/12/14 19:53:21 dawes Exp $ */
++
++#include "def.h"
++
++extern struct	inclist	inclist[ MAXFILES ],
++			*inclistp;
++extern char	*objprefix;
++extern char	*objsuffix;
++extern int	width;
++extern boolean	printed;
++extern boolean	verbose;
++extern boolean	show_where_not;
++
++void
++add_include(struct filepointer *filep, struct inclist *file, 
++	    struct inclist *file_red, char *include, int type,
++	    boolean failOK)
++{
++	register struct inclist	*newfile;
++	register struct filepointer	*content;
++
++	/*
++	 * First decide what the pathname of this include file really is.
++	 */
++	newfile = inc_path(file->i_file, include, type);
++	if (newfile == NULL) {
++		if (failOK)
++		    return;
++		if (file != file_red)
++			warning("%s (reading %s, line %d): ",
++				file_red->i_file, file->i_file, filep->f_line);
++		else
++			warning("%s, line %d: ", file->i_file, filep->f_line);
++		warning1("cannot find include file \"%s\"\n", include);
++		show_where_not = TRUE;
++		newfile = inc_path(file->i_file, include, type);
++		show_where_not = FALSE;
++	}
++
++	if (newfile) {
++		included_by(file, newfile);
++		if (!(newfile->i_flags & SEARCHED)) {
++			newfile->i_flags |= SEARCHED;
++			content = getfile(newfile->i_file);
++			find_includes(content, newfile, file_red, 0, failOK);
++			freefile(content);
++		}
++	}
++}
++
++static void
++pr(struct inclist *ip, char *file, char *base)
++{
++	static char	*lastfile;
++	static int	current_len;
++	register int	len, i;
++	char	buf[ BUFSIZ ];
++
++	printed = TRUE;
++	len = strlen(ip->i_file)+1;
++	if (current_len + len > width || file != lastfile) {
++		lastfile = file;
++		sprintf(buf, "\n%s%s%s: %s", objprefix, base, objsuffix,
++			ip->i_file);
++		len = current_len = strlen(buf);
++	}
++	else {
++		buf[0] = ' ';
++		strcpy(buf+1, ip->i_file);
++		current_len += len;
++	}
++	fwrite(buf, len, 1, stdout);
++
++	/*
++	 * If verbose is set, then print out what this file includes.
++	 */
++	if (! verbose || ip->i_list == NULL || ip->i_flags & NOTIFIED)
++		return;
++	ip->i_flags |= NOTIFIED;
++	lastfile = NULL;
++	printf("\n# %s includes:", ip->i_file);
++	for (i=0; i<ip->i_listlen; i++)
++		printf("\n#\t%s", ip->i_list[ i ]->i_incstring);
++}
++
++void
++recursive_pr_include(struct inclist *head, char *file, char *base)
++{
++	int	i;
++
++	if (head->i_flags & MARKED)
++		return;
++	head->i_flags |= MARKED;
++	if (head->i_file != file)
++		pr(head, file, base);
++	for (i=0; i<head->i_listlen; i++)
++		recursive_pr_include(head->i_list[ i ], file, base);
++}
+diff -ruN mozilla.orig/security/coreconf/module.mk mozilla/security/coreconf/module.mk
+--- mozilla.orig/security/coreconf/module.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/module.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,69 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# 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
++
++MK_MODULE = included
+diff -ruN mozilla.orig/security/coreconf/nsinstall/CVS/Entries mozilla/security/coreconf/nsinstall/CVS/Entries
+--- mozilla.orig/security/coreconf/nsinstall/CVS/Entries	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/CVS/Entries	2011-04-20 22:18:13.000000000 +0100
+@@ -0,0 +1,6 @@
++/Makefile/1.10/Wed Oct  5 22:25:37 2005//
++/nsinstall.c/1.13/Fri Jun  5 02:15:15 2009//
++/pathsub.c/1.5/Sun Apr 25 15:02:18 2004//
++/pathsub.h/1.2/Sun Apr 25 15:02:18 2004//
++/sunos4.h/1.2/Wed Feb  2 22:27:59 2005//
++D
+diff -ruN mozilla.orig/security/coreconf/nsinstall/CVS/Repository mozilla/security/coreconf/nsinstall/CVS/Repository
+--- mozilla.orig/security/coreconf/nsinstall/CVS/Repository	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/CVS/Repository	2011-04-20 22:18:12.000000000 +0100
+@@ -0,0 +1 @@
++mozilla/security/coreconf/nsinstall
+diff -ruN mozilla.orig/security/coreconf/nsinstall/CVS/Root mozilla/security/coreconf/nsinstall/CVS/Root
+--- mozilla.orig/security/coreconf/nsinstall/CVS/Root	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/CVS/Root	2011-04-20 22:18:12.000000000 +0100
+@@ -0,0 +1 @@
++:pserver:[email protected]:/cvsroot
+diff -ruN mozilla.orig/security/coreconf/nsinstall/Makefile mozilla/security/coreconf/nsinstall/Makefile
+--- mozilla.orig/security/coreconf/nsinstall/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/Makefile	2005-10-05 23:25:37.000000000 +0100
+@@ -0,0 +1,74 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++DEPTH		= ../..
++CORE_DEPTH	= ../..
++
++MODULE		= coreconf
++
++CSRCS		= nsinstall.c pathsub.c
++
++PROGRAM		= nsinstall
++
++# Indicate that this directory builds build tools.
++INTERNAL_TOOLS  = 1
++
++
++include $(DEPTH)/coreconf/config.mk
++
++ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
++PROGRAM		=
++else
++TARGETS		= $(PROGRAM)
++INSTALL		= true
++endif
++
++ifdef NATIVE_CC
++CC=$(NATIVE_CC)
++endif
++
++ifdef NATIVE_FLAGS
++OS_CFLAGS=$(NATIVE_FLAGS)
++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
++
+diff -ruN mozilla.orig/security/coreconf/nsinstall/nsinstall.c mozilla/security/coreconf/nsinstall/nsinstall.c
+--- mozilla.orig/security/coreconf/nsinstall/nsinstall.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/nsinstall.c	2009-06-05 03:15:15.000000000 +0100
+@@ -0,0 +1,439 @@
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * 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 the Initial Developer are Copyright (C) 1994-2000
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++/*
++** 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) || defined(NTO) || defined(DARWIN) || defined(BEOS) || defined(__riscos__)
++#undef HAVE_LCHOWN
++#endif
++
++#define HAVE_FCHMOD
++
++#if defined(BEOS)
++#undef HAVE_FCHMOD
++#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
++
++
++#ifdef GETCWD_CANT_MALLOC
++/*
++ * this should probably go into a utility library in case other applications
++ * need it.
++ */
++static char *
++getcwd_do_malloc(char *path, int len) {
++
++    if (!path) {
++	path = malloc(PATH_MAX +1);
++	if (!path) return NULL;
++    }
++    return getcwd(path, PATH_MAX);
++}
++#define GETCWD	getcwd_do_malloc
++#else
++#define GETCWD	getcwd
++#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, (int)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++;
++    for (cp = strrchr(path, '/'); cp && cp != path && *(cp - 1) == '/'; cp--);
++    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);
++                    fail("symlink was attempted in working directory %s "
++                         "from %s to %s.\n", cwd, name, 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);
++	    }
++#ifdef HAVE_FCHMOD
++	    if (fchmod(tofd, mode) < 0)
++#else
++	    if (chmod(toname, mode) < 0)
++#endif
++		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;
++}
++
+diff -ruN mozilla.orig/security/coreconf/nsinstall/pathsub.c mozilla/security/coreconf/nsinstall/pathsub.c
+--- mozilla.orig/security/coreconf/nsinstall/pathsub.c	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/pathsub.c	2004-04-25 16:02:18.000000000 +0100
+@@ -0,0 +1,306 @@
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * 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 the Initial Developer are Copyright (C) 1994-2000
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++/*
++** Pathname subroutines.
++*/
++#include <assert.h>
++#if defined(FREEBSD) || defined(BSDI) || defined(DARWIN)
++#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);
++}
+diff -ruN mozilla.orig/security/coreconf/nsinstall/pathsub.h mozilla/security/coreconf/nsinstall/pathsub.h
+--- mozilla.orig/security/coreconf/nsinstall/pathsub.h	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/pathsub.h	2004-04-25 16:02:18.000000000 +0100
+@@ -0,0 +1,80 @@
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * 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 the Initial Developer are Copyright (C) 1994-2000
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++#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___ */
+diff -ruN mozilla.orig/security/coreconf/nsinstall/sunos4.h mozilla/security/coreconf/nsinstall/sunos4.h
+--- mozilla.orig/security/coreconf/nsinstall/sunos4.h	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/nsinstall/sunos4.h	2005-02-02 22:27:59.000000000 +0000
+@@ -0,0 +1,166 @@
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * 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 the Initial Developer are Copyright (C) 1994-2000
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++#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___ */
+diff -ruN mozilla.orig/security/coreconf/outofdate.pl mozilla/security/coreconf/outofdate.pl
+--- mozilla.orig/security/coreconf/outofdate.pl	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/outofdate.pl	2010-04-26 00:37:40.000000000 +0100
+@@ -0,0 +1,71 @@
++#!/usr/local/bin/perl
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#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-existent 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";
+diff -ruN mozilla.orig/security/coreconf/prefix.mk mozilla/security/coreconf/prefix.mk
+--- mozilla.orig/security/coreconf/prefix.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/prefix.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,76 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Master "Core Components" for computing program prefixes             #
++#######################################################################
++
++#
++# Object prefixes
++#
++
++ifndef OBJ_PREFIX
++    OBJ_PREFIX = 
++endif
++
++#
++# Library suffixes
++#
++
++ifndef LIB_PREFIX
++    LIB_PREFIX = lib
++endif
++
++
++ifndef DLL_PREFIX
++    DLL_PREFIX = lib
++endif
++
++
++ifndef IMPORT_LIB_PREFIX
++    IMPORT_LIB_PREFIX = 
++endif
++
++#
++# Program prefixes
++#
++
++ifndef PROG_PREFIX
++    PROG_PREFIX = 
++endif
++
++MK_PREFIX = included
+diff -ruN mozilla.orig/security/coreconf/release.pl mozilla/security/coreconf/release.pl
+--- mozilla.orig/security/coreconf/release.pl	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/release.pl	2005-09-16 01:33:23.000000000 +0100
+@@ -0,0 +1,144 @@
++#! /usr/local/bin/perl
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++
++require('coreconf.pl');
++
++#######-- read in variables on command line into %var
++
++$use_jar = 1;
++$ZIP     = "$ENV{JAVA_HOME}/bin/jar";
++
++if ( $ENV{JAVA_HOME} eq "" ) {
++    $ZIP      = "zip";
++    $use_jar  = 0;
++}
++
++
++&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);
++
++    if ( $use_jar ) {
++        $zipoptions = "-cvf";
++    } else {
++        $zipoptions = "-T -r";
++        if ($jaropts =~ /a/) {
++            if ($var{OS_ARCH} eq 'WINNT') {
++                $zipoptions .= ' -ll';
++            }
++        }
++    }
++
++# 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 $jarfile $filelist\n";
++	system("$ZIP $zipoptions $jarfile $filelist");
++	rmdir("META-INF");
++	    for $i (1 .. $dirdepth) {
++	    chdir("..");
++	    print STDERR "chdir ..\n";
++	}
++    }
++    else {
++        print STDERR "Directory $jardir doesn't exist\n";
++    }
++
++}
++
+diff -ruN mozilla.orig/security/coreconf/rules.mk mozilla/security/coreconf/rules.mk
+--- mozilla.orig/security/coreconf/rules.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/rules.mk	2010-04-26 00:37:40.000000000 +0100
+@@ -0,0 +1,994 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++###                                                                 ###
++###              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 
++
++ifeq ($(AUTOCLEAN),1)
++autobuild:: clean export private_export libs program install
++else
++autobuild:: export private_export libs program install
++endif
++
++platform::
++	@echo $(OBJDIR_NAME)
++
++ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++USE_NT_C_SYNTAX=1
++endif
++
++#
++# 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)|"
++# On Mac OS X ranlib needs to be rerun after static libs are moved.
++ifeq ($(OS_TARGET),Darwin)
++	find $(SOURCE_MD_DIR)/lib -name "*.a" -exec $(RANLIB) {} \;
++endif
++
++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)
++ifdef MOZ_DEBUG_SYMBOLS
++ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++	$(INSTALL) -m 644 $(SHARED_LIBRARY:$(DLL_SUFFIX)=pdb) $(SOURCE_LIB_DIR)
++endif
++endif
++endif
++ifdef IMPORT_LIBRARY
++	$(INSTALL) -m 775 $(IMPORT_LIBRARY) $(SOURCE_LIB_DIR)
++endif
++ifdef PROGRAM
++	$(INSTALL) -m 775 $(PROGRAM) $(SOURCE_BIN_DIR)
++ifdef MOZ_DEBUG_SYMBOLS
++ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++	$(INSTALL) -m 644 $(PROGRAM:$(PROG_SUFFIX)=.pdb) $(SOURCE_BIN_DIR)
++endif
++endif
++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)
++
++#######################################################################
++# 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
++
++release_policy::
++	+$(LOOP_OVER_DIRS)
++
++ifndef NO_MD_RELEASE
++    ifdef LIBRARY
++        MD_LIB_RELEASE_FILES +=  $(LIBRARY)
++    endif
++    ifdef SHARED_LIBRARY
++        MD_LIB_RELEASE_FILES +=  $(SHARED_LIBRARY)
++    endif
++    ifdef IMPORT_LIBRARY
++        MD_LIB_RELEASE_FILES +=  $(IMPORT_LIBRARY)
++    endif
++    ifdef PROGRAM
++        MD_BIN_RELEASE_FILES +=  $(PROGRAM)
++    endif
++    ifdef PROGRAMS
++        MD_BIN_RELEASE_FILES +=  $(PROGRAMS)
++    endif
++endif
++
++release_md::
++ifneq ($(MD_LIB_RELEASE_FILES),)
++	$(INSTALL) -m 444 $(MD_LIB_RELEASE_FILES) $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)
++endif
++ifneq ($(MD_BIN_RELEASE_FILES),)
++	$(INSTALL) -m 555 $(MD_BIN_RELEASE_FILES) $(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 (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++	$(MKPROG) $(subst /,\\,$(OBJS)) -Fe$@ -link $(LDFLAGS) $(subst /,\\,$(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)) $(EXTRA_EXE_LD_FLAGS)
++ifdef MT
++	if test -f [email protected]; then \
++		$(MT) -NOLOGO -MANIFEST [email protected] -OUTPUTRESOURCE:$@\;1; \
++		rm -f [email protected]; \
++	fi
++endif	# MSVC with manifest tool
++else
++	$(MKPROG) -o $@ $(CFLAGS) $(OBJS) $(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
++endif
++
++get_objs:
++	@echo $(OBJS)
++
++$(LIBRARY): $(OBJS)
++	@$(MAKE_OBJDIR)
++	rm -f $@
++ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++	$(AR) $(subst /,\\,$(OBJS))
++else
++	$(AR) $(OBJS)
++endif
++	$(RANLIB) $@
++
++
++ifeq ($(OS_TARGET),OS2)
++$(IMPORT_LIBRARY): $(MAPFILE)
++	rm -f $@
++	$(IMPLIB) $@ $<
++	$(RANLIB) $@
++endif
++
++ifdef SHARED_LIBRARY_LIBS
++ifdef BUILD_TREE
++SUB_SHLOBJS = $(foreach dir,$(SHARED_LIBRARY_DIRS),$(shell $(MAKE) -C $(dir) --no-print-directory get_objs))
++else
++SUB_SHLOBJS = $(foreach dir,$(SHARED_LIBRARY_DIRS),$(addprefix $(dir)/,$(shell $(MAKE) -C $(dir) --no-print-directory get_objs)))
++endif
++endif
++
++$(SHARED_LIBRARY): $(OBJS) $(RES) $(MAPFILE) $(SUB_SHLOBJS)
++	@$(MAKE_OBJDIR)
++	rm -f $@
++ifeq ($(OS_TARGET)$(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 (,$(filter-out WIN%,$(OS_TARGET)))
++ifdef NS_USE_GCC
++	$(LINK_DLL) $(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) $(RES)
++else
++	$(LINK_DLL) -MAP $(DLLBASE) $(subst /,\\,$(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) $(RES))
++ifdef MT
++	if test -f [email protected]; then \
++		$(MT) -NOLOGO -MANIFEST [email protected] -OUTPUTRESOURCE:$@\;2; \
++		rm -f [email protected]; \
++	fi
++endif	# MSVC with manifest tool
++endif
++else
++	$(MKSHLIB) -o $@ $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
++	chmod +x $@
++ifeq ($(OS_TARGET),Darwin)
++ifdef MAPFILE
++	nmedit -s $(MAPFILE) $@
++endif
++endif
++endif
++endif
++
++ifeq (,$(filter-out WIN%,$(OS_TARGET)))
++$(RES): $(RESNAME)
++	@$(MAKE_OBJDIR)
++# The resource compiler does not understand the -U option.
++ifdef NS_USE_GCC
++	$(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $<
++else
++	$(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES) -Fo$@ $<
++endif
++	@echo $(RES) finished
++endif
++
++$(MAPFILE): $(MAPFILE_SOURCE)
++	@$(MAKE_OBJDIR)
++	$(PROCESS_MAP_FILE)
++
++
++$(OBJDIR)/$(PROG_PREFIX)%$(PROG_SUFFIX): $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX)
++	@$(MAKE_OBJDIR)
++ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++	$(MKPROG) $< -Fe$@ -link \
++	$(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(EXTRA_EXE_LD_FLAGS)
++ifdef MT
++	if test -f [email protected]; then \
++		$(MT) -NOLOGO -MANIFEST [email protected] -OUTPUTRESOURCE:$@\;1; \
++		rm -f [email protected]; \
++	fi
++endif	# MSVC with manifest tool
++else
++	$(MKPROG) -o $@ $(CFLAGS) $< \
++	$(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
++endif
++
++WCCFLAGS1 := $(subst /,\\,$(CFLAGS))
++WCCFLAGS2 := $(subst -I,-i=,$(WCCFLAGS1))
++WCCFLAGS3 := $(subst -D,-d,$(WCCFLAGS2))
++
++# Translate source filenames to absolute paths. This is required for
++# debuggers under Windows & OS/2 to find source files automatically
++
++ifeq (,$(filter-out OS2 AIX,$(OS_TARGET)))
++# OS/2 and AIX
++NEED_ABSOLUTE_PATH := 1
++PWD := $(shell pwd)
++
++else
++# Windows
++ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++NEED_ABSOLUTE_PATH := 1
++PWD := $(shell pwd)
++ifeq (,$(findstring ;,$(PATH)))
++ifndef USE_MSYS
++PWD := $(subst \,/,$(shell cygpath -w $(PWD)))
++endif
++endif
++
++else
++# everything else
++PWD := $(shell pwd)
++endif
++endif
++
++# The quotes allow absolute paths to contain spaces.
++core_abspath = "$(if $(findstring :,$(1)),$(1),$(if $(filter /%,$(1)),$(1),$(PWD)/$(1)))"
++
++$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c
++	@$(MAKE_OBJDIR)
++ifdef USE_NT_C_SYNTAX
++	$(CC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++ifdef NEED_ABSOLUTE_PATH
++	$(CC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++	$(CC) -o $@ -c $(CFLAGS) $<
++endif
++endif
++
++$(PROG_PREFIX)%$(OBJ_SUFFIX): %.c
++ifdef USE_NT_C_SYNTAX
++	$(CC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++ifdef NEED_ABSOLUTE_PATH
++	$(CC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++	$(CC) -o $@ -c $(CFLAGS) $<
++endif
++endif
++
++ifneq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
++$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.s
++	@$(MAKE_OBJDIR)
++	$(AS) -o $@ $(ASFLAGS) -c $<
++endif
++
++$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.asm
++	@$(MAKE_OBJDIR)
++	$(AS) -Fo$@ $(ASFLAGS) -c $<
++
++$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.S
++	@$(MAKE_OBJDIR)
++	$(AS) -o $@ $(ASFLAGS) -c $<
++
++$(OBJDIR)/$(PROG_PREFIX)%: %.cpp
++	@$(MAKE_OBJDIR)
++ifdef USE_NT_C_SYNTAX
++	$(CCC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++ifdef NEED_ABSOLUTE_PATH
++	$(CCC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++	$(CCC) -o $@ -c $(CFLAGS) $<
++endif
++endif
++
++#
++# Please keep the next two rules in sync.
++#
++$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.cc
++	@$(MAKE_OBJDIR)
++	$(CCC) -o $@ -c $(CFLAGS) $<
++
++$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.cpp
++	@$(MAKE_OBJDIR)
++ifdef STRICT_CPLUSPLUS_SUFFIX
++	echo "#line 1 \"$<\"" | cat - $< > $(OBJDIR)/t_$*.cc
++	$(CCC) -o $@ -c $(CFLAGS) $(OBJDIR)/t_$*.cc
++	rm -f $(OBJDIR)/t_$*.cc
++else
++ifdef USE_NT_C_SYNTAX
++	$(CCC) -Fo$@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++ifdef NEED_ABSOLUTE_PATH
++	$(CCC) -o $@ -c $(CFLAGS) $(call core_abspath,$<)
++else
++	$(CCC) -o $@ -c $(CFLAGS) $<
++endif
++endif
++endif #STRICT_CPLUSPLUS_SUFFIX
++
++%.i: %.cpp
++	$(CCC) -C -E $(CFLAGS) $< > $@
++
++%.i: %.c
++ifeq (,$(filter-out WIN%,$(OS_TARGET)))
++	$(CC) -C /P $(CFLAGS) $< 
++else
++	$(CC) -C -E $(CFLAGS) $< > $@
++endif
++
++ifneq (,$(filter-out WIN%,$(OS_TARGET)))
++%.i: %.s
++	$(CC) -C -E $(CFLAGS) $< > $@
++endif
++
++%: %.pl
++	rm -f $@; cp $< $@; chmod +x $@
++
++%: %.sh
++	rm -f $@; cp $< $@; 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
++
++# !!!!! THIS WILL CRASH SHMSDOS.EXE !!!!!
++# shmsdos does not support shell variables. It will crash when it tries
++# to parse the '=' character. A solution is to rewrite outofdate.pl so it
++# takes the Javac command as an argument and executes the command itself,
++# instead of returning a list of files.
++export:: $(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE)
++	@echo "!!! THIS COMMAND IS BROKEN ON WINDOWS--SEE rules.mk FOR DETAILS !!!"
++	return -1
++	@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" ;                          \
++		$(PERL) $(CORE_DEPTH)/coreconf/jniregen.pl $(PERLARG)			\
++		 -d $(JAVA_DESTPATH) -j "$(JAVAH) -jni -d $(JNI_GEN_DIR)" $(JNI_GEN);\
++	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%.c $(JMC_GEN_DIR)/M%.h
++	@$(MAKE_OBJDIR)
++	$(CC) -o $@ -c $(CFLAGS) $<
++
++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)
++
++ifneq ($(EXPORTS),)
++$(PUBLIC_EXPORT_DIR)::
++	@if test ! -d $@; then	    \
++		echo Creating $@;   \
++		$(NSINSTALL) -D $@; \
++	fi
++
++export:: $(PUBLIC_EXPORT_DIR) 
++
++export:: $(EXPORTS) 
++	$(INSTALL) -m 444 $^ $(PUBLIC_EXPORT_DIR)
++
++export:: $(BUILT_SRCS)
++endif
++
++# Duplicate export rule for private exports, with different directories
++
++PRIVATE_EXPORT_DIR = $(SOURCE_XP_DIR)/private/$(MODULE)
++
++ifneq ($(PRIVATE_EXPORTS),)
++$(PRIVATE_EXPORT_DIR)::
++	@if test ! -d $@; then	    \
++		echo Creating $@;   \
++		$(NSINSTALL) -D $@; \
++	fi
++
++private_export:: $(PRIVATE_EXPORT_DIR)
++
++private_export:: $(PRIVATE_EXPORTS) 
++	$(INSTALL) -m 444 $^ $(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_TARGET)$(OS_RELEASE)$(CPU_TAG)$(COMPILER_TAG)$(IMPL_STRATEGY)
++
++ifneq ($(REGRESSION_SPEC),)
++
++ifneq ($(BUILD_OPT),)
++REGDATE = $(subst \ ,, $(shell $(PERL)  $(CORE_DEPTH)/$(MODULE)/scripts/now))
++endif
++
++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:: $(SOURCE_RELEASE_XP_DIR)/include
++
++release_export:: $(EXPORTS)
++	$(INSTALL) -m 444 $^ $(SOURCE_RELEASE_XP_DIR)/include
++endif
++
++
++
++
++################################################################################
++
++-include $(DEPENDENCIES)
++
++ifneq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
++# Can't use sed because of its 4000-char line length limit, so resort to perl
++PERL_DEPENDENCIES_PROGRAM =                                                   \
++	    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);                                                      \
++	    }
++
++.DEFAULT:
++	@$(PERL) -e '$(PERL_DEPENDENCIES_PROGRAM)'
++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 preceding 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
++
++#
++# HACK ALERT
++#
++# The only purpose of this rule is to pass Mozilla's Tinderbox depend
++# builds (http://tinderbox.mozilla.org/showbuilds.cgi).  Mozilla's
++# Tinderbox builds NSS continuously as part of the Mozilla client.
++# Because NSS's make depend is not implemented, whenever we change
++# an NSS header file, the depend build does not recompile the NSS
++# files that depend on the header.
++#
++# This rule makes all the objects depend on a dummy header file.
++# Check in a change to this dummy header file to force the depend
++# build to recompile everything.
++#
++# This rule should be removed when make depend is implemented.
++#
++
++DUMMY_DEPEND = $(CORE_DEPTH)/coreconf/coreconf.dep
++
++$(filter $(OBJDIR)/%$(OBJ_SUFFIX),$(OBJS)): $(OBJDIR)/%$(OBJ_SUFFIX): $(DUMMY_DEPEND)
++
++# END OF HACK
++
++################################################################################
++# 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 .dep
++
++#
++# 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 program realclean release $(OBJDIR) $(DIRS)
++
+diff -ruN mozilla.orig/security/coreconf/ruleset.mk mozilla/security/coreconf/ruleset.mk
+--- mozilla.orig/security/coreconf/ruleset.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/ruleset.mk	2009-07-08 19:15:21.000000000 +0100
+@@ -0,0 +1,250 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++#                                                                     #
++# 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)           #
++#                                                                     #
++#######################################################################
++
++#
++# CPU_TAG is now defined in the $(TARGET).mk files
++#
++
++ifndef COMPILER_TAG
++    ifneq ($(DEFAULT_COMPILER), $(notdir $(firstword $(CC))))
++#
++# Temporary define for the Client; to be removed when binary release is used
++#
++	ifdef MOZILLA_CLIENT
++	    COMPILER_TAG =
++	else
++	    COMPILER_TAG = _$(notdir $(firstword $(CC)))
++	endif
++    else
++	COMPILER_TAG =
++    endif
++endif
++
++ifeq ($(MKPROG),)
++    MKPROG = $(CC)
++endif
++
++#
++# This makefile contains rules for building the following kinds of
++# objects:
++# - (1) LIBRARY: a static (archival) library
++# - (2) SHARED_LIBRARY: a shared (dynamic link) library
++# - (3) IMPORT_LIBRARY: an import library, defined in $(OS_TARGET).mk
++# - (4) PROGRAM: an executable binary
++#
++# NOTE:  The names of libraries can be generated by simply specifying
++# LIBRARY_NAME (and LIBRARY_VERSION in the case of non-static libraries).
++# LIBRARY and SHARED_LIBRARY may be defined differently in $(OS_TARGET).mk
++#
++
++ifdef LIBRARY_NAME
++    ifndef LIBRARY
++	LIBRARY        = $(OBJDIR)/$(LIB_PREFIX)$(LIBRARY_NAME).$(LIB_SUFFIX)
++    endif
++    ifndef SHARED_LIBRARY
++	SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)$(JDK_DEBUG_SUFFIX).$(DLL_SUFFIX)
++    endif
++    ifndef MAPFILE_SOURCE
++	MAPFILE_SOURCE = $(LIBRARY_NAME).def
++    endif
++endif
++
++#
++# Common rules used by lots of makefiles...
++#
++
++ifdef PROGRAM
++    PROGRAM := $(addprefix $(OBJDIR)/, $(PROGRAM)$(JDK_DEBUG_SUFFIX)$(PROG_SUFFIX))
++endif
++
++ifdef PROGRAMS
++    PROGRAMS := $(addprefix $(OBJDIR)/, $(PROGRAMS:%=%$(JDK_DEBUG_SUFFIX)$(PROG_SUFFIX)))
++endif
++
++ifndef TARGETS
++    TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(PROGRAM)
++endif
++
++ifndef OBJS
++    SIMPLE_OBJS = $(JRI_STUB_CFILES) \
++		$(addsuffix $(OBJ_SUFFIX), $(JMC_GEN)) \
++		$(CSRCS:.c=$(OBJ_SUFFIX)) \
++		$(CPPSRCS:.cpp=$(OBJ_SUFFIX)) \
++		$(ASFILES:$(ASM_SUFFIX)=$(OBJ_SUFFIX)) \
++		$(BUILT_CSRCS:.c=$(OBJ_SUFFIX)) \
++		$(BUILT_CPPSRCS:.cpp=$(OBJ_SUFFIX)) \
++		$(BUILT_ASFILES:$(ASM_SUFFIX)=$(OBJ_SUFFIX))
++    OBJS =	$(addprefix $(OBJDIR)/$(PROG_PREFIX), $(SIMPLE_OBJS))
++endif
++
++ifndef BUILT_SRCS
++    BUILT_SRCS = $(addprefix $(OBJDIR)/$(PROG_PREFIX), \
++		 $(BUILT_CSRCS) $(BUILT_CPPSRCS) $(BUILT_ASFILES))
++endif
++
++
++ifeq (,$(filter-out WIN%,$(OS_TARGET)))
++    MAKE_OBJDIR = $(INSTALL) -D $(OBJDIR)
++else
++    define MAKE_OBJDIR
++	if test ! -d $(@D); then rm -rf $(@D); $(NSINSTALL) -D $(@D); fi
++    endef
++endif
++
++ifndef PACKAGE
++    PACKAGE = .
++endif
++
++ifdef NSBUILDROOT
++    JDK_GEN_DIR  = $(SOURCE_XP_DIR)/_gen
++    JMC_GEN_DIR  = $(SOURCE_XP_DIR)/_jmc
++    JNI_GEN_DIR  = $(SOURCE_XP_DIR)/_jni
++    JRI_GEN_DIR  = $(SOURCE_XP_DIR)/_jri
++    JDK_STUB_DIR = $(SOURCE_XP_DIR)/_stubs
++else
++    JDK_GEN_DIR  = _gen
++    JMC_GEN_DIR  = _jmc
++    JNI_GEN_DIR  = _jni
++    JRI_GEN_DIR  = _jri
++    JDK_STUB_DIR = _stubs
++endif
++
++ALL_TRASH =	$(TARGETS) $(OBJS) $(OBJDIR) LOGS TAGS $(GARBAGE) \
++		so_locations $(BUILT_SRCS) $(NOSUCHFILE)
++
++ifdef NS_USE_JDK
++    ALL_TRASH += $(JDK_HEADER_CFILES) $(JDK_STUB_CFILES) \
++		 $(JMC_HEADERS) $(JMC_STUBS) $(JMC_EXPORT_FILES) \
++		 $(JNI_HEADERS) \
++		 $(JRI_HEADER_CFILES) $(JRI_STUB_CFILES) \
++		 $(JDK_GEN_DIR) $(JMC_GEN_DIR) $(JNI_GEN_DIR) \
++		 $(JRI_GEN_DIR) $(JDK_STUB_DIR)
++
++ifdef JAVA_DESTPATH
++    ALL_TRASH += $(wildcard $(JAVA_DESTPATH)/$(PACKAGE)/*.class)
++ifdef JDIRS
++    ALL_TRASH += $(addprefix $(JAVA_DESTPATH)/,$(JDIRS))
++endif
++else # !JAVA_DESTPATH
++    ALL_TRASH += $(wildcard $(PACKAGE)/*.class) $(JDIRS)
++endif
++
++endif #NS_USE_JDK
++
++ifdef NSS_BUILD_CONTINUE_ON_ERROR
++# Try to build everything. I.e., don't exit on errors.
++    EXIT_ON_ERROR		= +e
++    CLICK_STOPWATCH		= date
++else
++    EXIT_ON_ERROR		= -e
++    CLICK_STOPWATCH		= true
++endif
++
++ifdef REQUIRES
++    MODULE_INCLUDES := $(addprefix -I$(SOURCE_XP_DIR)/public/, $(REQUIRES))
++    INCLUDES        += $(MODULE_INCLUDES)
++    ifeq ($(MODULE), sectools)
++	PRIVATE_INCLUDES := $(addprefix -I$(SOURCE_XP_DIR)/private/, $(REQUIRES))
++	INCLUDES         += $(PRIVATE_INCLUDES)
++    endif
++endif
++
++ifdef SYSTEM_INCL_DIR
++    YOPT = -Y$(SYSTEM_INCL_DIR)
++endif
++
++ifdef DIRS
++    LOOP_OVER_DIRS	=					\
++	@for directory in $(DIRS); do				\
++	    if test -d $$directory; then			\
++		set $(EXIT_ON_ERROR);				\
++		echo "cd $$directory; $(MAKE) $@";		\
++		$(MAKE) -C $$directory $@;			\
++		set +e;						\
++	    else						\
++		echo "Skipping non-directory $$directory...";	\
++	    fi;							\
++	    $(CLICK_STOPWATCH);					\
++	done
++endif
++
++MK_RULESET = included
+diff -ruN mozilla.orig/security/coreconf/source.mk mozilla/security/coreconf/source.mk
+--- mozilla.orig/security/coreconf/source.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/source.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,194 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Master <component>-specific source import/export directories        #
++#######################################################################
++
++#
++# <user_source_tree> master import/export directory prefix
++#
++
++ifndef SOURCE_PREFIX
++    ifndef BUILD_TREE
++	SOURCE_PREFIX = $(CORE_DEPTH)/../dist
++    else
++	SOURCE_PREFIX = $(BUILD_TREE)/dist
++    endif
++endif
++
++#
++# <user_source_tree> cross-platform (xp) master import/export directory
++#
++
++ifndef SOURCE_XP_DIR
++    SOURCE_XP_DIR        = $(SOURCE_PREFIX)
++endif
++
++#
++# <user_source_tree> cross-platform (xp) import/export directories
++#
++
++SOURCE_CLASSES_DIR     = $(SOURCE_XP_DIR)/classes
++SOURCE_CLASSES_DBG_DIR = $(SOURCE_XP_DIR)/classes_DBG
++SOURCE_XPHEADERS_DIR   = $(SOURCE_XP_DIR)/public/$(MODULE)
++SOURCE_XPPRIVATE_DIR   = $(SOURCE_XP_DIR)/private/$(MODULE)
++
++ifdef BUILD_OPT
++    IMPORT_XPCLASS_DIR = $(SOURCE_CLASSES_DIR)
++else
++    IMPORT_XPCLASS_DIR = $(SOURCE_CLASSES_DBG_DIR)
++endif
++
++#
++# <user_source_tree> machine-dependent (md) master import/export directory
++#
++
++ifndef SOURCE_MD_DIR
++    SOURCE_MD_DIR        = $(SOURCE_PREFIX)/$(PLATFORM)
++endif
++
++#
++# <user_source_tree> machine-dependent (md) import/export directories
++#
++
++#This is where we install built executables and (for Windows only) DLLs.
++ifndef SOURCE_BIN_DIR
++    SOURCE_BIN_DIR       = $(SOURCE_MD_DIR)/bin
++endif
++
++#This is where we install built libraries (.a, .so, .lib).
++ifndef SOURCE_LIB_DIR
++    SOURCE_LIB_DIR       = $(SOURCE_MD_DIR)/lib
++endif
++
++# This is where NSPR header files are found.
++ifndef SOURCE_MDHEADERS_DIR
++    SOURCE_MDHEADERS_DIR = $(SOURCE_MD_DIR)/include
++endif
++
++#######################################################################
++# Master <component>-specific source release directories and files    #
++#######################################################################
++
++#
++# <user_source_tree> source-side master release directory prefix
++# NOTE:  export control policy enforced for XP and MD files released to
++#        the staging area
++#
++
++ifeq ($(POLICY), domestic)
++    SOURCE_RELEASE_PREFIX = $(SOURCE_PREFIX)/release/domestic
++else
++    ifeq ($(POLICY), export)
++	SOURCE_RELEASE_PREFIX = $(SOURCE_PREFIX)/release/export
++    else
++	ifeq ($(POLICY), france)
++	    SOURCE_RELEASE_PREFIX = $(SOURCE_PREFIX)/release/france
++	else
++#We shouldn't have to put another directory under here, but without it the perl
++#script for releasing doesn't find the directory. It thinks it doesn't exist.
++#So we're adding this no-policy directory so that the script for releasing works
++#in all casese when policy is not set. This doesn't affect where the final jar
++#files land, only where they are placed in the local tree when building the jar
++#files. When there is no policy, the jar files will still land in
++#<dist>/<module>/<date>/<platform> like they used to.
++	    SOURCE_RELEASE_PREFIX = $(SOURCE_PREFIX)/release/no-policy
++	endif
++    endif
++endif
++
++#
++# <user_source_tree> cross-platform (xp) source-side master release directory
++#
++
++SOURCE_RELEASE_XP_DIR = $(SOURCE_RELEASE_PREFIX)
++
++#
++# <user_source_tree> cross-platform (xp) source-side release directories
++#
++
++SOURCE_RELEASE_CLASSES_DIR     = classes
++SOURCE_RELEASE_CLASSES_DBG_DIR = classes_DBG
++SOURCE_RELEASE_XPHEADERS_DIR   = include
++
++#
++# <user_source_tree> cross-platform (xp) JAR source-side release files
++#
++
++XPCLASS_JAR     = xpclass.jar
++XPCLASS_DBG_JAR = xpclass_dbg.jar
++XPHEADER_JAR    = xpheader.jar
++
++ifdef BUILD_OPT
++    SOURCE_RELEASE_XP_CLASSES_DIR = $(SOURCE_RELEASE_CLASSES_DIR)
++    IMPORT_XPCLASS_JAR = $(XPCLASS_JAR)
++else
++    SOURCE_RELEASE_XP_CLASSES_DIR = $(SOURCE_RELEASE_CLASSES_DBG_DIR)
++    IMPORT_XPCLASS_JAR = $(XPCLASS_DBG_JAR)
++endif
++
++#
++# <user_source_tree> machine-dependent (md) source-side master release directory
++#
++
++SOURCE_RELEASE_MD_DIR = $(PLATFORM)
++
++#
++# <user_source_tree> machine-dependent (md) source-side release directories
++#
++
++SOURCE_RELEASE_BIN_DIR       = $(PLATFORM)/bin
++SOURCE_RELEASE_LIB_DIR       = $(PLATFORM)/lib
++SOURCE_RELEASE_MDHEADERS_DIR = $(PLATFORM)/include
++SOURCE_RELEASE_SPEC_DIR      = $(SOURCE_RELEASE_MD_DIR)
++
++#
++# <user_source_tree> machine-dependent (md) JAR/tar source-side release files
++#
++
++MDBINARY_JAR = mdbinary.jar
++MDHEADER_JAR = mdheader.jar
++
++
++# Where to put the results
++
++ifneq ($(RESULTS_DIR),)
++    RESULTS_DIR = $(RELEASE_TREE)/sectools/results
++endif
++
++MK_SOURCE = included
+diff -ruN mozilla.orig/security/coreconf/suffix.mk mozilla/security/coreconf/suffix.mk
+--- mozilla.orig/security/coreconf/suffix.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/suffix.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,99 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Master "Core Components" suffixes                                   #
++#######################################################################
++
++#
++# Object suffixes   (OS2 and WIN% override this)
++#
++ifndef OBJ_SUFFIX
++    OBJ_SUFFIX = .o
++endif
++
++#
++# Assembler source suffixes (OS2 and WIN% override this)
++#
++ifndef ASM_SUFFIX
++    ASM_SUFFIX = .s
++endif
++
++#
++# Library suffixes
++#
++STATIC_LIB_EXTENSION =
++
++ifndef DYNAMIC_LIB_EXTENSION
++    DYNAMIC_LIB_EXTENSION =
++endif
++
++
++ifndef STATIC_LIB_SUFFIX
++    STATIC_LIB_SUFFIX = .$(LIB_SUFFIX)
++endif
++
++
++ifndef DYNAMIC_LIB_SUFFIX
++    DYNAMIC_LIB_SUFFIX = .$(DLL_SUFFIX)
++endif
++
++# WIN% overridese this
++ifndef IMPORT_LIB_SUFFIX
++    IMPORT_LIB_SUFFIX = 
++endif
++
++
++ifndef STATIC_LIB_SUFFIX_FOR_LINKING
++    STATIC_LIB_SUFFIX_FOR_LINKING = $(STATIC_LIB_SUFFIX)
++endif
++
++
++# WIN% overridese this
++ifndef DYNAMIC_LIB_SUFFIX_FOR_LINKING
++    DYNAMIC_LIB_SUFFIX_FOR_LINKING = $(DYNAMIC_LIB_SUFFIX)
++endif
++
++#
++# Program suffixes (OS2 and WIN% override this)
++#
++
++ifndef PROG_SUFFIX
++    PROG_SUFFIX =
++endif
++
++MK_SUFFIX = included
+diff -ruN mozilla.orig/security/coreconf/tree.mk mozilla/security/coreconf/tree.mk
+--- mozilla.orig/security/coreconf/tree.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/tree.mk	2009-03-10 18:01:49.000000000 +0000
+@@ -0,0 +1,84 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Master "Core Components" file system "release" prefixes             #
++#######################################################################
++
++# Windows platforms override this.  See WIN32.mk.
++ifndef RELEASE_TREE
++    ifdef BUILD_SHIP
++	ifdef USE_SHIPS 
++	    RELEASE_TREE = $(BUILD_SHIP)
++	else
++	    RELEASE_TREE = /share/builds/components
++	endif
++    else
++	RELEASE_TREE = /share/builds/components
++    endif
++endif
++
++#
++# NOTE:  export control policy enforced for XP and MD files
++#        released to the binary release tree
++#
++
++ifeq ($(POLICY), domestic)
++    RELEASE_XP_DIR = domestic
++    RELEASE_MD_DIR = domestic/$(PLATFORM)
++else
++    ifeq ($(POLICY), export)
++	RELEASE_XP_DIR = export
++	RELEASE_MD_DIR = export/$(PLATFORM)
++    else
++	ifeq ($(POLICY), france)
++	    RELEASE_XP_DIR = france
++	    RELEASE_MD_DIR = france/$(PLATFORM)
++	else
++	    RELEASE_XP_DIR = 
++	    RELEASE_MD_DIR = $(PLATFORM)
++	endif
++    endif
++endif
++
++
++REPORTER_TREE = $(subst \,\\,$(RELEASE_TREE))
++
++IMPORT_XP_DIR = 
++IMPORT_MD_DIR = $(PLATFORM)
++
++MK_TREE = included
+diff -ruN mozilla.orig/security/coreconf/version.mk mozilla/security/coreconf/version.mk
+--- mozilla.orig/security/coreconf/version.mk	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/version.mk	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,109 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++#######################################################################
++# Build master "Core Components" release version directory name       #
++#######################################################################
++
++#
++# Always set CURRENT_VERSION_SYMLINK to the <current> symbolic link.
++#
++
++CURRENT_VERSION_SYMLINK = current
++
++
++#
++#  For the sake of backwards compatibility (*sigh*) ...
++#
++
++ifndef VERSION
++    ifdef BUILD_NUM
++	VERSION = $(BUILD_NUM)
++    endif
++endif
++
++ifndef RELEASE_VERSION
++    ifdef BUILD_NUM
++	RELEASE_VERSION = $(BUILD_NUM)
++    endif
++endif
++
++#
++# If VERSION has still NOT been set on the command line,
++# as an environment variable, by the individual Makefile, or
++# by the <component>-specific "version.mk" file, set VERSION equal
++# to $(CURRENT_VERSION_SYMLINK).
++
++ifndef VERSION
++    VERSION = $(CURRENT_VERSION_SYMLINK)
++endif
++
++# If RELEASE_VERSION has still NOT been set on the command line,
++# as an environment variable, by the individual Makefile, or
++# by the <component>-specific "version.mk" file, automatically
++# generate the next available version number via a perl script.
++# 
++
++ifndef RELEASE_VERSION
++    RELEASE_VERSION = 
++endif
++
++#
++# Set <component>-specific versions for compiliation and linkage.
++#
++
++ifndef JAVA_VERSION
++    JAVA_VERSION = $(CURRENT_VERSION_SYMLINK)
++endif
++
++ifndef NETLIB_VERSION
++    NETLIB_VERSION = $(CURRENT_VERSION_SYMLINK)
++endif
++
++ifndef NSPR_VERSION
++    NSPR_VERSION = $(CURRENT_VERSION_SYMLINK)
++endif
++
++ifndef SECTOOLS_VERSION
++    SECTOOLS_VERSION = $(CURRENT_VERSION_SYMLINK)
++endif
++
++ifndef SECURITY_VERSION
++    SECURITY_VERSION = $(CURRENT_VERSION_SYMLINK)
++endif
++
++MK_VERSION = included
+diff -ruN mozilla.orig/security/coreconf/version.pl mozilla/security/coreconf/version.pl
+--- mozilla.orig/security/coreconf/version.pl	1970-01-01 01:00:00.000000000 +0100
++++ mozilla/security/coreconf/version.pl	2004-04-25 16:02:17.000000000 +0100
+@@ -0,0 +1,80 @@
++#!/usr/sbin/perl
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# 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 the Initial Developer are Copyright (C) 1994-2000
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++# Compose lowercase alphabet
++@alphabet = ( "a", "b", "c", "d", "e", "f", "g", "h",
++              "i", "j", "k", "l", "m", "n", "o", "p",
++              "q", "r", "s", "t", "u", "v", "w", "x",
++              "y", "z" );
++
++# Compute year
++$year = (localtime)[5] + 1900;
++
++# Compute month
++$month = (localtime)[4] + 1;
++
++# Compute day
++$day = (localtime)[3];
++
++# Compute base build number
++$version = sprintf( "%d%02d%02d", $year, $month, $day );
++$directory = sprintf( "%s\/%s\/%d%02d%02d", $ARGV[0], $ARGV[1], $year, $month, $day );
++
++# Print out the name of the first version directory which does not exist
++#if( ! -e  $directory )
++#{
++    print $version;
++#}
++#else
++#{
++#    # Loop through combinations
++#    foreach $ch1 (@alphabet)
++#    {
++#	foreach $ch2 (@alphabet)
++#	{
++#	    $version = sprintf( "%d%02d%02d%s%s", $year, $month, $day, $ch1, $ch2 );
++#	    $directory = sprintf( "%s\/%s\/%d%02d%02d%s%s", $ARGV[0], $ARGV[1], $year, $month, $day, $ch1, $ch2 );
++#	    if( ! -e  $directory )
++#	    {
++#		print STDOUT $version;
++#		exit;
++#	    }
++#	}
++#    }
++#}
++
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nspr/Makefile	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,49 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		nspr
+COMPONENT_VERSION=	4.8.4
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:c4af8c2956674ff0f17b4247516716e92db40cf6
+COMPONENT_ARCHIVE_URL=	http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$(COMPONENT_VERSION)/src/$(COMPONENT_ARCHIVE)
+
+include ../../make-rules/prep.mk
+include ../../make-rules/configure.mk
+include ../../make-rules/ips.mk
+
+CONFIGURE_SCRIPT = $(SOURCE_DIR)/mozilla/nsprpub/configure
+
+CONFIGURE_LIBDIR.32 = /usr/lib/mps
+CONFIGURE_LIBDIR.64 = /usr/lib/mps/$(MACH64)
+
+CONFIGURE_OPTIONS.64 += --enable-64bit
+
+CONFIGURE_OPTIONS = --prefix=$(CONFIGURE_PREFIX)
+CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS))
+CONFIGURE_OPTIONS += --includedir=/usr/include/mps
+#CONFIGURE_OPTIONS += --disable-debug
+CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(BITS))
+
+PKGMANGLE = true
+PKGLINT = true
+
+build: $(BUILD_32_and_64)
+
+install: $(INSTALL_32_and_64)
+	$(MKDIR) -p $(PROTO_DIR)/usr/lib/pkgconfig
+	cat $(COMPONENT_DIR)/nspr.pc | sed s/^Version:/Version:\ $(COMPONENT_VERSION)/ \
+		> $(PROTO_DIR)/usr/lib/pkgconfig/nspr.pc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nspr/library-nspr-header-nspr.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,127 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+set name=pkg.fmri value=pkg:/library/nspr/[email protected],$(BUILD_VERSION)
+set name=pkg.summary value="Netscape Portable Runtime Development"
+set name=variant.opensolaris.zone value=global value=nonglobal
+set name=info.classification value=org.opensolaris.category.2008:Development/System
+set name=description value="Netscape Portable Runtime Development"
+license nspr.license license="MPL 1.1/GPL 2.0/LGPL 2.1"
+set name=variant.arch value=$(MACH)
+set name=pkg.description value="Netscape Portable Runtime Interface Files for Development"
+set name=org.opensolaris.consolidation value=sic_team
+depend fmri=consolidation/sic_team/sic_team-incorporation type=require
+legacy arch=$(MACH) category=system desc="Netscape Portable Runtime Interface Files for Development" \
+    hotline="Please contact your local service provider" name="Netscape Portable Runtime Development" \
+    pkg=SUNWprd variant.arch=$(MACH) vendor="Project OpenIndiana" \
+    version=$(IPS_COMPONENT_VERSION),REV=2011.04.21.00.52
+
+dir path=usr
+dir path=usr/include
+dir path=usr/include/mps
+dir path=usr/include/mps/md
+dir path=usr/include/mps/obsolete
+dir path=usr/include/mps/private
+dir path=usr/lib
+dir path=usr/lib/pkgconfig
+
+file path=usr/include/mps/md/_aix32.cfg
+file path=usr/include/mps/md/_aix64.cfg
+file path=usr/include/mps/md/_beos.cfg
+file path=usr/include/mps/md/_bsdi.cfg
+file path=usr/include/mps/md/_darwin.cfg
+file path=usr/include/mps/md/_dgux.cfg
+file path=usr/include/mps/md/_freebsd.cfg
+file path=usr/include/mps/md/_hpux32.cfg
+file path=usr/include/mps/md/_hpux64.cfg
+file path=usr/include/mps/md/_irix32.cfg
+file path=usr/include/mps/md/_irix64.cfg
+file path=usr/include/mps/md/_linux.cfg
+file path=usr/include/mps/md/_ncr.cfg
+file path=usr/include/mps/md/_nec.cfg
+file path=usr/include/mps/md/_netbsd.cfg
+file path=usr/include/mps/md/_nextstep.cfg
+file path=usr/include/mps/md/_nto.cfg
+file path=usr/include/mps/md/_openbsd.cfg
+file path=usr/include/mps/md/_os2.cfg
+file path=usr/include/mps/md/_osf1.cfg
+file path=usr/include/mps/md/_qnx.cfg
+file path=usr/include/mps/md/_reliantunix.cfg
+file path=usr/include/mps/md/_riscos.cfg
+file path=usr/include/mps/md/_scoos.cfg
+file path=usr/include/mps/md/_solaris.cfg
+file path=usr/include/mps/md/_sony.cfg
+file path=usr/include/mps/md/_sunos4.cfg
+file path=usr/include/mps/md/_symbian.cfg
+file path=usr/include/mps/md/_unixware.cfg
+file path=usr/include/mps/md/_unixware7.cfg
+file path=usr/include/mps/md/_win95.cfg
+file path=usr/include/mps/md/_winnt.cfg
+file path=usr/include/mps/nspr.h
+file path=usr/include/mps/obsolete/pralarm.h
+file path=usr/include/mps/obsolete/probslet.h
+file path=usr/include/mps/obsolete/protypes.h
+file path=usr/include/mps/obsolete/prsem.h
+file path=usr/include/mps/plarena.h
+file path=usr/include/mps/plarenas.h
+file path=usr/include/mps/plbase64.h
+file path=usr/include/mps/plerror.h
+file path=usr/include/mps/plgetopt.h
+file path=usr/include/mps/plhash.h
+file path=usr/include/mps/plstr.h
+file path=usr/include/mps/pratom.h
+file path=usr/include/mps/prbit.h
+file path=usr/include/mps/prclist.h
+file path=usr/include/mps/prcmon.h
+file path=usr/include/mps/prcountr.h
+file path=usr/include/mps/prcpucfg.h
+file path=usr/include/mps/prcvar.h
+file path=usr/include/mps/prdtoa.h
+file path=usr/include/mps/prenv.h
+file path=usr/include/mps/prerr.h
+file path=usr/include/mps/prerror.h
+file path=usr/include/mps/prinet.h
+file path=usr/include/mps/prinit.h
+file path=usr/include/mps/prinrval.h
+file path=usr/include/mps/prio.h
+file path=usr/include/mps/pripcsem.h
+file path=usr/include/mps/private/pprio.h
+file path=usr/include/mps/private/pprthred.h
+file path=usr/include/mps/private/prpriv.h
+file path=usr/include/mps/prlink.h
+file path=usr/include/mps/prlock.h
+file path=usr/include/mps/prlog.h
+file path=usr/include/mps/prlong.h
+file path=usr/include/mps/prmem.h
+file path=usr/include/mps/prmon.h
+file path=usr/include/mps/prmwait.h
+file path=usr/include/mps/prnetdb.h
+file path=usr/include/mps/prolock.h
+file path=usr/include/mps/prpdce.h
+file path=usr/include/mps/prprf.h
+file path=usr/include/mps/prproces.h
+file path=usr/include/mps/prrng.h
+file path=usr/include/mps/prrwlock.h
+file path=usr/include/mps/prshm.h
+file path=usr/include/mps/prshma.h
+file path=usr/include/mps/prsystem.h
+file path=usr/include/mps/prthread.h
+file path=usr/include/mps/prtime.h
+file path=usr/include/mps/prtpool.h
+file path=usr/include/mps/prtrace.h
+file path=usr/include/mps/prtypes.h
+file path=usr/include/mps/prvrsion.h
+file path=usr/include/mps/prwin16.h
+
+file path=usr/lib/pkgconfig/nspr.pc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nspr/library-nspr.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,56 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+set name=pkg.fmri value=pkg:/library/[email protected],$(BUILD_VERSION)
+set name=pkg.description value="Netscape Portable Runtime Interface"
+set name=org.opensolaris.consolidation value=sic_team
+set name=variant.opensolaris.zone value=global value=nonglobal
+set name=description value="Netscape Portable Runtime"
+set name=pkg.summary value="Netscape Portable Runtime"
+set name=info.classification value=org.opensolaris.category.2008:System/Libraries
+license nspr.license license="MPL 1.1/GPL 2.0/LGPL 2.1"
+set name=variant.arch value=$(MACH)
+depend fmri=consolidation/sic_team/sic_team-incorporation type=require
+depend fmri=system/library@$(BUILD_VERSION) type=require
+legacy arch=$(MACH) category=system desc="Netscape Portable Runtime Interface" \
+    hotline="Please contact your local service provider" name="Netscape Portable Runtime" \
+    pkg=SUNWpr variant.arch=$(MACH) vendor="Project OpenIndiana" \
+    version=$(IPS_COMPONENT_VERSION),REV=2011.04.21.00.52
+
+dir path=usr
+dir path=usr/lib
+dir path=usr/lib/mps
+dir path=usr/lib/mps/$(MACH64)
+dir path=usr/lib/mps/secv1
+dir path=usr/lib/mps/secv1/$(MACH64)
+
+file path=usr/lib/mps/$(MACH64)/libnspr4.so
+file path=usr/lib/mps/$(MACH64)/libplc4.so
+file path=usr/lib/mps/$(MACH64)/libplds4.so
+
+file path=usr/lib/mps/libnspr4.so
+file path=usr/lib/mps/libplc4.so
+file path=usr/lib/mps/libplds4.so
+
+link path=usr/lib/mps/64 target=$(MACH64)
+link path=usr/lib/mps/secv1/$(MACH64)/libnspr4.so \
+    target=../../$(MACH64)/libnspr4.so
+link path=usr/lib/mps/secv1/$(MACH64)/libplc4.so \
+    target=../../$(MACH64)/libplc4.so
+link path=usr/lib/mps/secv1/$(MACH64)/libplds4.so \
+    target=../../$(MACH64)/libplds4.so
+link path=usr/lib/mps/secv1/64 target=$(MACH64)
+link path=usr/lib/mps/secv1/libnspr4.so target=../libnspr4.so
+link path=usr/lib/mps/secv1/libplc4.so target=../libplc4.so
+link path=usr/lib/mps/secv1/libplds4.so target=../libplds4.so
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nspr/nspr.license	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,35 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# 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 Portable Runtime (NSPR).
+#
+# The Initial Developer of the Original Code is
+# Netscape Communications Corporation.
+# Portions created by the Initial Developer are Copyright (C) 1998-2000
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nspr/nspr.pc	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=/usr
+libdir=/usr/lib/mps
+includedir=/usr/include/mps
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version:
+Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lposix4
+Cflags: -I${includedir}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nss/Makefile	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,82 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		nss
+COMPONENT_VERSION=	3.12.6
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:461e81adbdef6c3f848fcfee0dc5ad8c2dbebd46
+COMPONENT_ARCHIVE_URL=	ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_12_6_RTM/src/$(COMPONENT_ARCHIVE)
+
+# Enable compiler optimizations and disable debugging code
+COMPONENT_BUILD_ENV += BUILD_OPT=1
+
+# Generate symbolic info for debuggers
+COMPONENT_BUILD_ENV += XCFLAGS="-g"
+
+COMPONENT_BUILD_ENV += PATH=$(SPRO_VROOT)/bin:$(PATH)
+COMPONENT_BUILD_ENV += PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+COMPONENT_BUILD_ENV += PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
+COMPONENT_BUILD_ENV += NSS_USE_SYSTEM_SQLITE=1
+
+MPS.32=/usr/lib/mps
+MPS.64=/usr/lib/mps/$(MACH64)
+COMPONENT_BUILD_ENV += NSPR_INCLUDE_DIR=/usr/include/mps
+COMPONENT_BUILD_ENV += NSPR_LIB_DIR=$(MPS.$(BITS))
+COMPONENT_BUILD_ENV += NSS_INCLUDE_DIR=/usr/include/mps
+COMPONENT_BUILD_ENV += NSS_LIB_DIR=$(MPS.$(BITS))
+
+COMPONENT_BUILD_ENV.64 += USE_64=1
+COMPONENT_BUILD_ENV += $(COMPONENT_BUILD_ENV.$(BITS))
+
+
+include ../../make-rules/prep.mk
+include ../../make-rules/justmake.mk
+include ../../make-rules/ips.mk
+
+PKGMANGLE = true
+PKGLINT = true
+
+$(BUILD_DIR)/%/.built:	$(SOURCE_DIR)/.prep
+	$(RM) -r $(@D) ; $(MKDIR) $(@D)
+	$(CLONEY) $(SOURCE_DIR) $(@D)
+	$(COMPONENT_PRE_BUILD_ACTION)
+	(cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) $(GMAKE) -C mozilla/security/coreconf)
+	(cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) $(GMAKE) -C mozilla/security/dbm)
+	(cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) $(GMAKE) -C mozilla/security/nss)
+	$(COMPONENT_POST_BUILD_ACTION)
+	$(TOUCH) $@
+
+build: $(BUILD_32_and_64)
+
+install: build
+	$(MKDIR) -p $(PROTO_DIR)/usr/sfw/bin
+	$(MKDIR) -p $(PROTO_DIR)/usr/sfw/bin/$(MACH64)
+	$(MKDIR) -p $(PROTO_DIR)/usr/lib/mps
+	$(MKDIR) -p $(PROTO_DIR)/usr/lib/mps/$(MACH64)
+	$(MKDIR) -p $(PROTO_DIR)/usr/include/mps
+	$(MKDIR) -p $(PROTO_DIR)/usr/lib/pkgconfig
+	cp $(BUILD_DIR_32)/mozilla/dist/public/nss/*.h $(PROTO_DIR)/usr/include/mps
+	cp $(BUILD_DIR_32)/mozilla/dist/SunOS5.11_*_OPT.OBJ/lib/*.so $(PROTO_DIR)/usr/lib/mps
+	cp $(BUILD_DIR_32)/mozilla/dist/SunOS5.11_*_OPT.OBJ/lib/*.chk $(PROTO_DIR)/usr/lib/mps
+	cp $(BUILD_DIR_64)/mozilla/dist/SunOS5.11_*_OPT.OBJ/lib/*.so $(PROTO_DIR)/usr/lib/mps/$(MACH64)
+	cp $(BUILD_DIR_64)/mozilla/dist/SunOS5.11_*_OPT.OBJ/lib/*.chk $(PROTO_DIR)/usr/lib/mps/$(MACH64)
+	for i in addbuiltin certutil cmsutil crlutil modutil pk12util signtool signver ssltap; do \
+		cp $(BUILD_DIR_32)/mozilla/dist/SunOS5.11_*_OPT.OBJ/bin/$$i $(PROTO_DIR)/usr/sfw/bin; \
+		cp $(BUILD_DIR_64)/mozilla/dist/SunOS5.11_*_OPT.OBJ/bin/$$i $(PROTO_DIR)/usr/sfw/bin/$(MACH64); \
+		done
+	cat $(COMPONENT_DIR)/nss.pc | sed s/^Version:/Version:\ $(COMPONENT_VERSION)/ \
+		> $(PROTO_DIR)/usr/lib/pkgconfig/nss.pc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nss/nss.license	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,35 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# 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 the Initial Developer are Copyright (C) 1994-2000
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nss/nss.pc	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=/usr
+libdir=/usr/lib/mps
+includedir=/usr/include/mps
+
+Name: NSS
+Description: Network Security Services
+Version:
+Requires: nspr >= 4.6
+Libs: -L${libdir} -lnss3 -lsmime3 -lssl3 -lnssutil3
+Cflags: -I${includedir}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nss/system-library-mozilla-nss-header-nss.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,125 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+set name=pkg.fmri value=pkg:/system/library/mozilla-nss/[email protected],$(BUILD_VERSION)
+set name=variant.opensolaris.zone value=global value=nonglobal
+set name=description value="Network Security Services Development"
+set name=pkg.description value="Network Security Services Files for Development"
+set name=info.classification value=org.opensolaris.category.2008:System/Security
+set name=pkg.summary value="Network Security Services Development"
+set name=org.opensolaris.consolidation value=sic_team
+license nss.license license="MPL 1.1/GPL 2.0/LGPL 2.1"
+set name=variant.arch value=$(MACH)
+depend fmri=consolidation/sic_team/sic_team-incorporation type=require
+legacy arch=$(MACH) category=system desc="Network Security Services Files for Development" \
+    hotline="Please contact your local service provider" name="Network Security Services Development" \
+    pkg=SUNWtlsd variant.arch=$(MACH) vendor="OpenIndiana Project" \
+    version=$(IPS_COMPONENT_VERSION),REV=2011.04.21.00.52
+
+dir path=usr
+dir path=usr/include
+dir path=usr/include/mps
+dir path=usr/lib
+dir path=usr/lib/pkgconfig
+file path=usr/include/mps/base64.h
+file path=usr/include/mps/blapit.h
+file path=usr/include/mps/cert.h
+file path=usr/include/mps/certdb.h
+file path=usr/include/mps/certt.h
+file path=usr/include/mps/ciferfam.h
+file path=usr/include/mps/cmmf.h
+file path=usr/include/mps/cmmft.h
+file path=usr/include/mps/cms.h
+file path=usr/include/mps/cmsreclist.h
+file path=usr/include/mps/cmst.h
+file path=usr/include/mps/crmf.h
+file path=usr/include/mps/crmft.h
+file path=usr/include/mps/cryptohi.h
+file path=usr/include/mps/cryptoht.h
+file path=usr/include/mps/ecl-exp.h
+file path=usr/include/mps/hasht.h
+file path=usr/include/mps/jar-ds.h
+file path=usr/include/mps/jar.h
+file path=usr/include/mps/jarfile.h
+file path=usr/include/mps/key.h
+file path=usr/include/mps/keyhi.h
+file path=usr/include/mps/keyt.h
+file path=usr/include/mps/keythi.h
+file path=usr/include/mps/nss.h
+file path=usr/include/mps/nssb64.h
+file path=usr/include/mps/nssb64t.h
+file path=usr/include/mps/nssbase.h
+file path=usr/include/mps/nssbaset.h
+file path=usr/include/mps/nssckbi.h
+file path=usr/include/mps/nssckepv.h
+file path=usr/include/mps/nssckft.h
+file path=usr/include/mps/nssckfw.h
+file path=usr/include/mps/nssckfwc.h
+file path=usr/include/mps/nssckfwt.h
+file path=usr/include/mps/nssckg.h
+file path=usr/include/mps/nssckmdt.h
+file path=usr/include/mps/nssckt.h
+file path=usr/include/mps/nssilckt.h
+file path=usr/include/mps/nssilock.h
+file path=usr/include/mps/nsslocks.h
+file path=usr/include/mps/nssrwlk.h
+file path=usr/include/mps/nssrwlkt.h
+file path=usr/include/mps/nssutil.h
+file path=usr/include/mps/ocsp.h
+file path=usr/include/mps/ocspt.h
+file path=usr/include/mps/p12.h
+file path=usr/include/mps/p12plcy.h
+file path=usr/include/mps/p12t.h
+file path=usr/include/mps/pk11func.h
+file path=usr/include/mps/pk11pqg.h
+file path=usr/include/mps/pk11priv.h
+file path=usr/include/mps/pk11pub.h
+file path=usr/include/mps/pk11sdr.h
+file path=usr/include/mps/pkcs11.h
+file path=usr/include/mps/pkcs11f.h
+file path=usr/include/mps/pkcs11n.h
+file path=usr/include/mps/pkcs11p.h
+file path=usr/include/mps/pkcs11t.h
+file path=usr/include/mps/pkcs11u.h
+file path=usr/include/mps/pkcs12.h
+file path=usr/include/mps/pkcs12t.h
+file path=usr/include/mps/pkcs7t.h
+file path=usr/include/mps/portreg.h
+file path=usr/include/mps/preenc.h
+file path=usr/include/mps/secasn1.h
+file path=usr/include/mps/secasn1t.h
+file path=usr/include/mps/seccomon.h
+file path=usr/include/mps/secder.h
+file path=usr/include/mps/secdert.h
+file path=usr/include/mps/secdig.h
+file path=usr/include/mps/secdigt.h
+file path=usr/include/mps/secerr.h
+file path=usr/include/mps/sechash.h
+file path=usr/include/mps/secitem.h
+file path=usr/include/mps/secmime.h
+file path=usr/include/mps/secmod.h
+file path=usr/include/mps/secmodt.h
+file path=usr/include/mps/secoid.h
+file path=usr/include/mps/secoidt.h
+file path=usr/include/mps/secpkcs5.h
+file path=usr/include/mps/secpkcs7.h
+file path=usr/include/mps/secport.h
+file path=usr/include/mps/shsign.h
+file path=usr/include/mps/smime.h
+file path=usr/include/mps/ssl.h
+file path=usr/include/mps/sslerr.h
+file path=usr/include/mps/sslproto.h
+file path=usr/include/mps/sslt.h
+file path=usr/include/mps/utilrename.h
+file path=usr/lib/pkgconfig/nss.pc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nss/system-library-mozilla-nss.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,88 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+set name=pkg.fmri value=pkg:/system/library/[email protected],$(BUILD_VERSION)
+set name=info.classification value=org.opensolaris.category.2008:System/Security
+set name=pkg.description value="Network Security Services"
+set name=variant.opensolaris.zone value=global value=nonglobal
+set name=description value="Network Security Services"
+set name=pkg.summary value="Network Security Services"
+set name=org.opensolaris.consolidation value=sic_team
+license nss.license license="MPL 1.1/GPL 2.0/LGPL 2.1"
+set name=variant.arch value=$(MACH)
+depend fmri=consolidation/sic_team/sic_team-incorporation type=require
+depend fmri=library/nspr@0.$(BUILD_VERSION) type=require
+depend fmri=system/library@0.$(BUILD_VERSION) type=require
+legacy arch=$(MACH) category=system desc="Network Security Services" \
+    hotline="Please contact your local service provider" name="Network Security Services" \
+    pkg=SUNWtls variant.arch=$(MACH) vendor="OpenIndiana Project" \
+    version=$(IPS_COMPONENT_VERSION),REV=2011.04.21.00.52
+
+dir path=usr
+dir path=usr/lib
+dir path=usr/lib/mps
+dir path=usr/lib/mps/$(MACH64)
+dir path=usr/lib/mps/secv1
+dir path=usr/lib/mps/secv1/$(MACH64)
+
+file path=usr/lib/mps/libfreebl3.chk
+file path=usr/lib/mps/libfreebl3.so
+file path=usr/lib/mps/libnss3.so
+file path=usr/lib/mps/libnssckbi.so
+file path=usr/lib/mps/libnssdbm3.chk
+file path=usr/lib/mps/libnssdbm3.so
+file path=usr/lib/mps/libnssutil3.so
+file path=usr/lib/mps/libsmime3.so
+file path=usr/lib/mps/libsoftokn3.chk
+file path=usr/lib/mps/libsoftokn3.so
+file path=usr/lib/mps/libssl3.so
+
+file path=usr/lib/mps/$(MACH64)/libfreebl3.chk
+file path=usr/lib/mps/$(MACH64)/libfreebl3.so
+file path=usr/lib/mps/$(MACH64)/libnss3.so
+file path=usr/lib/mps/$(MACH64)/libnssckbi.so
+file path=usr/lib/mps/$(MACH64)/libnssdbm3.chk
+file path=usr/lib/mps/$(MACH64)/libnssdbm3.so
+file path=usr/lib/mps/$(MACH64)/libnssutil3.so
+file path=usr/lib/mps/$(MACH64)/libsmime3.so
+file path=usr/lib/mps/$(MACH64)/libsoftokn3.chk
+file path=usr/lib/mps/$(MACH64)/libsoftokn3.so
+file path=usr/lib/mps/$(MACH64)/libssl3.so
+
+link path=usr/lib/mps/64 target=$(MACH64)
+link path=usr/lib/mps/secv1/64 target=$(MACH64)
+link path=usr/lib/mps/secv1/libfreebl3.chk target=../libfreebl3.chk
+link path=usr/lib/mps/secv1/libfreebl3.so target=../libfreebl3.so
+link path=usr/lib/mps/secv1/libnss3.so target=../libnss3.so
+link path=usr/lib/mps/secv1/libnssckbi.so target=../libnssckbi.so
+link path=usr/lib/mps/secv1/libnssdbm3.chk target=../libnssdbm3.chk
+link path=usr/lib/mps/secv1/libnssdbm3.so target=../libnssdbm3.so
+link path=usr/lib/mps/secv1/libnssutil3.so target=../libnssutil3.so
+link path=usr/lib/mps/secv1/libsmime3.so target=../libsmime3.so
+link path=usr/lib/mps/secv1/libsoftokn3.chk target=../libsoftokn3.chk
+link path=usr/lib/mps/secv1/libsoftokn3.so target=../libsoftokn3.so
+link path=usr/lib/mps/secv1/libsqlite3.so target=../libsqlite3.so
+link path=usr/lib/mps/secv1/libssl3.so target=../libssl3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libfreebl3.chk target=../../$(MACH64)/libfreebl3.chk
+link path=usr/lib/mps/secv1/$(MACH64)/libfreebl3.so target=../../$(MACH64)/libfreebl3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libnss3.so target=../../$(MACH64)/libnss3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libnssckbi.so target=../../$(MACH64)/libnssckbi.so
+link path=usr/lib/mps/secv1/$(MACH64)/libnssdbm3.chk target=../../$(MACH64)/libnssdbm3.chk
+link path=usr/lib/mps/secv1/$(MACH64)/libnssdbm3.so target=../../$(MACH64)/libnssdbm3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libnssutil3.so target=../../$(MACH64)/libnssutil3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libsmime3.so target=../../$(MACH64)/libsmime3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libsoftokn3.chk target=../../$(MACH64)/libsoftokn3.chk
+link path=usr/lib/mps/secv1/$(MACH64)/libsoftokn3.so target=../../$(MACH64)/libsoftokn3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libsqlite3.so target=../../$(MACH64)/libsqlite3.so
+link path=usr/lib/mps/secv1/$(MACH64)/libssl3.so target=../../$(MACH64)/libssl3.so
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/mozilla-nss/system-mozilla-nss.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,69 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+set name=pkg.fmri value=pkg:/system/[email protected],$(BUILD_VERSION)
+set name=info.classification value=org.opensolaris.category.2008:System/Security
+set name=pkg.summary value="Network Security Services Utilities"
+set name=variant.opensolaris.zone value=global value=nonglobal
+set name=org.opensolaris.consolidation value=sic_team
+set name=description value="Network Security Services Utilities"
+set name=pkg.description value="Network Security Services Utilities Programs"
+license nss.license license="MPL 1.1/GPL 2.0/LGPL 2.1"
+set name=variant.arch value=$(MACH)
+depend fmri=system/library/mozilla-nss@$(BUILD_VERSION) type=require
+depend fmri=consolidation/sic_team/sic_team-incorporation type=require
+depend fmri=system/library@$(BUILD_VERSION) type=require
+depend fmri=library/nspr@$(BUILD_VERSION) type=require
+legacy arch=$(MACH) category=system desc="Network Security Services Utilities Programs" \
+    hotline="Please contact your local service provider" name="Network Security Services Utilities" \
+    pkg=SUNWtlsu variant.arch=$(MACH) vendor="OpenIndiana Project" \
+    version=$(IPS_COMPONENT_VERSION),REV=2011.04.21.00.52
+
+dir path=usr
+dir path=usr/bin
+dir path=usr/sfw
+dir path=usr/sfw/bin
+dir path=usr/sfw/bin/$(MACH64)
+
+file path=usr/sfw/bin/addbuiltin
+file path=usr/sfw/bin/certutil
+file path=usr/sfw/bin/cmsutil
+file path=usr/sfw/bin/crlutil
+file path=usr/sfw/bin/modutil
+file path=usr/sfw/bin/pk12util
+file path=usr/sfw/bin/signtool
+file path=usr/sfw/bin/signver
+file path=usr/sfw/bin/ssltap
+
+file path=usr/sfw/bin/$(MACH64)/addbuiltin
+file path=usr/sfw/bin/$(MACH64)/certutil
+file path=usr/sfw/bin/$(MACH64)/cmsutil
+file path=usr/sfw/bin/$(MACH64)/crlutil
+file path=usr/sfw/bin/$(MACH64)/modutil
+file path=usr/sfw/bin/$(MACH64)/pk12util
+file path=usr/sfw/bin/$(MACH64)/signtool
+file path=usr/sfw/bin/$(MACH64)/signver
+file path=usr/sfw/bin/$(MACH64)/ssltap
+
+link path=usr/bin/addbuiltin target=../sfw/bin/addbuiltin
+link path=usr/bin/certutil target=../sfw/bin/certutil
+link path=usr/bin/cmsutil target=../sfw/bin/cmsutil
+link path=usr/bin/crlutil target=../sfw/bin/crlutil
+link path=usr/bin/modutil target=../sfw/bin/modutil
+link path=usr/bin/pk12util target=../sfw/bin/pk12util
+link path=usr/bin/signtool target=../sfw/bin/signtool
+link path=usr/bin/signver target=../sfw/bin/signver
+link path=usr/bin/ssltap target=../sfw/bin/ssltap
+
+link path=usr/sfw/bin/64 target=$(MACH)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/sic_team-incorporation/Makefile	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,30 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=     sic_team-incorporation
+
+include ../../make-rules/ips.mk
+
+PKGMANGLE = true
+PKGLINT=    true
+
+build:
+
+install:
+	[ -d $(PROTO_DIR) ] || mkdir -p $(PROTO_DIR)
+
+clean:
+	[ -d $(BUILD_DIR) ] && rm -rf $(BUILD_DIR)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sic_team/sic_team-incorporation/sic_team-incorporation.p5m	Thu Apr 21 11:06:30 2011 +0100
@@ -0,0 +1,36 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL)". You may
+# only use this file in accordance with the terms of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2011, Andrzej Szeszo
+#
+
+set name=pkg.fmri value=pkg:/consolidation/sic_team/[email protected],$(BUILD_VERSION)
+set name=description value="sic_team consolidation incorporation"
+set name=org.opensolaris.consolidation value=sic_team
+set name=pkg.depend.install-hold value=core-os.sic_team
+set name=pkg.description value="This incorporation constrains packages from the sic_team consolidation."
+set name=pkg.summary value="sic_team consolidation incorporation"
+
+depend fmri=library/java/jss@$(BUILD_VERSION) type=incorporate
+depend fmri=library/nspr@$(BUILD_VERSION) type=incorporate
+depend fmri=system/library/mozilla-nss@$(BUILD_VERSION) type=incorporate
+depend fmri=library/java/commons-logging@$(BUILD_VERSION) type=incorporate
+depend fmri=library/nspr/header-nspr@$(BUILD_VERSION) type=incorporate
+depend fmri=system/library/mozilla-nss/header-nss@$(BUILD_VERSION) type=incorporate
+depend fmri=system/mozilla-nss@$(BUILD_VERSION) type=incorporate
+
+depend [email protected] type=incorporate
+depend [email protected] type=incorporate
+depend [email protected] type=incorporate
+depend [email protected] type=incorporate
+depend [email protected] type=incorporate
+depend [email protected] type=incorporate
+depend [email protected] type=incorporate