Changes between Version 36 and Version 37 of Archi-1-TP10


Ignore:
Timestamp:
Jan 2, 2021, 3:19:54 PM (4 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP10

    v36 v37  
    466466    $(OD) -D $@ > $@.s
    467467
    468 obj/hcpu.o : hcpu.S
     468obj/hcpu.o : hcpu.S hcpu.h
    469469    $(CC) -o $@ $(CFLAGS) $<
    470470    $(OD) -D $@ > $@.s
     
    474474- La cible finale est : `kernel.x`
    475475- Les cibles intermédiaires sont : `kernel.ld`, `obj/hcpu.o`, `obj/kinit.o`, `obj/klibc.o` et `obj/harch.o`.
    476 - La source est : `hcpu.S``
     476- La source est : `hcpu.S`
    477477- Les variables automatiques servent à extraire des noms dans la définition de la dépendance.
    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}}}
     4861. 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`.
    482487{{{
    4834884_libc/
     
    493498{{{#!protected ------------------------------------------------------------------------------------
    494499'''''''''''''''
    495 -
     500{{{#!make
     501compil:
     502    make -C kernel compil
     503    make -C ulib   compil
     504    make -C uapp   compil
     505}}}
    496506'''''''''''''''
    497507}}}