64 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

# 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.
```