====================================================================== Requirements ====================================================================== Operating System ---------------- A recent Linux distribution for Intel x86 or AMD Opteron (x86-64). C++ compiler ------------ - GCC 3.2, 3.3 or 3.4; or - Intel C++ 8.1 Third-party libraries --------------------- - Berkeley DB 4.2.52 or 4.3.21 configured with --enable-cxx. You can download the Berkeley DB source distribution from http://www.sleepycat.com/download Note that Ice for Java is not compatible with version 4.3.21, therefore if you intend to use Ice for Java with Berkeley DB, you must use version 4.2.52 and the option --enable-java. If you are using RedHat 9 and do not want to use NTPL, set LD_ASSUME_KERNEL=2.4.1 before running configure. - expat 1.9x - OpenSSL 0.96 or 0.97 - bzip2 1.0 - readline and ncurses (optional, but used unless you set USE_READLINE to no in config/Make.rules) expat, OpenSSL, bzip2, readline and ncurses are usually available with your Linux distribution. The RPMs for RedHat 8.0 are: expat-devel-1.95.4-1 openssl-devel-0.9.6b-29 bzip2-devel-1.0.2-5 readline-devel-4.3-3 ncurses-devel-5.2-28 If you don't have them, you can download expat from: http://sourceforge.net/projects/expat/ And OpenSSL from: http://www.openssl.org And bzip2 from: http://sources.redhat.com/bzip2 And readline from: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html And ncurses from: http://www.gnu.org/software/ncurses/ncurses.html Python 2.2 ---------- To run the automated test suite, you will need Python 2.2. If you have no interest in running the test scripts, Python is not required. ====================================================================== Compilation and Testing ====================================================================== Extract the Ice archive in any directory you like (for example, in your home directory): $ tar xvfz Ice-.tar.gz Change the working directory to Ice-: $ cd Ice- Edit the file config/Make.rules according to the comments in this file. Make sure that the paths for the third-party libraries are set correctly if they are not installed in the default location /usr/lib and /usr/include. If you want to build Ice with the Intel C++ compiler, first set the following environment variables: $ export CC=icc $ export CXX=icpc Now you're ready to build Ice: $ make This will build the Ice core library, all add-ons, all tests, and all examples. After a successful build, you can run the test suite, provided that you installed Python: $ make test This is equivalent to: $ python allTests.py Note that on some Linux distributions (like RedHat 7.x), Python 2.2 is available as "python2", in which case you must use: $ python2 allTests.py If everything worked out, you should see lots of "ok". In case of a failure, the tests abort with "failed". If you want to try out any of the demos, make sure to add "bin" to PATH and "lib" to LD_LIBRARY_PATH: $ export PATH=`pwd`/bin:$PATH $ export LD_LIBRARY_PATH=`pwd`/lib:$LD_LIBRARY_PATH ====================================================================== 64 bit builds on AMD64 ====================================================================== To build Ice in 64 bit mode, you need to: - Obtain or build all the third party dependencies, and put the 64 bit libraries in the "lib64" directories. For example put Berkeley DB 64 bit libraries in $DB_HOME/lib64. - Set the environment variable LP64 to yes, e.g.: $ export LP64=yes - Build and test as described above (with gcc). ====================================================================== Installation ====================================================================== Simply run "make install". This will install Ice in the "prefix" directory specified in the file Make.rules. After installation, make sure that the /bin directory is in your PATH, and the /lib directory is in your LD_LIBRARY_PATH. When compiling Ice programs, you must also make sure to pass the location of the /include directory to the compiler with the -I option, and the location of the /lib directory with the -L option. If LP64 is set to yes, the libraries are installed in /lib64 and the programs are installed in /bin64. Other files are identical for 32 and 64 bit.