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