This page describes the
setup.py script and its options.
The setup script is a python script located in the eT base directory. It requires at least Python 3.5 and uses the argparse module to parse command line arguments. The arguments are then passed on to CMake which takes care of the configuration of eT. All the options sent to CMake via the setup script can be passed directly to CMake, but this is usually a lot more painful.
If you think the default values are good for you, you can run the script with:
This will generate a directory called build that should contain your Makefile.
You can then go to this directory and compile using
-j4 option enables parallel compilation with four threads and can really speed things up.
For a list of arguments and a short description of each, as well as defaults, use:
This is a list of the arguments accepted by
Most of them come in two versions,
a long and a short.
The long form starts with two dashes,
while the shorthand begins with one dash.
-ll are equivalent.
This is the only positional argument,
so it can be placed anywhere,
except after an option that expects a string argument
The argument shall be a string with the directory you want to compile eT in.
Note that it is not necessary to put you build directory in the
will create the directory
assuming you has access,
and place the build files there.
These are arguments to specify how you want to compile eT.
As mentioned above,
this option will not run the script,
but simply list the available options for
This is a built-in argparse option.
This option will make
setup.py delete your
build directory if it exists before calling CMake.
Very handy when you want to force a clean compilation.
Similar to the above,
but will only delete
if it exists,
forcing a recompilation.
Specifies a path where CMake should look for Libint
and will override the
LIBINT2_ROOT environment variable.
Exactly what it says on the label. Specifies which Fortran compiler CMake should look for.
Specifies which C++ compiler CMake should look for.
Specifies which C compiler CMake should look for.
Enables 64-bit integers.
Note that MKL or another 64-bit implementation of BLAS/LAPACK
is required for this option.
In particular, OpenBLAS and SYSTEM_NATIVE are only available for 32-bit integers.
If you are using one of these,
Enables 32-bit integers.
Enable OpenMP multithreading.
Enable OpenMP multithreading.
Specifies the search order for the math BLAS/LAPACK library.
CMake will search based on the
MATH_ROOT environment varaible.
Default with --int64: MKL ACML SYSTEM_NATIVE ATLAS,
Default with --int32: MKL SYSTEM_NATIVE OPENBLAS ATLAS ESSL ACML
Enables compiling eT with linking to PCMSolver.
PCMSolver will be searched for based on the environment variable
These arguments are passed more or less directly to CMake or the compiler. Because flags are also specified beginning with -, it is necessary to pass these arguments explicitly as strings starting with a white space. For example, if you want to compile with CMake ninja, you would use:
./setup.py --extra-cmake-flags " -GNinja"
Several flags can be specified in the string.
Extra flags sent to CMake.
Extra compile flags set for the Fortran compiler.
Extra compile flags set for the C++ compiler.
Extra flags set for the compiler during linking.
These are arguments mostly meant for developers, and should not be used for production code.
Enables runtime checks, making the compiler put in checks for various memory errors at runtime.
Forces eT to always batch with random batch sizes in routines implemented with memory batching. Useful for catching errors.