Confdump Agent  1.4.0
Compiling Confdump-Agent

Introduction

See README.txt for general information about Confdump-Agent.

The Confdump-Agent build system is geared towards producing a standalone (static) executable that can be dropped on a target system without any system prerequisite.

Confdump-Agent currently depends on two third-party C++ libraries: Qt4-core and Boost. Rather than trying to be compatible with every released version of those, we designed our CMake-based build system to work with local copies of these libraries at a known version.

NB: On GNU/Linux, the libc of the build computer determines the kernel compatibility, for instance a binary linked on Debian/squeeze will not run on kernels < 2.6.18. In order to support down to the legacy RedHat Enterprise Linux 4 systems found at our customers', we build our releases on CentOS 4.

Obtaining third-party source packages

Boost

Download a source archive from http://www.boost.org/users/download/ (tested: 1.41.0) into $BOOST_SRC (e.g. boost_1_41_0/).

NB: The current build system expects BOOST_SRC to be $CONFDUMP_SRC/libs/boost_1_41_0/ . You can change that using "ccmake ." or any other CMake UI.

Qt4

Download a "framework only" archive from http://qt.nokia.com/downloads (tested: 4.6.1) into $QT4_SRC (e.g. qt-everywhere-opensource-src-4.6.1/).

Compiling third-party source packages

Boost on *nix

    $ cd $BOOST_SRC
    $ ./bootstrap.sh
    $ cd tools/bcp
    $ ../../bjam
    $ cd $CONFDUMP_SRC

Boost on Windows

    > cd %BOOST_SRC%
    > bootstrap
    > cd tools\bcp
    > ..\..\bjam
    > cd %CONFDUMP_SRC%

Qt4 on *nix

    $ cd $CONFDUMP_SRC/libs
    $ mv $QT4_SRC qt4
    $ cd qt4
    $ ./configure --confirm-license -fast -static -opensource -no-qt3support -qt-zlib -silent -no-nis -no-dbus -no-glib -prefix $PWD
    $ make sub-tools-bootstrap sub-moc sub-rcc sub-uic sub-corelib

Note 1: the complete command-line if we need more libs later is ./configure --confirm-license -static -opensource -no-qt3support -no-multimedia -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -qt-zlib -no-gif -qt-libpng -no-libmng -qt-libjpeg -openssl-linked -silent -no-nis -no-dbus

Note 2: don't use the -j (concurrent build) make option here as the subtargets here require each other in sequence.

Note 3: Qt version 4.6.1 is not compatible with g++-4.6. Edit $QT4_SRC/mkspecs/common/g++.conf and replace all instances of "gcc" by "gcc-4.5", "g++" by "g++-4.5" before the configure step if needed. In that case, you also have to pass the following options to cmake below: -DCMAKE_CXX_COMPILER=g++-4.5 -DCMAKE_C_COMPILER=gcc-4.5

Note 4: the "libxext-dev" package may be necessary, although we don't build the GUI part

Qt4 on Windows (MS Visual Studio)

Uncompress the Qt4 sources as CONFDUMP_SRC%\libs\qt4 -- tested with the package "qt-everywhere-opensource-src-4.6.1.zip". Make sure not to have an intermediary subdirectory under qt4.

Edit CONFDUMP_SRC%\libs\qt4\mkspec\win32-msvc2008\qmake.conf and replace "-MD" by "-MT", "-MDd" by "-MTd".

In a "MS Visual Studio Command Prompt",

    > cd %CONFDUMP_SRC%\libs\qt4
    > set PATH=%cd%\bin;%PATH%
    > configure -confirm-license -static -opensource -no-qt3support -qt-zlib -no-dbus -prefix %cd%
    > nmake sub-tools-bootstrap sub-moc sub-rcc sub-uic sub-corelib

Compiling Confdump/Sys

Compiling on *nix (Release)

    $ cd $CONFDUMP_SRC/build/MinSizeRel
    $ cmake ../..
    $ make

Compiling on *nix (Debug)

    $ cd $CONFDUMP_SRC/build/Debug
    $ cmake -DCMAKE_BUILD_TYPE=Debug ../..
    $ make

Compiling on Windows

In a "MS Visual Studio Command Prompt",

    > cd %CONFDUMP_SRC%\build
    > cmake -G "Visual Studio 9 2008" ..

Then just open the ConfdumpSys.sln file generated in the "build" directory to edit and/or compile the source code.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends