Files
shipheart-appli/make/makefile.common
T

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é...