]> git.wincent.com - passage.git/blob - Makefile
Add Makefile and version number
[passage.git] / Makefile
1 VERSION := $(shell git describe --always --dirty)
2
3 help:
4         @echo 'make build   - build the passage executable'
5         @echo 'make tag     - tag the current HEAD with VERSION'
6         @echo 'make archive - create an archive of the current HEAD for VERSION'
7         @echo 'make upload  - upload the built archive of VERSION to Amazon S3'
8         @echo 'make all     - build, tag, archive and upload VERSION'
9
10 version:
11         @if [ "$$VERSION" = "" ]; then echo "VERSION not set"; exit 1; fi
12
13 passage_linux:
14         @echo 'Unsupported architecture: $@'
15
16 passage_darwin:
17         GOOS=darwin GOARCH=amd64 go build -ldflags="-X main.version=${VERSION}" -o passage_darwin passage.go
18
19 passage_all: passage_linux passage_darwin
20
21 passage: passage.go
22         go build -ldflags="-X main.version=${VERSION}" $^
23
24 build: passage
25
26 tag: version
27         git tag -s $$VERSION -m "$$VERSION release"
28
29 archive: passage-${VERSION}.zip
30
31 passage-${VERSION}.zip: passage
32         git archive -o $@ HEAD
33         zip $@ passage
34
35 upload: passage-${VERSION}.zip
36         aws --curl-options=--insecure put s3.wincent.com/passage/releases/passage-${VERSION}.zip passage-${VERSION}.zip
37         aws --curl-options=--insecure put "s3.wincent.com/passage/releases/passage-${VERSION}.zip?acl" --public
38
39 all: tag build archive upload
40
41 .PHONY: clean
42 clean:
43         rm -f passage passage-*.zip
44         rm -f passage_*