Call correct make target when using default make targets

This commit is contained in:
Robert Parker
2018-08-20 15:44:36 +01:00
parent 9e04bfc68a
commit aa04229d85
3 changed files with 99 additions and 50 deletions

108
Makefile
View File

@@ -12,28 +12,72 @@
# See the License for the specific language governing permissions and
# limitations under the License.
###############################################################################
# Variables
###############################################################################
GO_PKG_DIRS = ./cmd ./internal ./test
BASE_OS = $(shell cat /etc/*-release | grep ID=)
ifeq "$(findstring ubuntu,$(BASE_OS))" "ubuntu"
BASE_OS=UBUNTU
else ifeq "$(findstring rhel,$(BASE_OS))" "rhel"
BASE_OS=RHEL
else
BASE_OS=UNKNOWN
endif
###############################################################################
# Build targets
###############################################################################
# default to building UBUNTU as this was the default for the previous Makefile
.PHONY: build-devserver
ifeq ($(BASE_OS),UBUNTU)
build-devserver: build-devserver-ubuntu
else ifeq ($(BASE_OS),RHEL)
build-devserver: build-devserver-rhel
else
build-devserver: unknownos
endif
.PHONY: build-advancedserver
ifeq ($(BASE_OS),UBUNTU)
build-advancedserver: build-advancedserver-ubuntu
else ifeq ($(BASE_OS),RHEL)
build-advancedserver: build-advancedserver-rhel
else
build-advancedserver: unknownos
endif
.PHONY: test-devserver
ifeq ($(BASE_OS),UBUNTU)
test-devserver: test-devserver-ubuntu
else ifeq ($(BASE_OS),RHEL)
test-devserver: test-devserver-rhel
else
test-devserver: unknownos
endif
.PHONY: test-advancedserver
ifeq ($(BASE_OS),UBUNTU)
test-advancedserver: test-advancedserver-ubuntu
else ifeq ($(BASE_OS),RHEL)
test-advancedserver: test-advancedserver-rhel
else
test-advancedserver: unknownos
endif
.PHONY: deps
deps: deps-ubuntu
.PHONY: lint
lint: lint-ubuntu
.PHONY: build-devjmstest
ifeq ($(BASE_OS),UBUNTU)
build-devjmstest: build-devjmstest-ubuntu
else ifeq ($(BASE_OS),RHEL)
build-devjmstest: build-devjmstest-rhel
else
build-devjmstest: unknownos
endif
# UBUNTU building targets
.PHONY: build-devserver-ubuntu
@@ -44,10 +88,6 @@ build-devserver-ubuntu:
test-devserver-ubuntu:
$(MAKE) -f Makefile-UBUNTU test-devserver
.PHONY: build-devjmstest
build-devjmstest:
$(MAKE) -f Makefile-UBUNTU build-devjmstest
.PHONY: build-devjmstest-ubuntu
$(MAKE) -f Makefile-UBUNTU build-devjmstest
@@ -59,13 +99,9 @@ build-advancedserver-ubuntu:
test-advancedserver-ubuntu:
$(MAKE) -f Makefile-UBUNTU test-advancedserver
.PHONY: deps-ubuntu
deps-ubuntu:
$(MAKE) -f Makefile-UBUNTU deps
.PHONY: lint-ubuntu
lint-ubuntu:
$(MAKE) -f Makefile-UBUNTU lint
.PHONY: build-devjmstest-ubuntu
build-devjmstest-ubuntu:
$(MAKE) -f Makefile-UBUNTU build-devjmstest
# RHEL building targets
.PHONY: build-devserver-rhel
@@ -83,3 +119,43 @@ build-advancedserver-rhel:
.PHONY: test-advancedserver-rhel
test-advancedserver-rhel:
$(MAKE) -f Makefile-RHEL test-advancedserver
.PHONY: build-devjmstest-rhel
build-devjmstest-rhel:
$(MAKE) -f Makefile-RHEL build-devjmstest
# Common targets
.PHONY: clean
clean:
rm -rf ./coverage
rm -rf ./build
rm -rf ./deps
.PHONY: deps
deps:
glide install --strip-vendor
.PHONY: build-cov
build-cov:
mkdir -p build
cd build; go test -c -covermode=count ../cmd/runmqserver
.PHONY: precommit
precommit: fmt lint
.PHONY: fmt
fmt: $(addsuffix /$(wildcard *.go), $(GO_PKG_DIRS))
go fmt $(addsuffix /..., $(GO_PKG_DIRS))
.PHONY: lint
lint: $(addsuffix /$(wildcard *.go), $(GO_PKG_DIRS))
@# This expression is necessary because /... includes the vendor directory in golint
@# As of 11/04/2018 there is an open issue to fix it: https://github.com/golang/lint/issues/320
golint -set_exit_status $(sort $(dir $(wildcard $(addsuffix /*/*.go, $(GO_PKG_DIRS)))))
.PHONY: unknownos
unknownos:
$(info $(SPACER)$(shell printf "ERROR: Unknown OS ("$(BASE_OS)") please run specific make targets"$(END)))
exit 1
include formatting.mk

View File

@@ -107,12 +107,12 @@ check-prereqs:
.PHONY: test-advancedserver
test-advancedserver:
test-advancedserver:
$(info $(SPACER)$(shell printf $(TITLE)"Test $(MQ_IMAGE_ADVANCEDSERVER) on $(shell docker --version)"$(END)))
.PHONY: test-devserver
test-devserver:
test-devserver:
$(info $(SPACER)$(shell printf $(TITLE)"Test $(MQ_IMAGE_DEVSERVER) on $(shell docker --version)"$(END)))

View File

@@ -110,24 +110,15 @@ default: build-devserver test
all: build-devserver build-advancedserver
.PHONY: test-all
test-all: test-devserver test-advancedserver
.PHONY: precommit
precommit: fmt lint all test-all
test-all: build-devjmstest test-devserver test-advancedserver
.PHONY: devserver
devserver: build-devserver test-devserver
devserver: build-devserver build-devjmstest test-devserver
# Build incubating components
.PHONY: incubating
incubating: build-explorer
.PHONY: clean
clean:
rm -rf ./coverage
rm -rf ./build
rm -rf ./deps
downloads/$(MQ_ARCHIVE_DEV):
$(info $(SPACER)$(shell printf $(TITLE)"Downloading IBM MQ Advanced for Developers "$(MQ_VERSION)$(END)))
mkdir -p downloads
@@ -141,19 +132,10 @@ downloads/$(MQ_SDK_ARCHIVE):
.PHONY: downloads
downloads: downloads/$(MQ_ARCHIVE_DEV) downloads/$(MQ_SDK_ARCHIVE)
.PHONY: deps
deps:
glide install --strip-vendor
# Vendor Go dependencies for the Docker tests
test/docker/vendor:
cd test/docker && dep ensure -vendor-only
.PHONY: build-cov
build-cov:
mkdir -p build
cd build; go test -c -covermode=count ../cmd/runmqserver
# Shortcut to just run the unit tests
.PHONY: test-unit
test-unit:
@@ -259,8 +241,8 @@ build-devserver: downloads/$(MQ_ARCHIVE_DEV) docker-version build-golang-sdk-ex
build-advancedserver-cover: docker-version
$(DOCKER) build --build-arg BASE_IMAGE=$(MQ_IMAGE_ADVANCEDSERVER) -t $(MQ_IMAGE_ADVANCEDSERVER)-cover -f Dockerfile-server.cover .
.PHONY: build-explorer docker-pull
build-explorer: downloads/$(MQ_ARCHIVE_DEV)
.PHONY: build-explorer
build-explorer: downloads/$(MQ_ARCHIVE_DEV) docker-pull
$(call docker-build-mq,mq-explorer:latest-$(ARCH),incubating/mq-explorer/Dockerfile-mq-explorer,$(MQ_ARCHIVE_DEV),"98102d16795c4263ad9ca075190a2d4d","IBM MQ Advanced for Developers (Non-Warranted)",$(MQ_VERSION))
.PHONY: build-sdk
@@ -283,17 +265,8 @@ build-golang-sdk-ex: docker-version build-sdk-ex
$(DOCKER) build --build-arg BASE_IMAGE=$(MQ_IMAGE_SDK) -t $(MQ_IMAGE_GOLANG_SDK) -f incubating/mq-golang-sdk/Dockerfile .
# $(call docker-build-mq,$(MQ_IMAGE_GOLANG_SDK),incubating/mq-golang-sdk/Dockerfile,$(MQ_IMAGE_SDK),"98102d16795c4263ad9ca075190a2d4d","IBM MQ Advanced for Developers SDK (Non-Warranted)",$(MQ_VERSION))
.PHONY: docker-pull
docker-pull:
$(DOCKER) pull $(BASE_IMAGE)
GO_PKG_DIRS = ./cmd ./internal ./test
fmt: $(addsuffix /$(wildcard *.go), $(GO_PKG_DIRS))
go fmt $(addsuffix /..., $(GO_PKG_DIRS))
lint: $(addsuffix /$(wildcard *.go), $(GO_PKG_DIRS))
@# This expression is necessary because /... includes the vendor directory in golint
@# As of 11/04/2018 there is an open issue to fix it: https://github.com/golang/lint/issues/320
golint -set_exit_status $(sort $(dir $(wildcard $(addsuffix /*/*.go, $(GO_PKG_DIRS)))))
include formatting.mk