Compatibility classes for other VMs are as follows and can be found both under src/main and src/test for the different distributions:
- JDK 1.4 - jdk1.4, test/jdk1.4
- JDK 1.3 - jdk1.3, test/jdk1.3
- JDK 1.2 - jdk1.2
- JDK 1.1 - jdk1.1
- JDK 1.0 - jdk1.0
- J2ME - j2me
The build scripts that come with the full distribution allow creation of the different releases by using the tree under src and test/src, excluding trees under core, prov, pkix, and pg excluding classes that are not appropriate and copying in the required compatibility classes from the directories containing compatibility classes appropriate for the distribution. Building is done using a mixture of ant and Unix shell scripts - in the case of the builds for JDK 1.3, JDK 1.4, and JDK 1.5 the shell scripts are only used to provide an environment for ant to run in - for example to build the full JDK 1.5 distribution (provider plus libraries):
ant -f jdk15.xml build-provider ant -f jdk15.xml buildsh build15+
will do the right thing, providing you have JAVA_HOME correctly set and you have set bc-build.properties so that JavaMail, JAF, and JUnit are on your classpath.
If you want to try create a build for yourself, using your own environment, the best way to do it is to start with the build for the distribution you are interested in, make sure that builds, and then modify your build scripts to do the required exclusions and file copies for your setup, otherwise you are likely to get class not found exceptions. The final two caveats to this are that as the J2ME distribution includes some compatibility classes starting in the java package, you need to use an obfuscator to change the package names before attempting to import a midlet using the BC API, and that if you are trying to build a provider for the Sun JCE you need a Sun signing certificate.