User Tools

Site Tools


build_process

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)

build_process.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1