TARGET := pipac SRC_DIR := src BUILD_DIR := build SRCS := $(wildcard $(SRC_DIR)/*.c) OBJS := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRCS)) .PHONY: all all: $(TARGET) $(TARGET): $(BUILD_DIR) $(OBJS) $(CC) $(OBJS) -o $(TARGET) $(CFLAGS) $(BUILD_DIR): @mkdir -p $@ .PHONY: clear clear: @rm -rf $(BUILD_DIR) $(TARGET) $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) -c $< -o $@