Skip to content

Commit b91fccd

Browse files
Improvements to the Makefile
- Changed bin dir from `bin/` to `build/` - Only remove mysql_random_data_load binaries and tar files before building - Added checks for correct GOPATH - Added checks for correct PATH for the project (must be inside GOPATH) - By default, make only makes the binary for the current os/platform - By default, no tar.gz files are being created
1 parent dcd6d7d commit b91fccd

File tree

1 file changed

+41
-16
lines changed

1 file changed

+41
-16
lines changed

Makefile

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,65 @@ GOVERSION ?=$(shell go version | cut --delimiter=" " -f3)
66
COMMIT ?=$(shell git rev-parse HEAD)
77
BRANCH ?=$(shell git rev-parse --abbrev-ref HEAD)
88

9-
PREFIX=$(shell pwd)
10-
TOP_DIR=$(shell git rev-parse --show-toplevel)
11-
BIN_DIR="/tmp/mysql_random_data_load_bin"
12-
SRC_DIR=$(shell git rev-parse --show-toplevel)/src/go
9+
MAKE_TARS = ''
10+
CUR_DIR=$(shell pwd)
11+
BIN_DIR=${CUR_DIR}/build
1312
LDFLAGS="-X main.Version=${VERSION} -X main.Build=${BUILD} -X main.Commit=${COMMIT} -X main.Branch=${BRANCH} -X main.GoVersion=${GOVERSION} -s -w"
1413

14+
ifeq (${GOPATH},)
15+
$(error GOPATH is not set)
16+
endif
17+
18+
ifeq (,$(wildcard ${GOPATH}/src))
19+
$(error Invalid GOPATH. There is no src dir in the GOPATH)
20+
endif
21+
22+
ifeq ($(findstring ${GOPATH},${CUR_DIR}), )
23+
$(error Wrong directorry for the project. It must be in $GOPATH/github/Percona-Lab/mysql_random_data_load)
24+
endif
25+
26+
$(info )
27+
$(info GOPATH..........: ${GOPATH})
28+
$(info Build directory.: ${BIN_DIR})
29+
$(info )
30+
1531
.PHONY: all style format build test vet tarball linux-amd64
1632

17-
all: clean darwin-amd64 linux-amd64
33+
default:
34+
@$(info Cleaning old tar files in ${BIN_DIR})
35+
@rm -f ${BIN_DIR}/mysql_random_data_load_*.tar.gz
36+
@echo
37+
@$(info Building in ${BIN_DIR})
38+
@go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/mysql_random_data_load main.go
39+
40+
all: clean darwin-amd64 linux-amd64
1841

1942
clean:
20-
@echo "Cleaning binaries dir ${BIN_DIR}"
21-
@rm -rf ${BIN_DIR}/ 2> /dev/null
43+
@$(info Cleaning binaries and tar.gz files in dir ${BIN_DIR})
44+
@rm -f ${BIN_DIR}/mysql_random_data_load
45+
@rm -f ${BIN_DIR}/mysql_random_data_load_*.tar.gz
46+
$(eval MAKE_TARS="1")
2247

2348
linux-amd64:
2449
@echo "Building linux/amd64 binaries in ${BIN_DIR}"
2550
@mkdir -p ${BIN_DIR}
26-
@rm -f ${BIN_DIR}/mysql_random_data_loader_linux_amd64.tar.gz
27-
@GOOS=linux GOARCH=amd64 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/mysql_random_data_loader main.go
28-
@tar cvzf ${BIN_DIR}/mysql_random_data_loader_linux_amd64.tar.gz -C ${BIN_DIR} mysql_random_data_loader
51+
@rm -f ${BIN_DIR}/mysql_random_data_load_linux_amd64.tar.gz
52+
@GOOS=linux GOARCH=amd64 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/mysql_random_data_load main.go
53+
@if [ "${MAKE_TARS}" = "1" ]; then tar cvzf ${BIN_DIR}/mysql_random_data_load_linux_amd64.tar.gz -C ${BIN_DIR} mysql_random_data_load ;fi
2954

3055
linux-386:
3156
@echo "Building linux/386 binaries in ${BIN_DIR}"
3257
@mkdir -p ${BIN_DIR}
33-
@rm -f ${BIN_DIR}/mysql_random_data_loader_linux_386.tar.gz
34-
@GOOS=linux GOARCH=386 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/mysql_random_data_loader main.go
35-
@tar cvzf ${BIN_DIR}/mysql_random_data_loader_linux_386.tar.gz -C ${BIN_DIR} mysql_random_data_loader
58+
@rm -f ${BIN_DIR}/mysql_random_data_load_linux_386.tar.gz
59+
@GOOS=linux GOARCH=386 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/mysql_random_data_load main.go
60+
@if [ "${MAKE_TARS}" = "1" ]; then tar cvzf ${BIN_DIR}/mysql_random_data_load_linux_386.tar.gz -C ${BIN_DIR} mysql_random_data_load ;fi
3661

3762
darwin-amd64:
3863
@echo "Building darwin/amd64 binaries in ${BIN_DIR}"
3964
@mkdir -p ${BIN_DIR}
40-
@rm -f ${BIN_DIR}/mysql_random_data_loader_darwin_amd64.tar.gz
41-
@GOOS=darwin GOARCH=amd64 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/mysql_random_data_loader main.go
42-
@tar cvzf ${BIN_DIR}/mysql_random_data_loader_darwin_amd64.tar.gz -C ${BIN_DIR} mysql_random_data_loader
65+
@rm -f ${BIN_DIR}/mysql_random_data_load_darwin_amd64.tar.gz
66+
@GOOS=darwin GOARCH=amd64 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/mysql_random_data_load main.go
67+
@if [ "${MAKE_TARS}" = "1" ]; then tar cvzf ${BIN_DIR}/mysql_random_data_load_darwin_amd64.tar.gz -C ${BIN_DIR} mysql_random_data_load ;fi
4368

4469
style:
4570
@echo ">> checking code style"

0 commit comments

Comments
 (0)