The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/MPL/

Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF 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.

- <platform> directories: where <platform> is of the form
  <os-name><os-version>[_<compiler>][_<implementation strategy>]_<DBG/OPT>.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 <platform> 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:<username>@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