wiki:CompilationGuidelines

Version 3 (modified by FrederikHeber, 14 years ago) ( diff )

removed doxygen, goes separate

Compiling the Code

After you obtained the code as lined out in the RepositoryGuidelines, you do the following:

./autogen.sh

This creates the necessary autoconf and automake files.

After this,

mkdir build
cd build
../configure --prefix=`pwd`

which will run the configure script that checks whether you have a current version of the

  • GNU Scientific Library (GSL)
  • Qt4 framework
  • Boost library 1.40 or newer with program_options and threads
  • CPPUnit framework

--prefix is the argument to tell configure where all program code should go to (pwd is the unix command for the current working directory). There are others, see

../configure --help

and some enable/disable switches you should check out:

  • --enable-hydrogen - says that hydrogen is treated special in the fragmentation parts
  • --enable-ecut - says that the TestRunner, comprising all unit tests in one exectuable, shall make use of the Eclipse CppUnitTest (ECUT). If this is started within eclipse with this plugin installed, a shiny interface will tell you what failed and what not.

A note about configure: If one library is found only under some specific path, you can add CFLAGS, CPPFLAGS, LDFLAGS, ... to the configure call, like this

../configure --prefix=`pwd` --enable-hydrogen CFLAGS="-Wall -g3" CXXFLAGS="-Wall -g3"

which enables all compiler warnings and full debugging of the code without any optimization. configure saves these variables, too, such that when it is called to re-configure it will still make use of them from its cache file.

There are several flags that change the way molecuilder is compiled and probably make it run faster, more unsafe, ...

FLAG what it does
-DLOG_OBSERVER What the Observers do is logged, the log is printed on exit
-DNO_MEMDEBUG MemDebug (memory debugger) is disabled
-DNO_CACHING Cachable are short-wired, i.e. always recalculate, this slows down the code a lot
-DNDEBUG include NO_MEMDEBUG, also ASSERTs are not checked, this speeds up the code by a factor of 5

Now, we are ready to compile and install.

make
make install

And if everything went well, you should launch the unit tests and the testsuite by

make check

If everything is OK, you have a working version of molecuilder in form of the executables bin/molecuilder and bin/molecuildergui.

If you have to delete all compiled stuff, enter

make clean

or

make distclean

which will also delete all autoconf stuff for configure.

Note: See TracWiki for help on using the wiki.