.PHONY: help build test run examples wasm clean doc
help:
@echo "Sudoku Solver Library"
@echo "Available commands:"
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-15s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
build:
cargo build --release
test:
cargo test
run:
cargo run -- solve "530070000600195000098000060800060003400803001700020006060000280000419005000080079" 9
examples:
@echo "Running basic solving example..."
cargo run --example basic_solving
@echo "\nRunning puzzle generation example..."
cargo run --example puzzle_generation
@echo "\nRunning hints and validation example..."
cargo run --example hints_and_validation
wasm:
./build-wasm.sh
wasm-dev:
wasm-pack build --dev --target web --out-dir pkg-web
doc:
cargo doc --open
clean:
cargo clean
rm -rf pkg-*
rm -rf web-example/pkg
benchmark:
cargo bench
check:
cargo check
fmt:
cargo fmt
clippy:
cargo clippy -- -D warnings
solve-easy:
cargo run -- solve "530070000600195000098000060800060003400803001700020006060000280000419005000080079" 9
solve-4x4:
cargo run -- solve "1.3..2.43.1..4.2" 4
generate-9x9:
cargo run -- generate 9 medium
validate:
cargo run -- validate "534678912672195348198342567859761423426853791713924856961537284287419635345286179" 9
hint:
cargo run -- hint "530070000600195000098000060800060003400803001700020006060000280000419005000080079" 9
dev: build test examples
install-deps:
rustup target add wasm32-unknown-unknown
@if ! command -v wasm-pack >/dev/null 2>&1; then \
echo "Installing wasm-pack..."; \
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh; \
fi