Installation for developers

Development workflow

Installing CCL on the system is not a good idea when doing development, you can compile and run all the libraries and examples directly from your local copy. The only subtlety when not actually installing the library is that one needs to define the environment variable CCL_PARAM_FILE pointing to include/ccl_params.ini:

$ export CCL_PARAM_FILE=/path/to/your/ccl/folder/include/ccl_params.ini

Failure to define this environment variable will result in violent segmentation faults!

Working on the C library

Here are a few common steps when working on the C library:

Cloning a local copy and CCL and compiling it:

$ git clone https://github.com/LSSTDESC/CCL
$ mkdir -p CCL/build && cd CCL/build
$ cmake ..
$ make

Updating local copy from master, recompiling what needs recompiling, and running the test suite:

$ git pull      # From root folder
$ make -Cbuild  # The -C option allows you to run make from a different directory
$ build/check_ccl

Compiling (or recompiling) an example in the CCL/examples folder:

$ cd examples  # From root folder
$ make -C../build ccl_sample_pkemu
$ ./ccl_sample_pkemu

Reconfiguring from scratch (in case something goes terribly wrong):

$ cd build
$ rm -rf *
$ cmake ..
$ make

Working on the Python library

Here are a few common steps when working on the Python module:

Building the python module:

$ python setup.py build

After that, you can start your interpreter from the root CCL folder and import pyccl.

Running the tests after a modification of the C library:

$ python setup.py build
$ python setup.py test