diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..ac5a351
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,250 @@
+# Copyright (C) 2018 Open Networking Foundation
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+########################################################################
+##
+##
+## 				Config
+##
+##
+DEVICE = asfvolt16
+#
+# Three vendor proprietary source files are required to build BAL.
+# SW-BCM68620_<VER>.zip - Broadcom BAL source and Maple SDK.
+# sdk-all-<SDK_VER>.tar.gz - Broadcom Qumran SDK.
+# ACCTON_BAL_<BAL_VER>-<ACCTON_VER>.patch - Accton/Edgecore's patch.
+BAL_MAJOR_VER = 02.04
+BAL_VER = 2.4.3.6
+SDK_VER = 6.5.7
+ACCTON_VER = 201710131639
+#
+# Version of Open Network Linux (ONL).
+ONL_KERN_VER_MAJOR = 3.7
+ONL_KERN_VER_MINOR = 10
+#
+# Build directory
+BUILD_DIR = build
+
+########################################################################
+##
+##
+## 				Check
+##
+##
+HOST_SYSTEM = $(shell uname | cut -f 1 -d_)
+SYSTEM ?= $(HOST_SYSTEM)
+CXX = g++
+CPPFLAGS += `pkg-config --cflags protobuf grpc`
+CXXFLAGS += -std=c++11 -fpermissive -Wno-literal-suffix
+ifeq ($(SYSTEM),Darwin)
+LDFLAGS += -L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc`\
+           -lgrpc++_reflection\
+           -ldl
+else
+LDFLAGS += -L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc`\
+           -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed\
+           -ldl
+endif
+PROTOC = protoc
+GRPC_CPP_PLUGIN = grpc_cpp_plugin
+GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
+GRPC_CPP_VER ?= `command curl -L https://grpc.io/release`
+PROTOC_CMD = which $(PROTOC)
+PROTOC_CHECK_CMD = $(PROTOC) --version | grep -q libprotoc.3
+PLUGIN_CHECK_CMD = which $(GRPC_CPP_PLUGIN)
+HAS_PROTOC = $(shell $(PROTOC_CMD) > /dev/null && echo true || echo false)
+ifeq ($(HAS_PROTOC),true)
+HAS_VALID_PROTOC = $(shell $(PROTOC_CHECK_CMD) 2> /dev/null && echo true || echo false)
+endif
+HAS_PLUGIN = $(shell $(PLUGIN_CHECK_CMD) > /dev/null && echo true || echo false)
+check:
+	sudo apt-get -q -y install git pkg-config build-essential autoconf libtool libgflags-dev libgtest-dev clang libc++-dev
+ifneq ($(HAS_VALID_PROTOC),true)
+	mkdir -p /tmp/$(PROTOC_NAME)
+	wget -P /tmp/$(PROTOC_NAME) $(PROTOC_DOWNLOAD_URL)/v$(PROTOC_VERSION)/$(PROTOC_NAME).zip
+	unzip -o /tmp/$(PROTOC_NAME)/$(PROTOC_NAME) -d /tmp/$(PROTOC_NAME)
+	mkdir -p $(PWD)/bin
+	cp -f /tmp/$(PROTOC_NAME)/bin/protoc $(PWD)/bin/.
+	mkdir -p $(PWD)/include
+	cp -rf /tmp/$(PROTOC_NAME)/include/* $(PWD)/include/.
+	rm -rf /tmp/$(PROTOC_NAME)
+endif
+ifneq ($(HAS_PLUGIN),true)
+	rm -rf /tmp/grpc
+	git clone -b $(GRPC_CPP_VER) https://github.com/grpc/grpc /tmp/grpc
+	cd /tmp/grpc && git submodule update --init
+	make -C /tmp/grpc
+	sudo make -C /tmp/grpc install
+	make -C /tmp/grpc/third_party/protobuf
+	sudo make -C /tmp/grpc/third_party/protobuf install
+	rm -rf /tmp/grpc
+endif
+
+########################################################################
+##
+##
+## 				ONL
+##
+##
+ONL_KERN_VER = $(ONL_KERN_VER_MAJOR).$(ONL_KERN_VER_MINOR)
+ONL_REPO = $(DEVICE)-onl
+ONL_DIR = $(BUILD_DIR)/$(ONL_REPO)
+.PHONY: onl
+onl:
+	if [ ! -d "$(ONL_DIR)/OpenNetworkLinux" ]; then \
+		mkdir -p $(ONL_DIR); \
+		git clone git@github.com:shadansari/$(ONL_REPO).git $(ONL_DIR); \
+		make -C $(ONL_DIR) $(DEVICE)-$(ONL_KERN_VER_MAJOR); \
+	fi;
+onl-force:
+	make -C $(ONL_DIR) $(DEVICE)-$(ONL_KERN_VER_MAJOR)
+clean-onl:
+distclean-onl:
+	sudo rm -rf $(ONL_DIR)
+
+########################################################################
+##
+##
+## 				BAL
+##
+##
+BAL_ZIP = SW-BCM68620_$(subst .,_,$(BAL_VER)).zip
+SDK_ZIP = sdk-all-$(SDK_VER).tar.gz
+ACCTON_PATCH = ACCTON_BAL_$(BAL_VER)-V$(ACCTON_VER).patch
+OPENOLT_BAL_PATCH = OPENOLT_BAL_$(BAL_VER).patch
+BAL_DIR = $(BUILD_DIR)/$(DEVICE)-bal
+ONL_KERNDIR = $(PWD)/$(ONL_DIR)/OpenNetworkLinux/packages/base/amd64/kernels/kernel-$(ONL_KERN_VER_MAJOR)-x86-64-all/builds
+MAPLE_KERNDIR = $(BAL_DIR)/bcm68620_release/$(DEVICE)/kernels
+BCM_SDK = $(BAL_DIR)/bal_release/3rdparty/bcm-sdk
+BALLIBDIR = $(BAL_DIR)/bal_release/build/core/lib
+BALLIBNAME = bal_api_dist
+BAL_INC = -I$(BAL_DIR)/bal_release/src/common/os_abstraction \
+	-I$(BAL_DIR)/bal_release/src/common/os_abstraction/posix \
+	-I$(BAL_DIR)/bal_release/src/common/config \
+	-I$(BAL_DIR)/bal_release/src/core/platform \
+	-I$(BAL_DIR)/bal_release/src/common/include \
+	-I$(BAL_DIR)/bal_release/src/lib/libbalapi \
+	-I$(BAL_DIR)/bal_release/3rdparty/maple/sdk/host_driver/utils \
+	-I$(BAL_DIR)/bal_release/src/balapiend \
+	-I$(BAL_DIR)/bal_release/src/common/dev_log \
+	-I$(BAL_DIR)/bal_release/src/common/bal_dist_utils  \
+	-I$(BAL_DIR)/bal_release/src/lib/libtopology \
+	-I$(BAL_DIR)/bal_release/3rdparty/maple/sdk/host_driver/model \
+	-I$(BAL_DIR)/bal_release/3rdparty/maple/sdk/host_driver/api \
+	-I$(BAL_DIR)/bal_release/src/lib/libcmdline \
+	-I$(BAL_DIR)/bal_release/src/lib/libutils \
+	-I$(BAL_DIR)/bal_release/3rdparty/maple/sdk/host_reference/cli
+CXXFLAGS += $(BAL_INC) -I $(BAL_DIR)/lib/cmdline
+.PHONY: get-$(BAL_DIR)
+get-$(BAL_DIR):
+#	if [ ! -e "download/$(BAL_ZIP)" ]; then \
+#		rm -rf /tmp/broadcom-proprietary; \
+#		git clone git@github.com:shadansari/broadcom-proprietary.git /tmp/broadcom-proprietary; \
+#		mv -f /tmp/broadcom-proprietary/$(BAL_VER)/$(BAL_ZIP) ./download; \
+#		mv -f /tmp/broadcom-proprietary/$(BAL_VER)/$(SDK_ZIP) ./download; \
+#		mv -f /tmp/broadcom-proprietary/$(BAL_VER)/$(ACCTON_PATCH) ./download; \
+#		mv -f /tmp/broadcom-proprietary/$(BAL_VER)/$(OPENOLT_BAL_PATCH) ./download; \
+#		rm -rf /tmp/broadcom-proprietary; \
+#	fi;
+.PHONY: bal
+bal: onl get-$(BAL_DIR)
+ifeq ("$(wildcard $(BAL_DIR))","")
+	mkdir $(BAL_DIR)
+	unzip download/$(BAL_ZIP) -d $(BAL_DIR)
+	cp download/$(SDK_ZIP) $(BCM_SDK)
+	chmod -R 744 $(BAL_DIR)
+	cat download/$(ACCTON_PATCH) | patch -p1 -d $(BAL_DIR)
+	mkdir -p $(MAPLE_KERNDIR)
+	ln -s $(ONL_KERNDIR)/linux-$(ONL_KERN_VER) $(MAPLE_KERNDIR)/linux-$(ONL_KERN_VER)
+	ln -s $(ONL_DIR)/OpenNetworkLinux/packages/base/any/kernels/archives/linux-$(ONL_KERN_VER).tar.xz $(MAPLE_KERNDIR)/linux-$(ONL_KERN_VER).tar.xz
+	ln -s $(ONL_DIR)/OpenNetworkLinux/packages/base/any/kernels/$(ONL_KERN_VER_MAJOR)/configs/x86_64-all/x86_64-all.config $(MAPLE_KERNDIR)/x86_64-all.config
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) maple_sdk_dir
+	cat download/$(OPENOLT_BAL_PATCH) | patch -p1 -d $(BAL_DIR)
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) maple_sdk
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) switch_sdk_dir
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) switch_sdk
+	KERNDIR=$(ONL_KERNDIR)/linux-$(ONL_KERN_VER) BOARD=$(DEVICE) ARCH=x86_64 SDKBUILD=build_bcm_user make -C $(BCM_SDK)/build-$(DEVICE)/sdk-all-$(SDK_VER)/systems/linux/user/x86-generic_64-2_6
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) bal
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) release_board
+	ln -s -f $(PWD)/$(BAL_DIR)/bcm68620_release/asfvolt16/release/release_$(DEVICE)_V$(BAL_MAJOR_VER).$(ACCTON_VER).tar.gz . 
+	ln -s -f $(PWD)/$(BAL_DIR)/bal_release/build/core/lib/libbal_api_dist.so .
+	ln -s -f $(PWD)/$(BAL_DIR)/bal_release/build/core/src/apps/bal_core_dist/bal_core_dist
+	mv -f release_$(DEVICE)_V$(BAL_MAJOR_VER).$(ACCTON_VER).tar.gz $(BUILD_DIR)
+	mv -f libbal_api_dist.so $(BUILD_DIR)
+	mv -f bal_core_dist $(BUILD_DIR)
+endif
+bal-rebuild:
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) maple_sdk
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) switch_sdk
+	KERNDIR=$(ONL_KERNDIR)/linux-$(ONL_KERN_VER) BOARD=$(DEVICE) ARCH=x86_64 SDKBUILD=build_bcm_user make -C $(BCM_SDK)/build-$(DEVICE)/sdk-all-$(SDK_VER)/systems/linux/user/x86-generic_64-2_6
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) bal
+	make -C $(BAL_DIR)/bal_release BOARD=$(DEVICE) release_board
+	ln -s -f $(PWD)/$(BAL_DIR)/bcm68620_release/asfvolt16/release/release_$(DEVICE)_V$(BAL_MAJOR_VER).$(ACCTON_VER).tar.gz .
+	ln -s -f $(PWD)/$(BAL_DIR)/bal_release/build/core/lib/libbal_api_dist.so .
+	ln -s -f $(PWD)/$(BAL_DIR)/bal_release/build/core/src/apps/bal_core_dist/bal_core_dist .
+	mv -f release_$(DEVICE)_V$(BAL_MAJOR_VER).$(ACCTON_VER).tar.gz $(BUILD_DIR)
+	mv -f libbal_api_dist.so $(BUILD_DIR)
+	mv -f bal_core_dist $(BUILD_DIR)
+clean-bal: clean-onl
+distclean-bal: distclean-onl
+	sudo rm -rf $(BAL_DIR)
+	rm -f build/release_$(DEVICE)_V$(BAL_MAJOR_VER).$(ACCTON_VER).tar.gz
+
+########################################################################
+##
+##
+## 				OpenOLT API
+##
+##
+OPENOLT_API_DIR = $(BUILD_DIR)/openolt-api
+OPENOLT_API_LIB = $(OPENOLT_API_DIR)/libopenoltapi.a
+CXXFLAGS += -I./$(OPENOLT_API_DIR) -I $(OPENOLT_API_DIR)/googleapis/gens
+.PHONY: openolt-api
+openolt-api:
+	if [ ! -e "$(OPENOLT_API_DIR)" ]; then \
+		mkdir -p $(BUILD_DIR); \
+		git clone git@github.com:shadansari/openolt-api.git $(OPENOLT_API_DIR); \
+	fi;
+	make -C $(OPENOLT_API_DIR) all
+clean-openolt-api:
+	-make -C $(OPENOLT_API_DIR) clean
+distclean-openolt-api:
+
+########################################################################
+##
+##
+## 				Main
+##
+##
+SRCS = $(wildcard src/*.cc)
+OBJS = $(SRCS:.cc=.o)
+DEPS = $(SRCS:.cc=.d)
+.DEFAULT_GOAL := all
+all: $(BUILD_DIR)/openolt
+$(BUILD_DIR)/openolt: check openolt-api bal $(OBJS)
+	$(CXX) $(OBJS) $(LDFLAGS) $(OPENOLT_API_LIB) -o $@ -L$(BALLIBDIR) -l$(BALLIBNAME)
+	ln -s $(shell ldconfig -p | grep libgrpc.so.5 | tr ' ' '\n' | grep /) $(BUILD_DIR)/libgrpc.so.5
+	ln -s $(shell ldconfig -p | grep libgrpc++.so.1 | tr ' ' '\n' | grep /) $(BUILD_DIR)/libgrpc++.so.1
+	ln -s $(shell ldconfig -p | grep libgrpc++_reflection.so.1 | tr ' ' '\n' | grep /) $(BUILD_DIR)/libgrpc++_reflection.so.1
+
+src/%.o: %.cpp
+	$(CXX) -MMD -c $< -o $@
+
+clean: clean-bal
+	rm -f $(OBJS) $(DEPS) $(BUILD_DIR)/openolt
+	rm -rf $(OPENOLT_API_DIR)
+distclean: distclean-openolt-api distclean-bal
+	rm -rf $(BUILD_DIR)
+-include $(DEPS)
