This commit is contained in:
lecointre
2025-11-30 15:56:48 +01:00
parent 0939e7369d
commit 99cb83582a
16 changed files with 433 additions and 37 deletions
+28 -16
View File
@@ -1,28 +1,40 @@
# Makefile pour le projet Taquin - SAE S1.02 / S1.04
# Variables de compilation
CC = gcc
CFLAGS = -Wall -Wextra -std=c89
LIBS = -lgraph
OBJ_DIR = obj
SRC_DIR = src
LDFLAGS = -lgraph
TARGET = taquin
SRC = $(wildcard $(SRC_DIR)/*.c)
OBJ = $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
# Liste de tous les fichiers sources (.c)
SRCS = src/main.c src/menu_view.c src/game_logic.c src/images.c src/utils.c
EXEC = taquin
# Liste de tous les fichiers objets (.o) correspondants
OBJS = $(patsubst src/%.c, obj/%.o, $(SRCS))
all: $(EXEC)
# ----------------------------------------------------------------------
# Cibles principales
# ----------------------------------------------------------------------
$(EXEC): $(OBJ)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
# Cible par défaut (crée l'exécutable)
all: dir $(TARGET)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(OBJ_DIR)
# Crée le dossier obj/ si non existant
dir:
@mkdir -p obj
# Règle de liaison : crée l'exécutable taquin à partir de tous les objets
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
# Règle générique pour la compilation de tous les .c en .o
obj/%.o: src/%.c
$(CC) $(CFLAGS) -c $< -o $@
run: $(EXEC)
./$(EXEC)
# Exécute le programme
run: $(TARGET)
./$(TARGET)
# Nettoyage
clean:
rm -rf $(OBJ_DIR) $(EXEC)
.PHONY : all clean run
@rm -rf obj $(TARGET)