478 | | - `$@` = `kernel.x` dans la première règle |
479 | | ''''''''''''''' |
480 | | }}} |
481 | | 1.Dans le TP, à partir de la deuxième étape, nous avons trois répertoire de sources |
| 478 | - dans la première règle : |
| 479 | - `$@` = `cible` = `kernel.x` |
| 480 | - `$^` = l'ensemble des dépendances = `kernel.ld`, `obj/hcpu.o`, `obj/kinit.o`, `obj/klibc.o` et `obj/harch.o` |
| 481 | - dans la seconde règle : |
| 482 | - `$@` = `cible` = `obj/hcpu.o` |
| 483 | - `$^` = la première des dépendances = `hcpu.S` |
| 484 | ''''''''''''''' |
| 485 | }}} |
| 486 | 1. Dans le TP, à partir de la deuxième étape, nous avons trois répertoires de sources `kernel`, `ulib` et `uapp`. Chaque répertoire contient une fichier `Makefile` différent destiné à produire une cible différente grâce à une règle nommée `compil`, c.-à-d. si vous tapez `make compil` dans un de ces répertoires, cela compile les sources locales.\\Il y a aussi un Makefile dans le répertoire racine `4_libc`. Dans ce dernier Makefile, une des règles est destinée à la compilation de l'ensemble des sources dans les trois sous-répertoires. Cette règle appelle récursivement la commande `make` en donnant en argument le nom du sous-répertoire où descendre :\\`make -C <répertoire> [cible]` est équivalent à `cd <répertoire>; make [cible] ; cd ..`\\Ecrivez la règle `compil` du fichier `4_libc/Makefile`. |