https://jira.opencord.org/browse/VOL-48

Prevent accidental full builds.
Change the default make target to print out the list of targets.
If you then want to build particular target, specify them in make command

Review comments addressed

Change-Id: I4a20398ef0ca18de7314639bf45a2e822bdcc7b9
diff --git a/Makefile b/Makefile
index 0c2c0fa..affda7f 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,38 @@
 
 .PHONY: $(DIRS) $(DIRS_CLEAN) $(DIRS_FLAKE8) flake8 docker-base voltha chameleon ofagent podder netconf shovel onos dashd vcli portainer grafana nginx
 
-default: build
+# This should to be the first and default target in this Makefile
+help:
+	@echo "Usage: make [<target>]"
+	@echo "where available targets are:"
+	@echo
+	@echo "build        : Build the Voltha protos and docker images.\n\
+               If this is the first time you are building, choose \"make build\" option."
+	@echo "clean        : Remove files created by the build and tests"
+	@echo "distclean    : Remove venv directory"
+	@echo "fetch        : Pre-fetch artifacts for subsequent local builds"
+	@echo "flake8       : Run specifically flake8 tests"
+	@echo "help         : Print this help"
+	@echo "protos       : Compile all grpc/protobuf files"
+	@echo "rebuild-venv : Rebuild local Python virtualenv from scratch"
+	@echo "venv         : Build local Python virtualenv if did not exist yet"
+	@echo "utest        : Run all unit tests"
+	@echo "itest        : Run all integration tests"
+	@echo "containers   : Build all the docker containers"
+	@echo "docker-base  : Build the base docker container used by all other dockers"
+	@echo "voltha       : Build the voltha docker container"
+	@echo "chameleon    : Build the chameleon docker container"
+	@echo "ofagent      : Build the ofagent docker container"
+	@echo "podder       : Build the podder docker container"
+	@echo "netconf      : Build the netconf docker container"
+	@echo "shovel       : Build the shovel docker container"
+	@echo "onos         : Build the onos docker container"
+	@echo "dashd        : Build the dashd docker container"
+	@echo "vcli         : Build the vcli docker container"
+	@echo "portainer    : Build the portainer docker container"
+	@echo "grafana      : Build the grafana docker container"
+	@echo "nginx        : Build the nginx docker container"
+	@echo
 
 ## New directories can be added here
 DIRS:=\
@@ -57,22 +88,6 @@
 	@echo "    FLAKE8 $(basename $@)"
 	-$(Q)$(MAKE) -C $(basename $@) flake8
 
-help:
-	@echo "Usage: make [<target>]"
-	@echo "where available targets are:"
-	@echo
-	@echo "build        : Build the Voltha docker images (default target)"
-	@echo "clean        : Remove files created by the build and tests"
-	@echo "distclean    : Remove venv directory"
-	@echo "fetch        : Pre-fetch artifacts for subsequent local builds"
-	@echo "flake8       : Run specifically flake8 tests"
-	@echo "help         : Print this help"
-	@echo "protos       : Compile all grpc/protobuf files"
-	@echo "rebuild-venv : Rebuild local Python virtualenv from scratch"
-	@echo "venv         : Build local Python virtualenv if did not exist yet"
-	@echo "utest        : Run all unit tests"
-	@echo "itest        : Run all integration tests"
-	@echo
 
 build: protos containers