This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Fwd: [Cp-tools-discuss] Building gjdoc+gnujaxp with gcj 4.0]


Hi gcj hackers,

Since it was pointed out that not everybody is subscribed to the
cp-tools-discuss list (the mailinglist for GNU Classpath tools) I
thought forwarding this message might be appropriate since I know lots
of people are really waiting for this. (At least I was really waiting
for a simple 3 step setup to start playing with this!)

Some additional info:
export CVS_RSH="ssh" and then
gjdoc CVS is:
cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/classpath co gjdoc
gnujxp CVS is:
cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/classpathx co jaxp

You can try it out on GNU Classpath when configuring with --enable-gjdoc
(it doesn't completely work yet [there is strange error when generating
the documentation for javax.naming.event], but for smaller selection of
packages it works nicely - just generated all documentation for the
java.applet, java.awt and java.beans and subpackages for example).

Happy docing!

Thanks Julian for all your hard work on gjdoc.
Thanks Chris for all your hard work on gnujaxp.
Thanks gcj and GNU Classpath hackers for all your hard work!

Cheers,

Mark
--- Begin Message --- Here are instructions for building a standalone gjdoc binary with gcj 4.0. Of course this is only a preliminary solution until the autotooled build is fixed.

-> fetch gcc cvs head, compile and install.

I tested these instructions with gcj (GCC) 4.0.0 20041125 (experimental) which I configured as follows:

--program-suffix=-4.0 --enable-languages=java --with-system-zlib --enable-java-awt=gtk --disable-static --disable-checking --disable-multilib

Current cvs head is known to fail if srcdir==builddir, so choose an alternate build directory.

-> make sure the correct gcj is on your path by doing gcj --version

-> get latest gjdoc and gnujaxp sources from cvs head

-> for now, apply the attached patch to gnujaxp. It adds missing imports, removes static bindings to libxmlj, and fixes a bug in the implementation of XSLT's substring function.

-> change to some temporary build directory

-> execute the following:

JAXP_ROOT_DIR=/path/to/jaxp \
	GJDOC_ROOT_DIR=/path/to/gjdoc \
	make -f /path/to/gjdoc/examples/Makefile

-> you should end up with a binary called "gjdoc" in the current directory.

Known issues:
- since gnujaxp doesn't correctly support disable-output-escaping ATM, a couple of  s end up in the output.
- if you select an alternate stylesheet and click on a link, the stylesheet is reverted to the default.


Julian

cvs diff: Diffing source
cvs diff: Diffing source/gnu
cvs diff: Diffing source/gnu/xml
cvs diff: Diffing source/gnu/xml/aelfred2
cvs diff: Diffing source/gnu/xml/dom
Index: source/gnu/xml/dom/ImplementationSource.java
===================================================================
RCS file: /cvsroot/classpathx/jaxp/source/gnu/xml/dom/ImplementationSource.java,v
retrieving revision 1.6
diff -u -r1.6 ImplementationSource.java
--- source/gnu/xml/dom/ImplementationSource.java	12 Nov 2004 18:44:30 -0000	1.6
+++ source/gnu/xml/dom/ImplementationSource.java	27 Nov 2004 17:29:43 -0000
@@ -68,7 +68,11 @@
     acc.add(new gnu.xml.dom.DomImpl());
     try
       {
-        acc.add(new gnu.xml.libxmlj.dom.GnomeDocumentBuilder());
+        acc.add(Class.forName("gnu.xml.libxmlj.dom.GnomeDocumentBuilder").newInstance());
+      }
+    catch (Exception e)
+      {
+        // libxmlj not available
       }
     catch (UnsatisfiedLinkError e)
       {
cvs diff: Diffing source/gnu/xml/dom/ls
cvs diff: Diffing source/gnu/xml/libxmlj
cvs diff: Diffing source/gnu/xml/libxmlj/dom
cvs diff: Diffing source/gnu/xml/libxmlj/sax
cvs diff: Diffing source/gnu/xml/libxmlj/transform
cvs diff: Diffing source/gnu/xml/libxmlj/util
cvs diff: Diffing source/gnu/xml/pipeline
cvs diff: Diffing source/gnu/xml/transform
Index: source/gnu/xml/transform/Stylesheet.java
===================================================================
RCS file: /cvsroot/classpathx/jaxp/source/gnu/xml/transform/Stylesheet.java,v
retrieving revision 1.22
diff -u -r1.22 Stylesheet.java
--- source/gnu/xml/transform/Stylesheet.java	26 Nov 2004 14:22:42 -0000	1.22
+++ source/gnu/xml/transform/Stylesheet.java	27 Nov 2004 17:29:45 -0000
@@ -78,6 +78,7 @@
 import gnu.xml.xpath.Root;
 import gnu.xml.xpath.Test;
 import gnu.xml.xpath.XPathImpl;
+import gnu.xml.xpath.NodeTypeTest;
 
 /**
  * An XSL stylesheet.
Index: source/gnu/xml/transform/TransformerImpl.java
===================================================================
RCS file: /cvsroot/classpathx/jaxp/source/gnu/xml/transform/TransformerImpl.java,v
retrieving revision 1.15
diff -u -r1.15 TransformerImpl.java
--- source/gnu/xml/transform/TransformerImpl.java	24 Nov 2004 20:48:42 -0000	1.15
+++ source/gnu/xml/transform/TransformerImpl.java	27 Nov 2004 17:29:45 -0000
@@ -67,6 +67,7 @@
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
+import org.w3c.dom.Text;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.ext.LexicalHandler;
cvs diff: Diffing source/gnu/xml/util
cvs diff: Diffing source/gnu/xml/xpath
Index: source/gnu/xml/xpath/SubstringFunction.java
===================================================================
RCS file: /cvsroot/classpathx/jaxp/source/gnu/xml/xpath/SubstringFunction.java,v
retrieving revision 1.2
diff -u -r1.2 SubstringFunction.java
--- source/gnu/xml/xpath/SubstringFunction.java	19 Nov 2004 21:53:16 -0000	1.2
+++ source/gnu/xml/xpath/SubstringFunction.java	27 Nov 2004 17:29:46 -0000
@@ -75,28 +75,26 @@
     int p = (val2 instanceof Double) ?
       ((Double) val2).intValue() :
         (int) Math.round(_number(context, val2));
-    int l = s.length() + 1;
-    if (arg3 != null)
-      {
-        Object val3 = arg3.evaluate(context, pos, len);
-        l = (val3 instanceof Double) ?
-          ((Double) val3).intValue() :
-            (int) Math.round(_number(context, val3));
-      }
     p--;
-    l--;
     if (p < 0)
       {
         p = 0;
       }
-    if (l > s.length())
-      {
-        l = s.length();
-      }
-    if (l < 0)
+
+    int l = s.length() - p;
+
+    if (arg3 != null)
       {
-        l = 0;
+        Object val3 = arg3.evaluate(context, pos, len);
+        int v3 = (val3 instanceof Double) ?
+          ((Double) val3).intValue() :
+            (int) Math.round(_number(context, val3));
+        if (v3 < l) 
+          {
+            l = v3;
+          }
       }
+
     return s.substring(p, p + l);
   }
 
cvs diff: Diffing source/javax
cvs diff: Diffing source/javax/xml
cvs diff: Diffing source/javax/xml/datatype
cvs diff: Diffing source/javax/xml/namespace
cvs diff: Diffing source/javax/xml/parsers
cvs diff: Diffing source/javax/xml/transform
Index: source/javax/xml/transform/TransformerFactory.java
===================================================================
RCS file: /cvsroot/classpathx/jaxp/source/javax/xml/transform/TransformerFactory.java,v
retrieving revision 1.14
diff -u -r1.14 TransformerFactory.java
--- source/javax/xml/transform/TransformerFactory.java	31 Oct 2004 15:17:01 -0000	1.14
+++ source/javax/xml/transform/TransformerFactory.java	27 Nov 2004 17:29:46 -0000
@@ -106,7 +106,16 @@
           }
       }
     while (className == null && count < 3);
-    return new gnu.xml.libxmlj.transform.GnomeTransformerFactory();
+    try 
+      {
+        Class t = Class.forName("gnu.xml.libxmlj.transform.GnomeTransformerFactory");
+        return (TransformerFactory) t.newInstance();
+      }
+    catch (Exception e)
+      { 
+        throw new TransformerFactoryConfigurationError(e,
+                                                       "error instantiating class " + className);
+      } 
   }
   
   private static String getFactoryClassName(ClassLoader loader, int attempt)
cvs diff: Diffing source/javax/xml/transform/dom
cvs diff: Diffing source/javax/xml/transform/sax
cvs diff: Diffing source/javax/xml/transform/stream
cvs diff: Diffing source/javax/xml/validation
cvs diff: Diffing source/javax/xml/xpath
cvs diff: Diffing source/org
cvs diff: Diffing source/org/w3c
cvs diff: Diffing source/org/w3c/dom
cvs diff: Diffing source/org/w3c/dom/bootstrap
cvs diff: Diffing source/org/w3c/dom/css
cvs diff: Diffing source/org/w3c/dom/events
cvs diff: Diffing source/org/w3c/dom/html
cvs diff: Diffing source/org/w3c/dom/ls
cvs diff: Diffing source/org/w3c/dom/ranges
cvs diff: Diffing source/org/w3c/dom/stylesheets
cvs diff: Diffing source/org/w3c/dom/traversal
cvs diff: Diffing source/org/w3c/dom/views
cvs diff: Diffing source/org/w3c/dom/xpath
cvs diff: Diffing source/org/xml
cvs diff: Diffing source/org/xml/sax
cvs diff: Diffing source/org/xml/sax/ext
cvs diff: Diffing source/org/xml/sax/helpers
_______________________________________________
Cp-tools-discuss mailing list
Cp-tools-discuss@gnu.org
http://lists.gnu.org/mailman/listinfo/cp-tools-discuss

--- End Message ---

Attachment: signature.asc
Description: This is a digitally signed message part


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]