diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..72730c5 --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ +#!/usr/bin/env make -f + +### global variables section + +# static vars +BUILD_DIR:="build" +BUILD_BIN:="$(BUILD_DIR)/tools/blisp/blisp" + +# dynamic vars +FILES_CMAKE:=$(shell find . -path ./$(BUILD_DIR) -prune -false -o -type f -name '*.cmake' -o -type f -name 'CMakeLists.txt') +FILES_SRC:=$(shell find . -path ./$(BUILD_DIR) -prune -false -o -type f -name '*.c' -o -type f -name '*.h') + +### main targets section + +# simplify build +build: $(FILES_CMAKE) $(FILES_SRC) Makefile + @echo "\n>>>> Generating build files in: $(BUILD_DIR) ...\n" + @cmake -S . -B $(BUILD_DIR) -DBLISP_BUILD_CLI=ON + @echo "\n>>>> Building...\n" + @cmake --build $(BUILD_DIR) + @echo "\n>>>> DONE: $(BUILD_BIN)\n" + +# deleting output build directory with its content +clean: + -@rm -rf $(BUILD_DIR)/ + +# printf-like debug target +vars: + @echo "\n>>>> FILES_CMAKE:" + @echo "$(FILES_CMAKE)" | sed 's, ,\n,g' + @echo "\n>>>> FILES_SRC:" + @echo "$(FILES_SRC)" | sed 's, ,\n,g' + +.PHONY: clean vars +