From 0e6bc60ceb3d2676fae166308668680a2f675d17 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 18 May 2025 17:15:57 +0300 Subject: initial rough skeleton + Naive/fast allocation hashmap + Stores/loads are currently all checked, the idea about static analysis to skip checks is still TODO --- Makefile | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..14e9aea --- /dev/null +++ b/Makefile @@ -0,0 +1,65 @@ +.PHONY: all +all: setup + $(MAKE) -f scripts/makefile + +# this kicks all unrecognised targets to the client script. +# note that trying to compile individual files, e.g. +# +# make kernel.elf +# +# will not work, you would need +# +# make -f scripts/makefile kernel.elf +# +# instead +.DEFAULT: setup + $(MAKE) -f scripts/makefile $< + +.PHONY: analyze +analyze: setup + CC='gcc -fanalyzer' SKIP_ANALYZER='-fno-analyzer' $(MAKE) CROSS_COMPILE= + +.PHONY: setup +setup: deps + @echo -n > deps.mk + @./scripts/gen-deps -p BERG -c COMPILE_BERG -b berg "$(BERG_SOURCES)" + +CLEANUP := build deps.mk fwd +CLEANUP_CMD := +BERG_SOURCES := + +include src/source.mk + +.PHONY: format +format: + find src include -iname '*.[ch]' |\ + xargs uncrustify -c uncrustify.conf --no-backup -F - + +.PHONY: license +license: + find src include -iname '*.[ch]' |\ + xargs ./scripts/license + +.PHONY: docs +docs: + find src include -iname '*.[ch]' -not -path */gen/* |\ + xargs ./scripts/warn-undocumented + doxygen docs/doxygen.conf + +RM = rm + +.PHONY: clean +clean: + $(RM) -rf $(CLEANUP) + $(MAKE) -C deps/ejit clean + +.PHONY: clean_docs +clean_docs: + $(RM) -rf docs/output + +.PHONY: clean_all +clean_all: clean clean_docs + +.PHONY: deps +deps: + $(MAKE) -C deps/ejit -- cgit v1.2.3