diff --git a/Makefile b/Makefile
index 5ccb977..93a1681 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2023 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@
 ##--------------------##
 include config.mk#                # configure
 include makefiles/include.mk      # top level include
+include makefiles/include.mk      # load library makefiles
 
 ## Display make help text late
 include $(ONF_MAKEDIR)/help/trailer.mk
diff --git a/config.mk b/config.mk
index 63009c0..34d31d5 100644
--- a/config.mk
+++ b/config.mk
@@ -22,6 +22,9 @@
 # --repo-name-- :=
 --repo-name-- ?= $(error --repo-name--= is required)
 
+# --repo-name-- :=
+--repo-name-- ?= $(error --repo-name--= is required)
+
 ##--------------------------------##
 ##---]  Disable lint targets  [---##
 ##--------------------------------##
@@ -32,7 +35,7 @@
 # NO-LINT-JSON      := true#               # Note[1]
 # NO-LINT-MAKEFILE  := true#               # Note[1]
 # NO-LINT-REUSE     := true                # License check
-# NO-LINT-ROBOT     := true
+# NO-LINT-ROBOT     := true  **
 # NO-LINT-SHELL     := true#               # Note[1]
 # NO-LINT-YAML      := true#               # Note[1]
 
diff --git a/makefiles/bin/compare_sandbox_makefiles.sh b/makefiles/bin/compare_sandbox_makefiles.sh
index 6075386..156cace 100755
--- a/makefiles/bin/compare_sandbox_makefiles.sh
+++ b/makefiles/bin/compare_sandbox_makefiles.sh
@@ -36,9 +36,7 @@
 ##----------------##
 ##---]  MAIN  [---##
 ##----------------##
-# src="$HOME/projects/sandbox/onf-make/makefiles"
-# src="$HOME/projects/sandbox/ci-management/makefiles"
-src="$HOME/projects/sandbox/onf-make-all/20230709/makefiles"
+src="$HOME/projects/sandbox/onf-make/makefiles"
 
 dst="$(realpath .)"
 
@@ -74,4 +72,3 @@
 done
 
 # [EOF]
-
diff --git a/makefiles/bootstrap.mk b/makefiles/bootstrap.mk
index 5a9433b..ada8cd0 100644
--- a/makefiles/bootstrap.mk
+++ b/makefiles/bootstrap.mk
@@ -38,23 +38,27 @@
 ##   o OPT_MKDIR=$(OPT_ROOT)/makefiles
 ##   o If exists include $(OPT_MKDIR)/include.mk
 ## -----------------------------------------------------------------------
-mk-library-include=$(strip \
-  $(warning mk-library-include: $(1) = $($(1)))\
-  $(call is-null-var,1)\
-  $(foreach var,$$(1),\
-    $(info var=$(var) is-null=$(call is-null-var,var))\
-  $(foreach val,$$(var),\
-    $(info val=$(val))\ 
-    $(foreach makedir,$(subst _ROOT,_MKDIR,$(var)),\
-$(warning makedir=$(makedir))\
-      $(if $($(makedir)),$(null),\
-        $(eval $(makedir)=$$$$($(var))/makefiles)\
-$(warning $(makedir) = $($($(makedir))))\
-$(info $$(wildcard $(val)/makefiles/include.mk) = $(wildcard $(val)/makefiles/include.mk))\
-        $(foreach mf,$(wildcard $(wildcard $(val)/makefiles/include.mk)),\
-$(warning $$(eval include $(mf)))\
-          $(eval include $(mf)))\
-)
+# library-include   := $(call mk-library-include,blah)
+
+mk-library-include=$(error revisit mk-library-include)
+
+#$(strip \
+#  $(warning mk-library-include: $$1[$(1)] = [$($(1))]))\
+#  $(call is-null-var,1)\
+#  $(foreach var,$($(1)),\
+#    $(info var=$(var) is-null=$(call is-null-var,var))\
+#  $(foreach val,$$(var),\
+#    $(info val=$(val))\
+#    $(foreach makedir,$(subst _ROOT,_MKDIR,$(var)),\
+#$(warning makedir=$(makedir))\
+#      $(if $($(makedir)),$(null),\
+#        $(eval $(makedir)=$$$$($(var))/makefiles)\
+#$(warning $(makedir) = $($($(makedir))))\
+#$(info $$(wildcard $(val)/makefiles/include.mk) = $(wildcard $(val)/makefiles/include.mk))\
+#        $(foreach mf,$(wildcard $(wildcard $(val)/makefiles/include.mk)),\
+#$(warning $$(eval include $(mf)))\
+##          $(eval include $(mf)))\
+# )
 
 $(if $(DEBUG-bootstrap_mk),$(warning LEAVE))
 
diff --git a/makefiles/include.mk b/makefiles/include.mk
index 8bf7890..df50ca4 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,12 +13,12 @@
 # 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.
-# -----------------------------------------------------------------------
-# SPDX-FileCopyrightText: 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 # https://gerrit.opencord.org/plugins/gitiles/onf-make
-# ONF.makefiles.include.version = 1.1
+# ONF.makefile.version = 1.0
 # -----------------------------------------------------------------------
 
 ifndef mk-include--onf-make # single-include guard macro
diff --git a/makefiles/lint/include.mk b/makefiles/lint/include.mk
index a8fe1af..6ffac92 100644
--- a/makefiles/lint/include.mk
+++ b/makefiles/lint/include.mk
@@ -27,6 +27,12 @@
 	@echo
 	@echo "[LINT]"
 
+## Disable python linting in bulk ?
+ifdef NO-LINT-PYTHON
+  NO-LINT-FLAKE8 := true
+  NO-LINT-PYLINT := true
+endif
+
 include $(ONF_MAKEDIR)/lint/groovy.mk
 include $(ONF_MAKEDIR)/lint/jjb.mk
 include $(ONF_MAKEDIR)/lint/json.mk
@@ -34,8 +40,8 @@
 include $(ONF_MAKEDIR)/lint/makefile.mk
 include $(ONF_MAKEDIR)/lint/python/include.mk
 include $(ONF_MAKEDIR)/lint/shell.mk
-# include $(ONF_MAKEDIR)/lint/tox/include.mk
-include $(ONF_MAKEDIR)/lint/yaml.mk
+include $(ONF_MAKEDIR)/lint/tox/include.mk
+nclude $(ONF_MAKEDIR)/lint/yaml.mk
 
 include $(ONF_MAKEDIR)/lint/help.mk
 
diff --git a/makefiles/targets/include.mk b/makefiles/targets/include.mk
new file mode 100644
index 0000000..20e1bf5
--- /dev/null
+++ b/makefiles/targets/include.mk
@@ -0,0 +1,36 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# 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.
+#
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# https://gerrit.opencord.org/plugins/gitiles/onf-make
+# ONF.makefile.version = 1.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+include $(ONF_MAKEDIR)/targets/clean.mk
+include $(ONF_MAKEDIR)/targets/check.mk
+include $(ONF_MAKEDIR)/targets/sterile.mk
+include $(ONF_MAKEDIR)/targets/test/include.mk
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
