Build Configuration

wlcov uses a Makefile-based build. User-facing settings live in Makefile_settings and machine-specific compiler/linker settings live in Makefile_machine.

Makefile Settings

Setting

Default

Meaning

USEGSL

1

Enables GSL-backed Bessel-function routines. Keep enabled for current code.

OPENMPMACHINE

0

Enables OpenMP runtime thread control when set to 1.

ADDONSON

1

Enables the CLASS-style input parser, addon include hooks, and Cython support. Keep enabled for wlcovpy.

Addon Settings

Addon switches live in addons/Makefile_addons_settings.

Setting

Default

Meaning

CLASSLIBON

1

Enables the CLASS-style parser and error-message infrastructure used by the Python wrapper.

PXDON

1

Enables Cython helper functions and declarations. It requires CLASSLIBON = 1.

COSMOLIBON

0

Enables the optional cosmology addon in addons/cosmo_lib. This is present in the tree but disabled by default.

Compiler and Linker Variables

The main variables in Makefile_machine are:

Variable

Purpose

CC

C compiler. The default is gcc.

PYTHON

Python executable used to install wlcovpy. Override with PYTHON=python3 if python is unavailable.

OPTFLAG

Optimization flags, currently -O3 -ffast-math.

OMPFLAG

OpenMP compiler flag, currently -fopenmp.

GSL_CONFIG

Path to gsl-config. Defaults to gsl-config from PATH.

GSL_INCLUDE

Optional include directory for GSL headers.

GSL_LIB

Optional library directory for GSL libraries.

Build Artifacts

make all builds the executable and static library and installs wlcovpy via pip install .. The wrapper build generates python/cwlcovpy.pxd from python/cwlcovpy.pxd.in so its C struct declarations match the active addon settings.

For a clean release tree, run:

make clean

and remove generated example outputs before committing.