diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1376fbe
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,122 @@
+# Copyright 2016 the original author or authors.
+#
+# 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 = bash -e -o pipefail
+
+# Variables
+VERSION                    ?= $(shell cat ./VERSION)
+
+DOCKER_LABEL_VCS_DIRTY     = false
+ifneq ($(shell git ls-files --others --modified --exclude-standard 2>/dev/null | wc -l | sed -e 's/ //g'),0)
+    DOCKER_LABEL_VCS_DIRTY = true
+endif
+
+## Docker related
+DOCKER_EXTRA_ARGS          ?=
+DOCKER_REGISTRY            ?=
+DOCKER_REPOSITORY          ?=
+DOCKER_TAG                 ?= $(VERSION)$(shell [[ $(DOCKER_LABEL_VCS_DIRTY) == "true" ]] && echo "-dirty" || true)
+IMAGENAME                  := $(DOCKER_REGISTRY)$(DOCKER_REPOSITORY)voltha-ofagent:$(DOCKER_TAG)
+
+## Docker labels. Only set ref and commit date if committed
+DOCKER_LABEL_VCS_URL       ?= $(shell git remote get-url $(shell git remote))
+DOCKER_LABEL_VCS_REF       = $(shell git rev-parse HEAD)
+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)
+
+DOCKER_BUILD_ARGS ?= \
+	$(DOCKER_EXTRA_ARGS) \
+	--build-arg org_label_schema_version="$(VERSION)" \
+	--build-arg org_label_schema_vcs_url="$(DOCKER_LABEL_VCS_URL)" \
+	--build-arg org_label_schema_vcs_ref="$(DOCKER_LABEL_VCS_REF)" \
+	--build-arg org_label_schema_build_date="$(DOCKER_LABEL_BUILD_DATE)" \
+	--build-arg org_opencord_vcs_commit_date="$(DOCKER_LABEL_COMMIT_DATE)" \
+	--build-arg org_opencord_vcs_dirty="$(DOCKER_LABEL_VCS_DIRTY)"
+
+DOCKER_BUILD_ARGS_LOCAL ?= $(DOCKER_BUILD_ARGS) \
+	--build-arg LOCAL_PYVOLTHA=$(LOCAL_PYVOLTHA) \
+	--build-arg LOCAL_PROTOS=$(LOCAL_PROTOS)
+
+.PHONY: rw_core ro_core local-protos local-pyvoltha
+
+# This should to be the first and default target in this Makefile
+help:
+	@echo "Usage: make [<target>]"
+	@echo "where available targets are:"
+	@echo
+	@echo "docker-build         : Build the docker images."
+	@echo "docker-push          : Push the docker images to an external repository"
+	@echo "venv                 : Build local Python virtualenv"
+	@echo "clean                : Remove files created by the build and tests"
+	@echo "distclean            : Remove venv directory"
+	@echo "lint                 : Shorthand for lint-style & lint-sanity"
+	@echo "test                 : Generate reports for all go tests"
+	@echo
+
+local-protos:
+	mkdir -p local_imports
+ifdef LOCAL_PROTOS
+	mkdir -p local_imports/voltha-protos/dist
+	cp ../../voltha-protos/dist/*.tar.gz local_imports/voltha-protos/dist/
+endif
+
+local-pyvoltha:
+	mkdir -p local_imports
+ifdef LOCAL_PYVOLTHA
+	mkdir -p local_imports/pyvoltha/dist
+	cp ../../pyvoltha/dist/*.tar.gz local_imports/pyvoltha/dist/
+endif
+
+## lint and unit tests
+
+VENVDIR := venv-ofagent
+
+$(VENVDIR):
+	virtualenv-2.7 $@;\
+	source ./$@/bin/activate ; set -u ;\
+	pip install -r requirements.txt
+
+lint: lint-dockerfile
+
+test:
+	tox
+
+## Docker targets
+lint-dockerfile:
+	@echo "Running Dockerfile lint check ..."
+	@hadolint $$(find . -name "Dockerfile")
+	@echo "Dockerfile lint check OK"
+
+docker-build: local-protos local-pyvoltha
+	docker build $(DOCKER_BUILD_ARGS) \
+    -t $(IMAGENAME) \
+    --build-arg LOCAL_PYVOLTHA=$(LOCAL_PYVOLTHA) \
+    --build-arg LOCAL_PROTOS=$(LOCAL_PROTOS) \
+    --build-arg org_label_schema_version="$(VERSION)" \
+    --build-arg org_label_schema_vcs_url="$(DOCKER_LABEL_VCS_URL)" \
+    --build-arg org_label_schema_vcs_ref="$(DOCKER_LABEL_VCS_REF)" \
+    --build-arg org_label_schema_build_date="$(DOCKER_LABEL_BUILD_DATE)" \
+    --build-arg org_opencord_vcs_commit_date="$(DOCKER_LABEL_COMMIT_DATE)" \
+    -f Dockerfile .
+
+docker-push:
+	docker push ${IMAGENAME}
+
+# cleanup
+clean:
+	rm -rf python/local_imports
+
+clean-all: clean
+	rm -rf $(VENVDIR)
