]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/pxp/pxp/doc/INSTALL.xml
Initial revision
[helm.git] / helm / DEVEL / pxp / pxp / doc / INSTALL.xml
diff --git a/helm/DEVEL/pxp/pxp/doc/INSTALL.xml b/helm/DEVEL/pxp/pxp/doc/INSTALL.xml
new file mode 100644 (file)
index 0000000..ac7832d
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE readme SYSTEM "readme.dtd" [
+
+<!ENTITY % common SYSTEM "common.xml">
+%common;
+
+<!ENTITY m "<em>PXP</em>">
+
+]>
+
+<readme title="INSTALL - PXP, the XML parser for O'Caml">
+  <sect1><title>The "pxp" package</title>
+    <sect2><title>Prerequisites</title>
+      <p>
+&m; requires that the <a href="&url.netstring-project;">netstring package
+</a> is already installed. &m; works
+only with O'Caml 3.00 (the support for 2.04 has been dropped).
+The installation
+procedure defined in the Makefile requires <a
+href="&url.findlib-project;">findlib</a> to work<footnote><em>Findlib</em> is a
+package manager, see the file ABOUT-FINDLIB.</footnote>.
+</p>
+    </sect2>
+
+    <sect2><title>Configuration</title>
+      <p>
+It is not necessary to configure PXP; but you can switch off the UTF-8
+support by setting the variable
+
+<code>
+UTF8_SUPPORT = no
+</code>
+
+in Makefile.conf. In this case, the UTF-8 modules are not even compiled.
+- By default, the UTF-8 support is enabled.
+</p>
+
+      <p>
+Note: Compiling the UTF-8 modules lasts 10 minutes on my 400 Mhz Pentium II;
+if this is too long, you can set UTF8_SUPPORT to "no".</p>
+    </sect2>
+
+    <sect2><title>Compilation</title>
+      <p>
+The Makefile defines the following goals:
+</p>
+      <ul>
+       <li>
+         <p>make all</p>
+         <p>compiles with the bytecode compiler and creates the files
+pxp_types.cma, pxp_lex_iso88591.cma, pxp_lex_utf8.cma (*), pxp_engine.cma,
+and pxp_utf8.cmo (*). The (*) files are not built if the UTF-8 support
+is switched off.</p>
+       </li>
+       <li>
+         <p>make opt</p>
+         <p>compiles with the native compiler and creates  the files
+pxp_types.cmxa, pxp_lex_iso88591.cmxa, pxp_lex_utf8.cmxa (*), pxp_engine.cmxa,
+and pxp_utf8.cmx (*). The (*) files are not built if the UTF-8 support
+is switched off.</p>
+       </li>
+      </ul>
+    </sect2>
+
+    <sect2><title>Installation</title>
+      <p>
+The Makefile defines the following goals:</p>
+      <ul>
+       <li>
+         <p>make install</p>
+         <p>installs the bytecode archives, the interface definitions, and if
+present, the native archives in the default location of <em>findlib</em> as
+package "pxp"
+</p>
+       </li>
+       <li>
+         <p>make uninstall</p>
+         <p>removes the package "pxp"</p>
+       </li>
+       <li>
+         <p>make markup-install</p>
+         <p>installs the Markup compatibility API as package "markup"</p>
+       </li>
+       <li>
+         <p>make markup-uninstall</p>
+         <p>removes the package "markup"</p>
+       </li>
+      </ul>
+    </sect2>
+
+    <sect2>
+      <title>Usage with the help of "findlib"</title>
+      <p>You can refer to the parser as the findlib package "pxp":
+
+<code>
+ocamlfind ocamlc -package pxp ...
+</code>
+
+By default, the UTF-8 support modules will be linked in. If you do not need
+them, you may define the predicate "pxp_without_utf8", which causes that the
+UTF-8 relevant parts are not linked with your program; the difference in size
+is about 1 MB:
+
+<code>
+ocamlfind ocamlc -package pxp -predicates pxp_without_utf8 ...
+</code>
+
+Note that you can also reduce the size of the resulting executable by
+specifying Netstring-related predicates (e.g. netstring_only_iso); see the
+documentation of Netstring.
+</p>
+    </sect2>
+
+    <sect2>
+      <title>Linking with the archives directly</title>
+      <p>If you need UTF-8 support, you must link your program as follows:
+
+<code>
+ocamlc ... pxp_types.cma pxp_lex_iso88591.cma pxp_lex_utf8.cma 
+           pxp_engine.cma pxp_utf8.cmo ...
+</code>
+
+If you do not need UTF-8, the following suffices:
+
+<code>
+ocamlc ... pxp_types.cma pxp_lex_iso88591.cma pxp_engine.cma ...
+</code>
+
+</p>
+    </sect2>
+
+  </sect1>
+
+  <sect1><title>The examples</title>
+    <p>
+In the "examples" directory you find several applications of &m;. They require
+that &m; has been installed using <em>findlib</em>. See the Makefiles in the
+directories for descriptions of "make" goals.
+</p>
+  </sect1>
+
+  <sect1><title>Trouble shooting</title>
+    <sect2><title>Solaris</title>
+      <p>
+The "make" utility of Solaris does not work properly enough; there is a bug
+in it that prevents the so-called suffix rules from being recognized. There
+are two solutions:</p>
+      <ul>
+       <li><p>Install GNU make and use it instead of Solaris make. This is
+the recommended way to solve the problem, as GNU make can process almost
+every Makefile from open source projects, and you will never have problems
+with building software again.</p></li>
+       <li><p>Add the following lines to Makefile.code:
+         <code>
+%.cmx: %.ml
+        $(OCAMLOPT) -c $&lt;
+
+%.cmo: %.ml
+        $(OCAMLC) -c $&lt;
+
+%.cmi: %.mli
+        $(OCAMLC) -c $&lt;
+
+%.ml: %.mll
+        ocamllex $&lt;
+</code>
+</p></li>
+      </ul>
+    </sect2>
+  </sect1>
+</readme>
\ No newline at end of file