The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is Netscape Security Services for Java. The Initial Developer of the Original Code is Netscape Communications Corporation. Portions created by Netscape are Copyright (C) 1998-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. **************************************************************** Ninja 1.5 Build 1998???? **************************************************************** ** ** Directory organization of this release ** **************************************************************** The domestic version of this release is located under: - /m/dist/ninja/domestic/JSS_1_5 The export version of this release is located under: - /m/dist/ninja/export/JSS_1_5 Each version of the release consists of the following: - a JAR file, xpclass.jar, that contains all of the public class files. - a JAR file, xpclass_g.jar, that contains all of the debuggable public class files. - directories: where is of the form [_][_]_.OBJ For example, IRIX6.2_DBG.OBJ (debug build) SunOS5.5.1_OPT.OBJ (optimized build) SunOS5.5.1_gcc_DBG.OBJ (built using the non-native compiler gcc) OSF1V4.0_PTH_DBG.OBJ (PTH means the implementation uses pthreads.) AIX4.1_PTH_USER_DBG.OBJ (PTH_USER means the implementation is a combination of user-level threads and pthreads.) Under each directory is the file, mdbinary.jar. This is a JAR file containing the compiled programs and libraries. ************************************************************ ** ** Java Cross-platform code ** (Debug and Optimized, Domestic and Export) ** ************************************************************ All java code is built once per tree instance, and MUST be built using the latest JDK available on all of the platforms. At the current time, this is JDK 1.1.6. ************************************************************ ** ** Platforms supported for Native JNI code ** (Debug and Optimized, Domestic and Export) ** ************************************************************ The following platforms are supported: - Solaris on sparc: 2.5.1 (built with cc and JDK 1.1.6 libraries running on native threads [Sun threads]) - Solaris on sparc: 2.6 (symbolically linked to corresponding Solaris 2.5.1 releases) - WIN95: 4.0 (built with Visual C++ 5.0 and JDK 1.1.6 libraries running on non-fiberous threads) - WINNT: 4.0 (symbolically linked to corresponding Windows 95 4.0 releases) - HP-UX: B.11.00 (built with cc and JDK 1.1.5 libraries running on native threads [pthreads]) ************************************************************ ** ** Future platforms supported for Native JNI code ** (Debug and Optimized, Domestic and Export) ** ************************************************************ The following platforms will be supported in the near future: - AIX: 4.3 (built with cc and JDK 1.1.6 libraries running on native threads [pthreads]) - IRIX: 6.2 (built with cc with "-n32" and JDK 1.1.5 libraries running on native threads [pthreads]) - OSF/1: 4.0D (built with cc and JDK 1.1.6 libraries running on native threads [pthreads]) - Linux: 2.1 (built with gcc and JDK 1.1.3 libraries running on native threads [pthreads]) ************************************************************ ** ** How to build Ninja yourself ** ************************************************************ To build this version of Ninja yourself, execute the following instructions: On UNIX machines (assuming tcsh): For the FIRST INSTANCE of Ninja in your build tree: 1) IMPORTANT: If you have NOT built Ninja in your current tree, and this is the FIRST platform that you are building it on, then you MUST set the following environment variable in order to build JAVA and JNI headers!!! Additionally, this platform MUST utilize the latest "approved" version of the JDK, since JAVA and JNI headers are only ever built ONCE per instance of build tree!!! Note that at the time of this writing, the only acceptible INITIAL UNIX build platforms are Sun, AIX, and OSF/1. setenv NS_USE_JDK_TOOLSET 1 2) You MAY need to set the following environment variables for this platform: setenv CVSROOT /m/src setenv USE_PTHREADS 1 setenv USE_N32 1 setenv JAVA_HOME [...] 3) You MAY need to unset the following environment variables for this platform: unsetenv CVSREAD unsetenv JAVAC unsetenv JAVAH unsetenv JMC unsetenv USE_PTHREADS unsetenv USE_N32 4) Check out the following source code directories (FIRST TIME ONLY!) cvs co ns/coreconf cvs co -r JSS_1_5 ns/ninja cvs co ns/security/lib cvs co -r JSS_1_5 ns/security/lib/manifest.mn 5) Setup ns/coreconf to reference the correct compiler paths for this platform cd ns/coreconf source ./.cshrc 6) Build "nsinstall" executable for this platform gmake gmake BUILD_OPT=1 7) Import Ninja support files for this platform cd ../ninja gmake import gmake BUILD_OPT=1 import 8) Change to the security directory cd ../security/lib 9) Build the security library gmake private_export gmake gmake BUILD_OPT=1 10) Change back to the ninja directory cd ../../ninja 11) Create Ninja private exports (FIRST TIME ONLY!) gmake private_export 12) Begin building Ninja from a "fresh" tree (FIRST TIME ONLY!) gmake clean gmake BUILD_OPT=1 clean 13) Build "standard debuggable" version for this UNIX (e. g. - SunOS5.5.1_DBG.OBJ) gmake 14) Build "standard optimized" version for this UNIX (e. g. - SunOS5.5.1_OPT.OBJ) gmake BUILD_OPT=1 15) You MUST always ensure that the following environment variable is UNSET for ALL of the remaining builds!!!: unsetenv NS_USE_JDK_TOOLSET 16) Build "_g debuggable" version for this UNIX (e. g. - SunOS5.5.1_DBG.OBJ) gmake JDK_DEBUG=1 For the FOLLOWING INSTANCES of Ninja in your build tree: 17) You MUST always ensure that the following environment variables are UNSET for ALL of the remaining builds!!!: unsetenv NS_USE_JDK_TOOLSET unsetenv USE_PTHREADS unsetenv USE_N32 18) You MAY need to set the following environment variables for this platform: setenv CVSROOT /m/src setenv USE_PTHREADS 1 (this MUST be set on IRIX ONLY!!!) setenv USE_N32 1 (this MUST be set on IRIX ONLY!!!) setenv JAVA_HOME [...] 19) You MAY need to unset the following environment variables for this platform: unsetenv CVSREAD unsetenv JAVAC unsetenv JAVAH unsetenv JMC 20) Setup ns/coreconf to reference the correct compiler paths for this platform cd ns/coreconf source ./.cshrc 21) Build "nsinstall" executable for this platform gmake gmake BUILD_OPT=1 22) Import Ninja support files for this platform cd ../ninja gmake import gmake BUILD_OPT=1 import 23) Change to the security directory cd ../security/lib 24) Build the security library gmake private_export gmake gmake BUILD_OPT=1 25) Change back to the ninja directory cd ../../ninja 26) Build "standard debuggable" version for this UNIX (e. g. - SunOS5.5.1_DBG.OBJ) gmake 27) Build "standard optimized" version for this UNIX (e. g. - SunOS5.5.1_OPT.OBJ) gmake BUILD_OPT=1 28) Build "_g debuggable" version for this UNIX (e. g. - SunOS5.5.1_DBG.OBJ) gmake JDK_DEBUG=1 On Windows NT machines (assuming DOS shell): For the FIRST INSTANCE of Ninja in your build tree: 1) IMPORTANT: If you have NOT built Ninja in your current tree, and this is the FIRST platform that you are building it on, then you MUST set the following environment variable in order to build JAVA and JNI headers!!! Additionally, this platform MUST utilize the latest "approved" version of the JDK, since JAVA and JNI headers are only ever built ONCE per instance of build tree!!! set NS_USE_JDK_TOOLSET=1 2) Set the following environment variables for this platform: set OS_TARGET=WIN95 set CVSROOT=:pserver:@cvsserver:/m/src set JAVA_HOME=[location of local JDK] (use UNIX forward slashes!) 3) You MAY need to unset the following environment variables for this platform: unset CVSREAD unset JAVAC unset JAVAH unset JMC 4) Check out the following source code directories (FIRST TIME ONLY!) cvs login cvs co ns/coreconf cvs co -r JSS_1_5 ns/ninja cvs co ns/security/lib cvs co -r JSS_1_5 ns/security/lib/manifest.mn 5) Import Ninja support files for this platform cd ..\ninja gmake import gmake BUILD_OPT=1 import 6) Change to the security directory cd ..\security\lib 7) Build the security library gmake private_export gmake gmake BUILD_OPT=1 8) Change back to the ninja directory cd ..\..\ninja 9) Create Ninja private exports (FIRST TIME ONLY!) gmake private_export 10) HACK: Use the MKS toolkit shell (sh.exe) instead of shmsdos.exe!!! copy shmsdos.exe shmsdos.sav copy [MKS home]\sh.exe shmsdos.exe 11) Begin building Ninja from a "fresh" tree (FIRST TIME ONLY!) gmake clean gmake BUILD_OPT=1 clean 12) Build "standard debuggable" WIN954.0_DBG.OBJ version gmake 13) Build "standard optimized" WIN954.0_OPT.OBJ version gmake BUILD_OPT=1 14) You MUST always ensure that the following environment variable is UNSET for ALL of the remaining builds!!!: unset NS_USE_JDK_TOOLSET 15) Build "_g debuggable" WIN954.0_DBG.OBJ version gmake JDK_DEBUG=1 16) IMPORTANT: Restore original shmsdos.exe!!! copy shmsdos.sav shmsdos.exe