==== 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 ===
* cd /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
=== Kompilieren von pvt-dev ===
Entweder im Verzeichnis /packages das Skript make_all_packages.sh ausführen, oder in einem Verzeichnis nach belieben die folgenden Zeilen ausführen:
* mkdir build-indexer
* cd build-indexer
* CC=gcc-4.6 CXX=g++-4.6 cmake -DCMAKE_BUILD_TYPE=Release /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
=== 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)