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

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

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 :

  1. Reconnaissent que le fichier source est situé dans un sous-répertoire (src/).
  2. Créent le répertoire build/ si celui-ci n'existe pas.
  3. Compilent main.c et placent l'exécutable dans build/main.
  4. Comparent les messages de sortie pour s'assurer que bake et make gèrent correctement les sous-répertoires.

Comment exécuter le test

Test manuel

  1. Compilez avec Make :

    cd make
    make
    

    L'exécutable build/main doit être généré.

  2. Exécutez le programme compilé :

    ./build/main
    

    Vous devriez voir Hello from Bake & Make! affiché.

  3. Faites la même procédure avec Bake :

    cd bake
    java -cp bakefile.jar fr.monlouyan.bakefile.Main
    
  4. Comparez les résultats et les messages affichés.

Résultats attendus

  • bake et make doivent compiler le programme sans erreur.
  • L'exécutable build/main doit être généré et exécutable.
  • Hello from Bake & Make! doit être affiché lors de l'exécution du programme.