...
cmake options | doc | default |
---|---|---|
CMAKE_INSTALL_PREFIX | where you want to install your Magics library | /usr/local |
CMAKE_BUILD_TYPE | to select the type of compilation:
| Release |
CMAKE_CXX_FLAGS | More flags for the C++ compiler | |
ENABLE_PYTHON | enable python interface | on |
ENABLE_GUI | enable build of ecflowview | on |
BOOST_ROOT | where to find boost ( if non-standard installation ) If not specified cmake will look for an environment variable of the same name. |
...
Code Block | ||||
---|---|---|---|---|
| ||||
cd $WK mkdir build; cd build; # Go with defaults, this should with DCMAKE_BUILD_TYPE=Release cmake .. # build therelease mostwith optimiseddebug executablesinfo # cmake .. -DCMAKE_BUILD_TYPE=Release RelWithDebInfo # Override install prefix, build the most optimised executables # cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow -DCMAKE_BUILD_TYPE=Release # do not build the gui. # cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=OFF # If you do not need the python api, use: # cmake .. -DENABLE_PYTHON=OFF # Use -j option to speed up compilation. Determine number of cpu's CPUS=$(lscpu -p | grep -v '#' | wc -l) make -j${CPUS} make check make install |
...
- Now make sure bjam is accessible from $PATH or use $BOOST_ROOT/bjam in place bjam below.
- For installation the following environment variables are required.
ECFLOW_INSTALL_DIR # Directory Location for client ,server and gui program's ECFLOW_PYTHON_INSTALL_DIR # Directory Location for ecflow python package
The python installation can be customised, by changing Pyext/jamfile.jam and $BOOST_ROOT/tools/build/v2/site-config.jam
We now need to build ecFlow. Currently ecflowview/GUI is only built if environment variable of name ARCH is set to linux:
Code Block language bash cd $WK bjam variant=release
On some systems like fedora/redhat you may run into compiler errors which complain about the template depth being exceeded. In this case compile using:Code Block language bash cd $WK bjam c++-template-depth=512 variant=release # using boost 1.53 with gcc 4.8, will have excessive warnings. To prune these warnings use bjam c++-template-depth=512 cxxflags=-Wno-unused-local-typedefs variant=release
If you have a multi-core machine, you can speed up the build using, the -j<n> option. Where ‘n’ is an integer, of the number of cores.Code Block language applescript CPUS=$(lscpu -p | grep -v '#' | wc -l) bjam variant=release -j${CPUS)
- Once ecFlow is built it can be installed. Note NOTE, if you used c++-template-depth=512 || cxxflags=-Wno-unused-local-typedefs, use it gain again for the next step.
Code Block language bash bjam variant=release install-all
This will create directories:
Code Block <ECFLOW_INSTALL_DIR>/bin <ECFLOW_INSTALL_DIR>/lib <ECFLOW_INSTALL_DIR>/doc <ECFLOW_INSTALL_DIR>/share <ECFLOW_PYTHON_INSTALL_DIR>
Depending on your umask setting you may need to call chmod 755 on the executables
- To use the ecFlow Python Api , you need to add/change PYTHONPATH .
Code Block language bash export PYTHONPATH=$PYTHONPATH:$ECFLOW_PYTHON_INSTALL_DIR
When compiling ecflowview in a system where motif is not installed in the usual location, or where both motif and lesstif are installed, it is possible to export the environment variables MOTIF_INCLUDE and MOTIF_LIBRARY to help bjam to find the right location for include files and libraries.
Openmotif may be retrieve from IST server and installed locally: wget http://www.ist-inc.com/motif/download/motif_files/openmotif-2.1.32-2_IST.x86_64.rpm rpm2cpio openmotif-2.1.32-2_IST.x86_64.rpm | cpio -idmv
user shall then compile setting MOTIF_INCLUDE and MOTIF_LIBRARY variable.
...