Files
Stephen Marshall a4b9a9abaf Initial delivery of metrics code (#81)
* Initial delivery of metrics code

* Fix build issues

* Fix build issue with go vet
2018-05-24 09:15:12 +01:00

80 lines
2.8 KiB
Makefile

# © Copyright IBM Corporation 2018
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###############################################################################
# Conditional variables - you can override the values of these variables from
# the command line
###############################################################################
# BASE_IMAGE is the MQ SDK base image to use
BASE_IMAGE ?= mq-sdk:9.0.5.0-x86_64-ubuntu-16.04
# GO_IMAGE is the GOLANG image to use for building samples
GO_IMAGE ?= golang:1.10
# DOCKER is the Docker command to run
DOCKER ?= docker
# BUILD_IMAGE is the name of the image that will be produced while building packages
BUILD_IMAGE ?= mq-golang-build:9.0.5.0-x86_64-ubuntu-16.04
# SAMPLE_BUILD_IMAGE is the name of the image that will be produced while building samples
SAMPLE_BUILD_IMAGE ?= mq-sample-build:9.0.5.0-x86_64-ubuntu-16.04
###############################################################################
# Other variables
###############################################################################
ifneq (,$(findstring Microsoft,$(shell uname -r)))
PLATFORM=WINDOWS
else
PLATFORM=UNIX
endif
###############################################################################
# Build targets
###############################################################################
# Build all packages when on unix
.PHONY: all
ifeq ("$(PLATFORM)", "WINDOWS")
all: unsupported-message
else
all: build-packages-unix build-samples-unix
endif
.PHONY: clean
clean:
$(DOCKER) rmi -f $(BUILD_IMAGE)
$(DOCKER) rmi -f $(SAMPLE_BUILD_IMAGE)
.PHONY: build-packages-unix
build-packages-unix:
$(info $(SPACER)$(shell printf $(TITLE)"Building packages in build container"$(END)))
$(call docker-build,$(BUILD_IMAGE),Dockerfile-build-packages,$(BASE_IMAGE))
.PHONY: build-samples-unix
build-samples-unix: build-packages-unix
$(info $(SPACER)$(shell printf $(TITLE)"Building samples in build container"$(END)))
$(call docker-build,$(SAMPLE_BUILD_IMAGE),Dockerfile-build-samples,$(BUILD_IMAGE))
.PHONY: unsupported-message
unsupported-message:
$(info $(SPACER)$(shell printf $(TITLE)"This makefile can only be ran on UNIX platforms"$(END)))
define docker-build
# Build the image first to compile the package/samples
$(DOCKER) build -t $1 \
-f $2 \
--build-arg BASE_IMAGE=$3 \
.
endef
include formatting.mk