1****More detailed information for building from source are given in the file
2document/internal/SetupGuide.doc.
3 
4Building ECLiPSe
5----------------
6
7You should have the following environment settings:
8
9    export ECLIPSEARCH=<architecture to build for>
10
11	the ECLiPSe architecture name, e.g.
12	    i386_linux
13	    x86_64_linux
14	    sparc_sunos5
15	    i386_sunos5
16	    x86_64_sunos5
17	    i386_nt           ("nt" stands for Windows)
18	    x86_64_nt         ("nt" stands for Windows)
19	    ppc_macosx
20	    i386_macosx
21
22    export ECLIPSETHIRDPARTY=/vol/Eclipse/thirdparty
23
24    	this points to the location of third-party components that
25	ECLiPSe builds interfaces for, e.g. gmp, cplex, xpress-mp,
26	flexlm, graphviz, grappa.  Configure will detect the presence
27	of components there and build interfaces if possible.
28
29    CONFIG_SITE=config.$ECLIPSEARCH
30
31    	if a file config.$ECLIPSEARCH exists in this directory, you should have
32	this setting during configure, otherwise it can be left unset.
33
34
35Simple build from toplevel directory (e.g. for i386_linux, sparc_sunos5):
36
37	./configure
38	make -f Makefile.$ECLIPSEARCH
39
40Build on multi-architecture machine, e.g. 64 bit build on 32/64 bit solaris:
41
42	export ECLIPSEARCH=x86_64_sunos5
43	CONFIG_SITE=config.$ECLIPSEARCH ./configure --build=x86_64-pc-solaris2.9
44	make -f Makefile.$ECLIPSEARCH
45
46Cross build, e.g. for Windows on Linux:
47
48	export ECLIPSEARCH=i386_nt
49	CONFIG_SITE=config.$ECLIPSEARCH ./configure --host=i586-mingw32msvc
50	make -f Makefile.$ECLIPSEARCH
51
52Build for Windows on Windows/Cygwin:
53
54	export ECLIPSEARCH=i386_nt
55	CONFIG_SITE=config_cygwin.i386_nt ./configure
56	make -f Makefile.$ECLIPSEARCH
57
58Build for Windows64 on Windows64/Cygwin:
59
60	export ECLIPSEARCH=x86_64_nt
61	CONFIG_SITE=config_cygwin.x86_64_nt ./configure --build=x86_64-w64-mingw32
62	make -f Makefile.$ECLIPSEARCH
63
64To build the documentation:
65
66	make -f Makefile.$ECLIPSEARCH install_documents
67
68
69
70Configure
71---------
72
73There is a single configure in the toplevel directory.
74It generates several makefiles and some config.h.
75For a native build, you can just configure with no arguments.
76The following options are relevant:
77
78 --help
79
80 --prefix		where to install everything (not fully supported
81 			at the moment - use RUNME after compile instead)
82
83 --host=i386-mingw32msvc	cross-configure for i386_nt
84
85  --enable-debug          compile with all debugging features
86
87  --without-osi
88  --with-osi[=versions]
89			Build ECLiPSe interface to COIN-OR's OSI.  You can
90			optionally specify a version list, e.g. 
91			"clpcbc symclp". In this case, version specifies the
92			actual solver(s) that OSI is connected to. 
93			Default is to build all available versions.
94
95  --without-cplex
96  --with-cplex[=versions]
97                        Build ECLiPSe interface to ILOG Cplex.  You can
98                        optionally specify a version list, e.g. "81 90".
99                        Default is to build all available versions.
100
101  --without-xpress
102  --with-xpress[=versions]
103                        Build ECLiPSe interface to Dash Xpress-MP.  You can
104                        optionally specify a version list, e.g. "1427 1525".
105                        Default is to build all available versions.
106
107  --without-java
108  --with-java[=dir]     Build ECLiPSe/Java interface.
109                        If dir is given, this is taken as the Java installation
110                        to use, otherwise the value of a JAVA_HOME environment
111                        variable is used, otherwise a number of standard
112                        locations is searched for a Java installation.
113                        Default:yes
114
115  --without-flexlm
116  --with-flexlm[=version]
117                        Build ECLiPSe interface to FlexLM. You can optionally
118                        specify a version preference list.  Default is to
119                        build first available.
120
121  --with-graphviz[=versions]
122                        Copy graphviz executables into the installation.
123                        You can optionally specify a version list, e.g. "1.10".
124                        Default is to use the first available version.
125
126  --with-mysql[=versions]
127                        Build ECLiPSe database interface.  You can optionally
128                        specify a version list, e.g. "50".
129                        Default is to build the first available version.
130
131
132
133Makefiles
134---------
135
136For historical reasons, there are two variants:
137
138For Shm and Kernel, a Makefile is created in their $ECLIPSEARCH
139subdirectory (from src/Makefile.in). To run the local build,
140cd to {Shm,Kernel}/$ECLIPSEARCH and invoke
141	make install
142The intermediate objects are built in the $ECLIPSEARCH directories,
143from the sources found using make's VPATH.
144
145Other directories (icparc_solvers etc) have a Makefile.$ECLIPSEARCH
146(generated from Makefile.in). To run the local build there,
147you need to call
148	make -f Makefile.$ECLIPSEARCH install
149
150There is also a Makefile.$ECLIPSEARCH (generated from Makefile.in)
151in the toplevel directory which builds everything.
152
153Most makefiles implement the targets:
154	install
155	clean
156	archclean	% clean up machine-dependent targets
157	ecoclean	% remove .eco files (needed when format changed)
158
159After changing a Makefile.in or a config.h.in you can
160regenerate the Makefiles or config.h by invoking
161	./config.status
162in the toplevel directory, but only if you have not
163configured on a different architecture since the original
164configure!!! If you have, you must rerun toplevel configure.
165
166
167Known Problems
168--------------
169
170Some Gnu-make versions older than 3.80 don't work properly with the
171Makefile in icparc_solvers.
172
173Installation using RUNME
174------------------------
175
176After successfully compiling ECLiPSe, you can install your ECLiPSe binaries 
177into a different location from where you compiled it by running RUNME.
178RUNME will also allow you to configure executable files such as tkeclipse
179to your local settings.
180
181