diff --git a/Makefile b/Makefile index b54c0b0..634f76c 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,51 @@ -compile: - mkdir -p bin/ - @echo "Compiling for every OS and Platform" +# default +compileAll: compileDarwin compileLinux compileFreeBSD compileWindows +# dir +mkdirs: clean + mkdir -p bin/ + +.PHONY: clean +clean: + rm -r bin/ +# + +# compile +compileDarwin: mkdirs + @echo "" + @echo "🍏 Compile for Darwin" + @echo "" + GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o ./bin/yaxc-darwin-amd64 ./main.go + +compileLinux: mkdirs + @echo "" @echo "🐧 Compile for Linux" + @echo "" GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o ./bin/yaxc-linux-amd64 ./main.go GOOS=linux GOARCH=386 go build -ldflags="-s -w" -o ./bin/yaxc-linux-386 ./main.go GOOS=linux GOARCH=arm go build -ldflags="-s -w" -o ./bin/yaxc-linux-arm ./main.go GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o ./bin/yaxc-linux-arm64 ./main.go - @echo "🍏 Compile for Apple" - GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o ./bin/yaxc-darwin-amd64 ./main.go - - @echo "🪟 Compile for Windows" - GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o ./bin/yaxc-windows-amd64.exe ./main.go - GOOS=windows GOARCH=386 go build -ldflags="-s -w" -o ./bin/yaxc-windows-386.exe ./main.go - +compileFreeBSD: mkdirs + @echo "" @echo "🐡 Compile for FreeBSD" + @echo "" GOOS=freebsd GOARCH=amd64 go build -ldflags="-s -w" -o ./bin/yaxc-freebsd-amd64 ./main.go GOOS=freebsd GOARCH=386 go build -ldflags="-s -w" -o ./bin/yaxc-freebsd-386 ./main.go GOOS=freebsd GOARCH=arm go build -ldflags="-s -w" -o ./bin/yaxc-freebsd-arm ./main.go + +compileWindows: mkdirs + @echo "" + @echo "🪟 Compile for Windows" + @echo "" + GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o ./bin/yaxc-windows-amd64.exe ./main.go + GOOS=windows GOARCH=386 go build -ldflags="-s -w" -o ./bin/yaxc-windows-386.exe ./main.go + +# compress +compileAndCompress: compileAll + @echo "" + @echo "📦 Compress binaries" + @echo "" + upx -1 -k bin/yaxc-linux-* + upx -1 -k bin/yaxc-darwin-* + upx -1 -k bin/yaxc-windows-*