Test 15 - Compilation avec sous-répertoires
Ce test vérifie si bake et make peuvent compiler un fichier source situé dans un sous-répertoire (src/) et placer l'exécutable résultant dans un autre sous-répertoire (build/).
Sommaire
- Structure du test
- Contenu des fichiers de règles
- Objectif du test
- Comment exécuter le test
- Résultats attendus
Structure du test
test-15-sous-repertoires/
├── README.md # Ce fichier
├── bake/
│ ├── Bakefile # Fichier de règles pour bake
│ ├── bakefile.jar # Exécutable de bake (JAR)
│ ├── src/
│ │ ├── main.c # Fichier source principal
│ ├── build/ # Dossier où sera placé l'exécutable
├── make/
│ ├── Makefile # Fichier de règles pour make
│ ├── src/
│ │ ├── main.c # Fichier source principal
│ ├── build/ # Dossier où sera placé l'exécutable
└── run_test15.sh # Programme de test automatique
Contenu des fichiers de règles
Les fichiers Makefile et Bakefile contiennent les règles suivantes :
CC = gcc
CFLAGS = -Wall -Wextra
build/main: src/main.c
mkdir -p build
$(CC) $(CFLAGS) -o build/main src/main.c
Objectif du test
Ce test vérifie que bake et make :
- Reconnaissent que le fichier source est situé dans un sous-répertoire (
src/). - Créent le répertoire
build/si celui-ci n'existe pas. - Compilent
main.cet placent l'exécutable dansbuild/main. - Comparent les messages de sortie pour s'assurer que
bakeetmakegèrent correctement les sous-répertoires.
Comment exécuter le test
Test automatique
-
Rendez le script de test exécutable :
chmod +x run_test15.sh -
Lancez le script de test :
./run_test15.sh -
Consultez les résultats affichés dans le terminal et dans le fichier de log généré dans le répertoire
logs/.
Test manuel
-
Compilez avec Make :
cd make makeL'exécutable
build/maindoit être généré. -
Exécutez le programme compilé :
./build/mainVous devriez voir
Hello from Bake & Make!affiché. -
Faites la même procédure avec Bake :
cd bake java -cp bakefile.jar fr.monlouyan.bakefile.Main -
Comparez les résultats et les messages affichés.
Résultats attendus
bakeetmakedoivent compiler le programme sans erreur.- L'exécutable
build/maindoit être généré et exécutable. Hello from Bake & Make!doit être affiché lors de l'exécution du programme.