SRC= $(wildcard $(SRCDIR)/*.c) DEPS= $(wildcard $(SRCDIR)/*.h) OBJ = $(subst $(SRCDIR),$(OBJDIR), $(patsubst %.c, %.o, $(SRC)) ) # Règle de plus haut niveau : all: $(EXEDIR)/$(EXECUTABLE) # Linker (dépendance de l'exécutable vs les fichiers Objet) : $(EXEDIR)/$(EXECUTABLE): $(OBJ) $(CC) -o $@ $^ $(LIBS) # Compilateur (dépendance des fichiers Objet vs leur fichier Source et TOUS les Headers) : $(OBJDIR)/%.o: $(SRCDIR)/%.c $(DEPS) $(CC) -o $@ -c $< $(CFLAGS) # Cas particulier du fichier '_version.c' qui dépend, en plus, du fichier '_version.txt' (cf fichier '_version.c' pour détails) : $(OBJDIR)/_version.o: $(SRCDIR)/_version.c $(SRCDIR)/_version.txt $(CC) -o $(OBJDIR)/_version.o -c $(SRCDIR)/_version.c $(CFLAGS) # NB : Les fonctions de type Clean ou Mrproper ne sont pas laissées car on part du principe qu'on garde les fichiers objets dans le répertoire dédié...