Configurer l'environnement

Pour faciliter la prise en main de la bibliothèque SocLib nous vous proposons d'étudier un exemple "simple" un hello world!

Configuration de l'environnement de travail:

Pour commencer vous devez d'abord configurer votre environnement.

Nous vous proposons un script pour définir correctement le chemin vers les outils SocLib (PATH) et quelques quelques autres outils nécessaires à la simulation telle que le chemin vers la bibliothèque SystemC.

Pour les SHELL sh ou zsh vous pouvez juste:

source /comelec/softs/opt/soclib/TPT/env.sh

Récupérer le code du HelloWorld:

Le code du helloworld est disponible à travers un dépôt Git. Vous pouvez cloner le dépôt et faisant:

git clone git@gitlab.enst.fr:se303/soclib_hello_world PS. Si vous voulez que placer le dépôt dans un sous-répertoire de votre dépôt personnel, vous pouvez utiliser git read-tree (voir la note plus bas) ou si vous avez une version récente de git le script git subtree

Compilez et exécutez le HelloWorld:

Faites make, si tout se passe bien vous devriez obtenir un exécutable simulation.x. Lancez cet exécutable et admirez.

Note

Exemple en utilisant read-tree:

  • Se mettre dans la branche master de son dépôt:

    git checkout master
                 
  • Ajouter un remote hello-remote vers le nouveau dépôt puis récupérer son état:

    git remote add hello-remote git@gitlab.enst.fr:se303/soclib_hello_world.git
    git fetch hello-remote
                 
  • Créer une branche locale avec l'état du master du nouveau dépôt:

    git checkout -b hello_master_branch hello-remote/master
                 
  • Revenir dans master:

    git checkout master
                 
  • Récupérer la nouvelle branche crée dans le sous-répertoire hello_world puis faire un commit:

    git read-tree --prefix=hello_world -u hello_master_branch
    git commit -m "Récupération du hello world..."
                 

Pour récupérer des modifications:

  • Se mettre dans la branche hello_master_branch:

    git checkout hello_master_branch
    git pull
                 
  • Revenir dans master et merger en utilisant la stratégie subtree:

    git checkout master
    git merge -s subtree hello_master_branch --allow-unrelated-histories
                 

Pour merger une autre branche dans le même sous-répertoire:

  • Se mettre dans la branche hello_master_branch:

    git checkout hello_master_branch
    git merger hello-remote/models
                 
  • Revenir dans master et merger en utilisant la stratégie subtree:

    git checkout master
    git merge -s subtree hello_master_branch --allow-unrelated-histories