CC := gcc # CFLAGS := -std=gnu99 -g -ggdb -Wall -Wextra -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wwrite-strings -Wswitch-default -Wconversion -Wunreachable-code -pedantic -fsanitize=address -fsanitize=undefined -Wno-builtin-declaration-mismatch -save-temps CFLAGS := -std=gnu99 -g -ggdb -Wall -Wextra -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wwrite-strings -Wswitch-default -Wconversion -Wunreachable-code -pedantic -Wno-builtin-declaration-mismatch -Wno-missing-braces SRC_DIR := src LIB_DIR := src/lib BUILD := .build LIB_SRC := $(wildcard $(LIB_DIR)/*.c) SRC := $(filter-out $(LIB_SRC), $(wildcard $(SRC_DIR)/*.c)) OBJ := $(patsubst $(SRC_DIR)/%.c, $(BUILD)/%.o, $(SRC)) TARGETS := $(patsubst $(SRC_DIR)/%.c, $(BUILD)/%, $(SRC)) all: $(TARGETS) $(BUILD)/%: $(SRC_DIR)/%.c $(LIB_SRC) | $(BUILD) $(CC) $(CFLAGS) $(LIB_SRC) $< -o $@ $(BUILD): mkdir -p data mkdir -p $(BUILD) clean: rm -rf $(BUILD) docs: mkdir -p docs doxygen Doxyfile .PHONY: all clean