Installer SystemC et TLM : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Installer SystemC 2.2 (ancienne version))
(Sur ensisun)
Ligne 1 : Ligne 1 :
 
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/
 
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/
  
== Sur ensisun ==
+
== Sur ensisun ou sur les PCs de l'Ensimag ==
  
 
SystemC et TLM sont installés dans <code>~moy/tlm</code>.
 
SystemC et TLM sont installés dans <code>~moy/tlm</code>.

Version du 17 septembre 2012 à 12:11

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/

Sur ensisun ou sur les PCs de l'Ensimag

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.

Fichier : TPs/setup-ensisun.sh |raw |historique |rafraichir

<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)

AttentionCe qui suit est gardé pour mémoire, mais n'est plus nécessaire avec SystemC 2.3


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à)