HASH := $(shell git rev-parse --short HEAD)
SRCS := $(wildcard src/*.c)
OBJS := $(SRCS:src/%.c=build/%.o)
DEPS := $(OBJS:%.o=%.d)

WARNING_FLAGS := -Wall -Wextra
INCLUDE_FLAGS := -I include

CC := clang
CFLAGS := $(WARNING_FLAGS) $(INCLUDE_FLAGS) -DKILO_COMMIT_HASH=$(HASH) -MMD -MP -std=c99 -g

kilo: $(OBJS)
	$(CC) $(CFLAGS) $^ -o $@

$(OBJS): build/%.o: src/%.c
	@mkdir -p build
	$(CC) $(CFLAGS) -c $< -o $@

.PHONY: install clean
install: kilo
	cp kilo ~/bin

clean:
	rm -rf build
	rm -f ./kilo

-include $(DEPS)