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