build_engine

The engine is compiled automatically when gPlace is installed; build_engine is an advanced command to rebuild it without reinstalling (e.g. with a different GSL 1.16 build). It compiles libgplace_core.so: it builds GSL 1.16 as a static, position-independent library (downloaded from a GNU mirror and checked against its SHA-256, or taken from --gsl_tarball / --gsl_prefix), compiles the engine (gplace/engine/csrc/xp.c) with glibc 2.19’s hypot and log1p and CORE-MATH’s correctly-rounded exp/log/pow/sin, and then runs check_install. Every object is compiled with -ffp-contract=off, so no multiply-add is fused.

Arguments

usage: gplace build_engine [--gsl_prefix GSL_PREFIX]
                           [--gsl_tarball GSL_TARBALL] [--build_dir BUILD_DIR]
                           [--engine_dir ENGINE_DIR] [--jobs JOBS] [-h]

optional arguments

--gsl_prefix

prefix of an existing static, -fPIC GSL 1.16 build (lib/libgsl.a, include/gsl); otherwise GSL 1.16 is built from source

--gsl_tarball

path to gsl-1.16.tar.gz (offline builds); downloaded from a GNU mirror if unset

--build_dir

scratch directory for the build (default: $GPLACE_BUILD_DIR or ~/.cache/gplace/build)

--engine_dir

where to write the engine libraries (default: $GPLACE_ENGINE_DIR or the package directory)

--jobs

parallel make jobs for building GSL

Default: 8

Example

gplace build_engine --jobs 16