~~NOTOC~~ Une connaissance de base de Linux et l'utilisation d'une fenêtre de commande [[devel/bash|bash]] est indispensable pour la compréhension de la suite. Il est aussi indispensable d'avoir intégré les concepts de base de [[https://subversion.apache.org/|SVN]] (repository/checkout/update/commit/...). Un tutoriel en francais peut être trouvé sur le site [[http://openclassrooms.com/courses/gerez-vos-projets-a-l-aide-du-gestionnaire-de-versions-subversion|openClassRoom]] (anciennement connu comme "Site du Zero"). ==== Compilation de Metafor sous Linux (à la main) ==== La compilation de Metafor se fait en 3 étapes: * la récupération des sources, * la génération des Makefiles, * la compilation proprement-dite. === Récupération des sources Metafor === Considérons que l'on se trouve dans un répertoire à partir duquel on dispose de suffisamment d'espace (~1Gb): disons ''~/Dev/Meta''. Sachant que: * les répositories se trouvent sur ''blueberry'' dans le répertoire ''~metafor/SVN'', * ''oo_meta'': repository des sources Metafor, * ''oo_nda'': repository des NDA Metafor, * l'accès aux repository se fait par ''ssh'', la récupération des sources se fait via les commandes (remplacer ''userName'' par votre identifiant): ''%%svn co svn+ssh://userName@blueberry.ltas.ulg.ac.be/home/metafor/SVN/oo_meta/trunk oo_meta%%'' \\ ''%%svn co svn+ssh://userName@blueberry.ltas.ulg.ac.be/home/metafor/SVN/oo_nda/trunk oo_nda%%'' Il en résulte 2 répertoires: * ''~/Dev/Meta/oo_meta'' * ''~/Dev/Meta/oo_nda'' A côté de ces 2 ensembles de sources, il est nécessaire de récupérer les sources de ''linuxbin'' (scripts tels que la batterie de tests stockés sur github) et ''parasolid'' (interface avec la bibliothèque CAO Parasolid stockée chez nous). Ces deux modules utilisent le système [[https://git-scm.com/|git]] au lieu de SVN. git clone https://github.com/ulgltas/linuxbin.git git clone git@gitlab.uliege.be:am-dept/MN2L/parasolid.git === Génération des Makefiles === En plus des 4 répertoires de sources, il nécessaire de générer un répertoire dans lequel Metafor sera compilé. Nommons-le "MetaBin" (son nom importe peu, son positionnement à coté des sources est, lui, indispensable). La génération des Makefiles se fait via [[http://www.cmake.org/|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 exécutable Release (defaut) * ''cmake -C ../oo_meta/CMake/configMachine.cmake -D CMAKE_BUILD_TYPE=Debug ../oo_meta'' : pour générer un exécutable Debug. où ''configMachine'' est remplacé par le nom de la machine éventuellement d'un choix d'options prédéfini dans le fichier. Exemples: * ''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