.PHONY : help release
.SILENT : help
targets = x86_64-unknown-linux-gnu \
i686-unknown-linux-gnu \
x86_64-pc-windows-gnu \
i686-pc-windows-gnu \
cargo_flags = --release \
--features release_version_string
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 <target>'"
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