diff --git a/Makefile b/Makefile index adf8ecbac..ad4d7b998 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,34 @@ -all: limbo limbo-wasm +MINIMUM_RUST_VERSION := 1.73.0 +CURRENT_RUST_VERSION := $(shell rustc -V | sed -E 's/rustc ([0-9]+\.[0-9]+\.[0-9]+).*/\1/') +RUSTUP := $(shell command -v rustup 2> /dev/null) + +all: check-rust-version check-wasm-target limbo limbo-wasm .PHONY: all +check-rust-version: + @echo "Checking Rust version..." + @if [ "$(shell printf '%s\n' "$(MINIMUM_RUST_VERSION)" "$(CURRENT_RUST_VERSION)" | sort -V | head -n1)" = "$(CURRENT_RUST_VERSION)" ]; then \ + echo "Rust version greater than $(MINIMUM_RUST_VERSION) is required. Current version is $(CURRENT_RUST_VERSION)."; \ + if [ -n "$(RUSTUP)" ]; then \ + echo "Updating Rust..."; \ + rustup update stable; \ + else \ + echo "Please update Rust manually to a version greater than $(MINIMUM_RUST_VERSION)."; \ + exit 1; \ + fi; \ + else \ + echo "Rust version $(CURRENT_RUST_VERSION) is acceptable."; \ + fi +.PHONY: check-rust-version + +check-wasm-target: + @echo "Checking wasm32-wasi target..." + @if ! rustup target list | grep -q "wasm32-wasi (installed)"; then \ + echo "Installing wasm32-wasi target..."; \ + rustup target add wasm32-wasi; \ + fi +.PHONY: check-wasm-target + limbo: cargo build .PHONY: limbo @@ -12,4 +40,4 @@ limbo-wasm: test: limbo SQLITE_EXEC=./target/debug/limbo ./testing/all.test -.PHONY: test +.PHONY: test \ No newline at end of file