cc := clang
o :=
c :=
cflags  += -isystem .
buildtype ?= release

include src.mk
include ../generic/flags.mk
include ../$(platform)/flags.mk

all: build/$(libname).a

build/$(libname).a: $(o)
	llvm-ar rcs $@ $^

%.o: %.c
	$(cc) -c -o $@ $(cflags) $<

%.o: %.S
	$(cc) -c -o $@ $(cflags) $<

clean:
	rm -f $(o) build/$(libname).a

format:
	clang-format -i $$(git ls-files '*.c' '*.h')

docs:
	rm -rf docs
	clang-doc --format=md --output docs -p . $$(git ls-files '*.h')
	for f in ./docs/GlobalNamespace/*.md; do sed -i '/^# Global Namespace/d' "$$f"; done
	rm -rf ../docs/libs/$(libname)
	mkdir -p ../docs/libs/$(libname)
	cp ./docs/GlobalNamespace/*.md ../docs/libs/$(libname)

.PHONY: all clean format
