[AETHER-255] First version of the tost-onos image and build scripts

Change-Id: I14a22158c2ad51779497bc5435af7b28b410beff
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c7b5406
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,108 @@
+#
+# Copyright 2020-present Open Networking Foundation
+#
+# 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.
+#
+
+# set default shell
+SHELL                    := /bin/bash -e -o pipefail
+
+# Variables
+VERSION                  ?= $(shell cat ./VERSION)
+
+# Docker related
+DOCKER_REGISTRY          ?=
+DOCKER_REPOSITORY        ?=
+DOCKER_BUILD_ARGS        ?=
+DOCKER_TAG               ?= ${VERSION}
+
+# Docker labels. Only set ref and commit date if committed
+DOCKER_LABEL_VCS_URL     ?= $(shell git remote get-url $(shell git remote))
+DOCKER_LABEL_BUILD_DATE  ?= $(shell date -u "+%Y-%m-%dT%H:%M:%SZ")
+DOCKER_LABEL_COMMIT_DATE  = $(shell git show -s --format=%cd --date=iso-strict HEAD)
+
+ifeq ($(shell git ls-files --others --modified --exclude-standard 2>/dev/null | wc -l | sed -e 's/ //g'),0)
+  DOCKER_LABEL_VCS_REF = $(shell git rev-parse HEAD)
+else
+  DOCKER_LABEL_VCS_REF = $(shell git rev-parse HEAD)+dirty
+endif
+
+# TOST related
+ONOS_IMAGENAME    := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}tost-onos:${DOCKER_TAG}
+ONOS_BRANCH       ?=
+ONOS_REVIEW       ?=
+ONOS_ROOT         := $(shell pwd)/onos
+ONOS_PROFILE      := "tost"
+
+.PHONY: docker-build
+
+# This should to be the first and default target in this Makefile
+help: ## : Print this help
+	@echo "Usage: make [<target>]"
+	@echo "where available targets are:"
+	@echo
+	@grep '^[[:alnum:]_-]*:.* ##' $(MAKEFILE_LIST) \
+	| sort | awk 'BEGIN {FS=":.* ## "}; {printf "%-25s %s\n", $$1, $$2};'
+	@echo
+	@echo "Environment variables:"
+	@echo "ONOS_BRANCH		  : Use the following branch to build the image"
+	@echo "ONOS_REVIEW		  : Use the following review to build the image"
+	@echo ""
+	@echo "'onos' clones onos if does not exist in the workspace."
+	@echo "Uses current workspace unless above vars are defined."
+	@echo ""
+
+## Make targets
+
+onos: ## : Checkout onos code
+	# Clone onos if it does not exist
+	if [ ! -d "onos" ]; then \
+		git clone https://gerrit.onosproject.org/onos; \
+	fi
+# Both are not supported
+ifdef ONOS_BRANCH
+ifdef ONOS_REVIEW
+	@echo "Too many parameters. You cannot specify branch and review."
+	exit 1
+else
+	cd ${ONOS_ROOT} && git checkout ${ONOS_BRANCH}
+endif
+else
+ifdef ONOS_REVIEW
+	cd ${ONOS_ROOT} && git review -d ${ONOS_REVIEW}
+endif
+endif
+
+onos-build: onos ## : Build the tost-onos docker image
+	# Set some env variables
+	cd ${ONOS_ROOT} && \
+	. tools/build/envDefaults && \
+	docker build . -t ${ONOS_IMAGENAME} \
+	--build-arg PROFILE=${ONOS_PROFILE}
+
+onos-push: ## : Push the tost-onos docker image to an external repository
+	docker push ${ONOS_IMAGENAME}
+
+tost-build: ## : Build the tost docker image
+	# TBD
+
+tost-push: ## : Push the tost-onos docker image to an external repository
+	# TBD
+
+# Used for jenkins verification
+docker-build: onos-build tost-build ## : Builds the tost-onos and tost images
+
+clean: ## : Delete any locally copied files or artificats
+	rm -rf onos
+
+# end file