|
# retoor <retoor@molodetz.nl>
|
|
|
|
.PHONY: build tests clean debug sync-sidebar buildmanual wasm wasm-clean install-emscripten coverage valgrind clean-coverage
|
|
|
|
build:
|
|
cd projects/make && $(MAKE) -f wren_cli.make -j $$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
|
|
|
|
debug:
|
|
cd projects/make && $(MAKE) -f wren_cli.make config=debug_64bit -j $$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
|
|
|
|
tests: build
|
|
python3 util/test.py
|
|
|
|
create_merge:
|
|
wren apps/merge_all_wren.wren
|
|
|
|
create_docs:
|
|
wren apps/merge_docs.wren
|
|
|
|
create_training_data:
|
|
python create_training_data.py --manual-html manual.md --out-train training_data.jsonl --out-val training_data_val.jsonl
|
|
|
|
install:
|
|
cp bin/wren_cli /usr/local/bin/wren
|
|
|
|
clean:
|
|
cd projects/make && $(MAKE) -f wren_cli.make clean
|
|
|
|
publish:
|
|
|
|
git add src
|
|
git add example
|
|
git add manual_src
|
|
git add test
|
|
git commit -a -m "Update."
|
|
git push
|
|
|
|
wasm-clean:
|
|
cd projects/make.wasm && $(MAKE) -f wren_wasm.make clean
|
|
|
|
install-emscripten:
|
|
@if [ ! -d "$(HOME)/emsdk" ]; then \
|
|
echo "Cloning Emscripten SDK..."; \
|
|
git clone https://github.com/emscripten-core/emsdk.git $(HOME)/emsdk; \
|
|
cd $(HOME)/emsdk && ./emsdk install latest && ./emsdk activate latest; \
|
|
echo ""; \
|
|
echo "Emscripten installed. Run: source ~/emsdk/emsdk_env.sh"; \
|
|
else \
|
|
echo "Emscripten SDK already exists at ~/emsdk"; \
|
|
echo "Run: source ~/emsdk/emsdk_env.sh"; \
|
|
fi
|
|
|
|
wasm:
|
|
@if [ -z "$$EMSDK" ]; then \
|
|
echo "Error: EMSDK is not set. Run 'source ~/emsdk/emsdk_env.sh' first"; \
|
|
exit 1; \
|
|
fi
|
|
cd projects/make.wasm && $(MAKE) -f wren_wasm.make -j $$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
|
|
|
|
buildmanual:
|
|
python3 util/build_manual.py
|
|
|
|
coverage:
|
|
cd projects/make && $(MAKE) -f wren_cli.make config=coverage_64bit clean
|
|
cd projects/make && $(MAKE) -f wren_cli.make config=coverage_64bit -j $$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
|
|
python3 util/test.py --suffix=_cov
|
|
@echo "Generating coverage report..."
|
|
lcov --capture --directory projects/make/obj/64bit/Coverage --output-file coverage.info --ignore-errors mismatch,inconsistent
|
|
lcov --remove coverage.info '/usr/*' '*/deps/*' --output-file coverage.info --ignore-errors unused
|
|
genhtml coverage.info --output-directory coverage_report
|
|
@echo "Coverage report: coverage_report/index.html"
|
|
|
|
valgrind:
|
|
cd projects/make && $(MAKE) -f wren_cli.make config=debug_64bit -j $$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
|
|
python3 util/test.py --suffix=_d --valgrind
|
|
|
|
clean-coverage:
|
|
rm -rf coverage.info coverage_report
|
|
find projects/make -name "*.gcda" -delete
|
|
find projects/make -name "*.gcno" -delete
|