43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
# 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)
 | 
						|
 | 
						|
# 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)common.o: $(SRC)common.c $(INC)common.h
 | 
						|
$(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)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
 |