compiling:main
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
compiling [2013/03/01 07:50] – daniel | compiling:main [2019/02/27 16:56] – daniel | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ~~NOTOC~~ | ||
====== Compiling potfit ====== | ====== Compiling potfit ====== | ||
---- | ---- | ||
- | //potfit// is compiled with GNU make, which we call gmake in the following. Note that on most systems, GNU make is called make. Most other implementations of make won't work. | ||
- | <code type=bash> | + | //potfit// uses the [[https:// |
- | The compiler | + | The old [[compiling: |
- | Further compile or link flags, in addition to those determined by the '' | + | ===== Basics ===== |
- | After compiling, the potfit | + | The //potfit// source tree contains the waf binary in its root folder. It is used for all build related operations like configuration, |
+ | < | ||
+ | Building //potfit// is split up into two stages: first a configuration stage and then a build stage. The configuration stage checks if all requirements for building a //potfit// binary with the requested options is possible and the build stage then invokes the compiler to create the binary. | ||
- | '' | + | === 1. Configuration === |
- | | + | The configuration uses the '' |
- | Most features of potfit must be activated with the corresponding compilation option in the make target. The most important option is the interaction you want to use. | + | < |
- | Most options can coexist with each other. | + | |
- | Here are some [[Compiling/ | + | A minimal configuration needs to specify at least the interaction (-i) and the potential model (-m): |
- | === Compilation Options | + | < |
- | The compilation | + | After the configuration stage is complete a summary of selected |
+ | < | ||
+ | potfit has been configured | ||
+ | potential model = apot | ||
+ | interaction | ||
+ | math library | ||
+ | </ | ||
- | === | + | === 2. Build === |
- | Currently, the following values of the '' | + | The build process can be start with the '' |
- | < | + | < |
- | x86_64-icc All recent 64 bit processors, icc</ | + | |
- | The following values of the '' | + | Since '' |
- | < | + | Once the build process is complete, there will be a line indicating the name of the created binary: |
- | i686-icc 32 bit processor, icc</ | + | |
- | Support for different values of '' | + | < |
+ | ---> Successfully moved potfit_apot_pair_mkl | ||
+ | </ | ||
- | === | + | ===== Setting options ===== |
- | If you are having trouble linking | + | Special options when compiling //potfit// can be set using the '' |
+ | |||
+ | To enable support from stress, provide the '' | ||
+ | |||
+ | < | ||
+ | |||
+ | All enabled options will also be listed on the summary of the configuration stage: | ||
+ | |||
+ | < | ||
+ | potfit | ||
+ | potential model = apot | ||
+ | interaction | ||
+ | math library | ||
+ | options | ||
+ | </ | ||
+ | |||
+ | Some examples for compiling //potfit// with the waf build system are shown [[compiling:main_examples|here]]. | ||
+ | |||
+ | ===== Advanced options ===== | ||
+ | |||
+ | Most issues with the waf build systems can be resolved using the information provided on the '' | ||
+ | Here are some common issues and their recommended solution: | ||
+ | |||
+ | === Setting MKL path === | ||
+ | |||
+ | The default path for the MKL libraries is '' | ||
+ | |||
+ | < | ||
+ | |||
+ | === Setting compiler === | ||
+ | |||
+ | By default waf will search for the following compilers (in the same order as provided here): | ||
+ | * Intel Compiler Collection | ||
+ | * Clang | ||
+ | * GCC | ||
+ | To select a particular compiler use the '' | ||
+ | |||
+ | < | ||
+ | |||
+ | Waf will search for the compiler in the default paths. | ||
+ | |||
+ | Additionally it is possible to use the '' | ||
+ | |||
+ | === Setting debug options === | ||
+ | |||
+ | Depending on the selected compiler the following debug options are available: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== Troubleshooting ===== | ||
+ | |||
+ | When waf encounters an error there is usually a message which provides detailed information about the command which failed. If this is not the case it is possible to enable more logging by adding | ||
+ | |||
+ | < | ||
+ | |||
+ | Logging can be increased even further | ||
+ | |||
+ | ===== Developer guide ===== | ||
+ | |||
+ | A short introduction to extending | ||
compiling/main.txt · Last modified: 2020/10/12 15:51 by pbro