1----------------------------------------------
2ECLiPSe - Constraint Logic Programming System
3----------------------------------------------
4
5-----------------------------------------------------------------------------
6ECLiPSe on UNIX/Linux  (see README_WIN for Windows, README_MACOSX for MacOSX)
7-----------------------------------------------------------------------------
8
9***Please read INSTALL first if you are compiling from source. You do not
10need the binary files described here.
11
12Unpacking
13---------
14
15You should have gotten the following files, either on CD or by ftp.
16There are different versions of these files for different machine
17architectures. These are tar-files compressed with gzip.
18
19If you are downloading from SourceForge, these file names may have
20additional version (and platform) specification like
21
22     eclipse_basic_5_10_57_i386_linux.tgz 
23
24that are required to make the filename unique. 
25
26Base:
27    README_UNIX			The file you are reading now
28    eclipse_basic.tgz		Kernel and basic libraries
29    eclipse_doc.tgz		Documentation (html,txt,man,pdf)
30
31Optional:
32    eclipse_misc.tgz		Free/3rd party libraries
33    if_osiclpcbc.tgz            Interface to COIN-OR's open source solvers 
34                                CLP and CBC
35    if_osisymclp.tgz            Interface to COIN-OR's open source solvers 
36                                SYMPHONY and CLP (prototype, not available
37                                on some platforms)
38
39Support:
40    tcltk.tgz			A matching Tcl/Tk release (8.5)
41    				(you may have that already).
42				Needed for the tkeclipse development GUI.
43    editors_eclipse_support.tgz Support for various editors for editing
44                                ECLiPSe code.       
45
46These other files are only needed under special circumstances:
47    eclipse_rt.tgz		Runtime only (subset of eclipse_basic.tgz)
48    if_xpressXY.tgz		Interface to XPRESS-MP version XY
49
50
51Make a directory for ECLiPSe on your machine (in the following
52we will write this directory as <eclipsedir>) and move the
53distribution files there.
54
55Uncompress and untar the files in this directory using tar, e.g.
56
57    % tar xpfz eclipse_basic.tgz
58
59or, if your version of tar doesn't support the z option, use
60
61    % gunzip -c eclipse_basic.tgz | tar xpf -
62
63Do the same for all the .tgz files you have downloaded.
64
65This will create the ECLiPSe directory structure below the
66current directory.
67
68Note that you can always add optional components later without
69having to repeat the installation process below.
70
71
72Installation
73------------
74
75If you are installing from source, first compile ECLiPSe as described in
76the file INSTALL (see also the file document/internal/SetupGuide.doc for 
77more detailed help). After compiling ECLiPSe, you can run the installation 
78script as described below.
79
80If you are installing from the binary packages, run the installation script:
81
82    % ./RUNME
83
84This will prompt you for the necessary information and create
85the eclipse executables in <eclipsedir>/bin/<arch> (where <arch>
86stands for one of the supported machine architectures).
87
88
89To run ECLiPSe
90--------------
91
92Add <eclipsedir>/bin/<arch> to your PATH, e.g.
93
94    % PATH=$PATH:/usr/local/eclipse/bin/sparc_sunos5		(sh/bash)
95 or
96    % setenv path ($path /usr/local/eclipse/bin/sparc_sunos5)	(csh)
97
98It is normally not necessary to set any environment variables in order
99to run eclipse. ECLiPSe is simply called from the command line as:
100
101    % eclipse		(command-line interface)
102or
103    % tkeclipse		(GUI version, needs Tcl/Tk)
104
105If you use the ECLiPSe embeddable library, your may have to set
106$LD_LIBRARY_PATH to include <eclipsedir>/lib/<arch> to enable
107the dynamic linker to find it.
108
109
110Further notes on installation
111-----------------------------
112
113The ECLiPSe installation directory may be shared between machines
114with different hardware/operating system architectures, e.g.
115i386_linux and sparc_sunos5. To do so, just unpack the distributions
116for the different architectures in the same installation directory.
117All architecture-dependent files will go in separate subdirectories.
118
119When you are doing the installation on a networked file system, it is
120recommended that you specify to the installation script a pathname
121under which the directory can be found on all the client machines. 
122If there is no such unique pathname, then users will have to set the
123environment variable ECLIPSEDIR according to where the directory can
124be found on the machine they are on.
125
126
127Documentation
128-------------
129
130The installation subdirectory <eclipsedir>/doc contains html and pdf
131versions of the user documentation. To read the html documentation,
132set your browser to e.g.
133
134    file:<eclipsedir>/doc/index.html
135
136
137The printable documentation is contained in the files:
138
139    tutorial.pdf	Tutorial
140
141    userman.pdf		Basic user manual
142
143    libman.pdf		Library user manual (constraints libraries)
144
145    embedding.pdf	Interfacing and embedding manual
146
147The Reference Manual (the detailed descriptions of the built-in
148predicates and all the libraries) is available exclusively in html
149format and via the help/1 predicate from within ECLiPSe.
150
151Unix man pages are under
152
153    <eclipsedir>/man
154
155
156Installation hints for the 'eplex' library
157----------------------------------------------
158
159The ECLiPSe 'eplex' library is an interface to an external LP/MIP solver,
160which can be either an open-source COIN-OR solver (www.coin-or.org), or a
161commercial Xpress-MP or CPLEX solver.
162
163For the COIN-OR solvers, you do not need a licence to use them. For 
164Xpress-MP or CPLEX, you need to own a separate Xpress-MP or CPLEX licence
165to use the 'eplex' library with the corresponding solver. In this case, you
166need to download a version of 'eplex' that matches the version of the
167Xpress-MP licence that you have (although it may be possible to
168run an older version with a newer licence). For example, for Xpress-MP X.Y,
169you need the package if_xpressXY.tgz. You can install a mix of different
170versions by just unpacking multiple packages.
171
172Note that we no longer distribute the CPLEX solver for eplex in binary 
173form, as the CPLEX library is statically linked. You need to compile 
174ECLiPSe from source if you want to use CPLEX with the `eplex' library.
175
176To tell ECLiPSe which licence you have on which machine, add the
177necessary lines to the text file <eclipsedir>/lib/eplex_lic_info.ecl,
178according to the instructions provided there.  With this setup, you
179can load the eplex library from ECLiPSe by just invoking lib(eplex),
180and you will get the correct version for each machine.
181
182Academic licences for CPLEX are available from ILOG at
183    http://www.ilog.com/partners/academic/license.cfm
184Academic licences for XPRESS-MP are available from Dash Optimization at
185    http://www.dashoptimization.com/home/users/app.html
186
187
188Installation hints for the 'dbi' library
189-----------------------------------------
190
191The ECLiPSe 'dbi' library is an interface to an external
192database. Currently the MySQL database is supported. Because of licensing
193issues, we do not include the MySQL dynamic library (libmysqlclient.so) in
194our binary distributions. You will need to obtain these libraries from
195MySQL AB:
196
197    http://dev.mysql.com/downloads
198
199When 'dbi' is loaded (for example by lib(dbi)), it will need to find
200and load this MySQL dynamic library. If it is in one of the standard system
201library paths (such as /usr/lib), then the library can be loaded without
202further action. Otherwise, you can either:
203
204 1) Add the pathname of where your libmysqlclient.so is to your shell's
205 LD_LIBRARY_PATH environment variable, e.g. if the library is located in
206 '/my/mysql/lib', and you are using bash shell:
207
208    export LD_LIBRARY_PATH=/my/mysql/lib:$LD_LIBRARY_PATH
209or:
210 2) Copy libmysqlclient.so* files to where your ECLiPSe dynamic libraries
211 are, i.e. <eclipsedir>/lib/<arch>. Remember that libmysqlclient.so may
212 just be a pointer to the real version specific library
213 (e.g. libmysqlclient.so.15.0.0).
214
215You need to be able to connect to a running MySQL server in order to use
216the library. This can be on your local machine, or on a remote machine
217reachable from your network.
218
219
220Graphics
221--------
222
223The Embedding Interface and the TkEclipse Development Environment require
224Tcl/Tk version 8.3 or later.  If this is already installed on your machine
225(normally the case on Linux), you can use your existing installation by
226giving the version and the location of the corresponding library
227directories (e.g. /usr/lib) to the RUNME install program.
228
229Alternatively, you can use the tcltk.tgz package which comes with the
230ECLiPSe distribution. This goes into the tcltk subdirectory of the
231ECLiPSe installation. To make Tcl/Tk/scripts find the files, you
232may have to add <eclipsedir>/tcltk/<arch>/bin to your PATH and
233possibly add <eclipsedir>/tcltk/<arch>/lib to your $LD_LIBRARY_PATH.
234
235Several visualisation features require Java. The recommended version
236is at least 1.4, but versions from 1.2 upwards should still work.
237
238
239Emacs ECLiPSe mode
240------------------
241
242If you use the GNU emacs editor, an ECLiPSe mode is now provided for it.
243It is not part of the ECLiPSe distribution, and you need to download it
244separately. **Version 20 (or later) of GNU emacs is required.** 
245This mode is based on the prolog mode by Umeda, and provides extensive 
246syntax colouring  for ECLiPSe-specific features. See http://www.gnu.org/ 
247if you need more information on GNU and its software. 
248
249In order to use this mode, add the following line to your .emacs file:
250
251(autoload 'eclipse-mode "<eclipsedir>/lib_public/eclipse.el" "ECLIPSE editing mode" t)
252
253where <eclipsedir> is the path to your ECLiPSe installation directory.
254
255You may also need to add these lines so that the .pl and .ecl extensions
256are recognised to be ECLiPSe programs:
257
258(setq auto-mode-alist (cons '("\\.pl" . eclipse-mode) auto-mode-alist))
259(setq auto-mode-alist (cons '("\\.ecl" . eclipse-mode) auto-mode-alist))
260
261The eclipse.el file needs to be placed somewhere where your emacs can find
262it.
263
264See the start of the eclipse.el file for some instructions on using this mode.
265
266
267----------------------------------------------
268General Topics
269----------------------------------------------
270
271Contact Addresses
272-----------------
273
274News about ECLiPSe are available from the following sources
275
276    http://www.eclipseclp.org
277
278    http://www.sourceforge.net/projects/eclipse-clp
279
280    comp.constraints    (via news server or e.g. groups.google.com)
281
282Via http://www.eclipseclp.org/mailinglist.html you can subscribe to
283one of the ECLiPSe mailing lists
284
285    eclipse-clp-announce@lists.sf.net	(release announcements)
286    eclipse-clp-users@lists.sf.net	(user discussion)
287
288Problem and bug reports can be submitted via the web site
289
290    http://www.eclipseclp.org/bugs.html
291
292Please take the time to report problems. Your feedback helps us to
293make ECLiPSe more reliable!
294
295
296Directory structure
297-------------------
298
299Directories in the binary distribution:
300
301	bin		executable files
302	lib		supported libraries, object files
303	lib_public	third party Prolog libraries
304	include		include files for C/C++ interface
305	doc		online documentation, pdf files and example code
306	man		Unix-style man pages
307
308	tcltk		a matching version of Tcl/Tk
309
310