| # Copyright (c) 2019 AT&T Intellectual Property. |
| # Copyright (c) 2019 Nokia. |
| # |
| # 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. |
| |
| BUILD_DIR=$(dir $(abspath $(lastword $(MAKEFILE_LIST)))) |
| |
| ROOT_DIR:=$(abspath $(BUILD_DIR)/..) |
| |
| BUILD_PREFIX?="${USER}-" |
| |
| XAPP_MGR:=appmgr |
| XAPP_MGR_DOCKER:=${BUILD_PREFIX}appmgr |
| |
| GOSRC := $(abspath $(BUILD_DIR)/../src) |
| GOFILES := $(GOSRC)/*.go |
| COVEROUT := $(abspath $(BUILD_DIR)/cover.out) |
| COVERHTML := $(abspath $(BUILD_DIR)/cover.html) |
| |
| GOCMD=go |
| GOBUILD=$(GOCMD) build -a -installsuffix cgo |
| GORUN=$(GOCMD) run -a -installsuffix cgo |
| GOCLEAN=$(GOCMD) clean |
| GOTEST=$(GOCMD) test -v -coverprofile $(COVEROUT) |
| GOGET=$(GOCMD) get |
| |
| HELMVERSION:=v2.13.0-rc.1 |
| |
| #------------------------------------------------------------------------------ |
| # |
| #-------------------------------------------------------------------- ---------- |
| .PHONY: FORCE build deps run unit-test test-pkg test clean docker-base-build docker-base-clean docker-build docker-run docker-clean docker-test-build docker-test-run-unittest docker-test-run-sanity docker-test-run docker-test-clean |
| |
| .DEFAULT: build |
| |
| default: build |
| |
| FORCE: |
| |
| #------------------------------------------------------------------------------ |
| # |
| #------------------------------------------------------------------------------ |
| |
| XAPP_MGR_DOCKER:=$(shell echo $(XAPP_MGR_DOCKER) | tr '[:upper:]' '[:lower:]') |
| |
| #XAPP_MGR_DOCKER:=$(subst /,_,${XAPP_MGR_DOCKER}) |
| |
| #------------------------------------------------------------------------------ |
| # |
| #------------------------------------------------------------------------------ |
| |
| $(BUILD_DIR)$(XAPP_MGR): deps ${wildcard $(GOFILES)} |
| GO_ENABLED=0 GOOS=linux $(GOBUILD) -o $(BUILD_DIR)$(XAPP_MGR) $(GOFILES) |
| |
| build: $(BUILD_DIR)$(XAPP_MGR) |
| |
| deps: ${wildcard $(GOFILES)} |
| cd $(GOSRC) && $(GOGET) |
| |
| run: $(BUILD_DIR)$(XAPP_MGR) |
| $(BUILD_DIR)$(XAPP_MGR) -host-addr="localhost:8080" -helm-host="localhost:31807" -helm-chart="./" |
| |
| unit-test: |
| cd $(GOSRC) && $(GOTEST) |
| go tool cover -html=$(COVEROUT) -o $(COVERHTML) |
| |
| clean: |
| @echo " > Cleaning build cache" |
| @-rm -rf $(XAPP_MGR) 2> /dev/null |
| go clean 2> /dev/null |
| |
| #------------------------------------------------------------------------------ |
| # |
| #------------------------------------------------------------------------------ |
| |
| DCKR_BUILD_OPTS:=${DCKR_BUILD_OPTS} --network=host --build-arg HELMVERSION=${HELMVERSION} |
| |
| DCKR_RUN_OPTS:=${DCKR_RUN_OPTS} --rm -i |
| DCKR_RUN_OPTS:=${DCKR_RUN_OPTS}$(shell test -t 0 && echo ' -t') |
| DCKR_RUN_OPTS:=${DCKR_RUN_OPTS}$(shell test -e /etc/localtime && echo ' -v /etc/localtime:/etc/localtime:ro') |
| DCKR_RUN_OPTS:=${DCKR_RUN_OPTS}$(shell test -e /var/run/docker.sock && echo ' -v /var/run/docker.sock:/var/run/docker.sock') |
| |
| |
| #------------------------------------------------------------------------------ |
| # |
| #------------------------------------------------------------------------------ |
| docker-name: |
| @echo $(XAPP_MGR_DOCKER) |
| |
| docker-build: |
| docker build --target release ${DCKR_BUILD_OPTS} -t $(XAPP_MGR_DOCKER) -f Dockerfile ../. |
| |
| docker-run: |
| docker run ${DCKR_RUN_OPTS} -v /opt/ric:/opt/ric -p 8080:8080 $(XAPP_MGR_DOCKER) |
| |
| docker-clean: |
| docker rmi $(XAPP_MGR_DOCKER) |
| |
| |
| #------------------------------------------------------------------------------ |
| # |
| #------------------------------------------------------------------------------ |
| |
| docker-test-build: |
| docker build --target test_unit ${DCKR_BUILD_OPTS} -t ${XAPP_MGR_DOCKER}-test_unit -f Dockerfile ../. |
| docker build --target test_sanity ${DCKR_BUILD_OPTS} -t ${XAPP_MGR_DOCKER}-test_sanity -f Dockerfile ../. |
| |
| docker-test-run-unit: |
| docker run ${DCKR_RUN_OPTS} ${XAPP_MGR_DOCKER}-test_unit |
| |
| docker-test-run-sanity: |
| docker run ${DCKR_RUN_OPTS} ${XAPP_MGR_DOCKER}-test_sanity |
| |
| docker-test-run: docker-test-run-sanity docker-test-run-unit |
| |
| docker-test-clean: |
| docker rmi -f ${XAPP_MGR_DOCKER}-test_unit |
| docker rmi -f ${XAPP_MGR_DOCKER}-test_sanity |
| |