Files
SAE11_2025/Makefile
T

46 lines
1.2 KiB
Makefile
Raw Normal View History

2025-12-06 19:44:44 +01:00
# Makefile pour le projet Taquin - SAE S1.02 / S1.04
# Variables de compilation
2025-11-30 15:13:09 +01:00
CC = gcc
2025-12-02 13:36:37 +01:00
CFLAGS = -Wall -Wextra -std=c89
2025-11-30 15:56:48 +01:00
LDFLAGS = -lgraph
TARGET = taquin
2025-11-29 19:07:37 +01:00
2025-12-06 19:44:44 +01:00
# Liste de tous les fichiers sources (.c) - INCLUT TOUS LES MODULES
2025-12-01 22:10:36 +01:00
SRCS = src/main.c src/menu_view.c src/game_logic.c src/images.c src/utils.c src/game_view.c
2025-11-29 19:07:37 +01:00
2025-12-06 19:44:44 +01:00
# Liste de tous les fichiers objets (.o) correspondants
# (Transforme src/*.c en obj/*.o)
2025-11-30 15:56:48 +01:00
OBJS = $(patsubst src/%.c, obj/%.o, $(SRCS))
2025-11-29 19:07:37 +01:00
2025-12-06 19:44:44 +01:00
# ----------------------------------------------------------------------
# Cibles principales
# ----------------------------------------------------------------------
2025-11-29 19:07:37 +01:00
2025-12-06 19:44:44 +01:00
# Cible par défaut (crée l'exécutable)
2025-11-30 15:56:48 +01:00
all: dir $(TARGET)
2025-11-29 19:07:37 +01:00
2025-12-06 19:44:44 +01:00
# Crée le dossier obj/ si non existant
2025-11-30 15:56:48 +01:00
dir:
2025-12-02 13:36:37 +01:00
@mkdir -p obj
2025-11-30 15:56:48 +01:00
2025-12-06 19:44:44 +01:00
# Règle de liaison : crée l'exécutable taquin à partir de tous les objets
2025-11-30 15:56:48 +01:00
$(TARGET): $(OBJS)
2025-12-02 13:36:37 +01:00
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
2025-11-30 15:56:48 +01:00
2025-12-06 19:44:44 +01:00
# Règle générique pour la compilation de tous les .c en .o
2025-11-30 15:56:48 +01:00
obj/%.o: src/%.c
2025-12-02 13:36:37 +01:00
$(CC) $(CFLAGS) -c $< -o $@
2025-11-29 19:07:37 +01:00
2025-12-06 19:44:44 +01:00
# Exécute le programme
2025-11-30 15:56:48 +01:00
run: $(TARGET)
2025-12-02 13:36:37 +01:00
./$(TARGET)
2025-11-29 19:07:37 +01:00
2025-12-06 19:44:44 +01:00
# Nettoyage
2025-11-29 19:07:37 +01:00
clean:
2025-12-06 19:44:44 +01:00
rm -f $(EXEC) $(OBJS)
rmdir $(OBJ_DIR) 2>/dev/null || true
2025-12-01 22:10:36 +01:00
2025-12-06 19:44:44 +01:00
# Déclare les cibles qui ne correspondent pas à des fichiers
.PHONY: all clean run