Untitled
TARGET := macro DEBUG := y BUILD_DIR := ./build sources_all := $(shell find . -name "*.c" -o -name "*.h") sources_c := $(filter %.c, $(sources_all)) sources_h := $(filter %.h, $(sources_all)) objs := $(addprefix $(BUILD_DIR)/,$(notdir $(sources_c:.c=.o))) CC := gcc CFLAGS := $(if $(DEBUG), -g3, -O3) CFLAGS += $(addprefix -I , $(sort $(dir $(sources_h)))) $(BUILD_DIR): $(shell mkdir -p $(BUILD_DIR)) $(objs): $(sources_c) $(CC) $(CFLAGS) -c $< -o $@ $(TARGET): $(BUILD_DIR) $(objs) $(CC) $(CFLAGS) -o $(TARGET_PROG) $(objs) all: $(TARGET) .PHONY: clean clean: rm -rf $(BUILD_DIR)
Leave a Comment