# le compilateur gcc CC = gcc # options de compilation CFLAGS = -ansi -pedantic -Wall -Wextra LDFLAGS = -lgraph # nom de l'exécutable NAME = blocus # dossiers SRC_DIR = src INC_DIR = include OBJ_DIR = obj # sources SRCS = $(SRC_DIR)/main.c \ $(SRC_DIR)/jeu.c \ $(SRC_DIR)/jeu_humain.c \ $(SRC_DIR)/jeu_ia.c # objets OBJS = $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) # headers INCS = -I$(INC_DIR) # règle par défaut all: $(OBJ_DIR) $(NAME) # création du dossier obj s'il n'existe pas $(OBJ_DIR): mkdir -p $(OBJ_DIR) # création de l'exécutable $(NAME): $(OBJS) $(CC) $(OBJS) -o $(NAME) $(LDFLAGS) # compilation des fichiers sources $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) $(INCS) -c $< -o $@ # nettoyage des fichiers objets clean: rm -rf $(OBJ_DIR) rm -f $(NAME) # exécution du programme run: all ./$(NAME) .PHONY: all clean fclean re run