42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.0 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)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
 |