|
10 | 10 | # To manually invoke the locally installed Go, use ./go |
11 | 11 |
|
12 | 12 | # Go installation config. |
13 | | -#GO_VERSION=1.2.1.linux-amd64 |
14 | | -GO_VER=1.4 |
| 13 | +GO_VER=1.11.5 |
15 | 14 | SYSTEM_NAME:=$(shell uname -s | tr '[:upper:]' '[:lower:]') |
16 | 15 | SYSTEM_ARCH:=$(shell uname -m) |
17 | 16 | GO_ARCH:=$(if $(filter x86_64, $(SYSTEM_ARCH)),amd64,386) |
18 | | -GO_VERSION:=$(GO_VER).$(SYSTEM_NAME)-$(GO_ARCH)$(if $(filter darwin,$(SYSTEM_NAME)),-osx10.8) |
19 | | -GO_DOWNLOAD_URL=http://golang.org/dl/go$(GO_VERSION).tar.gz |
| 17 | +GO_VERSION:=$(GO_VER).$(SYSTEM_NAME)-$(GO_ARCH) |
| 18 | +GO_DOWNLOAD_URL:=http://golang.org/dl/go$(GO_VERSION).tar.gz |
| 19 | +GO_WORKDIR:=go-v$(GO_VERSION) |
20 | 20 |
|
21 | 21 | # Build websocketd binary |
22 | | -websocketd: go $(wildcard *.go) $(wildcard libwebsocketd/*.go) go-workspace/src/github.com/joewalnes/websocketd |
23 | | - ./go get ./go-workspace/src/github.com/joewalnes/websocketd |
24 | | - ./go fmt github.com/joewalnes/websocketd/libwebsocketd github.com/joewalnes/websocketd |
25 | | - ./go build |
26 | | - |
27 | | -# Create local go workspace and symlink websocketd into the right location. |
28 | | -go-workspace/src/github.com/joewalnes/websocketd: |
29 | | - mkdir -p go-workspace/src/github.com/joewalnes |
30 | | - ln -s ../../../../ go-workspace/src/github.com/joewalnes/websocketd |
31 | | - |
32 | | -# Setup ./go wrapper to use local GOPATH/GOROOT. |
33 | | -# Need to set PATH for gofmt. |
34 | | -go: go-v$(GO_VERSION)/.done |
35 | | - @echo '#!/bin/sh' > $@ |
36 | | - @echo export PATH=$(abspath go-v$(GO_VERSION)/bin):$(PATH) >> $@ |
37 | | - @echo mkdir -p $(abspath go-workspace) >> $@ |
38 | | - @echo GOPATH=$(abspath go-workspace) GOROOT=$(abspath go-v$(GO_VERSION)) $(abspath go-v$(GO_VERSION)/bin/go) \$$@ >> $@ |
39 | | - chmod +x $@ |
40 | | - @echo 'Created ./$@ wrapper' |
| 22 | +websocketd: $(GO_WORKDIR)/bin/go $(wildcard *.go) $(wildcard libwebsocketd/*.go) |
| 23 | + $(GO_WORKDIR)/bin/go build |
41 | 24 |
|
42 | 25 | # Download and unpack Go distribution. |
43 | | -go-v$(GO_VERSION)/.done: |
44 | | - mkdir -p $(dir $@) |
| 26 | +$(GO_WORKDIR)/bin/go: |
| 27 | + mkdir -p $(GO_WORKDIR) |
45 | 28 | rm -f $@ |
46 | | - @echo Downloading and unpacking Go $(GO_VERSION) to $(dir $@) |
47 | | - wget -q -O - $(GO_DOWNLOAD_URL) | tar xzf - --strip-components=1 -C $(dir $@) |
48 | | - touch $@ |
| 29 | + @echo Downloading and unpacking Go $(GO_VERSION) to $(GO_WORKDIR) |
| 30 | + wget -q -O - $(GO_DOWNLOAD_URL) | tar xzf - --strip-components=1 -C $(GO_WORKDIR) |
49 | 31 |
|
50 | 32 | # Clean up binary |
51 | 33 | clean: |
52 | | - rm -rf websocketd go-workspace |
| 34 | + rm -rf websocketd |
| 35 | + |
53 | 36 | .PHONY: clean |
54 | 37 |
|
55 | 38 | # Also clean up downloaded Go |
56 | 39 | clobber: clean |
57 | | - rm -rf go $(wildcard go-v*) |
| 40 | + rm -rf $(wildcard go-v*) |
| 41 | + |
58 | 42 | .PHONY: clobber |
0 commit comments