TARGET := pipac SRC_DIR := src BUILD_DIR := build CFLAGS := -Wall -Wextra -pedantic -std=c11 -ggdb SRCS := $(wildcard $(SRC_DIR)/*.c) OBJS := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRCS)) .PHONY: all all: $(TARGET) $(TARGET): $(BUILD_DIR) $(OBJS) $(CC) $(CFLAGS) $(OBJS) -o $(TARGET) $(BUILD_DIR): @mkdir -p $@ .PHONY: test test: $(TARGET) $(MAKE) -C test .PHONY: clean clean: $(RM) -rf $(BUILD_DIR) $(TARGET) $(MAKE) -C test clean $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) -c $< -o $@