Menu v3
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user