Les outils SocLib

Compilation de la plateforme de simulation:

Si vous analysez le Makefile, fourni, vous verrez que la compilation de la plateforme fait appel à la commande soclib-cc.

Cet outil, fait partie des utilitaires fournits avec la bibliothèque SocLib. Il permet de compiler une plateforme sans forcément en connaitre l'organisation interne des fichiers sources de chaque module.

Les module de la bibliothèque SocLib ne sont pas pré-compilés et comme ils utilisent énormément les templates C++, leur compilation peut se révéler assez complexe.

Pour comprendre la problématique liée à la compilation séparée des classes templatées en C++, vous pouvez voir ce point de la FAQ C++.

L'outil appelle à un certain moment un compilateur C++, g++ par défaut mais on peut en préciser un autre.

Les fichiers intermédiaires générés par soclib-cc ainsi que les fichiers objets peuvent être retrouvés dans /tmp/soclib_build_

soclib-cc --help

vous donnera la liste des arguments supportés par cet outil. La documentation officielle est aussi accessible ici.

Le fichier de description de plateforme:

soclib-cc a besoin d'un fichier de description de la plateforme à compiler. Pour notre hello_world, il s'agit du fichier platform_desc.

Ce fichier contient la liste des éléments de la bibliothèque SocLib utilisés dans la plateforme virtuelle. Il contient aussi la liste des paramètres de chaque module.

Il faut y préciser le fichier C++ contenant la description de la plateforme (top.cpp), le type de modèles à utiliser (pour nous "caba" pour cycle accurate bit accurate càd description au cycle et au bit près).

Si un nouvel élément est ajouté à la plateforme, il faudra compléter la liste use des éléments de la plateforme.

La documentation officielle du fichier de description est disponible sur le site de soclib.

Modification des paramètre de compilation

Les paramètres de compilation utilisés par soclib-cc tels que:

  • le compilateur
  • les options de compilation
  • les options d'édition de liens
  • ...

peuvent être modifiés dans l'un des fichiers de configuration suivant:

  • ~/.soclib/global.conf : configuration globale pour l'utilisateur
  • ./soclib.conf : configuration pour la plateforme actuelle

La liste complète des options et la syntaxe à utiliser est disponible sur le site de soclib.