No description
  • C 88.5%
  • C++ 7.3%
  • Python 2.5%
  • CMake 1.3%
  • Shell 0.3%
Find a file
2026-03-09 18:45:28 +01:00
bench Make spr round comparible with libpll-2 + add lh_epsilon_brlen_triplet parameter 2023-06-05 21:51:32 +02:00
ci Setup Jenkins CI pipeline 2022-12-07 10:19:03 +01:00
cmake fix(cmake): disable nasty SSE2NEON warnings 2024-12-20 17:34:43 +01:00
docs Fix the doxygen file (the wrong path was specified) 2022-12-06 20:11:04 +01:00
examples [cmake] Fix some source files not to be added to the coraxlib target pre 3.12 2022-11-29 15:02:46 +01:00
lib Remove GTest submodule, include via FetchContent 2026-02-03 23:08:39 +01:00
man updated version number, changelog, man page 2017-07-12 11:57:24 +01:00
src/corax fix more compiler warnings (clang) 2026-03-09 18:45:28 +01:00
test EM: fix unit tests (logLH tolerance) 2026-02-04 00:29:14 +01:00
.clang-format switch to clang-format-10 2021-06-08 00:27:45 +02:00
.cmake-format Refactor the CMake code 2022-10-04 15:56:26 +02:00
.gitignore Setup Jenkins CI pipeline 2022-12-07 10:19:03 +01:00
.gitmodules Remove GTest submodule, include via FetchContent 2026-02-03 23:08:39 +01:00
.travis.yml fixed libpll travis ci config to work with gcc 4.6, added compiler error messages when compiling with gcc < 4.7.0 2017-05-16 21:37:11 +02:00
ChangeLog.md updated version number, changelog, man page 2017-07-12 11:57:24 +01:00
CMakeLists.txt Merge branch 'cmake-target-set' into dev 2025-06-11 11:58:46 +03:00
Jenkinsfile fix(ci): try to fix building tests in Jenkins (#12) 2025-01-09 11:43:16 +01:00
LICENSE.txt updated readme,changelog and added autotools installation 2016-09-08 23:39:04 +02:00
README.md Fix documentation link in readme 2025-10-08 12:54:14 +02:00

coraxlib

corax logo

coraxlib (COre RAXml LIBrary) encapsulates common routines used by likelihood-based phylogenetic software such as raxml-ng. It will eventually supersede both libpll-2 and pll-modules.

Please read the wiki for more information.

Compilation instructions

Please make sure you have CMake 3.0.2 or later installed on your system.

Then, use following commands to clone and build coraxlib:

git clone https://codeberg.org/Exelixis-Lab/coraxlib.git
cd coraxlib
mkdir -p build && cd build
cmake ..
make

If you want to install coraxlib system-wide, please run:

sudo make install

The library will be installed on the operating system's standard paths. For some GNU/Linux distributions it might be necessary to add that standard path (typically /usr/local/lib) to /etc/ld.so.conf and run ldconfig.

Developing with coraxlib

Please see the docs here

coraxlib license and third party licenses

The coraxlib code is currently licensed under the GNU Affero General Public License version 3. Please see LICENSE.txt for details.

coraxlib includes code from several other projects. We would like to thank the authors for making their source code available.

coraxlib includes code from GNU Compiler Collection distributed under the GNU General Public License.

Registering and running tests

We use CTest for manageing our automated tests. You can thus use a standard CMake workflow:

cmake -B build
cmake --build build -j
pushd build && ctest; popd

We use Googletest for our unit tests. To register a new unit-test, create a file in test/unit/src and add the following line to test/unit/CMakeLists.txt:

corax_register_test(test_my_awesome_new_test FILES src/my_awesome_new_test.cpp)
# or
corax_register_test(test_with_custom_defines FILES src/with_custom_defines.cpp DEFINES SAMPLE_DEFINE=1 ANOTHER_DEFINE=2)

On Linear Algebra Libraries

The situation with linear algebra libraries is complicated. To build coraxlib in with non-reversible models enabled, the following needs to be provided in some way:

  • CBLAS (a C interface to BLAS)
  • LAPACKE (a C interface to LAPACK)

Both of these packages normally depend on BLAS and LAPACK, respectively. Therefore, you will probably need to install all four.

We recommend that users install OpenBLAS. Depending on the package manager, this will provide the interface to all of the above. If this is not the case, then try installing CBLAS and LAPACKE, as these are the final targets required. However, not all BLAS implementations are the same, strictly speaking. If you get linker errors, it is probably due to the installed BLAS implementation not providing "extra" functions, which are present in OpenBLAS.