~~NOTOC~~ ====== Compilation de Metafor via ''comp.py'' ====== 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 génération des Makefiles, * la compilation proprement-dite, * l'exécution de la batterie, * l'envoi de mail récapitulatif de chaque étape, * ... Le script se trouve dans le système de configuration des stations [[devel:configcomptelinux|''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éveloppements. Le premier accueil ressemble au menu ci-dessous : Actions: a/ e-mail address (reports) : 'papeleux' c/ 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' 1/ source : 'checkout' 2/ compile : True 3/ battery : True 4/ installer : False G/ GO S/ SAVE Q/ QUIT Your choice? Tapant la lettre ou le chiffre devant chaque action/option permet de configurer les actions à lancer ainsi que les options associées. 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). 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) * '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 un premier temps supprimés! * ''2'': compile: * True: va compiler les sources (ATTENTION TOUT LE REPERTOIRE ''oo_metaB'' va être supprimé) * False: ne va pas compiler Metafor * ''3'': battery: * 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) * False: n'execute pas la batterie * ''4'': Installer: * True: execute ''make install'' * False: ne fait rien 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