Installer SystemC et TLM : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Positionner les variables d'environnement)
(Installer SystemC : update pour Mac OS X)
Ligne 7 : Ligne 7 :
 
== Installer SystemC ==
 
== Installer SystemC ==
  
 +
=== Téléchargement ===
 
depuis la page http://www-verimag.imag.fr/~moy/cours/tlm/systemc/,
 
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 génants de GCC) systemc-2.2.0.patch, puis :
+
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
 +
 
 +
<pre>
 +
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
 +
</pre>
 +
 
 +
=== Compilation et installation ===
 +
 
 +
On extrait l'archive, on applique les patchs, et on compile :
  
 
<pre>
 
<pre>
 
tar xzvf systemc-2.2.0.tgz  
 
tar xzvf systemc-2.2.0.tgz  
 
patch -p0 < systemc-2.2.0.patch
 
patch -p0 < systemc-2.2.0.patch
 +
patch -p0 < systemc-2.2.0-macosx.patch
 
cd systemc-2.2.0
 
cd systemc-2.2.0
 +
autoreconf -f --install
 
mkdir obj
 
mkdir obj
 
cd obj
 
cd obj
Ligne 20 : Ligne 33 :
 
make install
 
make install
 
</pre>
 
</pre>
 +
 +
Le téléchargement et l'application de <code>systemc-2.2.0-macosx.patch</code> ne sont bien entendu nécessaires que sous Mac OS X.
 +
 +
La ligne « <code>autoreconf -f --install</code> » permet 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 :
 +
 +
<pre>
 +
$ ls lib-linux64/    # ou juste lib-linux, ou lib-macosx selon la machine.
 +
libsystemc.a
 +
$ ls include/
 +
sysc  systemc  systemc.h
 +
</pre>
 +
 +
=== Erreurs à l'installation ===
  
 
Si vous obtenez une erreur « <code>sc_utils_ids.cpp:109: error: ‘getenv’ is not a member of ‘std’</code> », modifiez le début de <code>sc_utils_ids.cpp</code> :
 
Si vous obtenez une erreur « <code>sc_utils_ids.cpp:109: error: ‘getenv’ is not a member of ‘std’</code> », modifiez le début de <code>sc_utils_ids.cpp</code> :
Ligne 30 : Ligne 60 :
 
</pre>
 
</pre>
  
(cette modification est incluse dans le patch, donc en principe, tout est déjà fait pour vous)
+
Si vous obtenez une erreur « <code>sc_cor_qt.cpp:97: error: ‘caddr_t’ was not declared in this scope</code> », ajoutez cette ligne au début de <code>src/sysc/kernel/sc_cor_qt.cpp</code> :
 
+
Vérifiez :
+
  
 
<pre>
 
<pre>
$ ls lib-linux64/    # ou juste lib-linux, selon la machine.
+
#include <sys/types.h>
libsystemc.a
+
$ ls include/
+
sysc  systemc  systemc.h
+
 
</pre>
 
</pre>
 +
 +
(ces modifications sont incluses dans les patchs, donc en principe, tout est déjà fait pour vous)
  
 
== Installer TLM ==
 
== Installer TLM ==

Version du 23 février 2011 à 15:15

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

SystemC et TLM sont installés dans ~moy/tlm.

Installer SystemC

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
autoreconf -f --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.

La ligne « autoreconf -f --install » permet 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

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

Positionner les variables d'environnement

Pour utiliser les Makefiles des TPs et exemples, il vous reste à faire positionner les variables $SYSTEMCROOT, $TLMOSCI, $TLM_ENSITLM et $SC_SIGNAL_WRITE_CHECK.

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>