Installer SystemC et TLM : Différence entre versions
(→Sur les machines de l'Ensimag) |
(→Sur les machines de l'Ensimag) |
||
(13 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | Pour installer SystemC | + | Pour installer SystemC 2.3.3 (version la plus récente), vous pouvez les télécharger sur http://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.3.tar.gz |
== Sur les machines de l'Ensimag == | == Sur les machines de l'Ensimag == | ||
− | SystemC | + | SystemC est installé dans <code>/matieres/5MMMTSP/cours-tlm/systemc-2.3.3</code>. |
+ | On compile également une petite bibliothèque pour le support des bus, qui se trouve dans <code>TPs/ensitlm</code>. | ||
+ | Cette bibliothèque, ainsi que le reste des TP, utilise un Makefile unique <code>TPs/Makefile.common</code> qui contient en particulier les bons flags pour <code>g++</code>. | ||
== Installer SystemC 2.3 == | == Installer SystemC 2.3 == | ||
− | En principe, il suffit de télécharger l'archive et d'appliquer le bon vieux <code>configure/make/make install</code> | + | En principe, il suffit de télécharger l'archive et d'appliquer le bon vieux <code>configure/make/make install</code>. |
+ | Il faut juste s'assurer que le standard c++ utilisé pour compiler SystemC et les exemples sont biens les mêmes, sinon ça foire lors de l'édition de liens, et on se tire des balles. | ||
+ | Dans la suite on utilise la version 2017 du standard, car c'est ce que j'ai utilisé dans les Makefiles des exemples. | ||
<pre> | <pre> | ||
− | + | sudo mkdir -p /opt/systemc-2.3.3 | |
− | tar xzvf systemc-2.3. | + | # On rend l'utilisateur courant propriétaire du répertoire |
− | cd systemc-2.3. | + | sudo chown $(id -un):$(id -gn) /opt/systemc-2.3.3 |
− | mkdir | + | mkdir devel && cd devel |
− | cd | + | wget http://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.3.tar.gz |
− | ../configure | + | tar xzvf systemc-2.3.3.tar.gz |
− | make | + | cd systemc-2.3.3 |
+ | mkdir build | ||
+ | cd build | ||
+ | CXXFLAGS=-std=c++17 ../configure --prefix=/opt/systemc-2.3.3 | ||
+ | make -j $(nproc) | ||
make install | make install | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
+ | On peut vérifier que tout s'est bien passé en regardant ce qui a été installé effectivement. | ||
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> | <pre> | ||
− | systemc-2.3. | + | petrot@tilleul[:|✔]% ls /opt/systemc-2.3.3/include |
− | sysc | + | sysc systemc systemc.h tlm tlm_core tlm.h tlm_utils |
− | systemc-2.3. | + | petrot@tilleul[:|✔]% ls /opt/systemc-2.3.3/lib-* |
− | libsystemc-2.3. | + | libsystemc-2.3.3.so libsystemc.a libsystemc.la libsystemc.so pkgconfig |
</pre> | </pre> | ||
== Configuration == | == Configuration == | ||
− | Pour utiliser les Makefiles des TPs et exemples, il vous reste à | + | Pour utiliser les Makefiles des TPs et exemples, il vous reste à positionner la variable d'environnement $SYSTEMCROOT, qui doit pointer sur votre installation de SystemC. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Le plus simple est de se baser sur le fichier <code>setup-ensimag.sh</code> fourni dans l'archive git en adaptant les chemins à votre configuration. | |
[[Catégorie:Modélisation TLM en SystemC]] | [[Catégorie:Modélisation TLM en SystemC]] |
Version actuelle en date du 16 octobre 2020 à 16:08
Pour installer SystemC 2.3.3 (version la plus récente), vous pouvez les télécharger sur http://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.3.tar.gz
Sur les machines de l'Ensimag
SystemC est installé dans /matieres/5MMMTSP/cours-tlm/systemc-2.3.3
.
On compile également une petite bibliothèque pour le support des bus, qui se trouve dans TPs/ensitlm
.
Cette bibliothèque, ainsi que le reste des TP, utilise un Makefile unique TPs/Makefile.common
qui contient en particulier les bons flags pour g++
.
Installer SystemC 2.3
En principe, il suffit de télécharger l'archive et d'appliquer le bon vieux configure/make/make install
.
Il faut juste s'assurer que le standard c++ utilisé pour compiler SystemC et les exemples sont biens les mêmes, sinon ça foire lors de l'édition de liens, et on se tire des balles.
Dans la suite on utilise la version 2017 du standard, car c'est ce que j'ai utilisé dans les Makefiles des exemples.
sudo mkdir -p /opt/systemc-2.3.3 # On rend l'utilisateur courant propriétaire du répertoire sudo chown $(id -un):$(id -gn) /opt/systemc-2.3.3 mkdir devel && cd devel wget http://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.3.tar.gz tar xzvf systemc-2.3.3.tar.gz cd systemc-2.3.3 mkdir build cd build CXXFLAGS=-std=c++17 ../configure --prefix=/opt/systemc-2.3.3 make -j $(nproc) make install
On peut vérifier que tout s'est bien passé en regardant ce qui a été installé effectivement. 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) :
petrot@tilleul[:|✔]% ls /opt/systemc-2.3.3/include sysc systemc systemc.h tlm tlm_core tlm.h tlm_utils petrot@tilleul[:|✔]% ls /opt/systemc-2.3.3/lib-* libsystemc-2.3.3.so libsystemc.a libsystemc.la libsystemc.so pkgconfig
Configuration
Pour utiliser les Makefiles des TPs et exemples, il vous reste à positionner la variable d'environnement $SYSTEMCROOT, qui doit pointer sur votre installation de SystemC.
Le plus simple est de se baser sur le fichier setup-ensimag.sh
fourni dans l'archive git en adaptant les chemins à votre configuration.