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