diff --git a/lf/README.md b/lf/README.md
new file mode 100644
index 0000000..9ffb383
--- /dev/null
+++ b/lf/README.md
@@ -0,0 +1,39 @@
+Library makefiles
+=================
+
+$(sandbox-root)/include.mk
+    Source this makefile to import all makefile logic.
+
+$(sandbox-root)/lf/onf-make/
+$(sandbox-root)/lf/onf-make/include.mk
+    repo:onf-make contains common library makefile logic.
+    tag based checkout (frozen) as a git submodule.
+
+$(sandbox-root)/lf/local/
+$(sandbox-root)/lf/local/include.mk
+    per-repository targets and logic to customize makefile behavior.
+
+<!--
+
+# -----------------------------------------------------------------------
+# Copyright 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.
+# 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: 2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent:
+# -----------------------------------------------------------------------
+
+-->
diff --git a/lf/config.mk b/lf/config.mk
new file mode 100644
index 0000000..dd9b4d5
--- /dev/null
+++ b/lf/config.mk
@@ -0,0 +1,139 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2023-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.
+# 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: 2023-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent:
+# -----------------------------------------------------------------------
+
+--repo-name-- := voltha-go
+--repo-name-- ?= $(error --repo-name--= is required)
+
+##--------------------------------##
+##---]  Disable lint targets  [---##
+##--------------------------------##
+# NO-LINT-DOC8      := true
+# USE_DOC8_INI        := true
+# NO-LINT-GOLANG    := true
+NO-LINT-GROOVY    := true#               # Note[1]
+# NO-LINT-JJB       := true#               # Note[2]
+# NO-LINT-JSON      := true#               # Note[1]
+NO-LINT-MAKEFILE  := true#               # Note[1]
+NO-LINT-REUSE     := true                # License check
+# NO-LINT-ROBOT     := true
+# NO-LINT-SHELL     := true#               # Note[1]
+NO-LINT-YAML      := true#               # Note[1]
+
+# NO-LINT-FLAKE8    := true#               # Note[1]
+# NO-LINT-PYTHON    := true#               # Note[1]
+# NO-LINT-PYLINT    := true#               # Note[1]
+
+# Note[1] - A boatload of source to cleanup prior to enable.
+# Note[2] - No sources available
+
+##---------------------------------##
+##---] Conditional make logic  [---##
+##---------------------------------##
+USE-ONF-DOCKER-MK      := true
+# USE-ONF-GERRIT-MK      := true
+# USE-ONF-GIT-MK         := true
+# USE-ONF-JJB-MK         := true
+# USE-VOLTHA-RELEASE-MK  := true
+
+##----------------------##
+##---]  Debug Mode  [---##
+##----------------------##
+# export DEBUG           := 1      # makefile debug
+# export DISTUTILS_DEBUG := 1      # verbose: pip
+# export DOCKER_DEBUG    := 1      # verbose: docker
+# export VERBOSE         := 1      # makefile debug
+
+##-----------------------------------##
+##---]  JJB/Jenkins Job Builder  [---##
+##-----------------------------------##
+JJB_VERSION   ?= 2.8.0
+JOBCONFIG_DIR ?= job-configs
+
+##---------------------------------##
+##---]  Filesystem exclusions  [---##
+##---------------------------------##
+onf-excl-dirs := $(null)        # make clean: dirs=
+onf-excl-dirs += lf/onf-make    # repo:onf-make git submodule
+onf-excl-dirs += .venv#         # $(venv-name)
+onf-excl-dirs += patches#       # voltha docs - python upgrade
+onf-excl-dirs += .tmp           #
+onf-excl-dirs += .tox           # also a python dependency
+# onf-excl-dirs += vendor#        # golang / voltha*-go -- local exclude
+
+# [NOTE] Add exclusions: lint/doc8/doc8.incl
+
+ifeq ($(--repo-name--),voltha-docs)
+  lint-doc8-excl += '_build' # TODO: deprecate
+endif
+
+onf-excl-dirs ?= $(error onf-excl-dirs= is required)
+
+##-----------------------------##
+##---]  Feature Detection  [---##
+##-----------------------------##
+# [TODO] include makefiles/features/include.mk
+# [TODO] All logic below can migrate there.
+
+$(if $(filter %ci-management,$(--repo-name--)),\
+  $(eval --REPO-IS-CI-MANAGEMENT-- := true)\
+)
+
+$(if $(filter %voltha-docs,$(--repo-name--)),\
+  $(eval --REPO-IS-VOLTHA-DOCS-- := true)\
+)
+
+# create makefiles/config/byrepo/{--repo-name--}.mk for one-off snowflakes ?
+# $(if $(wildcard docker),$(eval USE-ONF-DOCKER-MK := true))
+
+##-------------------------##
+##---]  Derived Flags  [---##
+##-------------------------##
+ifdef --REPO-IS-CI-MANAGEMENT--
+  USE-ONF-JJB := true
+
+  onf-excl-dirs += global-jjb
+  onf-excl-dirs += lf-ansible
+  onf-excl-dirs += packer
+endif
+
+ifdef --REPO-IS-VOLTHA-DOCS--
+  onf-excl-dirs += _build
+  onf-excl-dirs += repos
+endif
+
+ifdef NO-LINT-PYTHON
+  NO-LINT-FLAKE8 := true
+  NO-LINT-PYLINT := true
+endif
+
+ifndef USE-ONF-JJB
+  NO-LINT-JJB := true
+endif
+
+onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
+
+# --------------------------------------------------------------------
+# Repository specific values
+# --------------------------------------------------------------------
+# sterile-dirs += archives
+
+# [EOF]
diff --git a/lf/include.mk b/lf/include.mk
new file mode 100644
index 0000000..5d52907
--- /dev/null
+++ b/lf/include.mk
@@ -0,0 +1,109 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2023-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.
+# 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: 2023-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+## -----------------------------------------------------------------------
+## Infer path to cloned sandbox root
+## [TODO] Deprecate TOP=
+## -----------------------------------------------------------------------
+lf-sbx-root   := $(abspath $(lastword $(MAKEFILE_LIST)))
+lf-sbx-root   := $(subst /lf/include.mk,$(null),$(lf-sbx-root))
+
+## -----------------------------------------------------------------------
+## Define vars based on relative import (normalize symlinks)
+## Usage: include makefiles/onf/include.mk
+## -----------------------------------------------------------------------
+onf-mk-abs    := $(abspath $(lastword $(MAKEFILE_LIST)))
+onf-mk-top    := $(subst /include.mk,$(null),$(onf-mk-abs))
+onf-mk-lib    := $(onf-mk-top)/onf-make/makefiles
+onf-mk-loc    := $(onf-mk-top)/local
+
+TOP           ?= $(patsubst %/makefiles/include.mk,%,$(onf-mk-abs))
+
+## -----------------------------------------------------------------------
+## This variable is a bridge to help transition away from legacy makefiles.
+## -----------------------------------------------------------------------
+legacy-mk     := $(lf-sbx-root)/makefiles
+
+## ------------------------------------------------------
+## Two distinct vars needed to access library or project
+## ------------------------------------------------------
+ONF_MAKEDIR ?= $(onf-mk-lib)
+MAKEDIR     ?= $(onf-mk-loc)
+
+# -----------------------------------------------------------------------
+# Load per-repository conditionals
+# Load late else alter MAKEFILE_LIST
+# NOTE: config.mk can be removed if dynamic feature detection by
+#       file extension is added.
+# -----------------------------------------------------------------------
+include $(wildcard $(lf-sbx-root)/config.mk $(lf-sbx-root)/lf/config.mk)
+
+## -----------------------------------------------------------------------
+## Load makefiles in order:
+##   1) Library constants and logic loaded first
+##   2) Parameterize and augment targets from local (repo specific)
+## -----------------------------------------------------------------------
+include $(onf-mk-lib)/include.mk
+include $(onf-mk-loc)/include.mk
+
+## Define late so caller (?- env --ignore-environment -?)
+GIT ?= /usr/bin/env git
+
+## -----------------------------------------------------------------------
+## 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.
+## -----------------------------------------------------------------------
+.PHONY: update-git-submodules
+update-git-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.
+## -----------------------------------------------------------------------
+.PHONY: git-submodules
+git-submodules : $(onf-mk-lib)/include.mk
+
+$(onf-mk-lib)/include.mk:
+
+	$(call banner-enter,(Checkout git submodules))
+
+	$(GIT) submodule update --init --recursive
+
+	$(call banner-leave,(Checkout git submodules))
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help-git :
+	@printf '  %-33.33s %s\n' 'git-submodules' \
+	  'Init and recursive checkout of git submodule(s)'
+	@printf '  %-33.33s %s\n' 'update-git-submodules' \
+	  'Update git submodule(s) to the latest version'
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/lf/local/include.mk b/lf/local/include.mk
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lf/local/include.mk
diff --git a/lf/onf-make b/lf/onf-make
new file mode 160000
index 0000000..78fca2d
--- /dev/null
+++ b/lf/onf-make
@@ -0,0 +1 @@
+Subproject commit 78fca2dfde43820c5b0449e6ec00be7547acf4d6
diff --git a/lf/transition.mk b/lf/transition.mk
new file mode 100644
index 0000000..2aab4a0
--- /dev/null
+++ b/lf/transition.mk
@@ -0,0 +1,70 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 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.
+# 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: 2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------## 
+lf-sbx-root   := $(abspath $(lastword $(MAKEFILE_LIST)))
+lf-sbx-root   := $(subst /lf/transition.mk,$(null),$(lf-sbx-root))
+
+legacy-mk   ?= $(lf-sbx-root)/makefiles
+onf-mk-dir  ?= $(lf-sbx-root)/lf/onf-make/makefiles
+
+sandbox-root := $(lf-sbx-root)
+
+## -----------------------------------------------------------------------
+## Intent: on-demand submodule checkout when make targets are invoked
+## -----------------------------------------------------------------------
+GIT ?= /usr/bin/env git
+
+git-submodule-deps += $(onf-mk-dir)/consts.mk
+git-submodule-deps += $(onf-mk-dir)/etc/features.mk         # $(call banner-enter)
+git-submodule-deps += $(onf-mk-dir)/virtualenv/include.mk   # make venv
+git-submodule-deps += $(onf-mk-dir)/commands/pre-commit/include.mk
+git-submodule-deps += $(onf-mk-dir)/lint/shell/include.mk
+git-submodule-deps += $(onf-mk-dir)/lint/yaml/include.mk
+
+# git-submodule-deps    : $(git-submodule-deps)
+
+$(git-submodule-deps) :
+
+	$(call banner-enter,(Checkout git submodules))
+	$(GIT) submodule update --init --recursive
+	$(call banner-leave,(Checkout git submodules))
+
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+include $(lf-sbx-root)/lf/config.mk
+include $(onf-mk-dir)/consts.mk
+# include.mk depends on ONF_MAKEDIR
+include $(onf-mk-dir)/etc/features.mk
+include $(onf-mk-dir)/virtualenv/include.mk
+include $(onf-mk-dir)/commands/pre-commit/include.mk
+
+include $(legacy-mk)/include.mk
+
+
+# dependency of virtualenv::sterile
+clean ::
+
+# [EOF]
