Skip to content

Instantly share code, notes, and snippets.

@bgadrian
Last active November 5, 2018 05:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bgadrian/e1f2caeb1e28977aae54721529b41f0f to your computer and use it in GitHub Desktop.
Save bgadrian/e1f2caeb1e28977aae54721529b41f0f to your computer and use it in GitHub Desktop.
Go 1.11 makefile example
# Makefile example from https://github.com/bgadrian/pseudoservice
# GO111MODULE is required only when inside GOPATH
source := ./cmd/pseudo-service-server/main.go
#this will be triggered before any command, or when just calling $ make
pre:
mkdir -p ./build/
env GO111MODULE=on go get -d ./
env GO111MODULE=on go test -race ./...
#make run
run: pre
env PORT=8080 go run -race $(source)
#make build
build: pre
rm -f ./build/pseudoservice
go build -o ./build/pseudoservice $(source)
@echo "See ./build/pseudoservice --help"
#make buildall
buildall: pre
rm -f ./build/pseudoservice
mkdir -p ./build/pseudoservice/windows
mkdir -p ./build/pseudoservice/linux
mkdir -p ./build/pseudoservice/macos
env GO111MODULE=on GOOS=darwin GOARCH=amd64 go build -o ./build/pseudoservice/macos/pseudoservice $(source)
env GO111MODULE=on GOOS=linux GOARCH=amd64 go build -o ./build/pseudoservice/linux/pseudoservice $(source)
env GO111MODULE=on GOOS=windows GOARCH=amd64 go build -o ./build/pseudoservice/windows/pseudoservice.exe $(source)
cd ./build && tar -czf ./pseudoservice.tar.gz ./pseudoservice/
@echo "publish to gihub: $ hub release create -a ./build/pseudoservice.tar.gz -m 'v0.X' v0.X"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment