Installer SystemC et TLM : Différence entre versions
(→Installer SystemC 2.3) |
(→Installer SystemC 2.3 : sortie attendue) |
||
Ligne 28 : | Ligne 28 : | ||
</pre> | </pre> | ||
− | On doit trouver les fichiers d'en-tête dans include/, et les bibliothèques dans lib-*/ (le nom du répertoire dépend de la plateforme sur laquelle on compile). | + | On doit trouver les fichiers d'en-tête dans include/, et les bibliothèques dans lib-*/ (le nom du répertoire dépend de la plateforme sur laquelle on compile) : |
+ | |||
+ | <pre> | ||
+ | systemc-2.3.0$ ls include/ | ||
+ | sysc/ systemc systemc.h tlm tlm_core/ tlm.h tlm_utils/ | ||
+ | systemc-2.3.0$ ls lib-*/ | ||
+ | libsystemc-2.3.0.so* libsystemc.a libsystemc.la* libsystemc.so@ | ||
+ | </pre> | ||
== Positionner les variables d'environnement == | == Positionner les variables d'environnement == |
Version du 14 septembre 2012 à 15:52
Pour installer SystemC et TLM, vous pouvez les télécharger sur http://systemc.org, mais il est sans doute plus pratique de les télécharger ici : http://www-verimag.imag.fr/~moy/cours/tlm/systemc/
Sommaire
Sur ensisun
SystemC et TLM sont installés dans ~moy/tlm
.
Installer SystemC 2.3
En principe, il suffit de télécharger l'archive et d'appliquer le bon vieux configure/make/make install
curl -O http://www-verimag.imag.fr/~moy/cours/tlm/systemc/systemc-2.3.0.tgz tar xzvf systemc-2.3.0.tgz cd systemc-2.3.0 mkdir obj cd obj ../configure make make install
on peut vérifier que tout s'est bien passé :
cd .. ls include/ ls lib-*/
On doit trouver les fichiers d'en-tête dans include/, et les bibliothèques dans lib-*/ (le nom du répertoire dépend de la plateforme sur laquelle on compile) :
systemc-2.3.0$ ls include/ sysc/ systemc systemc.h tlm tlm_core/ tlm.h tlm_utils/ systemc-2.3.0$ ls lib-*/ libsystemc-2.3.0.so* libsystemc.a libsystemc.la* libsystemc.so@
Positionner les variables d'environnement
Pour utiliser les Makefiles des TPs et exemples, il vous reste à faire positionner les variables $SYSTEMCROOT et $TLM_ENSITLM.
Le plus simple est de se baser sur le fichier setup-ensisun.sh fourni dans l'archive Git en adaptant les chemins à votre configuration.
<include select="" linesXXX="{{{lines}}}" fromXXX="{{{from}}}" toXXX="{{{to}}}" beforeXXX="{{{before}}}" afterXXX="{{{after}}}" linestartXXX="{{{linestart}}}" linenumsXXX="{{{linenums}}}" src="http://github.com/moy/cours-tlm/raw/master/TPs/setup-ensisun.sh" highlight="bash" style="border: 0px none white"> </include>
Installer SystemC 2.2 (ancienne version)
Téléchargement
depuis la page http://www-verimag.imag.fr/~moy/cours/tlm/systemc/, récupérer systemc-2.2.0.tgz et le patch (pour éliminer des warnings et erreurs génants de GCC) systemc-2.2.0.patch, par exemple avec
curl -O http://www-verimag.imag.fr/~moy/cours/tlm/systemc/systemc-2.2.0.tgz curl -O http://www-verimag.imag.fr/~moy/cours/tlm/systemc/systemc-2.2.0.patch curl -O http://www-verimag.imag.fr/~moy/cours/tlm/systemc/systemc-2.2.0-macosx.patch
Compilation et installation
On extrait l'archive, on applique les patchs, et on compile :
tar xzvf systemc-2.2.0.tgz patch -p0 < systemc-2.2.0.patch patch -p0 < systemc-2.2.0-macosx.patch cd systemc-2.2.0 rm -f config/config.guess config/config.sub config/missing autoreconf --install mkdir obj cd obj ../configure make make install
Le téléchargement et l'application de systemc-2.2.0-macosx.patch
ne sont bien entendu nécessaires que sous Mac OS X.
Les lignes « rm -f config/config.guess config/config.sub config/missing; autoreconf -f --install
» permettent de mettre à jour certains fichiers nécessaires à la compilation. Elle élimine quelques warnings sous Linux, et est nécessaire sous Mac OS X.
Vérification
Vous devriez obtenir ceci :
$ ls lib-linux64/ # ou juste lib-linux, ou lib-macosx selon la machine. libsystemc.a $ ls include/ sysc systemc systemc.h
Erreurs à l'installation
Si vous obtenez une erreur « sc_utils_ids.cpp:109: error: ‘getenv’ is not a member of ‘std’
», modifiez le début de sc_utils_ids.cpp
:
#include <cstdlib> #include <string.h> #include "sysc/utils/sc_report.h" using namespace std;
Si vous obtenez une erreur « sc_cor_qt.cpp:97: error: ‘caddr_t’ was not declared in this scope
», ajoutez cette ligne au début de src/sysc/kernel/sc_cor_qt.cpp
:
#include <sys/types.h>
(ces modifications sont incluses dans les patchs, donc en principe, tout est déjà fait pour vous)
Installer TLM (ancienne version, plus nécessaire depuis SystemC 2.3)
On télécharge :
curl -O http://www-verimag.imag.fr/~moy/cours/tlm/systemc/TLM-2.0.1.tgz curl -O http://www-verimag.imag.fr/~moy/cours/tlm/systemc/tlm-2.0.1.patch
et on applique le patch pour éliminer des warnings :
tar xzvf TLM-2.0.1.tgz patch -p0 < tlm-2.0.1.patch
... c'est tout, rien à compiler ! (TLM-2.0 est constitué uniquement de templates, et C++ impose que tout soit défini dans les fichiers d'en-tête dans ces cas là)