20 lines
913 B
Plaintext
20 lines
913 B
Plaintext
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é... |