.PHONY : help release .SILENT : help targets = x86_64-unknown-linux-gnu \ i686-unknown-linux-gnu \ x86_64-pc-windows-gnu \ i686-pc-windows-gnu \ # wasm32-unknown-emscripten # ^ Potential bug in cross, openssl does not compile for wasm for some # reason. cargo_flags = --release \ --features release_version_string # Get the version string out of the Cargo.toml by taking the second field # (delimited by double quotes) of the 'version = "x.y.z"' line version=$(shell awk -F'"' '/^version/ {print $$2}' Cargo.toml) date=$(shell date +%Y%m%d) filename="dirble-${version}-${date}" default : cargo build --release @echo Release binary: target/release/dirble help : echo "Run 'make release' to make all targets" echo "To build for just one platform then run 'make '" echo "Supported targets are:" echo $(targets) echo "There is a combined mac target for 32 and 64-bit systems," echo "currently only supports being run on a mac." release : $(targets) dirble_wordlist.txt mkdir -p dirble/extensions cp dirble_wordlist.txt dirble/ cp extensions/* dirble/extensions cp target/x86_64-unknown-linux-gnu/release/dirble dirble/dirble cp target/i686-unknown-linux-gnu/release/dirble dirble/dirble32 cp target/x86_64-pc-windows-gnu/release/dirble.exe dirble/dirble.exe cp target/i686-pc-windows-gnu/release/dirble.exe dirble/dirble32.exe zip dirble/${filename}-x86_64-linux.zip \ dirble/dirble \ dirble/dirble_wordlist.txt \ dirble/extensions/* zip dirble/${filename}-i686-linux.zip \ dirble/dirble32 \ dirble/dirble_wordlist.txt \ dirble/extensions/* zip dirble/${filename}-x86_64-windows.zip \ dirble/dirble.exe \ dirble/dirble_wordlist.txt \ dirble/extensions/* zip dirble/${filename}-i686-windows.zip \ dirble/dirble32.exe \ dirble/dirble_wordlist.txt \ dirble/extensions/* rm -rfv release mv dirble release mac : x86_64-apple-darwin dirble_wordlist.txt mkdir -p dirble/extensions cp dirble_wordlist.txt dirble/ cp extensions/* dirble/extensions cp target/x86_64-apple-darwin/release/dirble dirble/dirble zip dirble/${filename}-x86_64-apple-darwin.zip \ dirble/dirble \ dirble/dirble_wordlist.txt \ dirble/extensions/* rm -rfv release mv dirble release x86_64-unknown-linux-gnu : cross build $(cargo_flags) --target x86_64-unknown-linux-gnu i686-unknown-linux-gnu : cross build $(cargo_flags) --target i686-unknown-linux-gnu x86_64-pc-windows-gnu : cross build $(cargo_flags) --target x86_64-pc-windows-gnu i686-pc-windows-gnu : cross build $(cargo_flags) --target i686-pc-windows-gnu x86_64-apple-darwin : cargo build $(cargo_flags) --target x86_64-apple-darwin #wasm32-unknown-emscripten : # cross build --release --target wasm32-unknown-emscripten