From 6375b1353cd31f0c3b09188ef28e90765e8fc92f Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 1 Sep 2014 17:25:52 -0700 Subject: [PATCH] Makefile: release target `make release` builds whackanop for different target OS/arch's, packages them up and places the resulting archives in a release folder. --- .gitignore | 2 ++ Makefile | 34 +++++++++++++++++++++++++++++----- VERSION | 1 + 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 VERSION diff --git a/.gitignore b/.gitignore index 19b887e..409893f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ *~ c.out +build +release diff --git a/Makefile b/Makefile index 2182794..063228d 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,14 @@ +VERSION := $(shell cat VERSION) SHELL := /bin/bash -PKG = github.com/Clever/whackanop -SUBPKGS = -PKGS = $(PKG) $(SUBPKGS) - -.PHONY: test $(PKGS) +PKG := github.com/Clever/whackanop +SUBPKGS := +PKGS := $(PKG) $(SUBPKGS) +EXECUTABLE := whackanop +BUILDS := \ + build/$(EXECUTABLE)-v$(VERSION)-darwin-amd64 \ + build/$(EXECUTABLE)-v$(VERSION)-linux-amd64 +COMPRESSED_BUILDS := $(BUILDS:%=%.tar.gz) +RELEASE_ARTIFACTS := $(COMPRESSED_BUILDS:build/%=release/%) test: $(PKG) @@ -15,3 +20,22 @@ $(PKG): ifeq ($(HTMLCOV),1) go tool cover -html=$(GOPATH)/src/$@/c.out endif + +build/$(EXECUTABLE)-v$(VERSION)-darwin-amd64: + GOARCH=amd64 GOOS=darwin go build -o "$@/$(EXECUTABLE)" +build/$(EXECUTABLE)-v$(VERSION)-linux-amd64: + GOARCH=amd64 GOOS=linux go build -o "$@/$(EXECUTABLE)" + +%.tar.gz: % + tar -C `dirname $<` -zcvf "$<.tar.gz" `basename $<` + +$(RELEASE_ARTIFACTS): release/% : build/% + mkdir -p release + cp $< $@ + +release: $(RELEASE_ARTIFACTS) + +clean: + rm -rf build release + +.PHONY: test $(PKGS) clean github-release diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..6e8bf73 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.1.0