Untitled

 avatar
unknown
plain_text
a year ago
635 B
3
Indexable
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