Misc library edits and cleanup

Makefile
--------
  o Simplify initial bootstrap path construction logic used to load
    the top level library makefile repo:onf-lib/makefiles/include.mk.
  o Remove direct includes (consts.mk) that are loaded by include.mk.

bin/setup.sh
------------
  o Update repo:onf-lib installer script.
  o Re-arrange inlined logic into functions.
  o Added a banner message to display installation progress.
  o Added install_config_mk(), relocate sandbox/config.mk into sandbox/makefiles/onf-lib/config.mk.
  o Added detection logic to handle patching python to v3.10+.

makefiles/etc/include.mk
------------------------
  o Remove dup logic, include.mk mirrored features.mk, changed to simply include features.mk.

makefiles/include.mk
--------------------
  o Relocate display of include/display of help target trailer message
    from top level Makefile into the library makefile hierarchy.

makefiles_include_mk.ex
-----------------------
  o Added git-submodule maintenance helper targets & dependencies that
    consuming repository makefiles can use to automate submodule checkout
    from a clean state.

Change-Id: Id8df17cef09a17325137934d04e58d87ea370621
diff --git a/makefiles/etc/include.mk b/makefiles/etc/include.mk
index a48b42c..cc17c2e 100644
--- a/makefiles/etc/include.mk
+++ b/makefiles/etc/include.mk
@@ -17,31 +17,10 @@
 # SPDX-FileCopyrightText: 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
-# Usage:
-#
-# mytarget:
-#     $(call banner-enter,target $@)
-#     @echo "Hello World"
-#     $(call banner-leave,target $@)
-# -----------------------------------------------------------------------
 
 $(if $(DEBUG),$(warning ENTER))
 
-target-banner = ** ---------------------------------------------------------------------------
-
-## -----------------------------------------------------------------------
-## Intent: Return a command line able to display a banner hilighting
-##         make target processing within a logfile.
-## -----------------------------------------------------------------------
-banner-enter=\
-    @echo -e \
-    "\n"\
-    "$(target-banner)\n"\
-    "** $(MAKE) ENTER: $(1)\n"\
-    "$(target-banner)"\
-
-banner-leave=\
-    @echo -e "** $(MAKE) LEAVE: $(1)"
+include $(ONF_MAKEDIR)/etc/features.mk
 
 $(if $(DEBUG),$(warning LEAVE))
 
diff --git a/makefiles/git/detect-local-edits.mk b/makefiles/git/detect-local-edits.mk
new file mode 100644
index 0000000..d0afc84
--- /dev/null
+++ b/makefiles/git/detect-local-edits.mk
@@ -0,0 +1,23 @@
+# -*- makefile -*-
+## -----------------------------------------------------------------------
+## Intent: Targets in this makefile will determine if locally modified
+##   files exist in the sandbox.  VOLTHA currently uses this logic to
+##   detect when go {tidy, update} have indirectly modified vendor go.mod
+##   files during a build or test.
+## -----------------------------------------------------------------------
+
+$(error DISABLED -- not yet deployed/in use)
+
+# $(MAKE) --no-print-directory detect-local-edits
+
+## ---------------------------------------------------------------------
+## Intent: Determine if sandbox contains locally modified files
+## ---------------------------------------------------------------------
+clean-tree := git status --porcelain
+detect-local-edits:
+	$(HIDE)[[ `$(clean-tree)` == "" ]] || {\
+  echo "ERROR: Untracked files detected, commit or remove to continue" \
+  && echo "`git status`" \
+  && exit 1; }
+
+# [EOF]
diff --git a/makefiles/include.mk b/makefiles/include.mk
index 48de1e9..418e59e 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -20,7 +20,7 @@
 # https://gerrit.opencord.org/plugins/gitiles/onf-make
 # ONF.makefiles.include.version = 1.1
 # -----------------------------------------------------------------------
-
+#
 ifndef mk-include--onf-make # single-include guard macro
 
 $(if $(DEBUG),$(warning ENTER))
@@ -31,18 +31,18 @@
 
 ## -----------------------------------------------------------------------
 ## Define vars based on relative import (normalize symlinks)
-## Usage: include makefiles/onf/include.mk
+## Usage: include makefiles/onf-lib/include.mk
 ## Overide-by: makefiles/onf-lib/makefiles/include.mk
 ##             when repo:onf-make is used as a git-submodule
 ## -----------------------------------------------------------------------
-onf-mk-abs    ?= $(abspath $(lastword $(MAKEFILE_LIST)))
+onf-mk-abs    := $(abspath $(lastword $(MAKEFILE_LIST)))
 onf-mk-top    := $(subst /include.mk,$(null),$(onf-mk-abs))
 onf-mk-tmp    := $(onf-mk-top)/tmp
 ONF_MAKEDIR   := $(onf-mk-top)
 
 TOP ?= $(patsubst %/makefiles/include.mk,%,$(onf-mk-abs))
 
-##--------------------##
+#--------------------##
 ##---]  INCLUDES  [---##
 ##--------------------##
 include $(ONF_MAKEDIR)/lint/make/warn-undef-vars.mk  # target lint-make helper
@@ -78,6 +78,9 @@
 ##-------------------##
 include $(ONF_MAKEDIR)/targets/include.mk # clean, sterile
 
+## Display make help text late
+include $(ONF_MAKEDIR)/help/trailer.mk
+
 $(if $(DEBUG),$(warning LEAVE))
 
 mk-include--onf-make := true