[VOL-5358] - build & test repo using new AMI image

makefiles/etc/features.mk
makefiles/etc/include.mk
makefiles/include.mk
-------------------------
  o Wrap features.mk with a include-once guard macro.
  o Dependency-less macros like banner, banner-enter, etc need to be
    included early so makefiles beneath lf/local/ can make use of them.

Change-Id: I54c19e1dbf4bded41fa4976a2241bdeb0ed06903
diff --git a/makefiles/etc/features.mk b/makefiles/etc/features.mk
index a48b42c..9b2612e 100644
--- a/makefiles/etc/features.mk
+++ b/makefiles/etc/features.mk
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2017-2023 Open Networking Foundation
+# Copyright 2017-2024 Open Networking Foundation Contributors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,15 +13,19 @@
 # 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: 2017-2024 Open Networking Foundation Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
+## Intent: Library makefile helper functions
+# -----------------------------------------------------------------------
 # Usage:
 #
 # mytarget:
 #     $(call banner-enter,target $@)
 #     @echo "Hello World"
+#     $(call banner,(Between worlds))
+#     @echo "Goodbye World"
 #     $(call banner-leave,target $@)
 # -----------------------------------------------------------------------
 
@@ -43,6 +47,9 @@
 banner-leave=\
     @echo -e "** $(MAKE) LEAVE: $(1)"
 
+banner=\
+    @echo -e "** $(MAKE): $(1)"
+
 $(if $(DEBUG),$(warning LEAVE))
 
 # [EOF]
diff --git a/makefiles/etc/include.mk b/makefiles/etc/include.mk
index 0713718..9381a0d 100644
--- a/makefiles/etc/include.mk
+++ b/makefiles/etc/include.mk
@@ -20,7 +20,7 @@
 
 $(if $(DEBUG),$(warning ENTER))
 
-include $(onf-mk-dir)/etc/features.mk
+$(call include-once,$(onf-mk-dir)/etc/features.mk)
 
 $(if $(DEBUG),$(warning LEAVE))
 
diff --git a/makefiles/include.mk b/makefiles/include.mk
index ee2792d..0884be3 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -50,10 +50,16 @@
 
 ONF_MAKEDIR   := $(onf-mk-dir)#   # TODO: Deprecate ONF_MAKEDIR and MAKEDIR
 
+##-------------------------##
+##---]  CORE INCLUDES  [---##
+##-------------------------##
+# no external dependencies.
+# wrap with a guard macro (include-once) to prevent re-sourcing.
+$(call include-once,$(onf-mk-dir)/etc/features.mk)
+
 ##--------------------##
 ##---]  INCLUDES  [---##
 ##--------------------##
-
 include $(onf-mk-dir)/detect/include.mk     # Dynamic features based on source
 
 include $(onf-mk-dir)/lint/make/warn-undef-vars.mk  # target lint-make helper