2 <!-- ============= Installation ============================== -->
4 <sect1 id="sec_install">
5 <title>Installation</title>
8 <title>Installing &appname; from sources</title>
10 <para>Currently, the only intended way to install &appname; is starting
11 from its source code. </para>
14 <title>Getting the source code</title>
16 <para>You can get the &appname; source code in two ways:
19 <listitem> <para> go to the <ulink type="http"
20 url="http://matita.cs.unibo.it/download.shtml">download
21 page</ulink> and get the <ulink type="http"
22 url="http://matita.cs.unibo.it/sources/matita-latest.tar.gz"
23 >latest released source tarball</ulink>;</para> </listitem>
25 <listitem> <para> get the development sources from <ulink type="http"
26 url="http://helm.cs.unibo.it/websvn/listing.php?repname=helm&path=%2F&sc=0">our
27 SVN repository</ulink>. You will need the
28 <application>components/</application> and
29 <application>matita/</application> directories from the
30 <filename>trunk/helm/software/</filename> directory, plus the
31 <filename>configure</filename> and <filename>Makefile*</filename>
32 stuff from the same directory. </para>
34 <para>In this case you will need to run
35 <command>autoconf</command> before proceding with the building
36 instructions below.</para> </listitem>
43 <sect3 id="build_requirements">
44 <title>Requirements</title>
46 <para>In order to build &appname; from sources you will need some
47 tools and libraries. They are listed below.
50 <title>Note for Debian users</title>
52 <para>If you are running a <ulink type="http"
53 url="http://www.debian.org">Debian GNU/Linux</ulink> distribution
54 you can have APT install all the required tools and libraries by
55 adding the following repository to your
56 <filename>/etc/apt/sources.list</filename>: <programlisting>
57 deb <ulink type="http"
58 url="http://people.debian.org/~zack">http://people.debian.org/~zack</ulink> unstable helm
59 </programlisting> and installing the
60 <application>helm-matita-deps</application> package.</para>
65 <title>Required tools and libraries</title>
69 <application> <ulink type="http"
70 url="http://caml.inria.fr">OCaml</ulink> </application>
73 <para> the Objective Caml compiler, version 3.09 or above </para>
79 <application> <ulink type="http"
80 url="http://www.ocaml-programming.de/packages/">Findlib</ulink>
84 <para> OCaml package manager, version 1.1.1 or above</para>
90 <application> <ulink type="http"
91 url="http://www.xs4all.nl/~mmzeeman/ocaml/">OCaml
92 Expat</ulink> </application>
95 <para>OCaml bindings for the <application><ulink type="http"
96 url="http://expat.sourceforge.net/">expat</ulink>
97 library</application> </para>
103 <application> <ulink type="http"
104 url="http://gmetadom.sourceforge.net/">GMetaDOM</ulink>
108 <para>OCaml bindings for the <application><ulink type="http"
109 url="http://gdome2.cs.unibo.it/">Gdome 2</ulink>
110 library</application></para>
116 <application> <ulink type="http"
117 url="http://www.bononia.it/~zack/ocaml-http.en.html">OCaml
118 HTTP</ulink> </application>
121 <para> OCaml library to write HTTP daemons (and clients) </para>
127 <application> <ulink type="http"
128 url="http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html">LablGTK</ulink>
132 <para> OCaml bindings for the <application> <ulink type="http"
133 url="http://www.gtk.org"> GTK+</ulink> library
134 </application>, version 2.6.0 or above </para>
140 <application> <ulink type="http"
141 url="http://helm.cs.unibo.it/mml-widget/">GtkMathView</ulink>
145 <application> <ulink type="http"
146 url="http://helm.cs.unibo.it/mml-widget/">LablGtkMathView</ulink>
150 <para> GTK+ widget to render <ulink type="http"
151 url="http://www.w3.org/Math/">MathML</ulink> documents and its
152 OCaml bindings </para>
158 <application> <ulink type="http"
159 url="http://gtksourceview.sourceforge.net/">GtkSourceView</ulink>
163 <application> <ulink type="http"
164 url="http://helm.cs.unibo.it/software/lablgtksourceview/">LablGtkSourceView</ulink>
168 <para> extension for the GTK+ text widget (adding the typical
169 features of source code editors) and its OCaml bindings </para>
175 <application> <ulink type="http"
176 url="http://www.mysql.com">MySQL</ulink> </application>
179 <application> <ulink type="http"
180 url="http://raevnos.pennmush.org/code/ocaml-mysql/">OCaml
181 MySQL</ulink> </application>
184 <para> SQL database and OCaml bindings for its client-side library
186 <para> The SQL database itself is not strictly needed to run
187 &appname;, but we stronly encourage its use since a lot of
188 features are disabled without it. Still, the OCaml bindings of
189 the library are needed at compile time.</para>
195 <application> <ulink type="http"
196 url="http://ocamlnet.sourceforge.net/">Ocamlnet</ulink>
200 <para> collection of OCaml libraries to deal with
201 application-level Internet protocols and conventions </para>
207 <application> <ulink type="http"
208 url="http://www.cduce.org/download.html#side">ulex</ulink>
212 <para> Unicode lexer generator for OCaml </para>
218 <application> <ulink type="http"
219 url="http://cristal.inria.fr/~xleroy/software.html#camlzip">CamlZip</ulink>
223 <para> OCaml library to access <filename>.gz</filename> files
228 </variablelist> </para>
232 <sect3 id="build_instructions">
233 <title>Instructions</title>
235 <para> Once you get the source code the installations steps should be
236 quite familiar.</para>
238 <para> First of all you need to configure the build process executing
239 <userinput>./configure</userinput>. This will check that all needed
240 tools and library are installed. You may need to pass on the command
241 line some of the parameters riported below:
244 <title><application>configure</application> parameters</title>
248 <listitem><para>&TODO;</para></listitem>
255 <para> Then you will manage the build process using <application><ulink
257 url="http://www.gnu.org/software/make/">make</ulink></application>
258 as usual. Below are reported the targets you have to invoke in sequence
259 to build and install.
262 <title><application>make</application> targets</title>
265 <term><userinput>world</userinput></term>
267 <para>builds components needed by &appname; and &appname; itself
268 (in bytecode only or in both bytecode and native code depending
269 on the availability of the OCaml native code compiler) </para>
274 <term><userinput>library</userinput></term>
276 <para>uses the (just built) <application>matitac</application>
277 compiler to build the &appname; standard library. </para>
278 <para>For this step you will need a working SQL database (for
279 indexing the standard library while you are compiling it). See
280 &TODO; for instructions on how to set it up.</para>
285 <term><userinput>install</userinput></term>
287 <para>installs &appname; related tools, standard library and the
288 needed runtime stuff in the proper places on the filesystem