# Dossiers contenant les fichiers sources, les en-têtes # et les sorties SRC=src/ INC=inc/ OUT=out/ # Configuration du compilateur CC=gcc CFLAGS=-Wall -std=c99 -I$(INC) -g # Objets et exécutables à construire PROG=huffman SOURCES=$(wildcard $(SRC)*.c) OBJECTS=$(patsubst $(SRC)%.c,$(OUT)%.o,$(SOURCES)) ##################################################### all: $(OUT) $(OUT)$(PROG) # Créer le dossier de sortie si nécessaire $(OUT): mkdir -p $(OUT) # Lier les différents fichiers objets générés en un exécutable $(OUT)$(PROG): $(OBJECTS) $(CC) $^ $(CFLAGS) -o $@ # Générer les fichiers objets pour chaque source $(OUT)buffer.o: $(SRC)buffer.c $(INC)buffer.h $(OUT)compress.o: $(SRC)compress.c $(INC)compress.h $(INC)common.h \ $(INC)display.h $(OUT)decompress.o: $(SRC)decompress.c $(INC)decompress.h $(INC)buffer.h \ $(INC)display.h $(INC)huftree.h $(OUT)display.o: $(SRC)display.c $(INC)display.h $(INC)common.h $(OUT)huftree.o: $(SRC)huftree.c $(INC)huftree.h $(INC)common.h $(OUT)main.o: $(SRC)main.c $(INC)compress.h $(INC)common.h $(OBJECTS): $(CC) $(CFLAGS) -o $@ -c $< # Nettoyer le dossier de sortie clean: rm -rf out