Makefile en force

Oulala j'ai 4 fichiers a compiler, faire les .o puis linker. Ca devient compliqué tout ça :s
Makefile est la pour toi, pour toi !
Nous sommes dans la rubrique Code ce n'est donc pas un tutoriel à part entière mais deux trois explications s'impose quand même.
Ce que fait le Makefile ?
Compare les dates de modifications des fichiers avec l'heure actuel pour déterminer lesquels sont a recompiler.
Pour compiler un binaire, Makefile établie un arbre :
Pour le binaire il faut :
* plop.o o plop.c o plop.h o temps.o + temps.c + temps.o * plip.o o plip.c o plip.h
C'est pour cela qu'il ne faut pas oublier de spécifier les .h dans le Makefile pour qu'il recompile votre projet si ils sont modifiés.
LE Makefile
Loin d'être parfait, bien évidement, il vous permettra quand même de vous dépanner de temps à autre (du moins je l'espère).
Rien d'extraordinaire, mais il a quand même la particularité d'avoir une règle pour une compilation "normale" et une compilation activant les flags de debug si besoin est.
CC = gcc CFLAGS = -Wall -W -std=gnu99 LDFLAGS = SRC = plop.c plop.h OBJS = $(SRC:.c=.o) EXEC = prog COMPILE := $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $(EXEC) debug : CFLAGS += -DDEBUG -g all:$(EXEC) ./$(EXEC) $(EXEC):$(OBJS) $(COMPILE) debug :$(OBJS) $(COMPILE) %.o: %.c $(CC) $(CFLAGS) -c $(<) -o $(@) clean: -rm *.o -rm $(EXEC)
Autre exemple à télécharger : Makefile