-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathMakefile
More file actions
35 lines (28 loc) · 1.19 KB
/
Copy pathMakefile
File metadata and controls
35 lines (28 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
GOCMD = go
namespace = github.com/mislav/anyenv/config
PROGRAM_VERSION ?= 0.0.1-g$(shell git rev-parse --short=7 HEAD)
PROGRAM_NAME ?= rbenv
PROGRAM_EXECUTABLE ?= ruby
PROGRAM_FILENAME ?= .$(PROGRAM_EXECUTABLE)-version
PROGRAM_ROOT ?= $$HOME/.$(PROGRAM_NAME)
PROGRAM_VERSION_NAME ?= $(shell tr 'a-z' 'A-Z' <<< $(PROGRAM_NAME))_VERSION
PROGRAM_ROOT_NAME ?= $(shell tr 'a-z' 'A-Z' <<< $(PROGRAM_NAME))_ROOT
PROGRAM_DIR_NAME ?= $(shell tr 'a-z' 'A-Z' <<< $(PROGRAM_NAME))_DIR
PROGRAM_SHELL_NAME ?= $(shell tr 'a-z' 'A-Z' <<< $(PROGRAM_NAME))_SHELL
SOURCES = $(shell find . -name '*.go' -maxdepth 2 | grep -v '_test\.go$$')
$(PROGRAM_NAME): $(SOURCES)
$(GOCMD) build -ldflags ' \
-X $(namespace).Root=$(PROGRAM_ROOT) \
-X $(namespace).RootEnvName=$(PROGRAM_ROOT_NAME) \
-X $(namespace).VersionFilename=$(PROGRAM_FILENAME) \
-X $(namespace).VersionEnvName=$(PROGRAM_VERSION_NAME) \
-X $(namespace).DirEnvName=$(PROGRAM_DIR_NAME) \
-X $(namespace).ShellEnvName=$(PROGRAM_SHELL_NAME) \
-X $(namespace).MainExecutable=$(PROGRAM_EXECUTABLE) \
-X $(namespace).BuildVersion=$(PROGRAM_VERSION) \
' -o $(PROGRAM_NAME) ./anyenv.go
format:
$(GOCMD) fmt ./...
clean:
rm -f $(PROGRAM_NAME)
.PHONY: format clean