Commit acc4267f7206fbc0a20fda72c8778a2892807400
1 parent
5f76923a
Restructure user documentation
Showing
24 changed files
with
36 additions
and
578 deletions
doc/source/admin/download.rst
| 1 | -.. _sec_download: | |
| 1 | +.. _download: | |
| 2 | 2 | |
| 3 | 3 | Download |
| 4 | 4 | ======== |
| ... | ... | @@ -7,7 +7,7 @@ The latest GammaLib release is |
| 7 | 7 | `gammalib-1.6.0 <http://cta.irap.omp.eu/ctools/releases/gammalib/gammalib-1.6.0.tar.gz>`_ |
| 8 | 8 | (29 May 2019). |
| 9 | 9 | |
| 10 | -Below a list of older GammaLib releases. Please read the :ref:`sec_release` to | |
| 10 | +Below a list of older GammaLib releases. Please read the :ref:`release` to | |
| 11 | 11 | learn more about new features and corrected bugs in a given release. |
| 12 | 12 | |
| 13 | 13 | To download an older release, click on the corresponding release number: | ... | ... |
doc/source/admin/index.rst
doc/source/admin/install_conda.rst
doc/source/admin/install_devel.rst
| 1 | -.. _sec_install_devel: | |
| 1 | +.. _install_devel: | |
| 2 | 2 | |
| 3 | 3 | Installing the development version |
| 4 | 4 | ================================== |
| ... | ... | @@ -16,7 +16,7 @@ Download the source tarball from the following link |
| 16 | 16 | |
| 17 | 17 | - `GammaLib <http://cta.irap.omp.eu/ctools/releases/gammalib/gammalib-1.7.0.dev.tar.gz>`_ |
| 18 | 18 | |
| 19 | -and follow the instructions on :ref:`sec_install_source`. | |
| 19 | +and follow the instructions on :ref:`install_source`. | |
| 20 | 20 | |
| 21 | 21 | |
| 22 | 22 | Git repository |
| ... | ... | @@ -62,7 +62,7 @@ the following command sequence (the code will be installed into the |
| 62 | 62 | $ export GAMMALIB=/usr/local/gamma |
| 63 | 63 | $ source $GAMMALIB/bin/gammalib-init.sh |
| 64 | 64 | |
| 65 | -Please read the :ref:`sec_install_source` section if you need more information | |
| 65 | +Please read the :ref:`install_source` section if you need more information | |
| 66 | 66 | on how to install GammaLib. |
| 67 | 67 | |
| 68 | 68 | .. note:: | ... | ... |
doc/source/admin/install_source.rst
| 1 | -.. _sec_install_source: | |
| 1 | +.. _install_source: | |
| 2 | 2 | |
| 3 | 3 | Installation from source code |
| 4 | 4 | ============================= |
| 5 | 5 | |
| 6 | 6 | Compiling GammaLib from source is the recommended method to install the package |
| 7 | 7 | in case that you do not use Anaconda (if you use Anaconda, please follow |
| 8 | -the instructions at :ref:`sec_install_conda`, and better do not try to compile | |
| 8 | +the instructions at :ref:`install_conda`, and better do not try to compile | |
| 9 | 9 | the source code against your Anaconda Python installation). You also need to |
| 10 | 10 | compile from source if you want to use the development version of GammaLib. |
| 11 | 11 | ... | ... |
doc/source/admin/release_history/index.rst
doc/source/conf.py
| ... | ... | @@ -48,7 +48,7 @@ master_doc = 'contents' |
| 48 | 48 | |
| 49 | 49 | # General information about the project. |
| 50 | 50 | project = u'GammaLib' |
| 51 | -copyright = u'2006-2016, GammaLib developers' | |
| 51 | +copyright = u'2006-2019, GammaLib developers' | |
| 52 | 52 | |
| 53 | 53 | # The version info for the project you're documenting, acts as replacement for |
| 54 | 54 | # |version| and |release|, also used in various other places throughout the | ... | ... |
doc/source/develop/coding/coding.rst
| ... | ... | @@ -177,7 +177,7 @@ The class definition is structured in several sections: |
| 177 | 177 | |
| 178 | 178 | Note that most classes will derive from the abstract interface class |
| 179 | 179 | :doxy:`GBase` which imposes the implementation of the :doxy:`GBase::clear`, the |
| 180 | -:doxy`GBase::clone` and the :doxy:`GBase::print` methods. | |
| 180 | +:doxy:`GBase::clone` and the :doxy:`GBase::print` methods. | |
| 181 | 181 | |
| 182 | 182 | The definition of pure virtual methods should be done in a section that |
| 183 | 183 | is separate from the methods that are implemented. |
| ... | ... | @@ -425,4 +425,4 @@ class extensions. Here an example: |
| 425 | 425 | Note that the access operators perform explicit range checking because the |
| 426 | 426 | ``[]`` operators used do not any range checking. In addition, in this was |
| 427 | 427 | the Python operator names ``__getitem__()`` and ``__setitem__()`` can be |
| 428 | -specified in the exception. | |
| 429 | 428 | \ No newline at end of file |
| 429 | +specified in the exception. | ... | ... |
doc/source/develop/index.rst
doc/source/help/index.rst
doc/source/users/howto/index.rst deleted
doc/source/users/index.rst
doc/source/users/quickstart.rst
| ... | ... | @@ -58,7 +58,6 @@ Now let's append a model to this container. For this, type: |
| 58 | 58 | === GModelSky === |
| 59 | 59 | Name ......................: |
| 60 | 60 | Instruments ...............: all |
| 61 | - Instrument scale factors ..: unity | |
| 62 | 61 | Observation identifiers ...: all |
| 63 | 62 | Model type ................: PointSource |
| 64 | 63 | Model components ..........: "PointSource" * "PowerLaw" * "Constant" |
| ... | ... | @@ -74,13 +73,13 @@ Now let's append a model to this container. For this, type: |
| 74 | 73 | Normalization ............: 1 (relative value) (fixed,scale=1,gradient) |
| 75 | 74 | |
| 76 | 75 | With this sequence of commands you first defined a sky direction in |
| 77 | -celestial coordinates using ``GSkyDir``. You may recognise that this | |
| 76 | +celestial coordinates using :doxy:`GSkyDir`. You may recognise that this | |
| 78 | 77 | is the position of the Crab. You then used this position to define the |
| 79 | -spatial component of a sky model using ``GModelSpatialPointSource``. As the name | |
| 78 | +spatial component of a sky model using :doxy:`GModelSpatialPointSource`. As the name | |
| 80 | 79 | suggests, the spatial component is a point source. Next, you defined the |
| 81 | -spectral component using ``GModelSpactralPlaw``: a power law with | |
| 80 | +spectral component using :doxy:`GModelSpactralPlaw`: a power law with | |
| 82 | 81 | normalisation of 1 and a spectral index of -2. Then, you combined the spatial |
| 83 | -and spectral components in a sky model using ``GModelSky``. And | |
| 82 | +and spectral components in a sky model using :doxy:`GModelSky`. And | |
| 84 | 83 | finally you appended the sky model to the model container allocated |
| 85 | 84 | previously using the append method. When you then print the model |
| 86 | 85 | container you see that is contains now one model with 6 parameters. |
| ... | ... | @@ -99,7 +98,7 @@ Suppose you want to change one of these parameters, such as the |
| 99 | 98 | >>> models[0]['PivotEnergy'].value(1e6) |
| 100 | 99 | >>> print(models) |
| 101 | 100 | ... |
| 102 | - PivotEnergy ..............: 1e+06 MeV (fixed,scale=100,gradient) | |
| 101 | + PivotEnergy ..............: 1000000 MeV (fixed,scale=100,gradient) | |
| 103 | 102 | ... |
| 104 | 103 | |
| 105 | 104 | As the units are MeV, we had to specify a value of 1e6 to set the | ... | ... |
doc/source/users/user_manual/manual/index.rst renamed to doc/source/users/tutorial/index.rst
doc/source/users/user_manual/manual/linalg.rst renamed to doc/source/users/tutorial/linalg.rst
doc/source/users/howto/sky/convert_coordinates.rst renamed to doc/source/users/tutorial/sky/convert_coordinates.rst
doc/source/users/howto/sky/convert_projections.rst renamed to doc/source/users/tutorial/sky/convert_projections.rst
doc/source/users/howto/sky/index.rst renamed to doc/source/users/tutorial/sky/index.rst
doc/source/users/user_manual/getting.rst deleted
| 1 | -.. _um_getting: | |
| 2 | - | |
| 3 | -Getting GammaLib | |
| 4 | -================ | |
| 5 | - | |
| 6 | -Before you start | |
| 7 | ----------------- | |
| 8 | - | |
| 9 | -The procedure for building and installing GammaLib is modeled on GNU software | |
| 10 | -distributions. You do not need to have system administrator privileges | |
| 11 | -to compile and to install GammaLib. | |
| 12 | - | |
| 13 | -You will need the following to build the software: | |
| 14 | - | |
| 15 | -- About 200 MB of free disk space. | |
| 16 | - | |
| 17 | -- An ANSI C++ compiler. We recommend building GammaLib with the GNU g++ | |
| 18 | - compiler. | |
| 19 | - | |
| 20 | -- GNU make | |
| 21 | - | |
| 22 | -- The cfitsio library for FITS file support together with the developer | |
| 23 | - package that includes the ``cfitsio.h`` header. | |
| 24 | - | |
| 25 | -Note that GammaLib compiles also in the absence of the cfitsio library, yet | |
| 26 | -without cfitsio, FITS file reading or writing is not supported. | |
| 27 | - | |
| 28 | -Furthermore, the following optional packages are supported but are not | |
| 29 | -required to compile : | |
| 30 | - | |
| 31 | -- Python, including the Python developer package that includes the | |
| 32 | - ``Python.h`` header file. If Python is present, the GammaLib Python module will | |
| 33 | - be built and installed, allowing to script all GammaLib functionalities from | |
| 34 | - within Python. | |
| 35 | - | |
| 36 | -- readline, including the readline developer package that provides the | |
| 37 | - ``readline.h`` header file. If readline is present, the packages are used | |
| 38 | - to enhance the user interface when entering parameters for ftools | |
| 39 | - applications (see :ref:`this section <sec_app>`). | |
| 40 | - | |
| 41 | -If you plan to modify or to extend the GammaLib source code, the following | |
| 42 | -software is also required on your system: | |
| 43 | - | |
| 44 | -- GNU `autoconf <http://www.gnu.org/software/autoconf/>`_ and `automake | |
| 45 | - <http://www.gnu.org/software/automake/>`_ is needed to rebuild the | |
| 46 | - configure script and ``Makefile.am`` resource files following | |
| 47 | - configuration modifications. | |
| 48 | - | |
| 49 | -- `swig <http://www.swig.org/>`_ is needed to rebuild the Python wrappers | |
| 50 | - following Python interface modifications. Make sure to install the | |
| 51 | - latest swig version to guarantee the largest possible | |
| 52 | - compatibility of the Python wrappers. | |
| 53 | - | |
| 54 | -- `Doxygen <http://www.doxygen.org/>`_ is needed to rebuild the software | |
| 55 | - reference manual following code modifications. | |
| 56 | - | |
| 57 | -The following sections provide some information about the installation | |
| 58 | -of cfitsio and readline. | |
| 59 | - | |
| 60 | -.. _sec_cfitsio: | |
| 61 | - | |
| 62 | -Installing cfitsio | |
| 63 | -~~~~~~~~~~~~~~~~~~ | |
| 64 | - | |
| 65 | -HEASARC's cfitsio library comes on many Linux distributions as | |
| 66 | -pre-compiled binary, and there are good chances that the package is | |
| 67 | -already installed on your system. For Mac OS X, cfitsio can be installed | |
| 68 | -from `MacPorts <https://www.macports.org/>`_ or | |
| 69 | -`Homebrew <http://brew.sh/>`_. If you use a pre-compiled binary, make sure | |
| 70 | -that also the developer package is installed on your system. The developer | |
| 71 | -package provides the ``cfitsio.h`` header file which is needed to compile | |
| 72 | -in FITS file support in GammaLib. Please refer to the documentation of your | |
| 73 | -Linux distribution to learn how to install pre-compiled binary packages (note | |
| 74 | -that the installation of pre-compiled binary packages usually requires | |
| 75 | -system administrator privileges). | |
| 76 | - | |
| 77 | -If you need (or prefer) to install cfitsio from source, you can download | |
| 78 | -the latest source code from http://heasarc.gsfc.nasa.gov/fitsio. | |
| 79 | -Detailed installation instructions can also be found on this site. We | |
| 80 | -recommend that you install cfitsio as a shared library in the same | |
| 81 | -directory in which you will install GammaLib, so that cfitsio is automatically | |
| 82 | -found by the GammaLib configure script. By default, GammaLib gets installed | |
| 83 | -into the directory ``/usr/local/gamma``. | |
| 84 | - | |
| 85 | -You can install version 3.290 of cfitsio (the version that was | |
| 86 | -available when writing this manual) by executing the following command | |
| 87 | -sequence ($ denotes the UNIX shell prompt):: | |
| 88 | - | |
| 89 | - $ wget ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3290.tar.gz | |
| 90 | - $ tar xfz cfitsio3290.tar.gz | |
| 91 | - $ cd cfitsio | |
| 92 | - $ ./configure --prefix=/usr/local/gamma | |
| 93 | - $ make shared | |
| 94 | - $ sudo make install | |
| 95 | - | |
| 96 | -The ``--prefix=/usr/local/gamma`` option specifies the directory into which | |
| 97 | -cfitsio gets installed. We choose here the default GammaLib installation | |
| 98 | -directory ``/usr/local/gamma``. As this directory is a system directory, we | |
| 99 | -need to use sudo for installation. If you decide to install cfitsio into | |
| 100 | -a local directory which is owned by yourself, it is sufficient to type | |
| 101 | -make install to install the library. | |
| 102 | - | |
| 103 | -Installing readline | |
| 104 | -~~~~~~~~~~~~~~~~~~~ | |
| 105 | - | |
| 106 | -The readline package comes on all Linux distributions that are known to | |
| 107 | -us as pre-compiled binary, and it is almost certain that readline is already | |
| 108 | -installed on your system. Very often, however, the readline developer package | |
| 109 | -that provides the readline.h header file is not installed, and you need to | |
| 110 | -install this package yourself to enable readline support for GammaLib. Please | |
| 111 | -refer to the documentation of your Linux distribution to learn how to | |
| 112 | -install pre-compiled binary packages (note that the installation of | |
| 113 | -pre-compiled binary packages usually requires system administrator | |
| 114 | -privileges). | |
| 115 | - | |
| 116 | -If you need (or prefer) to install readline from source, you need also | |
| 117 | -to install the ncurses library that is required by readline. Here is the | |
| 118 | -command line sequence that will install ncurses (version 5.9) and | |
| 119 | -readline (version 6.2) in the GammaLib default install directory | |
| 120 | -``/usr/local/gamma`` from source:: | |
| 121 | - | |
| 122 | - $ wget http://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz | |
| 123 | - $ tar xfz ncurses-5.9.tar.gz | |
| 124 | - $ cd ncurses-5.9 | |
| 125 | - $ ./configure --prefix=/usr/local/gamma | |
| 126 | - $ make | |
| 127 | - $ sudo make install | |
| 128 | - $ cd .. | |
| 129 | - $ wget http://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz | |
| 130 | - $ tar xfz readline-6.2.tar.gz | |
| 131 | - $ cd readline-6.2 | |
| 132 | - $ ./configure --prefix=/usr/local/gamma | |
| 133 | - $ make | |
| 134 | - $ sudo make install | |
| 135 | - | |
| 136 | -Note that ``sudo`` is only needed if you are not the owner of the install | |
| 137 | -directory. | |
| 138 | - | |
| 139 | -Installing | |
| 140 | ----------- | |
| 141 | - | |
| 142 | -Downloading | |
| 143 | -~~~~~~~~~~~ | |
| 144 | - | |
| 145 | -You get the latest version of GammaLib :ref:`here <sec_download>`. | |
| 146 | - | |
| 147 | -.. _sec_configure: | |
| 148 | - | |
| 149 | -Configuring | |
| 150 | -~~~~~~~~~~~ | |
| 151 | - | |
| 152 | -Once you've downloaded and uncompressed GammaLib, step into the GammaLib | |
| 153 | -source code directory and type :: | |
| 154 | - | |
| 155 | - $ ./configure | |
| 156 | - | |
| 157 | -to configure the library for compilation. Make sure that you type | |
| 158 | -``./configure`` and not simply ``configure`` to ensure that the configuration | |
| 159 | -script in the current directory is invoked and not some other | |
| 160 | -system-wide configuration script. | |
| 161 | - | |
| 162 | -If you would like to install GammaLib in a different directory, use the optional | |
| 163 | -``--prefix`` argument during the configuration step. For example :: | |
| 164 | - | |
| 165 | - $ ./configure --prefix=/home/myname/gamma | |
| 166 | - | |
| 167 | -installs GammaLib in the gamma directory that will be located in the user's | |
| 168 | -myname home directory. You can obtain a full list of configuration | |
| 169 | -options using :: | |
| 170 | - | |
| 171 | - $ ./configure --help | |
| 172 | - | |
| 173 | -If configuration was successful, the script will terminate with printing | |
| 174 | -information about the configuration. This information is important in | |
| 175 | -case that you encounter installation problems, and may help you to | |
| 176 | -diagnose the problems. The typical output that you may see is as | |
| 177 | -follows:: | |
| 178 | - | |
| 179 | - GammaLib configuration summary | |
| 180 | - ============================== | |
| 181 | - * FITS I/O support (yes) | |
| 182 | - * Readline support (yes) | |
| 183 | - * Ncurses support (yes) | |
| 184 | - * Developer configuration (yes) | |
| 185 | - * Make Python binding (yes) use swig for updates | |
| 186 | - * Python (yes) | |
| 187 | - * Python.h (yes) | |
| 188 | - * Python wrappers (yes) | |
| 189 | - * swig (yes) | |
| 190 | - * Multiwavelength interface (yes) | |
| 191 | - * Fermi-LAT interface (yes) | |
| 192 | - * CTA interface (yes) | |
| 193 | - * COMPTEL interface (yes) | |
| 194 | - * Doxygen (yes) /usr/local/bin/doxygen | |
| 195 | - * Perform NaN/Inf checks (yes) (default) | |
| 196 | - * Perform range checking (yes) (default) | |
| 197 | - * Optimize memory usage (yes) (default) | |
| 198 | - * Support legacy XML format (yes) (default) | |
| 199 | - - Enable OpenMP (no) | |
| 200 | - - Compile in debug code (no) (default) | |
| 201 | - - Enable code for profiling (no) (default) | |
| 202 | - | |
| 203 | -The script informs whether cfitsio has been found (and eventually also | |
| 204 | -gives the directories in which the cfitsio library and the header file | |
| 205 | -resides), whether readline and ncurses have been found, and whether | |
| 206 | -Python including the Python.h header file is available. Although none of | |
| 207 | -these items is mandatory, we highly recommend to install cfitsio to | |
| 208 | -support FITS file reading and writing (see :ref:`sec_cfitsio`), and | |
| 209 | -to install Python to enable GammaLib scripting. | |
| 210 | - | |
| 211 | -If cfitsio is installed on your system but not found by the configure | |
| 212 | -script, it may be located in a directory that is not known to the | |
| 213 | -configure script. By default, configure will search for cfitsio (in the | |
| 214 | -given order) in the GammaLib install directory, in all standard paths (e.g. | |
| 215 | -``/usr/lib``, ``/usr/local/lib``, ...), and in some system specific locations, | |
| 216 | -including ``/opt/local/lib`` for Mac OS X. Assuming that you installed | |
| 217 | -cfitsio on your system in the directory ``/home/myname/cfitsio``, you may | |
| 218 | -explicitly specify this location to configure using the ``LDFLAGS`` and | |
| 219 | -``CPPFLAGS`` environment variables:: | |
| 220 | - | |
| 221 | - $ ./configure LDFLAGS=-L/home/myname/cfitsio/lib CPPFLAGS=-I/home/myname/cfitsio/include | |
| 222 | - | |
| 223 | -Here, ``LDFLAGS`` specifies the path where the shared cfitsio library is | |
| 224 | -located, while ``CPPFLAGS`` specifies the path where the ``cfitsio.h`` header | |
| 225 | -file is located. Note that ``-L`` has to prefix the library path and that ``-I`` | |
| 226 | -has to prefix the header file path. With the same method, you may | |
| 227 | -specify any non-standard location for the readline and ncurses | |
| 228 | -libraries. | |
| 229 | - | |
| 230 | -The configuration script also checks for the presence of `swig <http://www.swig.org/>`_, | |
| 231 | -which is used for building the Python wrapper files. Normally, | |
| 232 | -`swig <http://www.swig.org/>`_ is not needed to create the Python bindings as the | |
| 233 | -necessary wrapper files are shipped with the GammaLib source code. If you plan, however, | |
| 234 | -to modify or to extend the Python interface, you will need `swig <http://www.swig.org/>`_ | |
| 235 | -to rebuild the Python wrappers following changes to the interface. | |
| 236 | - | |
| 237 | -The configuration summary informs also about all instrument dependent | |
| 238 | -interfaces that will be compiled into the GammaLib library. By default, all | |
| 239 | -available interfaces (multi-wavelength, Fermi/LAT, COMPTEL and CTA) will be | |
| 240 | -compiled into GammaLib. If you wish to disable a particular interface, you may | |
| 241 | -use the configure options ``--without-mwl``, ``--without-lat``, | |
| 242 | -``--without-com`` or ``--without-cta``. | |
| 243 | -For example, :: | |
| 244 | - | |
| 245 | - $ ./configure --without-mwl --without-lat --without-com | |
| 246 | - | |
| 247 | -will compile GammaLib without the multi-wavelength, the Fermi/LAT and | |
| 248 | -the COMPTEL interfaces. In this case, only CTA data analysis will be supported. | |
| 249 | - | |
| 250 | -GammaLib uses `Doxygen <http://www.doxygen.org/>`_ for code documentation. | |
| 251 | -In case that you want to install the reference manual also locally on your | |
| 252 | -machine, `Doxygen <http://www.doxygen.org/>`_ is needed to create the reference | |
| 253 | -manual from the source code. `Doxygen <http://www.doxygen.org/>`_ is | |
| 254 | -also needed if you plan to modify or extend the GammaLib library to allow | |
| 255 | -rebuilding the reference documentation after changes. Please read see | |
| 256 | -:ref:`sec_doxygen` to learn how to build and to install the reference | |
| 257 | -manual locally. | |
| 258 | - | |
| 259 | -Finally, there exist a number of options that define how exactly GammaLib | |
| 260 | -will be compiled. | |
| 261 | - | |
| 262 | -By default, GammaLib makes use of OpenMP for multi-core processing. If you | |
| 263 | -want to disable the multi-core processing, you may specify the | |
| 264 | -``--disable-openmp`` option during configuration. | |
| 265 | - | |
| 266 | -Several methods are able to detect invalid floating point values (either | |
| 267 | -``NaN`` or ``Inf``), and by default, these checks will be compiled in the | |
| 268 | -library to track numerical problems. If you want to disable these | |
| 269 | -checks, you may specify the ``--disable-nan-check`` option during | |
| 270 | -configuration. | |
| 271 | - | |
| 272 | -Range checking is performed by default on all indices that are provided | |
| 273 | -to methods or operators (such as vector or matrix element indices, sky | |
| 274 | -pixels, event indices, etc.), at the expense of a small speed penalty | |
| 275 | -that arises from these verifications. You may disable these range | |
| 276 | -checkings by specifying the ``--disable-range-check`` option during | |
| 277 | -configuration. | |
| 278 | - | |
| 279 | -In a few places there exists a trade-off between speed and memory | |
| 280 | -requirements, and a choice has to be made whether faster execution or | |
| 281 | -smaller memory allocation should be preferred. By default, smaller | |
| 282 | -memory allocation is preferred by GammaLib, but if you are not concerned about | |
| 283 | -memory allocation you may specify the ``--disable-small-memory`` option | |
| 284 | -during configuration to speed up the code. | |
| 285 | - | |
| 286 | -If you develop code for GammaLib you may be interested in adding some special | |
| 287 | -debugging code, and this debugging code can be compiled in the library | |
| 288 | -by specifying the ``--enable-debug`` option during configuration. By default, | |
| 289 | -no debugging code will be added to GammaLib. | |
| 290 | - | |
| 291 | -Another developer option concerns profiling, which may be of interest to | |
| 292 | -optimize the execution time of your code. If you would like to add | |
| 293 | -profiling information to the code (which will be at the expense of | |
| 294 | -execution time), you may specify the ``--enable-profiling`` option during | |
| 295 | -configuration, which adds the ``-pg`` flags to the compiler. By default, | |
| 296 | -profiling is disabled for GammaLib. | |
| 297 | - | |
| 298 | -Mac OS X options | |
| 299 | -^^^^^^^^^^^^^^^^ | |
| 300 | - | |
| 301 | -The Mac OS X environment is special in that it supports different CPU | |
| 302 | -architectures (intel, ppc) and different addressing schemes (32-bit and | |
| 303 | -64-bit). To cope with different system versions and architectures, you | |
| 304 | -can build a universal binary by using the option :: | |
| 305 | - | |
| 306 | - $ ./configure --enable-universalsdk[=PATH] | |
| 307 | - | |
| 308 | -The optional argument ``PATH`` specifies which OSX SDK should be used to | |
| 309 | -perform the build. By default, the SDK ``/Developer/SDKs/MacOSX.10.4u.sdk`` | |
| 310 | -is used. If you want to build a universal binary on Mac OS X 10.5 or | |
| 311 | -higher, and in particular if you build 64-bit code, you have to specify | |
| 312 | -``--enable-universalsdk=/``. | |
| 313 | - | |
| 314 | -A second option (which is only valid in combination with the | |
| 315 | -``--enable-universalsdk``) allows to specify the kind of universal build that | |
| 316 | -should be created:: | |
| 317 | - | |
| 318 | - $ ./configure --enable-universalsdk[=PATH] --with-univeral-archs=VALUE | |
| 319 | - | |
| 320 | -Possible options for ``VALUE`` are: ``32-bit``, ``3-way``, ``intel``, or ``all``. By | |
| 321 | -default, a 32-bit build will be made. | |
| 322 | - | |
| 323 | -These options are in particular needed if your Python architecture | |
| 324 | -differs from the default architecture of your system. To examine the | |
| 325 | -Python architecture you may type:: | |
| 326 | - | |
| 327 | - $ file `which python` | |
| 328 | - | |
| 329 | -which will return the architectures that are compiled in the Python | |
| 330 | -executable:: | |
| 331 | - | |
| 332 | - i386 32-bit intel | |
| 333 | - ppc 32-bit powerpc | |
| 334 | - ppc64 64-bit powerpc | |
| 335 | - x86_64 64-bit intel | |
| 336 | - | |
| 337 | -If Python is 32-bit (``ppc``, ``i386``) but the compiler produces by default | |
| 338 | -64-bit code (``ppc64``, ``x86_64``), the Python module will not work. Using :: | |
| 339 | - | |
| 340 | - $ ./configure --enable-universalsdk=/ | |
| 341 | - | |
| 342 | -will force a universal 32-bit build which creates code for ``ppc`` and ``i386`` | |
| 343 | -architectures. If on the other hand Python is 64-bit (``ppc64``, ``x86_64``) | |
| 344 | -but the compiler produces by default 32-bit code (``ppc``, ``i386``), the option :: | |
| 345 | - | |
| 346 | - $ ./configure --enable-universalsdk=/ --with-univeral-archs=3-way | |
| 347 | - | |
| 348 | -will generate a universal build which contains 32-bit and 64-bit code. | |
| 349 | - | |
| 350 | -Building | |
| 351 | -~~~~~~~~ | |
| 352 | - | |
| 353 | -Once configured you can build GammaLib by typing :: | |
| 354 | - | |
| 355 | - $ make | |
| 356 | - | |
| 357 | -This compiles all GammaLib code, including the Python wrappers, and builds the | |
| 358 | -dynamic library and Python module. | |
| 359 | - | |
| 360 | -GammaLib building can profit from multi-processor or multi-core machines by | |
| 361 | -performing parallel compilation of source code within the modules. You | |
| 362 | -can enable this feature by typing :: | |
| 363 | - | |
| 364 | - $ make -j<n> | |
| 365 | - | |
| 366 | -where ``<n>`` is a number that should be twice the number of cores or | |
| 367 | -processors that are available on your machine. | |
| 368 | - | |
| 369 | -In case that you rebuild GammaLib after changing the configuration, we recommend | |
| 370 | -to clean the directory from any former build by typing :: | |
| 371 | - | |
| 372 | - $ make clean | |
| 373 | - | |
| 374 | -prior to make. This will remove all existing object and library files | |
| 375 | -from the source code directory, allowing for a fresh clean build of the | |
| 376 | -library. | |
| 377 | - | |
| 378 | -Testing | |
| 379 | -~~~~~~~ | |
| 380 | - | |
| 381 | -GammaLib comes with an extensive unit test that allows to validate the library | |
| 382 | -prior to installation. We highly recommend to run this unit test | |
| 383 | -before installing the library (see :ref:`sec_install`). | |
| 384 | - | |
| 385 | -To run the unit test type:: | |
| 386 | - | |
| 387 | - $ make check | |
| 388 | - | |
| 389 | -This will start a test of all GammaLib modules by using dedicated executables | |
| 390 | -which will print some progress and success information into the | |
| 391 | -console. After completion of all tests (and assuming that all | |
| 392 | -instrument dependent modules are enabled), you should see the following | |
| 393 | -message in your console:: | |
| 394 | - | |
| 395 | - =================== | |
| 396 | - All 21 tests passed | |
| 397 | - =================== | |
| 398 | - | |
| 399 | -(Note that the exact number of tests that is conducted depends on the | |
| 400 | -configuration options). | |
| 401 | - | |
| 402 | -.. _sec_install: | |
| 403 | - | |
| 404 | -Installing | |
| 405 | -~~~~~~~~~~ | |
| 406 | - | |
| 407 | -GammaLib is finally installed by typing :: | |
| 408 | - | |
| 409 | - $ [sudo] make install | |
| 410 | - | |
| 411 | -By default, GammaLib is installed in the system directory ``/usr/local/gamma``, | |
| 412 | -hence sudo needs to be prepended to enable writing in a system-level | |
| 413 | -directory. If you install GammaLib, however, in a local directory of which you | |
| 414 | -are the owner, or if you install GammaLib under root, you may simply specify | |
| 415 | -make install to initiate the installation process. | |
| 416 | - | |
| 417 | -The installation step will copy all necessary files into the | |
| 418 | -installation directory. Information will be copied in the following | |
| 419 | -subdirectories: | |
| 420 | - | |
| 421 | -- ``bin`` contains GammaLib environment configuration scripts (see section | |
| 422 | - [sec:environment]) | |
| 423 | - | |
| 424 | -- ``include`` contains GammaLib header files (subdirectory gammalib) | |
| 425 | - | |
| 426 | -- ``lib`` contains the GammaLib library and Python module | |
| 427 | - | |
| 428 | -- ``share`` contains addition GammaLib information, such as a calibration database | |
| 429 | - (subdirectory ``caldb``), documentation (subdirectory ``doc``), and Python | |
| 430 | - interface definition files (subdirectory ``gammalib/swig``) | |
| 431 | - | |
| 432 | -.. _sec_environment: | |
| 433 | - | |
| 434 | -Setting up the GammaLib environment | |
| 435 | -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 436 | - | |
| 437 | -Before using GammaLib you have to setup some environment variables. This will be | |
| 438 | -done automatically by an initialisation script that has been installed | |
| 439 | -in the bin subdirectory of the install directory. Assuming that you have | |
| 440 | -installed GammaLib in the default directory ``/usr/local/gamma`` you need to | |
| 441 | -add the following to your ``$HOME/.bashrc`` or ``$HOME/.profile`` script on a | |
| 442 | -Linux machine:: | |
| 443 | - | |
| 444 | - export GAMMALIB=/usr/local/gamma | |
| 445 | - source $GAMMALIB/bin/gammalib-init.sh | |
| 446 | - | |
| 447 | -If you use C shell or a variant then add the following to your | |
| 448 | -``$HOME/.cshrc`` or ``$HOME/.tcshrc`` script:: | |
| 449 | - | |
| 450 | - setenv GAMMALIB /usr/local/gamma | |
| 451 | - source $GAMMALIB/bin/gammalib-init.csh | |
| 452 | - | |
| 453 | -You then have to source your initialisation script by typing (for | |
| 454 | -example) :: | |
| 455 | - | |
| 456 | - $ source $HOME/.bashrc | |
| 457 | - | |
| 458 | -and all environment variables are set correctly to use GammaLib properly. | |
| 459 | - | |
| 460 | -.. _sec_doxygen: | |
| 461 | - | |
| 462 | -Generating the reference documentation | |
| 463 | -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| 464 | - | |
| 465 | -The reference documentation for GammaLib is generated directly from the source | |
| 466 | -code using the `Doxygen <http://www.doxygen.org/>`_ documentation system. | |
| 467 | -The latest GammaLib reference manual can be found at | |
| 468 | -http://cta.irap.omp.eu/gammalib/doxygen/. | |
| 469 | - | |
| 470 | -The reference documentation is not shipped together with the source code | |
| 471 | -as this would considerably increase the size of the tarball. In case | |
| 472 | -that you want to install the reference manual also locally on your | |
| 473 | -machine, you first have to create the documentation using Doxygen. | |
| 474 | - | |
| 475 | -Assuming that Doxygen is available on your machine (see :ref:`sec_configure`) | |
| 476 | -you can create the reference documentation by typing :: | |
| 477 | - | |
| 478 | - $ make doxygen | |
| 479 | - | |
| 480 | -Once created, you can install the reference manual by typing :: | |
| 481 | - | |
| 482 | - $ [sudo] make doxygen-install | |
| 483 | - | |
| 484 | -By default, GammaLib is installed in the system directory ``/usr/local/gamma``, | |
| 485 | -hence sudo needs to be prepended to enable writing in a system-level | |
| 486 | -directory. If you install , however, in a local directory of which you | |
| 487 | -are the owner, or if you install GammaLib under root, you may simply specify | |
| 488 | -make install to initiate the installation process. | |
| 489 | - | |
| 490 | -The reference manual will be installed in form of web-browsable HTML | |
| 491 | -files into the folder :: | |
| 492 | - | |
| 493 | - /usr/local/gamma/share/doc/gammalib/html/doxygen | |
| 494 | - | |
| 495 | -You can access all web-based GammaLib documentation locally using | |
| 496 | -``file:///usr/local/gamma/share/doc/gammalib/html/index.html`` (assuming | |
| 497 | -that the GammaLib library has been installed in the default directory | |
| 498 | -``/usr/local/gamma``). | |
| 499 | - | |
| 500 | -In addition, the reference manual will also be available as man pages | |
| 501 | -that will be installed into :: | |
| 502 | - | |
| 503 | - /usr/local/gamma/share/doc/gammalib/man | |
| 504 | - | |
| 505 | -To access for example the information for the ``GApplication`` class, you | |
| 506 | -can type :: | |
| 507 | - | |
| 508 | - $ man GApplication | |
| 509 | - | |
| 510 | -which then returns the synopsis and detailed documentation for the | |
| 511 | -requested class. |
doc/source/users/user_manual/index.rst
| 1 | -.. _sec_user_manual: | |
| 1 | +.. _user_manual: | |
| 2 | 2 | |
| 3 | 3 | =========== |
| 4 | 4 | User Manual |
| ... | ... | @@ -7,11 +7,10 @@ User Manual |
| 7 | 7 | .. toctree:: |
| 8 | 8 | :maxdepth: 1 |
| 9 | 9 | |
| 10 | - introduction | |
| 11 | - getting | |
| 10 | + scope | |
| 11 | + overview | |
| 12 | 12 | modules/index |
| 13 | 13 | internals |
| 14 | - manual/index | |
| 15 | 14 | glossary |
| 16 | 15 | |
| 17 | 16 | ... | ... |
doc/source/users/user_manual/internals.rst
doc/source/users/user_manual/manual/intro.rst deleted
doc/source/users/user_manual/introduction.rst renamed to doc/source/users/user_manual/overview.rst
| 1 | -.. _um_intro: | |
| 2 | - | |
| 3 | -Introduction | |
| 4 | -============ | |
| 5 | - | |
| 6 | -Scope | |
| 7 | ------ | |
| 8 | - | |
| 9 | -This User Manual provides a complete description of the GammaLib C++ library | |
| 10 | -and its Python module. It is equally well suited for beginners as for | |
| 11 | -experienced users. | |
| 12 | - | |
| 13 | 1 | Overview |
| 14 | --------- | |
| 2 | +======== | |
| 15 | 3 | |
| 16 | 4 | GammaLib is a self-contained, instrument independent, open source, |
| 17 | 5 | multi-platform C++ library and Python module that implements all code |
| ... | ... | @@ -43,7 +31,7 @@ are: |
| 43 | 31 | * Issue tracker: https://cta-redmine.irap.omp.eu/projects/gammalib/issues |
| 44 | 32 | * Documentation: http://cta.irap.omp.eu/gammalib/ |
| 45 | 33 | |
| 46 | -The present document applies to GammaLib version 1.4. | |
| 34 | +The present document applies to GammaLib version 1.6. | |
| 47 | 35 | |
| 48 | 36 | GammaLib is designed to compile on any POSIX compliant platform. So far, |
| 49 | 37 | GammaLib has been successfully compiled and tested on Mac OS X, OpenBSD, OpenSolaris | ... | ... |