Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


devel:compilusingcomp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
devel:compilusingcomp [2015/01/20 12:19] – created papeleuxdevel:compilusingcomp [2016/08/20 07:42] (current) boman
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-==== Compilation de Metafor via ''comp.py'' ====+====== 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 : +Afin d'automatiser la compilation de Metafor ainsi que l'exécution 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 récupération des sources, 
-  * La génération des Makefiles +  * la génération des Makefiles, 
-  * La compilation proprement-dite +  * la compilation proprement-dite, 
-  * L'execution de la batterie +  * l'exécution de la batterie, 
-  * l'envoi de mail récapitulatif de chaque étape+  * l'envoi de mail récapitulatif de chaque étape,
   * ...   * ...
  
 Le script se trouve dans le système de configuration des stations [[devel:configcomptelinux|''linuxbin'']]. Le script se trouve dans le système de configuration des stations [[devel:configcomptelinux|''linuxbin'']].
  
-=== Utilisation du script ===+===== 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 lancement du script se fait simplement en appelant celui-ci (''comp.py'') à partir du répertoire qui va accueillir les développements.
  
-Le premier accueil ressemble au menu ci dessous+Le premier accueil ressemble au menu ci-dessous :
 <code> <code>
  Actions:  Actions:
  a/ e-mail address (reports)            : 'papeleux'  a/ e-mail address (reports)            : 'papeleux'
- c/ SVN repository                      : 'svn+ssh://clifton.ltas.ulg.ac.be/home/metafor/SVN' + c/ build options                       : 'blueberry.cmake'
- d/ SVN branch                          : 'trunk' +
- e/ build options                       : 'blueberry.cmake'+
  f/ debug mode                          : False  f/ debug mode                          : False
  h/ nice value                          : '0'  h/ nice value                          : '0'
Line 30: Line 28:
  k/ nb of threads by task               : '1'  k/ nb of threads by task               : '1'
  m/ Run Method                          : 'batch'  m/ Run Method                          : 'batch'
- q/ is bacon present?                   : True 
  
  1/ source                              : 'checkout'  1/ source                              : 'checkout'
Line 44: Line 41:
 </code> </code>
  
-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).+Tapant la lettre ou le chiffre devant chaque action/option permet de configurer les actions à lancer ainsi que les options associées.
  
-ensuite configurer ce que vous voulez-faire (en choisissant les commande par les chiffres +Dans un premier temps, vérifiez votre adresse e-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). 
-  * 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)+Dans un second temps, configurer les actions:  
 +  * ''1'': source 
 +    * 'checkout': la version officielle des sources va être récupérée sur blueberry (votre compte doit être configuré pour accéder à blueberry sans mot de passe)
     * 'zip' : les sources sont dans un fichier .zip (que vous pourrez choisir via le menu)     * '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) +    * '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... +    * ATTENTION à l'exception des sources 'present', les éventuels répertoires ''oo_meta''''oo_nda''''oo_metaB'' sont dans un premier temps supprimés! 
-  * 2: compile  +  * ''2'': compile: 
-    * True : va compiler les sources (ATTENTION TOUT LE REPERTOIRE  +    * True: va compiler les sources (ATTENTION TOUT LE REPERTOIRE ''oo_metaB'' va être supprimé
-    * 'false:  +    * Falsene va pas compiler Metafor 
- +  * ''3'': battery:  
-    * ''~/Dev/Meta/oo_nda'' +    * True execute la batterie après nettoyage des résultats antérieurs 
- +    * 'Continue' : execute la batterie sans nettoyage (execute les tests non executés précédemment ou ceux modifiés
-=== Génération des Makefiles === +    * Falsen'execute pas la batterie 
-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)+  * ''4'': Installer
- +    * True: execute ''make install'' 
-La génération des Makefiles se fait via [[http://www.cmake.org/|CMake]] dans le répertoire de compilation  +    * Falsene fait rien
-  * ''~/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 +
-  * où ''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 +
  
 +Enfin, configurer les options: 
 +Principalement 
 +  * ''b'' : 'archive name' : nom du .zip (si sources en zip)
 +  * ''h'' : 'nice value' : priorité des process sur la machine (0 : priorité maximale - 19 : priorité la plus basse)
 +  * ''j'' : 'nb of task launched in parallel' : nombre 'n' de fichiers compilés en même temps (''make -j n'') et de tests executé en parallèle par la batterie (''battery.py -j n'').
 +  * ''m'' : 'Run Method'
 +    * 'interactif' : execution dans la console
 +    * 'batch' : execution détachée (stations)
 +    * 'sge' : execution via 'sun grid engine' sur le cluster
  
  
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