Update to netconf proto makefile

Change-Id: Ic2f187bf779442e87028ebfef5b15d803c183694
diff --git a/netconf/protos/Makefile b/netconf/protos/Makefile
index 9bd1108..5a5da58 100644
--- a/netconf/protos/Makefile
+++ b/netconf/protos/Makefile
@@ -20,15 +20,38 @@
   $(error To get started, please source the env.sh file from Voltha top level directory)
 endif
 
-default: copyfiles
+PROTO_FILES := $(wildcard *.proto) $(wildcard third_party/google/api/*proto)
+PROTO_PB2_FILES := $(foreach f,$(PROTO_FILES),$(subst .proto,_pb2.py,$(f)))
+PROTO_DESC_FILES := $(foreach f,$(PROTO_FILES),$(subst .proto,.desc,$(f)))
+
+PROTOC_PREFIX := /usr/local
+PROTOC_LIBDIR := $(PROTOC_PREFIX)/lib
+
+build: $(PROTO_PB2_FILES) copyfiles
+
+%_pb2.py: %.proto Makefile
+	@echo "Building protocol buffer artifacts from $<"
+	env LD_LIBRARY_PATH=$(PROTOC_LIBDIR) python -m grpc.tools.protoc \
+	    -I. \
+	    -I./third_party \
+	    --python_out=. \
+	    --grpc_python_out=. \
+	    $<
 
 TARGET_PROTO_DIR := $(VOLTHA_BASE)/netconf/protos
 SOURCE_PROTO_DIR := $(VOLTHA_BASE)/voltha/protos
 
+TARGET_YANG_OPTION_DIR := $(VOLTHA_BASE)/netconf/protoc_plugins
+YANG_OPTION_FILE := yang_options_pb2.py
+
 copyfiles:
 	rsync -av --include '*/' --exclude='third_party/__init__.py' --include '*.py' --exclude='*' $(SOURCE_PROTO_DIR)/ $(TARGET_PROTO_DIR)
-
+	cp $(SOURCE_PROTO_DIR)/$(YANG_OPTION_FILE) $(TARGET_YANG_OPTION_DIR)
 
 clean:
 	rm -f $(PROTO_PB2_FILES) $(PROTO_DESC_FILES)
+	rm $(TARGET_YANG_OPTION_DIR)/$(YANG_OPTION_FILE)
+	rm $(TARGET_PROTO_DIR)/*.py
+
+