PANDA supports two build systems: CMake and gnumake. We highly recommend using CMake with an out-of-source build.
0) Verify installation of compatible compiler:
Tested compilers include:
g++-4.7, g++-4.8, g++-4.9, g++-5, clang++-3.4, clang++-3.5, clang++-3.6. It is definitively incompatible with version of
g++prior to version 4.6.
PANDA was tested on Linux 32bit and 64bit platforms as well as Mac OS X.
> mkdir build
> cd build
> cmake ..
-- The C compiler identification is GNU 4.9.1
-- The CXX compiler identification is GNU 4.9.1
-- Setting build type to 'Release' as none was specified.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/panda/build
> ctest #optional, but highly recommended
> make install #optional
If you do not have
ctestinstalled, PANDA will probably still work fine. If you want to execute the tests without
ctest, simply execute every binary in the build directory (exluding PANDA itself).
If you encounter errors using PANDA, please perform a run in debug mode. To build PANDA with debug information, execute
> cmake -DCMAKE_BUILD_TYPE=Debug ..
On a standard Linux or Mac system,
./configure; make;should suffice to install PANDA. Use
make -j 4for a parallel build (in this case with 4 processes). If for any reason there is an error with this, see the next section for manual installation advice.
3) TroubleshootingIf there is an error during configuration, try to create the files
3.1) Manual specification of compilerYou may specify a compiler by creating a file called
You need to define the variables
COMPILER = clang++-3.5
LINKER = $(COMPILER)
3.2) Manual specification of MPIDepending on whether you wish to use MPI, you need to adjust the contents of
"Makefile_configuration_mpi.mk"(create file if it doesn't exist).
3.2.1) Using MPIFor using PANDA on a cluster using MPI, the headers and library files of MPI have to be known. Most MPI distributions have a command such as
mpic++ --show-me:compileto provide this information.
> mpic++ --show-me:compile
> mpic++ --show-me:link
g++ -L/usr/lib/openmpi/lib -pthread
Then, the file
"Makefile_configuration_mpi.mk"has to contain
flags_configuration += -DMPI_SUPPORT
flags_library_headers += -I/usr/lib/openmpi/include
flags_library_objects += -L/usr/lib/openmpi/lib -pthread
3.2.2) Without MPIIf you build without MPI, the file
"Makefile_configuration_mpi.mk"may not contain any information to the build system. Either remove all content from the file, or deactivate using the comment symbol
#flags_configuration += -DMPI_SUPPORT