=================================== INSTALL INSTRUCTIONS FOR IT++ 3.8.0 =================================== This information is also available on the homepage http://itpp.sourceforge.net/. If you run into problems please check the discussion forum on SourceForge (http://www.sourceforge.net/projects/itpp/). Requirements for Installing IT++ -------------------------------- IT++ should compile without errors or warnings on most GNU/Linux systems and on most other UNIX like system like Solaris, Mac OS X, or Cygwin. It is possible to compile IT++ on Windows NT/2000/XP using Microsoft's Visual C++ .Net. On Linux/Unix/Cygwin/Mac OS X systems we will assume that you have at least the following GNU software installed on your computer: * GNU make, version 3.72.1 or later, it may run with other versions also (run make -v ). * GCC compilers (gcc, g77, and g++) version 3.3 or later (run gcc -v). * To compile the documentation you need Doxygen 1.2.18 (or later) and LaTeX. We strongly recommend that you use the latest versions of the GCC compilers if possible. We don't actively work on supporting older compiler versions and they may therefore (without prior notice) become unsupported in future versions of IT++. In order to use all functionality provided in the IT++ library it is required that you have some external libraries compiled. Most important are ATLAS (or CBLAS), LAPACK and FFTW. It is possible to compile and use IT++ without these packages, but the functionality will be reduced. We therefore recommend that you take the time and effort to compile IT++ properly with support for the external libraries. Obtaining the IT++ Source Code ------------------------------ IT++ is released under the Gnu Public License (GPL) and hence the source code of the IT++ library is available for free download. To obtain the source code for IT++, go to the IT++ project page on SourceForge: http://www.sourceforge.net/projects/itpp/ and download the file consisting of the latest distribution (currently it++3.8.0.tar.gz). If possible, also download a binary distribution of the it++external library for the platform you use. If you e.g. use linux on a Pentium4 machine you should download it++external_1.0_Linux_P4SSE2.tar.gz. If a binary distribution of the it++external library does not exist you have to compile one yourself. ============== Compiling IT++ ============== To compile your IT++ library you need to download the file it++.tar.gz from https://sourceforge.net/projects/itpp/ Untar, unzip and change directory with: tar xvfz it++.tar.gz cd it++ Next download a precompiled external library (contains ATLAS, LAPACK and FFTW) for your platform. The file is named it++external___.tar.gz. The following are available: * it++external_1.0_Linux_P4SSE2.tar.gz: if you are running Linux on an Intel P4 machine. * it++external_1.0_WinNT_PIIISSE1.tar.gz: if you are running Cygwin under Windows NT/XP on an Intel PIII machine. Save, untar and unzip the file in it++/lib directory: tar xvfz it++.tar.gz If there is no precompiled version of the external library for your platform you have two choices: either compile one yourself or compile it++ without support of the external library (use the no-extlib flag in configure). Next, in the it++ directory, you need to run the configure script: ./configure where are one or more of these alternatives: * all Create optimized, debugging, profiling and shared libraries. * opt Create an optimized library (default). * no-opt Do not create an optimized library. * debug Create a debugging library. * no-debug Do not create a debugging library. * prof Create a profiling library. * no-prof Do not create a profiling library. * shared Create a shared (dynamically linked) library. * no-shared Do not create a shared library. * exceptions Use throw instead of abort(). * matlab Enable the use of matlab. (Auto detected) * no-matlab Disable the use of matlab. * pentium3 Compile for pentium3 with SSE1 instructions. * pentium4 Compile for pentium4 with SSE2 instructions. * sparc Compile for sparc. (Auto detected) * CC Use the CC compiler instead of g++ (experimental) * no-extlib Do not use an external library (i.e. no CBLAS, LAPACK or FFTW support) * no-cblas Don't use BLAS routines (depreciated) * no-lapack Don't use LAPACK routines (depreciated) * no-fftw Don't use FFTW routines (depreciated) * help Help text for the configure script E.g. use ./configure to compile an optimized version of IT++ with CBLAS and LAPACK support. Then run make to compile the IT++ package. IT++ should compile without any errors or warnings. If this is not the case, please file a bug-report on the IT++ project page on SorceForge. Please include information about your OS and compiler version. To remove all files generated by gmake you can write: make clean ========================= Instructions for Mac OS X ========================= To compile and use IT++ under Mac OS X, you should install the latest version of Apple's developer tools. The tools are delivered with Mac OS X, but you may need to unpack them. Problems have been encountered with Apple's GCC version 2.95.2 and 3.1. However, with Apple's version GCC 3.3 which can be downloaded from Apple, IT++ has compiled successfully. BLAS and LAPACK support is obtained with the vecLib framework. Hence, the it++external library should only include FFTW and HARU, but you must then use Apple's GCC compiler. If your processor has AltiVec support, the configure script shall detect this and ensure that Apple's GCC is invoked with the -faltivec option. In summary, to install IT++ on Mac OS X, you simply execute the configure script ./configure opt debug to compile an optimized and a debug version of IT++ with CBLAS and LAPACK support. Then run make to compile the IT++ package. To build the documentation, tools like LaTeX and Doxygen are required. These are available from FINK, http://fink.sourceforge.net/ ============================== Compiling the external library ============================== If there is no precompiled external library, we recommend that you try to compile one yourself. Download the source file it++external.tar.gz from * https://sourceforge.net/projects/itpp/ Untar, unzip and change directory with: tar xvfz it++external.tar.gz cd it++external Run the configure script ./configure You will have to answer a few questions. In most cases you should be able to use the default setting. Then run make to compile the external library. This may take a few hours! The external library can be found in the directory it++external/lib/_/ and is named it++external.a. Move this to your it++/lib directory and compile IT++. By default you will get CBLAS, LAPACK, FFTW and HARU. For increased speed please replace CBLAS by ATLAS by giving the flag atlas to the configure script. If you use MacOS and the vecLib framework, you should compile it++external without CBLAS and LAPACK. Hence configure with ./configure no-cblas no-lapack and then run make to compile the MacOS version of the library. =========================================== Compiling IT++ without the external library =========================================== If you don't want to compile IT++ with the external library this is also possible. However there are some drawbacks: You will get a library with poorer performance and less functionality. Furthermore, several of the programs in the tests folder will not compile without CBLAS and LAPACK. Inside the IT++ source code we use the following defines: NO_CBLAS, NO_LAPACK, and NO_FFTW and consequently, IT++ must be compiled with the flags -DNO_CBLAS, -DNO_LAPACK, and -DNO_FFTW to disable code sections that uses the external libraries. In Unix, Linux, and Cygwin, CBLAS, LAPACK and FFTW are used by default settings of the configure script. You can disable these code sections by calling the configure script with the following options: ./configure no-extlib After that you can compile IT++ without the external library support by simply entering make When you compile your own programs that includes some IT++ functionality you will need to use the flags -DNO_CBLAS, -DNO_LAPACK and -DNO_FFTW as well. This is because many of the ifndef sections that contains CBLAS, LAPACK and FFTW library calls are located in the include files of IT++ (Note: This was changed in IT++ 3.7.1). It is also possible to use the flag -DNO_EXTLIB that indirectly defines the other flags. If you have some but not all of the packages CBLAS, LAPACK and FFTW you can configure IT++ to use the packages you have by feeding the configure script with the correct values (see the help text for configure).