summaryrefslogtreecommitdiffstats
path: root/openjdk/build/README.txt
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2012-06-02 21:54:55 +0000
committer Eric Hameleers <alien@slackware.com>2012-06-02 21:54:55 +0000
commita25145c219cd6fce72df2e6d6a1b442b5c177b16 (patch)
tree7c3845fbea86db110f64809f11d97cafb00a4f90 /openjdk/build/README.txt
parent410d666cbd26abe3b913330f89ea64a42e7a9506 (diff)
downloadasb-a25145c219cd6fce72df2e6d6a1b442b5c177b16.tar.gz
asb-a25145c219cd6fce72df2e6d6a1b442b5c177b16.tar.xz
Initial revision
Diffstat (limited to 'openjdk/build/README.txt')
-rw-r--r--openjdk/build/README.txt108
1 files changed, 108 insertions, 0 deletions
diff --git a/openjdk/build/README.txt b/openjdk/build/README.txt
new file mode 100644
index 00000000..dff63085
--- /dev/null
+++ b/openjdk/build/README.txt
@@ -0,0 +1,108 @@
+Creating an OpenJDK (and OpenJRE) package for Slackware
+=======================================================
+
+In this directory you will find everything I used to create packages
+for OpenJDK's JRE and JDK as an alternative to Oracle's binary-only releases
+of Java. Oracle no longer allows these binaries to be included with OS
+distributions, so Slackware will no longer provide updates for them.
+Build instructions for OpenJDK are provided further down in this README.
+
+Or, you can just install my pre-compiled packages which I *also* provide!
+
+If you want to install and just use my pre-built packages, then all you
+really need are "rhino" which is the JavaScript engine, "icedtea-web"
+which is the browser plugin, and one of "openjdk" or "openjre" packages,
+depending of course on whether you need the full Java compiler suite or
+only the Java Runtime Environment.
+
+You will also need packages for apache-ant, xalan, xerces if you want to
+compile OpenJDK yourself.
+
+
+Compiling OpenJDK from source
+=============================
+
+Compiling OpenJDK can be done in two ways. The first way is called
+"bootstrapping", which means compiling OpenJDK when there is no version of
+the OpenJDK installed yet. The SlackBuild uses the gcc java compiler for this
+bootstrap (which means you have to have the "gcc-java" package installed).
+The second way is to compile OpenJDK using an already installed version of
+OpenJDK. Such a pre-installed OpenJDK must have the same version (meaning,
+OpenJDK 7 can only be compiled by another OpenJDK 7) and must have been
+created with the help of "IcedTea" like my own openjdk,SlackBuild does.
+
+The variable "BOOTSTRAP" inside the openjdk.SlackBuild determines which java
+compiler will be used to compile OpenJDK. If you want to use gcc's java, then
+the command will be:
+
+ # BOOTSTRAP=YES ./openjdk.SlackBuild
+
+If you already have OpenJDK installed then you would start the compilation with:
+
+ # BOOTSTRAP=NO ./openjdk.SlackBuild
+
+By default, the variable in the script is set to "NO" which means that if
+you run the openjdk.SlackBuild script without any parameters, it will use
+a pre-esisting OpenJDK to compile the new package.
+
+This SlackBuild script creates _two_ packages, the "openjdk" and the "openjre".
+If you only need a Java Runtime then all you should install is the openjre
+package - it is much smaller than the openjdk package. The "openjdk" package
+contains the Java compiler and SDK.
+
+
+Java Web Plugin for OpenJDK
+===========================
+
+Suns's binary distribution of Java (taken over by Oracle) contains a Java web
+plugin for mozilla-compatible browsers. This plugin was not open sourced,
+so OpenJDK needs a different solution in order to provide a web plugin for Java.
+To this purpose, you have to (build and) install the "icedtea-web" package.
+First compile and install OpenJDK (you need the openjdk package for this, not
+the JRE), then compile icedtea-web. The SlackBuild script plus sources are
+in a separate directory. Note that the icedtea-web plugin is not as mature
+as the plugin which is shipped with Oracle's binaries.
+
+
+Build-time requirements for OpenJDK and icedtea-web
+===================================================
+
+A word of caution. All stable Slackware versions including "13.37" are
+not able to compile OpenJDK "out of the box". You have to enhance two core
+packages: "gcc" and "seamonkey" so that they become capable of compiling
+OpenJDK. Use the following instructions to fix-up gcc and seamonkey.
+Either alternative is OK but running the shell scripts (the "b" options)
+is a *lot* faster than recompiling these big packages. These core Slackware
+packages have be fixed in slackware-current.
+
+1) Choose one of these two alternatives for gcc:
+ a) rebuild gcc with "--enable-java-home". You can use the gcc.SlackBuild
+ of Slackware-current which was modified accordingly.
+ b) or run the script "create_gcj_jvm.sh" to achieve the same result you
+ would get by rebuilding gcc: which is to create a directory structure
+ of symlinks, which emulates the presence of a Sun JDK but for the
+ GCC Java compiler.
+2) Choose one of these two alternatives for seamonkey:
+ a) rebuild seamonkey using the seamonkey.SlackBuild of Slackware-current
+ which was modified accordingly.
+ b) or run the script "fix_seamonkey_pkgconfig.sh" which does two things:
+ add a pkgconfig file "libxul.pc" and modify an existing pkgconfig
+ file, "seamonkey-plugin.pc"
+
+Furthermore, you will need to have the following Apache Ant related packages
+installed before starting the compilation of OpenJDK.
+* apache-ant
+* rhino
+* xalan
+* xerces
+
+Please note that after installing apache-ant you will have to logout and
+login again to initialize the ANT_HOME environment variable.
+
+Only the "rhino" package has to remain on your system in order to *run* OpenJDK.
+The other three (apache-ant, xalan and xerces) are only needed during the
+compilation and can optionally be removed afterwards (but why should you).
+
+
+==============================================================================
+Eric Hameleers <alien at slackware.com>, 25-feb-2012