1
- # Makefile for serve-grpc.
1
+ # Makefile for Go project
2
2
3
3
# Detect the operating system and architecture.
4
4
@@ -15,12 +15,13 @@ PROGRAM_NAME := $(shell basename `git rev-parse --show-toplevel`)
15
15
MAKEFILE_PATH := $(abspath $(firstword $(MAKEFILE_LIST ) ) )
16
16
MAKEFILE_DIRECTORY := $(shell dirname $(MAKEFILE_PATH ) )
17
17
TARGET_DIRECTORY := $(MAKEFILE_DIRECTORY ) /target
18
+ DIST_DIRECTORY := $(MAKEFILE_DIRECTORY ) /dist
19
+ BUILD_TAG := $(shell git describe --always --tags --abbrev=0 | sed 's/v//')
20
+ BUILD_ITERATION := $(shell git log $(BUILD_TAG ) ..HEAD --oneline | wc -l | sed 's/^ * //')
21
+ BUILD_VERSION := $(shell git describe --always --tags --abbrev=0 --dirty | sed 's/v//')
18
22
DOCKER_CONTAINER_NAME := $(PROGRAM_NAME )
19
23
DOCKER_IMAGE_NAME := senzing/$(PROGRAM_NAME )
20
24
DOCKER_BUILD_IMAGE_NAME := $(DOCKER_IMAGE_NAME ) -build
21
- BUILD_VERSION := $(shell git describe --always --tags --abbrev=0 --dirty | sed 's/v//')
22
- BUILD_TAG := $(shell git describe --always --tags --abbrev=0 | sed 's/v//')
23
- BUILD_ITERATION := $(shell git log $(BUILD_TAG ) ..HEAD --oneline | wc -l | sed 's/^ * //')
24
25
GIT_REMOTE_URL := $(shell git config --get remote.origin.url)
25
26
GIT_REPOSITORY_NAME := $(shell basename `git rev-parse --show-toplevel`)
26
27
GIT_VERSION := $(shell git describe --always --tags --long --dirty | sed -e 's/\-0//' -e 's/\-g.......//')
@@ -35,7 +36,9 @@ GO_ARCH = $(word 2, $(GO_OSARCH))
35
36
36
37
# Conditional assignment. ('?=')
37
38
# Can be overridden with "export"
39
+ # Example: "export LD_LIBRARY_PATH=/path/to/my/senzing/g2/lib"
38
40
41
+ DOCKER_IMAGE_TAG ?= $(GIT_REPOSITORY_NAME ) :$(GIT_VERSION )
39
42
GOBIN ?= $(shell go env GOPATH) /bin
40
43
LD_LIBRARY_PATH ?= /opt/senzing/g2/lib
41
44
SENZING_TOOLS_DATABASE_URL ?= sqlite3://na:na@/tmp/sqlite/G2C.db
@@ -91,16 +94,15 @@ setup: setup-osarch-specific
91
94
# -----------------------------------------------------------------------------
92
95
93
96
.PHONY : lint
94
- lint :
95
- @${GOBIN} /golangci-lint run --config=.github/linters/.golangci.yaml
97
+ lint : golangci-lint
96
98
97
99
# -----------------------------------------------------------------------------
98
100
# Build
99
101
# -----------------------------------------------------------------------------
100
102
101
103
PLATFORMS := darwin/amd64 darwin/arm64 linux/amd64 linux/arm64 windows/amd64 windows/arm64
102
104
$(PLATFORMS ) :
103
- @echo Building $(TARGET_DIRECTORY ) /$(GO_OS ) -$(GO_ARCH ) /$(PROGRAM_NAME )
105
+ $( info Building $(TARGET_DIRECTORY ) /$(GO_OS ) -$(GO_ARCH ) /$(PROGRAM_NAME ) )
104
106
@GOOS=$(GO_OS ) GOARCH=$(GO_ARCH ) go build -o $(TARGET_DIRECTORY ) /$(GO_OS ) -$(GO_ARCH ) /$(PROGRAM_NAME )
105
107
106
108
@@ -111,11 +113,22 @@ build: build-osarch-specific
111
113
.PHONY : docker-build
112
114
docker-build : docker-build-osarch-specific
113
115
114
- # docker-build:
115
- # @docker build \
116
- # --tag $(DOCKER_IMAGE_NAME) \
117
- # --tag $(DOCKER_IMAGE_NAME):$(BUILD_VERSION) \
118
- # .
116
+ # -----------------------------------------------------------------------------
117
+ # Run
118
+ # -----------------------------------------------------------------------------
119
+
120
+ .PHONY : docker-run
121
+ docker-run :
122
+ @docker run \
123
+ --interactive \
124
+ --rm \
125
+ --tty \
126
+ --name $(DOCKER_CONTAINER_NAME ) \
127
+ $(DOCKER_IMAGE_NAME )
128
+
129
+
130
+ .PHONY : run
131
+ run : run-osarch-specific
119
132
120
133
# -----------------------------------------------------------------------------
121
134
# Test
@@ -138,23 +151,6 @@ check-coverage:
138
151
@go test ./... -coverprofile=./cover.out -covermode=atomic -coverpkg=./...
139
152
@${GOBIN} /go-test-coverage --config=.github/coverage/.testcoverage.yaml
140
153
141
- # -----------------------------------------------------------------------------
142
- # Run
143
- # -----------------------------------------------------------------------------
144
-
145
- .PHONY : docker-run
146
- docker-run :
147
- @docker run \
148
- --interactive \
149
- --rm \
150
- --tty \
151
- --name $(DOCKER_CONTAINER_NAME ) \
152
- $(DOCKER_IMAGE_NAME )
153
-
154
-
155
- .PHONY : run
156
- run : run-osarch-specific
157
-
158
154
# -----------------------------------------------------------------------------
159
155
# Documentation
160
156
# -----------------------------------------------------------------------------
@@ -166,6 +162,10 @@ documentation: documentation-osarch-specific
166
162
# Package
167
163
# -----------------------------------------------------------------------------
168
164
165
+ .PHONY : package
166
+ package : clean package-osarch-specific
167
+
168
+
169
169
.PHONY : docker-build-package
170
170
docker-build-package :
171
171
@docker build \
@@ -178,10 +178,6 @@ docker-build-package:
178
178
--tag $(DOCKER_BUILD_IMAGE_NAME ) \
179
179
.
180
180
181
-
182
- .PHONY : package
183
- package : package-osarch-specific
184
-
185
181
# -----------------------------------------------------------------------------
186
182
# Clean
187
183
# -----------------------------------------------------------------------------
@@ -197,8 +193,8 @@ clean: clean-osarch-specific
197
193
198
194
.PHONY : help
199
195
help :
200
- @echo " Build $( PROGRAM_NAME) version $( BUILD_VERSION) -$( BUILD_ITERATION) " .
201
- @echo " Makefile targets:"
196
+ $( info Build $(PROGRAM_NAME ) version $(BUILD_VERSION ) -$(BUILD_ITERATION ) )
197
+ $( info Makefile targets:)
202
198
@$(MAKE ) -pRrq -f $(firstword $(MAKEFILE_LIST ) ) : 2> /dev/null | awk -v RS= -F: ' /^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e ' ^[^[:alnum:]]' -e ' ^$@$$' | xargs
203
199
204
200
@@ -213,3 +209,11 @@ print-make-variables:
213
209
update-pkg-cache :
214
210
@GOPROXY=https://proxy.golang.org GO111MODULE=on \
215
211
go get $(GO_PACKAGE_NAME ) @$(BUILD_TAG )
212
+
213
+ # -----------------------------------------------------------------------------
214
+ # Specific programs
215
+ # -----------------------------------------------------------------------------
216
+
217
+ .PHONY : golangci-lint
218
+ golangci-lint :
219
+ @${GOBIN} /golangci-lint run --config=.github/linters/.golangci.yaml
0 commit comments