2016-10-25 04:51:07 +00:00
|
|
|
# Dossiers contenant les fichiers sources, les en-têtes
|
|
|
|
# et les sorties
|
|
|
|
SRC=src/
|
|
|
|
INC=inc/
|
|
|
|
OUT=out/
|
|
|
|
|
|
|
|
# Configuration du compilateur
|
2016-10-05 10:52:58 +00:00
|
|
|
CC=gcc
|
2016-10-25 04:51:07 +00:00
|
|
|
CFLAGS=-Wall -std=c99 -I$(INC)
|
|
|
|
|
|
|
|
# Objets et exécutables à construire
|
2016-10-22 00:55:02 +00:00
|
|
|
PROG=huffman
|
2016-10-25 04:51:07 +00:00
|
|
|
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 $@
|
2016-10-05 10:52:58 +00:00
|
|
|
|
2016-10-25 04:51:07 +00:00
|
|
|
# Générer les fichiers objets pour chaque source
|
|
|
|
$(OUT)common.o: $(SRC)common.c $(INC)common.h
|
2016-10-27 13:36:51 +00:00
|
|
|
$(OUT)buffer.o: $(SRC)buffer.c $(INC)buffer.h
|
2016-10-25 04:51:07 +00:00
|
|
|
$(OUT)compress.o: $(SRC)compress.c $(INC)compress.h $(INC)common.h \
|
|
|
|
$(INC)display.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
|
2016-10-05 10:52:58 +00:00
|
|
|
|
2016-10-25 04:51:07 +00:00
|
|
|
$(OBJECTS):
|
|
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
2016-10-05 10:52:58 +00:00
|
|
|
|
2016-10-25 04:51:07 +00:00
|
|
|
# Nettoyer le dossier de sortie
|
2016-10-12 10:28:38 +00:00
|
|
|
clean:
|
2016-10-25 04:51:07 +00:00
|
|
|
rm -rf out
|