Installer SystemC et TLM

De Ensiwiki
Révision de 16 octobre 2020 à 16:08 par Petrotf (discussion | contributions) (Sur les machines de l'Ensimag)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

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.