Changes between Version 12 and Version 13 of ToolsCourseTp4


Ignore:
Timestamp:
May 10, 2007, 12:33:00 PM (17 years ago)
Author:
anne
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ToolsCourseTp4

    v12 v13  
    1515
    1616
    17 
     17 
    1818= 1 Exemple de description avec Stratus =
    1919
     
    200200
    201201  La synthèse sous Alliance se décompose en plusieurs outils s'exécutant chronologiquement
    202 sur un flux de données. Chaque outil possède ses propres options donnant
    203 des résultats plus ou moins adaptés suivant l'utilisation que l'on veut faire du circuit.
    204 Les dépendances de données dans le flux sont matérialisées dans la réalité par une
    205 pendance de fichier. Le fichier Makefile exécuté à l'aide de la commande make permet
    206 gérer ces dépendances. Différents exemples de fichiers seront fournis durant le TP.
    207 TP n'étant pas un cours sur le Makefile, nous nous limiterons à expliquer l'usage qui
     202  sur un flux de données. Chaque outil possède ses propres options donnant
     203  des résultats plus ou moins adaptés suivant l'utilisation que l'on veut faire du circuit.
     204  Les dépendances de données dans le flux sont matérialisées dans la réalité par une
     205  pendance de fichier. Le fichier Makefile exécuté à l'aide de la commande make permet
     206  gérer ces dépendances. Différents exemples de fichiers seront fournis durant le TP.
     207 Ce TP n'étant pas un cours sur le Makefile, nous nous limiterons à expliquer l'usage qui
    208208est fait dans les exemples fournis.
     209
    209210= 4.1 Principe de base : Les Règles =
    210 Un Makefile est un fichier contenant une ou plusieurs règles traduisant les dépendances
    211 entre les actions et les fichiers.
    212 Voici une règle type Makefile :
    213 cible1 : dépendance1 dépendance2 ....
    214 #Rq: chaque commande doit être précédée d’une tabulation
    215 commande_X
    216 commande_Y
     211  Un Makefile est un fichier contenant une ou plusieurs règles traduisant les dépendances
     212  entre les actions et les fichiers.
     213  Voici une règle type Makefile :
     214  cible1 : dépendance1 dépendance2 ....
     215  #Rq: chaque commande doit être précédée d’une tabulation
     216  commande_X
     217  commande_Y
    217218.
    218219.
    219220.
    220 Les dépendances et cibles représentent, en général, des fichiers.
    221 Seule la première régle (hormis les modèles cf. 9.0.2) du Makefile est examinée. Les
    222 règles suivantes sont ignorées si elles ne sont pas impliquées par la première.
    223 Si certaines dépendances d'une règle X sont elles-mêmes des règles dans le Makefile
    224 alors ces dernières seront examinées avant la règle X appelante.
    225 Pour chaque règle X examinée, si au moins une de ses dépendances est plus récente que
    226 sa cible alors les commandes de la règle X seront exécutées. Remarque : les commandes
    227 servent généralement à produire la cible (i.e un nouveau fichier).
    228 Une cible peut ne pas représenter un fichier. Dans ce cas, les commandes de cette règle
    229 seront toujours exécutées.
     221  Les dépendances et cibles représentent, en général, des fichiers.
     222  Seule la première régle du Makefile est examinée. Les
     223  règles suivantes sont ignorées si elles ne sont pas impliquées par la première.
     224  Si certaines dépendances d'une règle X sont elles-mêmes des règles dans le Makefile
     225  alors ces dernières seront examinées avant la règle X appelante.
     226  Pour chaque règle X examinée, si au moins une de ses dépendances est plus récente que
     227  sa cible alors les commandes de la règle X seront exécutées. Remarque : les commandes
     228  servent généralement à produire la cible (i.e un nouveau fichier).
     229  Une cible peut ne pas représenter un fichier. Dans ce cas, les commandes de cette règle
     230  seront toujours exécutées.
    230231= 4.2 Règles de modèles =
    231 Ces règles sont plus polyvalentes car vous pouvez spécifier des règles de dépendance
    232 plus complexes. Une règle de modèle ressemble à une règle normale, sauf qu'un
    233 symbole (%) apparaît dans le nom de la cible. Les dépendances emploient également
    234 (%) pour indiquer la relation entre les noms de dépendance et le nom de la cible. La r
    235 ègle de modèle suivante spécifie comment tous les fichiers vst sont formés à partir des
    236 vbe.
     232  Ces règles sont plus polyvalentes car vous pouvez spécifier des règles de dépendance
     233  plus complexes. Une règle de modèle ressemble à une règle normale, sauf qu'un
     234  symbole (%) apparaît dans le nom de la cible. Les dépendances emploient également
     235  (%) pour indiquer la relation entre les noms de dépendance et le nom de la cible. La r
     236  ègle de modèle suivante spécifie comment tous les fichiers vst sont formés à partir des
     237  vbe.
    237238
    238239#exemple de règle pour la synthèse
     
    240241boog $*
    241242= 4.3 Définitions de variables =
    242 On peut définir des variables en n'importe quel endroit du fichier Makefile, mais
    243 une écriture lisible nous amène à les définir en début de fichier.
    244 #définitions de variables
    245 MY_COPY = cp -r
    246 MY_NUM = 42
    247 MY_STRING = "hello"
    248 Elles sont utilisables à n'importe quel endroit du Makefile. Elles doivent être précé-
    249 dées du caractère $
    250 #utilisation d’une variable dans une règle
    251 copie:
    252 ${MY_COPY} digicode.vbe tmp/
     243  On peut définir des variables en n'importe quel endroit du fichier Makefile, mais
     244  une écriture lisible nous amène à les définir en début de fichier.
     245  #définitions de variables
     246  MY_COPY = cp -r
     247  MY_NUM = 42
     248  MY_STRING = "hello"
     249  Elles sont utilisables à n'importe quel endroit du Makefile. Elles doivent être précé-
     250  dées du caractère $
     251  #utilisation d’une variable dans une règle
     252  copie:
     253  ${MY_COPY} digicode.vbe tmp/
    253254= 4.4 Variables prédéfinies =
    254  $@ Nom complet de la cible.
    255 $* Nom du fichier cible sans l'extension.
    256    $< Nom du premier fichier dépendant.
    257    $+ Noms de tous les fichiers dépendants avec des dépendances doubles répertori
    258 ées dans leur ordre d'apparition.
    259    $^ Noms de tous les fichiers dépendants. Les doubles sont retirés.
    260    $ ? Noms de tous les fichiers dépendants plus récents que la cible.
    261    $% Nom de membre pour des cibles qui sont des archives (langage C). Si, par
    262 exemple, la cible est libDisp.a(image.o), $% est image.o et $@ est libDisp.a.
     255  * $@ Nom complet de la cible.
     256  * $* Nom du fichier cible sans l'extension.
     257  * $< Nom du premier fichier dépendant.
     258  * $+ Noms de tous les fichiers dépendants avec des dépendances doubles répertori
     259    ées dans leur ordre d'apparition.
     260  * $^ Noms de tous les fichiers dépendants. Les doubles sont retirés.
     261  * $ ? Noms de tous les fichiers dépendants plus récents que la cible.
     262  * $% Nom de membre pour des cibles qui sont des archives (langage C). Si, par
     263 = exemple =
     264 la cible est libDisp.a(image.o), $% est image.o et $@ est libDisp.a.