Table of Contents
Grundvoraussetzungen fürs Bauen
- cmake 2.8
- libjsoncpp-dev 0.6.0-rc3
- libgsl-dev 0.16.0
- g++-4.6
- libicu48 (unicode-Zeug: sollte immer da sein)
Pakete zum Bauen der root-Umgebung
- libssl-dev
Benötigte Python-Pakete
- python-scipy
- python-pip
- python-numpy
- ipython
- pylint
- python-simplejson
Python-Pakete (pip)
- python-pymongo
Damit Timmi arbeiten kann
- jed / emacs
Build-Prozess
Um 'From Scratch' auf jeder Maschine bauen zu können, verwenden wir ein eigenes root, dass alle externen Bibliotheken (kompiliert) enthält. Weiterhin die include-Dateien und bin-Skripte.
Für die lokalen Maschinen ist das root im git-Repo enthalten.
Für den Server benötigen wir aufgrund der glib-Version ein eigenes root. Dieses wird auf dem Server gebaut. Momentan liegt es in /home/picalike-dev/v3/root
.
Kompilieren der root-Umgebung
<HTML><ol></HTML>
- cd <GIT_ROOT>/extern
- export ROOT_DIR=$HOME/v3/root
- mkdir -p build
- cd build
- tar xfj ../boost_1_55_0.tar.bz2
- cd boost_1_55_0
- ./bootstrap.sh
- ./b2 link=shared,static threading=multi,single –layout=tagged –prefix=$ROOT_DIR install
- cd ..
- #tar xfz ../cpp-netlib-0.11.0.tar.gz
- #cd cpp-netlib-0.11.0-final
- #patch -p1 < ../../cpp-netlib-0.11.0.patch
- #cmake -D CMAKE_BUILD_TYPE=Release .
- #make -j5
- #cp libs/network/src/lib*.a $ROOT_DIR/lib/
- #cp -r boost/* $ROOT_DIR/include/boost/
- #cd ..
- unzip ../opencv-2.4.8.zip
- cd opencv-2.4.8
- mkdir build
- cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$ROOT_DIR ..
- make -j 5 install<HTML></ol></HTML>
Kompilieren von pvt-dev
Entweder im Verzeichnis <GIT_ROOT>/packages das Skript make_all_packages.sh ausführen, oder in einem Verzeichnis nach belieben die folgenden Zeilen ausführen:
<HTML><ol></HTML>
- mkdir build-indexer
- cd build-indexer
- CC=gcc-4.6 CXX=g++-4.6 cmake -DCMAKE_BUILD_TYPE=Release <GIT_ROOT>/packages/indexer
- make -j5 # -j [N], –jobs[=N] Allow N jobs at once; infinite jobs with no arg.
- make test
- make doc # optional
- make package<HTML></ol></HTML>
Target auswählen
cmake -DCMAKE_BUILD_TYPE={Release,Debug}
Wird keine der beiden Typen ausgewählt, dann wird im Top-Level CMakeLists.txt CMAKE_BUILD_TYPE=Release
gesetzt
Vision
In extern im git-Repo sollten nur die Tarballs liegen. Ein build.sh entpackt die Dateien, patched ggf. die Makedateien mit notwendigen
Besseres Handling für externe Bibliotheken: http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries (siehe http://trac.picalike.corpex-kunden.de/trac/ticket/4)