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