<commit_before>README
======

This directory contain the Harmony class library code.

Contents
--------
After checking out the code onto disk at <EXTRACT_DIR> you should find the
following directories under <EXTRACT_DIR> :

*  make     - support for building the source code and packaging the results.

*  depends  - support files (both text and binary) that are required to build
              the class libraries and any native libraries required. Includes
              several third party source files as detailed in the file
              Harmony/depends/oss/README.txt.
               
*  doc      - configuration files and images that are required to generate
              HTML documentation of the Java and C source using the Doxygen
              documentation system. Pre-genenerated HTML is included. 
               
*  modules - Java source files that can be compiled into the class library
              component files
              
*  native-src -  C language source files plus the required makefiles that
                 together can be used to build the natives libraries required
                 by the Java class library components to function correctly.
                   


Pre-requisites for Building
---------------------------
In order to build the Java and C source contained in the modules and native-src
directories, it is necessary to configure the following tools in the user 
environment. That is, the working environment should be such that the PATH 
environment variable contains all of the directories where the executables of
the tools listed below are located and that all of those executables can be 
successfully invoked from the command line.


* C compiler - on Windows, the Microsoft(R) 32-bit C/C++ Compiler and on
               Linux, the GNU project C/C++ Compiler.

* Java compiler - e.g. as delivered in a Java SDK. The compiler must be 
                  capable of handling Java 1.4 source.
                  See http://www.ibm.com/developerworks/java/jdk/index.html
                  
                  Although it cannot be invoked through an executable, it is 
                  also possible to use the JDT compiler as delivered in a
                  standard Eclipse download to accomplish the compiling of the 
                  source under the modules directory. See the section on 
                  "Modifying the Java Build Compiler" for more details. 
                  
* Apache Ant - the Java based build tool. See http://ant.apache.org

* Doxygen - the open source documentation system for a variety of programming 
            languages including C, C++ and Java.
            See http://www.doxygen.org
            

The top-level Ant script <EXTRACT_DIR>/make/build.xml has a default target 
which builds both the Java source and C source files. It is expected
therefore that, at a minimum, a C compiler and a Java compiler be available.
Doxygen is only necessary if generation of HTML documentation from the
source code is to be carried out by invoking Ant with the "doc" target on
the <EXTRACT_DIR>/make/build.xml script. As a convenience, pre-generated
HTML files are already stored in subversion.



Building
--------
The simplest way to get started is to change directory into
<EXTRACT_DIR>/make and then type "ant" to run Apache Ant against the
default target of the build.xml file. Provided that both a C compiler and a Java
compiler are available, Ant will proceed to compile all Java source beneath
the <EXTRACT_DIR>/modules folders and all C source beneath the
<EXTRACT_DIR>/native-src folders.


Building Java
-------------
The class files output from the Java compilation will be assembled into a set
of JAR files which reflect the proposed components of the class libraries (see
http://wiki.apache.org/harmony/ClassLibrary for more information). Together with
the required support files, these JAR files will then be laid out in the boot
directory of the following directory tree structure ...

<EXTRACT_DIR>
       |
       \---deploy
             |
             \---jre
                  |
                  +---bin           <- classlibrary native code & launcher
                  |   |
                  |   +---default   <- VM-specific files for launcher's default VM
                  |   +---vm1       <- VM-specific files for 'vm1'
                  |   \---vm2       <- VM-specific files for 'vm2', and so on
                  |
                  \---lib
                      |
                      +---boot      <- common JARs for bootclasspath
                      | 
                      +---ext       <- extensions directory
                      |
                      \---security
    


Building Natives
----------------
Next, the source files contained under <EXTRACT_DIR>/native-src will be
built using the available C compiler. The output from this stage will be the 
creation of a launcher executable (java.exe on Windows, java on Linux) in the 
bin directory of the above layout together with a number of shared libraries
(with the .dll extension on Windows, and .so on Linux). 

A record of the progress of the native build step is kept in the text file 
<EXTRACT_DIR>/native-src/<target platform>/build.log where
<target platform> will have the value "win.IA32" or "linux.IA32". The contents
of this file are especially useful in tracking down problems in your build 
environment. For example, on Windows if the native build exits on error and 
the resulting build.log file contains the message :

fatal error U1052: file 'ntwin32.mak' not found

this is an indication that the required build environment has not been properly
configured in the working console window. 



Build Output
------------
The supplied source is built into a set of Java class libraries and the native 
shared libraries necessary to support their correct functioning. In order to 
be used to run a compiled Java application the built class libraries still
require a virtual machine component. <commit_msg>Patch applied for HARMONY-129 (README should not mention the old native-src/*/build.log file)<commit_after>README
======

This directory contain the Harmony class library code.

Contents
--------
After checking out the code onto disk at <EXTRACT_DIR> you should find the
following directories under <EXTRACT_DIR> :

*  make     - support for building the source code and packaging the results.

*  depends  - support files (both text and binary) that are required to build
              the class libraries and any native libraries required. Includes
              several third party source files as detailed in the file
              Harmony/depends/oss/README.txt.
               
*  doc      - configuration files and images that are required to generate
              HTML documentation of the Java and C source using the Doxygen
              documentation system. Pre-genenerated HTML is included. 
               
*  modules - Java source files that can be compiled into the class library
              component files
              
*  native-src -  C language source files plus the required makefiles that
                 together can be used to build the natives libraries required
                 by the Java class library components to function correctly.
                   


Pre-requisites for Building
---------------------------
In order to build the Java and C source contained in the modules and native-src
directories, it is necessary to configure the following tools in the user 
environment. That is, the working environment should be such that the PATH 
environment variable contains all of the directories where the executables of
the tools listed below are located and that all of those executables can be 
successfully invoked from the command line.


* C compiler - on Windows, the Microsoft(R) 32-bit C/C++ Compiler and on
               Linux, the GNU project C/C++ Compiler.

* Java compiler - e.g. as delivered in a Java SDK. The compiler must be 
                  capable of handling Java 1.4 source.
                  See http://www.ibm.com/developerworks/java/jdk/index.html
                  
                  Although it cannot be invoked through an executable, it is 
                  also possible to use the JDT compiler as delivered in a
                  standard Eclipse download to accomplish the compiling of the 
                  source under the modules directory. See the section on 
                  "Modifying the Java Build Compiler" for more details. 
                  
* Apache Ant - the Java based build tool. See http://ant.apache.org

* Doxygen - the open source documentation system for a variety of programming 
            languages including C, C++ and Java.
            See http://www.doxygen.org
            

The top-level Ant script <EXTRACT_DIR>/make/build.xml has a default target 
which builds both the Java source and C source files. It is expected
therefore that, at a minimum, a C compiler and a Java compiler be available.
Doxygen is only necessary if generation of HTML documentation from the
source code is to be carried out by invoking Ant with the "doc" target on
the <EXTRACT_DIR>/make/build.xml script. As a convenience, pre-generated
HTML files are already stored in subversion.



Building
--------
The simplest way to get started is to change directory into
<EXTRACT_DIR>/make and then type "ant" to run Apache Ant against the
default target of the build.xml file. Provided that both a C compiler and a Java
compiler are available, Ant will proceed to compile all Java source beneath
the <EXTRACT_DIR>/modules folders and all C source beneath the
<EXTRACT_DIR>/native-src folders.


Building Java
-------------
The class files output from the Java compilation will be assembled into a set
of JAR files which reflect the proposed components of the class libraries (see
http://wiki.apache.org/harmony/ClassLibrary for more information). Together with
the required support files, these JAR files will then be laid out in the boot
directory of the following directory tree structure ...

<EXTRACT_DIR>
       |
       \---deploy
             |
             \---jre
                  |
                  +---bin           <- classlibrary native code & launcher
                  |   |
                  |   +---default   <- VM-specific files for launcher's default VM
                  |   +---vm1       <- VM-specific files for 'vm1'
                  |   \---vm2       <- VM-specific files for 'vm2', and so on
                  |
                  \---lib
                      |
                      +---boot      <- common JARs for bootclasspath
                      | 
                      +---ext       <- extensions directory
                      |
                      \---security
    


Building Natives
----------------
Next, the source files contained under <EXTRACT_DIR>/native-src will be
built using the available C compiler. The output from this stage will be the 
creation of a launcher executable (java.exe on Windows, java on Linux) in the 
bin directory of the above layout together with a number of shared libraries
(with the .dll extension on Windows, and .so on Linux). 

On Windows if the native build exits with the message :

fatal error U1052: file 'ntwin32.mak' not found

this is an indication that the required build environment has not been properly
configured in the working console window. 



Build Output
------------
The supplied source is built into a set of Java class libraries and the native 
shared libraries necessary to support their correct functioning. In order to 
be used to run a compiled Java application the built class libraries still
require a virtual machine component. 
{'fraction_non_alphanumeric': 0.05970786708806697, 'fraction_numerical': 0.0029896643034082173, 'mean_word_length': 2.1858503401360543, 'pattern_counts': {'":': 0, '<': 36, '<?xml version=': 0, '>': 24, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2694811', 'n_tokens_mistral': 2793, 'n_tokens_neox': 2618, 'n_words': 1468}