Dr_Quine/Makefile
2026-05-27 17:30:21 +02:00

60 lines
1.1 KiB
Makefile

SRC_DIR = src
COLLEEN_SRCS = $(SRC_DIR)/Colleen.c
GRACE_SRCS = $(SRC_DIR)/Grace.c
SULLY_SRCS = $(SRC_DIR)/Sully.c
COLLEEN = Colleen
GRACE = Grace
SULLY = Sully
.DEFAULT_GOAL := all
MAKEFLAGS += --no-print-directory
CC = clang
CPPFLAGS = -std=c99 -I includes
CFLAGS = -Wall -Wextra -Werror -pipe -Wpedantic -Wconversion -Wshadow -Wvla
LDFLAGS =
OBJ_DIR = .build
COLLEEN_OBJS = $(COLLEEN_SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
COLLEEN_DEPS = $(COLLEEN_OBJS:.o=.d)
GRACE_OBJS = $(GRACE_SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
GRACE_DEPS = $(GRACE_OBJS:.o=.d)
SULLY_OBJS = $(SULLY_SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
SULLY_DEPS = $(SULLY_OBJS:.o=.d)
.PHONY: all
all: $(COLLEEN) $(GRACE) $(SULLY)
$(GRACE): $(GRACE_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(COLLEEN): $(COLLEEN_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(SULLY): $(SULLY_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(dir $@)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c $< -o $@
-include $(COLLEEN_DEPS)
-include $(GRACE_DEPS)
-include $(SULLY_DEPS)
.PHONY: clean
clean:
$(RM) -r $(OBJ_DIR)
.PHONY: fclean
fclean: clean
$(RM) $(COLLEEN) $(GRACE) $(SULLY)
.PHONY: re
re: fclean
$(MAKE) all