Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


devel:compilusingcomp

This is an old revision of the document!


Compilation de Metafor via ''comp.py''

Afin d'automatiser la compilation de Metafor ainsi que l'execution de la batterie, Romain a mis au point un script comp.py permettant un ensemble de cas de figure :

  • La récupération des sources
  • La génération des Makefiles
  • La compilation proprement-dite
  • L'execution de la batterie
  • l'envoi de mail récapitulatif de chaque étape

Le script se trouve dans le système de configuration des stations ''linuxbin''.

Utilisation du script

Le lancement du script se fait simplement en appelant celui-ci (comp.py) à partir du répertoire qui va accueillir les développement.

Le premier accueil ressemble au menu ci dessous

 Actions:
 a/ e-mail address (reports)            : 'papeleux'
 c/ SVN repository                      : 'svn+ssh://clifton.ltas.ulg.ac.be/home/metafor/SVN'
 d/ SVN branch                          : 'trunk'
 e/ build options                       : 'blueberry.cmake'
 f/ debug mode                          : False
 h/ nice value                          : '0'
 j/ nb of task launched in parallel     : '4'
 k/ nb of threads by task               : '1'
 m/ Run Method                          : 'batch'
 q/ is bacon present?                   : True

 1/ source                              : 'checkout'
 2/ compile                             : True
 3/ battery                             : True
 4/ installer                           : False

 G/ GO
 S/ SAVE
 Q/ QUIT

Your choice?

Dans un premier temps, vérifier votre adresse mail (par défaut les mails sont envoyés sur votre compte sur la machine linux et si vous avez correctement configuré votre .forward, vous sera redirigé vers votre mail ULG).

ensuite configurer ce que vous voulez-faire (en choisissant les commande par les chiffres

  • 1 : source
    • 'checkout' : la version officielle des sources va être récupérée sur clifton (votre compte doit être configuré pour accéder à clifton sans mot de passe)
    • 'zip' : les sources sont dans un fichier .zip (que vous pourrez choisir via le menu)
    • 'present' : les sources sont présentes dans le répertoire local (oo_meta et oo_nda)
    • ATTENTION à l'exception des sources 'present', les éventuels répertoires oo_meta, oo_nda, oo_metaB sont dans u npremier temps effacés…
  • 2: : compile
    • True : va compiler les sources (ATTENTION TOUT LE REPERTOIRE
    • 'false' :
  • ~/Dev/Meta/oo_nda

Génération des Makefiles

En plus des deux répertoires de sources, il nécessaire de générer un répertoire dans lequel Metafor sera compilé. Nomons le “MetaBin” (son nom importe peu, son positionnement à coté des sources est lui indispensable).

La génération des Makefiles se fait via CMake dans le répertoire de compilation

  • ~/Dev/Meta/MetaBin
  • la génération des makefiles se fait via la commande :
    • cmake -C ..\oo_meta\CMake\configMachine.cmake ..\oo_meta : pour générer un executable release (defaut)
    • cmake -C ..\oo_meta\CMake\configMachine.cmake -D CMAKE_BUILD_TYPE=Debug ..\oo_meta : pour générer un executable debug
  • configMachine est remplacé par le nom de la machine éventuellement d'un choix d'options prédéfinie dans le fichier. Exemple :
    • blueberry.cmake : compilation par défaut sur blueberry (compilateur intel icc)
    • blueberry-gcc.cmake : compilation sur blueberry avec le compilateur GNU gcc
    • thorgal.cmake : compilation par défaut sur thorgal (gcc)
    • thorgal-icc.cmake : compilation par défaut sur thorgal (gcc)
    • fabulous.cmake : configuration par défaut sur fabulous (icc)
    • fabulous-gcc.cmake : configuration sur fabulous avec le compilateur GNU (gcc)
  • Le nom seul de la machine donnant la configuration par défaut (utilisée par la batterie de test).

Compilation

La compilation se fait à partir du répertoire de génération

  • dans notre exemple : ~/Dev/Meta/MetaBin
  • via la commande :
    • make : pour une compilation sur 1 coeur
    • make -j n : pour une compilation sur n coeurs
devel/compilusingcomp.1421752752.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki