source: trunk/README @ 2916

Last change on this file since 2916 was 2916, checked in by Peter, 10 years ago

merge patch release 0.9.2 into trunk. Ignore changes in m4/ax_boost_system.m4 and m4/ax_boost_system.m4 as they have been upgraded in trunk since stable changes.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
  • Property svn:mime-type set to text/x-trac-wiki
File size: 6.7 KB
[2734]1$Id: README 2916 2012-12-19 06:42:59Z peter $
[1939]3= About yat =
[1939]5This directory contains the yat library. For an overview of the
6project, visit
11= Configuring and building yat =
[1262]13 1. If you checked out this project from the subversion repository you
14    must run '`bootstrap`' to initialize the build system.
15 2. Issue '`./configure`' to create the Makefiles. Optionally run
16    configure with '`--enable-debug`', which will turn on debug
17    options.
18 3. Compile with '`make`'.
[2213]19 4. '`make doc`' will generate documentation.
20 5. Optionally do '`make check`' to run test programs.
[1303]21 6. Issue '`make install`' to install the package on your system,
22    documentation will not be installed if documentation was not
[1939]23    generated above. Default installation location is `/usr/local`;
[1303]24    this can be changed with
25    '`./configure --prefix=/dir/to/install/to`'.
[2437]26 7. Optionally do '`make installcheck`' to verify that intallation
27    completed correctly.
[1939]29The `configure` script has additional options; `./configure --help`
30will offer you those choices or refer to Requirements below.
[1059]32= Requirements =
[1262]34Except for the obviously needed C++ compiler there are a few packages
35and programs required for compiling yat and generate supporting
36material. The configure script will look for required programs and
37report failure to meet the requirements. Here we list some of the
[1557]38requirements, but omit required standard utilities such as echo and
[1262]39sed since these are normally available.
[1262]41== Required packages ==
[1262]43=== GSL ===
[1262]45GNU Scientific Library, [ GSL] version
[1939]461.8 or later. If you have GSL installed in a non-standard location,
[2129]47`./configure --with-gsl=DIR` can be useful to provide the location of
48GSL. The `gsl-config` script, which is used to retrieve needed
49compiler and linker flags, is expected to be found in `DIR/bin/`. The
50check for existing GSL can be turned off with option
51`--without-gsl`. This can be useful, for example, if gsl-config is not
52available at configure time but header file will be available at make
[1262]55=== BLAS ===
[1262]57A C implementation of Basic Linear Algebra Subprograms
58([ BLAS]) is required. GSL comes with a
59reference implementation, but you should consider getting a hardware
60optimized implementation. ATLAS provides optimized BLAS (see below).
[1939]62The `configure` script searches for many different BLAS libraries in a
[2019]63specific order (for details refer to `m4/yat_cblas.m4`). If you want
64to use a specific CBLAS library, `./configure --with-cblas=LIB` may be
[2028]65useful. Note, however, that the chosen/detected CBLAS library is not
66hard-coded into the installed libyat, but a user can choose a
[2029]67different CBLAS when she links her application. A way to access which
[2028]68CBLAS was detected during the configuration is to access the
69yat-config script directly or via the autoconf macros included in the
70distribution. If you do want to hard-code a choice of CBLAS into the
71installed libyat, you may provide the appropriate value to LIBS. The
72following line, for example:
[2733]74  #> ./configure LIBS=-lcblas
[2410]76will hard-code the choice of -lcblas into libyat.
[1325]78=== Boost ===
[2153]80[ Boost] version 1.35 or later. If you have Boost
[1939]81installed in a non-standard location, `./configure --with-boost=DIR`
82can be useful to provide the location of Boost. Boost header files are
[2786]83expected to be found in `DIR/include/` and boost libraries are
[2916]84expected to be found in `DIR/lib/`. The `configure` script tries to
85detect libraries `boost_thread` and `boost_thread`. The name of a
86boost library typically depends on its configuration (see boost's
87naming convention) and there may be several versions/configurations of
88the same library installed. The `configure` tries to pick one of the
89available libraries, wchih can be overridden with `./configure
90--with-boost-thread=foo` and `configure --with-boost-system=foo`,
91respectively. The check for boost can be turned off with
[1262]94=== quiet nan ===
[1262]96Quiet NaN's must be supported.
[1353]98=== infinity ===
100infinity for type double must be supported.
[1262]102== Optional packages ==
[1262]104=== ATLAS ===
[1059]106GSL supplies a reference implementation of BLAS. You may want to
[1262]107consider using hardware optimized BLAS. The
108[ ATLAS] software provides an
109automatic hardware optimized BLAS library.
111The detection of ATLAS is supported by the yat configuration script
112but in many cases the ATLAS libraries are installed in
[1262]113non-conventional directory locations. As an example, on Fedora 8,
114ATLAS libraries are
[1059]115located in /usr/lib/atlas or /usr/lib64/atlas depending on your
116hardware architecture. If you have ATLAS installed and the configure
117script fails to locate it, try to add the location to the atlas
[1078]118libraries when running configure:
[2733]120  #> ./configure LDFLAGS="-L/usr/lib64/atlas"
[1262]122=== Doxygen ===
[1442]124[ Doxygen] 1.5 (or newer) is required for
[2557]125generation of the API documentation. If doxygen application is
126missing, generation of API documentation is disabled.
[1272]128= Documentation =
[2488]130The API documentation for the latest release is available in HTML and
131can be found through If you wish to build a
132local copy, issue `make doc` and you will find the documents in
[2870]133directory `doc/html/`.
[1368]135= Developers =
[2733]137See file README.developer for developer specific information.
[2080]139= Mac OS X =
141On Mac OS X you can create a universal library, a library that works
142on multiple systems. You can do this by specifying multiple `-arch`
143options to the compiler (but not to the preprocessor):
145 #> ./configure CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
146                CXXCPP="g++ -E" --disable-dependency-tracking
148This will produce a universal yat library with 4 architectures. If
149your OS X does not support both Power-PC and Intel-based processors,
150you can omit these architectures. Also, required libraries, GSL and
151CBLAS, need to be available as universal libraries with desired
[2119]156Copyright (C) 2003 Jari Häkkinen, Peter Johansson
157Copyright (C) 2004 Jari Häkkinen
158Copyright (C) 2006, 2007, 2008 Jari Häkkinen, Peter Johansson
[2787]159Copyright (C) 2009, 2010, 2011, 2012 Peter Johansson
[1437]161This file is part of yat library,
163The yat library is free software; you can redistribute it and/or
164modify it under the terms of the GNU General Public License as
[1486]165published by the Free Software Foundation; either version 3 of the
[1262]166License, or (at your option) any later version.
168The yat library is distributed in the hope that it will be useful, but
169WITHOUT ANY WARRANTY; without even the implied warranty of
171General Public License for more details.
173You should have received a copy of the GNU General Public License
[1487]174along with yat. If not, see <>.
Note: See TracBrowser for help on using the repository browser.