64 lines
1.6 KiB
Markdown
64 lines
1.6 KiB
Markdown
|
# Test n°14 - Suppression d'un fichier source et recompilation
|
||
|
|
||
|
## Objectif
|
||
|
Ce test a pour but de vérifier comment **Bake** et **Make** réagissent lorsque le fichier source `.c` est supprimé après la première compilation et qu'une recompilation est demandée.
|
||
|
|
||
|
## Structure du projet
|
||
|
Le test est organisé en deux répertoires :
|
||
|
|
||
|
```
|
||
|
.
|
||
|
├── bake
|
||
|
│ ├── Bakefile # Fichier de build pour Bake
|
||
|
│ ├── bakefile.jar # Fichier Bake pré-compilé
|
||
|
│ └── test.c # Fichier source C
|
||
|
├── bakefile.jar # Copie du fichier Bake
|
||
|
└── make
|
||
|
├── Makefile # Fichier de build pour Make
|
||
|
└── test.c # Fichier source C
|
||
|
```
|
||
|
|
||
|
## Étapes du test
|
||
|
|
||
|
### 1. Compilation initiale
|
||
|
#### **Avec Bake**
|
||
|
Exécutez les commandes suivantes :
|
||
|
```sh
|
||
|
cd bake
|
||
|
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||
|
```
|
||
|
Vous devriez voir la compilation de `test.c` en `test.o`.
|
||
|
|
||
|
#### **Avec Make**
|
||
|
Exécutez les commandes suivantes :
|
||
|
```sh
|
||
|
cd ../make
|
||
|
make
|
||
|
```
|
||
|
Cela devrait également compiler `test.c` en `test.o`.
|
||
|
|
||
|
### 2. Suppression du fichier source
|
||
|
Dans chaque répertoire (`bake/` et `make/`), supprimez `test.c` :
|
||
|
```sh
|
||
|
rm test.c
|
||
|
```
|
||
|
|
||
|
### 3. Recompilation
|
||
|
#### **Avec Bake**
|
||
|
```sh
|
||
|
java -cp bakefile.jar fr.monlouyan.bakefile.Main
|
||
|
```
|
||
|
#### **Avec Make**
|
||
|
```sh
|
||
|
make
|
||
|
```
|
||
|
|
||
|
## Résultats attendus
|
||
|
Si `Bake` fonctionne comme `Make`, nous devrions observer une erreur de compilation, car `test.c` est manquant.
|
||
|
|
||
|
Exemple de sortie attendue :
|
||
|
```
|
||
|
make: *** No rule to make target `test.c', needed by `test.o'. Stop.
|
||
|
```
|
||
|
|