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_include_mk.ex b/makefiles_include_mk.ex
index 1bad7af..3e79d0a 100644
--- a/makefiles_include_mk.ex
+++ b/makefiles_include_mk.ex
@@ -35,7 +35,7 @@
## Define vars based on relative import (normalize symlinks)
## Usage: include makefiles/onf/include.mk
## -----------------------------------------------------------------------
-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-lib := $(onf-mk-top)/onf-lib/makefiles
onf-mk-loc := $(onf-mk-top)/local
@@ -56,6 +56,10 @@
include $(onf-mk-lib)/include.mk
include $(onf-mk-loc)/include.mk
+## -----------------------------------------------------------------------
+## Intent: Helper targets for maintaining git-submodules (repo:onf-make)
+## -----------------------------------------------------------------------
+
## -----------------------------------------
## Submodue init target for new repositories
## -----------------------------------------
@@ -65,9 +69,29 @@
cd $(dir $@) \
&& git submodule https://github.com/opencord/onf-make.git onf-lib
+## -----------------------------------------------------------------------
+## Intent: This target will update dependent git-submodule to the latest
+## version available from the remote repository. Subsequently
+## a checkin will be needed to make the submodule update permanent.
+## -----------------------------------------------------------------------
update-submodules:
git submodule foreach git pull
+## -----------------------------------------------------------------------
+## Intent: On-demand cloning of git submodule(s).
+## -----------------------------------------------------------------------
+## Trigger: include $(onf-mk-lib)/include.mk
+## - When the make command attempts to include a makefile from the
+## repo:onf-make submodule, this target/dependency will initialize
+## and checkout all submodules the current repository depends on.
+## -----------------------------------------------------------------------
+$(onf-mk-lib)/include.mk:
+ @echo
+ @echo "** Checkout git submodule(s)"
+ @echo "** -----------------------------------------------------------------------"
+ git submodule update --init --recursive
+ @echo "** -----------------------------------------------------------------------"
+
$(if $(DEBUG),$(warning LEAVE))
# [EOF]